diff --git a/illustration.png b/illustration.png new file mode 100644 index 0000000..a33d463 Binary files /dev/null and b/illustration.png differ diff --git a/pcam/configs/3dmatch/soft.yaml b/pcam/configs/3dmatch/soft.yaml new file mode 100644 index 0000000..65500f5 --- /dev/null +++ b/pcam/configs/3dmatch/soft.yaml @@ -0,0 +1,3 @@ +DATASET: '3dmatch' +NUM_POINTS: 4096 +SPARSE_ATTENTION: False diff --git a/pcam/configs/3dmatch/soft_filter.yaml b/pcam/configs/3dmatch/soft_filter.yaml new file mode 100644 index 0000000..2d9cc5b --- /dev/null +++ b/pcam/configs/3dmatch/soft_filter.yaml @@ -0,0 +1,5 @@ +DATASET: '3dmatch' +NUM_POINTS: 4096 +SPARSE_ATTENTION: False +# This threshold was optimised on the validation of 3dmatch +THRESHOLD: .6 diff --git a/pcam/configs/3dmatch/soft_refinement.yaml b/pcam/configs/3dmatch/soft_refinement.yaml new file mode 100644 index 0000000..f56efec --- /dev/null +++ b/pcam/configs/3dmatch/soft_refinement.yaml @@ -0,0 +1,6 @@ +DATASET: '3dmatch' +NUM_POINTS: 4096 +SPARSE_ATTENTION: False +# This threshold was optimised on the validation of 3dmatch +THRESHOLD: .6 +DGR_OPTIM: True diff --git a/pcam/configs/3dmatch/soft_safeguard.yaml b/pcam/configs/3dmatch/soft_safeguard.yaml new file mode 100644 index 0000000..65a99a0 --- /dev/null +++ b/pcam/configs/3dmatch/soft_safeguard.yaml @@ -0,0 +1,10 @@ +DATASET: '3dmatch' +NUM_POINTS: 4096 +SPARSE_ATTENTION: False +# This threshold was optimised on the validation of 3dmatch +THRESHOLD: .6 +DGR_OPTIM: True +# Safeguard registration (as in DGR) when the confidence scores are below a threshold (WSUM_THRESHOLD) +# This threshold was optimised to apply safeguard on the same number of scans as in DGR +SAFEGUARD: True +WSUM_THRESHOLD: 930 diff --git a/pcam/configs/3dmatch/sparse.yaml b/pcam/configs/3dmatch/sparse.yaml new file mode 100644 index 0000000..d2b6a9a --- /dev/null +++ b/pcam/configs/3dmatch/sparse.yaml @@ -0,0 +1,3 @@ +DATASET: '3dmatch' +NUM_POINTS: 4096 +SPARSE_ATTENTION: True \ No newline at end of file diff --git a/pcam/configs/3dmatch/sparse_filter.yaml b/pcam/configs/3dmatch/sparse_filter.yaml new file mode 100644 index 0000000..0944ad3 --- /dev/null +++ b/pcam/configs/3dmatch/sparse_filter.yaml @@ -0,0 +1,5 @@ +DATASET: '3dmatch' +NUM_POINTS: 4096 +SPARSE_ATTENTION: True +# This threshold was optimised on the validation of 3dmatch +THRESHOLD: .5 diff --git a/pcam/configs/3dmatch/sparse_refinement.yaml b/pcam/configs/3dmatch/sparse_refinement.yaml new file mode 100644 index 0000000..8ba72e4 --- /dev/null +++ b/pcam/configs/3dmatch/sparse_refinement.yaml @@ -0,0 +1,6 @@ +DATASET: '3dmatch' +NUM_POINTS: 4096 +SPARSE_ATTENTION: True +# This threshold was optimised on the validation of 3dmatch +THRESHOLD: .5 +DGR_OPTIM: True diff --git a/pcam/configs/3dmatch/sparse_safeguard.yaml b/pcam/configs/3dmatch/sparse_safeguard.yaml new file mode 100644 index 0000000..0bf6aa1 --- /dev/null +++ b/pcam/configs/3dmatch/sparse_safeguard.yaml @@ -0,0 +1,10 @@ +DATASET: '3dmatch' +NUM_POINTS: 4096 +SPARSE_ATTENTION: True +# This threshold was optimised on the validation of 3dmatch +THRESHOLD: .5 +DGR_OPTIM: True +# Safeguard registration (as in DGR) when the confidence scores are below a threshold (WSUM_THRESHOLD) +# This threshold was optimised to apply safeguard on the same number of scans as in DGR +SAFEGUARD: True +WSUM_THRESHOLD: 930 diff --git a/pcam/configs/kitti/soft.yaml b/pcam/configs/kitti/soft.yaml new file mode 100644 index 0000000..bf1d17a --- /dev/null +++ b/pcam/configs/kitti/soft.yaml @@ -0,0 +1,3 @@ +DATASET: 'kitti' +NUM_POINTS: 2048 +SPARSE_ATTENTION: False diff --git a/pcam/configs/kitti/soft_icp.yaml b/pcam/configs/kitti/soft_icp.yaml new file mode 100755 index 0000000..d977b25 --- /dev/null +++ b/pcam/configs/kitti/soft_icp.yaml @@ -0,0 +1,4 @@ +DATASET: 'kitti' +NUM_POINTS: 2048 +SPARSE_ATTENTION: False +ICP: .6 \ No newline at end of file diff --git a/pcam/configs/kitti/sparse.yaml b/pcam/configs/kitti/sparse.yaml new file mode 100644 index 0000000..8ab54a8 --- /dev/null +++ b/pcam/configs/kitti/sparse.yaml @@ -0,0 +1,3 @@ +DATASET: 'kitti' +NUM_POINTS: 2048 +SPARSE_ATTENTION: True diff --git a/pcam/configs/kitti/sparse_icp.yaml b/pcam/configs/kitti/sparse_icp.yaml new file mode 100644 index 0000000..ed8ae60 --- /dev/null +++ b/pcam/configs/kitti/sparse_icp.yaml @@ -0,0 +1,4 @@ +DATASET: 'kitti' +NUM_POINTS: 2048 +SPARSE_ATTENTION: True +ICP: .6 \ No newline at end of file diff --git a/pcam/configs/modelnet/soft.yaml b/pcam/configs/modelnet/soft.yaml new file mode 100755 index 0000000..042f08c --- /dev/null +++ b/pcam/configs/modelnet/soft.yaml @@ -0,0 +1,3 @@ +DATASET: 'modelnet' +NUM_POINTS: 2048 +SPARSE_ATTENTION: False diff --git a/pcam/configs/modelnet/soft_noise.yaml b/pcam/configs/modelnet/soft_noise.yaml new file mode 100755 index 0000000..1f8044e --- /dev/null +++ b/pcam/configs/modelnet/soft_noise.yaml @@ -0,0 +1,3 @@ +DATASET: 'modelnet_noise' +NUM_POINTS: 2048 +SPARSE_ATTENTION: False diff --git a/pcam/configs/modelnet/soft_unseen.yaml b/pcam/configs/modelnet/soft_unseen.yaml new file mode 100755 index 0000000..5dddbdc --- /dev/null +++ b/pcam/configs/modelnet/soft_unseen.yaml @@ -0,0 +1,3 @@ +DATASET: 'modelnet_unseen' +NUM_POINTS: 2048 +SPARSE_ATTENTION: False diff --git a/pcam/configs/modelnet/sparse.yaml b/pcam/configs/modelnet/sparse.yaml new file mode 100755 index 0000000..075264d --- /dev/null +++ b/pcam/configs/modelnet/sparse.yaml @@ -0,0 +1,3 @@ +DATASET: 'modelnet' +NUM_POINTS: 2048 +SPARSE_ATTENTION: True diff --git a/pcam/configs/modelnet/sparse_noise.yaml b/pcam/configs/modelnet/sparse_noise.yaml new file mode 100755 index 0000000..7784c96 --- /dev/null +++ b/pcam/configs/modelnet/sparse_noise.yaml @@ -0,0 +1,3 @@ +DATASET: 'modelnet_noise' +NUM_POINTS: 2048 +SPARSE_ATTENTION: True diff --git a/pcam/configs/modelnet/sparse_unseen.yaml b/pcam/configs/modelnet/sparse_unseen.yaml new file mode 100755 index 0000000..deccf64 --- /dev/null +++ b/pcam/configs/modelnet/sparse_unseen.yaml @@ -0,0 +1,3 @@ +DATASET: 'modelnet_unseen' +NUM_POINTS: 2048 +SPARSE_ATTENTION: True diff --git a/pcam/data/3dmatch/3dmatch.md b/pcam/data/3dmatch/3dmatch.md new file mode 100644 index 0000000..47e747d --- /dev/null +++ b/pcam/data/3dmatch/3dmatch.md @@ -0,0 +1,13 @@ +# Dataset: 3DMatch + +## Folder structure + +Place the 3DMatch dataset in this folder (`/path/to/pcam/data/3dmatch/`), which should contain the following subfolders: +``` +./threedmatch/ # Contains the training and validation set +./threedmatch/*.npz +./threedmatch/*.txt +./threedmatch_test/ # Contains the test set +./threedmatch_test/*.npz +./threedmatch_test/*.txt +``` diff --git a/pcam/data/kitti/kitti.md b/pcam/data/kitti/kitti.md new file mode 100644 index 0000000..965fbb2 --- /dev/null +++ b/pcam/data/kitti/kitti.md @@ -0,0 +1,14 @@ +# Dataset: KITTI + +## Folder structure + +Place the KITTI dataset in this folder (`/path/to/pcam/data/kitti/`), which should contain the following subfolders: +``` +./dataset/ +./dataset/poses/ +./dataset/poses/*.txt +./dataset/sequences/ +./dataset/sequences/00/ +./dataset/sequences/01/ +etc. +``` diff --git a/pcam/data/modelnet/modelnet.md b/pcam/data/modelnet/modelnet.md new file mode 100644 index 0000000..bf455d4 --- /dev/null +++ b/pcam/data/modelnet/modelnet.md @@ -0,0 +1,12 @@ +# Dataset: ModelNet + +## Folder structure + +Place the ModelNet dataset in this folder (`/path/to/pcam/data/modelnet/`), which should contain the following subfolders: +``` +./modelnet40_ply_hdf5_2048/ +./modelnet40_ply_hdf5_2048/ply_data_test0.h5 +./modelnet40_ply_hdf5_2048/ply_data_test1.h5 +./modelnet40_ply_hdf5_2048/ply_data_test_0_id2file.json +etc. +``` diff --git a/pcam/datasets/collate.py b/pcam/datasets/collate.py new file mode 100644 index 0000000..046f72c --- /dev/null +++ b/pcam/datasets/collate.py @@ -0,0 +1,68 @@ +# Part of the code in this file is taken from https://github.com/chrischoy/DeepGlobalRegistration/blob/46dd264580b4191accedc277f4ae434acdb4d380/dataloader/base_loader.py#L24 + +from pcam.tool.transforms import decompose_rotation_translation +import lightconvpoint.nn as lcp_nn +import torch +import numpy as np + +class CollateFunc: + def __init__(self): + self.collation_fn = self.collate_pair_fn + + def __call__(self, list_data): + return self.collation_fn(list_data) + + def collate_pair_fn(self, list_data): + N = len(list_data) + + list_data = [data for data in list_data if data is not None] + if N != len(list_data): + logging.info(f"Retain {len(list_data)} from {N} data.") + if len(list_data) == 0: + raise ValueError('No data in the batch') + + xyz0_full, xyz1_full, xyz0, xyz1, trans, inv_trans, one_one_attention, filename, p0_mean, p1_mean = list( + zip(*list_data) + ) + + trans_batch = torch.from_numpy(np.stack(trans)).float() + inv_trans_batch = torch.from_numpy(np.stack(inv_trans)).float() + + pts1 = torch.from_numpy(np.stack(xyz0)).float() + pts2 = torch.from_numpy(np.stack(xyz1)).float() + raw_pts1 = torch.from_numpy(np.stack(xyz0_full)).float() + raw_pts2 = torch.from_numpy(np.stack(xyz1_full)).float() + + p0_mean = torch.from_numpy(np.stack(p0_mean)).float().transpose(1, 2) + p1_mean = torch.from_numpy(np.stack(p1_mean)).float().transpose(1, 2) + + Rs, ts = decompose_rotation_translation(trans_batch) + Rs_inv, ts_inv = decompose_rotation_translation(inv_trans_batch) + + ts = ts.unsqueeze(-1) + ts_inv = ts_inv.unsqueeze(-1) + + search = lcp_nn.SearchQuantized(K=32, stride=1) + pts1 = pts1.transpose(1, 2) + pts2 = pts2.transpose(1, 2) + indices1, pts1 = search(pts1) + indices2, pts2 = search(pts2) + + one_one_attention = torch.from_numpy(np.stack(one_one_attention)).float() + + return { + "raw_src": raw_pts1, + "raw_tgt": raw_pts2, + "src": pts1, + "tgt": pts2, + "filename": filename, + "attention": one_one_attention, + "indices1": indices1, + "indices2": indices2, + "rotation": Rs, + "translation": ts, + "inv_rotation": Rs_inv, + "inv_translation": ts_inv, + "p0_mean": p0_mean, + "p1_mean": p1_mean, + } diff --git a/pcam/datasets/kitti_dataset.py b/pcam/datasets/kitti_dataset.py new file mode 100644 index 0000000..dcf3610 --- /dev/null +++ b/pcam/datasets/kitti_dataset.py @@ -0,0 +1,219 @@ +""" +Most of the code in this file is taken from https://github.com/chrischoy/DeepGlobalRegistration/blob/master/dataloader/threedmatch_loader.py + +This is dataloader used in [1-3] and we re-use it to train and test PCAM on the same dataset. + +[1] Christopher Choy, Wei Dong, Vladlen Koltun. Deep Global Registration, CVPR, 2020. +[2] Christopher Choy, Jaesik Park, Vladlen Koltun. Fully Convolutional Geometric Features. ICCV, 2019. +[3] Christopher Choy, JunYoung Gwak, Silvio Savarese. 4D Spatio-Temporal ConvNets: Minkowski Convolutional Neural Networks. CVPR, 2019. +""" + +import glob +import os +import numpy as np +import torch +from pcam.datasets.pcam_dataset import PCAMDataset +import MinkowskiEngine as ME +from pcam.tool.pointcloud import make_open3d_point_cloud +from pcam.tool.transforms import apply_transform, sample_points, ground_truth_attention +import open3d as o3d +from tqdm import tqdm + + +class KittiDataset(PCAMDataset): + dir_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'split') + DATA_FILES = { + 'train': os.path.join(dir_path, 'train_kitti.txt'), + 'val': os.path.join(dir_path, 'val_kitti.txt'), + 'test': os.path.join(dir_path, 'test_kitti.txt'), + } + MIN_DIST = 10 + def __init__(self, + root, + phase, + icp_path, + voxel_size=0.3, + num_points=4096): + super(KittiDataset, self).__init__(root, phase, voxel_size, num_points) + self.icp_path = icp_path + max_time_diff = 3 + + self.files = [] + self.kitti_icp_cache = {} + self.kitti_cache = {} + + subset_names = open(self.DATA_FILES[phase]).read().split() + for dirname in subset_names: + drive_id = int(dirname) + dirname = root + '/sequences/%02d/velodyne/*.bin' % drive_id + print(dirname) + fnames = glob.glob(dirname) + assert len(fnames) > 0, f"Make sure that the path {root} has data {dirname}" + inames = sorted([int(os.path.split(fname)[-1][:-4]) for fname in fnames]) + + all_odo = self.get_video_odometry(drive_id, return_all=True) + all_pos = np.array([self.odometry_to_positions(odo) for odo in all_odo]) + Ts = all_pos[:, :3, 3] + pdist = (Ts.reshape(1, -1, 3) - Ts.reshape(-1, 1, 3))**2 + pdist = np.sqrt(pdist.sum(-1)) + more_than_10 = pdist > self.MIN_DIST + curr_time = inames[0] + while curr_time in inames: + # Find the min index + next_time = np.where(more_than_10[curr_time][curr_time:curr_time + 100])[0] + if len(next_time) == 0: + curr_time += 1 + else: + # Follow https://github.com/yewzijian/3DFeatNet/blob/master/scripts_data_processing/kitti/process_kitti_data.m#L44 + next_time = next_time[0] + curr_time - 1 + + if next_time in inames: + self.files.append((drive_id, curr_time, next_time)) + if phase == "train": + # curr_time += 5 + curr_time = next_time + 1 + else: + curr_time = next_time + 1 + + # Remove problematic sequence + for item in [ + (8, 15, 58), + ]: + if item in self.files: + self.files.pop(self.files.index(item)) + + + def __getitem__(self, idx): + drive = self.files[idx][0] + t0, t1 = self.files[idx][1], self.files[idx][2] + key = '%d_%d_%d' % (drive, t0, t1) + filename = self.icp_path + '/' + key + '.npy' + pts1_file = self.icp_path + '/' + key + '_pts1.npy' + pts2_file = self.icp_path + '/' + key + '_pts2.npy' + + fname0 = self._get_velodyne_fn(drive, t0) + fname1 = self._get_velodyne_fn(drive, t1) + + if key not in self.kitti_icp_cache: + if not os.path.exists(filename): + all_odometry = self.get_video_odometry(drive, [t0, t1]) + positions = [self.odometry_to_positions(odometry) for odometry in all_odometry] + + # XYZ and reflectance + xyzr0 = np.fromfile(fname0, dtype=np.float32).reshape(-1, 4) + xyzr1 = np.fromfile(fname1, dtype=np.float32).reshape(-1, 4) + + xyz0 = xyzr0[:, :3] + xyz1 = xyzr1[:, :3] + + # work on the downsampled xyzs, 0.05m == 5cm + sel0 = ME.utils.sparse_quantize(xyz0 / 0.05, return_index=True) + sel1 = ME.utils.sparse_quantize(xyz1 / 0.05, return_index=True) + + M = (self.velo2cam @ positions[0].T @ np.linalg.inv(positions[1].T) + @ np.linalg.inv(self.velo2cam)).T + xyz0_t = apply_transform(xyz0[sel0], M) + pcd0 = make_open3d_point_cloud(xyz0_t) + pcd1 = make_open3d_point_cloud(xyz1[sel1]) + reg = o3d.registration.registration_icp(pcd0, pcd1, 0.2, np.eye(4), + o3d.registration.TransformationEstimationPointToPoint(), + o3d.registration.ICPConvergenceCriteria(max_iteration=200)) + pcd0.transform(reg.transformation) + T_gt = M @ reg.transformation + np.save(filename, T_gt) + else: + T_gt = np.load(filename) + self.kitti_icp_cache[key] = T_gt + else: + T_gt = self.kitti_icp_cache[key] + + if not os.path.exists(pts1_file): + xyzr0 = np.fromfile(fname0, dtype=np.float32).reshape(-1, 4) + xyzr1 = np.fromfile(fname1, dtype=np.float32).reshape(-1, 4) + + xyz0 = xyzr0[:, :3] + xyz1 = xyzr1[:, :3] + + np.save(pts1_file, xyz0) + np.save(pts2_file, xyz1) + + else: + xyz0 = np.load(pts1_file) + xyz1 = np.load(pts2_file) + + xyz0_full = torch.from_numpy(xyz0) + xyz1_full = torch.from_numpy(xyz1) + + xyz0_th = xyz0_full + xyz1_th = xyz1_full + + sel0 = ME.utils.sparse_quantize(xyz0_th / self.voxel_size, return_index=True) + sel1 = ME.utils.sparse_quantize(xyz1_th / self.voxel_size, return_index=True) + + unique_xyz0_th = xyz0_th[sel0] + unique_xyz1_th = xyz1_th[sel1] + + unique_xyz0_th, unique_xyz1_th = unique_xyz0_th.float().numpy(), unique_xyz1_th.float().numpy() + unique_xyz0_th = sample_points(unique_xyz0_th, self.num_points) + unique_xyz1_th = sample_points(unique_xyz1_th, self.num_points) + + attention = ground_truth_attention(unique_xyz0_th, unique_xyz1_th, T_gt) + xyz0_mean, xyz1_mean = np.zeros((1, 3)), np.zeros((1, 3)) + + return xyz0_th, xyz1_th, unique_xyz0_th, unique_xyz1_th, T_gt, np.linalg.inv(T_gt), attention.A, filename, xyz0_mean, xyz1_mean + + + def get_all_scan_ids(self, drive_id): + fnames = glob.glob(self.root + '/sequences/%02d/velodyne/*.bin' % drive_id) + assert len( + fnames) > 0, f"Make sure that the path {self.root} has drive id: {drive_id}" + inames = [int(os.path.split(fname)[-1][:-4]) for fname in fnames] + return inames + + @property + def velo2cam(self): + try: + velo2cam = self._velo2cam + except AttributeError: + R = np.array([ + 7.533745e-03, -9.999714e-01, -6.166020e-04, 1.480249e-02, 7.280733e-04, + -9.998902e-01, 9.998621e-01, 7.523790e-03, 1.480755e-02 + ]).reshape(3, 3) + T = np.array([-4.069766e-03, -7.631618e-02, -2.717806e-01]).reshape(3, 1) + velo2cam = np.hstack([R, T]) + self._velo2cam = np.vstack((velo2cam, [0, 0, 0, 1])).T + return self._velo2cam + + + def _get_velodyne_fn(self, drive, t): + fname = self.root + '/sequences/%02d/velodyne/%06d.bin' % (drive, t) + return fname + + def odometry_to_positions(self, odometry): + T_w_cam0 = odometry.reshape(3, 4) + T_w_cam0 = np.vstack((T_w_cam0, [0, 0, 0, 1])) + return T_w_cam0 + + def get_video_odometry(self, drive, indices=None, ext='.txt', return_all=False): + data_path = self.root + '/poses/%02d.txt' % drive + if data_path not in self.kitti_cache: + self.kitti_cache[data_path] = np.genfromtxt(data_path) + if return_all: + return self.kitti_cache[data_path] + else: + return self.kitti_cache[data_path][indices] + +def test(root, phase, icp_path): + dataset = PCAMKittiDataset(root, phase, icp_path) + cnt = 0 + for i in tqdm(range(len(dataset))): + dataset[i] + cnt += 1 + print(phase, len(dataset), cnt) + +if __name__ == '__main__': + root = "/gpfsscratch/rech/kvd/uyl37fq/PCAM/kitti/dataset" + icp_path = "/gpfsscratch/rech/kvd/uyl37fq/PCAM/kitti/icp" + test(root, "val", icp_path) # val 643 643 + test(root, "test", icp_path) # test 1623 1623 + test(root, "train", icp_path) # train 7317 7317 diff --git a/pcam/datasets/kitti_dm.py b/pcam/datasets/kitti_dm.py new file mode 100644 index 0000000..024f7f2 --- /dev/null +++ b/pcam/datasets/kitti_dm.py @@ -0,0 +1,37 @@ +# Part of the code in this file is taken from https://github.com/chrischoy/DeepGlobalRegistration/blob/master/dataloader/kitti_loader.py + +from pcam.datasets.kitti_dataset import KittiDataset +from torch.utils.data import DataLoader +from pcam.datasets.collate import CollateFunc + + +class KittiDataModule(): + def __init__(self, root, icp_path, num_points): + self.train_set = KittiDataset(root, "train", icp_path, num_points=num_points) + self.val_set = KittiDataset(root, "val", icp_path, num_points=num_points) + self.test_set = KittiDataset(root, "test", icp_path, num_points=num_points) + self.collate_fn = CollateFunc() + + def train_loader(self): + return DataLoader(self.train_set, + pin_memory=True, + batch_size=1, + collate_fn=self.collate_fn, + num_workers=4, + shuffle=True) + + def val_loader(self): + return DataLoader(self.val_set, + pin_memory=True, + batch_size=1, + collate_fn=self.collate_fn, + num_workers=4, + shuffle=False) + + def test_loader(self): + return DataLoader(self.test_set, + pin_memory=True, + batch_size=1, + collate_fn=self.collate_fn, + num_workers=4, + shuffle=False) diff --git a/pcam/datasets/modelnet40.py b/pcam/datasets/modelnet40.py new file mode 100755 index 0000000..062fc60 --- /dev/null +++ b/pcam/datasets/modelnet40.py @@ -0,0 +1,242 @@ +""" +Most of the code in this file is taken from https://github.com/WangYueFt/prnet/blob/master/data.py + +This is dataloader used in PrNet [1] that we re-use to train and test on the same dataset. +The modifications concern extra information needed to train and test PCAM. + +[1] Yue Wang and Justin M. Solomon. PRNet: Self-Supervised Learning for Partial-to-Partial Registration. NeurIPS, 2019. +""" + +import os +import sys +import glob +import h5py +import numpy as np +from scipy.spatial.transform import Rotation +from torch.utils.data import Dataset +from sklearn.neighbors import NearestNeighbors +from scipy.spatial.distance import minkowski +import lightconvpoint.nn as lcp_nn +import torch +from pcam.tool.transforms import ground_truth_attention + + +# --- Base directory +basedir = os.path.dirname(os.path.realpath(__file__)) +BASE_DIR = basedir + "/../data/modelnet/" + + +def load_data(partition): + DATA_DIR = BASE_DIR + all_data = [] + all_label = [] + + print() + print(os.path.join(DATA_DIR, 'modelnet40_ply_hdf5_2048', 'ply_data_%s*.h5' % partition)) + print() + + for h5_name in glob.glob(os.path.join(DATA_DIR, 'modelnet40_ply_hdf5_2048', 'ply_data_%s*.h5' % partition)): + f = h5py.File(h5_name, 'r') + data = f['data'][:].astype('float32') + label = f['label'][:].astype('int64') + f.close() + all_data.append(data) + all_label.append(label) + all_data = np.concatenate(all_data, axis=0) + all_label = np.concatenate(all_label, axis=0) + return all_data, all_label + + +def translate_pointcloud(pointcloud): + xyz1 = np.random.uniform(low=2. / 3., high=3. / 2., size=[3]) + xyz2 = np.random.uniform(low=-0.2, high=0.2, size=[3]) + + translated_pointcloud = np.add(np.multiply(pointcloud, xyz1), xyz2).astype('float32') + return translated_pointcloud + + +def jitter_pointcloud(pointcloud, sigma=0.01, clip=0.05): + N, C = pointcloud.shape + pointcloud += np.clip(sigma * np.random.randn(N, C), -1 * clip, clip) + return pointcloud + + +def farthest_subsample_points(pointcloud1, pointcloud2, num_subsampled_points=768): + pointcloud1 = pointcloud1.T + pointcloud2 = pointcloud2.T + num_points = pointcloud1.shape[0] + nbrs1 = NearestNeighbors(n_neighbors=num_subsampled_points, algorithm='auto', + metric=lambda x, y: minkowski(x, y)).fit(pointcloud1) + random_p1 = np.random.random(size=(1, 3)) + np.array([[500, 500, 500]]) * np.random.choice([1, -1, 1, -1]) + idx1 = nbrs1.kneighbors(random_p1, return_distance=False).reshape((num_subsampled_points,)) + nbrs2 = NearestNeighbors(n_neighbors=num_subsampled_points, algorithm='auto', + metric=lambda x, y: minkowski(x, y)).fit(pointcloud2) + random_p2 = random_p1 #np.random.random(size=(1, 3)) + np.array([[500, 500, 500]]) * np.random.choice([1, -1, 2, -2]) +# random_p2 = np.random.random(size=(1, 3)) + np.array([[500, 500, 500]]) * np.random.choice([1, -1, 2, -2]) + idx2 = nbrs2.kneighbors(random_p2, return_distance=False).reshape((num_subsampled_points,)) + return pointcloud1[idx1, :].T, pointcloud2[idx2, :].T + + +class ModelNet40(Dataset): + def __init__(self, num_points, num_subsampled_points=768, partition='train', + gaussian_noise=False, unseen=False, rot_factor=4, category=None): + super(ModelNet40, self).__init__() + if partition in ['train', 'val']: + self.data, self.label = load_data('train') + else: + self.data, self.label = load_data('test') + + + if category is not None: + self.data = self.data[self.label==category] + self.label = self.label[self.label==category] + self.num_points = num_points + self.num_subsampled_points = num_subsampled_points + self.partition = partition + self.gaussian_noise = gaussian_noise + self.unseen = unseen + self.label = self.label.squeeze() + self.rot_factor = rot_factor + if num_points != num_subsampled_points: + self.subsampled = True + else: + self.subsampled = False + if self.unseen: + ######## simulate testing on first 20 categories while training on last 20 categories + if self.partition == 'test': + self.data = self.data[self.label>=20] + self.label = self.label[self.label>=20] + elif self.partition == "val": + self.data = self.data[(self.label>=16) & (self.label < 20)] + self.label = self.label[(self.label>=16) & (self.label < 20)] + elif self.partition == 'train': + self.data = self.data[self.label<16] + self.label = self.label[self.label<16] + else: + if partition == 'train' or partition == "val": + np.random.seed(42) + p = np.random.permutation(self.data.shape[0]) + self.data = self.data[p, :, :] + self.label = self.label[p] + if partition == 'train': + self.data = self.data[:8000, :, :] + self.label = self.label[:8000] + elif partition == 'val': + self.data = self.data[8000:, :, :] + self.label = self.label[8000:] + + + def __getitem__(self, item): + pointcloud = self.data[item][:self.num_points] + if self.partition != 'train': + np.random.seed(item) + anglex = np.random.uniform() * np.pi / self.rot_factor + angley = np.random.uniform() * np.pi / self.rot_factor + anglez = np.random.uniform() * np.pi / self.rot_factor + cosx = np.cos(anglex) + cosy = np.cos(angley) + cosz = np.cos(anglez) + sinx = np.sin(anglex) + siny = np.sin(angley) + sinz = np.sin(anglez) + Rx = np.array([[1, 0, 0], + [0, cosx, -sinx], + [0, sinx, cosx]]) + Ry = np.array([[cosy, 0, siny], + [0, 1, 0], + [-siny, 0, cosy]]) + Rz = np.array([[cosz, -sinz, 0], + [sinz, cosz, 0], + [0, 0, 1]]) + R_ab = Rx.dot(Ry).dot(Rz) + R_ba = R_ab.T + translation_ab = np.array([np.random.uniform(-0.5, 0.5), np.random.uniform(-0.5, 0.5), + np.random.uniform(-0.5, 0.5)]) + translation_ba = -R_ba.dot(translation_ab) + + pointcloud1 = pointcloud.T + + rotation_ab = Rotation.from_euler('zyx', [anglez, angley, anglex]) + pointcloud2 = rotation_ab.apply(pointcloud1.T).T + np.expand_dims(translation_ab, axis=1) + + euler_ab = np.asarray([anglez, angley, anglex]) + euler_ba = -euler_ab[::-1] + + pointcloud1 = np.random.permutation(pointcloud1.T).T + pointcloud2 = np.random.permutation(pointcloud2.T).T + + if self.gaussian_noise: + pointcloud1 = jitter_pointcloud(pointcloud1) + pointcloud2 = jitter_pointcloud(pointcloud2) + + if self.subsampled: + pointcloud1, pointcloud2 = farthest_subsample_points(pointcloud1, pointcloud2, + num_subsampled_points=self.num_subsampled_points) + search = lcp_nn.SearchQuantized(K=32, stride=1) + indices1, pointcloud1 = search(torch.from_numpy(pointcloud1).float().unsqueeze(0)) + indices2, pointcloud2 = search(torch.from_numpy(pointcloud2).float().unsqueeze(0)) + pointcloud1 = pointcloud1.squeeze().numpy() + pointcloud2 = pointcloud2.squeeze().numpy() + + ########### + # Ground truth attention matrix for training + ret_trans = np.identity(4) + ret_trans[:3, :3] = R_ab + ret_trans[:3, 3] = translation_ab + attention = ground_truth_attention(pointcloud1.T, pointcloud2.T, ret_trans) + ########### + + return pointcloud1.astype('float32'), pointcloud2.astype('float32'), R_ab.astype('float32'), \ + translation_ab.astype('float32'), R_ba.astype('float32'), translation_ba.astype('float32'), \ + euler_ab.astype('float32'), euler_ba.astype('float32'), \ + indices1.squeeze().numpy(), indices2.squeeze().numpy(), \ + attention.A, np.zeros((1, 3)), np.zeros((1, 3)) + + def __len__(self): + return self.data.shape[0] + + +def collate_fn(data): + + pointcloud1, pointcloud2, R_ab, translation_ab, \ + R_ba, translation_ba, euler_ab, euler_ba, \ + indices1, indices2, one_one_attention, p0_mean, p1_mean = list(zip(*data)) + + pts1 = torch.from_numpy(np.stack(pointcloud1)).float() + pts2 = torch.from_numpy(np.stack(pointcloud2)).float() + raw_pts1 = torch.from_numpy(np.stack(pointcloud1)).float() + raw_pts2 = torch.from_numpy(np.stack(pointcloud2)).float() + orig_raw_pts1 = torch.from_numpy(np.stack(pointcloud1)).float() + orig_raw_pts2 = torch.from_numpy(np.stack(pointcloud2)).float() + + p0_mean = torch.from_numpy(np.stack(p0_mean)).float().transpose(1, 2) + p1_mean = torch.from_numpy(np.stack(p1_mean)).float().transpose(1, 2) + + indices1 = torch.from_numpy(np.stack(indices1)).float() + indices2 = torch.from_numpy(np.stack(indices2)).float() + + Rs = torch.from_numpy(np.stack(R_ab)).float() + ts = torch.from_numpy(np.stack(translation_ab)).float().unsqueeze(-1) + Rs_inv = torch.from_numpy(np.stack(R_ba)).float() + ts_inv = torch.from_numpy(np.stack(translation_ba)).float().unsqueeze(-1) + + one_one_attention = torch.from_numpy(np.stack(one_one_attention)).float() + + return { + "raw_src": raw_pts1, + "raw_tgt": raw_pts2, + "src": pts1, + "tgt": pts2, + "attention": one_one_attention, + "indices1": indices1, + "indices2": indices2, + "rotation": Rs, + "translation": ts, + "inv_rotation": Rs_inv, + "inv_translation": ts_inv, + "orig_raw_src": orig_raw_pts1, + "orig_raw_tgt": orig_raw_pts2, + "p0_mean": p0_mean, + "p1_mean": p1_mean, + } + diff --git a/pcam/datasets/pcam_dataset.py b/pcam/datasets/pcam_dataset.py new file mode 100644 index 0000000..3090c8a --- /dev/null +++ b/pcam/datasets/pcam_dataset.py @@ -0,0 +1,14 @@ +import torch +from torch.utils.data import Dataset + + +class PCAMDataset(Dataset): + def __init__(self, root, phase, voxel_size, num_points): + super(PCAMDataset, self).__init__() + self.root = root + self.phase = phase + self.voxel_size = voxel_size + self.num_points = num_points + + def __len__(self): + return len(self.files) diff --git a/pcam/datasets/split/test_3dmatch.txt b/pcam/datasets/split/test_3dmatch.txt new file mode 100755 index 0000000..f5e2491 --- /dev/null +++ b/pcam/datasets/split/test_3dmatch.txt @@ -0,0 +1,8 @@ +7-scenes-redkitchen +sun3d-home_at-home_at_scan1_2013_jan_1 +sun3d-home_md-home_md_scan9_2012_sep_30 +sun3d-hotel_uc-scan3 +sun3d-hotel_umd-maryland_hotel1 +sun3d-hotel_umd-maryland_hotel3 +sun3d-mit_76_studyroom-76-1studyroom2 +sun3d-mit_lab_hj-lab_hj_tea_nov_2_2012_scan1_erika \ No newline at end of file diff --git a/pcam/datasets/split/test_kitti.txt b/pcam/datasets/split/test_kitti.txt new file mode 100755 index 0000000..236483f --- /dev/null +++ b/pcam/datasets/split/test_kitti.txt @@ -0,0 +1,3 @@ +8 +9 +10 diff --git a/pcam/datasets/split/test_modelnet40.txt b/pcam/datasets/split/test_modelnet40.txt new file mode 100755 index 0000000..ff4b875 --- /dev/null +++ b/pcam/datasets/split/test_modelnet40.txt @@ -0,0 +1,2468 @@ +glass_box/test/glass_box_0172.off +glass_box/test/glass_box_0173.off +glass_box/test/glass_box_0174.off +glass_box/test/glass_box_0175.off +glass_box/test/glass_box_0176.off +glass_box/test/glass_box_0177.off +glass_box/test/glass_box_0178.off +glass_box/test/glass_box_0179.off +glass_box/test/glass_box_0180.off +glass_box/test/glass_box_0181.off +glass_box/test/glass_box_0182.off +glass_box/test/glass_box_0183.off +glass_box/test/glass_box_0184.off +glass_box/test/glass_box_0185.off +glass_box/test/glass_box_0186.off +glass_box/test/glass_box_0187.off +glass_box/test/glass_box_0188.off +glass_box/test/glass_box_0189.off +glass_box/test/glass_box_0190.off +glass_box/test/glass_box_0191.off +glass_box/test/glass_box_0192.off +glass_box/test/glass_box_0193.off +glass_box/test/glass_box_0194.off +glass_box/test/glass_box_0195.off +glass_box/test/glass_box_0196.off +glass_box/test/glass_box_0197.off +glass_box/test/glass_box_0198.off +glass_box/test/glass_box_0199.off +glass_box/test/glass_box_0200.off +glass_box/test/glass_box_0201.off +glass_box/test/glass_box_0202.off +glass_box/test/glass_box_0203.off +glass_box/test/glass_box_0204.off +glass_box/test/glass_box_0205.off +glass_box/test/glass_box_0206.off +glass_box/test/glass_box_0207.off +glass_box/test/glass_box_0208.off +glass_box/test/glass_box_0209.off +glass_box/test/glass_box_0210.off +glass_box/test/glass_box_0211.off +glass_box/test/glass_box_0212.off +glass_box/test/glass_box_0213.off +glass_box/test/glass_box_0214.off +glass_box/test/glass_box_0215.off +glass_box/test/glass_box_0216.off +glass_box/test/glass_box_0217.off +glass_box/test/glass_box_0218.off +glass_box/test/glass_box_0219.off +glass_box/test/glass_box_0220.off +glass_box/test/glass_box_0221.off +glass_box/test/glass_box_0222.off +glass_box/test/glass_box_0223.off +glass_box/test/glass_box_0224.off +glass_box/test/glass_box_0225.off +glass_box/test/glass_box_0226.off +glass_box/test/glass_box_0227.off +glass_box/test/glass_box_0228.off +glass_box/test/glass_box_0229.off +glass_box/test/glass_box_0230.off +glass_box/test/glass_box_0231.off +glass_box/test/glass_box_0232.off +glass_box/test/glass_box_0233.off +glass_box/test/glass_box_0234.off +glass_box/test/glass_box_0235.off +glass_box/test/glass_box_0236.off +glass_box/test/glass_box_0237.off +glass_box/test/glass_box_0238.off +glass_box/test/glass_box_0239.off +glass_box/test/glass_box_0240.off +glass_box/test/glass_box_0241.off +glass_box/test/glass_box_0242.off +glass_box/test/glass_box_0243.off +glass_box/test/glass_box_0244.off +glass_box/test/glass_box_0245.off +glass_box/test/glass_box_0246.off +glass_box/test/glass_box_0247.off +glass_box/test/glass_box_0248.off +glass_box/test/glass_box_0249.off +glass_box/test/glass_box_0250.off +glass_box/test/glass_box_0251.off +glass_box/test/glass_box_0252.off +glass_box/test/glass_box_0253.off +glass_box/test/glass_box_0254.off +glass_box/test/glass_box_0255.off +glass_box/test/glass_box_0256.off +glass_box/test/glass_box_0257.off +glass_box/test/glass_box_0258.off +glass_box/test/glass_box_0259.off +glass_box/test/glass_box_0260.off +glass_box/test/glass_box_0261.off +glass_box/test/glass_box_0262.off +glass_box/test/glass_box_0263.off +glass_box/test/glass_box_0264.off +glass_box/test/glass_box_0265.off +glass_box/test/glass_box_0266.off +glass_box/test/glass_box_0267.off +glass_box/test/glass_box_0268.off +glass_box/test/glass_box_0269.off +glass_box/test/glass_box_0270.off +glass_box/test/glass_box_0271.off +laptop/test/laptop_0150.off +laptop/test/laptop_0151.off +laptop/test/laptop_0152.off +laptop/test/laptop_0153.off +laptop/test/laptop_0154.off +laptop/test/laptop_0155.off +laptop/test/laptop_0156.off +laptop/test/laptop_0157.off +laptop/test/laptop_0158.off +laptop/test/laptop_0159.off +laptop/test/laptop_0160.off +laptop/test/laptop_0161.off +laptop/test/laptop_0162.off +laptop/test/laptop_0163.off +laptop/test/laptop_0164.off +laptop/test/laptop_0165.off +laptop/test/laptop_0166.off +laptop/test/laptop_0167.off +laptop/test/laptop_0168.off +laptop/test/laptop_0169.off +sink/test/sink_0129.off +sink/test/sink_0130.off +sink/test/sink_0131.off +sink/test/sink_0132.off +sink/test/sink_0133.off +sink/test/sink_0134.off +sink/test/sink_0135.off +sink/test/sink_0136.off +sink/test/sink_0137.off +sink/test/sink_0138.off +sink/test/sink_0139.off +sink/test/sink_0140.off +sink/test/sink_0141.off +sink/test/sink_0142.off +sink/test/sink_0143.off +sink/test/sink_0144.off +sink/test/sink_0145.off +sink/test/sink_0146.off +sink/test/sink_0147.off +sink/test/sink_0148.off +night_stand/test/night_stand_0201.off +night_stand/test/night_stand_0202.off +night_stand/test/night_stand_0203.off +night_stand/test/night_stand_0204.off +night_stand/test/night_stand_0205.off +night_stand/test/night_stand_0206.off +night_stand/test/night_stand_0207.off +night_stand/test/night_stand_0208.off +night_stand/test/night_stand_0209.off +night_stand/test/night_stand_0210.off +night_stand/test/night_stand_0211.off +night_stand/test/night_stand_0212.off +night_stand/test/night_stand_0213.off +night_stand/test/night_stand_0214.off +night_stand/test/night_stand_0215.off +night_stand/test/night_stand_0216.off +night_stand/test/night_stand_0217.off +night_stand/test/night_stand_0218.off +night_stand/test/night_stand_0219.off +night_stand/test/night_stand_0220.off +night_stand/test/night_stand_0221.off +night_stand/test/night_stand_0222.off +night_stand/test/night_stand_0223.off +night_stand/test/night_stand_0224.off +night_stand/test/night_stand_0225.off +night_stand/test/night_stand_0226.off +night_stand/test/night_stand_0227.off +night_stand/test/night_stand_0228.off +night_stand/test/night_stand_0229.off +night_stand/test/night_stand_0230.off +night_stand/test/night_stand_0231.off +night_stand/test/night_stand_0232.off +night_stand/test/night_stand_0233.off +night_stand/test/night_stand_0234.off +night_stand/test/night_stand_0235.off +night_stand/test/night_stand_0236.off +night_stand/test/night_stand_0237.off +night_stand/test/night_stand_0238.off +night_stand/test/night_stand_0239.off +night_stand/test/night_stand_0240.off +night_stand/test/night_stand_0241.off +night_stand/test/night_stand_0242.off +night_stand/test/night_stand_0243.off +night_stand/test/night_stand_0244.off +night_stand/test/night_stand_0245.off +night_stand/test/night_stand_0246.off +night_stand/test/night_stand_0247.off +night_stand/test/night_stand_0248.off +night_stand/test/night_stand_0249.off +night_stand/test/night_stand_0250.off +night_stand/test/night_stand_0251.off +night_stand/test/night_stand_0252.off +night_stand/test/night_stand_0253.off +night_stand/test/night_stand_0254.off +night_stand/test/night_stand_0255.off +night_stand/test/night_stand_0256.off +night_stand/test/night_stand_0257.off +night_stand/test/night_stand_0258.off +night_stand/test/night_stand_0259.off +night_stand/test/night_stand_0260.off +night_stand/test/night_stand_0261.off +night_stand/test/night_stand_0262.off +night_stand/test/night_stand_0263.off +night_stand/test/night_stand_0264.off +night_stand/test/night_stand_0265.off +night_stand/test/night_stand_0266.off +night_stand/test/night_stand_0267.off +night_stand/test/night_stand_0268.off +night_stand/test/night_stand_0269.off +night_stand/test/night_stand_0270.off +night_stand/test/night_stand_0271.off +night_stand/test/night_stand_0272.off +night_stand/test/night_stand_0273.off +night_stand/test/night_stand_0274.off +night_stand/test/night_stand_0275.off +night_stand/test/night_stand_0276.off +night_stand/test/night_stand_0277.off +night_stand/test/night_stand_0278.off +night_stand/test/night_stand_0279.off +night_stand/test/night_stand_0280.off +night_stand/test/night_stand_0281.off +night_stand/test/night_stand_0282.off +night_stand/test/night_stand_0283.off +night_stand/test/night_stand_0284.off +night_stand/test/night_stand_0285.off +night_stand/test/night_stand_0286.off +car/test/car_0198.off +car/test/car_0199.off +car/test/car_0200.off +car/test/car_0201.off +car/test/car_0202.off +car/test/car_0203.off +car/test/car_0204.off +car/test/car_0205.off +car/test/car_0206.off +car/test/car_0207.off +car/test/car_0208.off +car/test/car_0209.off +car/test/car_0210.off +car/test/car_0211.off +car/test/car_0212.off +car/test/car_0213.off +car/test/car_0214.off +car/test/car_0215.off +car/test/car_0216.off +car/test/car_0217.off +car/test/car_0218.off +car/test/car_0219.off +car/test/car_0220.off +car/test/car_0221.off +car/test/car_0222.off +car/test/car_0223.off +car/test/car_0224.off +car/test/car_0225.off +car/test/car_0226.off +car/test/car_0227.off +car/test/car_0228.off +car/test/car_0229.off +car/test/car_0230.off +car/test/car_0231.off +car/test/car_0232.off +car/test/car_0233.off +car/test/car_0234.off +car/test/car_0235.off +car/test/car_0236.off +car/test/car_0237.off +car/test/car_0238.off +car/test/car_0239.off +car/test/car_0240.off +car/test/car_0241.off +car/test/car_0242.off +car/test/car_0243.off +car/test/car_0244.off +car/test/car_0245.off +car/test/car_0246.off +car/test/car_0247.off +car/test/car_0248.off +car/test/car_0249.off +car/test/car_0250.off +car/test/car_0251.off +car/test/car_0252.off +car/test/car_0253.off +car/test/car_0254.off +car/test/car_0255.off +car/test/car_0256.off +car/test/car_0257.off +car/test/car_0258.off +car/test/car_0259.off +car/test/car_0260.off +car/test/car_0261.off +car/test/car_0262.off +car/test/car_0263.off +car/test/car_0264.off +car/test/car_0265.off +car/test/car_0266.off +car/test/car_0267.off +car/test/car_0268.off +car/test/car_0269.off +car/test/car_0270.off +car/test/car_0271.off +car/test/car_0272.off +car/test/car_0273.off +car/test/car_0274.off +car/test/car_0275.off +car/test/car_0276.off +car/test/car_0277.off +car/test/car_0278.off +car/test/car_0279.off +car/test/car_0280.off +car/test/car_0281.off +car/test/car_0282.off +car/test/car_0283.off +car/test/car_0284.off +car/test/car_0285.off +car/test/car_0286.off +car/test/car_0287.off +car/test/car_0288.off +car/test/car_0289.off +car/test/car_0290.off +car/test/car_0291.off +car/test/car_0292.off +car/test/car_0293.off +car/test/car_0294.off +car/test/car_0295.off +car/test/car_0296.off +car/test/car_0297.off +dresser/test/dresser_0201.off +dresser/test/dresser_0202.off +dresser/test/dresser_0203.off +dresser/test/dresser_0204.off +dresser/test/dresser_0205.off +dresser/test/dresser_0206.off +dresser/test/dresser_0207.off +dresser/test/dresser_0208.off +dresser/test/dresser_0209.off +dresser/test/dresser_0210.off +dresser/test/dresser_0211.off +dresser/test/dresser_0212.off +dresser/test/dresser_0213.off +dresser/test/dresser_0214.off +dresser/test/dresser_0215.off +dresser/test/dresser_0216.off +dresser/test/dresser_0217.off +dresser/test/dresser_0218.off +dresser/test/dresser_0219.off +dresser/test/dresser_0220.off +dresser/test/dresser_0221.off +dresser/test/dresser_0222.off +dresser/test/dresser_0223.off +dresser/test/dresser_0224.off +dresser/test/dresser_0225.off +dresser/test/dresser_0226.off +dresser/test/dresser_0227.off +dresser/test/dresser_0228.off +dresser/test/dresser_0229.off +dresser/test/dresser_0230.off +dresser/test/dresser_0231.off +dresser/test/dresser_0232.off +dresser/test/dresser_0233.off +dresser/test/dresser_0234.off +dresser/test/dresser_0235.off +dresser/test/dresser_0236.off +dresser/test/dresser_0237.off +dresser/test/dresser_0238.off +dresser/test/dresser_0239.off +dresser/test/dresser_0240.off +dresser/test/dresser_0241.off +dresser/test/dresser_0242.off +dresser/test/dresser_0243.off +dresser/test/dresser_0244.off +dresser/test/dresser_0245.off +dresser/test/dresser_0246.off +dresser/test/dresser_0247.off +dresser/test/dresser_0248.off +dresser/test/dresser_0249.off +dresser/test/dresser_0250.off +dresser/test/dresser_0251.off +dresser/test/dresser_0252.off +dresser/test/dresser_0253.off +dresser/test/dresser_0254.off +dresser/test/dresser_0255.off +dresser/test/dresser_0256.off +dresser/test/dresser_0257.off +dresser/test/dresser_0258.off +dresser/test/dresser_0259.off +dresser/test/dresser_0260.off +dresser/test/dresser_0261.off +dresser/test/dresser_0262.off +dresser/test/dresser_0263.off +dresser/test/dresser_0264.off +dresser/test/dresser_0265.off +dresser/test/dresser_0266.off +dresser/test/dresser_0267.off +dresser/test/dresser_0268.off +dresser/test/dresser_0269.off +dresser/test/dresser_0270.off +dresser/test/dresser_0271.off +dresser/test/dresser_0272.off +dresser/test/dresser_0273.off +dresser/test/dresser_0274.off +dresser/test/dresser_0275.off +dresser/test/dresser_0276.off +dresser/test/dresser_0277.off +dresser/test/dresser_0278.off +dresser/test/dresser_0279.off +dresser/test/dresser_0280.off +dresser/test/dresser_0281.off +dresser/test/dresser_0282.off +dresser/test/dresser_0283.off +dresser/test/dresser_0284.off +dresser/test/dresser_0285.off +dresser/test/dresser_0286.off +toilet/test/toilet_0345.off +toilet/test/toilet_0346.off +toilet/test/toilet_0347.off +toilet/test/toilet_0348.off +toilet/test/toilet_0349.off +toilet/test/toilet_0350.off +toilet/test/toilet_0351.off +toilet/test/toilet_0352.off +toilet/test/toilet_0353.off +toilet/test/toilet_0354.off +toilet/test/toilet_0355.off +toilet/test/toilet_0356.off +toilet/test/toilet_0357.off +toilet/test/toilet_0358.off +toilet/test/toilet_0359.off +toilet/test/toilet_0360.off +toilet/test/toilet_0361.off +toilet/test/toilet_0362.off +toilet/test/toilet_0363.off +toilet/test/toilet_0364.off +toilet/test/toilet_0365.off +toilet/test/toilet_0366.off +toilet/test/toilet_0367.off +toilet/test/toilet_0368.off +toilet/test/toilet_0369.off +toilet/test/toilet_0370.off +toilet/test/toilet_0371.off +toilet/test/toilet_0372.off +toilet/test/toilet_0373.off +toilet/test/toilet_0374.off +toilet/test/toilet_0375.off +toilet/test/toilet_0376.off +toilet/test/toilet_0377.off +toilet/test/toilet_0378.off +toilet/test/toilet_0379.off +toilet/test/toilet_0380.off +toilet/test/toilet_0381.off +toilet/test/toilet_0382.off +toilet/test/toilet_0383.off +toilet/test/toilet_0384.off +toilet/test/toilet_0385.off +toilet/test/toilet_0386.off +toilet/test/toilet_0387.off +toilet/test/toilet_0388.off +toilet/test/toilet_0389.off +toilet/test/toilet_0390.off +toilet/test/toilet_0391.off +toilet/test/toilet_0392.off +toilet/test/toilet_0393.off +toilet/test/toilet_0394.off +toilet/test/toilet_0395.off +toilet/test/toilet_0396.off +toilet/test/toilet_0397.off +toilet/test/toilet_0398.off +toilet/test/toilet_0399.off +toilet/test/toilet_0400.off +toilet/test/toilet_0401.off +toilet/test/toilet_0402.off +toilet/test/toilet_0403.off +toilet/test/toilet_0404.off +toilet/test/toilet_0405.off +toilet/test/toilet_0406.off +toilet/test/toilet_0407.off +toilet/test/toilet_0408.off +toilet/test/toilet_0409.off +toilet/test/toilet_0410.off +toilet/test/toilet_0411.off +toilet/test/toilet_0412.off +toilet/test/toilet_0413.off +toilet/test/toilet_0414.off +toilet/test/toilet_0415.off +toilet/test/toilet_0416.off +toilet/test/toilet_0417.off +toilet/test/toilet_0418.off +toilet/test/toilet_0419.off +toilet/test/toilet_0420.off +toilet/test/toilet_0421.off +toilet/test/toilet_0422.off +toilet/test/toilet_0423.off +toilet/test/toilet_0424.off +toilet/test/toilet_0425.off +toilet/test/toilet_0426.off +toilet/test/toilet_0427.off +toilet/test/toilet_0428.off +toilet/test/toilet_0429.off +toilet/test/toilet_0430.off +toilet/test/toilet_0431.off +toilet/test/toilet_0432.off +toilet/test/toilet_0433.off +toilet/test/toilet_0434.off +toilet/test/toilet_0435.off +toilet/test/toilet_0436.off +toilet/test/toilet_0437.off +toilet/test/toilet_0438.off +toilet/test/toilet_0439.off +toilet/test/toilet_0440.off +toilet/test/toilet_0441.off +toilet/test/toilet_0442.off +toilet/test/toilet_0443.off +toilet/test/toilet_0444.off +curtain/test/curtain_0139.off +curtain/test/curtain_0140.off +curtain/test/curtain_0141.off +curtain/test/curtain_0142.off +curtain/test/curtain_0143.off +curtain/test/curtain_0144.off +curtain/test/curtain_0145.off +curtain/test/curtain_0146.off +curtain/test/curtain_0147.off +curtain/test/curtain_0148.off +curtain/test/curtain_0149.off +curtain/test/curtain_0150.off +curtain/test/curtain_0151.off +curtain/test/curtain_0152.off +curtain/test/curtain_0153.off +curtain/test/curtain_0154.off +curtain/test/curtain_0155.off +curtain/test/curtain_0156.off +curtain/test/curtain_0157.off +curtain/test/curtain_0158.off +wardrobe/test/wardrobe_0088.off +wardrobe/test/wardrobe_0089.off +wardrobe/test/wardrobe_0090.off +wardrobe/test/wardrobe_0091.off +wardrobe/test/wardrobe_0092.off +wardrobe/test/wardrobe_0093.off +wardrobe/test/wardrobe_0094.off +wardrobe/test/wardrobe_0095.off +wardrobe/test/wardrobe_0096.off +wardrobe/test/wardrobe_0097.off +wardrobe/test/wardrobe_0098.off +wardrobe/test/wardrobe_0099.off +wardrobe/test/wardrobe_0100.off +wardrobe/test/wardrobe_0101.off +wardrobe/test/wardrobe_0102.off +wardrobe/test/wardrobe_0103.off +wardrobe/test/wardrobe_0104.off +wardrobe/test/wardrobe_0105.off +wardrobe/test/wardrobe_0106.off +wardrobe/test/wardrobe_0107.off +stool/test/stool_0091.off +stool/test/stool_0092.off +stool/test/stool_0093.off +stool/test/stool_0094.off +stool/test/stool_0095.off +stool/test/stool_0096.off +stool/test/stool_0097.off +stool/test/stool_0098.off +stool/test/stool_0099.off +stool/test/stool_0100.off +stool/test/stool_0101.off +stool/test/stool_0102.off +stool/test/stool_0103.off +stool/test/stool_0104.off +stool/test/stool_0105.off +stool/test/stool_0106.off +stool/test/stool_0107.off +stool/test/stool_0108.off +stool/test/stool_0109.off +stool/test/stool_0110.off +mantel/test/mantel_0285.off +mantel/test/mantel_0286.off +mantel/test/mantel_0287.off +mantel/test/mantel_0288.off +mantel/test/mantel_0289.off +mantel/test/mantel_0290.off +mantel/test/mantel_0291.off +mantel/test/mantel_0292.off +mantel/test/mantel_0293.off +mantel/test/mantel_0294.off +mantel/test/mantel_0295.off +mantel/test/mantel_0296.off +mantel/test/mantel_0297.off +mantel/test/mantel_0298.off +mantel/test/mantel_0299.off +mantel/test/mantel_0300.off +mantel/test/mantel_0301.off +mantel/test/mantel_0302.off +mantel/test/mantel_0303.off +mantel/test/mantel_0304.off +mantel/test/mantel_0305.off +mantel/test/mantel_0306.off +mantel/test/mantel_0307.off +mantel/test/mantel_0308.off +mantel/test/mantel_0309.off +mantel/test/mantel_0310.off +mantel/test/mantel_0311.off +mantel/test/mantel_0312.off +mantel/test/mantel_0313.off +mantel/test/mantel_0314.off +mantel/test/mantel_0315.off +mantel/test/mantel_0316.off +mantel/test/mantel_0317.off +mantel/test/mantel_0318.off +mantel/test/mantel_0319.off +mantel/test/mantel_0320.off +mantel/test/mantel_0321.off +mantel/test/mantel_0322.off +mantel/test/mantel_0323.off +mantel/test/mantel_0324.off +mantel/test/mantel_0325.off +mantel/test/mantel_0326.off +mantel/test/mantel_0327.off +mantel/test/mantel_0328.off +mantel/test/mantel_0329.off +mantel/test/mantel_0330.off +mantel/test/mantel_0331.off +mantel/test/mantel_0332.off +mantel/test/mantel_0333.off +mantel/test/mantel_0334.off +mantel/test/mantel_0335.off +mantel/test/mantel_0336.off +mantel/test/mantel_0337.off +mantel/test/mantel_0338.off +mantel/test/mantel_0339.off +mantel/test/mantel_0340.off +mantel/test/mantel_0341.off +mantel/test/mantel_0342.off +mantel/test/mantel_0343.off +mantel/test/mantel_0344.off +mantel/test/mantel_0345.off +mantel/test/mantel_0346.off +mantel/test/mantel_0347.off +mantel/test/mantel_0348.off +mantel/test/mantel_0349.off +mantel/test/mantel_0350.off +mantel/test/mantel_0351.off +mantel/test/mantel_0352.off +mantel/test/mantel_0353.off +mantel/test/mantel_0354.off +mantel/test/mantel_0355.off +mantel/test/mantel_0356.off +mantel/test/mantel_0357.off +mantel/test/mantel_0358.off +mantel/test/mantel_0359.off +mantel/test/mantel_0360.off +mantel/test/mantel_0361.off +mantel/test/mantel_0362.off +mantel/test/mantel_0363.off +mantel/test/mantel_0364.off +mantel/test/mantel_0365.off +mantel/test/mantel_0366.off +mantel/test/mantel_0367.off +mantel/test/mantel_0368.off +mantel/test/mantel_0369.off +mantel/test/mantel_0370.off +mantel/test/mantel_0371.off +mantel/test/mantel_0372.off +mantel/test/mantel_0373.off +mantel/test/mantel_0374.off +mantel/test/mantel_0375.off +mantel/test/mantel_0376.off +mantel/test/mantel_0377.off +mantel/test/mantel_0378.off +mantel/test/mantel_0379.off +mantel/test/mantel_0380.off +mantel/test/mantel_0381.off +mantel/test/mantel_0382.off +mantel/test/mantel_0383.off +mantel/test/mantel_0384.off +cup/test/cup_0080.off +cup/test/cup_0081.off +cup/test/cup_0082.off +cup/test/cup_0083.off +cup/test/cup_0084.off +cup/test/cup_0085.off +cup/test/cup_0086.off +cup/test/cup_0087.off +cup/test/cup_0088.off +cup/test/cup_0089.off +cup/test/cup_0090.off +cup/test/cup_0091.off +cup/test/cup_0092.off +cup/test/cup_0093.off +cup/test/cup_0094.off +cup/test/cup_0095.off +cup/test/cup_0096.off +cup/test/cup_0097.off +cup/test/cup_0098.off +cup/test/cup_0099.off +radio/test/radio_0105.off +radio/test/radio_0106.off +radio/test/radio_0107.off +radio/test/radio_0108.off +radio/test/radio_0109.off +radio/test/radio_0110.off +radio/test/radio_0111.off +radio/test/radio_0112.off +radio/test/radio_0113.off +radio/test/radio_0114.off +radio/test/radio_0115.off +radio/test/radio_0116.off +radio/test/radio_0117.off +radio/test/radio_0118.off +radio/test/radio_0119.off +radio/test/radio_0120.off +radio/test/radio_0121.off +radio/test/radio_0122.off +radio/test/radio_0123.off +radio/test/radio_0124.off +airplane/test/airplane_0627.off +airplane/test/airplane_0628.off +airplane/test/airplane_0629.off +airplane/test/airplane_0630.off +airplane/test/airplane_0631.off +airplane/test/airplane_0632.off +airplane/test/airplane_0633.off +airplane/test/airplane_0634.off +airplane/test/airplane_0635.off +airplane/test/airplane_0636.off +airplane/test/airplane_0637.off +airplane/test/airplane_0638.off +airplane/test/airplane_0639.off +airplane/test/airplane_0640.off +airplane/test/airplane_0641.off +airplane/test/airplane_0642.off +airplane/test/airplane_0643.off +airplane/test/airplane_0644.off +airplane/test/airplane_0645.off +airplane/test/airplane_0646.off +airplane/test/airplane_0647.off +airplane/test/airplane_0648.off +airplane/test/airplane_0649.off +airplane/test/airplane_0650.off +airplane/test/airplane_0651.off +airplane/test/airplane_0652.off +airplane/test/airplane_0653.off +airplane/test/airplane_0654.off +airplane/test/airplane_0655.off +airplane/test/airplane_0656.off +airplane/test/airplane_0657.off +airplane/test/airplane_0658.off +airplane/test/airplane_0659.off +airplane/test/airplane_0660.off +airplane/test/airplane_0661.off +airplane/test/airplane_0662.off +airplane/test/airplane_0663.off +airplane/test/airplane_0664.off +airplane/test/airplane_0665.off +airplane/test/airplane_0666.off +airplane/test/airplane_0667.off +airplane/test/airplane_0668.off +airplane/test/airplane_0669.off +airplane/test/airplane_0670.off +airplane/test/airplane_0671.off +airplane/test/airplane_0672.off +airplane/test/airplane_0673.off +airplane/test/airplane_0674.off +airplane/test/airplane_0675.off +airplane/test/airplane_0676.off +airplane/test/airplane_0677.off +airplane/test/airplane_0678.off +airplane/test/airplane_0679.off +airplane/test/airplane_0680.off +airplane/test/airplane_0681.off +airplane/test/airplane_0682.off +airplane/test/airplane_0683.off +airplane/test/airplane_0684.off +airplane/test/airplane_0685.off +airplane/test/airplane_0686.off +airplane/test/airplane_0687.off +airplane/test/airplane_0688.off +airplane/test/airplane_0689.off +airplane/test/airplane_0690.off +airplane/test/airplane_0691.off +airplane/test/airplane_0692.off +airplane/test/airplane_0693.off +airplane/test/airplane_0694.off +airplane/test/airplane_0695.off +airplane/test/airplane_0696.off +airplane/test/airplane_0697.off +airplane/test/airplane_0698.off +airplane/test/airplane_0699.off +airplane/test/airplane_0700.off +airplane/test/airplane_0701.off +airplane/test/airplane_0702.off +airplane/test/airplane_0703.off +airplane/test/airplane_0704.off +airplane/test/airplane_0705.off +airplane/test/airplane_0706.off +airplane/test/airplane_0707.off +airplane/test/airplane_0708.off +airplane/test/airplane_0709.off +airplane/test/airplane_0710.off +airplane/test/airplane_0711.off +airplane/test/airplane_0712.off +airplane/test/airplane_0713.off +airplane/test/airplane_0714.off +airplane/test/airplane_0715.off +airplane/test/airplane_0716.off +airplane/test/airplane_0717.off +airplane/test/airplane_0718.off +airplane/test/airplane_0719.off +airplane/test/airplane_0720.off +airplane/test/airplane_0721.off +airplane/test/airplane_0722.off +airplane/test/airplane_0723.off +airplane/test/airplane_0724.off +airplane/test/airplane_0725.off +airplane/test/airplane_0726.off +table/test/table_0393.off +table/test/table_0394.off +table/test/table_0395.off +table/test/table_0396.off +table/test/table_0397.off +table/test/table_0398.off +table/test/table_0399.off +table/test/table_0400.off +table/test/table_0401.off +table/test/table_0402.off +table/test/table_0403.off +table/test/table_0404.off +table/test/table_0405.off +table/test/table_0406.off +table/test/table_0407.off +table/test/table_0408.off +table/test/table_0409.off +table/test/table_0410.off +table/test/table_0411.off +table/test/table_0412.off +table/test/table_0413.off +table/test/table_0414.off +table/test/table_0415.off +table/test/table_0416.off +table/test/table_0417.off +table/test/table_0418.off +table/test/table_0419.off +table/test/table_0420.off +table/test/table_0421.off +table/test/table_0422.off +table/test/table_0423.off +table/test/table_0424.off +table/test/table_0425.off +table/test/table_0426.off +table/test/table_0427.off +table/test/table_0428.off +table/test/table_0429.off +table/test/table_0430.off +table/test/table_0431.off +table/test/table_0432.off +table/test/table_0433.off +table/test/table_0434.off +table/test/table_0435.off +table/test/table_0436.off +table/test/table_0437.off +table/test/table_0438.off +table/test/table_0439.off +table/test/table_0440.off +table/test/table_0441.off +table/test/table_0442.off +table/test/table_0443.off +table/test/table_0444.off +table/test/table_0445.off +table/test/table_0446.off +table/test/table_0447.off +table/test/table_0448.off +table/test/table_0449.off +table/test/table_0450.off +table/test/table_0451.off +table/test/table_0452.off +table/test/table_0453.off +table/test/table_0454.off +table/test/table_0455.off +table/test/table_0456.off +table/test/table_0457.off +table/test/table_0458.off +table/test/table_0459.off +table/test/table_0460.off +table/test/table_0461.off +table/test/table_0462.off +table/test/table_0463.off +table/test/table_0464.off +table/test/table_0465.off +table/test/table_0466.off +table/test/table_0467.off +table/test/table_0468.off +table/test/table_0469.off +table/test/table_0470.off +table/test/table_0471.off +table/test/table_0472.off +table/test/table_0473.off +table/test/table_0474.off +table/test/table_0475.off +table/test/table_0476.off +table/test/table_0477.off +table/test/table_0478.off +table/test/table_0479.off +table/test/table_0480.off +table/test/table_0481.off +table/test/table_0482.off +table/test/table_0483.off +table/test/table_0484.off +table/test/table_0485.off +table/test/table_0486.off +table/test/table_0487.off +table/test/table_0488.off +table/test/table_0489.off +table/test/table_0490.off +table/test/table_0491.off +table/test/table_0492.off +bench/test/bench_0174.off +bench/test/bench_0175.off +bench/test/bench_0176.off +bench/test/bench_0177.off +bench/test/bench_0178.off +bench/test/bench_0179.off +bench/test/bench_0180.off +bench/test/bench_0181.off +bench/test/bench_0182.off +bench/test/bench_0183.off +bench/test/bench_0184.off +bench/test/bench_0185.off +bench/test/bench_0186.off +bench/test/bench_0187.off +bench/test/bench_0188.off +bench/test/bench_0189.off +bench/test/bench_0190.off +bench/test/bench_0191.off +bench/test/bench_0192.off +bench/test/bench_0193.off +plant/test/plant_0241.off +plant/test/plant_0242.off +plant/test/plant_0243.off +plant/test/plant_0244.off +plant/test/plant_0245.off +plant/test/plant_0246.off +plant/test/plant_0247.off +plant/test/plant_0248.off +plant/test/plant_0249.off +plant/test/plant_0250.off +plant/test/plant_0251.off +plant/test/plant_0252.off +plant/test/plant_0253.off +plant/test/plant_0254.off +plant/test/plant_0255.off +plant/test/plant_0256.off +plant/test/plant_0257.off +plant/test/plant_0258.off +plant/test/plant_0259.off +plant/test/plant_0260.off +plant/test/plant_0261.off +plant/test/plant_0262.off +plant/test/plant_0263.off +plant/test/plant_0264.off +plant/test/plant_0265.off +plant/test/plant_0266.off +plant/test/plant_0267.off +plant/test/plant_0268.off +plant/test/plant_0269.off +plant/test/plant_0270.off +plant/test/plant_0271.off +plant/test/plant_0272.off +plant/test/plant_0273.off +plant/test/plant_0274.off +plant/test/plant_0275.off +plant/test/plant_0276.off +plant/test/plant_0277.off +plant/test/plant_0278.off +plant/test/plant_0279.off +plant/test/plant_0280.off +plant/test/plant_0281.off +plant/test/plant_0282.off +plant/test/plant_0283.off +plant/test/plant_0284.off +plant/test/plant_0285.off +plant/test/plant_0286.off +plant/test/plant_0287.off +plant/test/plant_0288.off +plant/test/plant_0289.off +plant/test/plant_0290.off +plant/test/plant_0291.off +plant/test/plant_0292.off +plant/test/plant_0293.off +plant/test/plant_0294.off +plant/test/plant_0295.off +plant/test/plant_0296.off +plant/test/plant_0297.off +plant/test/plant_0298.off +plant/test/plant_0299.off +plant/test/plant_0300.off +plant/test/plant_0301.off +plant/test/plant_0302.off +plant/test/plant_0303.off +plant/test/plant_0304.off +plant/test/plant_0305.off +plant/test/plant_0306.off +plant/test/plant_0307.off +plant/test/plant_0308.off +plant/test/plant_0309.off +plant/test/plant_0310.off +plant/test/plant_0311.off +plant/test/plant_0312.off +plant/test/plant_0313.off +plant/test/plant_0314.off +plant/test/plant_0315.off +plant/test/plant_0316.off +plant/test/plant_0317.off +plant/test/plant_0318.off +plant/test/plant_0319.off +plant/test/plant_0320.off +plant/test/plant_0321.off +plant/test/plant_0322.off +plant/test/plant_0323.off +plant/test/plant_0324.off +plant/test/plant_0325.off +plant/test/plant_0326.off +plant/test/plant_0327.off +plant/test/plant_0328.off +plant/test/plant_0329.off +plant/test/plant_0330.off +plant/test/plant_0331.off +plant/test/plant_0332.off +plant/test/plant_0333.off +plant/test/plant_0334.off +plant/test/plant_0335.off +plant/test/plant_0336.off +plant/test/plant_0337.off +plant/test/plant_0338.off +plant/test/plant_0339.off +plant/test/plant_0340.off +chair/test/chair_0890.off +chair/test/chair_0891.off +chair/test/chair_0892.off +chair/test/chair_0893.off +chair/test/chair_0894.off +chair/test/chair_0895.off +chair/test/chair_0896.off +chair/test/chair_0897.off +chair/test/chair_0898.off +chair/test/chair_0899.off +chair/test/chair_0900.off +chair/test/chair_0901.off +chair/test/chair_0902.off +chair/test/chair_0903.off +chair/test/chair_0904.off +chair/test/chair_0905.off +chair/test/chair_0906.off +chair/test/chair_0907.off +chair/test/chair_0908.off +chair/test/chair_0909.off +chair/test/chair_0910.off +chair/test/chair_0911.off +chair/test/chair_0912.off +chair/test/chair_0913.off +chair/test/chair_0914.off +chair/test/chair_0915.off +chair/test/chair_0916.off +chair/test/chair_0917.off +chair/test/chair_0918.off +chair/test/chair_0919.off +chair/test/chair_0920.off +chair/test/chair_0921.off +chair/test/chair_0922.off +chair/test/chair_0923.off +chair/test/chair_0924.off +chair/test/chair_0925.off +chair/test/chair_0926.off +chair/test/chair_0927.off +chair/test/chair_0928.off +chair/test/chair_0929.off +chair/test/chair_0930.off +chair/test/chair_0931.off +chair/test/chair_0932.off +chair/test/chair_0933.off +chair/test/chair_0934.off +chair/test/chair_0935.off +chair/test/chair_0936.off +chair/test/chair_0937.off +chair/test/chair_0938.off +chair/test/chair_0939.off +chair/test/chair_0940.off +chair/test/chair_0941.off +chair/test/chair_0942.off +chair/test/chair_0943.off +chair/test/chair_0944.off +chair/test/chair_0945.off +chair/test/chair_0946.off +chair/test/chair_0947.off +chair/test/chair_0948.off +chair/test/chair_0949.off +chair/test/chair_0950.off +chair/test/chair_0951.off +chair/test/chair_0952.off +chair/test/chair_0953.off +chair/test/chair_0954.off +chair/test/chair_0955.off +chair/test/chair_0956.off +chair/test/chair_0957.off +chair/test/chair_0958.off +chair/test/chair_0959.off +chair/test/chair_0960.off +chair/test/chair_0961.off +chair/test/chair_0962.off +chair/test/chair_0963.off +chair/test/chair_0964.off +chair/test/chair_0965.off +chair/test/chair_0966.off +chair/test/chair_0967.off +chair/test/chair_0968.off +chair/test/chair_0969.off +chair/test/chair_0970.off +chair/test/chair_0971.off +chair/test/chair_0972.off +chair/test/chair_0973.off +chair/test/chair_0974.off +chair/test/chair_0975.off +chair/test/chair_0976.off +chair/test/chair_0977.off +chair/test/chair_0978.off +chair/test/chair_0979.off +chair/test/chair_0980.off +chair/test/chair_0981.off +chair/test/chair_0982.off +chair/test/chair_0983.off +chair/test/chair_0984.off +chair/test/chair_0985.off +chair/test/chair_0986.off +chair/test/chair_0987.off +chair/test/chair_0988.off +chair/test/chair_0989.off +vase/test/vase_0476.off +vase/test/vase_0477.off +vase/test/vase_0478.off +vase/test/vase_0479.off +vase/test/vase_0480.off +vase/test/vase_0481.off +vase/test/vase_0482.off +vase/test/vase_0483.off +vase/test/vase_0484.off +vase/test/vase_0485.off +vase/test/vase_0486.off +vase/test/vase_0487.off +vase/test/vase_0488.off +vase/test/vase_0489.off +vase/test/vase_0490.off +vase/test/vase_0491.off +vase/test/vase_0492.off +vase/test/vase_0493.off +vase/test/vase_0494.off +vase/test/vase_0495.off +vase/test/vase_0496.off +vase/test/vase_0497.off +vase/test/vase_0498.off +vase/test/vase_0499.off +vase/test/vase_0500.off +vase/test/vase_0501.off +vase/test/vase_0502.off +vase/test/vase_0503.off +vase/test/vase_0504.off +vase/test/vase_0505.off +vase/test/vase_0506.off +vase/test/vase_0507.off +vase/test/vase_0508.off +vase/test/vase_0509.off +vase/test/vase_0510.off +vase/test/vase_0511.off +vase/test/vase_0512.off +vase/test/vase_0513.off +vase/test/vase_0514.off +vase/test/vase_0515.off +vase/test/vase_0516.off +vase/test/vase_0517.off +vase/test/vase_0518.off +vase/test/vase_0519.off +vase/test/vase_0520.off +vase/test/vase_0521.off +vase/test/vase_0522.off +vase/test/vase_0523.off +vase/test/vase_0524.off +vase/test/vase_0525.off +vase/test/vase_0526.off +vase/test/vase_0527.off +vase/test/vase_0528.off +vase/test/vase_0529.off +vase/test/vase_0530.off +vase/test/vase_0531.off +vase/test/vase_0532.off +vase/test/vase_0533.off +vase/test/vase_0534.off +vase/test/vase_0535.off +vase/test/vase_0536.off +vase/test/vase_0537.off +vase/test/vase_0538.off +vase/test/vase_0539.off +vase/test/vase_0540.off +vase/test/vase_0541.off +vase/test/vase_0542.off +vase/test/vase_0543.off +vase/test/vase_0544.off +vase/test/vase_0545.off +vase/test/vase_0546.off +vase/test/vase_0547.off +vase/test/vase_0548.off +vase/test/vase_0549.off +vase/test/vase_0550.off +vase/test/vase_0551.off +vase/test/vase_0552.off +vase/test/vase_0553.off +vase/test/vase_0554.off +vase/test/vase_0555.off +vase/test/vase_0556.off +vase/test/vase_0557.off +vase/test/vase_0558.off +vase/test/vase_0559.off +vase/test/vase_0560.off +vase/test/vase_0561.off +vase/test/vase_0562.off +vase/test/vase_0563.off +vase/test/vase_0564.off +vase/test/vase_0565.off +vase/test/vase_0566.off +vase/test/vase_0567.off +vase/test/vase_0568.off +vase/test/vase_0569.off +vase/test/vase_0570.off +vase/test/vase_0571.off +vase/test/vase_0572.off +vase/test/vase_0573.off +vase/test/vase_0574.off +vase/test/vase_0575.off +bookshelf/test/bookshelf_0573.off +bookshelf/test/bookshelf_0574.off +bookshelf/test/bookshelf_0575.off +bookshelf/test/bookshelf_0576.off +bookshelf/test/bookshelf_0577.off +bookshelf/test/bookshelf_0578.off +bookshelf/test/bookshelf_0579.off +bookshelf/test/bookshelf_0580.off +bookshelf/test/bookshelf_0581.off +bookshelf/test/bookshelf_0582.off +bookshelf/test/bookshelf_0583.off +bookshelf/test/bookshelf_0584.off +bookshelf/test/bookshelf_0585.off +bookshelf/test/bookshelf_0586.off +bookshelf/test/bookshelf_0587.off +bookshelf/test/bookshelf_0588.off +bookshelf/test/bookshelf_0589.off +bookshelf/test/bookshelf_0590.off +bookshelf/test/bookshelf_0591.off +bookshelf/test/bookshelf_0592.off +bookshelf/test/bookshelf_0593.off +bookshelf/test/bookshelf_0594.off +bookshelf/test/bookshelf_0595.off +bookshelf/test/bookshelf_0596.off +bookshelf/test/bookshelf_0597.off +bookshelf/test/bookshelf_0598.off +bookshelf/test/bookshelf_0599.off +bookshelf/test/bookshelf_0600.off +bookshelf/test/bookshelf_0601.off +bookshelf/test/bookshelf_0602.off +bookshelf/test/bookshelf_0603.off +bookshelf/test/bookshelf_0604.off +bookshelf/test/bookshelf_0605.off +bookshelf/test/bookshelf_0606.off +bookshelf/test/bookshelf_0607.off +bookshelf/test/bookshelf_0608.off +bookshelf/test/bookshelf_0609.off +bookshelf/test/bookshelf_0610.off +bookshelf/test/bookshelf_0611.off +bookshelf/test/bookshelf_0612.off +bookshelf/test/bookshelf_0613.off +bookshelf/test/bookshelf_0614.off +bookshelf/test/bookshelf_0615.off +bookshelf/test/bookshelf_0616.off +bookshelf/test/bookshelf_0617.off +bookshelf/test/bookshelf_0618.off +bookshelf/test/bookshelf_0619.off +bookshelf/test/bookshelf_0620.off +bookshelf/test/bookshelf_0621.off +bookshelf/test/bookshelf_0622.off +bookshelf/test/bookshelf_0623.off +bookshelf/test/bookshelf_0624.off +bookshelf/test/bookshelf_0625.off +bookshelf/test/bookshelf_0626.off +bookshelf/test/bookshelf_0627.off +bookshelf/test/bookshelf_0628.off +bookshelf/test/bookshelf_0629.off +bookshelf/test/bookshelf_0630.off +bookshelf/test/bookshelf_0631.off +bookshelf/test/bookshelf_0632.off +bookshelf/test/bookshelf_0633.off +bookshelf/test/bookshelf_0634.off +bookshelf/test/bookshelf_0635.off +bookshelf/test/bookshelf_0636.off +bookshelf/test/bookshelf_0637.off +bookshelf/test/bookshelf_0638.off +bookshelf/test/bookshelf_0639.off +bookshelf/test/bookshelf_0640.off +bookshelf/test/bookshelf_0641.off +bookshelf/test/bookshelf_0642.off +bookshelf/test/bookshelf_0643.off +bookshelf/test/bookshelf_0644.off +bookshelf/test/bookshelf_0645.off +bookshelf/test/bookshelf_0646.off +bookshelf/test/bookshelf_0647.off +bookshelf/test/bookshelf_0648.off +bookshelf/test/bookshelf_0649.off +bookshelf/test/bookshelf_0650.off +bookshelf/test/bookshelf_0651.off +bookshelf/test/bookshelf_0652.off +bookshelf/test/bookshelf_0653.off +bookshelf/test/bookshelf_0654.off +bookshelf/test/bookshelf_0655.off +bookshelf/test/bookshelf_0656.off +bookshelf/test/bookshelf_0657.off +bookshelf/test/bookshelf_0658.off +bookshelf/test/bookshelf_0659.off +bookshelf/test/bookshelf_0660.off +bookshelf/test/bookshelf_0661.off +bookshelf/test/bookshelf_0662.off +bookshelf/test/bookshelf_0663.off +bookshelf/test/bookshelf_0664.off +bookshelf/test/bookshelf_0665.off +bookshelf/test/bookshelf_0666.off +bookshelf/test/bookshelf_0667.off +bookshelf/test/bookshelf_0668.off +bookshelf/test/bookshelf_0669.off +bookshelf/test/bookshelf_0670.off +bookshelf/test/bookshelf_0671.off +bookshelf/test/bookshelf_0672.off +guitar/test/guitar_0156.off +guitar/test/guitar_0157.off +guitar/test/guitar_0158.off +guitar/test/guitar_0159.off +guitar/test/guitar_0160.off +guitar/test/guitar_0161.off +guitar/test/guitar_0162.off +guitar/test/guitar_0163.off +guitar/test/guitar_0164.off +guitar/test/guitar_0165.off +guitar/test/guitar_0166.off +guitar/test/guitar_0167.off +guitar/test/guitar_0168.off +guitar/test/guitar_0169.off +guitar/test/guitar_0170.off +guitar/test/guitar_0171.off +guitar/test/guitar_0172.off +guitar/test/guitar_0173.off +guitar/test/guitar_0174.off +guitar/test/guitar_0175.off +guitar/test/guitar_0176.off +guitar/test/guitar_0177.off +guitar/test/guitar_0178.off +guitar/test/guitar_0179.off +guitar/test/guitar_0180.off +guitar/test/guitar_0181.off +guitar/test/guitar_0182.off +guitar/test/guitar_0183.off +guitar/test/guitar_0184.off +guitar/test/guitar_0185.off +guitar/test/guitar_0186.off +guitar/test/guitar_0187.off +guitar/test/guitar_0188.off +guitar/test/guitar_0189.off +guitar/test/guitar_0190.off +guitar/test/guitar_0191.off +guitar/test/guitar_0192.off +guitar/test/guitar_0193.off +guitar/test/guitar_0194.off +guitar/test/guitar_0195.off +guitar/test/guitar_0196.off +guitar/test/guitar_0197.off +guitar/test/guitar_0198.off +guitar/test/guitar_0199.off +guitar/test/guitar_0200.off +guitar/test/guitar_0201.off +guitar/test/guitar_0202.off +guitar/test/guitar_0203.off +guitar/test/guitar_0204.off +guitar/test/guitar_0205.off +guitar/test/guitar_0206.off +guitar/test/guitar_0207.off +guitar/test/guitar_0208.off +guitar/test/guitar_0209.off +guitar/test/guitar_0210.off +guitar/test/guitar_0211.off +guitar/test/guitar_0212.off +guitar/test/guitar_0213.off +guitar/test/guitar_0214.off +guitar/test/guitar_0215.off +guitar/test/guitar_0216.off +guitar/test/guitar_0217.off +guitar/test/guitar_0218.off +guitar/test/guitar_0219.off +guitar/test/guitar_0220.off +guitar/test/guitar_0221.off +guitar/test/guitar_0222.off +guitar/test/guitar_0223.off +guitar/test/guitar_0224.off +guitar/test/guitar_0225.off +guitar/test/guitar_0226.off +guitar/test/guitar_0227.off +guitar/test/guitar_0228.off +guitar/test/guitar_0229.off +guitar/test/guitar_0230.off +guitar/test/guitar_0231.off +guitar/test/guitar_0232.off +guitar/test/guitar_0233.off +guitar/test/guitar_0234.off +guitar/test/guitar_0235.off +guitar/test/guitar_0236.off +guitar/test/guitar_0237.off +guitar/test/guitar_0238.off +guitar/test/guitar_0239.off +guitar/test/guitar_0240.off +guitar/test/guitar_0241.off +guitar/test/guitar_0242.off +guitar/test/guitar_0243.off +guitar/test/guitar_0244.off +guitar/test/guitar_0245.off +guitar/test/guitar_0246.off +guitar/test/guitar_0247.off +guitar/test/guitar_0248.off +guitar/test/guitar_0249.off +guitar/test/guitar_0250.off +guitar/test/guitar_0251.off +guitar/test/guitar_0252.off +guitar/test/guitar_0253.off +guitar/test/guitar_0254.off +guitar/test/guitar_0255.off +tv_stand/test/tv_stand_0268.off +tv_stand/test/tv_stand_0269.off +tv_stand/test/tv_stand_0270.off +tv_stand/test/tv_stand_0271.off +tv_stand/test/tv_stand_0272.off +tv_stand/test/tv_stand_0273.off +tv_stand/test/tv_stand_0274.off +tv_stand/test/tv_stand_0275.off +tv_stand/test/tv_stand_0276.off +tv_stand/test/tv_stand_0277.off +tv_stand/test/tv_stand_0278.off +tv_stand/test/tv_stand_0279.off +tv_stand/test/tv_stand_0280.off +tv_stand/test/tv_stand_0281.off +tv_stand/test/tv_stand_0282.off +tv_stand/test/tv_stand_0283.off +tv_stand/test/tv_stand_0284.off +tv_stand/test/tv_stand_0285.off +tv_stand/test/tv_stand_0286.off +tv_stand/test/tv_stand_0287.off +tv_stand/test/tv_stand_0288.off +tv_stand/test/tv_stand_0289.off +tv_stand/test/tv_stand_0290.off +tv_stand/test/tv_stand_0291.off +tv_stand/test/tv_stand_0292.off +tv_stand/test/tv_stand_0293.off +tv_stand/test/tv_stand_0294.off +tv_stand/test/tv_stand_0295.off +tv_stand/test/tv_stand_0296.off +tv_stand/test/tv_stand_0297.off +tv_stand/test/tv_stand_0298.off +tv_stand/test/tv_stand_0299.off +tv_stand/test/tv_stand_0300.off +tv_stand/test/tv_stand_0301.off +tv_stand/test/tv_stand_0302.off +tv_stand/test/tv_stand_0303.off +tv_stand/test/tv_stand_0304.off +tv_stand/test/tv_stand_0305.off +tv_stand/test/tv_stand_0306.off +tv_stand/test/tv_stand_0307.off +tv_stand/test/tv_stand_0308.off +tv_stand/test/tv_stand_0309.off +tv_stand/test/tv_stand_0310.off +tv_stand/test/tv_stand_0311.off +tv_stand/test/tv_stand_0312.off +tv_stand/test/tv_stand_0313.off +tv_stand/test/tv_stand_0314.off +tv_stand/test/tv_stand_0315.off +tv_stand/test/tv_stand_0316.off +tv_stand/test/tv_stand_0317.off +tv_stand/test/tv_stand_0318.off +tv_stand/test/tv_stand_0319.off +tv_stand/test/tv_stand_0320.off +tv_stand/test/tv_stand_0321.off +tv_stand/test/tv_stand_0322.off +tv_stand/test/tv_stand_0323.off +tv_stand/test/tv_stand_0324.off +tv_stand/test/tv_stand_0325.off +tv_stand/test/tv_stand_0326.off +tv_stand/test/tv_stand_0327.off +tv_stand/test/tv_stand_0328.off +tv_stand/test/tv_stand_0329.off +tv_stand/test/tv_stand_0330.off +tv_stand/test/tv_stand_0331.off +tv_stand/test/tv_stand_0332.off +tv_stand/test/tv_stand_0333.off +tv_stand/test/tv_stand_0334.off +tv_stand/test/tv_stand_0335.off +tv_stand/test/tv_stand_0336.off +tv_stand/test/tv_stand_0337.off +tv_stand/test/tv_stand_0338.off +tv_stand/test/tv_stand_0339.off +tv_stand/test/tv_stand_0340.off +tv_stand/test/tv_stand_0341.off +tv_stand/test/tv_stand_0342.off +tv_stand/test/tv_stand_0343.off +tv_stand/test/tv_stand_0344.off +tv_stand/test/tv_stand_0345.off +tv_stand/test/tv_stand_0346.off +tv_stand/test/tv_stand_0347.off +tv_stand/test/tv_stand_0348.off +tv_stand/test/tv_stand_0349.off +tv_stand/test/tv_stand_0350.off +tv_stand/test/tv_stand_0351.off +tv_stand/test/tv_stand_0352.off +tv_stand/test/tv_stand_0353.off +tv_stand/test/tv_stand_0354.off +tv_stand/test/tv_stand_0355.off +tv_stand/test/tv_stand_0356.off +tv_stand/test/tv_stand_0357.off +tv_stand/test/tv_stand_0358.off +tv_stand/test/tv_stand_0359.off +tv_stand/test/tv_stand_0360.off +tv_stand/test/tv_stand_0361.off +tv_stand/test/tv_stand_0362.off +tv_stand/test/tv_stand_0363.off +tv_stand/test/tv_stand_0364.off +tv_stand/test/tv_stand_0365.off +tv_stand/test/tv_stand_0366.off +tv_stand/test/tv_stand_0367.off +bathtub/test/bathtub_0107.off +bathtub/test/bathtub_0108.off +bathtub/test/bathtub_0109.off +bathtub/test/bathtub_0110.off +bathtub/test/bathtub_0111.off +bathtub/test/bathtub_0112.off +bathtub/test/bathtub_0113.off +bathtub/test/bathtub_0114.off +bathtub/test/bathtub_0115.off +bathtub/test/bathtub_0116.off +bathtub/test/bathtub_0117.off +bathtub/test/bathtub_0118.off +bathtub/test/bathtub_0119.off +bathtub/test/bathtub_0120.off +bathtub/test/bathtub_0121.off +bathtub/test/bathtub_0122.off +bathtub/test/bathtub_0123.off +bathtub/test/bathtub_0124.off +bathtub/test/bathtub_0125.off +bathtub/test/bathtub_0126.off +bathtub/test/bathtub_0127.off +bathtub/test/bathtub_0128.off +bathtub/test/bathtub_0129.off +bathtub/test/bathtub_0130.off +bathtub/test/bathtub_0131.off +bathtub/test/bathtub_0132.off +bathtub/test/bathtub_0133.off +bathtub/test/bathtub_0134.off +bathtub/test/bathtub_0135.off +bathtub/test/bathtub_0136.off +bathtub/test/bathtub_0137.off +bathtub/test/bathtub_0138.off +bathtub/test/bathtub_0139.off +bathtub/test/bathtub_0140.off +bathtub/test/bathtub_0141.off +bathtub/test/bathtub_0142.off +bathtub/test/bathtub_0143.off +bathtub/test/bathtub_0144.off +bathtub/test/bathtub_0145.off +bathtub/test/bathtub_0146.off +bathtub/test/bathtub_0147.off +bathtub/test/bathtub_0148.off +bathtub/test/bathtub_0149.off +bathtub/test/bathtub_0150.off +bathtub/test/bathtub_0151.off +bathtub/test/bathtub_0152.off +bathtub/test/bathtub_0153.off +bathtub/test/bathtub_0154.off +bathtub/test/bathtub_0155.off +bathtub/test/bathtub_0156.off +monitor/test/monitor_0466.off +monitor/test/monitor_0467.off +monitor/test/monitor_0468.off +monitor/test/monitor_0469.off +monitor/test/monitor_0470.off +monitor/test/monitor_0471.off +monitor/test/monitor_0472.off +monitor/test/monitor_0473.off +monitor/test/monitor_0474.off +monitor/test/monitor_0475.off +monitor/test/monitor_0476.off +monitor/test/monitor_0477.off +monitor/test/monitor_0478.off +monitor/test/monitor_0479.off +monitor/test/monitor_0480.off +monitor/test/monitor_0481.off +monitor/test/monitor_0482.off +monitor/test/monitor_0483.off +monitor/test/monitor_0484.off +monitor/test/monitor_0485.off +monitor/test/monitor_0486.off +monitor/test/monitor_0487.off +monitor/test/monitor_0488.off +monitor/test/monitor_0489.off +monitor/test/monitor_0490.off +monitor/test/monitor_0491.off +monitor/test/monitor_0492.off +monitor/test/monitor_0493.off +monitor/test/monitor_0494.off +monitor/test/monitor_0495.off +monitor/test/monitor_0496.off +monitor/test/monitor_0497.off +monitor/test/monitor_0498.off +monitor/test/monitor_0499.off +monitor/test/monitor_0500.off +monitor/test/monitor_0501.off +monitor/test/monitor_0502.off +monitor/test/monitor_0503.off +monitor/test/monitor_0504.off +monitor/test/monitor_0505.off +monitor/test/monitor_0506.off +monitor/test/monitor_0507.off +monitor/test/monitor_0508.off +monitor/test/monitor_0509.off +monitor/test/monitor_0510.off +monitor/test/monitor_0511.off +monitor/test/monitor_0512.off +monitor/test/monitor_0513.off +monitor/test/monitor_0514.off +monitor/test/monitor_0515.off +monitor/test/monitor_0516.off +monitor/test/monitor_0517.off +monitor/test/monitor_0518.off +monitor/test/monitor_0519.off +monitor/test/monitor_0520.off +monitor/test/monitor_0521.off +monitor/test/monitor_0522.off +monitor/test/monitor_0523.off +monitor/test/monitor_0524.off +monitor/test/monitor_0525.off +monitor/test/monitor_0526.off +monitor/test/monitor_0527.off +monitor/test/monitor_0528.off +monitor/test/monitor_0529.off +monitor/test/monitor_0530.off +monitor/test/monitor_0531.off +monitor/test/monitor_0532.off +monitor/test/monitor_0533.off +monitor/test/monitor_0534.off +monitor/test/monitor_0535.off +monitor/test/monitor_0536.off +monitor/test/monitor_0537.off +monitor/test/monitor_0538.off +monitor/test/monitor_0539.off +monitor/test/monitor_0540.off +monitor/test/monitor_0541.off +monitor/test/monitor_0542.off +monitor/test/monitor_0543.off +monitor/test/monitor_0544.off +monitor/test/monitor_0545.off +monitor/test/monitor_0546.off +monitor/test/monitor_0547.off +monitor/test/monitor_0548.off +monitor/test/monitor_0549.off +monitor/test/monitor_0550.off +monitor/test/monitor_0551.off +monitor/test/monitor_0552.off +monitor/test/monitor_0553.off +monitor/test/monitor_0554.off +monitor/test/monitor_0555.off +monitor/test/monitor_0556.off +monitor/test/monitor_0557.off +monitor/test/monitor_0558.off +monitor/test/monitor_0559.off +monitor/test/monitor_0560.off +monitor/test/monitor_0561.off +monitor/test/monitor_0562.off +monitor/test/monitor_0563.off +monitor/test/monitor_0564.off +monitor/test/monitor_0565.off +bottle/test/bottle_0336.off +bottle/test/bottle_0337.off +bottle/test/bottle_0338.off +bottle/test/bottle_0339.off +bottle/test/bottle_0340.off +bottle/test/bottle_0341.off +bottle/test/bottle_0342.off +bottle/test/bottle_0343.off +bottle/test/bottle_0344.off +bottle/test/bottle_0345.off +bottle/test/bottle_0346.off +bottle/test/bottle_0347.off +bottle/test/bottle_0348.off +bottle/test/bottle_0349.off +bottle/test/bottle_0350.off +bottle/test/bottle_0351.off +bottle/test/bottle_0352.off +bottle/test/bottle_0353.off +bottle/test/bottle_0354.off +bottle/test/bottle_0355.off +bottle/test/bottle_0356.off +bottle/test/bottle_0357.off +bottle/test/bottle_0358.off +bottle/test/bottle_0359.off +bottle/test/bottle_0360.off +bottle/test/bottle_0361.off +bottle/test/bottle_0362.off +bottle/test/bottle_0363.off +bottle/test/bottle_0364.off +bottle/test/bottle_0365.off +bottle/test/bottle_0366.off +bottle/test/bottle_0367.off +bottle/test/bottle_0368.off +bottle/test/bottle_0369.off +bottle/test/bottle_0370.off +bottle/test/bottle_0371.off +bottle/test/bottle_0372.off +bottle/test/bottle_0373.off +bottle/test/bottle_0374.off +bottle/test/bottle_0375.off +bottle/test/bottle_0376.off +bottle/test/bottle_0377.off +bottle/test/bottle_0378.off +bottle/test/bottle_0379.off +bottle/test/bottle_0380.off +bottle/test/bottle_0381.off +bottle/test/bottle_0382.off +bottle/test/bottle_0383.off +bottle/test/bottle_0384.off +bottle/test/bottle_0385.off +bottle/test/bottle_0386.off +bottle/test/bottle_0387.off +bottle/test/bottle_0388.off +bottle/test/bottle_0389.off +bottle/test/bottle_0390.off +bottle/test/bottle_0391.off +bottle/test/bottle_0392.off +bottle/test/bottle_0393.off +bottle/test/bottle_0394.off +bottle/test/bottle_0395.off +bottle/test/bottle_0396.off +bottle/test/bottle_0397.off +bottle/test/bottle_0398.off +bottle/test/bottle_0399.off +bottle/test/bottle_0400.off +bottle/test/bottle_0401.off +bottle/test/bottle_0402.off +bottle/test/bottle_0403.off +bottle/test/bottle_0404.off +bottle/test/bottle_0405.off +bottle/test/bottle_0406.off +bottle/test/bottle_0407.off +bottle/test/bottle_0408.off +bottle/test/bottle_0409.off +bottle/test/bottle_0410.off +bottle/test/bottle_0411.off +bottle/test/bottle_0412.off +bottle/test/bottle_0413.off +bottle/test/bottle_0414.off +bottle/test/bottle_0415.off +bottle/test/bottle_0416.off +bottle/test/bottle_0417.off +bottle/test/bottle_0418.off +bottle/test/bottle_0419.off +bottle/test/bottle_0420.off +bottle/test/bottle_0421.off +bottle/test/bottle_0422.off +bottle/test/bottle_0423.off +bottle/test/bottle_0424.off +bottle/test/bottle_0425.off +bottle/test/bottle_0426.off +bottle/test/bottle_0427.off +bottle/test/bottle_0428.off +bottle/test/bottle_0429.off +bottle/test/bottle_0430.off +bottle/test/bottle_0431.off +bottle/test/bottle_0432.off +bottle/test/bottle_0433.off +bottle/test/bottle_0434.off +bottle/test/bottle_0435.off +bowl/test/bowl_0065.off +bowl/test/bowl_0066.off +bowl/test/bowl_0067.off +bowl/test/bowl_0068.off +bowl/test/bowl_0069.off +bowl/test/bowl_0070.off +bowl/test/bowl_0071.off +bowl/test/bowl_0072.off +bowl/test/bowl_0073.off +bowl/test/bowl_0074.off +bowl/test/bowl_0075.off +bowl/test/bowl_0076.off +bowl/test/bowl_0077.off +bowl/test/bowl_0078.off +bowl/test/bowl_0079.off +bowl/test/bowl_0080.off +bowl/test/bowl_0081.off +bowl/test/bowl_0082.off +bowl/test/bowl_0083.off +bowl/test/bowl_0084.off +keyboard/test/keyboard_0146.off +keyboard/test/keyboard_0147.off +keyboard/test/keyboard_0148.off +keyboard/test/keyboard_0149.off +keyboard/test/keyboard_0150.off +keyboard/test/keyboard_0151.off +keyboard/test/keyboard_0152.off +keyboard/test/keyboard_0153.off +keyboard/test/keyboard_0154.off +keyboard/test/keyboard_0155.off +keyboard/test/keyboard_0156.off +keyboard/test/keyboard_0157.off +keyboard/test/keyboard_0158.off +keyboard/test/keyboard_0159.off +keyboard/test/keyboard_0160.off +keyboard/test/keyboard_0161.off +keyboard/test/keyboard_0162.off +keyboard/test/keyboard_0163.off +keyboard/test/keyboard_0164.off +keyboard/test/keyboard_0165.off +desk/test/desk_0201.off +desk/test/desk_0202.off +desk/test/desk_0203.off +desk/test/desk_0204.off +desk/test/desk_0205.off +desk/test/desk_0206.off +desk/test/desk_0207.off +desk/test/desk_0208.off +desk/test/desk_0209.off +desk/test/desk_0210.off +desk/test/desk_0211.off +desk/test/desk_0212.off +desk/test/desk_0213.off +desk/test/desk_0214.off +desk/test/desk_0215.off +desk/test/desk_0216.off +desk/test/desk_0217.off +desk/test/desk_0218.off +desk/test/desk_0219.off +desk/test/desk_0220.off +desk/test/desk_0221.off +desk/test/desk_0222.off +desk/test/desk_0223.off +desk/test/desk_0224.off +desk/test/desk_0225.off +desk/test/desk_0226.off +desk/test/desk_0227.off +desk/test/desk_0228.off +desk/test/desk_0229.off +desk/test/desk_0230.off +desk/test/desk_0231.off +desk/test/desk_0232.off +desk/test/desk_0233.off +desk/test/desk_0234.off +desk/test/desk_0235.off +desk/test/desk_0236.off +desk/test/desk_0237.off +desk/test/desk_0238.off +desk/test/desk_0239.off +desk/test/desk_0240.off +desk/test/desk_0241.off +desk/test/desk_0242.off +desk/test/desk_0243.off +desk/test/desk_0244.off +desk/test/desk_0245.off +desk/test/desk_0246.off +desk/test/desk_0247.off +desk/test/desk_0248.off +desk/test/desk_0249.off +desk/test/desk_0250.off +desk/test/desk_0251.off +desk/test/desk_0252.off +desk/test/desk_0253.off +desk/test/desk_0254.off +desk/test/desk_0255.off +desk/test/desk_0256.off +desk/test/desk_0257.off +desk/test/desk_0258.off +desk/test/desk_0259.off +desk/test/desk_0260.off +desk/test/desk_0261.off +desk/test/desk_0262.off +desk/test/desk_0263.off +desk/test/desk_0264.off +desk/test/desk_0265.off +desk/test/desk_0266.off +desk/test/desk_0267.off +desk/test/desk_0268.off +desk/test/desk_0269.off +desk/test/desk_0270.off +desk/test/desk_0271.off +desk/test/desk_0272.off +desk/test/desk_0273.off +desk/test/desk_0274.off +desk/test/desk_0275.off +desk/test/desk_0276.off +desk/test/desk_0277.off +desk/test/desk_0278.off +desk/test/desk_0279.off +desk/test/desk_0280.off +desk/test/desk_0281.off +desk/test/desk_0282.off +desk/test/desk_0283.off +desk/test/desk_0284.off +desk/test/desk_0285.off +desk/test/desk_0286.off +bed/test/bed_0516.off +bed/test/bed_0517.off +bed/test/bed_0518.off +bed/test/bed_0519.off +bed/test/bed_0520.off +bed/test/bed_0521.off +bed/test/bed_0522.off +bed/test/bed_0523.off +bed/test/bed_0524.off +bed/test/bed_0525.off +bed/test/bed_0526.off +bed/test/bed_0527.off +bed/test/bed_0528.off +bed/test/bed_0529.off +bed/test/bed_0530.off +bed/test/bed_0531.off +bed/test/bed_0532.off +bed/test/bed_0533.off +bed/test/bed_0534.off +bed/test/bed_0535.off +bed/test/bed_0536.off +bed/test/bed_0537.off +bed/test/bed_0538.off +bed/test/bed_0539.off +bed/test/bed_0540.off +bed/test/bed_0541.off +bed/test/bed_0542.off +bed/test/bed_0543.off +bed/test/bed_0544.off +bed/test/bed_0545.off +bed/test/bed_0546.off +bed/test/bed_0547.off +bed/test/bed_0548.off +bed/test/bed_0549.off +bed/test/bed_0550.off +bed/test/bed_0551.off +bed/test/bed_0552.off +bed/test/bed_0553.off +bed/test/bed_0554.off +bed/test/bed_0555.off +bed/test/bed_0556.off +bed/test/bed_0557.off +bed/test/bed_0558.off +bed/test/bed_0559.off +bed/test/bed_0560.off +bed/test/bed_0561.off +bed/test/bed_0562.off +bed/test/bed_0563.off +bed/test/bed_0564.off +bed/test/bed_0565.off +bed/test/bed_0566.off +bed/test/bed_0567.off +bed/test/bed_0568.off +bed/test/bed_0569.off +bed/test/bed_0570.off +bed/test/bed_0571.off +bed/test/bed_0572.off +bed/test/bed_0573.off +bed/test/bed_0574.off +bed/test/bed_0575.off +bed/test/bed_0576.off +bed/test/bed_0577.off +bed/test/bed_0578.off +bed/test/bed_0579.off +bed/test/bed_0580.off +bed/test/bed_0581.off +bed/test/bed_0582.off +bed/test/bed_0583.off +bed/test/bed_0584.off +bed/test/bed_0585.off +bed/test/bed_0586.off +bed/test/bed_0587.off +bed/test/bed_0588.off +bed/test/bed_0589.off +bed/test/bed_0590.off +bed/test/bed_0591.off +bed/test/bed_0592.off +bed/test/bed_0593.off +bed/test/bed_0594.off +bed/test/bed_0595.off +bed/test/bed_0596.off +bed/test/bed_0597.off +bed/test/bed_0598.off +bed/test/bed_0599.off +bed/test/bed_0600.off +bed/test/bed_0601.off +bed/test/bed_0602.off +bed/test/bed_0603.off +bed/test/bed_0604.off +bed/test/bed_0605.off +bed/test/bed_0606.off +bed/test/bed_0607.off +bed/test/bed_0608.off +bed/test/bed_0609.off +bed/test/bed_0610.off +bed/test/bed_0611.off +bed/test/bed_0612.off +bed/test/bed_0613.off +bed/test/bed_0614.off +bed/test/bed_0615.off +tent/test/tent_0164.off +tent/test/tent_0165.off +tent/test/tent_0166.off +tent/test/tent_0167.off +tent/test/tent_0168.off +tent/test/tent_0169.off +tent/test/tent_0170.off +tent/test/tent_0171.off +tent/test/tent_0172.off +tent/test/tent_0173.off +tent/test/tent_0174.off +tent/test/tent_0175.off +tent/test/tent_0176.off +tent/test/tent_0177.off +tent/test/tent_0178.off +tent/test/tent_0179.off +tent/test/tent_0180.off +tent/test/tent_0181.off +tent/test/tent_0182.off +tent/test/tent_0183.off +piano/test/piano_0232.off +piano/test/piano_0233.off +piano/test/piano_0234.off +piano/test/piano_0235.off +piano/test/piano_0236.off +piano/test/piano_0237.off +piano/test/piano_0238.off +piano/test/piano_0239.off +piano/test/piano_0240.off +piano/test/piano_0241.off +piano/test/piano_0242.off +piano/test/piano_0243.off +piano/test/piano_0244.off +piano/test/piano_0245.off +piano/test/piano_0246.off +piano/test/piano_0247.off +piano/test/piano_0248.off +piano/test/piano_0249.off +piano/test/piano_0250.off +piano/test/piano_0251.off +piano/test/piano_0252.off +piano/test/piano_0253.off +piano/test/piano_0254.off +piano/test/piano_0255.off +piano/test/piano_0256.off +piano/test/piano_0257.off +piano/test/piano_0258.off +piano/test/piano_0259.off +piano/test/piano_0260.off +piano/test/piano_0261.off +piano/test/piano_0262.off +piano/test/piano_0263.off +piano/test/piano_0264.off +piano/test/piano_0265.off +piano/test/piano_0266.off +piano/test/piano_0267.off +piano/test/piano_0268.off +piano/test/piano_0269.off +piano/test/piano_0270.off +piano/test/piano_0271.off +piano/test/piano_0272.off +piano/test/piano_0273.off +piano/test/piano_0274.off +piano/test/piano_0275.off +piano/test/piano_0276.off +piano/test/piano_0277.off +piano/test/piano_0278.off +piano/test/piano_0279.off +piano/test/piano_0280.off +piano/test/piano_0281.off +piano/test/piano_0282.off +piano/test/piano_0283.off +piano/test/piano_0284.off +piano/test/piano_0285.off +piano/test/piano_0286.off +piano/test/piano_0287.off +piano/test/piano_0288.off +piano/test/piano_0289.off +piano/test/piano_0290.off +piano/test/piano_0291.off +piano/test/piano_0292.off +piano/test/piano_0293.off +piano/test/piano_0294.off +piano/test/piano_0295.off +piano/test/piano_0296.off +piano/test/piano_0297.off +piano/test/piano_0298.off +piano/test/piano_0299.off +piano/test/piano_0300.off +piano/test/piano_0301.off +piano/test/piano_0302.off +piano/test/piano_0303.off +piano/test/piano_0304.off +piano/test/piano_0305.off +piano/test/piano_0306.off +piano/test/piano_0307.off +piano/test/piano_0308.off +piano/test/piano_0309.off +piano/test/piano_0310.off +piano/test/piano_0311.off +piano/test/piano_0312.off +piano/test/piano_0313.off +piano/test/piano_0314.off +piano/test/piano_0315.off +piano/test/piano_0316.off +piano/test/piano_0317.off +piano/test/piano_0318.off +piano/test/piano_0319.off +piano/test/piano_0320.off +piano/test/piano_0321.off +piano/test/piano_0322.off +piano/test/piano_0323.off +piano/test/piano_0324.off +piano/test/piano_0325.off +piano/test/piano_0326.off +piano/test/piano_0327.off +piano/test/piano_0328.off +piano/test/piano_0329.off +piano/test/piano_0330.off +piano/test/piano_0331.off +sofa/test/sofa_0681.off +sofa/test/sofa_0682.off +sofa/test/sofa_0683.off +sofa/test/sofa_0684.off +sofa/test/sofa_0685.off +sofa/test/sofa_0686.off +sofa/test/sofa_0687.off +sofa/test/sofa_0688.off +sofa/test/sofa_0689.off +sofa/test/sofa_0690.off +sofa/test/sofa_0691.off +sofa/test/sofa_0692.off +sofa/test/sofa_0693.off +sofa/test/sofa_0694.off +sofa/test/sofa_0695.off +sofa/test/sofa_0696.off +sofa/test/sofa_0697.off +sofa/test/sofa_0698.off +sofa/test/sofa_0699.off +sofa/test/sofa_0700.off +sofa/test/sofa_0701.off +sofa/test/sofa_0702.off +sofa/test/sofa_0703.off +sofa/test/sofa_0704.off +sofa/test/sofa_0705.off +sofa/test/sofa_0706.off +sofa/test/sofa_0707.off +sofa/test/sofa_0708.off +sofa/test/sofa_0709.off +sofa/test/sofa_0710.off +sofa/test/sofa_0711.off +sofa/test/sofa_0712.off +sofa/test/sofa_0713.off +sofa/test/sofa_0714.off +sofa/test/sofa_0715.off +sofa/test/sofa_0716.off +sofa/test/sofa_0717.off +sofa/test/sofa_0718.off +sofa/test/sofa_0719.off +sofa/test/sofa_0720.off +sofa/test/sofa_0721.off +sofa/test/sofa_0722.off +sofa/test/sofa_0723.off +sofa/test/sofa_0724.off +sofa/test/sofa_0725.off +sofa/test/sofa_0726.off +sofa/test/sofa_0727.off +sofa/test/sofa_0728.off +sofa/test/sofa_0729.off +sofa/test/sofa_0730.off +sofa/test/sofa_0731.off +sofa/test/sofa_0732.off +sofa/test/sofa_0733.off +sofa/test/sofa_0734.off +sofa/test/sofa_0735.off +sofa/test/sofa_0736.off +sofa/test/sofa_0737.off +sofa/test/sofa_0738.off +sofa/test/sofa_0739.off +sofa/test/sofa_0740.off +sofa/test/sofa_0741.off +sofa/test/sofa_0742.off +sofa/test/sofa_0743.off +sofa/test/sofa_0744.off +sofa/test/sofa_0745.off +sofa/test/sofa_0746.off +sofa/test/sofa_0747.off +sofa/test/sofa_0748.off +sofa/test/sofa_0749.off +sofa/test/sofa_0750.off +sofa/test/sofa_0751.off +sofa/test/sofa_0752.off +sofa/test/sofa_0753.off +sofa/test/sofa_0754.off +sofa/test/sofa_0755.off +sofa/test/sofa_0756.off +sofa/test/sofa_0757.off +sofa/test/sofa_0758.off +sofa/test/sofa_0759.off +sofa/test/sofa_0760.off +sofa/test/sofa_0761.off +sofa/test/sofa_0762.off +sofa/test/sofa_0763.off +sofa/test/sofa_0764.off +sofa/test/sofa_0765.off +sofa/test/sofa_0766.off +sofa/test/sofa_0767.off +sofa/test/sofa_0768.off +sofa/test/sofa_0769.off +sofa/test/sofa_0770.off +sofa/test/sofa_0771.off +sofa/test/sofa_0772.off +sofa/test/sofa_0773.off +sofa/test/sofa_0774.off +sofa/test/sofa_0775.off +sofa/test/sofa_0776.off +sofa/test/sofa_0777.off +sofa/test/sofa_0778.off +sofa/test/sofa_0779.off +sofa/test/sofa_0780.off +person/test/person_0089.off +person/test/person_0090.off +person/test/person_0091.off +person/test/person_0092.off +person/test/person_0093.off +person/test/person_0094.off +person/test/person_0095.off +person/test/person_0096.off +person/test/person_0097.off +person/test/person_0098.off +person/test/person_0099.off +person/test/person_0100.off +person/test/person_0101.off +person/test/person_0102.off +person/test/person_0103.off +person/test/person_0104.off +person/test/person_0105.off +person/test/person_0106.off +person/test/person_0107.off +person/test/person_0108.off +xbox/test/xbox_0104.off +xbox/test/xbox_0105.off +xbox/test/xbox_0106.off +xbox/test/xbox_0107.off +xbox/test/xbox_0108.off +xbox/test/xbox_0109.off +xbox/test/xbox_0110.off +xbox/test/xbox_0111.off +xbox/test/xbox_0112.off +xbox/test/xbox_0113.off +xbox/test/xbox_0114.off +xbox/test/xbox_0115.off +xbox/test/xbox_0116.off +xbox/test/xbox_0117.off +xbox/test/xbox_0118.off +xbox/test/xbox_0119.off +xbox/test/xbox_0120.off +xbox/test/xbox_0121.off +xbox/test/xbox_0122.off +xbox/test/xbox_0123.off +stairs/test/stairs_0125.off +stairs/test/stairs_0126.off +stairs/test/stairs_0127.off +stairs/test/stairs_0128.off +stairs/test/stairs_0129.off +stairs/test/stairs_0130.off +stairs/test/stairs_0131.off +stairs/test/stairs_0132.off +stairs/test/stairs_0133.off +stairs/test/stairs_0134.off +stairs/test/stairs_0135.off +stairs/test/stairs_0136.off +stairs/test/stairs_0137.off +stairs/test/stairs_0138.off +stairs/test/stairs_0139.off +stairs/test/stairs_0140.off +stairs/test/stairs_0141.off +stairs/test/stairs_0142.off +stairs/test/stairs_0143.off +stairs/test/stairs_0144.off +cone/test/cone_0168.off +cone/test/cone_0169.off +cone/test/cone_0170.off +cone/test/cone_0171.off +cone/test/cone_0172.off +cone/test/cone_0173.off +cone/test/cone_0174.off +cone/test/cone_0175.off +cone/test/cone_0176.off +cone/test/cone_0177.off +cone/test/cone_0178.off +cone/test/cone_0179.off +cone/test/cone_0180.off +cone/test/cone_0181.off +cone/test/cone_0182.off +cone/test/cone_0183.off +cone/test/cone_0184.off +cone/test/cone_0185.off +cone/test/cone_0186.off +cone/test/cone_0187.off +lamp/test/lamp_0125.off +lamp/test/lamp_0126.off +lamp/test/lamp_0127.off +lamp/test/lamp_0128.off +lamp/test/lamp_0129.off +lamp/test/lamp_0130.off +lamp/test/lamp_0131.off +lamp/test/lamp_0132.off +lamp/test/lamp_0133.off +lamp/test/lamp_0134.off +lamp/test/lamp_0135.off +lamp/test/lamp_0136.off +lamp/test/lamp_0137.off +lamp/test/lamp_0138.off +lamp/test/lamp_0139.off +lamp/test/lamp_0140.off +lamp/test/lamp_0141.off +lamp/test/lamp_0142.off +lamp/test/lamp_0143.off +lamp/test/lamp_0144.off +door/test/door_0110.off +door/test/door_0111.off +door/test/door_0112.off +door/test/door_0113.off +door/test/door_0114.off +door/test/door_0115.off +door/test/door_0116.off +door/test/door_0117.off +door/test/door_0118.off +door/test/door_0119.off +door/test/door_0120.off +door/test/door_0121.off +door/test/door_0122.off +door/test/door_0123.off +door/test/door_0124.off +door/test/door_0125.off +door/test/door_0126.off +door/test/door_0127.off +door/test/door_0128.off +door/test/door_0129.off +range_hood/test/range_hood_0116.off +range_hood/test/range_hood_0117.off +range_hood/test/range_hood_0118.off +range_hood/test/range_hood_0119.off +range_hood/test/range_hood_0120.off +range_hood/test/range_hood_0121.off +range_hood/test/range_hood_0122.off +range_hood/test/range_hood_0123.off +range_hood/test/range_hood_0124.off +range_hood/test/range_hood_0125.off +range_hood/test/range_hood_0126.off +range_hood/test/range_hood_0127.off +range_hood/test/range_hood_0128.off +range_hood/test/range_hood_0129.off +range_hood/test/range_hood_0130.off +range_hood/test/range_hood_0131.off +range_hood/test/range_hood_0132.off +range_hood/test/range_hood_0133.off +range_hood/test/range_hood_0134.off +range_hood/test/range_hood_0135.off +range_hood/test/range_hood_0136.off +range_hood/test/range_hood_0137.off +range_hood/test/range_hood_0138.off +range_hood/test/range_hood_0139.off +range_hood/test/range_hood_0140.off +range_hood/test/range_hood_0141.off +range_hood/test/range_hood_0142.off +range_hood/test/range_hood_0143.off +range_hood/test/range_hood_0144.off +range_hood/test/range_hood_0145.off +range_hood/test/range_hood_0146.off +range_hood/test/range_hood_0147.off +range_hood/test/range_hood_0148.off +range_hood/test/range_hood_0149.off +range_hood/test/range_hood_0150.off +range_hood/test/range_hood_0151.off +range_hood/test/range_hood_0152.off +range_hood/test/range_hood_0153.off +range_hood/test/range_hood_0154.off +range_hood/test/range_hood_0155.off +range_hood/test/range_hood_0156.off +range_hood/test/range_hood_0157.off +range_hood/test/range_hood_0158.off +range_hood/test/range_hood_0159.off +range_hood/test/range_hood_0160.off +range_hood/test/range_hood_0161.off +range_hood/test/range_hood_0162.off +range_hood/test/range_hood_0163.off +range_hood/test/range_hood_0164.off +range_hood/test/range_hood_0165.off +range_hood/test/range_hood_0166.off +range_hood/test/range_hood_0167.off +range_hood/test/range_hood_0168.off +range_hood/test/range_hood_0169.off +range_hood/test/range_hood_0170.off +range_hood/test/range_hood_0171.off +range_hood/test/range_hood_0172.off +range_hood/test/range_hood_0173.off +range_hood/test/range_hood_0174.off +range_hood/test/range_hood_0175.off +range_hood/test/range_hood_0176.off +range_hood/test/range_hood_0177.off +range_hood/test/range_hood_0178.off +range_hood/test/range_hood_0179.off +range_hood/test/range_hood_0180.off +range_hood/test/range_hood_0181.off +range_hood/test/range_hood_0182.off +range_hood/test/range_hood_0183.off +range_hood/test/range_hood_0184.off +range_hood/test/range_hood_0185.off +range_hood/test/range_hood_0186.off +range_hood/test/range_hood_0187.off +range_hood/test/range_hood_0188.off +range_hood/test/range_hood_0189.off +range_hood/test/range_hood_0190.off +range_hood/test/range_hood_0191.off +range_hood/test/range_hood_0192.off +range_hood/test/range_hood_0193.off +range_hood/test/range_hood_0194.off +range_hood/test/range_hood_0195.off +range_hood/test/range_hood_0196.off +range_hood/test/range_hood_0197.off +range_hood/test/range_hood_0198.off +range_hood/test/range_hood_0199.off +range_hood/test/range_hood_0200.off +range_hood/test/range_hood_0201.off +range_hood/test/range_hood_0202.off +range_hood/test/range_hood_0203.off +range_hood/test/range_hood_0204.off +range_hood/test/range_hood_0205.off +range_hood/test/range_hood_0206.off +range_hood/test/range_hood_0207.off +range_hood/test/range_hood_0208.off +range_hood/test/range_hood_0209.off +range_hood/test/range_hood_0210.off +range_hood/test/range_hood_0211.off +range_hood/test/range_hood_0212.off +range_hood/test/range_hood_0213.off +range_hood/test/range_hood_0214.off +range_hood/test/range_hood_0215.off +flower_pot/test/flower_pot_0150.off +flower_pot/test/flower_pot_0151.off +flower_pot/test/flower_pot_0152.off +flower_pot/test/flower_pot_0153.off +flower_pot/test/flower_pot_0154.off +flower_pot/test/flower_pot_0155.off +flower_pot/test/flower_pot_0156.off +flower_pot/test/flower_pot_0157.off +flower_pot/test/flower_pot_0158.off +flower_pot/test/flower_pot_0159.off +flower_pot/test/flower_pot_0160.off +flower_pot/test/flower_pot_0161.off +flower_pot/test/flower_pot_0162.off +flower_pot/test/flower_pot_0163.off +flower_pot/test/flower_pot_0164.off +flower_pot/test/flower_pot_0165.off +flower_pot/test/flower_pot_0166.off +flower_pot/test/flower_pot_0167.off +flower_pot/test/flower_pot_0168.off +flower_pot/test/flower_pot_0169.off \ No newline at end of file diff --git a/pcam/datasets/split/train_3dmatch.txt b/pcam/datasets/split/train_3dmatch.txt new file mode 100755 index 0000000..7a918a8 --- /dev/null +++ b/pcam/datasets/split/train_3dmatch.txt @@ -0,0 +1,48 @@ +sun3d-brown_bm_1-brown_bm_1 +sun3d-brown_cogsci_1-brown_cogsci_1 +sun3d-brown_cs_2-brown_cs2 +sun3d-brown_cs_3-brown_cs3 +sun3d-harvard_c3-hv_c3_1 +sun3d-harvard_c5-hv_c5_1 +sun3d-harvard_c6-hv_c6_1 +sun3d-harvard_c8-hv_c8_3 +sun3d-home_bksh-home_bksh_oct_30_2012_scan2_erika +sun3d-hotel_nips2012-nips_4 +sun3d-hotel_sf-scan1 +sun3d-mit_32_d507-d507_2 +sun3d-mit_46_ted_lab1-ted_lab_2 +sun3d-mit_76_417-76-417b +sun3d-mit_dorm_next_sj-dorm_next_sj_oct_30_2012_scan1_erika +sun3d-mit_w20_athena-sc_athena_oct_29_2012_scan1_erika +7-scenes-chess +7-scenes-fire +7-scenes-office +7-scenes-pumpkin +7-scenes-stairs +rgbd-scenes-v2-scene_01 +rgbd-scenes-v2-scene_02 +rgbd-scenes-v2-scene_03 +rgbd-scenes-v2-scene_04 +rgbd-scenes-v2-scene_05 +rgbd-scenes-v2-scene_06 +rgbd-scenes-v2-scene_07 +rgbd-scenes-v2-scene_08 +rgbd-scenes-v2-scene_09 +rgbd-scenes-v2-scene_11 +rgbd-scenes-v2-scene_12 +rgbd-scenes-v2-scene_13 +rgbd-scenes-v2-scene_14 +bundlefusion-apt0 +bundlefusion-apt1 +bundlefusion-apt2 +bundlefusion-copyroom +bundlefusion-office1 +bundlefusion-office2 +bundlefusion-office3 +analysis-by-synthesis-apt1-kitchen +analysis-by-synthesis-apt1-living +analysis-by-synthesis-apt2-bed +analysis-by-synthesis-apt2-living +analysis-by-synthesis-apt2-luke +analysis-by-synthesis-office2-5a +analysis-by-synthesis-office2-5b diff --git a/pcam/datasets/split/train_kitti.txt b/pcam/datasets/split/train_kitti.txt new file mode 100755 index 0000000..e8371f0 --- /dev/null +++ b/pcam/datasets/split/train_kitti.txt @@ -0,0 +1,6 @@ +0 +1 +2 +3 +4 +5 diff --git a/pcam/datasets/split/train_modelnet40.txt b/pcam/datasets/split/train_modelnet40.txt new file mode 100755 index 0000000..4230574 --- /dev/null +++ b/pcam/datasets/split/train_modelnet40.txt @@ -0,0 +1,8877 @@ +glass_box/train/glass_box_0001.off +glass_box/train/glass_box_0002.off +glass_box/train/glass_box_0003.off +glass_box/train/glass_box_0004.off +glass_box/train/glass_box_0005.off +glass_box/train/glass_box_0006.off +glass_box/train/glass_box_0007.off +glass_box/train/glass_box_0008.off +glass_box/train/glass_box_0009.off +glass_box/train/glass_box_0010.off +glass_box/train/glass_box_0011.off +glass_box/train/glass_box_0012.off +glass_box/train/glass_box_0013.off +glass_box/train/glass_box_0014.off +glass_box/train/glass_box_0015.off +glass_box/train/glass_box_0016.off +glass_box/train/glass_box_0017.off +glass_box/train/glass_box_0018.off +glass_box/train/glass_box_0019.off +glass_box/train/glass_box_0020.off +glass_box/train/glass_box_0021.off +glass_box/train/glass_box_0022.off +glass_box/train/glass_box_0023.off +glass_box/train/glass_box_0024.off +glass_box/train/glass_box_0025.off +glass_box/train/glass_box_0026.off +glass_box/train/glass_box_0027.off +glass_box/train/glass_box_0028.off +glass_box/train/glass_box_0029.off +glass_box/train/glass_box_0030.off +glass_box/train/glass_box_0031.off +glass_box/train/glass_box_0032.off +glass_box/train/glass_box_0033.off +glass_box/train/glass_box_0034.off +glass_box/train/glass_box_0035.off +glass_box/train/glass_box_0036.off +glass_box/train/glass_box_0037.off +glass_box/train/glass_box_0038.off +glass_box/train/glass_box_0039.off +glass_box/train/glass_box_0040.off +glass_box/train/glass_box_0041.off +glass_box/train/glass_box_0042.off +glass_box/train/glass_box_0043.off +glass_box/train/glass_box_0044.off +glass_box/train/glass_box_0045.off +glass_box/train/glass_box_0046.off +glass_box/train/glass_box_0047.off +glass_box/train/glass_box_0048.off +glass_box/train/glass_box_0049.off +glass_box/train/glass_box_0050.off +glass_box/train/glass_box_0051.off +glass_box/train/glass_box_0052.off +glass_box/train/glass_box_0053.off +glass_box/train/glass_box_0054.off +glass_box/train/glass_box_0055.off +glass_box/train/glass_box_0056.off +glass_box/train/glass_box_0057.off +glass_box/train/glass_box_0058.off +glass_box/train/glass_box_0059.off +glass_box/train/glass_box_0060.off +glass_box/train/glass_box_0061.off +glass_box/train/glass_box_0062.off +glass_box/train/glass_box_0063.off +glass_box/train/glass_box_0064.off +glass_box/train/glass_box_0065.off +glass_box/train/glass_box_0066.off +glass_box/train/glass_box_0067.off +glass_box/train/glass_box_0068.off +glass_box/train/glass_box_0069.off +glass_box/train/glass_box_0070.off +glass_box/train/glass_box_0071.off +glass_box/train/glass_box_0072.off +glass_box/train/glass_box_0073.off +glass_box/train/glass_box_0074.off +glass_box/train/glass_box_0075.off +glass_box/train/glass_box_0076.off +glass_box/train/glass_box_0077.off +glass_box/train/glass_box_0078.off +glass_box/train/glass_box_0079.off +glass_box/train/glass_box_0080.off +glass_box/train/glass_box_0081.off +glass_box/train/glass_box_0082.off +glass_box/train/glass_box_0083.off +glass_box/train/glass_box_0084.off +glass_box/train/glass_box_0085.off +glass_box/train/glass_box_0086.off +glass_box/train/glass_box_0087.off +glass_box/train/glass_box_0088.off +glass_box/train/glass_box_0089.off +glass_box/train/glass_box_0090.off +glass_box/train/glass_box_0091.off +glass_box/train/glass_box_0092.off +glass_box/train/glass_box_0093.off +glass_box/train/glass_box_0094.off +glass_box/train/glass_box_0095.off +glass_box/train/glass_box_0096.off +glass_box/train/glass_box_0097.off +glass_box/train/glass_box_0098.off +glass_box/train/glass_box_0099.off +glass_box/train/glass_box_0100.off +glass_box/train/glass_box_0101.off +glass_box/train/glass_box_0102.off +glass_box/train/glass_box_0103.off +glass_box/train/glass_box_0104.off +glass_box/train/glass_box_0105.off +glass_box/train/glass_box_0106.off +glass_box/train/glass_box_0107.off +glass_box/train/glass_box_0108.off +glass_box/train/glass_box_0109.off +glass_box/train/glass_box_0110.off +glass_box/train/glass_box_0111.off +glass_box/train/glass_box_0112.off +glass_box/train/glass_box_0113.off +glass_box/train/glass_box_0114.off +glass_box/train/glass_box_0115.off +glass_box/train/glass_box_0116.off +glass_box/train/glass_box_0117.off +glass_box/train/glass_box_0118.off +glass_box/train/glass_box_0119.off +glass_box/train/glass_box_0120.off +glass_box/train/glass_box_0121.off +glass_box/train/glass_box_0122.off +glass_box/train/glass_box_0123.off +glass_box/train/glass_box_0124.off +glass_box/train/glass_box_0125.off +glass_box/train/glass_box_0126.off +glass_box/train/glass_box_0127.off +glass_box/train/glass_box_0128.off +glass_box/train/glass_box_0129.off +glass_box/train/glass_box_0130.off +glass_box/train/glass_box_0131.off +glass_box/train/glass_box_0132.off +glass_box/train/glass_box_0133.off +glass_box/train/glass_box_0134.off +glass_box/train/glass_box_0135.off +glass_box/train/glass_box_0136.off +glass_box/train/glass_box_0137.off +glass_box/train/glass_box_0138.off +glass_box/train/glass_box_0139.off +glass_box/train/glass_box_0140.off +glass_box/train/glass_box_0141.off +glass_box/train/glass_box_0142.off +glass_box/train/glass_box_0143.off +glass_box/train/glass_box_0144.off +glass_box/train/glass_box_0145.off +glass_box/train/glass_box_0146.off +glass_box/train/glass_box_0147.off +glass_box/train/glass_box_0148.off +glass_box/train/glass_box_0149.off +glass_box/train/glass_box_0150.off +glass_box/train/glass_box_0151.off +glass_box/train/glass_box_0152.off +glass_box/train/glass_box_0153.off +glass_box/train/glass_box_0154.off +laptop/train/laptop_0001.off +laptop/train/laptop_0002.off +laptop/train/laptop_0003.off +laptop/train/laptop_0004.off +laptop/train/laptop_0005.off +laptop/train/laptop_0006.off +laptop/train/laptop_0007.off +laptop/train/laptop_0008.off +laptop/train/laptop_0009.off +laptop/train/laptop_0010.off +laptop/train/laptop_0011.off +laptop/train/laptop_0012.off +laptop/train/laptop_0013.off +laptop/train/laptop_0014.off +laptop/train/laptop_0015.off +laptop/train/laptop_0016.off +laptop/train/laptop_0017.off +laptop/train/laptop_0018.off +laptop/train/laptop_0019.off +laptop/train/laptop_0020.off +laptop/train/laptop_0021.off +laptop/train/laptop_0022.off +laptop/train/laptop_0023.off +laptop/train/laptop_0024.off +laptop/train/laptop_0025.off +laptop/train/laptop_0026.off +laptop/train/laptop_0027.off +laptop/train/laptop_0028.off +laptop/train/laptop_0029.off +laptop/train/laptop_0030.off +laptop/train/laptop_0031.off +laptop/train/laptop_0032.off +laptop/train/laptop_0033.off +laptop/train/laptop_0034.off +laptop/train/laptop_0035.off +laptop/train/laptop_0036.off +laptop/train/laptop_0037.off +laptop/train/laptop_0038.off +laptop/train/laptop_0039.off +laptop/train/laptop_0040.off +laptop/train/laptop_0041.off +laptop/train/laptop_0042.off +laptop/train/laptop_0043.off +laptop/train/laptop_0044.off +laptop/train/laptop_0045.off +laptop/train/laptop_0046.off +laptop/train/laptop_0047.off +laptop/train/laptop_0048.off +laptop/train/laptop_0049.off +laptop/train/laptop_0050.off +laptop/train/laptop_0051.off +laptop/train/laptop_0052.off +laptop/train/laptop_0053.off +laptop/train/laptop_0054.off +laptop/train/laptop_0055.off +laptop/train/laptop_0056.off +laptop/train/laptop_0057.off +laptop/train/laptop_0058.off +laptop/train/laptop_0059.off +laptop/train/laptop_0060.off +laptop/train/laptop_0061.off +laptop/train/laptop_0062.off +laptop/train/laptop_0063.off +laptop/train/laptop_0064.off +laptop/train/laptop_0065.off +laptop/train/laptop_0066.off +laptop/train/laptop_0067.off +laptop/train/laptop_0068.off +laptop/train/laptop_0069.off +laptop/train/laptop_0070.off +laptop/train/laptop_0071.off +laptop/train/laptop_0072.off +laptop/train/laptop_0073.off +laptop/train/laptop_0074.off +laptop/train/laptop_0075.off +laptop/train/laptop_0076.off +laptop/train/laptop_0077.off +laptop/train/laptop_0078.off +laptop/train/laptop_0079.off +laptop/train/laptop_0080.off +laptop/train/laptop_0081.off +laptop/train/laptop_0082.off +laptop/train/laptop_0083.off +laptop/train/laptop_0084.off +laptop/train/laptop_0085.off +laptop/train/laptop_0086.off +laptop/train/laptop_0087.off +laptop/train/laptop_0088.off +laptop/train/laptop_0089.off +laptop/train/laptop_0090.off +laptop/train/laptop_0091.off +laptop/train/laptop_0092.off +laptop/train/laptop_0093.off +laptop/train/laptop_0094.off +laptop/train/laptop_0095.off +laptop/train/laptop_0096.off +laptop/train/laptop_0097.off +laptop/train/laptop_0098.off +laptop/train/laptop_0099.off +laptop/train/laptop_0100.off +laptop/train/laptop_0101.off +laptop/train/laptop_0102.off +laptop/train/laptop_0103.off +laptop/train/laptop_0104.off +laptop/train/laptop_0105.off +laptop/train/laptop_0106.off +laptop/train/laptop_0107.off +laptop/train/laptop_0108.off +laptop/train/laptop_0109.off +laptop/train/laptop_0110.off +laptop/train/laptop_0111.off +laptop/train/laptop_0112.off +laptop/train/laptop_0113.off +laptop/train/laptop_0114.off +laptop/train/laptop_0115.off +laptop/train/laptop_0116.off +laptop/train/laptop_0117.off +laptop/train/laptop_0118.off +laptop/train/laptop_0119.off +laptop/train/laptop_0120.off +laptop/train/laptop_0121.off +laptop/train/laptop_0122.off +laptop/train/laptop_0123.off +laptop/train/laptop_0124.off +laptop/train/laptop_0125.off +laptop/train/laptop_0126.off +laptop/train/laptop_0127.off +laptop/train/laptop_0128.off +laptop/train/laptop_0129.off +laptop/train/laptop_0130.off +laptop/train/laptop_0131.off +laptop/train/laptop_0132.off +laptop/train/laptop_0133.off +laptop/train/laptop_0134.off +laptop/train/laptop_0135.off +sink/train/sink_0001.off +sink/train/sink_0002.off +sink/train/sink_0003.off +sink/train/sink_0004.off +sink/train/sink_0005.off +sink/train/sink_0006.off +sink/train/sink_0007.off +sink/train/sink_0008.off +sink/train/sink_0009.off +sink/train/sink_0010.off +sink/train/sink_0011.off +sink/train/sink_0012.off +sink/train/sink_0013.off +sink/train/sink_0014.off +sink/train/sink_0015.off +sink/train/sink_0016.off +sink/train/sink_0017.off +sink/train/sink_0018.off +sink/train/sink_0019.off +sink/train/sink_0020.off +sink/train/sink_0021.off +sink/train/sink_0022.off +sink/train/sink_0023.off +sink/train/sink_0024.off +sink/train/sink_0025.off +sink/train/sink_0026.off +sink/train/sink_0027.off +sink/train/sink_0028.off +sink/train/sink_0029.off +sink/train/sink_0030.off +sink/train/sink_0031.off +sink/train/sink_0032.off +sink/train/sink_0033.off +sink/train/sink_0034.off +sink/train/sink_0035.off +sink/train/sink_0036.off +sink/train/sink_0037.off +sink/train/sink_0038.off +sink/train/sink_0039.off +sink/train/sink_0040.off +sink/train/sink_0041.off +sink/train/sink_0042.off +sink/train/sink_0043.off +sink/train/sink_0044.off +sink/train/sink_0045.off +sink/train/sink_0046.off +sink/train/sink_0047.off +sink/train/sink_0048.off +sink/train/sink_0049.off +sink/train/sink_0050.off +sink/train/sink_0051.off +sink/train/sink_0052.off +sink/train/sink_0053.off +sink/train/sink_0054.off +sink/train/sink_0055.off +sink/train/sink_0056.off +sink/train/sink_0057.off +sink/train/sink_0058.off +sink/train/sink_0059.off +sink/train/sink_0060.off +sink/train/sink_0061.off +sink/train/sink_0062.off +sink/train/sink_0063.off +sink/train/sink_0064.off +sink/train/sink_0065.off +sink/train/sink_0066.off +sink/train/sink_0067.off +sink/train/sink_0068.off +sink/train/sink_0069.off +sink/train/sink_0070.off +sink/train/sink_0071.off +sink/train/sink_0072.off +sink/train/sink_0073.off +sink/train/sink_0074.off +sink/train/sink_0075.off +sink/train/sink_0076.off +sink/train/sink_0077.off +sink/train/sink_0078.off +sink/train/sink_0079.off +sink/train/sink_0080.off +sink/train/sink_0081.off +sink/train/sink_0082.off +sink/train/sink_0083.off +sink/train/sink_0084.off +sink/train/sink_0085.off +sink/train/sink_0086.off +sink/train/sink_0087.off +sink/train/sink_0088.off +sink/train/sink_0089.off +sink/train/sink_0090.off +sink/train/sink_0091.off +sink/train/sink_0092.off +sink/train/sink_0093.off +sink/train/sink_0094.off +sink/train/sink_0095.off +sink/train/sink_0096.off +sink/train/sink_0097.off +sink/train/sink_0098.off +sink/train/sink_0099.off +sink/train/sink_0100.off +sink/train/sink_0101.off +sink/train/sink_0102.off +sink/train/sink_0103.off +sink/train/sink_0104.off +sink/train/sink_0105.off +sink/train/sink_0106.off +sink/train/sink_0107.off +sink/train/sink_0108.off +sink/train/sink_0109.off +sink/train/sink_0110.off +sink/train/sink_0111.off +sink/train/sink_0112.off +sink/train/sink_0113.off +sink/train/sink_0114.off +sink/train/sink_0115.off +sink/train/sink_0116.off +night_stand/train/night_stand_0001.off +night_stand/train/night_stand_0002.off +night_stand/train/night_stand_0003.off +night_stand/train/night_stand_0004.off +night_stand/train/night_stand_0005.off +night_stand/train/night_stand_0006.off +night_stand/train/night_stand_0007.off +night_stand/train/night_stand_0008.off +night_stand/train/night_stand_0009.off +night_stand/train/night_stand_0010.off +night_stand/train/night_stand_0011.off +night_stand/train/night_stand_0012.off +night_stand/train/night_stand_0013.off +night_stand/train/night_stand_0014.off +night_stand/train/night_stand_0015.off +night_stand/train/night_stand_0016.off +night_stand/train/night_stand_0017.off +night_stand/train/night_stand_0018.off +night_stand/train/night_stand_0019.off +night_stand/train/night_stand_0020.off +night_stand/train/night_stand_0021.off +night_stand/train/night_stand_0022.off +night_stand/train/night_stand_0023.off +night_stand/train/night_stand_0024.off +night_stand/train/night_stand_0025.off +night_stand/train/night_stand_0026.off +night_stand/train/night_stand_0027.off +night_stand/train/night_stand_0028.off +night_stand/train/night_stand_0029.off +night_stand/train/night_stand_0030.off +night_stand/train/night_stand_0031.off +night_stand/train/night_stand_0032.off +night_stand/train/night_stand_0033.off +night_stand/train/night_stand_0034.off +night_stand/train/night_stand_0035.off +night_stand/train/night_stand_0036.off +night_stand/train/night_stand_0037.off +night_stand/train/night_stand_0038.off +night_stand/train/night_stand_0039.off +night_stand/train/night_stand_0040.off +night_stand/train/night_stand_0041.off +night_stand/train/night_stand_0042.off +night_stand/train/night_stand_0043.off +night_stand/train/night_stand_0044.off +night_stand/train/night_stand_0045.off +night_stand/train/night_stand_0046.off +night_stand/train/night_stand_0047.off +night_stand/train/night_stand_0048.off +night_stand/train/night_stand_0049.off +night_stand/train/night_stand_0050.off +night_stand/train/night_stand_0051.off +night_stand/train/night_stand_0052.off +night_stand/train/night_stand_0053.off +night_stand/train/night_stand_0054.off +night_stand/train/night_stand_0055.off +night_stand/train/night_stand_0056.off +night_stand/train/night_stand_0057.off +night_stand/train/night_stand_0058.off +night_stand/train/night_stand_0059.off +night_stand/train/night_stand_0060.off +night_stand/train/night_stand_0061.off +night_stand/train/night_stand_0062.off +night_stand/train/night_stand_0063.off +night_stand/train/night_stand_0064.off +night_stand/train/night_stand_0065.off +night_stand/train/night_stand_0066.off +night_stand/train/night_stand_0067.off +night_stand/train/night_stand_0068.off +night_stand/train/night_stand_0069.off +night_stand/train/night_stand_0070.off +night_stand/train/night_stand_0071.off +night_stand/train/night_stand_0072.off +night_stand/train/night_stand_0073.off +night_stand/train/night_stand_0074.off +night_stand/train/night_stand_0075.off +night_stand/train/night_stand_0076.off +night_stand/train/night_stand_0077.off +night_stand/train/night_stand_0078.off +night_stand/train/night_stand_0079.off +night_stand/train/night_stand_0080.off +night_stand/train/night_stand_0081.off +night_stand/train/night_stand_0082.off +night_stand/train/night_stand_0083.off +night_stand/train/night_stand_0084.off +night_stand/train/night_stand_0085.off +night_stand/train/night_stand_0086.off +night_stand/train/night_stand_0087.off +night_stand/train/night_stand_0088.off +night_stand/train/night_stand_0089.off +night_stand/train/night_stand_0090.off +night_stand/train/night_stand_0091.off +night_stand/train/night_stand_0092.off +night_stand/train/night_stand_0093.off +night_stand/train/night_stand_0094.off +night_stand/train/night_stand_0095.off +night_stand/train/night_stand_0096.off +night_stand/train/night_stand_0097.off +night_stand/train/night_stand_0098.off +night_stand/train/night_stand_0099.off +night_stand/train/night_stand_0100.off +night_stand/train/night_stand_0101.off +night_stand/train/night_stand_0102.off +night_stand/train/night_stand_0103.off +night_stand/train/night_stand_0104.off +night_stand/train/night_stand_0105.off +night_stand/train/night_stand_0106.off +night_stand/train/night_stand_0107.off +night_stand/train/night_stand_0108.off +night_stand/train/night_stand_0109.off +night_stand/train/night_stand_0110.off +night_stand/train/night_stand_0111.off +night_stand/train/night_stand_0112.off +night_stand/train/night_stand_0113.off +night_stand/train/night_stand_0114.off +night_stand/train/night_stand_0115.off +night_stand/train/night_stand_0116.off +night_stand/train/night_stand_0117.off +night_stand/train/night_stand_0118.off +night_stand/train/night_stand_0119.off +night_stand/train/night_stand_0120.off +night_stand/train/night_stand_0121.off +night_stand/train/night_stand_0122.off +night_stand/train/night_stand_0123.off +night_stand/train/night_stand_0124.off +night_stand/train/night_stand_0125.off +night_stand/train/night_stand_0126.off +night_stand/train/night_stand_0127.off +night_stand/train/night_stand_0128.off +night_stand/train/night_stand_0129.off +night_stand/train/night_stand_0130.off +night_stand/train/night_stand_0131.off +night_stand/train/night_stand_0132.off +night_stand/train/night_stand_0133.off +night_stand/train/night_stand_0134.off +night_stand/train/night_stand_0135.off +night_stand/train/night_stand_0136.off +night_stand/train/night_stand_0137.off +night_stand/train/night_stand_0138.off +night_stand/train/night_stand_0139.off +night_stand/train/night_stand_0140.off +night_stand/train/night_stand_0141.off +night_stand/train/night_stand_0142.off +night_stand/train/night_stand_0143.off +night_stand/train/night_stand_0144.off +night_stand/train/night_stand_0145.off +night_stand/train/night_stand_0146.off +night_stand/train/night_stand_0147.off +night_stand/train/night_stand_0148.off +night_stand/train/night_stand_0149.off +night_stand/train/night_stand_0150.off +night_stand/train/night_stand_0151.off +night_stand/train/night_stand_0152.off +night_stand/train/night_stand_0153.off +night_stand/train/night_stand_0154.off +night_stand/train/night_stand_0155.off +night_stand/train/night_stand_0156.off +night_stand/train/night_stand_0157.off +night_stand/train/night_stand_0158.off +night_stand/train/night_stand_0159.off +night_stand/train/night_stand_0160.off +night_stand/train/night_stand_0161.off +night_stand/train/night_stand_0162.off +night_stand/train/night_stand_0163.off +night_stand/train/night_stand_0164.off +night_stand/train/night_stand_0165.off +night_stand/train/night_stand_0166.off +night_stand/train/night_stand_0167.off +night_stand/train/night_stand_0168.off +night_stand/train/night_stand_0169.off +night_stand/train/night_stand_0170.off +night_stand/train/night_stand_0171.off +night_stand/train/night_stand_0172.off +night_stand/train/night_stand_0173.off +night_stand/train/night_stand_0174.off +night_stand/train/night_stand_0175.off +night_stand/train/night_stand_0176.off +night_stand/train/night_stand_0177.off +night_stand/train/night_stand_0178.off +night_stand/train/night_stand_0179.off +night_stand/train/night_stand_0180.off +car/train/car_0001.off +car/train/car_0002.off +car/train/car_0003.off +car/train/car_0004.off +car/train/car_0005.off +car/train/car_0006.off +car/train/car_0007.off +car/train/car_0008.off +car/train/car_0009.off +car/train/car_0010.off +car/train/car_0011.off +car/train/car_0012.off +car/train/car_0013.off +car/train/car_0014.off +car/train/car_0015.off +car/train/car_0016.off +car/train/car_0017.off +car/train/car_0018.off +car/train/car_0019.off +car/train/car_0020.off +car/train/car_0021.off +car/train/car_0022.off +car/train/car_0023.off +car/train/car_0024.off +car/train/car_0025.off +car/train/car_0026.off +car/train/car_0027.off +car/train/car_0028.off +car/train/car_0029.off +car/train/car_0030.off +car/train/car_0031.off +car/train/car_0032.off +car/train/car_0033.off +car/train/car_0034.off +car/train/car_0035.off +car/train/car_0036.off +car/train/car_0037.off +car/train/car_0038.off +car/train/car_0039.off +car/train/car_0040.off +car/train/car_0041.off +car/train/car_0042.off +car/train/car_0043.off +car/train/car_0044.off +car/train/car_0045.off +car/train/car_0046.off +car/train/car_0047.off +car/train/car_0048.off +car/train/car_0049.off +car/train/car_0050.off +car/train/car_0051.off +car/train/car_0052.off +car/train/car_0053.off +car/train/car_0054.off +car/train/car_0055.off +car/train/car_0056.off +car/train/car_0057.off +car/train/car_0058.off +car/train/car_0059.off +car/train/car_0060.off +car/train/car_0061.off +car/train/car_0062.off +car/train/car_0063.off +car/train/car_0064.off +car/train/car_0065.off +car/train/car_0066.off +car/train/car_0067.off +car/train/car_0068.off +car/train/car_0069.off +car/train/car_0070.off +car/train/car_0071.off +car/train/car_0072.off +car/train/car_0073.off +car/train/car_0074.off +car/train/car_0075.off +car/train/car_0076.off +car/train/car_0077.off +car/train/car_0078.off +car/train/car_0079.off +car/train/car_0080.off +car/train/car_0081.off +car/train/car_0082.off +car/train/car_0083.off +car/train/car_0084.off +car/train/car_0085.off +car/train/car_0086.off +car/train/car_0087.off +car/train/car_0088.off +car/train/car_0089.off +car/train/car_0090.off +car/train/car_0091.off +car/train/car_0092.off +car/train/car_0093.off +car/train/car_0094.off +car/train/car_0095.off +car/train/car_0096.off +car/train/car_0097.off +car/train/car_0098.off +car/train/car_0099.off +car/train/car_0100.off +car/train/car_0101.off +car/train/car_0102.off +car/train/car_0103.off +car/train/car_0104.off +car/train/car_0105.off +car/train/car_0106.off +car/train/car_0107.off +car/train/car_0108.off +car/train/car_0109.off +car/train/car_0110.off +car/train/car_0111.off +car/train/car_0112.off +car/train/car_0113.off +car/train/car_0114.off +car/train/car_0115.off +car/train/car_0116.off +car/train/car_0117.off +car/train/car_0118.off +car/train/car_0119.off +car/train/car_0120.off +car/train/car_0121.off +car/train/car_0122.off +car/train/car_0123.off +car/train/car_0124.off +car/train/car_0125.off +car/train/car_0126.off +car/train/car_0127.off +car/train/car_0128.off +car/train/car_0129.off +car/train/car_0130.off +car/train/car_0131.off +car/train/car_0132.off +car/train/car_0133.off +car/train/car_0134.off +car/train/car_0135.off +car/train/car_0136.off +car/train/car_0137.off +car/train/car_0138.off +car/train/car_0139.off +car/train/car_0140.off +car/train/car_0141.off +car/train/car_0142.off +car/train/car_0143.off +car/train/car_0144.off +car/train/car_0145.off +car/train/car_0146.off +car/train/car_0147.off +car/train/car_0148.off +car/train/car_0149.off +car/train/car_0150.off +car/train/car_0151.off +car/train/car_0152.off +car/train/car_0153.off +car/train/car_0154.off +car/train/car_0155.off +car/train/car_0156.off +car/train/car_0157.off +car/train/car_0158.off +car/train/car_0159.off +car/train/car_0160.off +car/train/car_0161.off +car/train/car_0162.off +car/train/car_0163.off +car/train/car_0164.off +car/train/car_0165.off +car/train/car_0166.off +car/train/car_0167.off +car/train/car_0168.off +car/train/car_0169.off +car/train/car_0170.off +car/train/car_0171.off +car/train/car_0172.off +car/train/car_0173.off +car/train/car_0174.off +car/train/car_0175.off +car/train/car_0176.off +car/train/car_0177.off +car/train/car_0178.off +dresser/train/dresser_0001.off +dresser/train/dresser_0002.off +dresser/train/dresser_0003.off +dresser/train/dresser_0004.off +dresser/train/dresser_0005.off +dresser/train/dresser_0006.off +dresser/train/dresser_0007.off +dresser/train/dresser_0008.off +dresser/train/dresser_0009.off +dresser/train/dresser_0010.off +dresser/train/dresser_0011.off +dresser/train/dresser_0012.off +dresser/train/dresser_0013.off +dresser/train/dresser_0014.off +dresser/train/dresser_0015.off +dresser/train/dresser_0016.off +dresser/train/dresser_0017.off +dresser/train/dresser_0018.off +dresser/train/dresser_0019.off +dresser/train/dresser_0020.off +dresser/train/dresser_0021.off +dresser/train/dresser_0022.off +dresser/train/dresser_0023.off +dresser/train/dresser_0024.off +dresser/train/dresser_0025.off +dresser/train/dresser_0026.off +dresser/train/dresser_0027.off +dresser/train/dresser_0028.off +dresser/train/dresser_0029.off +dresser/train/dresser_0030.off +dresser/train/dresser_0031.off +dresser/train/dresser_0032.off +dresser/train/dresser_0033.off +dresser/train/dresser_0034.off +dresser/train/dresser_0035.off +dresser/train/dresser_0036.off +dresser/train/dresser_0037.off +dresser/train/dresser_0038.off +dresser/train/dresser_0039.off +dresser/train/dresser_0040.off +dresser/train/dresser_0041.off +dresser/train/dresser_0042.off +dresser/train/dresser_0043.off +dresser/train/dresser_0044.off +dresser/train/dresser_0045.off +dresser/train/dresser_0046.off +dresser/train/dresser_0047.off +dresser/train/dresser_0048.off +dresser/train/dresser_0049.off +dresser/train/dresser_0050.off +dresser/train/dresser_0051.off +dresser/train/dresser_0052.off +dresser/train/dresser_0053.off +dresser/train/dresser_0054.off +dresser/train/dresser_0055.off +dresser/train/dresser_0056.off +dresser/train/dresser_0057.off +dresser/train/dresser_0058.off +dresser/train/dresser_0059.off +dresser/train/dresser_0060.off +dresser/train/dresser_0061.off +dresser/train/dresser_0062.off +dresser/train/dresser_0063.off +dresser/train/dresser_0064.off +dresser/train/dresser_0065.off +dresser/train/dresser_0066.off +dresser/train/dresser_0067.off +dresser/train/dresser_0068.off +dresser/train/dresser_0069.off +dresser/train/dresser_0070.off +dresser/train/dresser_0071.off +dresser/train/dresser_0072.off +dresser/train/dresser_0073.off +dresser/train/dresser_0074.off +dresser/train/dresser_0075.off +dresser/train/dresser_0076.off +dresser/train/dresser_0077.off +dresser/train/dresser_0078.off +dresser/train/dresser_0079.off +dresser/train/dresser_0080.off +dresser/train/dresser_0081.off +dresser/train/dresser_0082.off +dresser/train/dresser_0083.off +dresser/train/dresser_0084.off +dresser/train/dresser_0085.off +dresser/train/dresser_0086.off +dresser/train/dresser_0087.off +dresser/train/dresser_0088.off +dresser/train/dresser_0089.off +dresser/train/dresser_0090.off +dresser/train/dresser_0091.off +dresser/train/dresser_0092.off +dresser/train/dresser_0093.off +dresser/train/dresser_0094.off +dresser/train/dresser_0095.off +dresser/train/dresser_0096.off +dresser/train/dresser_0097.off +dresser/train/dresser_0098.off +dresser/train/dresser_0099.off +dresser/train/dresser_0100.off +dresser/train/dresser_0101.off +dresser/train/dresser_0102.off +dresser/train/dresser_0103.off +dresser/train/dresser_0104.off +dresser/train/dresser_0105.off +dresser/train/dresser_0106.off +dresser/train/dresser_0107.off +dresser/train/dresser_0108.off +dresser/train/dresser_0109.off +dresser/train/dresser_0110.off +dresser/train/dresser_0111.off +dresser/train/dresser_0112.off +dresser/train/dresser_0113.off +dresser/train/dresser_0114.off +dresser/train/dresser_0115.off +dresser/train/dresser_0116.off +dresser/train/dresser_0117.off +dresser/train/dresser_0118.off +dresser/train/dresser_0119.off +dresser/train/dresser_0120.off +dresser/train/dresser_0121.off +dresser/train/dresser_0122.off +dresser/train/dresser_0123.off +dresser/train/dresser_0124.off +dresser/train/dresser_0125.off +dresser/train/dresser_0126.off +dresser/train/dresser_0127.off +dresser/train/dresser_0128.off +dresser/train/dresser_0129.off +dresser/train/dresser_0130.off +dresser/train/dresser_0131.off +dresser/train/dresser_0132.off +dresser/train/dresser_0133.off +dresser/train/dresser_0134.off +dresser/train/dresser_0135.off +dresser/train/dresser_0136.off +dresser/train/dresser_0137.off +dresser/train/dresser_0138.off +dresser/train/dresser_0139.off +dresser/train/dresser_0140.off +dresser/train/dresser_0141.off +dresser/train/dresser_0142.off +dresser/train/dresser_0143.off +dresser/train/dresser_0144.off +dresser/train/dresser_0145.off +dresser/train/dresser_0146.off +dresser/train/dresser_0147.off +dresser/train/dresser_0148.off +dresser/train/dresser_0149.off +dresser/train/dresser_0150.off +dresser/train/dresser_0151.off +dresser/train/dresser_0152.off +dresser/train/dresser_0153.off +dresser/train/dresser_0154.off +dresser/train/dresser_0155.off +dresser/train/dresser_0156.off +dresser/train/dresser_0157.off +dresser/train/dresser_0158.off +dresser/train/dresser_0159.off +dresser/train/dresser_0160.off +dresser/train/dresser_0161.off +dresser/train/dresser_0162.off +dresser/train/dresser_0163.off +dresser/train/dresser_0164.off +dresser/train/dresser_0165.off +dresser/train/dresser_0166.off +dresser/train/dresser_0167.off +dresser/train/dresser_0168.off +dresser/train/dresser_0169.off +dresser/train/dresser_0170.off +dresser/train/dresser_0171.off +dresser/train/dresser_0172.off +dresser/train/dresser_0173.off +dresser/train/dresser_0174.off +dresser/train/dresser_0175.off +dresser/train/dresser_0176.off +dresser/train/dresser_0177.off +dresser/train/dresser_0178.off +dresser/train/dresser_0179.off +dresser/train/dresser_0180.off +toilet/train/toilet_0001.off +toilet/train/toilet_0002.off +toilet/train/toilet_0003.off +toilet/train/toilet_0004.off +toilet/train/toilet_0005.off +toilet/train/toilet_0006.off +toilet/train/toilet_0007.off +toilet/train/toilet_0008.off +toilet/train/toilet_0009.off +toilet/train/toilet_0010.off +toilet/train/toilet_0011.off +toilet/train/toilet_0012.off +toilet/train/toilet_0013.off +toilet/train/toilet_0014.off +toilet/train/toilet_0015.off +toilet/train/toilet_0016.off +toilet/train/toilet_0017.off +toilet/train/toilet_0018.off +toilet/train/toilet_0019.off +toilet/train/toilet_0020.off +toilet/train/toilet_0021.off +toilet/train/toilet_0022.off +toilet/train/toilet_0023.off +toilet/train/toilet_0024.off +toilet/train/toilet_0025.off +toilet/train/toilet_0026.off +toilet/train/toilet_0027.off +toilet/train/toilet_0028.off +toilet/train/toilet_0029.off +toilet/train/toilet_0030.off +toilet/train/toilet_0031.off +toilet/train/toilet_0032.off +toilet/train/toilet_0033.off +toilet/train/toilet_0034.off +toilet/train/toilet_0035.off +toilet/train/toilet_0036.off +toilet/train/toilet_0037.off +toilet/train/toilet_0038.off +toilet/train/toilet_0039.off +toilet/train/toilet_0040.off +toilet/train/toilet_0041.off +toilet/train/toilet_0042.off +toilet/train/toilet_0043.off +toilet/train/toilet_0044.off +toilet/train/toilet_0045.off +toilet/train/toilet_0046.off +toilet/train/toilet_0047.off +toilet/train/toilet_0048.off +toilet/train/toilet_0049.off +toilet/train/toilet_0050.off +toilet/train/toilet_0051.off +toilet/train/toilet_0052.off +toilet/train/toilet_0053.off +toilet/train/toilet_0054.off +toilet/train/toilet_0055.off +toilet/train/toilet_0056.off +toilet/train/toilet_0057.off +toilet/train/toilet_0058.off +toilet/train/toilet_0059.off +toilet/train/toilet_0060.off +toilet/train/toilet_0061.off +toilet/train/toilet_0062.off +toilet/train/toilet_0063.off +toilet/train/toilet_0064.off +toilet/train/toilet_0065.off +toilet/train/toilet_0066.off +toilet/train/toilet_0067.off +toilet/train/toilet_0068.off +toilet/train/toilet_0069.off +toilet/train/toilet_0070.off +toilet/train/toilet_0071.off +toilet/train/toilet_0072.off +toilet/train/toilet_0073.off +toilet/train/toilet_0074.off +toilet/train/toilet_0075.off +toilet/train/toilet_0076.off +toilet/train/toilet_0077.off +toilet/train/toilet_0078.off +toilet/train/toilet_0079.off +toilet/train/toilet_0080.off +toilet/train/toilet_0081.off +toilet/train/toilet_0082.off +toilet/train/toilet_0083.off +toilet/train/toilet_0084.off +toilet/train/toilet_0085.off +toilet/train/toilet_0086.off +toilet/train/toilet_0087.off +toilet/train/toilet_0088.off +toilet/train/toilet_0089.off +toilet/train/toilet_0090.off +toilet/train/toilet_0091.off +toilet/train/toilet_0092.off +toilet/train/toilet_0093.off +toilet/train/toilet_0094.off +toilet/train/toilet_0095.off +toilet/train/toilet_0096.off +toilet/train/toilet_0097.off +toilet/train/toilet_0098.off +toilet/train/toilet_0099.off +toilet/train/toilet_0100.off +toilet/train/toilet_0101.off +toilet/train/toilet_0102.off +toilet/train/toilet_0103.off +toilet/train/toilet_0104.off +toilet/train/toilet_0105.off +toilet/train/toilet_0106.off +toilet/train/toilet_0107.off +toilet/train/toilet_0108.off +toilet/train/toilet_0109.off +toilet/train/toilet_0110.off +toilet/train/toilet_0111.off +toilet/train/toilet_0112.off +toilet/train/toilet_0113.off +toilet/train/toilet_0114.off +toilet/train/toilet_0115.off +toilet/train/toilet_0116.off +toilet/train/toilet_0117.off +toilet/train/toilet_0118.off +toilet/train/toilet_0119.off +toilet/train/toilet_0120.off +toilet/train/toilet_0121.off +toilet/train/toilet_0122.off +toilet/train/toilet_0123.off +toilet/train/toilet_0124.off +toilet/train/toilet_0125.off +toilet/train/toilet_0126.off +toilet/train/toilet_0127.off +toilet/train/toilet_0128.off +toilet/train/toilet_0129.off +toilet/train/toilet_0130.off +toilet/train/toilet_0131.off +toilet/train/toilet_0132.off +toilet/train/toilet_0133.off +toilet/train/toilet_0134.off +toilet/train/toilet_0135.off +toilet/train/toilet_0136.off +toilet/train/toilet_0137.off +toilet/train/toilet_0138.off +toilet/train/toilet_0139.off +toilet/train/toilet_0140.off +toilet/train/toilet_0141.off +toilet/train/toilet_0142.off +toilet/train/toilet_0143.off +toilet/train/toilet_0144.off +toilet/train/toilet_0145.off +toilet/train/toilet_0146.off +toilet/train/toilet_0147.off +toilet/train/toilet_0148.off +toilet/train/toilet_0149.off +toilet/train/toilet_0150.off +toilet/train/toilet_0151.off +toilet/train/toilet_0152.off +toilet/train/toilet_0153.off +toilet/train/toilet_0154.off +toilet/train/toilet_0155.off +toilet/train/toilet_0156.off +toilet/train/toilet_0157.off +toilet/train/toilet_0158.off +toilet/train/toilet_0159.off +toilet/train/toilet_0160.off +toilet/train/toilet_0161.off +toilet/train/toilet_0162.off +toilet/train/toilet_0163.off +toilet/train/toilet_0164.off +toilet/train/toilet_0165.off +toilet/train/toilet_0166.off +toilet/train/toilet_0167.off +toilet/train/toilet_0168.off +toilet/train/toilet_0169.off +toilet/train/toilet_0170.off +toilet/train/toilet_0171.off +toilet/train/toilet_0172.off +toilet/train/toilet_0173.off +toilet/train/toilet_0174.off +toilet/train/toilet_0175.off +toilet/train/toilet_0176.off +toilet/train/toilet_0177.off +toilet/train/toilet_0178.off +toilet/train/toilet_0179.off +toilet/train/toilet_0180.off +toilet/train/toilet_0181.off +toilet/train/toilet_0182.off +toilet/train/toilet_0183.off +toilet/train/toilet_0184.off +toilet/train/toilet_0185.off +toilet/train/toilet_0186.off +toilet/train/toilet_0187.off +toilet/train/toilet_0188.off +toilet/train/toilet_0189.off +toilet/train/toilet_0190.off +toilet/train/toilet_0191.off +toilet/train/toilet_0192.off +toilet/train/toilet_0193.off +toilet/train/toilet_0194.off +toilet/train/toilet_0195.off +toilet/train/toilet_0196.off +toilet/train/toilet_0197.off +toilet/train/toilet_0198.off +toilet/train/toilet_0199.off +toilet/train/toilet_0200.off +toilet/train/toilet_0201.off +toilet/train/toilet_0202.off +toilet/train/toilet_0203.off +toilet/train/toilet_0204.off +toilet/train/toilet_0205.off +toilet/train/toilet_0206.off +toilet/train/toilet_0207.off +toilet/train/toilet_0208.off +toilet/train/toilet_0209.off +toilet/train/toilet_0210.off +toilet/train/toilet_0211.off +toilet/train/toilet_0212.off +toilet/train/toilet_0213.off +toilet/train/toilet_0214.off +toilet/train/toilet_0215.off +toilet/train/toilet_0216.off +toilet/train/toilet_0217.off +toilet/train/toilet_0218.off +toilet/train/toilet_0219.off +toilet/train/toilet_0220.off +toilet/train/toilet_0221.off +toilet/train/toilet_0222.off +toilet/train/toilet_0223.off +toilet/train/toilet_0224.off +toilet/train/toilet_0225.off +toilet/train/toilet_0226.off +toilet/train/toilet_0227.off +toilet/train/toilet_0228.off +toilet/train/toilet_0229.off +toilet/train/toilet_0230.off +toilet/train/toilet_0231.off +toilet/train/toilet_0232.off +toilet/train/toilet_0233.off +toilet/train/toilet_0234.off +toilet/train/toilet_0235.off +toilet/train/toilet_0236.off +toilet/train/toilet_0237.off +toilet/train/toilet_0238.off +toilet/train/toilet_0239.off +toilet/train/toilet_0240.off +toilet/train/toilet_0241.off +toilet/train/toilet_0242.off +toilet/train/toilet_0243.off +toilet/train/toilet_0244.off +toilet/train/toilet_0245.off +toilet/train/toilet_0246.off +toilet/train/toilet_0247.off +toilet/train/toilet_0248.off +toilet/train/toilet_0249.off +toilet/train/toilet_0250.off +toilet/train/toilet_0251.off +toilet/train/toilet_0252.off +toilet/train/toilet_0253.off +toilet/train/toilet_0254.off +toilet/train/toilet_0255.off +toilet/train/toilet_0256.off +toilet/train/toilet_0257.off +toilet/train/toilet_0258.off +toilet/train/toilet_0259.off +toilet/train/toilet_0260.off +toilet/train/toilet_0261.off +toilet/train/toilet_0262.off +toilet/train/toilet_0263.off +toilet/train/toilet_0264.off +toilet/train/toilet_0265.off +toilet/train/toilet_0266.off +toilet/train/toilet_0267.off +toilet/train/toilet_0268.off +toilet/train/toilet_0269.off +toilet/train/toilet_0270.off +toilet/train/toilet_0271.off +toilet/train/toilet_0272.off +toilet/train/toilet_0273.off +toilet/train/toilet_0274.off +toilet/train/toilet_0275.off +toilet/train/toilet_0276.off +toilet/train/toilet_0277.off +toilet/train/toilet_0278.off +toilet/train/toilet_0279.off +toilet/train/toilet_0280.off +toilet/train/toilet_0281.off +toilet/train/toilet_0282.off +toilet/train/toilet_0283.off +toilet/train/toilet_0284.off +toilet/train/toilet_0285.off +toilet/train/toilet_0286.off +toilet/train/toilet_0287.off +toilet/train/toilet_0288.off +toilet/train/toilet_0289.off +toilet/train/toilet_0290.off +toilet/train/toilet_0291.off +toilet/train/toilet_0292.off +toilet/train/toilet_0293.off +toilet/train/toilet_0294.off +toilet/train/toilet_0295.off +toilet/train/toilet_0296.off +toilet/train/toilet_0297.off +toilet/train/toilet_0298.off +toilet/train/toilet_0299.off +toilet/train/toilet_0300.off +toilet/train/toilet_0301.off +toilet/train/toilet_0302.off +toilet/train/toilet_0303.off +toilet/train/toilet_0304.off +toilet/train/toilet_0305.off +toilet/train/toilet_0306.off +toilet/train/toilet_0307.off +toilet/train/toilet_0308.off +toilet/train/toilet_0309.off +toilet/train/toilet_0310.off +curtain/train/curtain_0001.off +curtain/train/curtain_0002.off +curtain/train/curtain_0003.off +curtain/train/curtain_0004.off +curtain/train/curtain_0005.off +curtain/train/curtain_0006.off +curtain/train/curtain_0007.off +curtain/train/curtain_0008.off +curtain/train/curtain_0009.off +curtain/train/curtain_0010.off +curtain/train/curtain_0011.off +curtain/train/curtain_0012.off +curtain/train/curtain_0013.off +curtain/train/curtain_0014.off +curtain/train/curtain_0015.off +curtain/train/curtain_0016.off +curtain/train/curtain_0017.off +curtain/train/curtain_0018.off +curtain/train/curtain_0019.off +curtain/train/curtain_0020.off +curtain/train/curtain_0021.off +curtain/train/curtain_0022.off +curtain/train/curtain_0023.off +curtain/train/curtain_0024.off +curtain/train/curtain_0025.off +curtain/train/curtain_0026.off +curtain/train/curtain_0027.off +curtain/train/curtain_0028.off +curtain/train/curtain_0029.off +curtain/train/curtain_0030.off +curtain/train/curtain_0031.off +curtain/train/curtain_0032.off +curtain/train/curtain_0033.off +curtain/train/curtain_0034.off +curtain/train/curtain_0035.off +curtain/train/curtain_0036.off +curtain/train/curtain_0037.off +curtain/train/curtain_0038.off +curtain/train/curtain_0039.off +curtain/train/curtain_0040.off +curtain/train/curtain_0041.off +curtain/train/curtain_0042.off +curtain/train/curtain_0043.off +curtain/train/curtain_0044.off +curtain/train/curtain_0045.off +curtain/train/curtain_0046.off +curtain/train/curtain_0047.off +curtain/train/curtain_0048.off +curtain/train/curtain_0049.off +curtain/train/curtain_0050.off +curtain/train/curtain_0051.off +curtain/train/curtain_0052.off +curtain/train/curtain_0053.off +curtain/train/curtain_0054.off +curtain/train/curtain_0055.off +curtain/train/curtain_0056.off +curtain/train/curtain_0057.off +curtain/train/curtain_0058.off +curtain/train/curtain_0059.off +curtain/train/curtain_0060.off +curtain/train/curtain_0061.off +curtain/train/curtain_0062.off +curtain/train/curtain_0063.off +curtain/train/curtain_0064.off +curtain/train/curtain_0065.off +curtain/train/curtain_0066.off +curtain/train/curtain_0067.off +curtain/train/curtain_0068.off +curtain/train/curtain_0069.off +curtain/train/curtain_0070.off +curtain/train/curtain_0071.off +curtain/train/curtain_0072.off +curtain/train/curtain_0073.off +curtain/train/curtain_0074.off +curtain/train/curtain_0075.off +curtain/train/curtain_0076.off +curtain/train/curtain_0077.off +curtain/train/curtain_0078.off +curtain/train/curtain_0079.off +curtain/train/curtain_0080.off +curtain/train/curtain_0081.off +curtain/train/curtain_0082.off +curtain/train/curtain_0083.off +curtain/train/curtain_0084.off +curtain/train/curtain_0085.off +curtain/train/curtain_0086.off +curtain/train/curtain_0087.off +curtain/train/curtain_0088.off +curtain/train/curtain_0089.off +curtain/train/curtain_0090.off +curtain/train/curtain_0091.off +curtain/train/curtain_0092.off +curtain/train/curtain_0093.off +curtain/train/curtain_0094.off +curtain/train/curtain_0095.off +curtain/train/curtain_0096.off +curtain/train/curtain_0097.off +curtain/train/curtain_0098.off +curtain/train/curtain_0099.off +curtain/train/curtain_0100.off +curtain/train/curtain_0101.off +curtain/train/curtain_0102.off +curtain/train/curtain_0103.off +curtain/train/curtain_0104.off +curtain/train/curtain_0105.off +curtain/train/curtain_0106.off +curtain/train/curtain_0107.off +curtain/train/curtain_0108.off +curtain/train/curtain_0109.off +curtain/train/curtain_0110.off +curtain/train/curtain_0111.off +curtain/train/curtain_0112.off +curtain/train/curtain_0113.off +curtain/train/curtain_0114.off +curtain/train/curtain_0115.off +curtain/train/curtain_0116.off +curtain/train/curtain_0117.off +curtain/train/curtain_0118.off +curtain/train/curtain_0119.off +curtain/train/curtain_0120.off +curtain/train/curtain_0121.off +curtain/train/curtain_0122.off +curtain/train/curtain_0123.off +curtain/train/curtain_0124.off +curtain/train/curtain_0125.off +wardrobe/train/wardrobe_0001.off +wardrobe/train/wardrobe_0002.off +wardrobe/train/wardrobe_0003.off +wardrobe/train/wardrobe_0004.off +wardrobe/train/wardrobe_0005.off +wardrobe/train/wardrobe_0006.off +wardrobe/train/wardrobe_0007.off +wardrobe/train/wardrobe_0008.off +wardrobe/train/wardrobe_0009.off +wardrobe/train/wardrobe_0010.off +wardrobe/train/wardrobe_0011.off +wardrobe/train/wardrobe_0012.off +wardrobe/train/wardrobe_0013.off +wardrobe/train/wardrobe_0014.off +wardrobe/train/wardrobe_0015.off +wardrobe/train/wardrobe_0016.off +wardrobe/train/wardrobe_0017.off +wardrobe/train/wardrobe_0018.off +wardrobe/train/wardrobe_0019.off +wardrobe/train/wardrobe_0020.off +wardrobe/train/wardrobe_0021.off +wardrobe/train/wardrobe_0022.off +wardrobe/train/wardrobe_0023.off +wardrobe/train/wardrobe_0024.off +wardrobe/train/wardrobe_0025.off +wardrobe/train/wardrobe_0026.off +wardrobe/train/wardrobe_0027.off +wardrobe/train/wardrobe_0028.off +wardrobe/train/wardrobe_0029.off +wardrobe/train/wardrobe_0030.off +wardrobe/train/wardrobe_0031.off +wardrobe/train/wardrobe_0032.off +wardrobe/train/wardrobe_0033.off +wardrobe/train/wardrobe_0034.off +wardrobe/train/wardrobe_0035.off +wardrobe/train/wardrobe_0036.off +wardrobe/train/wardrobe_0037.off +wardrobe/train/wardrobe_0038.off +wardrobe/train/wardrobe_0039.off +wardrobe/train/wardrobe_0040.off +wardrobe/train/wardrobe_0041.off +wardrobe/train/wardrobe_0042.off +wardrobe/train/wardrobe_0043.off +wardrobe/train/wardrobe_0044.off +wardrobe/train/wardrobe_0045.off +wardrobe/train/wardrobe_0046.off +wardrobe/train/wardrobe_0047.off +wardrobe/train/wardrobe_0048.off +wardrobe/train/wardrobe_0049.off +wardrobe/train/wardrobe_0050.off +wardrobe/train/wardrobe_0051.off +wardrobe/train/wardrobe_0052.off +wardrobe/train/wardrobe_0053.off +wardrobe/train/wardrobe_0054.off +wardrobe/train/wardrobe_0055.off +wardrobe/train/wardrobe_0056.off +wardrobe/train/wardrobe_0057.off +wardrobe/train/wardrobe_0058.off +wardrobe/train/wardrobe_0059.off +wardrobe/train/wardrobe_0060.off +wardrobe/train/wardrobe_0061.off +wardrobe/train/wardrobe_0062.off +wardrobe/train/wardrobe_0063.off +wardrobe/train/wardrobe_0064.off +wardrobe/train/wardrobe_0065.off +wardrobe/train/wardrobe_0066.off +wardrobe/train/wardrobe_0067.off +wardrobe/train/wardrobe_0068.off +wardrobe/train/wardrobe_0069.off +wardrobe/train/wardrobe_0070.off +wardrobe/train/wardrobe_0071.off +wardrobe/train/wardrobe_0072.off +wardrobe/train/wardrobe_0073.off +wardrobe/train/wardrobe_0074.off +wardrobe/train/wardrobe_0075.off +wardrobe/train/wardrobe_0076.off +wardrobe/train/wardrobe_0077.off +wardrobe/train/wardrobe_0078.off +wardrobe/train/wardrobe_0079.off +stool/train/stool_0001.off +stool/train/stool_0002.off +stool/train/stool_0003.off +stool/train/stool_0004.off +stool/train/stool_0005.off +stool/train/stool_0006.off +stool/train/stool_0007.off +stool/train/stool_0008.off +stool/train/stool_0009.off +stool/train/stool_0010.off +stool/train/stool_0011.off +stool/train/stool_0012.off +stool/train/stool_0013.off +stool/train/stool_0014.off +stool/train/stool_0015.off +stool/train/stool_0016.off +stool/train/stool_0017.off +stool/train/stool_0018.off +stool/train/stool_0019.off +stool/train/stool_0020.off +stool/train/stool_0021.off +stool/train/stool_0022.off +stool/train/stool_0023.off +stool/train/stool_0024.off +stool/train/stool_0025.off +stool/train/stool_0026.off +stool/train/stool_0027.off +stool/train/stool_0028.off +stool/train/stool_0029.off +stool/train/stool_0030.off +stool/train/stool_0031.off +stool/train/stool_0032.off +stool/train/stool_0033.off +stool/train/stool_0034.off +stool/train/stool_0035.off +stool/train/stool_0036.off +stool/train/stool_0037.off +stool/train/stool_0038.off +stool/train/stool_0039.off +stool/train/stool_0040.off +stool/train/stool_0041.off +stool/train/stool_0042.off +stool/train/stool_0043.off +stool/train/stool_0044.off +stool/train/stool_0045.off +stool/train/stool_0046.off +stool/train/stool_0047.off +stool/train/stool_0048.off +stool/train/stool_0049.off +stool/train/stool_0050.off +stool/train/stool_0051.off +stool/train/stool_0052.off +stool/train/stool_0053.off +stool/train/stool_0054.off +stool/train/stool_0055.off +stool/train/stool_0056.off +stool/train/stool_0057.off +stool/train/stool_0058.off +stool/train/stool_0059.off +stool/train/stool_0060.off +stool/train/stool_0061.off +stool/train/stool_0062.off +stool/train/stool_0063.off +stool/train/stool_0064.off +stool/train/stool_0065.off +stool/train/stool_0066.off +stool/train/stool_0067.off +stool/train/stool_0068.off +stool/train/stool_0069.off +stool/train/stool_0070.off +stool/train/stool_0071.off +stool/train/stool_0072.off +stool/train/stool_0073.off +stool/train/stool_0074.off +stool/train/stool_0075.off +stool/train/stool_0076.off +stool/train/stool_0077.off +stool/train/stool_0078.off +stool/train/stool_0079.off +stool/train/stool_0080.off +stool/train/stool_0081.off +mantel/train/mantel_0001.off +mantel/train/mantel_0002.off +mantel/train/mantel_0003.off +mantel/train/mantel_0004.off +mantel/train/mantel_0005.off +mantel/train/mantel_0006.off +mantel/train/mantel_0007.off +mantel/train/mantel_0008.off +mantel/train/mantel_0009.off +mantel/train/mantel_0010.off +mantel/train/mantel_0011.off +mantel/train/mantel_0012.off +mantel/train/mantel_0013.off +mantel/train/mantel_0014.off +mantel/train/mantel_0015.off +mantel/train/mantel_0016.off +mantel/train/mantel_0017.off +mantel/train/mantel_0018.off +mantel/train/mantel_0019.off +mantel/train/mantel_0020.off +mantel/train/mantel_0021.off +mantel/train/mantel_0022.off +mantel/train/mantel_0023.off +mantel/train/mantel_0024.off +mantel/train/mantel_0025.off +mantel/train/mantel_0026.off +mantel/train/mantel_0027.off +mantel/train/mantel_0028.off +mantel/train/mantel_0029.off +mantel/train/mantel_0030.off +mantel/train/mantel_0031.off +mantel/train/mantel_0032.off +mantel/train/mantel_0033.off +mantel/train/mantel_0034.off +mantel/train/mantel_0035.off +mantel/train/mantel_0036.off +mantel/train/mantel_0037.off +mantel/train/mantel_0038.off +mantel/train/mantel_0039.off +mantel/train/mantel_0040.off +mantel/train/mantel_0041.off +mantel/train/mantel_0042.off +mantel/train/mantel_0043.off +mantel/train/mantel_0044.off +mantel/train/mantel_0045.off +mantel/train/mantel_0046.off +mantel/train/mantel_0047.off +mantel/train/mantel_0048.off +mantel/train/mantel_0049.off +mantel/train/mantel_0050.off +mantel/train/mantel_0051.off +mantel/train/mantel_0052.off +mantel/train/mantel_0053.off +mantel/train/mantel_0054.off +mantel/train/mantel_0055.off +mantel/train/mantel_0056.off +mantel/train/mantel_0057.off +mantel/train/mantel_0058.off +mantel/train/mantel_0059.off +mantel/train/mantel_0060.off +mantel/train/mantel_0061.off +mantel/train/mantel_0062.off +mantel/train/mantel_0063.off +mantel/train/mantel_0064.off +mantel/train/mantel_0065.off +mantel/train/mantel_0066.off +mantel/train/mantel_0067.off +mantel/train/mantel_0068.off +mantel/train/mantel_0069.off +mantel/train/mantel_0070.off +mantel/train/mantel_0071.off +mantel/train/mantel_0072.off +mantel/train/mantel_0073.off +mantel/train/mantel_0074.off +mantel/train/mantel_0075.off +mantel/train/mantel_0076.off +mantel/train/mantel_0077.off +mantel/train/mantel_0078.off +mantel/train/mantel_0079.off +mantel/train/mantel_0080.off +mantel/train/mantel_0081.off +mantel/train/mantel_0082.off +mantel/train/mantel_0083.off +mantel/train/mantel_0084.off +mantel/train/mantel_0085.off +mantel/train/mantel_0086.off +mantel/train/mantel_0087.off +mantel/train/mantel_0088.off +mantel/train/mantel_0089.off +mantel/train/mantel_0090.off +mantel/train/mantel_0091.off +mantel/train/mantel_0092.off +mantel/train/mantel_0093.off +mantel/train/mantel_0094.off +mantel/train/mantel_0095.off +mantel/train/mantel_0096.off +mantel/train/mantel_0097.off +mantel/train/mantel_0098.off +mantel/train/mantel_0099.off +mantel/train/mantel_0100.off +mantel/train/mantel_0101.off +mantel/train/mantel_0102.off +mantel/train/mantel_0103.off +mantel/train/mantel_0104.off +mantel/train/mantel_0105.off +mantel/train/mantel_0106.off +mantel/train/mantel_0107.off +mantel/train/mantel_0108.off +mantel/train/mantel_0109.off +mantel/train/mantel_0110.off +mantel/train/mantel_0111.off +mantel/train/mantel_0112.off +mantel/train/mantel_0113.off +mantel/train/mantel_0114.off +mantel/train/mantel_0115.off +mantel/train/mantel_0116.off +mantel/train/mantel_0117.off +mantel/train/mantel_0118.off +mantel/train/mantel_0119.off +mantel/train/mantel_0120.off +mantel/train/mantel_0121.off +mantel/train/mantel_0122.off +mantel/train/mantel_0123.off +mantel/train/mantel_0124.off +mantel/train/mantel_0125.off +mantel/train/mantel_0126.off +mantel/train/mantel_0127.off +mantel/train/mantel_0128.off +mantel/train/mantel_0129.off +mantel/train/mantel_0130.off +mantel/train/mantel_0131.off +mantel/train/mantel_0132.off +mantel/train/mantel_0133.off +mantel/train/mantel_0134.off +mantel/train/mantel_0135.off +mantel/train/mantel_0136.off +mantel/train/mantel_0137.off +mantel/train/mantel_0138.off +mantel/train/mantel_0139.off +mantel/train/mantel_0140.off +mantel/train/mantel_0141.off +mantel/train/mantel_0142.off +mantel/train/mantel_0143.off +mantel/train/mantel_0144.off +mantel/train/mantel_0145.off +mantel/train/mantel_0146.off +mantel/train/mantel_0147.off +mantel/train/mantel_0148.off +mantel/train/mantel_0149.off +mantel/train/mantel_0150.off +mantel/train/mantel_0151.off +mantel/train/mantel_0152.off +mantel/train/mantel_0153.off +mantel/train/mantel_0154.off +mantel/train/mantel_0155.off +mantel/train/mantel_0156.off +mantel/train/mantel_0157.off +mantel/train/mantel_0158.off +mantel/train/mantel_0159.off +mantel/train/mantel_0160.off +mantel/train/mantel_0161.off +mantel/train/mantel_0162.off +mantel/train/mantel_0163.off +mantel/train/mantel_0164.off +mantel/train/mantel_0165.off +mantel/train/mantel_0166.off +mantel/train/mantel_0167.off +mantel/train/mantel_0168.off +mantel/train/mantel_0169.off +mantel/train/mantel_0170.off +mantel/train/mantel_0171.off +mantel/train/mantel_0172.off +mantel/train/mantel_0173.off +mantel/train/mantel_0174.off +mantel/train/mantel_0175.off +mantel/train/mantel_0176.off +mantel/train/mantel_0177.off +mantel/train/mantel_0178.off +mantel/train/mantel_0179.off +mantel/train/mantel_0180.off +mantel/train/mantel_0181.off +mantel/train/mantel_0182.off +mantel/train/mantel_0183.off +mantel/train/mantel_0184.off +mantel/train/mantel_0185.off +mantel/train/mantel_0186.off +mantel/train/mantel_0187.off +mantel/train/mantel_0188.off +mantel/train/mantel_0189.off +mantel/train/mantel_0190.off +mantel/train/mantel_0191.off +mantel/train/mantel_0192.off +mantel/train/mantel_0193.off +mantel/train/mantel_0194.off +mantel/train/mantel_0195.off +mantel/train/mantel_0196.off +mantel/train/mantel_0197.off +mantel/train/mantel_0198.off +mantel/train/mantel_0199.off +mantel/train/mantel_0200.off +mantel/train/mantel_0201.off +mantel/train/mantel_0202.off +mantel/train/mantel_0203.off +mantel/train/mantel_0204.off +mantel/train/mantel_0205.off +mantel/train/mantel_0206.off +mantel/train/mantel_0207.off +mantel/train/mantel_0208.off +mantel/train/mantel_0209.off +mantel/train/mantel_0210.off +mantel/train/mantel_0211.off +mantel/train/mantel_0212.off +mantel/train/mantel_0213.off +mantel/train/mantel_0214.off +mantel/train/mantel_0215.off +mantel/train/mantel_0216.off +mantel/train/mantel_0217.off +mantel/train/mantel_0218.off +mantel/train/mantel_0219.off +mantel/train/mantel_0220.off +mantel/train/mantel_0221.off +mantel/train/mantel_0222.off +mantel/train/mantel_0223.off +mantel/train/mantel_0224.off +mantel/train/mantel_0225.off +mantel/train/mantel_0226.off +mantel/train/mantel_0227.off +mantel/train/mantel_0228.off +mantel/train/mantel_0229.off +mantel/train/mantel_0230.off +mantel/train/mantel_0231.off +mantel/train/mantel_0232.off +mantel/train/mantel_0233.off +mantel/train/mantel_0234.off +mantel/train/mantel_0235.off +mantel/train/mantel_0236.off +mantel/train/mantel_0237.off +mantel/train/mantel_0238.off +mantel/train/mantel_0239.off +mantel/train/mantel_0240.off +mantel/train/mantel_0241.off +mantel/train/mantel_0242.off +mantel/train/mantel_0243.off +mantel/train/mantel_0244.off +mantel/train/mantel_0245.off +mantel/train/mantel_0246.off +mantel/train/mantel_0247.off +mantel/train/mantel_0248.off +mantel/train/mantel_0249.off +mantel/train/mantel_0250.off +mantel/train/mantel_0251.off +mantel/train/mantel_0252.off +mantel/train/mantel_0253.off +mantel/train/mantel_0254.off +mantel/train/mantel_0255.off +mantel/train/mantel_0256.off +cup/train/cup_0001.off +cup/train/cup_0002.off +cup/train/cup_0003.off +cup/train/cup_0004.off +cup/train/cup_0005.off +cup/train/cup_0006.off +cup/train/cup_0007.off +cup/train/cup_0008.off +cup/train/cup_0009.off +cup/train/cup_0010.off +cup/train/cup_0011.off +cup/train/cup_0012.off +cup/train/cup_0013.off +cup/train/cup_0014.off +cup/train/cup_0015.off +cup/train/cup_0016.off +cup/train/cup_0017.off +cup/train/cup_0018.off +cup/train/cup_0019.off +cup/train/cup_0020.off +cup/train/cup_0021.off +cup/train/cup_0022.off +cup/train/cup_0023.off +cup/train/cup_0024.off +cup/train/cup_0025.off +cup/train/cup_0026.off +cup/train/cup_0027.off +cup/train/cup_0028.off +cup/train/cup_0029.off +cup/train/cup_0030.off +cup/train/cup_0031.off +cup/train/cup_0032.off +cup/train/cup_0033.off +cup/train/cup_0034.off +cup/train/cup_0035.off +cup/train/cup_0036.off +cup/train/cup_0037.off +cup/train/cup_0038.off +cup/train/cup_0039.off +cup/train/cup_0040.off +cup/train/cup_0041.off +cup/train/cup_0042.off +cup/train/cup_0043.off +cup/train/cup_0044.off +cup/train/cup_0045.off +cup/train/cup_0046.off +cup/train/cup_0047.off +cup/train/cup_0048.off +cup/train/cup_0049.off +cup/train/cup_0050.off +cup/train/cup_0051.off +cup/train/cup_0052.off +cup/train/cup_0053.off +cup/train/cup_0054.off +cup/train/cup_0055.off +cup/train/cup_0056.off +cup/train/cup_0057.off +cup/train/cup_0058.off +cup/train/cup_0059.off +cup/train/cup_0060.off +cup/train/cup_0061.off +cup/train/cup_0062.off +cup/train/cup_0063.off +cup/train/cup_0064.off +cup/train/cup_0065.off +cup/train/cup_0066.off +cup/train/cup_0067.off +cup/train/cup_0068.off +cup/train/cup_0069.off +cup/train/cup_0070.off +cup/train/cup_0071.off +cup/train/cup_0072.off +radio/train/radio_0001.off +radio/train/radio_0002.off +radio/train/radio_0003.off +radio/train/radio_0004.off +radio/train/radio_0005.off +radio/train/radio_0006.off +radio/train/radio_0007.off +radio/train/radio_0008.off +radio/train/radio_0009.off +radio/train/radio_0010.off +radio/train/radio_0011.off +radio/train/radio_0012.off +radio/train/radio_0013.off +radio/train/radio_0014.off +radio/train/radio_0015.off +radio/train/radio_0016.off +radio/train/radio_0017.off +radio/train/radio_0018.off +radio/train/radio_0019.off +radio/train/radio_0020.off +radio/train/radio_0021.off +radio/train/radio_0022.off +radio/train/radio_0023.off +radio/train/radio_0024.off +radio/train/radio_0025.off +radio/train/radio_0026.off +radio/train/radio_0027.off +radio/train/radio_0028.off +radio/train/radio_0029.off +radio/train/radio_0030.off +radio/train/radio_0031.off +radio/train/radio_0032.off +radio/train/radio_0033.off +radio/train/radio_0034.off +radio/train/radio_0035.off +radio/train/radio_0036.off +radio/train/radio_0037.off +radio/train/radio_0038.off +radio/train/radio_0039.off +radio/train/radio_0040.off +radio/train/radio_0041.off +radio/train/radio_0042.off +radio/train/radio_0043.off +radio/train/radio_0044.off +radio/train/radio_0045.off +radio/train/radio_0046.off +radio/train/radio_0047.off +radio/train/radio_0048.off +radio/train/radio_0049.off +radio/train/radio_0050.off +radio/train/radio_0051.off +radio/train/radio_0052.off +radio/train/radio_0053.off +radio/train/radio_0054.off +radio/train/radio_0055.off +radio/train/radio_0056.off +radio/train/radio_0057.off +radio/train/radio_0058.off +radio/train/radio_0059.off +radio/train/radio_0060.off +radio/train/radio_0061.off +radio/train/radio_0062.off +radio/train/radio_0063.off +radio/train/radio_0064.off +radio/train/radio_0065.off +radio/train/radio_0066.off +radio/train/radio_0067.off +radio/train/radio_0068.off +radio/train/radio_0069.off +radio/train/radio_0070.off +radio/train/radio_0071.off +radio/train/radio_0072.off +radio/train/radio_0073.off +radio/train/radio_0074.off +radio/train/radio_0075.off +radio/train/radio_0076.off +radio/train/radio_0077.off +radio/train/radio_0078.off +radio/train/radio_0079.off +radio/train/radio_0080.off +radio/train/radio_0081.off +radio/train/radio_0082.off +radio/train/radio_0083.off +radio/train/radio_0084.off +radio/train/radio_0085.off +radio/train/radio_0086.off +radio/train/radio_0087.off +radio/train/radio_0088.off +radio/train/radio_0089.off +radio/train/radio_0090.off +radio/train/radio_0091.off +radio/train/radio_0092.off +radio/train/radio_0093.off +radio/train/radio_0094.off +airplane/train/airplane_0001.off +airplane/train/airplane_0002.off +airplane/train/airplane_0003.off +airplane/train/airplane_0004.off +airplane/train/airplane_0005.off +airplane/train/airplane_0006.off +airplane/train/airplane_0007.off +airplane/train/airplane_0008.off +airplane/train/airplane_0009.off +airplane/train/airplane_0010.off +airplane/train/airplane_0011.off +airplane/train/airplane_0012.off +airplane/train/airplane_0013.off +airplane/train/airplane_0014.off +airplane/train/airplane_0015.off +airplane/train/airplane_0016.off +airplane/train/airplane_0017.off +airplane/train/airplane_0018.off +airplane/train/airplane_0019.off +airplane/train/airplane_0020.off +airplane/train/airplane_0021.off +airplane/train/airplane_0022.off +airplane/train/airplane_0023.off +airplane/train/airplane_0024.off +airplane/train/airplane_0025.off +airplane/train/airplane_0026.off +airplane/train/airplane_0027.off +airplane/train/airplane_0028.off +airplane/train/airplane_0029.off +airplane/train/airplane_0030.off +airplane/train/airplane_0031.off +airplane/train/airplane_0032.off +airplane/train/airplane_0033.off +airplane/train/airplane_0034.off +airplane/train/airplane_0035.off +airplane/train/airplane_0036.off +airplane/train/airplane_0037.off +airplane/train/airplane_0038.off +airplane/train/airplane_0039.off +airplane/train/airplane_0040.off +airplane/train/airplane_0041.off +airplane/train/airplane_0042.off +airplane/train/airplane_0043.off +airplane/train/airplane_0044.off +airplane/train/airplane_0045.off +airplane/train/airplane_0046.off +airplane/train/airplane_0047.off +airplane/train/airplane_0048.off +airplane/train/airplane_0049.off +airplane/train/airplane_0050.off +airplane/train/airplane_0051.off +airplane/train/airplane_0052.off +airplane/train/airplane_0053.off +airplane/train/airplane_0054.off +airplane/train/airplane_0055.off +airplane/train/airplane_0056.off +airplane/train/airplane_0057.off +airplane/train/airplane_0058.off +airplane/train/airplane_0059.off +airplane/train/airplane_0060.off +airplane/train/airplane_0061.off +airplane/train/airplane_0062.off +airplane/train/airplane_0063.off +airplane/train/airplane_0064.off +airplane/train/airplane_0065.off +airplane/train/airplane_0066.off +airplane/train/airplane_0067.off +airplane/train/airplane_0068.off +airplane/train/airplane_0069.off +airplane/train/airplane_0070.off +airplane/train/airplane_0071.off +airplane/train/airplane_0072.off +airplane/train/airplane_0073.off +airplane/train/airplane_0074.off +airplane/train/airplane_0075.off +airplane/train/airplane_0076.off +airplane/train/airplane_0077.off +airplane/train/airplane_0078.off +airplane/train/airplane_0079.off +airplane/train/airplane_0080.off +airplane/train/airplane_0081.off +airplane/train/airplane_0082.off +airplane/train/airplane_0083.off +airplane/train/airplane_0084.off +airplane/train/airplane_0085.off +airplane/train/airplane_0086.off +airplane/train/airplane_0087.off +airplane/train/airplane_0088.off +airplane/train/airplane_0089.off +airplane/train/airplane_0090.off +airplane/train/airplane_0091.off +airplane/train/airplane_0092.off +airplane/train/airplane_0093.off +airplane/train/airplane_0094.off +airplane/train/airplane_0095.off +airplane/train/airplane_0096.off +airplane/train/airplane_0097.off +airplane/train/airplane_0098.off +airplane/train/airplane_0099.off +airplane/train/airplane_0100.off +airplane/train/airplane_0101.off +airplane/train/airplane_0102.off +airplane/train/airplane_0103.off +airplane/train/airplane_0104.off +airplane/train/airplane_0105.off +airplane/train/airplane_0106.off +airplane/train/airplane_0107.off +airplane/train/airplane_0108.off +airplane/train/airplane_0109.off +airplane/train/airplane_0110.off +airplane/train/airplane_0111.off +airplane/train/airplane_0112.off +airplane/train/airplane_0113.off +airplane/train/airplane_0114.off +airplane/train/airplane_0115.off +airplane/train/airplane_0116.off +airplane/train/airplane_0117.off +airplane/train/airplane_0118.off +airplane/train/airplane_0119.off +airplane/train/airplane_0120.off +airplane/train/airplane_0121.off +airplane/train/airplane_0122.off +airplane/train/airplane_0123.off +airplane/train/airplane_0124.off +airplane/train/airplane_0125.off +airplane/train/airplane_0126.off +airplane/train/airplane_0127.off +airplane/train/airplane_0128.off +airplane/train/airplane_0129.off +airplane/train/airplane_0130.off +airplane/train/airplane_0131.off +airplane/train/airplane_0132.off +airplane/train/airplane_0133.off +airplane/train/airplane_0134.off +airplane/train/airplane_0135.off +airplane/train/airplane_0136.off +airplane/train/airplane_0137.off +airplane/train/airplane_0138.off +airplane/train/airplane_0139.off +airplane/train/airplane_0140.off +airplane/train/airplane_0141.off +airplane/train/airplane_0142.off +airplane/train/airplane_0143.off +airplane/train/airplane_0144.off +airplane/train/airplane_0145.off +airplane/train/airplane_0146.off +airplane/train/airplane_0147.off +airplane/train/airplane_0148.off +airplane/train/airplane_0149.off +airplane/train/airplane_0150.off +airplane/train/airplane_0151.off +airplane/train/airplane_0152.off +airplane/train/airplane_0153.off +airplane/train/airplane_0154.off +airplane/train/airplane_0155.off +airplane/train/airplane_0156.off +airplane/train/airplane_0157.off +airplane/train/airplane_0158.off +airplane/train/airplane_0159.off +airplane/train/airplane_0160.off +airplane/train/airplane_0161.off +airplane/train/airplane_0162.off +airplane/train/airplane_0163.off +airplane/train/airplane_0164.off +airplane/train/airplane_0165.off +airplane/train/airplane_0166.off +airplane/train/airplane_0167.off +airplane/train/airplane_0168.off +airplane/train/airplane_0169.off +airplane/train/airplane_0170.off +airplane/train/airplane_0171.off +airplane/train/airplane_0172.off +airplane/train/airplane_0173.off +airplane/train/airplane_0174.off +airplane/train/airplane_0175.off +airplane/train/airplane_0176.off +airplane/train/airplane_0177.off +airplane/train/airplane_0178.off +airplane/train/airplane_0179.off +airplane/train/airplane_0180.off +airplane/train/airplane_0181.off +airplane/train/airplane_0182.off +airplane/train/airplane_0183.off +airplane/train/airplane_0184.off +airplane/train/airplane_0185.off +airplane/train/airplane_0186.off +airplane/train/airplane_0187.off +airplane/train/airplane_0188.off +airplane/train/airplane_0189.off +airplane/train/airplane_0190.off +airplane/train/airplane_0191.off +airplane/train/airplane_0192.off +airplane/train/airplane_0193.off +airplane/train/airplane_0194.off +airplane/train/airplane_0195.off +airplane/train/airplane_0196.off +airplane/train/airplane_0197.off +airplane/train/airplane_0198.off +airplane/train/airplane_0199.off +airplane/train/airplane_0200.off +airplane/train/airplane_0201.off +airplane/train/airplane_0202.off +airplane/train/airplane_0203.off +airplane/train/airplane_0204.off +airplane/train/airplane_0205.off +airplane/train/airplane_0206.off +airplane/train/airplane_0207.off +airplane/train/airplane_0208.off +airplane/train/airplane_0209.off +airplane/train/airplane_0210.off +airplane/train/airplane_0211.off +airplane/train/airplane_0212.off +airplane/train/airplane_0213.off +airplane/train/airplane_0214.off +airplane/train/airplane_0215.off +airplane/train/airplane_0216.off +airplane/train/airplane_0217.off +airplane/train/airplane_0218.off +airplane/train/airplane_0219.off +airplane/train/airplane_0220.off +airplane/train/airplane_0221.off +airplane/train/airplane_0222.off +airplane/train/airplane_0223.off +airplane/train/airplane_0224.off +airplane/train/airplane_0225.off +airplane/train/airplane_0226.off +airplane/train/airplane_0227.off +airplane/train/airplane_0228.off +airplane/train/airplane_0229.off +airplane/train/airplane_0230.off +airplane/train/airplane_0231.off +airplane/train/airplane_0232.off +airplane/train/airplane_0233.off +airplane/train/airplane_0234.off +airplane/train/airplane_0235.off +airplane/train/airplane_0236.off +airplane/train/airplane_0237.off +airplane/train/airplane_0238.off +airplane/train/airplane_0239.off +airplane/train/airplane_0240.off +airplane/train/airplane_0241.off +airplane/train/airplane_0242.off +airplane/train/airplane_0243.off +airplane/train/airplane_0244.off +airplane/train/airplane_0245.off +airplane/train/airplane_0246.off +airplane/train/airplane_0247.off +airplane/train/airplane_0248.off +airplane/train/airplane_0249.off +airplane/train/airplane_0250.off +airplane/train/airplane_0251.off +airplane/train/airplane_0252.off +airplane/train/airplane_0253.off +airplane/train/airplane_0254.off +airplane/train/airplane_0255.off +airplane/train/airplane_0256.off +airplane/train/airplane_0257.off +airplane/train/airplane_0258.off +airplane/train/airplane_0259.off +airplane/train/airplane_0260.off +airplane/train/airplane_0261.off +airplane/train/airplane_0262.off +airplane/train/airplane_0263.off +airplane/train/airplane_0264.off +airplane/train/airplane_0265.off +airplane/train/airplane_0266.off +airplane/train/airplane_0267.off +airplane/train/airplane_0268.off +airplane/train/airplane_0269.off +airplane/train/airplane_0270.off +airplane/train/airplane_0271.off +airplane/train/airplane_0272.off +airplane/train/airplane_0273.off +airplane/train/airplane_0274.off +airplane/train/airplane_0275.off +airplane/train/airplane_0276.off +airplane/train/airplane_0277.off +airplane/train/airplane_0278.off +airplane/train/airplane_0279.off +airplane/train/airplane_0280.off +airplane/train/airplane_0281.off +airplane/train/airplane_0282.off +airplane/train/airplane_0283.off +airplane/train/airplane_0284.off +airplane/train/airplane_0285.off +airplane/train/airplane_0286.off +airplane/train/airplane_0287.off +airplane/train/airplane_0288.off +airplane/train/airplane_0289.off +airplane/train/airplane_0290.off +airplane/train/airplane_0291.off +airplane/train/airplane_0292.off +airplane/train/airplane_0293.off +airplane/train/airplane_0294.off +airplane/train/airplane_0295.off +airplane/train/airplane_0296.off +airplane/train/airplane_0297.off +airplane/train/airplane_0298.off +airplane/train/airplane_0299.off +airplane/train/airplane_0300.off +airplane/train/airplane_0301.off +airplane/train/airplane_0302.off +airplane/train/airplane_0303.off +airplane/train/airplane_0304.off +airplane/train/airplane_0305.off +airplane/train/airplane_0306.off +airplane/train/airplane_0307.off +airplane/train/airplane_0308.off +airplane/train/airplane_0309.off +airplane/train/airplane_0310.off +airplane/train/airplane_0311.off +airplane/train/airplane_0312.off +airplane/train/airplane_0313.off +airplane/train/airplane_0314.off +airplane/train/airplane_0315.off +airplane/train/airplane_0316.off +airplane/train/airplane_0317.off +airplane/train/airplane_0318.off +airplane/train/airplane_0319.off +airplane/train/airplane_0320.off +airplane/train/airplane_0321.off +airplane/train/airplane_0322.off +airplane/train/airplane_0323.off +airplane/train/airplane_0324.off +airplane/train/airplane_0325.off +airplane/train/airplane_0326.off +airplane/train/airplane_0327.off +airplane/train/airplane_0328.off +airplane/train/airplane_0329.off +airplane/train/airplane_0330.off +airplane/train/airplane_0331.off +airplane/train/airplane_0332.off +airplane/train/airplane_0333.off +airplane/train/airplane_0334.off +airplane/train/airplane_0335.off +airplane/train/airplane_0336.off +airplane/train/airplane_0337.off +airplane/train/airplane_0338.off +airplane/train/airplane_0339.off +airplane/train/airplane_0340.off +airplane/train/airplane_0341.off +airplane/train/airplane_0342.off +airplane/train/airplane_0343.off +airplane/train/airplane_0344.off +airplane/train/airplane_0345.off +airplane/train/airplane_0346.off +airplane/train/airplane_0347.off +airplane/train/airplane_0348.off +airplane/train/airplane_0349.off +airplane/train/airplane_0350.off +airplane/train/airplane_0351.off +airplane/train/airplane_0352.off +airplane/train/airplane_0353.off +airplane/train/airplane_0354.off +airplane/train/airplane_0355.off +airplane/train/airplane_0356.off +airplane/train/airplane_0357.off +airplane/train/airplane_0358.off +airplane/train/airplane_0359.off +airplane/train/airplane_0360.off +airplane/train/airplane_0361.off +airplane/train/airplane_0362.off +airplane/train/airplane_0363.off +airplane/train/airplane_0364.off +airplane/train/airplane_0365.off +airplane/train/airplane_0366.off +airplane/train/airplane_0367.off +airplane/train/airplane_0368.off +airplane/train/airplane_0369.off +airplane/train/airplane_0370.off +airplane/train/airplane_0371.off +airplane/train/airplane_0372.off +airplane/train/airplane_0373.off +airplane/train/airplane_0374.off +airplane/train/airplane_0375.off +airplane/train/airplane_0376.off +airplane/train/airplane_0377.off +airplane/train/airplane_0378.off +airplane/train/airplane_0379.off +airplane/train/airplane_0380.off +airplane/train/airplane_0381.off +airplane/train/airplane_0382.off +airplane/train/airplane_0383.off +airplane/train/airplane_0384.off +airplane/train/airplane_0385.off +airplane/train/airplane_0386.off +airplane/train/airplane_0387.off +airplane/train/airplane_0388.off +airplane/train/airplane_0389.off +airplane/train/airplane_0390.off +airplane/train/airplane_0391.off +airplane/train/airplane_0392.off +airplane/train/airplane_0393.off +airplane/train/airplane_0394.off +airplane/train/airplane_0395.off +airplane/train/airplane_0396.off +airplane/train/airplane_0397.off +airplane/train/airplane_0398.off +airplane/train/airplane_0399.off +airplane/train/airplane_0400.off +airplane/train/airplane_0401.off +airplane/train/airplane_0402.off +airplane/train/airplane_0403.off +airplane/train/airplane_0404.off +airplane/train/airplane_0405.off +airplane/train/airplane_0406.off +airplane/train/airplane_0407.off +airplane/train/airplane_0408.off +airplane/train/airplane_0409.off +airplane/train/airplane_0410.off +airplane/train/airplane_0411.off +airplane/train/airplane_0412.off +airplane/train/airplane_0413.off +airplane/train/airplane_0414.off +airplane/train/airplane_0415.off +airplane/train/airplane_0416.off +airplane/train/airplane_0417.off +airplane/train/airplane_0418.off +airplane/train/airplane_0419.off +airplane/train/airplane_0420.off +airplane/train/airplane_0421.off +airplane/train/airplane_0422.off +airplane/train/airplane_0423.off +airplane/train/airplane_0424.off +airplane/train/airplane_0425.off +airplane/train/airplane_0426.off +airplane/train/airplane_0427.off +airplane/train/airplane_0428.off +airplane/train/airplane_0429.off +airplane/train/airplane_0430.off +airplane/train/airplane_0431.off +airplane/train/airplane_0432.off +airplane/train/airplane_0433.off +airplane/train/airplane_0434.off +airplane/train/airplane_0435.off +airplane/train/airplane_0436.off +airplane/train/airplane_0437.off +airplane/train/airplane_0438.off +airplane/train/airplane_0439.off +airplane/train/airplane_0440.off +airplane/train/airplane_0441.off +airplane/train/airplane_0442.off +airplane/train/airplane_0443.off +airplane/train/airplane_0444.off +airplane/train/airplane_0445.off +airplane/train/airplane_0446.off +airplane/train/airplane_0447.off +airplane/train/airplane_0448.off +airplane/train/airplane_0449.off +airplane/train/airplane_0450.off +airplane/train/airplane_0451.off +airplane/train/airplane_0452.off +airplane/train/airplane_0453.off +airplane/train/airplane_0454.off +airplane/train/airplane_0455.off +airplane/train/airplane_0456.off +airplane/train/airplane_0457.off +airplane/train/airplane_0458.off +airplane/train/airplane_0459.off +airplane/train/airplane_0460.off +airplane/train/airplane_0461.off +airplane/train/airplane_0462.off +airplane/train/airplane_0463.off +airplane/train/airplane_0464.off +airplane/train/airplane_0465.off +airplane/train/airplane_0466.off +airplane/train/airplane_0467.off +airplane/train/airplane_0468.off +airplane/train/airplane_0469.off +airplane/train/airplane_0470.off +airplane/train/airplane_0471.off +airplane/train/airplane_0472.off +airplane/train/airplane_0473.off +airplane/train/airplane_0474.off +airplane/train/airplane_0475.off +airplane/train/airplane_0476.off +airplane/train/airplane_0477.off +airplane/train/airplane_0478.off +airplane/train/airplane_0479.off +airplane/train/airplane_0480.off +airplane/train/airplane_0481.off +airplane/train/airplane_0482.off +airplane/train/airplane_0483.off +airplane/train/airplane_0484.off +airplane/train/airplane_0485.off +airplane/train/airplane_0486.off +airplane/train/airplane_0487.off +airplane/train/airplane_0488.off +airplane/train/airplane_0489.off +airplane/train/airplane_0490.off +airplane/train/airplane_0491.off +airplane/train/airplane_0492.off +airplane/train/airplane_0493.off +airplane/train/airplane_0494.off +airplane/train/airplane_0495.off +airplane/train/airplane_0496.off +airplane/train/airplane_0497.off +airplane/train/airplane_0498.off +airplane/train/airplane_0499.off +airplane/train/airplane_0500.off +airplane/train/airplane_0501.off +airplane/train/airplane_0502.off +airplane/train/airplane_0503.off +airplane/train/airplane_0504.off +airplane/train/airplane_0505.off +airplane/train/airplane_0506.off +airplane/train/airplane_0507.off +airplane/train/airplane_0508.off +airplane/train/airplane_0509.off +airplane/train/airplane_0510.off +airplane/train/airplane_0511.off +airplane/train/airplane_0512.off +airplane/train/airplane_0513.off +airplane/train/airplane_0514.off +airplane/train/airplane_0515.off +airplane/train/airplane_0516.off +airplane/train/airplane_0517.off +airplane/train/airplane_0518.off +airplane/train/airplane_0519.off +airplane/train/airplane_0520.off +airplane/train/airplane_0521.off +airplane/train/airplane_0522.off +airplane/train/airplane_0523.off +airplane/train/airplane_0524.off +airplane/train/airplane_0525.off +airplane/train/airplane_0526.off +airplane/train/airplane_0527.off +airplane/train/airplane_0528.off +airplane/train/airplane_0529.off +airplane/train/airplane_0530.off +airplane/train/airplane_0531.off +airplane/train/airplane_0532.off +airplane/train/airplane_0533.off +airplane/train/airplane_0534.off +airplane/train/airplane_0535.off +airplane/train/airplane_0536.off +airplane/train/airplane_0537.off +airplane/train/airplane_0538.off +airplane/train/airplane_0539.off +airplane/train/airplane_0540.off +airplane/train/airplane_0541.off +airplane/train/airplane_0542.off +airplane/train/airplane_0543.off +airplane/train/airplane_0544.off +airplane/train/airplane_0545.off +airplane/train/airplane_0546.off +airplane/train/airplane_0547.off +airplane/train/airplane_0548.off +airplane/train/airplane_0549.off +airplane/train/airplane_0550.off +airplane/train/airplane_0551.off +airplane/train/airplane_0552.off +airplane/train/airplane_0553.off +airplane/train/airplane_0554.off +airplane/train/airplane_0555.off +airplane/train/airplane_0556.off +airplane/train/airplane_0557.off +airplane/train/airplane_0558.off +airplane/train/airplane_0559.off +airplane/train/airplane_0560.off +airplane/train/airplane_0561.off +airplane/train/airplane_0562.off +airplane/train/airplane_0563.off +airplane/train/airplane_0564.off +table/train/table_0001.off +table/train/table_0002.off +table/train/table_0003.off +table/train/table_0004.off +table/train/table_0005.off +table/train/table_0006.off +table/train/table_0007.off +table/train/table_0008.off +table/train/table_0009.off +table/train/table_0010.off +table/train/table_0011.off +table/train/table_0012.off +table/train/table_0013.off +table/train/table_0014.off +table/train/table_0015.off +table/train/table_0016.off +table/train/table_0017.off +table/train/table_0018.off +table/train/table_0019.off +table/train/table_0020.off +table/train/table_0021.off +table/train/table_0022.off +table/train/table_0023.off +table/train/table_0024.off +table/train/table_0025.off +table/train/table_0026.off +table/train/table_0027.off +table/train/table_0028.off +table/train/table_0029.off +table/train/table_0030.off +table/train/table_0031.off +table/train/table_0032.off +table/train/table_0033.off +table/train/table_0034.off +table/train/table_0035.off +table/train/table_0036.off +table/train/table_0037.off +table/train/table_0038.off +table/train/table_0039.off +table/train/table_0040.off +table/train/table_0041.off +table/train/table_0042.off +table/train/table_0043.off +table/train/table_0044.off +table/train/table_0045.off +table/train/table_0046.off +table/train/table_0047.off +table/train/table_0048.off +table/train/table_0049.off +table/train/table_0050.off +table/train/table_0051.off +table/train/table_0052.off +table/train/table_0053.off +table/train/table_0054.off +table/train/table_0055.off +table/train/table_0056.off +table/train/table_0057.off +table/train/table_0058.off +table/train/table_0059.off +table/train/table_0060.off +table/train/table_0061.off +table/train/table_0062.off +table/train/table_0063.off +table/train/table_0064.off +table/train/table_0065.off +table/train/table_0066.off +table/train/table_0067.off +table/train/table_0068.off +table/train/table_0069.off +table/train/table_0070.off +table/train/table_0071.off +table/train/table_0072.off +table/train/table_0073.off +table/train/table_0074.off +table/train/table_0075.off +table/train/table_0076.off +table/train/table_0077.off +table/train/table_0078.off +table/train/table_0079.off +table/train/table_0080.off +table/train/table_0081.off +table/train/table_0082.off +table/train/table_0083.off +table/train/table_0084.off +table/train/table_0085.off +table/train/table_0086.off +table/train/table_0087.off +table/train/table_0088.off +table/train/table_0089.off +table/train/table_0090.off +table/train/table_0091.off +table/train/table_0092.off +table/train/table_0093.off +table/train/table_0094.off +table/train/table_0095.off +table/train/table_0096.off +table/train/table_0097.off +table/train/table_0098.off +table/train/table_0099.off +table/train/table_0100.off +table/train/table_0101.off +table/train/table_0102.off +table/train/table_0103.off +table/train/table_0104.off +table/train/table_0105.off +table/train/table_0106.off +table/train/table_0107.off +table/train/table_0108.off +table/train/table_0109.off +table/train/table_0110.off +table/train/table_0111.off +table/train/table_0112.off +table/train/table_0113.off +table/train/table_0114.off +table/train/table_0115.off +table/train/table_0116.off +table/train/table_0117.off +table/train/table_0118.off +table/train/table_0119.off +table/train/table_0120.off +table/train/table_0121.off +table/train/table_0122.off +table/train/table_0123.off +table/train/table_0124.off +table/train/table_0125.off +table/train/table_0126.off +table/train/table_0127.off +table/train/table_0128.off +table/train/table_0129.off +table/train/table_0130.off +table/train/table_0131.off +table/train/table_0132.off +table/train/table_0133.off +table/train/table_0134.off +table/train/table_0135.off +table/train/table_0136.off +table/train/table_0137.off +table/train/table_0138.off +table/train/table_0139.off +table/train/table_0140.off +table/train/table_0141.off +table/train/table_0142.off +table/train/table_0143.off +table/train/table_0144.off +table/train/table_0145.off +table/train/table_0146.off +table/train/table_0147.off +table/train/table_0148.off +table/train/table_0149.off +table/train/table_0150.off +table/train/table_0151.off +table/train/table_0152.off +table/train/table_0153.off +table/train/table_0154.off +table/train/table_0155.off +table/train/table_0156.off +table/train/table_0157.off +table/train/table_0158.off +table/train/table_0159.off +table/train/table_0160.off +table/train/table_0161.off +table/train/table_0162.off +table/train/table_0163.off +table/train/table_0164.off +table/train/table_0165.off +table/train/table_0166.off +table/train/table_0167.off +table/train/table_0168.off +table/train/table_0169.off +table/train/table_0170.off +table/train/table_0171.off +table/train/table_0172.off +table/train/table_0173.off +table/train/table_0174.off +table/train/table_0175.off +table/train/table_0176.off +table/train/table_0177.off +table/train/table_0178.off +table/train/table_0179.off +table/train/table_0180.off +table/train/table_0181.off +table/train/table_0182.off +table/train/table_0183.off +table/train/table_0184.off +table/train/table_0185.off +table/train/table_0186.off +table/train/table_0187.off +table/train/table_0188.off +table/train/table_0189.off +table/train/table_0190.off +table/train/table_0191.off +table/train/table_0192.off +table/train/table_0193.off +table/train/table_0194.off +table/train/table_0195.off +table/train/table_0196.off +table/train/table_0197.off +table/train/table_0198.off +table/train/table_0199.off +table/train/table_0200.off +table/train/table_0201.off +table/train/table_0202.off +table/train/table_0203.off +table/train/table_0204.off +table/train/table_0205.off +table/train/table_0206.off +table/train/table_0207.off +table/train/table_0208.off +table/train/table_0209.off +table/train/table_0210.off +table/train/table_0211.off +table/train/table_0212.off +table/train/table_0213.off +table/train/table_0214.off +table/train/table_0215.off +table/train/table_0216.off +table/train/table_0217.off +table/train/table_0218.off +table/train/table_0219.off +table/train/table_0220.off +table/train/table_0221.off +table/train/table_0222.off +table/train/table_0223.off +table/train/table_0224.off +table/train/table_0225.off +table/train/table_0226.off +table/train/table_0227.off +table/train/table_0228.off +table/train/table_0229.off +table/train/table_0230.off +table/train/table_0231.off +table/train/table_0232.off +table/train/table_0233.off +table/train/table_0234.off +table/train/table_0235.off +table/train/table_0236.off +table/train/table_0237.off +table/train/table_0238.off +table/train/table_0239.off +table/train/table_0240.off +table/train/table_0241.off +table/train/table_0242.off +table/train/table_0243.off +table/train/table_0244.off +table/train/table_0245.off +table/train/table_0246.off +table/train/table_0247.off +table/train/table_0248.off +table/train/table_0249.off +table/train/table_0250.off +table/train/table_0251.off +table/train/table_0252.off +table/train/table_0253.off +table/train/table_0254.off +table/train/table_0255.off +table/train/table_0256.off +table/train/table_0257.off +table/train/table_0258.off +table/train/table_0259.off +table/train/table_0260.off +table/train/table_0261.off +table/train/table_0262.off +table/train/table_0263.off +table/train/table_0264.off +table/train/table_0265.off +table/train/table_0266.off +table/train/table_0267.off +table/train/table_0268.off +table/train/table_0269.off +table/train/table_0270.off +table/train/table_0271.off +table/train/table_0272.off +table/train/table_0273.off +table/train/table_0274.off +table/train/table_0275.off +table/train/table_0276.off +table/train/table_0277.off +table/train/table_0278.off +table/train/table_0279.off +table/train/table_0280.off +table/train/table_0281.off +table/train/table_0282.off +table/train/table_0283.off +table/train/table_0284.off +table/train/table_0285.off +table/train/table_0286.off +table/train/table_0287.off +table/train/table_0288.off +table/train/table_0289.off +table/train/table_0290.off +table/train/table_0291.off +table/train/table_0292.off +table/train/table_0293.off +table/train/table_0294.off +table/train/table_0295.off +table/train/table_0296.off +table/train/table_0297.off +table/train/table_0298.off +table/train/table_0299.off +table/train/table_0300.off +table/train/table_0301.off +table/train/table_0302.off +table/train/table_0303.off +table/train/table_0304.off +table/train/table_0305.off +table/train/table_0306.off +table/train/table_0307.off +table/train/table_0308.off +table/train/table_0309.off +table/train/table_0310.off +table/train/table_0311.off +table/train/table_0312.off +table/train/table_0313.off +table/train/table_0314.off +table/train/table_0315.off +table/train/table_0316.off +table/train/table_0317.off +table/train/table_0318.off +table/train/table_0319.off +table/train/table_0320.off +table/train/table_0321.off +table/train/table_0322.off +table/train/table_0323.off +table/train/table_0324.off +table/train/table_0325.off +table/train/table_0326.off +table/train/table_0327.off +table/train/table_0328.off +table/train/table_0329.off +table/train/table_0330.off +table/train/table_0331.off +table/train/table_0332.off +table/train/table_0333.off +table/train/table_0334.off +table/train/table_0335.off +table/train/table_0336.off +table/train/table_0337.off +table/train/table_0338.off +table/train/table_0339.off +table/train/table_0340.off +table/train/table_0341.off +table/train/table_0342.off +table/train/table_0343.off +table/train/table_0344.off +table/train/table_0345.off +table/train/table_0346.off +table/train/table_0347.off +table/train/table_0348.off +table/train/table_0349.off +table/train/table_0350.off +table/train/table_0351.off +table/train/table_0352.off +table/train/table_0353.off +bench/train/bench_0001.off +bench/train/bench_0002.off +bench/train/bench_0003.off +bench/train/bench_0004.off +bench/train/bench_0005.off +bench/train/bench_0006.off +bench/train/bench_0007.off +bench/train/bench_0008.off +bench/train/bench_0009.off +bench/train/bench_0010.off +bench/train/bench_0011.off +bench/train/bench_0012.off +bench/train/bench_0013.off +bench/train/bench_0014.off +bench/train/bench_0015.off +bench/train/bench_0016.off +bench/train/bench_0017.off +bench/train/bench_0018.off +bench/train/bench_0019.off +bench/train/bench_0020.off +bench/train/bench_0021.off +bench/train/bench_0022.off +bench/train/bench_0023.off +bench/train/bench_0024.off +bench/train/bench_0025.off +bench/train/bench_0026.off +bench/train/bench_0027.off +bench/train/bench_0028.off +bench/train/bench_0029.off +bench/train/bench_0030.off +bench/train/bench_0031.off +bench/train/bench_0032.off +bench/train/bench_0033.off +bench/train/bench_0034.off +bench/train/bench_0035.off +bench/train/bench_0036.off +bench/train/bench_0037.off +bench/train/bench_0038.off +bench/train/bench_0039.off +bench/train/bench_0040.off +bench/train/bench_0041.off +bench/train/bench_0042.off +bench/train/bench_0043.off +bench/train/bench_0044.off +bench/train/bench_0045.off +bench/train/bench_0046.off +bench/train/bench_0047.off +bench/train/bench_0048.off +bench/train/bench_0049.off +bench/train/bench_0050.off +bench/train/bench_0051.off +bench/train/bench_0052.off +bench/train/bench_0053.off +bench/train/bench_0054.off +bench/train/bench_0055.off +bench/train/bench_0056.off +bench/train/bench_0057.off +bench/train/bench_0058.off +bench/train/bench_0059.off +bench/train/bench_0060.off +bench/train/bench_0061.off +bench/train/bench_0062.off +bench/train/bench_0063.off +bench/train/bench_0064.off +bench/train/bench_0065.off +bench/train/bench_0066.off +bench/train/bench_0067.off +bench/train/bench_0068.off +bench/train/bench_0069.off +bench/train/bench_0070.off +bench/train/bench_0071.off +bench/train/bench_0072.off +bench/train/bench_0073.off +bench/train/bench_0074.off +bench/train/bench_0075.off +bench/train/bench_0076.off +bench/train/bench_0077.off +bench/train/bench_0078.off +bench/train/bench_0079.off +bench/train/bench_0080.off +bench/train/bench_0081.off +bench/train/bench_0082.off +bench/train/bench_0083.off +bench/train/bench_0084.off +bench/train/bench_0085.off +bench/train/bench_0086.off +bench/train/bench_0087.off +bench/train/bench_0088.off +bench/train/bench_0089.off +bench/train/bench_0090.off +bench/train/bench_0091.off +bench/train/bench_0092.off +bench/train/bench_0093.off +bench/train/bench_0094.off +bench/train/bench_0095.off +bench/train/bench_0096.off +bench/train/bench_0097.off +bench/train/bench_0098.off +bench/train/bench_0099.off +bench/train/bench_0100.off +bench/train/bench_0101.off +bench/train/bench_0102.off +bench/train/bench_0103.off +bench/train/bench_0104.off +bench/train/bench_0105.off +bench/train/bench_0106.off +bench/train/bench_0107.off +bench/train/bench_0108.off +bench/train/bench_0109.off +bench/train/bench_0110.off +bench/train/bench_0111.off +bench/train/bench_0112.off +bench/train/bench_0113.off +bench/train/bench_0114.off +bench/train/bench_0115.off +bench/train/bench_0116.off +bench/train/bench_0117.off +bench/train/bench_0118.off +bench/train/bench_0119.off +bench/train/bench_0120.off +bench/train/bench_0121.off +bench/train/bench_0122.off +bench/train/bench_0123.off +bench/train/bench_0124.off +bench/train/bench_0125.off +bench/train/bench_0126.off +bench/train/bench_0127.off +bench/train/bench_0128.off +bench/train/bench_0129.off +bench/train/bench_0130.off +bench/train/bench_0131.off +bench/train/bench_0132.off +bench/train/bench_0133.off +bench/train/bench_0134.off +bench/train/bench_0135.off +bench/train/bench_0136.off +bench/train/bench_0137.off +bench/train/bench_0138.off +bench/train/bench_0139.off +bench/train/bench_0140.off +bench/train/bench_0141.off +bench/train/bench_0142.off +bench/train/bench_0143.off +bench/train/bench_0144.off +bench/train/bench_0145.off +bench/train/bench_0146.off +bench/train/bench_0147.off +bench/train/bench_0148.off +bench/train/bench_0149.off +bench/train/bench_0150.off +bench/train/bench_0151.off +bench/train/bench_0152.off +bench/train/bench_0153.off +bench/train/bench_0154.off +bench/train/bench_0155.off +bench/train/bench_0156.off +plant/train/plant_0001.off +plant/train/plant_0002.off +plant/train/plant_0003.off +plant/train/plant_0004.off +plant/train/plant_0005.off +plant/train/plant_0006.off +plant/train/plant_0007.off +plant/train/plant_0008.off +plant/train/plant_0009.off +plant/train/plant_0010.off +plant/train/plant_0011.off +plant/train/plant_0012.off +plant/train/plant_0013.off +plant/train/plant_0014.off +plant/train/plant_0015.off +plant/train/plant_0016.off +plant/train/plant_0017.off +plant/train/plant_0018.off +plant/train/plant_0019.off +plant/train/plant_0020.off +plant/train/plant_0021.off +plant/train/plant_0022.off +plant/train/plant_0023.off +plant/train/plant_0024.off +plant/train/plant_0025.off +plant/train/plant_0026.off +plant/train/plant_0027.off +plant/train/plant_0028.off +plant/train/plant_0029.off +plant/train/plant_0030.off +plant/train/plant_0031.off +plant/train/plant_0032.off +plant/train/plant_0033.off +plant/train/plant_0034.off +plant/train/plant_0035.off +plant/train/plant_0036.off +plant/train/plant_0037.off +plant/train/plant_0038.off +plant/train/plant_0039.off +plant/train/plant_0040.off +plant/train/plant_0041.off +plant/train/plant_0042.off +plant/train/plant_0043.off +plant/train/plant_0044.off +plant/train/plant_0045.off +plant/train/plant_0046.off +plant/train/plant_0047.off +plant/train/plant_0048.off +plant/train/plant_0049.off +plant/train/plant_0050.off +plant/train/plant_0051.off +plant/train/plant_0052.off +plant/train/plant_0053.off +plant/train/plant_0054.off +plant/train/plant_0055.off +plant/train/plant_0056.off +plant/train/plant_0057.off +plant/train/plant_0058.off +plant/train/plant_0059.off +plant/train/plant_0060.off +plant/train/plant_0061.off +plant/train/plant_0062.off +plant/train/plant_0063.off +plant/train/plant_0064.off +plant/train/plant_0065.off +plant/train/plant_0066.off +plant/train/plant_0067.off +plant/train/plant_0068.off +plant/train/plant_0069.off +plant/train/plant_0070.off +plant/train/plant_0071.off +plant/train/plant_0072.off +plant/train/plant_0073.off +plant/train/plant_0074.off +plant/train/plant_0075.off +plant/train/plant_0076.off +plant/train/plant_0077.off +plant/train/plant_0078.off +plant/train/plant_0079.off +plant/train/plant_0080.off +plant/train/plant_0081.off +plant/train/plant_0082.off +plant/train/plant_0083.off +plant/train/plant_0084.off +plant/train/plant_0085.off +plant/train/plant_0086.off +plant/train/plant_0087.off +plant/train/plant_0088.off +plant/train/plant_0089.off +plant/train/plant_0090.off +plant/train/plant_0091.off +plant/train/plant_0092.off +plant/train/plant_0093.off +plant/train/plant_0094.off +plant/train/plant_0095.off +plant/train/plant_0096.off +plant/train/plant_0097.off +plant/train/plant_0098.off +plant/train/plant_0099.off +plant/train/plant_0100.off +plant/train/plant_0101.off +plant/train/plant_0102.off +plant/train/plant_0103.off +plant/train/plant_0104.off +plant/train/plant_0105.off +plant/train/plant_0106.off +plant/train/plant_0107.off +plant/train/plant_0108.off +plant/train/plant_0109.off +plant/train/plant_0110.off +plant/train/plant_0111.off +plant/train/plant_0112.off +plant/train/plant_0113.off +plant/train/plant_0114.off +plant/train/plant_0115.off +plant/train/plant_0116.off +plant/train/plant_0117.off +plant/train/plant_0118.off +plant/train/plant_0119.off +plant/train/plant_0120.off +plant/train/plant_0121.off +plant/train/plant_0122.off +plant/train/plant_0123.off +plant/train/plant_0124.off +plant/train/plant_0125.off +plant/train/plant_0126.off +plant/train/plant_0127.off +plant/train/plant_0128.off +plant/train/plant_0129.off +plant/train/plant_0130.off +plant/train/plant_0131.off +plant/train/plant_0132.off +plant/train/plant_0133.off +plant/train/plant_0134.off +plant/train/plant_0135.off +plant/train/plant_0136.off +plant/train/plant_0137.off +plant/train/plant_0138.off +plant/train/plant_0139.off +plant/train/plant_0140.off +plant/train/plant_0141.off +plant/train/plant_0142.off +plant/train/plant_0143.off +plant/train/plant_0144.off +plant/train/plant_0145.off +plant/train/plant_0146.off +plant/train/plant_0147.off +plant/train/plant_0148.off +plant/train/plant_0149.off +plant/train/plant_0150.off +plant/train/plant_0151.off +plant/train/plant_0152.off +plant/train/plant_0153.off +plant/train/plant_0154.off +plant/train/plant_0155.off +plant/train/plant_0156.off +plant/train/plant_0157.off +plant/train/plant_0158.off +plant/train/plant_0159.off +plant/train/plant_0160.off +plant/train/plant_0161.off +plant/train/plant_0162.off +plant/train/plant_0163.off +plant/train/plant_0164.off +plant/train/plant_0165.off +plant/train/plant_0166.off +plant/train/plant_0167.off +plant/train/plant_0168.off +plant/train/plant_0169.off +plant/train/plant_0170.off +plant/train/plant_0171.off +plant/train/plant_0172.off +plant/train/plant_0173.off +plant/train/plant_0174.off +plant/train/plant_0175.off +plant/train/plant_0176.off +plant/train/plant_0177.off +plant/train/plant_0178.off +plant/train/plant_0179.off +plant/train/plant_0180.off +plant/train/plant_0181.off +plant/train/plant_0182.off +plant/train/plant_0183.off +plant/train/plant_0184.off +plant/train/plant_0185.off +plant/train/plant_0186.off +plant/train/plant_0187.off +plant/train/plant_0188.off +plant/train/plant_0189.off +plant/train/plant_0190.off +plant/train/plant_0191.off +plant/train/plant_0192.off +plant/train/plant_0193.off +plant/train/plant_0194.off +plant/train/plant_0195.off +plant/train/plant_0196.off +plant/train/plant_0197.off +plant/train/plant_0198.off +plant/train/plant_0199.off +plant/train/plant_0200.off +plant/train/plant_0201.off +plant/train/plant_0202.off +plant/train/plant_0203.off +plant/train/plant_0204.off +plant/train/plant_0205.off +plant/train/plant_0206.off +plant/train/plant_0207.off +plant/train/plant_0208.off +plant/train/plant_0209.off +plant/train/plant_0210.off +plant/train/plant_0211.off +plant/train/plant_0212.off +plant/train/plant_0213.off +plant/train/plant_0214.off +plant/train/plant_0215.off +plant/train/plant_0216.off +chair/train/chair_0001.off +chair/train/chair_0002.off +chair/train/chair_0003.off +chair/train/chair_0004.off +chair/train/chair_0005.off +chair/train/chair_0006.off +chair/train/chair_0007.off +chair/train/chair_0008.off +chair/train/chair_0009.off +chair/train/chair_0010.off +chair/train/chair_0011.off +chair/train/chair_0012.off +chair/train/chair_0013.off +chair/train/chair_0014.off +chair/train/chair_0015.off +chair/train/chair_0016.off +chair/train/chair_0017.off +chair/train/chair_0018.off +chair/train/chair_0019.off +chair/train/chair_0020.off +chair/train/chair_0021.off +chair/train/chair_0022.off +chair/train/chair_0023.off +chair/train/chair_0024.off +chair/train/chair_0025.off +chair/train/chair_0026.off +chair/train/chair_0027.off +chair/train/chair_0028.off +chair/train/chair_0029.off +chair/train/chair_0030.off +chair/train/chair_0031.off +chair/train/chair_0032.off +chair/train/chair_0033.off +chair/train/chair_0034.off +chair/train/chair_0035.off +chair/train/chair_0036.off +chair/train/chair_0037.off +chair/train/chair_0038.off +chair/train/chair_0039.off +chair/train/chair_0040.off +chair/train/chair_0041.off +chair/train/chair_0042.off +chair/train/chair_0043.off +chair/train/chair_0044.off +chair/train/chair_0045.off +chair/train/chair_0046.off +chair/train/chair_0047.off +chair/train/chair_0048.off +chair/train/chair_0049.off +chair/train/chair_0050.off +chair/train/chair_0051.off +chair/train/chair_0052.off +chair/train/chair_0053.off +chair/train/chair_0054.off +chair/train/chair_0055.off +chair/train/chair_0056.off +chair/train/chair_0057.off +chair/train/chair_0058.off +chair/train/chair_0059.off +chair/train/chair_0060.off +chair/train/chair_0061.off +chair/train/chair_0062.off +chair/train/chair_0063.off +chair/train/chair_0064.off +chair/train/chair_0065.off +chair/train/chair_0066.off +chair/train/chair_0067.off +chair/train/chair_0068.off +chair/train/chair_0069.off +chair/train/chair_0070.off +chair/train/chair_0071.off +chair/train/chair_0072.off +chair/train/chair_0073.off +chair/train/chair_0074.off +chair/train/chair_0075.off +chair/train/chair_0076.off +chair/train/chair_0077.off +chair/train/chair_0078.off +chair/train/chair_0079.off +chair/train/chair_0080.off +chair/train/chair_0081.off +chair/train/chair_0082.off +chair/train/chair_0083.off +chair/train/chair_0084.off +chair/train/chair_0085.off +chair/train/chair_0086.off +chair/train/chair_0087.off +chair/train/chair_0088.off +chair/train/chair_0089.off +chair/train/chair_0090.off +chair/train/chair_0091.off +chair/train/chair_0092.off +chair/train/chair_0093.off +chair/train/chair_0094.off +chair/train/chair_0095.off +chair/train/chair_0096.off +chair/train/chair_0097.off +chair/train/chair_0098.off +chair/train/chair_0099.off +chair/train/chair_0100.off +chair/train/chair_0101.off +chair/train/chair_0102.off +chair/train/chair_0103.off +chair/train/chair_0104.off +chair/train/chair_0105.off +chair/train/chair_0106.off +chair/train/chair_0107.off +chair/train/chair_0108.off +chair/train/chair_0109.off +chair/train/chair_0110.off +chair/train/chair_0111.off +chair/train/chair_0112.off +chair/train/chair_0113.off +chair/train/chair_0114.off +chair/train/chair_0115.off +chair/train/chair_0116.off +chair/train/chair_0117.off +chair/train/chair_0118.off +chair/train/chair_0119.off +chair/train/chair_0120.off +chair/train/chair_0121.off +chair/train/chair_0122.off +chair/train/chair_0123.off +chair/train/chair_0124.off +chair/train/chair_0125.off +chair/train/chair_0126.off +chair/train/chair_0127.off +chair/train/chair_0128.off +chair/train/chair_0129.off +chair/train/chair_0130.off +chair/train/chair_0131.off +chair/train/chair_0132.off +chair/train/chair_0133.off +chair/train/chair_0134.off +chair/train/chair_0135.off +chair/train/chair_0136.off +chair/train/chair_0137.off +chair/train/chair_0138.off +chair/train/chair_0139.off +chair/train/chair_0140.off +chair/train/chair_0141.off +chair/train/chair_0142.off +chair/train/chair_0143.off +chair/train/chair_0144.off +chair/train/chair_0145.off +chair/train/chair_0146.off +chair/train/chair_0147.off +chair/train/chair_0148.off +chair/train/chair_0149.off +chair/train/chair_0150.off +chair/train/chair_0151.off +chair/train/chair_0152.off +chair/train/chair_0153.off +chair/train/chair_0154.off +chair/train/chair_0155.off +chair/train/chair_0156.off +chair/train/chair_0157.off +chair/train/chair_0158.off +chair/train/chair_0159.off +chair/train/chair_0160.off +chair/train/chair_0161.off +chair/train/chair_0162.off +chair/train/chair_0163.off +chair/train/chair_0164.off +chair/train/chair_0165.off +chair/train/chair_0166.off +chair/train/chair_0167.off +chair/train/chair_0168.off +chair/train/chair_0169.off +chair/train/chair_0170.off +chair/train/chair_0171.off +chair/train/chair_0172.off +chair/train/chair_0173.off +chair/train/chair_0174.off +chair/train/chair_0175.off +chair/train/chair_0176.off +chair/train/chair_0177.off +chair/train/chair_0178.off +chair/train/chair_0179.off +chair/train/chair_0180.off +chair/train/chair_0181.off +chair/train/chair_0182.off +chair/train/chair_0183.off +chair/train/chair_0184.off +chair/train/chair_0185.off +chair/train/chair_0186.off +chair/train/chair_0187.off +chair/train/chair_0188.off +chair/train/chair_0189.off +chair/train/chair_0190.off +chair/train/chair_0191.off +chair/train/chair_0192.off +chair/train/chair_0193.off +chair/train/chair_0194.off +chair/train/chair_0195.off +chair/train/chair_0196.off +chair/train/chair_0197.off +chair/train/chair_0198.off +chair/train/chair_0199.off +chair/train/chair_0200.off +chair/train/chair_0201.off +chair/train/chair_0202.off +chair/train/chair_0203.off +chair/train/chair_0204.off +chair/train/chair_0205.off +chair/train/chair_0206.off +chair/train/chair_0207.off +chair/train/chair_0208.off +chair/train/chair_0209.off +chair/train/chair_0210.off +chair/train/chair_0211.off +chair/train/chair_0212.off +chair/train/chair_0213.off +chair/train/chair_0214.off +chair/train/chair_0215.off +chair/train/chair_0216.off +chair/train/chair_0217.off +chair/train/chair_0218.off +chair/train/chair_0219.off +chair/train/chair_0220.off +chair/train/chair_0221.off +chair/train/chair_0222.off +chair/train/chair_0223.off +chair/train/chair_0224.off +chair/train/chair_0225.off +chair/train/chair_0226.off +chair/train/chair_0227.off +chair/train/chair_0228.off +chair/train/chair_0229.off +chair/train/chair_0230.off +chair/train/chair_0231.off +chair/train/chair_0232.off +chair/train/chair_0233.off +chair/train/chair_0234.off +chair/train/chair_0235.off +chair/train/chair_0236.off +chair/train/chair_0237.off +chair/train/chair_0238.off +chair/train/chair_0239.off +chair/train/chair_0240.off +chair/train/chair_0241.off +chair/train/chair_0242.off +chair/train/chair_0243.off +chair/train/chair_0244.off +chair/train/chair_0245.off +chair/train/chair_0246.off +chair/train/chair_0247.off +chair/train/chair_0248.off +chair/train/chair_0249.off +chair/train/chair_0250.off +chair/train/chair_0251.off +chair/train/chair_0252.off +chair/train/chair_0253.off +chair/train/chair_0254.off +chair/train/chair_0255.off +chair/train/chair_0256.off +chair/train/chair_0257.off +chair/train/chair_0258.off +chair/train/chair_0259.off +chair/train/chair_0260.off +chair/train/chair_0261.off +chair/train/chair_0262.off +chair/train/chair_0263.off +chair/train/chair_0264.off +chair/train/chair_0265.off +chair/train/chair_0266.off +chair/train/chair_0267.off +chair/train/chair_0268.off +chair/train/chair_0269.off +chair/train/chair_0270.off +chair/train/chair_0271.off +chair/train/chair_0272.off +chair/train/chair_0273.off +chair/train/chair_0274.off +chair/train/chair_0275.off +chair/train/chair_0276.off +chair/train/chair_0277.off +chair/train/chair_0278.off +chair/train/chair_0279.off +chair/train/chair_0280.off +chair/train/chair_0281.off +chair/train/chair_0282.off +chair/train/chair_0283.off +chair/train/chair_0284.off +chair/train/chair_0285.off +chair/train/chair_0286.off +chair/train/chair_0287.off +chair/train/chair_0288.off +chair/train/chair_0289.off +chair/train/chair_0290.off +chair/train/chair_0291.off +chair/train/chair_0292.off +chair/train/chair_0293.off +chair/train/chair_0294.off +chair/train/chair_0295.off +chair/train/chair_0296.off +chair/train/chair_0297.off +chair/train/chair_0298.off +chair/train/chair_0299.off +chair/train/chair_0300.off +chair/train/chair_0301.off +chair/train/chair_0302.off +chair/train/chair_0303.off +chair/train/chair_0304.off +chair/train/chair_0305.off +chair/train/chair_0306.off +chair/train/chair_0307.off +chair/train/chair_0308.off +chair/train/chair_0309.off +chair/train/chair_0310.off +chair/train/chair_0311.off +chair/train/chair_0312.off +chair/train/chair_0313.off +chair/train/chair_0314.off +chair/train/chair_0315.off +chair/train/chair_0316.off +chair/train/chair_0317.off +chair/train/chair_0318.off +chair/train/chair_0319.off +chair/train/chair_0320.off +chair/train/chair_0321.off +chair/train/chair_0322.off +chair/train/chair_0323.off +chair/train/chair_0324.off +chair/train/chair_0325.off +chair/train/chair_0326.off +chair/train/chair_0327.off +chair/train/chair_0328.off +chair/train/chair_0329.off +chair/train/chair_0330.off +chair/train/chair_0331.off +chair/train/chair_0332.off +chair/train/chair_0333.off +chair/train/chair_0334.off +chair/train/chair_0335.off +chair/train/chair_0336.off +chair/train/chair_0337.off +chair/train/chair_0338.off +chair/train/chair_0339.off +chair/train/chair_0340.off +chair/train/chair_0341.off +chair/train/chair_0342.off +chair/train/chair_0343.off +chair/train/chair_0344.off +chair/train/chair_0345.off +chair/train/chair_0346.off +chair/train/chair_0347.off +chair/train/chair_0348.off +chair/train/chair_0349.off +chair/train/chair_0350.off +chair/train/chair_0351.off +chair/train/chair_0352.off +chair/train/chair_0353.off +chair/train/chair_0354.off +chair/train/chair_0355.off +chair/train/chair_0356.off +chair/train/chair_0357.off +chair/train/chair_0358.off +chair/train/chair_0359.off +chair/train/chair_0360.off +chair/train/chair_0361.off +chair/train/chair_0362.off +chair/train/chair_0363.off +chair/train/chair_0364.off +chair/train/chair_0365.off +chair/train/chair_0366.off +chair/train/chair_0367.off +chair/train/chair_0368.off +chair/train/chair_0369.off +chair/train/chair_0370.off +chair/train/chair_0371.off +chair/train/chair_0372.off +chair/train/chair_0373.off +chair/train/chair_0374.off +chair/train/chair_0375.off +chair/train/chair_0376.off +chair/train/chair_0377.off +chair/train/chair_0378.off +chair/train/chair_0379.off +chair/train/chair_0380.off +chair/train/chair_0381.off +chair/train/chair_0382.off +chair/train/chair_0383.off +chair/train/chair_0384.off +chair/train/chair_0385.off +chair/train/chair_0386.off +chair/train/chair_0387.off +chair/train/chair_0388.off +chair/train/chair_0389.off +chair/train/chair_0390.off +chair/train/chair_0391.off +chair/train/chair_0392.off +chair/train/chair_0393.off +chair/train/chair_0394.off +chair/train/chair_0395.off +chair/train/chair_0396.off +chair/train/chair_0397.off +chair/train/chair_0398.off +chair/train/chair_0399.off +chair/train/chair_0400.off +chair/train/chair_0401.off +chair/train/chair_0402.off +chair/train/chair_0403.off +chair/train/chair_0404.off +chair/train/chair_0405.off +chair/train/chair_0406.off +chair/train/chair_0407.off +chair/train/chair_0408.off +chair/train/chair_0409.off +chair/train/chair_0410.off +chair/train/chair_0411.off +chair/train/chair_0412.off +chair/train/chair_0413.off +chair/train/chair_0414.off +chair/train/chair_0415.off +chair/train/chair_0416.off +chair/train/chair_0417.off +chair/train/chair_0418.off +chair/train/chair_0419.off +chair/train/chair_0420.off +chair/train/chair_0421.off +chair/train/chair_0422.off +chair/train/chair_0423.off +chair/train/chair_0424.off +chair/train/chair_0425.off +chair/train/chair_0426.off +chair/train/chair_0427.off +chair/train/chair_0428.off +chair/train/chair_0429.off +chair/train/chair_0430.off +chair/train/chair_0431.off +chair/train/chair_0432.off +chair/train/chair_0433.off +chair/train/chair_0434.off +chair/train/chair_0435.off +chair/train/chair_0436.off +chair/train/chair_0437.off +chair/train/chair_0438.off +chair/train/chair_0439.off +chair/train/chair_0440.off +chair/train/chair_0441.off +chair/train/chair_0442.off +chair/train/chair_0443.off +chair/train/chair_0444.off +chair/train/chair_0445.off +chair/train/chair_0446.off +chair/train/chair_0447.off +chair/train/chair_0448.off +chair/train/chair_0449.off +chair/train/chair_0450.off +chair/train/chair_0451.off +chair/train/chair_0452.off +chair/train/chair_0453.off +chair/train/chair_0454.off +chair/train/chair_0455.off +chair/train/chair_0456.off +chair/train/chair_0457.off +chair/train/chair_0458.off +chair/train/chair_0459.off +chair/train/chair_0460.off +chair/train/chair_0461.off +chair/train/chair_0462.off +chair/train/chair_0463.off +chair/train/chair_0464.off +chair/train/chair_0465.off +chair/train/chair_0466.off +chair/train/chair_0467.off +chair/train/chair_0468.off +chair/train/chair_0469.off +chair/train/chair_0470.off +chair/train/chair_0471.off +chair/train/chair_0472.off +chair/train/chair_0473.off +chair/train/chair_0474.off +chair/train/chair_0475.off +chair/train/chair_0476.off +chair/train/chair_0477.off +chair/train/chair_0478.off +chair/train/chair_0479.off +chair/train/chair_0480.off +chair/train/chair_0481.off +chair/train/chair_0482.off +chair/train/chair_0483.off +chair/train/chair_0484.off +chair/train/chair_0485.off +chair/train/chair_0486.off +chair/train/chair_0487.off +chair/train/chair_0488.off +chair/train/chair_0489.off +chair/train/chair_0490.off +chair/train/chair_0491.off +chair/train/chair_0492.off +chair/train/chair_0493.off +chair/train/chair_0494.off +chair/train/chair_0495.off +chair/train/chair_0496.off +chair/train/chair_0497.off +chair/train/chair_0498.off +chair/train/chair_0499.off +chair/train/chair_0500.off +chair/train/chair_0501.off +chair/train/chair_0502.off +chair/train/chair_0503.off +chair/train/chair_0504.off +chair/train/chair_0505.off +chair/train/chair_0506.off +chair/train/chair_0507.off +chair/train/chair_0508.off +chair/train/chair_0509.off +chair/train/chair_0510.off +chair/train/chair_0511.off +chair/train/chair_0512.off +chair/train/chair_0513.off +chair/train/chair_0514.off +chair/train/chair_0515.off +chair/train/chair_0516.off +chair/train/chair_0517.off +chair/train/chair_0518.off +chair/train/chair_0519.off +chair/train/chair_0520.off +chair/train/chair_0521.off +chair/train/chair_0522.off +chair/train/chair_0523.off +chair/train/chair_0524.off +chair/train/chair_0525.off +chair/train/chair_0526.off +chair/train/chair_0527.off +chair/train/chair_0528.off +chair/train/chair_0529.off +chair/train/chair_0530.off +chair/train/chair_0531.off +chair/train/chair_0532.off +chair/train/chair_0533.off +chair/train/chair_0534.off +chair/train/chair_0535.off +chair/train/chair_0536.off +chair/train/chair_0537.off +chair/train/chair_0538.off +chair/train/chair_0539.off +chair/train/chair_0540.off +chair/train/chair_0541.off +chair/train/chair_0542.off +chair/train/chair_0543.off +chair/train/chair_0544.off +chair/train/chair_0545.off +chair/train/chair_0546.off +chair/train/chair_0547.off +chair/train/chair_0548.off +chair/train/chair_0549.off +chair/train/chair_0550.off +chair/train/chair_0551.off +chair/train/chair_0552.off +chair/train/chair_0553.off +chair/train/chair_0554.off +chair/train/chair_0555.off +chair/train/chair_0556.off +chair/train/chair_0557.off +chair/train/chair_0558.off +chair/train/chair_0559.off +chair/train/chair_0560.off +chair/train/chair_0561.off +chair/train/chair_0562.off +chair/train/chair_0563.off +chair/train/chair_0564.off +chair/train/chair_0565.off +chair/train/chair_0566.off +chair/train/chair_0567.off +chair/train/chair_0568.off +chair/train/chair_0569.off +chair/train/chair_0570.off +chair/train/chair_0571.off +chair/train/chair_0572.off +chair/train/chair_0573.off +chair/train/chair_0574.off +chair/train/chair_0575.off +chair/train/chair_0576.off +chair/train/chair_0577.off +chair/train/chair_0578.off +chair/train/chair_0579.off +chair/train/chair_0580.off +chair/train/chair_0581.off +chair/train/chair_0582.off +chair/train/chair_0583.off +chair/train/chair_0584.off +chair/train/chair_0585.off +chair/train/chair_0586.off +chair/train/chair_0587.off +chair/train/chair_0588.off +chair/train/chair_0589.off +chair/train/chair_0590.off +chair/train/chair_0591.off +chair/train/chair_0592.off +chair/train/chair_0593.off +chair/train/chair_0594.off +chair/train/chair_0595.off +chair/train/chair_0596.off +chair/train/chair_0597.off +chair/train/chair_0598.off +chair/train/chair_0599.off +chair/train/chair_0600.off +chair/train/chair_0601.off +chair/train/chair_0602.off +chair/train/chair_0603.off +chair/train/chair_0604.off +chair/train/chair_0605.off +chair/train/chair_0606.off +chair/train/chair_0607.off +chair/train/chair_0608.off +chair/train/chair_0609.off +chair/train/chair_0610.off +chair/train/chair_0611.off +chair/train/chair_0612.off +chair/train/chair_0613.off +chair/train/chair_0614.off +chair/train/chair_0615.off +chair/train/chair_0616.off +chair/train/chair_0617.off +chair/train/chair_0618.off +chair/train/chair_0619.off +chair/train/chair_0620.off +chair/train/chair_0621.off +chair/train/chair_0622.off +chair/train/chair_0623.off +chair/train/chair_0624.off +chair/train/chair_0625.off +chair/train/chair_0626.off +chair/train/chair_0627.off +chair/train/chair_0628.off +chair/train/chair_0629.off +chair/train/chair_0630.off +chair/train/chair_0631.off +chair/train/chair_0632.off +chair/train/chair_0633.off +chair/train/chair_0634.off +chair/train/chair_0635.off +chair/train/chair_0636.off +chair/train/chair_0637.off +chair/train/chair_0638.off +chair/train/chair_0639.off +chair/train/chair_0640.off +chair/train/chair_0641.off +chair/train/chair_0642.off +chair/train/chair_0643.off +chair/train/chair_0644.off +chair/train/chair_0645.off +chair/train/chair_0646.off +chair/train/chair_0647.off +chair/train/chair_0648.off +chair/train/chair_0649.off +chair/train/chair_0650.off +chair/train/chair_0651.off +chair/train/chair_0652.off +chair/train/chair_0653.off +chair/train/chair_0654.off +chair/train/chair_0655.off +chair/train/chair_0656.off +chair/train/chair_0657.off +chair/train/chair_0658.off +chair/train/chair_0659.off +chair/train/chair_0660.off +chair/train/chair_0661.off +chair/train/chair_0662.off +chair/train/chair_0663.off +chair/train/chair_0664.off +chair/train/chair_0665.off +chair/train/chair_0666.off +chair/train/chair_0667.off +chair/train/chair_0668.off +chair/train/chair_0669.off +chair/train/chair_0670.off +chair/train/chair_0671.off +chair/train/chair_0672.off +chair/train/chair_0673.off +chair/train/chair_0674.off +chair/train/chair_0675.off +chair/train/chair_0676.off +chair/train/chair_0677.off +chair/train/chair_0678.off +chair/train/chair_0679.off +chair/train/chair_0680.off +chair/train/chair_0681.off +chair/train/chair_0682.off +chair/train/chair_0683.off +chair/train/chair_0684.off +chair/train/chair_0685.off +chair/train/chair_0686.off +chair/train/chair_0687.off +chair/train/chair_0688.off +chair/train/chair_0689.off +chair/train/chair_0690.off +chair/train/chair_0691.off +chair/train/chair_0692.off +chair/train/chair_0693.off +chair/train/chair_0694.off +chair/train/chair_0695.off +chair/train/chair_0696.off +chair/train/chair_0697.off +chair/train/chair_0698.off +chair/train/chair_0699.off +chair/train/chair_0700.off +chair/train/chair_0701.off +chair/train/chair_0702.off +chair/train/chair_0703.off +chair/train/chair_0704.off +chair/train/chair_0705.off +chair/train/chair_0706.off +chair/train/chair_0707.off +chair/train/chair_0708.off +chair/train/chair_0709.off +chair/train/chair_0710.off +chair/train/chair_0711.off +chair/train/chair_0712.off +chair/train/chair_0713.off +chair/train/chair_0714.off +chair/train/chair_0715.off +chair/train/chair_0716.off +chair/train/chair_0717.off +chair/train/chair_0718.off +chair/train/chair_0719.off +chair/train/chair_0720.off +chair/train/chair_0721.off +chair/train/chair_0722.off +chair/train/chair_0723.off +chair/train/chair_0724.off +chair/train/chair_0725.off +chair/train/chair_0726.off +chair/train/chair_0727.off +chair/train/chair_0728.off +chair/train/chair_0729.off +chair/train/chair_0730.off +chair/train/chair_0731.off +chair/train/chair_0732.off +chair/train/chair_0733.off +chair/train/chair_0734.off +chair/train/chair_0735.off +chair/train/chair_0736.off +chair/train/chair_0737.off +chair/train/chair_0738.off +chair/train/chair_0739.off +chair/train/chair_0740.off +chair/train/chair_0741.off +chair/train/chair_0742.off +chair/train/chair_0743.off +chair/train/chair_0744.off +chair/train/chair_0745.off +chair/train/chair_0746.off +chair/train/chair_0747.off +chair/train/chair_0748.off +chair/train/chair_0749.off +chair/train/chair_0750.off +chair/train/chair_0751.off +chair/train/chair_0752.off +chair/train/chair_0753.off +chair/train/chair_0754.off +chair/train/chair_0755.off +chair/train/chair_0756.off +chair/train/chair_0757.off +chair/train/chair_0758.off +chair/train/chair_0759.off +chair/train/chair_0760.off +chair/train/chair_0761.off +chair/train/chair_0762.off +chair/train/chair_0763.off +chair/train/chair_0764.off +chair/train/chair_0765.off +chair/train/chair_0766.off +chair/train/chair_0767.off +chair/train/chair_0768.off +chair/train/chair_0769.off +chair/train/chair_0770.off +chair/train/chair_0771.off +chair/train/chair_0772.off +chair/train/chair_0773.off +chair/train/chair_0774.off +chair/train/chair_0775.off +chair/train/chair_0776.off +chair/train/chair_0777.off +chair/train/chair_0778.off +chair/train/chair_0779.off +chair/train/chair_0780.off +chair/train/chair_0781.off +chair/train/chair_0782.off +chair/train/chair_0783.off +chair/train/chair_0784.off +chair/train/chair_0785.off +chair/train/chair_0786.off +chair/train/chair_0787.off +chair/train/chair_0788.off +chair/train/chair_0789.off +chair/train/chair_0790.off +chair/train/chair_0791.off +chair/train/chair_0792.off +chair/train/chair_0793.off +chair/train/chair_0794.off +chair/train/chair_0795.off +chair/train/chair_0796.off +chair/train/chair_0797.off +chair/train/chair_0798.off +chair/train/chair_0799.off +chair/train/chair_0800.off +chair/train/chair_0801.off +vase/train/vase_0001.off +vase/train/vase_0002.off +vase/train/vase_0003.off +vase/train/vase_0004.off +vase/train/vase_0005.off +vase/train/vase_0006.off +vase/train/vase_0007.off +vase/train/vase_0008.off +vase/train/vase_0009.off +vase/train/vase_0010.off +vase/train/vase_0011.off +vase/train/vase_0012.off +vase/train/vase_0013.off +vase/train/vase_0014.off +vase/train/vase_0015.off +vase/train/vase_0016.off +vase/train/vase_0017.off +vase/train/vase_0018.off +vase/train/vase_0019.off +vase/train/vase_0020.off +vase/train/vase_0021.off +vase/train/vase_0022.off +vase/train/vase_0023.off +vase/train/vase_0024.off +vase/train/vase_0025.off +vase/train/vase_0026.off +vase/train/vase_0027.off +vase/train/vase_0028.off +vase/train/vase_0029.off +vase/train/vase_0030.off +vase/train/vase_0031.off +vase/train/vase_0032.off +vase/train/vase_0033.off +vase/train/vase_0034.off +vase/train/vase_0035.off +vase/train/vase_0036.off +vase/train/vase_0037.off +vase/train/vase_0038.off +vase/train/vase_0039.off +vase/train/vase_0040.off +vase/train/vase_0041.off +vase/train/vase_0042.off +vase/train/vase_0043.off +vase/train/vase_0044.off +vase/train/vase_0045.off +vase/train/vase_0046.off +vase/train/vase_0047.off +vase/train/vase_0048.off +vase/train/vase_0049.off +vase/train/vase_0050.off +vase/train/vase_0051.off +vase/train/vase_0052.off +vase/train/vase_0053.off +vase/train/vase_0054.off +vase/train/vase_0055.off +vase/train/vase_0056.off +vase/train/vase_0057.off +vase/train/vase_0058.off +vase/train/vase_0059.off +vase/train/vase_0060.off +vase/train/vase_0061.off +vase/train/vase_0062.off +vase/train/vase_0063.off +vase/train/vase_0064.off +vase/train/vase_0065.off +vase/train/vase_0066.off +vase/train/vase_0067.off +vase/train/vase_0068.off +vase/train/vase_0069.off +vase/train/vase_0070.off +vase/train/vase_0071.off +vase/train/vase_0072.off +vase/train/vase_0073.off +vase/train/vase_0074.off +vase/train/vase_0075.off +vase/train/vase_0076.off +vase/train/vase_0077.off +vase/train/vase_0078.off +vase/train/vase_0079.off +vase/train/vase_0080.off +vase/train/vase_0081.off +vase/train/vase_0082.off +vase/train/vase_0083.off +vase/train/vase_0084.off +vase/train/vase_0085.off +vase/train/vase_0086.off +vase/train/vase_0087.off +vase/train/vase_0088.off +vase/train/vase_0089.off +vase/train/vase_0090.off +vase/train/vase_0091.off +vase/train/vase_0092.off +vase/train/vase_0093.off +vase/train/vase_0094.off +vase/train/vase_0095.off +vase/train/vase_0096.off +vase/train/vase_0097.off +vase/train/vase_0098.off +vase/train/vase_0099.off +vase/train/vase_0100.off +vase/train/vase_0101.off +vase/train/vase_0102.off +vase/train/vase_0103.off +vase/train/vase_0104.off +vase/train/vase_0105.off +vase/train/vase_0106.off +vase/train/vase_0107.off +vase/train/vase_0108.off +vase/train/vase_0109.off +vase/train/vase_0110.off +vase/train/vase_0111.off +vase/train/vase_0112.off +vase/train/vase_0113.off +vase/train/vase_0114.off +vase/train/vase_0115.off +vase/train/vase_0116.off +vase/train/vase_0117.off +vase/train/vase_0118.off +vase/train/vase_0119.off +vase/train/vase_0120.off +vase/train/vase_0121.off +vase/train/vase_0122.off +vase/train/vase_0123.off +vase/train/vase_0124.off +vase/train/vase_0125.off +vase/train/vase_0126.off +vase/train/vase_0127.off +vase/train/vase_0128.off +vase/train/vase_0129.off +vase/train/vase_0130.off +vase/train/vase_0131.off +vase/train/vase_0132.off +vase/train/vase_0133.off +vase/train/vase_0134.off +vase/train/vase_0135.off +vase/train/vase_0136.off +vase/train/vase_0137.off +vase/train/vase_0138.off +vase/train/vase_0139.off +vase/train/vase_0140.off +vase/train/vase_0141.off +vase/train/vase_0142.off +vase/train/vase_0143.off +vase/train/vase_0144.off +vase/train/vase_0145.off +vase/train/vase_0146.off +vase/train/vase_0147.off +vase/train/vase_0148.off +vase/train/vase_0149.off +vase/train/vase_0150.off +vase/train/vase_0151.off +vase/train/vase_0152.off +vase/train/vase_0153.off +vase/train/vase_0154.off +vase/train/vase_0155.off +vase/train/vase_0156.off +vase/train/vase_0157.off +vase/train/vase_0158.off +vase/train/vase_0159.off +vase/train/vase_0160.off +vase/train/vase_0161.off +vase/train/vase_0162.off +vase/train/vase_0163.off +vase/train/vase_0164.off +vase/train/vase_0165.off +vase/train/vase_0166.off +vase/train/vase_0167.off +vase/train/vase_0168.off +vase/train/vase_0169.off +vase/train/vase_0170.off +vase/train/vase_0171.off +vase/train/vase_0172.off +vase/train/vase_0173.off +vase/train/vase_0174.off +vase/train/vase_0175.off +vase/train/vase_0176.off +vase/train/vase_0177.off +vase/train/vase_0178.off +vase/train/vase_0179.off +vase/train/vase_0180.off +vase/train/vase_0181.off +vase/train/vase_0182.off +vase/train/vase_0183.off +vase/train/vase_0184.off +vase/train/vase_0185.off +vase/train/vase_0186.off +vase/train/vase_0187.off +vase/train/vase_0188.off +vase/train/vase_0189.off +vase/train/vase_0190.off +vase/train/vase_0191.off +vase/train/vase_0192.off +vase/train/vase_0193.off +vase/train/vase_0194.off +vase/train/vase_0195.off +vase/train/vase_0196.off +vase/train/vase_0197.off +vase/train/vase_0198.off +vase/train/vase_0199.off +vase/train/vase_0200.off +vase/train/vase_0201.off +vase/train/vase_0202.off +vase/train/vase_0203.off +vase/train/vase_0204.off +vase/train/vase_0205.off +vase/train/vase_0206.off +vase/train/vase_0207.off +vase/train/vase_0208.off +vase/train/vase_0209.off +vase/train/vase_0210.off +vase/train/vase_0211.off +vase/train/vase_0212.off +vase/train/vase_0213.off +vase/train/vase_0214.off +vase/train/vase_0215.off +vase/train/vase_0216.off +vase/train/vase_0217.off +vase/train/vase_0218.off +vase/train/vase_0219.off +vase/train/vase_0220.off +vase/train/vase_0221.off +vase/train/vase_0222.off +vase/train/vase_0223.off +vase/train/vase_0224.off +vase/train/vase_0225.off +vase/train/vase_0226.off +vase/train/vase_0227.off +vase/train/vase_0228.off +vase/train/vase_0229.off +vase/train/vase_0230.off +vase/train/vase_0231.off +vase/train/vase_0232.off +vase/train/vase_0233.off +vase/train/vase_0234.off +vase/train/vase_0235.off +vase/train/vase_0236.off +vase/train/vase_0237.off +vase/train/vase_0238.off +vase/train/vase_0239.off +vase/train/vase_0240.off +vase/train/vase_0241.off +vase/train/vase_0242.off +vase/train/vase_0243.off +vase/train/vase_0244.off +vase/train/vase_0245.off +vase/train/vase_0246.off +vase/train/vase_0247.off +vase/train/vase_0248.off +vase/train/vase_0249.off +vase/train/vase_0250.off +vase/train/vase_0251.off +vase/train/vase_0252.off +vase/train/vase_0253.off +vase/train/vase_0254.off +vase/train/vase_0255.off +vase/train/vase_0256.off +vase/train/vase_0257.off +vase/train/vase_0258.off +vase/train/vase_0259.off +vase/train/vase_0260.off +vase/train/vase_0261.off +vase/train/vase_0262.off +vase/train/vase_0263.off +vase/train/vase_0264.off +vase/train/vase_0265.off +vase/train/vase_0266.off +vase/train/vase_0267.off +vase/train/vase_0268.off +vase/train/vase_0269.off +vase/train/vase_0270.off +vase/train/vase_0271.off +vase/train/vase_0272.off +vase/train/vase_0273.off +vase/train/vase_0274.off +vase/train/vase_0275.off +vase/train/vase_0276.off +vase/train/vase_0277.off +vase/train/vase_0278.off +vase/train/vase_0279.off +vase/train/vase_0280.off +vase/train/vase_0281.off +vase/train/vase_0282.off +vase/train/vase_0283.off +vase/train/vase_0284.off +vase/train/vase_0285.off +vase/train/vase_0286.off +vase/train/vase_0287.off +vase/train/vase_0288.off +vase/train/vase_0289.off +vase/train/vase_0290.off +vase/train/vase_0291.off +vase/train/vase_0292.off +vase/train/vase_0293.off +vase/train/vase_0294.off +vase/train/vase_0295.off +vase/train/vase_0296.off +vase/train/vase_0297.off +vase/train/vase_0298.off +vase/train/vase_0299.off +vase/train/vase_0300.off +vase/train/vase_0301.off +vase/train/vase_0302.off +vase/train/vase_0303.off +vase/train/vase_0304.off +vase/train/vase_0305.off +vase/train/vase_0306.off +vase/train/vase_0307.off +vase/train/vase_0308.off +vase/train/vase_0309.off +vase/train/vase_0310.off +vase/train/vase_0311.off +vase/train/vase_0312.off +vase/train/vase_0313.off +vase/train/vase_0314.off +vase/train/vase_0315.off +vase/train/vase_0316.off +vase/train/vase_0317.off +vase/train/vase_0318.off +vase/train/vase_0319.off +vase/train/vase_0320.off +vase/train/vase_0321.off +vase/train/vase_0322.off +vase/train/vase_0323.off +vase/train/vase_0324.off +vase/train/vase_0325.off +vase/train/vase_0326.off +vase/train/vase_0327.off +vase/train/vase_0328.off +vase/train/vase_0329.off +vase/train/vase_0330.off +vase/train/vase_0331.off +vase/train/vase_0332.off +vase/train/vase_0333.off +vase/train/vase_0334.off +vase/train/vase_0335.off +vase/train/vase_0336.off +vase/train/vase_0337.off +vase/train/vase_0338.off +vase/train/vase_0339.off +vase/train/vase_0340.off +vase/train/vase_0341.off +vase/train/vase_0342.off +vase/train/vase_0343.off +vase/train/vase_0344.off +vase/train/vase_0345.off +vase/train/vase_0346.off +vase/train/vase_0347.off +vase/train/vase_0348.off +vase/train/vase_0349.off +vase/train/vase_0350.off +vase/train/vase_0351.off +vase/train/vase_0352.off +vase/train/vase_0353.off +vase/train/vase_0354.off +vase/train/vase_0355.off +vase/train/vase_0356.off +vase/train/vase_0357.off +vase/train/vase_0358.off +vase/train/vase_0359.off +vase/train/vase_0360.off +vase/train/vase_0361.off +vase/train/vase_0362.off +vase/train/vase_0363.off +vase/train/vase_0364.off +vase/train/vase_0365.off +vase/train/vase_0366.off +vase/train/vase_0367.off +vase/train/vase_0368.off +vase/train/vase_0369.off +vase/train/vase_0370.off +vase/train/vase_0371.off +vase/train/vase_0372.off +vase/train/vase_0373.off +vase/train/vase_0374.off +vase/train/vase_0375.off +vase/train/vase_0376.off +vase/train/vase_0377.off +vase/train/vase_0378.off +vase/train/vase_0379.off +vase/train/vase_0380.off +vase/train/vase_0381.off +vase/train/vase_0382.off +vase/train/vase_0383.off +vase/train/vase_0384.off +vase/train/vase_0385.off +vase/train/vase_0386.off +vase/train/vase_0387.off +vase/train/vase_0388.off +vase/train/vase_0389.off +vase/train/vase_0390.off +vase/train/vase_0391.off +vase/train/vase_0392.off +vase/train/vase_0393.off +vase/train/vase_0394.off +vase/train/vase_0395.off +vase/train/vase_0396.off +vase/train/vase_0397.off +vase/train/vase_0398.off +vase/train/vase_0399.off +vase/train/vase_0400.off +vase/train/vase_0401.off +vase/train/vase_0402.off +vase/train/vase_0403.off +vase/train/vase_0404.off +vase/train/vase_0405.off +vase/train/vase_0406.off +vase/train/vase_0407.off +vase/train/vase_0408.off +vase/train/vase_0409.off +vase/train/vase_0410.off +vase/train/vase_0411.off +vase/train/vase_0412.off +vase/train/vase_0413.off +vase/train/vase_0414.off +vase/train/vase_0415.off +vase/train/vase_0416.off +vase/train/vase_0417.off +vase/train/vase_0418.off +vase/train/vase_0419.off +vase/train/vase_0420.off +vase/train/vase_0421.off +vase/train/vase_0422.off +vase/train/vase_0423.off +vase/train/vase_0424.off +vase/train/vase_0425.off +vase/train/vase_0426.off +vase/train/vase_0427.off +vase/train/vase_0428.off +bookshelf/train/bookshelf_0001.off +bookshelf/train/bookshelf_0002.off +bookshelf/train/bookshelf_0003.off +bookshelf/train/bookshelf_0004.off +bookshelf/train/bookshelf_0005.off +bookshelf/train/bookshelf_0006.off +bookshelf/train/bookshelf_0007.off +bookshelf/train/bookshelf_0008.off +bookshelf/train/bookshelf_0009.off +bookshelf/train/bookshelf_0010.off +bookshelf/train/bookshelf_0011.off +bookshelf/train/bookshelf_0012.off +bookshelf/train/bookshelf_0013.off +bookshelf/train/bookshelf_0014.off +bookshelf/train/bookshelf_0015.off +bookshelf/train/bookshelf_0016.off +bookshelf/train/bookshelf_0017.off +bookshelf/train/bookshelf_0018.off +bookshelf/train/bookshelf_0019.off +bookshelf/train/bookshelf_0020.off +bookshelf/train/bookshelf_0021.off +bookshelf/train/bookshelf_0022.off +bookshelf/train/bookshelf_0023.off +bookshelf/train/bookshelf_0024.off +bookshelf/train/bookshelf_0025.off +bookshelf/train/bookshelf_0026.off +bookshelf/train/bookshelf_0027.off +bookshelf/train/bookshelf_0028.off +bookshelf/train/bookshelf_0029.off +bookshelf/train/bookshelf_0030.off +bookshelf/train/bookshelf_0031.off +bookshelf/train/bookshelf_0032.off +bookshelf/train/bookshelf_0033.off +bookshelf/train/bookshelf_0034.off +bookshelf/train/bookshelf_0035.off +bookshelf/train/bookshelf_0036.off +bookshelf/train/bookshelf_0037.off +bookshelf/train/bookshelf_0038.off +bookshelf/train/bookshelf_0039.off +bookshelf/train/bookshelf_0040.off +bookshelf/train/bookshelf_0041.off +bookshelf/train/bookshelf_0042.off +bookshelf/train/bookshelf_0043.off +bookshelf/train/bookshelf_0044.off +bookshelf/train/bookshelf_0045.off +bookshelf/train/bookshelf_0046.off +bookshelf/train/bookshelf_0047.off +bookshelf/train/bookshelf_0048.off +bookshelf/train/bookshelf_0049.off +bookshelf/train/bookshelf_0050.off +bookshelf/train/bookshelf_0051.off +bookshelf/train/bookshelf_0052.off +bookshelf/train/bookshelf_0053.off +bookshelf/train/bookshelf_0054.off +bookshelf/train/bookshelf_0055.off +bookshelf/train/bookshelf_0056.off +bookshelf/train/bookshelf_0057.off +bookshelf/train/bookshelf_0058.off +bookshelf/train/bookshelf_0059.off +bookshelf/train/bookshelf_0060.off +bookshelf/train/bookshelf_0061.off +bookshelf/train/bookshelf_0062.off +bookshelf/train/bookshelf_0063.off +bookshelf/train/bookshelf_0064.off +bookshelf/train/bookshelf_0065.off +bookshelf/train/bookshelf_0066.off +bookshelf/train/bookshelf_0067.off +bookshelf/train/bookshelf_0068.off +bookshelf/train/bookshelf_0069.off +bookshelf/train/bookshelf_0070.off +bookshelf/train/bookshelf_0071.off +bookshelf/train/bookshelf_0072.off +bookshelf/train/bookshelf_0073.off +bookshelf/train/bookshelf_0074.off +bookshelf/train/bookshelf_0075.off +bookshelf/train/bookshelf_0076.off +bookshelf/train/bookshelf_0077.off +bookshelf/train/bookshelf_0078.off +bookshelf/train/bookshelf_0079.off +bookshelf/train/bookshelf_0080.off +bookshelf/train/bookshelf_0081.off +bookshelf/train/bookshelf_0082.off +bookshelf/train/bookshelf_0083.off +bookshelf/train/bookshelf_0084.off +bookshelf/train/bookshelf_0085.off +bookshelf/train/bookshelf_0086.off +bookshelf/train/bookshelf_0087.off +bookshelf/train/bookshelf_0088.off +bookshelf/train/bookshelf_0089.off +bookshelf/train/bookshelf_0090.off +bookshelf/train/bookshelf_0091.off +bookshelf/train/bookshelf_0092.off +bookshelf/train/bookshelf_0093.off +bookshelf/train/bookshelf_0094.off +bookshelf/train/bookshelf_0095.off +bookshelf/train/bookshelf_0096.off +bookshelf/train/bookshelf_0097.off +bookshelf/train/bookshelf_0098.off +bookshelf/train/bookshelf_0099.off +bookshelf/train/bookshelf_0100.off +bookshelf/train/bookshelf_0101.off +bookshelf/train/bookshelf_0102.off +bookshelf/train/bookshelf_0103.off +bookshelf/train/bookshelf_0104.off +bookshelf/train/bookshelf_0105.off +bookshelf/train/bookshelf_0106.off +bookshelf/train/bookshelf_0107.off +bookshelf/train/bookshelf_0108.off +bookshelf/train/bookshelf_0109.off +bookshelf/train/bookshelf_0110.off +bookshelf/train/bookshelf_0111.off +bookshelf/train/bookshelf_0112.off +bookshelf/train/bookshelf_0113.off +bookshelf/train/bookshelf_0114.off +bookshelf/train/bookshelf_0115.off +bookshelf/train/bookshelf_0116.off +bookshelf/train/bookshelf_0117.off +bookshelf/train/bookshelf_0118.off +bookshelf/train/bookshelf_0119.off +bookshelf/train/bookshelf_0120.off +bookshelf/train/bookshelf_0121.off +bookshelf/train/bookshelf_0122.off +bookshelf/train/bookshelf_0123.off +bookshelf/train/bookshelf_0124.off +bookshelf/train/bookshelf_0125.off +bookshelf/train/bookshelf_0126.off +bookshelf/train/bookshelf_0127.off +bookshelf/train/bookshelf_0128.off +bookshelf/train/bookshelf_0129.off +bookshelf/train/bookshelf_0130.off +bookshelf/train/bookshelf_0131.off +bookshelf/train/bookshelf_0132.off +bookshelf/train/bookshelf_0133.off +bookshelf/train/bookshelf_0134.off +bookshelf/train/bookshelf_0135.off +bookshelf/train/bookshelf_0136.off +bookshelf/train/bookshelf_0137.off +bookshelf/train/bookshelf_0138.off +bookshelf/train/bookshelf_0139.off +bookshelf/train/bookshelf_0140.off +bookshelf/train/bookshelf_0141.off +bookshelf/train/bookshelf_0142.off +bookshelf/train/bookshelf_0143.off +bookshelf/train/bookshelf_0144.off +bookshelf/train/bookshelf_0145.off +bookshelf/train/bookshelf_0146.off +bookshelf/train/bookshelf_0147.off +bookshelf/train/bookshelf_0148.off +bookshelf/train/bookshelf_0149.off +bookshelf/train/bookshelf_0150.off +bookshelf/train/bookshelf_0151.off +bookshelf/train/bookshelf_0152.off +bookshelf/train/bookshelf_0153.off +bookshelf/train/bookshelf_0154.off +bookshelf/train/bookshelf_0155.off +bookshelf/train/bookshelf_0156.off +bookshelf/train/bookshelf_0157.off +bookshelf/train/bookshelf_0158.off +bookshelf/train/bookshelf_0159.off +bookshelf/train/bookshelf_0160.off +bookshelf/train/bookshelf_0161.off +bookshelf/train/bookshelf_0162.off +bookshelf/train/bookshelf_0163.off +bookshelf/train/bookshelf_0164.off +bookshelf/train/bookshelf_0165.off +bookshelf/train/bookshelf_0166.off +bookshelf/train/bookshelf_0167.off +bookshelf/train/bookshelf_0168.off +bookshelf/train/bookshelf_0169.off +bookshelf/train/bookshelf_0170.off +bookshelf/train/bookshelf_0171.off +bookshelf/train/bookshelf_0172.off +bookshelf/train/bookshelf_0173.off +bookshelf/train/bookshelf_0174.off +bookshelf/train/bookshelf_0175.off +bookshelf/train/bookshelf_0176.off +bookshelf/train/bookshelf_0177.off +bookshelf/train/bookshelf_0178.off +bookshelf/train/bookshelf_0179.off +bookshelf/train/bookshelf_0180.off +bookshelf/train/bookshelf_0181.off +bookshelf/train/bookshelf_0182.off +bookshelf/train/bookshelf_0183.off +bookshelf/train/bookshelf_0184.off +bookshelf/train/bookshelf_0185.off +bookshelf/train/bookshelf_0186.off +bookshelf/train/bookshelf_0187.off +bookshelf/train/bookshelf_0188.off +bookshelf/train/bookshelf_0189.off +bookshelf/train/bookshelf_0190.off +bookshelf/train/bookshelf_0191.off +bookshelf/train/bookshelf_0192.off +bookshelf/train/bookshelf_0193.off +bookshelf/train/bookshelf_0194.off +bookshelf/train/bookshelf_0195.off +bookshelf/train/bookshelf_0196.off +bookshelf/train/bookshelf_0197.off +bookshelf/train/bookshelf_0198.off +bookshelf/train/bookshelf_0199.off +bookshelf/train/bookshelf_0200.off +bookshelf/train/bookshelf_0201.off +bookshelf/train/bookshelf_0202.off +bookshelf/train/bookshelf_0203.off +bookshelf/train/bookshelf_0204.off +bookshelf/train/bookshelf_0205.off +bookshelf/train/bookshelf_0206.off +bookshelf/train/bookshelf_0207.off +bookshelf/train/bookshelf_0208.off +bookshelf/train/bookshelf_0209.off +bookshelf/train/bookshelf_0210.off +bookshelf/train/bookshelf_0211.off +bookshelf/train/bookshelf_0212.off +bookshelf/train/bookshelf_0213.off +bookshelf/train/bookshelf_0214.off +bookshelf/train/bookshelf_0215.off +bookshelf/train/bookshelf_0216.off +bookshelf/train/bookshelf_0217.off +bookshelf/train/bookshelf_0218.off +bookshelf/train/bookshelf_0219.off +bookshelf/train/bookshelf_0220.off +bookshelf/train/bookshelf_0221.off +bookshelf/train/bookshelf_0222.off +bookshelf/train/bookshelf_0223.off +bookshelf/train/bookshelf_0224.off +bookshelf/train/bookshelf_0225.off +bookshelf/train/bookshelf_0226.off +bookshelf/train/bookshelf_0227.off +bookshelf/train/bookshelf_0228.off +bookshelf/train/bookshelf_0229.off +bookshelf/train/bookshelf_0230.off +bookshelf/train/bookshelf_0231.off +bookshelf/train/bookshelf_0232.off +bookshelf/train/bookshelf_0233.off +bookshelf/train/bookshelf_0234.off +bookshelf/train/bookshelf_0235.off +bookshelf/train/bookshelf_0236.off +bookshelf/train/bookshelf_0237.off +bookshelf/train/bookshelf_0238.off +bookshelf/train/bookshelf_0239.off +bookshelf/train/bookshelf_0240.off +bookshelf/train/bookshelf_0241.off +bookshelf/train/bookshelf_0242.off +bookshelf/train/bookshelf_0243.off +bookshelf/train/bookshelf_0244.off +bookshelf/train/bookshelf_0245.off +bookshelf/train/bookshelf_0246.off +bookshelf/train/bookshelf_0247.off +bookshelf/train/bookshelf_0248.off +bookshelf/train/bookshelf_0249.off +bookshelf/train/bookshelf_0250.off +bookshelf/train/bookshelf_0251.off +bookshelf/train/bookshelf_0252.off +bookshelf/train/bookshelf_0253.off +bookshelf/train/bookshelf_0254.off +bookshelf/train/bookshelf_0255.off +bookshelf/train/bookshelf_0256.off +bookshelf/train/bookshelf_0257.off +bookshelf/train/bookshelf_0258.off +bookshelf/train/bookshelf_0259.off +bookshelf/train/bookshelf_0260.off +bookshelf/train/bookshelf_0261.off +bookshelf/train/bookshelf_0262.off +bookshelf/train/bookshelf_0263.off +bookshelf/train/bookshelf_0264.off +bookshelf/train/bookshelf_0265.off +bookshelf/train/bookshelf_0266.off +bookshelf/train/bookshelf_0267.off +bookshelf/train/bookshelf_0268.off +bookshelf/train/bookshelf_0269.off +bookshelf/train/bookshelf_0270.off +bookshelf/train/bookshelf_0271.off +bookshelf/train/bookshelf_0272.off +bookshelf/train/bookshelf_0273.off +bookshelf/train/bookshelf_0274.off +bookshelf/train/bookshelf_0275.off +bookshelf/train/bookshelf_0276.off +bookshelf/train/bookshelf_0277.off +bookshelf/train/bookshelf_0278.off +bookshelf/train/bookshelf_0279.off +bookshelf/train/bookshelf_0280.off +bookshelf/train/bookshelf_0281.off +bookshelf/train/bookshelf_0282.off +bookshelf/train/bookshelf_0283.off +bookshelf/train/bookshelf_0284.off +bookshelf/train/bookshelf_0285.off +bookshelf/train/bookshelf_0286.off +bookshelf/train/bookshelf_0287.off +bookshelf/train/bookshelf_0288.off +bookshelf/train/bookshelf_0289.off +bookshelf/train/bookshelf_0290.off +bookshelf/train/bookshelf_0291.off +bookshelf/train/bookshelf_0292.off +bookshelf/train/bookshelf_0293.off +bookshelf/train/bookshelf_0294.off +bookshelf/train/bookshelf_0295.off +bookshelf/train/bookshelf_0296.off +bookshelf/train/bookshelf_0297.off +bookshelf/train/bookshelf_0298.off +bookshelf/train/bookshelf_0299.off +bookshelf/train/bookshelf_0300.off +bookshelf/train/bookshelf_0301.off +bookshelf/train/bookshelf_0302.off +bookshelf/train/bookshelf_0303.off +bookshelf/train/bookshelf_0304.off +bookshelf/train/bookshelf_0305.off +bookshelf/train/bookshelf_0306.off +bookshelf/train/bookshelf_0307.off +bookshelf/train/bookshelf_0308.off +bookshelf/train/bookshelf_0309.off +bookshelf/train/bookshelf_0310.off +bookshelf/train/bookshelf_0311.off +bookshelf/train/bookshelf_0312.off +bookshelf/train/bookshelf_0313.off +bookshelf/train/bookshelf_0314.off +bookshelf/train/bookshelf_0315.off +bookshelf/train/bookshelf_0316.off +bookshelf/train/bookshelf_0317.off +bookshelf/train/bookshelf_0318.off +bookshelf/train/bookshelf_0319.off +bookshelf/train/bookshelf_0320.off +bookshelf/train/bookshelf_0321.off +bookshelf/train/bookshelf_0322.off +bookshelf/train/bookshelf_0323.off +bookshelf/train/bookshelf_0324.off +bookshelf/train/bookshelf_0325.off +bookshelf/train/bookshelf_0326.off +bookshelf/train/bookshelf_0327.off +bookshelf/train/bookshelf_0328.off +bookshelf/train/bookshelf_0329.off +bookshelf/train/bookshelf_0330.off +bookshelf/train/bookshelf_0331.off +bookshelf/train/bookshelf_0332.off +bookshelf/train/bookshelf_0333.off +bookshelf/train/bookshelf_0334.off +bookshelf/train/bookshelf_0335.off +bookshelf/train/bookshelf_0336.off +bookshelf/train/bookshelf_0337.off +bookshelf/train/bookshelf_0338.off +bookshelf/train/bookshelf_0339.off +bookshelf/train/bookshelf_0340.off +bookshelf/train/bookshelf_0341.off +bookshelf/train/bookshelf_0342.off +bookshelf/train/bookshelf_0343.off +bookshelf/train/bookshelf_0344.off +bookshelf/train/bookshelf_0345.off +bookshelf/train/bookshelf_0346.off +bookshelf/train/bookshelf_0347.off +bookshelf/train/bookshelf_0348.off +bookshelf/train/bookshelf_0349.off +bookshelf/train/bookshelf_0350.off +bookshelf/train/bookshelf_0351.off +bookshelf/train/bookshelf_0352.off +bookshelf/train/bookshelf_0353.off +bookshelf/train/bookshelf_0354.off +bookshelf/train/bookshelf_0355.off +bookshelf/train/bookshelf_0356.off +bookshelf/train/bookshelf_0357.off +bookshelf/train/bookshelf_0358.off +bookshelf/train/bookshelf_0359.off +bookshelf/train/bookshelf_0360.off +bookshelf/train/bookshelf_0361.off +bookshelf/train/bookshelf_0362.off +bookshelf/train/bookshelf_0363.off +bookshelf/train/bookshelf_0364.off +bookshelf/train/bookshelf_0365.off +bookshelf/train/bookshelf_0366.off +bookshelf/train/bookshelf_0367.off +bookshelf/train/bookshelf_0368.off +bookshelf/train/bookshelf_0369.off +bookshelf/train/bookshelf_0370.off +bookshelf/train/bookshelf_0371.off +bookshelf/train/bookshelf_0372.off +bookshelf/train/bookshelf_0373.off +bookshelf/train/bookshelf_0374.off +bookshelf/train/bookshelf_0375.off +bookshelf/train/bookshelf_0376.off +bookshelf/train/bookshelf_0377.off +bookshelf/train/bookshelf_0378.off +bookshelf/train/bookshelf_0379.off +bookshelf/train/bookshelf_0380.off +bookshelf/train/bookshelf_0381.off +bookshelf/train/bookshelf_0382.off +bookshelf/train/bookshelf_0383.off +bookshelf/train/bookshelf_0384.off +bookshelf/train/bookshelf_0385.off +bookshelf/train/bookshelf_0386.off +bookshelf/train/bookshelf_0387.off +bookshelf/train/bookshelf_0388.off +bookshelf/train/bookshelf_0389.off +bookshelf/train/bookshelf_0390.off +bookshelf/train/bookshelf_0391.off +bookshelf/train/bookshelf_0392.off +bookshelf/train/bookshelf_0393.off +bookshelf/train/bookshelf_0394.off +bookshelf/train/bookshelf_0395.off +bookshelf/train/bookshelf_0396.off +bookshelf/train/bookshelf_0397.off +bookshelf/train/bookshelf_0398.off +bookshelf/train/bookshelf_0399.off +bookshelf/train/bookshelf_0400.off +bookshelf/train/bookshelf_0401.off +bookshelf/train/bookshelf_0402.off +bookshelf/train/bookshelf_0403.off +bookshelf/train/bookshelf_0404.off +bookshelf/train/bookshelf_0405.off +bookshelf/train/bookshelf_0406.off +bookshelf/train/bookshelf_0407.off +bookshelf/train/bookshelf_0408.off +bookshelf/train/bookshelf_0409.off +bookshelf/train/bookshelf_0410.off +bookshelf/train/bookshelf_0411.off +bookshelf/train/bookshelf_0412.off +bookshelf/train/bookshelf_0413.off +bookshelf/train/bookshelf_0414.off +bookshelf/train/bookshelf_0415.off +bookshelf/train/bookshelf_0416.off +bookshelf/train/bookshelf_0417.off +bookshelf/train/bookshelf_0418.off +bookshelf/train/bookshelf_0419.off +bookshelf/train/bookshelf_0420.off +bookshelf/train/bookshelf_0421.off +bookshelf/train/bookshelf_0422.off +bookshelf/train/bookshelf_0423.off +bookshelf/train/bookshelf_0424.off +bookshelf/train/bookshelf_0425.off +bookshelf/train/bookshelf_0426.off +bookshelf/train/bookshelf_0427.off +bookshelf/train/bookshelf_0428.off +bookshelf/train/bookshelf_0429.off +bookshelf/train/bookshelf_0430.off +bookshelf/train/bookshelf_0431.off +bookshelf/train/bookshelf_0432.off +bookshelf/train/bookshelf_0433.off +bookshelf/train/bookshelf_0434.off +bookshelf/train/bookshelf_0435.off +bookshelf/train/bookshelf_0436.off +bookshelf/train/bookshelf_0437.off +bookshelf/train/bookshelf_0438.off +bookshelf/train/bookshelf_0439.off +bookshelf/train/bookshelf_0440.off +bookshelf/train/bookshelf_0441.off +bookshelf/train/bookshelf_0442.off +bookshelf/train/bookshelf_0443.off +bookshelf/train/bookshelf_0444.off +bookshelf/train/bookshelf_0445.off +bookshelf/train/bookshelf_0446.off +bookshelf/train/bookshelf_0447.off +bookshelf/train/bookshelf_0448.off +bookshelf/train/bookshelf_0449.off +bookshelf/train/bookshelf_0450.off +bookshelf/train/bookshelf_0451.off +bookshelf/train/bookshelf_0452.off +bookshelf/train/bookshelf_0453.off +bookshelf/train/bookshelf_0454.off +bookshelf/train/bookshelf_0455.off +bookshelf/train/bookshelf_0456.off +bookshelf/train/bookshelf_0457.off +bookshelf/train/bookshelf_0458.off +bookshelf/train/bookshelf_0459.off +bookshelf/train/bookshelf_0460.off +bookshelf/train/bookshelf_0461.off +bookshelf/train/bookshelf_0462.off +bookshelf/train/bookshelf_0463.off +bookshelf/train/bookshelf_0464.off +bookshelf/train/bookshelf_0465.off +bookshelf/train/bookshelf_0466.off +bookshelf/train/bookshelf_0467.off +bookshelf/train/bookshelf_0468.off +bookshelf/train/bookshelf_0469.off +bookshelf/train/bookshelf_0470.off +bookshelf/train/bookshelf_0471.off +bookshelf/train/bookshelf_0472.off +bookshelf/train/bookshelf_0473.off +bookshelf/train/bookshelf_0474.off +bookshelf/train/bookshelf_0475.off +bookshelf/train/bookshelf_0476.off +bookshelf/train/bookshelf_0477.off +bookshelf/train/bookshelf_0478.off +bookshelf/train/bookshelf_0479.off +bookshelf/train/bookshelf_0480.off +bookshelf/train/bookshelf_0481.off +bookshelf/train/bookshelf_0482.off +bookshelf/train/bookshelf_0483.off +bookshelf/train/bookshelf_0484.off +bookshelf/train/bookshelf_0485.off +bookshelf/train/bookshelf_0486.off +bookshelf/train/bookshelf_0487.off +bookshelf/train/bookshelf_0488.off +bookshelf/train/bookshelf_0489.off +bookshelf/train/bookshelf_0490.off +bookshelf/train/bookshelf_0491.off +bookshelf/train/bookshelf_0492.off +bookshelf/train/bookshelf_0493.off +bookshelf/train/bookshelf_0494.off +bookshelf/train/bookshelf_0495.off +bookshelf/train/bookshelf_0496.off +bookshelf/train/bookshelf_0497.off +bookshelf/train/bookshelf_0498.off +bookshelf/train/bookshelf_0499.off +bookshelf/train/bookshelf_0500.off +bookshelf/train/bookshelf_0501.off +bookshelf/train/bookshelf_0502.off +bookshelf/train/bookshelf_0503.off +bookshelf/train/bookshelf_0504.off +bookshelf/train/bookshelf_0505.off +bookshelf/train/bookshelf_0506.off +bookshelf/train/bookshelf_0507.off +bookshelf/train/bookshelf_0508.off +bookshelf/train/bookshelf_0509.off +bookshelf/train/bookshelf_0510.off +bookshelf/train/bookshelf_0511.off +bookshelf/train/bookshelf_0512.off +bookshelf/train/bookshelf_0513.off +bookshelf/train/bookshelf_0514.off +bookshelf/train/bookshelf_0515.off +guitar/train/guitar_0001.off +guitar/train/guitar_0002.off +guitar/train/guitar_0003.off +guitar/train/guitar_0004.off +guitar/train/guitar_0005.off +guitar/train/guitar_0006.off +guitar/train/guitar_0007.off +guitar/train/guitar_0008.off +guitar/train/guitar_0009.off +guitar/train/guitar_0010.off +guitar/train/guitar_0011.off +guitar/train/guitar_0012.off +guitar/train/guitar_0013.off +guitar/train/guitar_0014.off +guitar/train/guitar_0015.off +guitar/train/guitar_0016.off +guitar/train/guitar_0017.off +guitar/train/guitar_0018.off +guitar/train/guitar_0019.off +guitar/train/guitar_0020.off +guitar/train/guitar_0021.off +guitar/train/guitar_0022.off +guitar/train/guitar_0023.off +guitar/train/guitar_0024.off +guitar/train/guitar_0025.off +guitar/train/guitar_0026.off +guitar/train/guitar_0027.off +guitar/train/guitar_0028.off +guitar/train/guitar_0029.off +guitar/train/guitar_0030.off +guitar/train/guitar_0031.off +guitar/train/guitar_0032.off +guitar/train/guitar_0033.off +guitar/train/guitar_0034.off +guitar/train/guitar_0035.off +guitar/train/guitar_0036.off +guitar/train/guitar_0037.off +guitar/train/guitar_0038.off +guitar/train/guitar_0039.off +guitar/train/guitar_0040.off +guitar/train/guitar_0041.off +guitar/train/guitar_0042.off +guitar/train/guitar_0043.off +guitar/train/guitar_0044.off +guitar/train/guitar_0045.off +guitar/train/guitar_0046.off +guitar/train/guitar_0047.off +guitar/train/guitar_0048.off +guitar/train/guitar_0049.off +guitar/train/guitar_0050.off +guitar/train/guitar_0051.off +guitar/train/guitar_0052.off +guitar/train/guitar_0053.off +guitar/train/guitar_0054.off +guitar/train/guitar_0055.off +guitar/train/guitar_0056.off +guitar/train/guitar_0057.off +guitar/train/guitar_0058.off +guitar/train/guitar_0059.off +guitar/train/guitar_0060.off +guitar/train/guitar_0061.off +guitar/train/guitar_0062.off +guitar/train/guitar_0063.off +guitar/train/guitar_0064.off +guitar/train/guitar_0065.off +guitar/train/guitar_0066.off +guitar/train/guitar_0067.off +guitar/train/guitar_0068.off +guitar/train/guitar_0069.off +guitar/train/guitar_0070.off +guitar/train/guitar_0071.off +guitar/train/guitar_0072.off +guitar/train/guitar_0073.off +guitar/train/guitar_0074.off +guitar/train/guitar_0075.off +guitar/train/guitar_0076.off +guitar/train/guitar_0077.off +guitar/train/guitar_0078.off +guitar/train/guitar_0079.off +guitar/train/guitar_0080.off +guitar/train/guitar_0081.off +guitar/train/guitar_0082.off +guitar/train/guitar_0083.off +guitar/train/guitar_0084.off +guitar/train/guitar_0085.off +guitar/train/guitar_0086.off +guitar/train/guitar_0087.off +guitar/train/guitar_0088.off +guitar/train/guitar_0089.off +guitar/train/guitar_0090.off +guitar/train/guitar_0091.off +guitar/train/guitar_0092.off +guitar/train/guitar_0093.off +guitar/train/guitar_0094.off +guitar/train/guitar_0095.off +guitar/train/guitar_0096.off +guitar/train/guitar_0097.off +guitar/train/guitar_0098.off +guitar/train/guitar_0099.off +guitar/train/guitar_0100.off +guitar/train/guitar_0101.off +guitar/train/guitar_0102.off +guitar/train/guitar_0103.off +guitar/train/guitar_0104.off +guitar/train/guitar_0105.off +guitar/train/guitar_0106.off +guitar/train/guitar_0107.off +guitar/train/guitar_0108.off +guitar/train/guitar_0109.off +guitar/train/guitar_0110.off +guitar/train/guitar_0111.off +guitar/train/guitar_0112.off +guitar/train/guitar_0113.off +guitar/train/guitar_0114.off +guitar/train/guitar_0115.off +guitar/train/guitar_0116.off +guitar/train/guitar_0117.off +guitar/train/guitar_0118.off +guitar/train/guitar_0119.off +guitar/train/guitar_0120.off +guitar/train/guitar_0121.off +guitar/train/guitar_0122.off +guitar/train/guitar_0123.off +guitar/train/guitar_0124.off +guitar/train/guitar_0125.off +guitar/train/guitar_0126.off +guitar/train/guitar_0127.off +guitar/train/guitar_0128.off +guitar/train/guitar_0129.off +guitar/train/guitar_0130.off +guitar/train/guitar_0131.off +guitar/train/guitar_0132.off +guitar/train/guitar_0133.off +guitar/train/guitar_0134.off +guitar/train/guitar_0135.off +guitar/train/guitar_0136.off +guitar/train/guitar_0137.off +guitar/train/guitar_0138.off +guitar/train/guitar_0139.off +guitar/train/guitar_0140.off +tv_stand/train/tv_stand_0001.off +tv_stand/train/tv_stand_0002.off +tv_stand/train/tv_stand_0003.off +tv_stand/train/tv_stand_0004.off +tv_stand/train/tv_stand_0005.off +tv_stand/train/tv_stand_0006.off +tv_stand/train/tv_stand_0007.off +tv_stand/train/tv_stand_0008.off +tv_stand/train/tv_stand_0009.off +tv_stand/train/tv_stand_0010.off +tv_stand/train/tv_stand_0011.off +tv_stand/train/tv_stand_0012.off +tv_stand/train/tv_stand_0013.off +tv_stand/train/tv_stand_0014.off +tv_stand/train/tv_stand_0015.off +tv_stand/train/tv_stand_0016.off +tv_stand/train/tv_stand_0017.off +tv_stand/train/tv_stand_0018.off +tv_stand/train/tv_stand_0019.off +tv_stand/train/tv_stand_0020.off +tv_stand/train/tv_stand_0021.off +tv_stand/train/tv_stand_0022.off +tv_stand/train/tv_stand_0023.off +tv_stand/train/tv_stand_0024.off +tv_stand/train/tv_stand_0025.off +tv_stand/train/tv_stand_0026.off +tv_stand/train/tv_stand_0027.off +tv_stand/train/tv_stand_0028.off +tv_stand/train/tv_stand_0029.off +tv_stand/train/tv_stand_0030.off +tv_stand/train/tv_stand_0031.off +tv_stand/train/tv_stand_0032.off +tv_stand/train/tv_stand_0033.off +tv_stand/train/tv_stand_0034.off +tv_stand/train/tv_stand_0035.off +tv_stand/train/tv_stand_0036.off +tv_stand/train/tv_stand_0037.off +tv_stand/train/tv_stand_0038.off +tv_stand/train/tv_stand_0039.off +tv_stand/train/tv_stand_0040.off +tv_stand/train/tv_stand_0041.off +tv_stand/train/tv_stand_0042.off +tv_stand/train/tv_stand_0043.off +tv_stand/train/tv_stand_0044.off +tv_stand/train/tv_stand_0045.off +tv_stand/train/tv_stand_0046.off +tv_stand/train/tv_stand_0047.off +tv_stand/train/tv_stand_0048.off +tv_stand/train/tv_stand_0049.off +tv_stand/train/tv_stand_0050.off +tv_stand/train/tv_stand_0051.off +tv_stand/train/tv_stand_0052.off +tv_stand/train/tv_stand_0053.off +tv_stand/train/tv_stand_0054.off +tv_stand/train/tv_stand_0055.off +tv_stand/train/tv_stand_0056.off +tv_stand/train/tv_stand_0057.off +tv_stand/train/tv_stand_0058.off +tv_stand/train/tv_stand_0059.off +tv_stand/train/tv_stand_0060.off +tv_stand/train/tv_stand_0061.off +tv_stand/train/tv_stand_0062.off +tv_stand/train/tv_stand_0063.off +tv_stand/train/tv_stand_0064.off +tv_stand/train/tv_stand_0065.off +tv_stand/train/tv_stand_0066.off +tv_stand/train/tv_stand_0067.off +tv_stand/train/tv_stand_0068.off +tv_stand/train/tv_stand_0069.off +tv_stand/train/tv_stand_0070.off +tv_stand/train/tv_stand_0071.off +tv_stand/train/tv_stand_0072.off +tv_stand/train/tv_stand_0073.off +tv_stand/train/tv_stand_0074.off +tv_stand/train/tv_stand_0075.off +tv_stand/train/tv_stand_0076.off +tv_stand/train/tv_stand_0077.off +tv_stand/train/tv_stand_0078.off +tv_stand/train/tv_stand_0079.off +tv_stand/train/tv_stand_0080.off +tv_stand/train/tv_stand_0081.off +tv_stand/train/tv_stand_0082.off +tv_stand/train/tv_stand_0083.off +tv_stand/train/tv_stand_0084.off +tv_stand/train/tv_stand_0085.off +tv_stand/train/tv_stand_0086.off +tv_stand/train/tv_stand_0087.off +tv_stand/train/tv_stand_0088.off +tv_stand/train/tv_stand_0089.off +tv_stand/train/tv_stand_0090.off +tv_stand/train/tv_stand_0091.off +tv_stand/train/tv_stand_0092.off +tv_stand/train/tv_stand_0093.off +tv_stand/train/tv_stand_0094.off +tv_stand/train/tv_stand_0095.off +tv_stand/train/tv_stand_0096.off +tv_stand/train/tv_stand_0097.off +tv_stand/train/tv_stand_0098.off +tv_stand/train/tv_stand_0099.off +tv_stand/train/tv_stand_0100.off +tv_stand/train/tv_stand_0101.off +tv_stand/train/tv_stand_0102.off +tv_stand/train/tv_stand_0103.off +tv_stand/train/tv_stand_0104.off +tv_stand/train/tv_stand_0105.off +tv_stand/train/tv_stand_0106.off +tv_stand/train/tv_stand_0107.off +tv_stand/train/tv_stand_0108.off +tv_stand/train/tv_stand_0109.off +tv_stand/train/tv_stand_0110.off +tv_stand/train/tv_stand_0111.off +tv_stand/train/tv_stand_0112.off +tv_stand/train/tv_stand_0113.off +tv_stand/train/tv_stand_0114.off +tv_stand/train/tv_stand_0115.off +tv_stand/train/tv_stand_0116.off +tv_stand/train/tv_stand_0117.off +tv_stand/train/tv_stand_0118.off +tv_stand/train/tv_stand_0119.off +tv_stand/train/tv_stand_0120.off +tv_stand/train/tv_stand_0121.off +tv_stand/train/tv_stand_0122.off +tv_stand/train/tv_stand_0123.off +tv_stand/train/tv_stand_0124.off +tv_stand/train/tv_stand_0125.off +tv_stand/train/tv_stand_0126.off +tv_stand/train/tv_stand_0127.off +tv_stand/train/tv_stand_0128.off +tv_stand/train/tv_stand_0129.off +tv_stand/train/tv_stand_0130.off +tv_stand/train/tv_stand_0131.off +tv_stand/train/tv_stand_0132.off +tv_stand/train/tv_stand_0133.off +tv_stand/train/tv_stand_0134.off +tv_stand/train/tv_stand_0135.off +tv_stand/train/tv_stand_0136.off +tv_stand/train/tv_stand_0137.off +tv_stand/train/tv_stand_0138.off +tv_stand/train/tv_stand_0139.off +tv_stand/train/tv_stand_0140.off +tv_stand/train/tv_stand_0141.off +tv_stand/train/tv_stand_0142.off +tv_stand/train/tv_stand_0143.off +tv_stand/train/tv_stand_0144.off +tv_stand/train/tv_stand_0145.off +tv_stand/train/tv_stand_0146.off +tv_stand/train/tv_stand_0147.off +tv_stand/train/tv_stand_0148.off +tv_stand/train/tv_stand_0149.off +tv_stand/train/tv_stand_0150.off +tv_stand/train/tv_stand_0151.off +tv_stand/train/tv_stand_0152.off +tv_stand/train/tv_stand_0153.off +tv_stand/train/tv_stand_0154.off +tv_stand/train/tv_stand_0155.off +tv_stand/train/tv_stand_0156.off +tv_stand/train/tv_stand_0157.off +tv_stand/train/tv_stand_0158.off +tv_stand/train/tv_stand_0159.off +tv_stand/train/tv_stand_0160.off +tv_stand/train/tv_stand_0161.off +tv_stand/train/tv_stand_0162.off +tv_stand/train/tv_stand_0163.off +tv_stand/train/tv_stand_0164.off +tv_stand/train/tv_stand_0165.off +tv_stand/train/tv_stand_0166.off +tv_stand/train/tv_stand_0167.off +tv_stand/train/tv_stand_0168.off +tv_stand/train/tv_stand_0169.off +tv_stand/train/tv_stand_0170.off +tv_stand/train/tv_stand_0171.off +tv_stand/train/tv_stand_0172.off +tv_stand/train/tv_stand_0173.off +tv_stand/train/tv_stand_0174.off +tv_stand/train/tv_stand_0175.off +tv_stand/train/tv_stand_0176.off +tv_stand/train/tv_stand_0177.off +tv_stand/train/tv_stand_0178.off +tv_stand/train/tv_stand_0179.off +tv_stand/train/tv_stand_0180.off +tv_stand/train/tv_stand_0181.off +tv_stand/train/tv_stand_0182.off +tv_stand/train/tv_stand_0183.off +tv_stand/train/tv_stand_0184.off +tv_stand/train/tv_stand_0185.off +tv_stand/train/tv_stand_0186.off +tv_stand/train/tv_stand_0187.off +tv_stand/train/tv_stand_0188.off +tv_stand/train/tv_stand_0189.off +tv_stand/train/tv_stand_0190.off +tv_stand/train/tv_stand_0191.off +tv_stand/train/tv_stand_0192.off +tv_stand/train/tv_stand_0193.off +tv_stand/train/tv_stand_0194.off +tv_stand/train/tv_stand_0195.off +tv_stand/train/tv_stand_0196.off +tv_stand/train/tv_stand_0197.off +tv_stand/train/tv_stand_0198.off +tv_stand/train/tv_stand_0199.off +tv_stand/train/tv_stand_0200.off +tv_stand/train/tv_stand_0201.off +tv_stand/train/tv_stand_0202.off +tv_stand/train/tv_stand_0203.off +tv_stand/train/tv_stand_0204.off +tv_stand/train/tv_stand_0205.off +tv_stand/train/tv_stand_0206.off +tv_stand/train/tv_stand_0207.off +tv_stand/train/tv_stand_0208.off +tv_stand/train/tv_stand_0209.off +tv_stand/train/tv_stand_0210.off +tv_stand/train/tv_stand_0211.off +tv_stand/train/tv_stand_0212.off +tv_stand/train/tv_stand_0213.off +tv_stand/train/tv_stand_0214.off +tv_stand/train/tv_stand_0215.off +tv_stand/train/tv_stand_0216.off +tv_stand/train/tv_stand_0217.off +tv_stand/train/tv_stand_0218.off +tv_stand/train/tv_stand_0219.off +tv_stand/train/tv_stand_0220.off +tv_stand/train/tv_stand_0221.off +tv_stand/train/tv_stand_0222.off +tv_stand/train/tv_stand_0223.off +tv_stand/train/tv_stand_0224.off +tv_stand/train/tv_stand_0225.off +tv_stand/train/tv_stand_0226.off +tv_stand/train/tv_stand_0227.off +tv_stand/train/tv_stand_0228.off +tv_stand/train/tv_stand_0229.off +tv_stand/train/tv_stand_0230.off +tv_stand/train/tv_stand_0231.off +tv_stand/train/tv_stand_0232.off +tv_stand/train/tv_stand_0233.off +tv_stand/train/tv_stand_0234.off +tv_stand/train/tv_stand_0235.off +tv_stand/train/tv_stand_0236.off +tv_stand/train/tv_stand_0237.off +tv_stand/train/tv_stand_0238.off +tv_stand/train/tv_stand_0239.off +tv_stand/train/tv_stand_0240.off +tv_stand/train/tv_stand_0241.off +bathtub/train/bathtub_0001.off +bathtub/train/bathtub_0002.off +bathtub/train/bathtub_0003.off +bathtub/train/bathtub_0004.off +bathtub/train/bathtub_0005.off +bathtub/train/bathtub_0006.off +bathtub/train/bathtub_0007.off +bathtub/train/bathtub_0008.off +bathtub/train/bathtub_0009.off +bathtub/train/bathtub_0010.off +bathtub/train/bathtub_0011.off +bathtub/train/bathtub_0012.off +bathtub/train/bathtub_0013.off +bathtub/train/bathtub_0014.off +bathtub/train/bathtub_0015.off +bathtub/train/bathtub_0016.off +bathtub/train/bathtub_0017.off +bathtub/train/bathtub_0018.off +bathtub/train/bathtub_0019.off +bathtub/train/bathtub_0020.off +bathtub/train/bathtub_0021.off +bathtub/train/bathtub_0022.off +bathtub/train/bathtub_0023.off +bathtub/train/bathtub_0024.off +bathtub/train/bathtub_0025.off +bathtub/train/bathtub_0026.off +bathtub/train/bathtub_0027.off +bathtub/train/bathtub_0028.off +bathtub/train/bathtub_0029.off +bathtub/train/bathtub_0030.off +bathtub/train/bathtub_0031.off +bathtub/train/bathtub_0032.off +bathtub/train/bathtub_0033.off +bathtub/train/bathtub_0034.off +bathtub/train/bathtub_0035.off +bathtub/train/bathtub_0036.off +bathtub/train/bathtub_0037.off +bathtub/train/bathtub_0038.off +bathtub/train/bathtub_0039.off +bathtub/train/bathtub_0040.off +bathtub/train/bathtub_0041.off +bathtub/train/bathtub_0042.off +bathtub/train/bathtub_0043.off +bathtub/train/bathtub_0044.off +bathtub/train/bathtub_0045.off +bathtub/train/bathtub_0046.off +bathtub/train/bathtub_0047.off +bathtub/train/bathtub_0048.off +bathtub/train/bathtub_0049.off +bathtub/train/bathtub_0050.off +bathtub/train/bathtub_0051.off +bathtub/train/bathtub_0052.off +bathtub/train/bathtub_0053.off +bathtub/train/bathtub_0054.off +bathtub/train/bathtub_0055.off +bathtub/train/bathtub_0056.off +bathtub/train/bathtub_0057.off +bathtub/train/bathtub_0058.off +bathtub/train/bathtub_0059.off +bathtub/train/bathtub_0060.off +bathtub/train/bathtub_0061.off +bathtub/train/bathtub_0062.off +bathtub/train/bathtub_0063.off +bathtub/train/bathtub_0064.off +bathtub/train/bathtub_0065.off +bathtub/train/bathtub_0066.off +bathtub/train/bathtub_0067.off +bathtub/train/bathtub_0068.off +bathtub/train/bathtub_0069.off +bathtub/train/bathtub_0070.off +bathtub/train/bathtub_0071.off +bathtub/train/bathtub_0072.off +bathtub/train/bathtub_0073.off +bathtub/train/bathtub_0074.off +bathtub/train/bathtub_0075.off +bathtub/train/bathtub_0076.off +bathtub/train/bathtub_0077.off +bathtub/train/bathtub_0078.off +bathtub/train/bathtub_0079.off +bathtub/train/bathtub_0080.off +bathtub/train/bathtub_0081.off +bathtub/train/bathtub_0082.off +bathtub/train/bathtub_0083.off +bathtub/train/bathtub_0084.off +bathtub/train/bathtub_0085.off +bathtub/train/bathtub_0086.off +bathtub/train/bathtub_0087.off +bathtub/train/bathtub_0088.off +bathtub/train/bathtub_0089.off +bathtub/train/bathtub_0090.off +bathtub/train/bathtub_0091.off +bathtub/train/bathtub_0092.off +bathtub/train/bathtub_0093.off +bathtub/train/bathtub_0094.off +bathtub/train/bathtub_0095.off +bathtub/train/bathtub_0096.off +monitor/train/monitor_0001.off +monitor/train/monitor_0002.off +monitor/train/monitor_0003.off +monitor/train/monitor_0004.off +monitor/train/monitor_0005.off +monitor/train/monitor_0006.off +monitor/train/monitor_0007.off +monitor/train/monitor_0008.off +monitor/train/monitor_0009.off +monitor/train/monitor_0010.off +monitor/train/monitor_0011.off +monitor/train/monitor_0012.off +monitor/train/monitor_0013.off +monitor/train/monitor_0014.off +monitor/train/monitor_0015.off +monitor/train/monitor_0016.off +monitor/train/monitor_0017.off +monitor/train/monitor_0018.off +monitor/train/monitor_0019.off +monitor/train/monitor_0020.off +monitor/train/monitor_0021.off +monitor/train/monitor_0022.off +monitor/train/monitor_0023.off +monitor/train/monitor_0024.off +monitor/train/monitor_0025.off +monitor/train/monitor_0026.off +monitor/train/monitor_0027.off +monitor/train/monitor_0028.off +monitor/train/monitor_0029.off +monitor/train/monitor_0030.off +monitor/train/monitor_0031.off +monitor/train/monitor_0032.off +monitor/train/monitor_0033.off +monitor/train/monitor_0034.off +monitor/train/monitor_0035.off +monitor/train/monitor_0036.off +monitor/train/monitor_0037.off +monitor/train/monitor_0038.off +monitor/train/monitor_0039.off +monitor/train/monitor_0040.off +monitor/train/monitor_0041.off +monitor/train/monitor_0042.off +monitor/train/monitor_0043.off +monitor/train/monitor_0044.off +monitor/train/monitor_0045.off +monitor/train/monitor_0046.off +monitor/train/monitor_0047.off +monitor/train/monitor_0048.off +monitor/train/monitor_0049.off +monitor/train/monitor_0050.off +monitor/train/monitor_0051.off +monitor/train/monitor_0052.off +monitor/train/monitor_0053.off +monitor/train/monitor_0054.off +monitor/train/monitor_0055.off +monitor/train/monitor_0056.off +monitor/train/monitor_0057.off +monitor/train/monitor_0058.off +monitor/train/monitor_0059.off +monitor/train/monitor_0060.off +monitor/train/monitor_0061.off +monitor/train/monitor_0062.off +monitor/train/monitor_0063.off +monitor/train/monitor_0064.off +monitor/train/monitor_0065.off +monitor/train/monitor_0066.off +monitor/train/monitor_0067.off +monitor/train/monitor_0068.off +monitor/train/monitor_0069.off +monitor/train/monitor_0070.off +monitor/train/monitor_0071.off +monitor/train/monitor_0072.off +monitor/train/monitor_0073.off +monitor/train/monitor_0074.off +monitor/train/monitor_0075.off +monitor/train/monitor_0076.off +monitor/train/monitor_0077.off +monitor/train/monitor_0078.off +monitor/train/monitor_0079.off +monitor/train/monitor_0080.off +monitor/train/monitor_0081.off +monitor/train/monitor_0082.off +monitor/train/monitor_0083.off +monitor/train/monitor_0084.off +monitor/train/monitor_0085.off +monitor/train/monitor_0086.off +monitor/train/monitor_0087.off +monitor/train/monitor_0088.off +monitor/train/monitor_0089.off +monitor/train/monitor_0090.off +monitor/train/monitor_0091.off +monitor/train/monitor_0092.off +monitor/train/monitor_0093.off +monitor/train/monitor_0094.off +monitor/train/monitor_0095.off +monitor/train/monitor_0096.off +monitor/train/monitor_0097.off +monitor/train/monitor_0098.off +monitor/train/monitor_0099.off +monitor/train/monitor_0100.off +monitor/train/monitor_0101.off +monitor/train/monitor_0102.off +monitor/train/monitor_0103.off +monitor/train/monitor_0104.off +monitor/train/monitor_0105.off +monitor/train/monitor_0106.off +monitor/train/monitor_0107.off +monitor/train/monitor_0108.off +monitor/train/monitor_0109.off +monitor/train/monitor_0110.off +monitor/train/monitor_0111.off +monitor/train/monitor_0112.off +monitor/train/monitor_0113.off +monitor/train/monitor_0114.off +monitor/train/monitor_0115.off +monitor/train/monitor_0116.off +monitor/train/monitor_0117.off +monitor/train/monitor_0118.off +monitor/train/monitor_0119.off +monitor/train/monitor_0120.off +monitor/train/monitor_0121.off +monitor/train/monitor_0122.off +monitor/train/monitor_0123.off +monitor/train/monitor_0124.off +monitor/train/monitor_0125.off +monitor/train/monitor_0126.off +monitor/train/monitor_0127.off +monitor/train/monitor_0128.off +monitor/train/monitor_0129.off +monitor/train/monitor_0130.off +monitor/train/monitor_0131.off +monitor/train/monitor_0132.off +monitor/train/monitor_0133.off +monitor/train/monitor_0134.off +monitor/train/monitor_0135.off +monitor/train/monitor_0136.off +monitor/train/monitor_0137.off +monitor/train/monitor_0138.off +monitor/train/monitor_0139.off +monitor/train/monitor_0140.off +monitor/train/monitor_0141.off +monitor/train/monitor_0142.off +monitor/train/monitor_0143.off +monitor/train/monitor_0144.off +monitor/train/monitor_0145.off +monitor/train/monitor_0146.off +monitor/train/monitor_0147.off +monitor/train/monitor_0148.off +monitor/train/monitor_0149.off +monitor/train/monitor_0150.off +monitor/train/monitor_0151.off +monitor/train/monitor_0152.off +monitor/train/monitor_0153.off +monitor/train/monitor_0154.off +monitor/train/monitor_0155.off +monitor/train/monitor_0156.off +monitor/train/monitor_0157.off +monitor/train/monitor_0158.off +monitor/train/monitor_0159.off +monitor/train/monitor_0160.off +monitor/train/monitor_0161.off +monitor/train/monitor_0162.off +monitor/train/monitor_0163.off +monitor/train/monitor_0164.off +monitor/train/monitor_0165.off +monitor/train/monitor_0166.off +monitor/train/monitor_0167.off +monitor/train/monitor_0168.off +monitor/train/monitor_0169.off +monitor/train/monitor_0170.off +monitor/train/monitor_0171.off +monitor/train/monitor_0172.off +monitor/train/monitor_0173.off +monitor/train/monitor_0174.off +monitor/train/monitor_0175.off +monitor/train/monitor_0176.off +monitor/train/monitor_0177.off +monitor/train/monitor_0178.off +monitor/train/monitor_0179.off +monitor/train/monitor_0180.off +monitor/train/monitor_0181.off +monitor/train/monitor_0182.off +monitor/train/monitor_0183.off +monitor/train/monitor_0184.off +monitor/train/monitor_0185.off +monitor/train/monitor_0186.off +monitor/train/monitor_0187.off +monitor/train/monitor_0188.off +monitor/train/monitor_0189.off +monitor/train/monitor_0190.off +monitor/train/monitor_0191.off +monitor/train/monitor_0192.off +monitor/train/monitor_0193.off +monitor/train/monitor_0194.off +monitor/train/monitor_0195.off +monitor/train/monitor_0196.off +monitor/train/monitor_0197.off +monitor/train/monitor_0198.off +monitor/train/monitor_0199.off +monitor/train/monitor_0200.off +monitor/train/monitor_0201.off +monitor/train/monitor_0202.off +monitor/train/monitor_0203.off +monitor/train/monitor_0204.off +monitor/train/monitor_0205.off +monitor/train/monitor_0206.off +monitor/train/monitor_0207.off +monitor/train/monitor_0208.off +monitor/train/monitor_0209.off +monitor/train/monitor_0210.off +monitor/train/monitor_0211.off +monitor/train/monitor_0212.off +monitor/train/monitor_0213.off +monitor/train/monitor_0214.off +monitor/train/monitor_0215.off +monitor/train/monitor_0216.off +monitor/train/monitor_0217.off +monitor/train/monitor_0218.off +monitor/train/monitor_0219.off +monitor/train/monitor_0220.off +monitor/train/monitor_0221.off +monitor/train/monitor_0222.off +monitor/train/monitor_0223.off +monitor/train/monitor_0224.off +monitor/train/monitor_0225.off +monitor/train/monitor_0226.off +monitor/train/monitor_0227.off +monitor/train/monitor_0228.off +monitor/train/monitor_0229.off +monitor/train/monitor_0230.off +monitor/train/monitor_0231.off +monitor/train/monitor_0232.off +monitor/train/monitor_0233.off +monitor/train/monitor_0234.off +monitor/train/monitor_0235.off +monitor/train/monitor_0236.off +monitor/train/monitor_0237.off +monitor/train/monitor_0238.off +monitor/train/monitor_0239.off +monitor/train/monitor_0240.off +monitor/train/monitor_0241.off +monitor/train/monitor_0242.off +monitor/train/monitor_0243.off +monitor/train/monitor_0244.off +monitor/train/monitor_0245.off +monitor/train/monitor_0246.off +monitor/train/monitor_0247.off +monitor/train/monitor_0248.off +monitor/train/monitor_0249.off +monitor/train/monitor_0250.off +monitor/train/monitor_0251.off +monitor/train/monitor_0252.off +monitor/train/monitor_0253.off +monitor/train/monitor_0254.off +monitor/train/monitor_0255.off +monitor/train/monitor_0256.off +monitor/train/monitor_0257.off +monitor/train/monitor_0258.off +monitor/train/monitor_0259.off +monitor/train/monitor_0260.off +monitor/train/monitor_0261.off +monitor/train/monitor_0262.off +monitor/train/monitor_0263.off +monitor/train/monitor_0264.off +monitor/train/monitor_0265.off +monitor/train/monitor_0266.off +monitor/train/monitor_0267.off +monitor/train/monitor_0268.off +monitor/train/monitor_0269.off +monitor/train/monitor_0270.off +monitor/train/monitor_0271.off +monitor/train/monitor_0272.off +monitor/train/monitor_0273.off +monitor/train/monitor_0274.off +monitor/train/monitor_0275.off +monitor/train/monitor_0276.off +monitor/train/monitor_0277.off +monitor/train/monitor_0278.off +monitor/train/monitor_0279.off +monitor/train/monitor_0280.off +monitor/train/monitor_0281.off +monitor/train/monitor_0282.off +monitor/train/monitor_0283.off +monitor/train/monitor_0284.off +monitor/train/monitor_0285.off +monitor/train/monitor_0286.off +monitor/train/monitor_0287.off +monitor/train/monitor_0288.off +monitor/train/monitor_0289.off +monitor/train/monitor_0290.off +monitor/train/monitor_0291.off +monitor/train/monitor_0292.off +monitor/train/monitor_0293.off +monitor/train/monitor_0294.off +monitor/train/monitor_0295.off +monitor/train/monitor_0296.off +monitor/train/monitor_0297.off +monitor/train/monitor_0298.off +monitor/train/monitor_0299.off +monitor/train/monitor_0300.off +monitor/train/monitor_0301.off +monitor/train/monitor_0302.off +monitor/train/monitor_0303.off +monitor/train/monitor_0304.off +monitor/train/monitor_0305.off +monitor/train/monitor_0306.off +monitor/train/monitor_0307.off +monitor/train/monitor_0308.off +monitor/train/monitor_0309.off +monitor/train/monitor_0310.off +monitor/train/monitor_0311.off +monitor/train/monitor_0312.off +monitor/train/monitor_0313.off +monitor/train/monitor_0314.off +monitor/train/monitor_0315.off +monitor/train/monitor_0316.off +monitor/train/monitor_0317.off +monitor/train/monitor_0318.off +monitor/train/monitor_0319.off +monitor/train/monitor_0320.off +monitor/train/monitor_0321.off +monitor/train/monitor_0322.off +monitor/train/monitor_0323.off +monitor/train/monitor_0324.off +monitor/train/monitor_0325.off +monitor/train/monitor_0326.off +monitor/train/monitor_0327.off +monitor/train/monitor_0328.off +monitor/train/monitor_0329.off +monitor/train/monitor_0330.off +monitor/train/monitor_0331.off +monitor/train/monitor_0332.off +monitor/train/monitor_0333.off +monitor/train/monitor_0334.off +monitor/train/monitor_0335.off +monitor/train/monitor_0336.off +monitor/train/monitor_0337.off +monitor/train/monitor_0338.off +monitor/train/monitor_0339.off +monitor/train/monitor_0340.off +monitor/train/monitor_0341.off +monitor/train/monitor_0342.off +monitor/train/monitor_0343.off +monitor/train/monitor_0344.off +monitor/train/monitor_0345.off +monitor/train/monitor_0346.off +monitor/train/monitor_0347.off +monitor/train/monitor_0348.off +monitor/train/monitor_0349.off +monitor/train/monitor_0350.off +monitor/train/monitor_0351.off +monitor/train/monitor_0352.off +monitor/train/monitor_0353.off +monitor/train/monitor_0354.off +monitor/train/monitor_0355.off +monitor/train/monitor_0356.off +monitor/train/monitor_0357.off +monitor/train/monitor_0358.off +monitor/train/monitor_0359.off +monitor/train/monitor_0360.off +monitor/train/monitor_0361.off +monitor/train/monitor_0362.off +monitor/train/monitor_0363.off +monitor/train/monitor_0364.off +monitor/train/monitor_0365.off +monitor/train/monitor_0366.off +monitor/train/monitor_0367.off +monitor/train/monitor_0368.off +monitor/train/monitor_0369.off +monitor/train/monitor_0370.off +monitor/train/monitor_0371.off +monitor/train/monitor_0372.off +monitor/train/monitor_0373.off +monitor/train/monitor_0374.off +monitor/train/monitor_0375.off +monitor/train/monitor_0376.off +monitor/train/monitor_0377.off +monitor/train/monitor_0378.off +monitor/train/monitor_0379.off +monitor/train/monitor_0380.off +monitor/train/monitor_0381.off +monitor/train/monitor_0382.off +monitor/train/monitor_0383.off +monitor/train/monitor_0384.off +monitor/train/monitor_0385.off +monitor/train/monitor_0386.off +monitor/train/monitor_0387.off +monitor/train/monitor_0388.off +monitor/train/monitor_0389.off +monitor/train/monitor_0390.off +monitor/train/monitor_0391.off +monitor/train/monitor_0392.off +monitor/train/monitor_0393.off +monitor/train/monitor_0394.off +monitor/train/monitor_0395.off +monitor/train/monitor_0396.off +monitor/train/monitor_0397.off +monitor/train/monitor_0398.off +monitor/train/monitor_0399.off +monitor/train/monitor_0400.off +monitor/train/monitor_0401.off +monitor/train/monitor_0402.off +monitor/train/monitor_0403.off +monitor/train/monitor_0404.off +monitor/train/monitor_0405.off +monitor/train/monitor_0406.off +monitor/train/monitor_0407.off +monitor/train/monitor_0408.off +monitor/train/monitor_0409.off +monitor/train/monitor_0410.off +monitor/train/monitor_0411.off +monitor/train/monitor_0412.off +monitor/train/monitor_0413.off +monitor/train/monitor_0414.off +monitor/train/monitor_0415.off +monitor/train/monitor_0416.off +monitor/train/monitor_0417.off +monitor/train/monitor_0418.off +monitor/train/monitor_0419.off +bottle/train/bottle_0001.off +bottle/train/bottle_0002.off +bottle/train/bottle_0003.off +bottle/train/bottle_0004.off +bottle/train/bottle_0005.off +bottle/train/bottle_0006.off +bottle/train/bottle_0007.off +bottle/train/bottle_0008.off +bottle/train/bottle_0009.off +bottle/train/bottle_0010.off +bottle/train/bottle_0011.off +bottle/train/bottle_0012.off +bottle/train/bottle_0013.off +bottle/train/bottle_0014.off +bottle/train/bottle_0015.off +bottle/train/bottle_0016.off +bottle/train/bottle_0017.off +bottle/train/bottle_0018.off +bottle/train/bottle_0019.off +bottle/train/bottle_0020.off +bottle/train/bottle_0021.off +bottle/train/bottle_0022.off +bottle/train/bottle_0023.off +bottle/train/bottle_0024.off +bottle/train/bottle_0025.off +bottle/train/bottle_0026.off +bottle/train/bottle_0027.off +bottle/train/bottle_0028.off +bottle/train/bottle_0029.off +bottle/train/bottle_0030.off +bottle/train/bottle_0031.off +bottle/train/bottle_0032.off +bottle/train/bottle_0033.off +bottle/train/bottle_0034.off +bottle/train/bottle_0035.off +bottle/train/bottle_0036.off +bottle/train/bottle_0037.off +bottle/train/bottle_0038.off +bottle/train/bottle_0039.off +bottle/train/bottle_0040.off +bottle/train/bottle_0041.off +bottle/train/bottle_0042.off +bottle/train/bottle_0043.off +bottle/train/bottle_0044.off +bottle/train/bottle_0045.off +bottle/train/bottle_0046.off +bottle/train/bottle_0047.off +bottle/train/bottle_0048.off +bottle/train/bottle_0049.off +bottle/train/bottle_0050.off +bottle/train/bottle_0051.off +bottle/train/bottle_0052.off +bottle/train/bottle_0053.off +bottle/train/bottle_0054.off +bottle/train/bottle_0055.off +bottle/train/bottle_0056.off +bottle/train/bottle_0057.off +bottle/train/bottle_0058.off +bottle/train/bottle_0059.off +bottle/train/bottle_0060.off +bottle/train/bottle_0061.off +bottle/train/bottle_0062.off +bottle/train/bottle_0063.off +bottle/train/bottle_0064.off +bottle/train/bottle_0065.off +bottle/train/bottle_0066.off +bottle/train/bottle_0067.off +bottle/train/bottle_0068.off +bottle/train/bottle_0069.off +bottle/train/bottle_0070.off +bottle/train/bottle_0071.off +bottle/train/bottle_0072.off +bottle/train/bottle_0073.off +bottle/train/bottle_0074.off +bottle/train/bottle_0075.off +bottle/train/bottle_0076.off +bottle/train/bottle_0077.off +bottle/train/bottle_0078.off +bottle/train/bottle_0079.off +bottle/train/bottle_0080.off +bottle/train/bottle_0081.off +bottle/train/bottle_0082.off +bottle/train/bottle_0083.off +bottle/train/bottle_0084.off +bottle/train/bottle_0085.off +bottle/train/bottle_0086.off +bottle/train/bottle_0087.off +bottle/train/bottle_0088.off +bottle/train/bottle_0089.off +bottle/train/bottle_0090.off +bottle/train/bottle_0091.off +bottle/train/bottle_0092.off +bottle/train/bottle_0093.off +bottle/train/bottle_0094.off +bottle/train/bottle_0095.off +bottle/train/bottle_0096.off +bottle/train/bottle_0097.off +bottle/train/bottle_0098.off +bottle/train/bottle_0099.off +bottle/train/bottle_0100.off +bottle/train/bottle_0101.off +bottle/train/bottle_0102.off +bottle/train/bottle_0103.off +bottle/train/bottle_0104.off +bottle/train/bottle_0105.off +bottle/train/bottle_0106.off +bottle/train/bottle_0107.off +bottle/train/bottle_0108.off +bottle/train/bottle_0109.off +bottle/train/bottle_0110.off +bottle/train/bottle_0111.off +bottle/train/bottle_0112.off +bottle/train/bottle_0113.off +bottle/train/bottle_0114.off +bottle/train/bottle_0115.off +bottle/train/bottle_0116.off +bottle/train/bottle_0117.off +bottle/train/bottle_0118.off +bottle/train/bottle_0119.off +bottle/train/bottle_0120.off +bottle/train/bottle_0121.off +bottle/train/bottle_0122.off +bottle/train/bottle_0123.off +bottle/train/bottle_0124.off +bottle/train/bottle_0125.off +bottle/train/bottle_0126.off +bottle/train/bottle_0127.off +bottle/train/bottle_0128.off +bottle/train/bottle_0129.off +bottle/train/bottle_0130.off +bottle/train/bottle_0131.off +bottle/train/bottle_0132.off +bottle/train/bottle_0133.off +bottle/train/bottle_0134.off +bottle/train/bottle_0135.off +bottle/train/bottle_0136.off +bottle/train/bottle_0137.off +bottle/train/bottle_0138.off +bottle/train/bottle_0139.off +bottle/train/bottle_0140.off +bottle/train/bottle_0141.off +bottle/train/bottle_0142.off +bottle/train/bottle_0143.off +bottle/train/bottle_0144.off +bottle/train/bottle_0145.off +bottle/train/bottle_0146.off +bottle/train/bottle_0147.off +bottle/train/bottle_0148.off +bottle/train/bottle_0149.off +bottle/train/bottle_0150.off +bottle/train/bottle_0151.off +bottle/train/bottle_0152.off +bottle/train/bottle_0153.off +bottle/train/bottle_0154.off +bottle/train/bottle_0155.off +bottle/train/bottle_0156.off +bottle/train/bottle_0157.off +bottle/train/bottle_0158.off +bottle/train/bottle_0159.off +bottle/train/bottle_0160.off +bottle/train/bottle_0161.off +bottle/train/bottle_0162.off +bottle/train/bottle_0163.off +bottle/train/bottle_0164.off +bottle/train/bottle_0165.off +bottle/train/bottle_0166.off +bottle/train/bottle_0167.off +bottle/train/bottle_0168.off +bottle/train/bottle_0169.off +bottle/train/bottle_0170.off +bottle/train/bottle_0171.off +bottle/train/bottle_0172.off +bottle/train/bottle_0173.off +bottle/train/bottle_0174.off +bottle/train/bottle_0175.off +bottle/train/bottle_0176.off +bottle/train/bottle_0177.off +bottle/train/bottle_0178.off +bottle/train/bottle_0179.off +bottle/train/bottle_0180.off +bottle/train/bottle_0181.off +bottle/train/bottle_0182.off +bottle/train/bottle_0183.off +bottle/train/bottle_0184.off +bottle/train/bottle_0185.off +bottle/train/bottle_0186.off +bottle/train/bottle_0187.off +bottle/train/bottle_0188.off +bottle/train/bottle_0189.off +bottle/train/bottle_0190.off +bottle/train/bottle_0191.off +bottle/train/bottle_0192.off +bottle/train/bottle_0193.off +bottle/train/bottle_0194.off +bottle/train/bottle_0195.off +bottle/train/bottle_0196.off +bottle/train/bottle_0197.off +bottle/train/bottle_0198.off +bottle/train/bottle_0199.off +bottle/train/bottle_0200.off +bottle/train/bottle_0201.off +bottle/train/bottle_0202.off +bottle/train/bottle_0203.off +bottle/train/bottle_0204.off +bottle/train/bottle_0205.off +bottle/train/bottle_0206.off +bottle/train/bottle_0207.off +bottle/train/bottle_0208.off +bottle/train/bottle_0209.off +bottle/train/bottle_0210.off +bottle/train/bottle_0211.off +bottle/train/bottle_0212.off +bottle/train/bottle_0213.off +bottle/train/bottle_0214.off +bottle/train/bottle_0215.off +bottle/train/bottle_0216.off +bottle/train/bottle_0217.off +bottle/train/bottle_0218.off +bottle/train/bottle_0219.off +bottle/train/bottle_0220.off +bottle/train/bottle_0221.off +bottle/train/bottle_0222.off +bottle/train/bottle_0223.off +bottle/train/bottle_0224.off +bottle/train/bottle_0225.off +bottle/train/bottle_0226.off +bottle/train/bottle_0227.off +bottle/train/bottle_0228.off +bottle/train/bottle_0229.off +bottle/train/bottle_0230.off +bottle/train/bottle_0231.off +bottle/train/bottle_0232.off +bottle/train/bottle_0233.off +bottle/train/bottle_0234.off +bottle/train/bottle_0235.off +bottle/train/bottle_0236.off +bottle/train/bottle_0237.off +bottle/train/bottle_0238.off +bottle/train/bottle_0239.off +bottle/train/bottle_0240.off +bottle/train/bottle_0241.off +bottle/train/bottle_0242.off +bottle/train/bottle_0243.off +bottle/train/bottle_0244.off +bottle/train/bottle_0245.off +bottle/train/bottle_0246.off +bottle/train/bottle_0247.off +bottle/train/bottle_0248.off +bottle/train/bottle_0249.off +bottle/train/bottle_0250.off +bottle/train/bottle_0251.off +bottle/train/bottle_0252.off +bottle/train/bottle_0253.off +bottle/train/bottle_0254.off +bottle/train/bottle_0255.off +bottle/train/bottle_0256.off +bottle/train/bottle_0257.off +bottle/train/bottle_0258.off +bottle/train/bottle_0259.off +bottle/train/bottle_0260.off +bottle/train/bottle_0261.off +bottle/train/bottle_0262.off +bottle/train/bottle_0263.off +bottle/train/bottle_0264.off +bottle/train/bottle_0265.off +bottle/train/bottle_0266.off +bottle/train/bottle_0267.off +bottle/train/bottle_0268.off +bottle/train/bottle_0269.off +bottle/train/bottle_0270.off +bottle/train/bottle_0271.off +bottle/train/bottle_0272.off +bottle/train/bottle_0273.off +bottle/train/bottle_0274.off +bottle/train/bottle_0275.off +bottle/train/bottle_0276.off +bottle/train/bottle_0277.off +bottle/train/bottle_0278.off +bottle/train/bottle_0279.off +bottle/train/bottle_0280.off +bottle/train/bottle_0281.off +bottle/train/bottle_0282.off +bottle/train/bottle_0283.off +bottle/train/bottle_0284.off +bottle/train/bottle_0285.off +bottle/train/bottle_0286.off +bottle/train/bottle_0287.off +bottle/train/bottle_0288.off +bottle/train/bottle_0289.off +bottle/train/bottle_0290.off +bottle/train/bottle_0291.off +bottle/train/bottle_0292.off +bottle/train/bottle_0293.off +bottle/train/bottle_0294.off +bottle/train/bottle_0295.off +bottle/train/bottle_0296.off +bottle/train/bottle_0297.off +bottle/train/bottle_0298.off +bottle/train/bottle_0299.off +bottle/train/bottle_0300.off +bottle/train/bottle_0301.off +bottle/train/bottle_0302.off +bowl/train/bowl_0001.off +bowl/train/bowl_0002.off +bowl/train/bowl_0003.off +bowl/train/bowl_0004.off +bowl/train/bowl_0005.off +bowl/train/bowl_0006.off +bowl/train/bowl_0007.off +bowl/train/bowl_0008.off +bowl/train/bowl_0009.off +bowl/train/bowl_0010.off +bowl/train/bowl_0011.off +bowl/train/bowl_0012.off +bowl/train/bowl_0013.off +bowl/train/bowl_0014.off +bowl/train/bowl_0015.off +bowl/train/bowl_0016.off +bowl/train/bowl_0017.off +bowl/train/bowl_0018.off +bowl/train/bowl_0019.off +bowl/train/bowl_0020.off +bowl/train/bowl_0021.off +bowl/train/bowl_0022.off +bowl/train/bowl_0023.off +bowl/train/bowl_0024.off +bowl/train/bowl_0025.off +bowl/train/bowl_0026.off +bowl/train/bowl_0027.off +bowl/train/bowl_0028.off +bowl/train/bowl_0029.off +bowl/train/bowl_0030.off +bowl/train/bowl_0031.off +bowl/train/bowl_0032.off +bowl/train/bowl_0033.off +bowl/train/bowl_0034.off +bowl/train/bowl_0035.off +bowl/train/bowl_0036.off +bowl/train/bowl_0037.off +bowl/train/bowl_0038.off +bowl/train/bowl_0039.off +bowl/train/bowl_0040.off +bowl/train/bowl_0041.off +bowl/train/bowl_0042.off +bowl/train/bowl_0043.off +bowl/train/bowl_0044.off +bowl/train/bowl_0045.off +bowl/train/bowl_0046.off +bowl/train/bowl_0047.off +bowl/train/bowl_0048.off +bowl/train/bowl_0049.off +bowl/train/bowl_0050.off +bowl/train/bowl_0051.off +bowl/train/bowl_0052.off +bowl/train/bowl_0053.off +bowl/train/bowl_0054.off +bowl/train/bowl_0055.off +bowl/train/bowl_0056.off +bowl/train/bowl_0057.off +bowl/train/bowl_0058.off +keyboard/train/keyboard_0001.off +keyboard/train/keyboard_0002.off +keyboard/train/keyboard_0003.off +keyboard/train/keyboard_0004.off +keyboard/train/keyboard_0005.off +keyboard/train/keyboard_0006.off +keyboard/train/keyboard_0007.off +keyboard/train/keyboard_0008.off +keyboard/train/keyboard_0009.off +keyboard/train/keyboard_0010.off +keyboard/train/keyboard_0011.off +keyboard/train/keyboard_0012.off +keyboard/train/keyboard_0013.off +keyboard/train/keyboard_0014.off +keyboard/train/keyboard_0015.off +keyboard/train/keyboard_0016.off +keyboard/train/keyboard_0017.off +keyboard/train/keyboard_0018.off +keyboard/train/keyboard_0019.off +keyboard/train/keyboard_0020.off +keyboard/train/keyboard_0021.off +keyboard/train/keyboard_0022.off +keyboard/train/keyboard_0023.off +keyboard/train/keyboard_0024.off +keyboard/train/keyboard_0025.off +keyboard/train/keyboard_0026.off +keyboard/train/keyboard_0027.off +keyboard/train/keyboard_0028.off +keyboard/train/keyboard_0029.off +keyboard/train/keyboard_0030.off +keyboard/train/keyboard_0031.off +keyboard/train/keyboard_0032.off +keyboard/train/keyboard_0033.off +keyboard/train/keyboard_0034.off +keyboard/train/keyboard_0035.off +keyboard/train/keyboard_0036.off +keyboard/train/keyboard_0037.off +keyboard/train/keyboard_0038.off +keyboard/train/keyboard_0039.off +keyboard/train/keyboard_0040.off +keyboard/train/keyboard_0041.off +keyboard/train/keyboard_0042.off +keyboard/train/keyboard_0043.off +keyboard/train/keyboard_0044.off +keyboard/train/keyboard_0045.off +keyboard/train/keyboard_0046.off +keyboard/train/keyboard_0047.off +keyboard/train/keyboard_0048.off +keyboard/train/keyboard_0049.off +keyboard/train/keyboard_0050.off +keyboard/train/keyboard_0051.off +keyboard/train/keyboard_0052.off +keyboard/train/keyboard_0053.off +keyboard/train/keyboard_0054.off +keyboard/train/keyboard_0055.off +keyboard/train/keyboard_0056.off +keyboard/train/keyboard_0057.off +keyboard/train/keyboard_0058.off +keyboard/train/keyboard_0059.off +keyboard/train/keyboard_0060.off +keyboard/train/keyboard_0061.off +keyboard/train/keyboard_0062.off +keyboard/train/keyboard_0063.off +keyboard/train/keyboard_0064.off +keyboard/train/keyboard_0065.off +keyboard/train/keyboard_0066.off +keyboard/train/keyboard_0067.off +keyboard/train/keyboard_0068.off +keyboard/train/keyboard_0069.off +keyboard/train/keyboard_0070.off +keyboard/train/keyboard_0071.off +keyboard/train/keyboard_0072.off +keyboard/train/keyboard_0073.off +keyboard/train/keyboard_0074.off +keyboard/train/keyboard_0075.off +keyboard/train/keyboard_0076.off +keyboard/train/keyboard_0077.off +keyboard/train/keyboard_0078.off +keyboard/train/keyboard_0079.off +keyboard/train/keyboard_0080.off +keyboard/train/keyboard_0081.off +keyboard/train/keyboard_0082.off +keyboard/train/keyboard_0083.off +keyboard/train/keyboard_0084.off +keyboard/train/keyboard_0085.off +keyboard/train/keyboard_0086.off +keyboard/train/keyboard_0087.off +keyboard/train/keyboard_0088.off +keyboard/train/keyboard_0089.off +keyboard/train/keyboard_0090.off +keyboard/train/keyboard_0091.off +keyboard/train/keyboard_0092.off +keyboard/train/keyboard_0093.off +keyboard/train/keyboard_0094.off +keyboard/train/keyboard_0095.off +keyboard/train/keyboard_0096.off +keyboard/train/keyboard_0097.off +keyboard/train/keyboard_0098.off +keyboard/train/keyboard_0099.off +keyboard/train/keyboard_0100.off +keyboard/train/keyboard_0101.off +keyboard/train/keyboard_0102.off +keyboard/train/keyboard_0103.off +keyboard/train/keyboard_0104.off +keyboard/train/keyboard_0105.off +keyboard/train/keyboard_0106.off +keyboard/train/keyboard_0107.off +keyboard/train/keyboard_0108.off +keyboard/train/keyboard_0109.off +keyboard/train/keyboard_0110.off +keyboard/train/keyboard_0111.off +keyboard/train/keyboard_0112.off +keyboard/train/keyboard_0113.off +keyboard/train/keyboard_0114.off +keyboard/train/keyboard_0115.off +keyboard/train/keyboard_0116.off +keyboard/train/keyboard_0117.off +keyboard/train/keyboard_0118.off +keyboard/train/keyboard_0119.off +keyboard/train/keyboard_0120.off +keyboard/train/keyboard_0121.off +keyboard/train/keyboard_0122.off +keyboard/train/keyboard_0123.off +keyboard/train/keyboard_0124.off +keyboard/train/keyboard_0125.off +keyboard/train/keyboard_0126.off +keyboard/train/keyboard_0127.off +keyboard/train/keyboard_0128.off +keyboard/train/keyboard_0129.off +keyboard/train/keyboard_0130.off +keyboard/train/keyboard_0131.off +desk/train/desk_0001.off +desk/train/desk_0002.off +desk/train/desk_0003.off +desk/train/desk_0004.off +desk/train/desk_0005.off +desk/train/desk_0006.off +desk/train/desk_0007.off +desk/train/desk_0008.off +desk/train/desk_0009.off +desk/train/desk_0010.off +desk/train/desk_0011.off +desk/train/desk_0012.off +desk/train/desk_0013.off +desk/train/desk_0014.off +desk/train/desk_0015.off +desk/train/desk_0016.off +desk/train/desk_0017.off +desk/train/desk_0018.off +desk/train/desk_0019.off +desk/train/desk_0020.off +desk/train/desk_0021.off +desk/train/desk_0022.off +desk/train/desk_0023.off +desk/train/desk_0024.off +desk/train/desk_0025.off +desk/train/desk_0026.off +desk/train/desk_0027.off +desk/train/desk_0028.off +desk/train/desk_0029.off +desk/train/desk_0030.off +desk/train/desk_0031.off +desk/train/desk_0032.off +desk/train/desk_0033.off +desk/train/desk_0034.off +desk/train/desk_0035.off +desk/train/desk_0036.off +desk/train/desk_0037.off +desk/train/desk_0038.off +desk/train/desk_0039.off +desk/train/desk_0040.off +desk/train/desk_0041.off +desk/train/desk_0042.off +desk/train/desk_0043.off +desk/train/desk_0044.off +desk/train/desk_0045.off +desk/train/desk_0046.off +desk/train/desk_0047.off +desk/train/desk_0048.off +desk/train/desk_0049.off +desk/train/desk_0050.off +desk/train/desk_0051.off +desk/train/desk_0052.off +desk/train/desk_0053.off +desk/train/desk_0054.off +desk/train/desk_0055.off +desk/train/desk_0056.off +desk/train/desk_0057.off +desk/train/desk_0058.off +desk/train/desk_0059.off +desk/train/desk_0060.off +desk/train/desk_0061.off +desk/train/desk_0062.off +desk/train/desk_0063.off +desk/train/desk_0064.off +desk/train/desk_0065.off +desk/train/desk_0066.off +desk/train/desk_0067.off +desk/train/desk_0068.off +desk/train/desk_0069.off +desk/train/desk_0070.off +desk/train/desk_0071.off +desk/train/desk_0072.off +desk/train/desk_0073.off +desk/train/desk_0074.off +desk/train/desk_0075.off +desk/train/desk_0076.off +desk/train/desk_0077.off +desk/train/desk_0078.off +desk/train/desk_0079.off +desk/train/desk_0080.off +desk/train/desk_0081.off +desk/train/desk_0082.off +desk/train/desk_0083.off +desk/train/desk_0084.off +desk/train/desk_0085.off +desk/train/desk_0086.off +desk/train/desk_0087.off +desk/train/desk_0088.off +desk/train/desk_0089.off +desk/train/desk_0090.off +desk/train/desk_0091.off +desk/train/desk_0092.off +desk/train/desk_0093.off +desk/train/desk_0094.off +desk/train/desk_0095.off +desk/train/desk_0096.off +desk/train/desk_0097.off +desk/train/desk_0098.off +desk/train/desk_0099.off +desk/train/desk_0100.off +desk/train/desk_0101.off +desk/train/desk_0102.off +desk/train/desk_0103.off +desk/train/desk_0104.off +desk/train/desk_0105.off +desk/train/desk_0106.off +desk/train/desk_0107.off +desk/train/desk_0108.off +desk/train/desk_0109.off +desk/train/desk_0110.off +desk/train/desk_0111.off +desk/train/desk_0112.off +desk/train/desk_0113.off +desk/train/desk_0114.off +desk/train/desk_0115.off +desk/train/desk_0116.off +desk/train/desk_0117.off +desk/train/desk_0118.off +desk/train/desk_0119.off +desk/train/desk_0120.off +desk/train/desk_0121.off +desk/train/desk_0122.off +desk/train/desk_0123.off +desk/train/desk_0124.off +desk/train/desk_0125.off +desk/train/desk_0126.off +desk/train/desk_0127.off +desk/train/desk_0128.off +desk/train/desk_0129.off +desk/train/desk_0130.off +desk/train/desk_0131.off +desk/train/desk_0132.off +desk/train/desk_0133.off +desk/train/desk_0134.off +desk/train/desk_0135.off +desk/train/desk_0136.off +desk/train/desk_0137.off +desk/train/desk_0138.off +desk/train/desk_0139.off +desk/train/desk_0140.off +desk/train/desk_0141.off +desk/train/desk_0142.off +desk/train/desk_0143.off +desk/train/desk_0144.off +desk/train/desk_0145.off +desk/train/desk_0146.off +desk/train/desk_0147.off +desk/train/desk_0148.off +desk/train/desk_0149.off +desk/train/desk_0150.off +desk/train/desk_0151.off +desk/train/desk_0152.off +desk/train/desk_0153.off +desk/train/desk_0154.off +desk/train/desk_0155.off +desk/train/desk_0156.off +desk/train/desk_0157.off +desk/train/desk_0158.off +desk/train/desk_0159.off +desk/train/desk_0160.off +desk/train/desk_0161.off +desk/train/desk_0162.off +desk/train/desk_0163.off +desk/train/desk_0164.off +desk/train/desk_0165.off +desk/train/desk_0166.off +desk/train/desk_0167.off +desk/train/desk_0168.off +desk/train/desk_0169.off +desk/train/desk_0170.off +desk/train/desk_0171.off +desk/train/desk_0172.off +desk/train/desk_0173.off +desk/train/desk_0174.off +desk/train/desk_0175.off +desk/train/desk_0176.off +desk/train/desk_0177.off +desk/train/desk_0178.off +desk/train/desk_0179.off +desk/train/desk_0180.off +bed/train/bed_0001.off +bed/train/bed_0002.off +bed/train/bed_0003.off +bed/train/bed_0004.off +bed/train/bed_0005.off +bed/train/bed_0006.off +bed/train/bed_0007.off +bed/train/bed_0008.off +bed/train/bed_0009.off +bed/train/bed_0010.off +bed/train/bed_0011.off +bed/train/bed_0012.off +bed/train/bed_0013.off +bed/train/bed_0014.off +bed/train/bed_0015.off +bed/train/bed_0016.off +bed/train/bed_0017.off +bed/train/bed_0018.off +bed/train/bed_0019.off +bed/train/bed_0020.off +bed/train/bed_0021.off +bed/train/bed_0022.off +bed/train/bed_0023.off +bed/train/bed_0024.off +bed/train/bed_0025.off +bed/train/bed_0026.off +bed/train/bed_0027.off +bed/train/bed_0028.off +bed/train/bed_0029.off +bed/train/bed_0030.off +bed/train/bed_0031.off +bed/train/bed_0032.off +bed/train/bed_0033.off +bed/train/bed_0034.off +bed/train/bed_0035.off +bed/train/bed_0036.off +bed/train/bed_0037.off +bed/train/bed_0038.off +bed/train/bed_0039.off +bed/train/bed_0040.off +bed/train/bed_0041.off +bed/train/bed_0042.off +bed/train/bed_0043.off +bed/train/bed_0044.off +bed/train/bed_0045.off +bed/train/bed_0046.off +bed/train/bed_0047.off +bed/train/bed_0048.off +bed/train/bed_0049.off +bed/train/bed_0050.off +bed/train/bed_0051.off +bed/train/bed_0052.off +bed/train/bed_0053.off +bed/train/bed_0054.off +bed/train/bed_0055.off +bed/train/bed_0056.off +bed/train/bed_0057.off +bed/train/bed_0058.off +bed/train/bed_0059.off +bed/train/bed_0060.off +bed/train/bed_0061.off +bed/train/bed_0062.off +bed/train/bed_0063.off +bed/train/bed_0064.off +bed/train/bed_0065.off +bed/train/bed_0066.off +bed/train/bed_0067.off +bed/train/bed_0068.off +bed/train/bed_0069.off +bed/train/bed_0070.off +bed/train/bed_0071.off +bed/train/bed_0072.off +bed/train/bed_0073.off +bed/train/bed_0074.off +bed/train/bed_0075.off +bed/train/bed_0076.off +bed/train/bed_0077.off +bed/train/bed_0078.off +bed/train/bed_0079.off +bed/train/bed_0080.off +bed/train/bed_0081.off +bed/train/bed_0082.off +bed/train/bed_0083.off +bed/train/bed_0084.off +bed/train/bed_0085.off +bed/train/bed_0086.off +bed/train/bed_0087.off +bed/train/bed_0088.off +bed/train/bed_0089.off +bed/train/bed_0090.off +bed/train/bed_0091.off +bed/train/bed_0092.off +bed/train/bed_0093.off +bed/train/bed_0094.off +bed/train/bed_0095.off +bed/train/bed_0096.off +bed/train/bed_0097.off +bed/train/bed_0098.off +bed/train/bed_0099.off +bed/train/bed_0100.off +bed/train/bed_0101.off +bed/train/bed_0102.off +bed/train/bed_0103.off +bed/train/bed_0104.off +bed/train/bed_0105.off +bed/train/bed_0106.off +bed/train/bed_0107.off +bed/train/bed_0108.off +bed/train/bed_0109.off +bed/train/bed_0110.off +bed/train/bed_0111.off +bed/train/bed_0112.off +bed/train/bed_0113.off +bed/train/bed_0114.off +bed/train/bed_0115.off +bed/train/bed_0116.off +bed/train/bed_0117.off +bed/train/bed_0118.off +bed/train/bed_0119.off +bed/train/bed_0120.off +bed/train/bed_0121.off +bed/train/bed_0122.off +bed/train/bed_0123.off +bed/train/bed_0124.off +bed/train/bed_0125.off +bed/train/bed_0126.off +bed/train/bed_0127.off +bed/train/bed_0128.off +bed/train/bed_0129.off +bed/train/bed_0130.off +bed/train/bed_0131.off +bed/train/bed_0132.off +bed/train/bed_0133.off +bed/train/bed_0134.off +bed/train/bed_0135.off +bed/train/bed_0136.off +bed/train/bed_0137.off +bed/train/bed_0138.off +bed/train/bed_0139.off +bed/train/bed_0140.off +bed/train/bed_0141.off +bed/train/bed_0142.off +bed/train/bed_0143.off +bed/train/bed_0144.off +bed/train/bed_0145.off +bed/train/bed_0146.off +bed/train/bed_0147.off +bed/train/bed_0148.off +bed/train/bed_0149.off +bed/train/bed_0150.off +bed/train/bed_0151.off +bed/train/bed_0152.off +bed/train/bed_0153.off +bed/train/bed_0154.off +bed/train/bed_0155.off +bed/train/bed_0156.off +bed/train/bed_0157.off +bed/train/bed_0158.off +bed/train/bed_0159.off +bed/train/bed_0160.off +bed/train/bed_0161.off +bed/train/bed_0162.off +bed/train/bed_0163.off +bed/train/bed_0164.off +bed/train/bed_0165.off +bed/train/bed_0166.off +bed/train/bed_0167.off +bed/train/bed_0168.off +bed/train/bed_0169.off +bed/train/bed_0170.off +bed/train/bed_0171.off +bed/train/bed_0172.off +bed/train/bed_0173.off +bed/train/bed_0174.off +bed/train/bed_0175.off +bed/train/bed_0176.off +bed/train/bed_0177.off +bed/train/bed_0178.off +bed/train/bed_0179.off +bed/train/bed_0180.off +bed/train/bed_0181.off +bed/train/bed_0182.off +bed/train/bed_0183.off +bed/train/bed_0184.off +bed/train/bed_0185.off +bed/train/bed_0186.off +bed/train/bed_0187.off +bed/train/bed_0188.off +bed/train/bed_0189.off +bed/train/bed_0190.off +bed/train/bed_0191.off +bed/train/bed_0192.off +bed/train/bed_0193.off +bed/train/bed_0194.off +bed/train/bed_0195.off +bed/train/bed_0196.off +bed/train/bed_0197.off +bed/train/bed_0198.off +bed/train/bed_0199.off +bed/train/bed_0200.off +bed/train/bed_0201.off +bed/train/bed_0202.off +bed/train/bed_0203.off +bed/train/bed_0204.off +bed/train/bed_0205.off +bed/train/bed_0206.off +bed/train/bed_0207.off +bed/train/bed_0208.off +bed/train/bed_0209.off +bed/train/bed_0210.off +bed/train/bed_0211.off +bed/train/bed_0212.off +bed/train/bed_0213.off +bed/train/bed_0214.off +bed/train/bed_0215.off +bed/train/bed_0216.off +bed/train/bed_0217.off +bed/train/bed_0218.off +bed/train/bed_0219.off +bed/train/bed_0220.off +bed/train/bed_0221.off +bed/train/bed_0222.off +bed/train/bed_0223.off +bed/train/bed_0224.off +bed/train/bed_0225.off +bed/train/bed_0226.off +bed/train/bed_0227.off +bed/train/bed_0228.off +bed/train/bed_0229.off +bed/train/bed_0230.off +bed/train/bed_0231.off +bed/train/bed_0232.off +bed/train/bed_0233.off +bed/train/bed_0234.off +bed/train/bed_0235.off +bed/train/bed_0236.off +bed/train/bed_0237.off +bed/train/bed_0238.off +bed/train/bed_0239.off +bed/train/bed_0240.off +bed/train/bed_0241.off +bed/train/bed_0242.off +bed/train/bed_0243.off +bed/train/bed_0244.off +bed/train/bed_0245.off +bed/train/bed_0246.off +bed/train/bed_0247.off +bed/train/bed_0248.off +bed/train/bed_0249.off +bed/train/bed_0250.off +bed/train/bed_0251.off +bed/train/bed_0252.off +bed/train/bed_0253.off +bed/train/bed_0254.off +bed/train/bed_0255.off +bed/train/bed_0256.off +bed/train/bed_0257.off +bed/train/bed_0258.off +bed/train/bed_0259.off +bed/train/bed_0260.off +bed/train/bed_0261.off +bed/train/bed_0262.off +bed/train/bed_0263.off +bed/train/bed_0264.off +bed/train/bed_0265.off +bed/train/bed_0266.off +bed/train/bed_0267.off +bed/train/bed_0268.off +bed/train/bed_0269.off +bed/train/bed_0270.off +bed/train/bed_0271.off +bed/train/bed_0272.off +bed/train/bed_0273.off +bed/train/bed_0274.off +bed/train/bed_0275.off +bed/train/bed_0276.off +bed/train/bed_0277.off +bed/train/bed_0278.off +bed/train/bed_0279.off +bed/train/bed_0280.off +bed/train/bed_0281.off +bed/train/bed_0282.off +bed/train/bed_0283.off +bed/train/bed_0284.off +bed/train/bed_0285.off +bed/train/bed_0286.off +bed/train/bed_0287.off +bed/train/bed_0288.off +bed/train/bed_0289.off +bed/train/bed_0290.off +bed/train/bed_0291.off +bed/train/bed_0292.off +bed/train/bed_0293.off +bed/train/bed_0294.off +bed/train/bed_0295.off +bed/train/bed_0296.off +bed/train/bed_0297.off +bed/train/bed_0298.off +bed/train/bed_0299.off +bed/train/bed_0300.off +bed/train/bed_0301.off +bed/train/bed_0302.off +bed/train/bed_0303.off +bed/train/bed_0304.off +bed/train/bed_0305.off +bed/train/bed_0306.off +bed/train/bed_0307.off +bed/train/bed_0308.off +bed/train/bed_0309.off +bed/train/bed_0310.off +bed/train/bed_0311.off +bed/train/bed_0312.off +bed/train/bed_0313.off +bed/train/bed_0314.off +bed/train/bed_0315.off +bed/train/bed_0316.off +bed/train/bed_0317.off +bed/train/bed_0318.off +bed/train/bed_0319.off +bed/train/bed_0320.off +bed/train/bed_0321.off +bed/train/bed_0322.off +bed/train/bed_0323.off +bed/train/bed_0324.off +bed/train/bed_0325.off +bed/train/bed_0326.off +bed/train/bed_0327.off +bed/train/bed_0328.off +bed/train/bed_0329.off +bed/train/bed_0330.off +bed/train/bed_0331.off +bed/train/bed_0332.off +bed/train/bed_0333.off +bed/train/bed_0334.off +bed/train/bed_0335.off +bed/train/bed_0336.off +bed/train/bed_0337.off +bed/train/bed_0338.off +bed/train/bed_0339.off +bed/train/bed_0340.off +bed/train/bed_0341.off +bed/train/bed_0342.off +bed/train/bed_0343.off +bed/train/bed_0344.off +bed/train/bed_0345.off +bed/train/bed_0346.off +bed/train/bed_0347.off +bed/train/bed_0348.off +bed/train/bed_0349.off +bed/train/bed_0350.off +bed/train/bed_0351.off +bed/train/bed_0352.off +bed/train/bed_0353.off +bed/train/bed_0354.off +bed/train/bed_0355.off +bed/train/bed_0356.off +bed/train/bed_0357.off +bed/train/bed_0358.off +bed/train/bed_0359.off +bed/train/bed_0360.off +bed/train/bed_0361.off +bed/train/bed_0362.off +bed/train/bed_0363.off +bed/train/bed_0364.off +bed/train/bed_0365.off +bed/train/bed_0366.off +bed/train/bed_0367.off +bed/train/bed_0368.off +bed/train/bed_0369.off +bed/train/bed_0370.off +bed/train/bed_0371.off +bed/train/bed_0372.off +bed/train/bed_0373.off +bed/train/bed_0374.off +bed/train/bed_0375.off +bed/train/bed_0376.off +bed/train/bed_0377.off +bed/train/bed_0378.off +bed/train/bed_0379.off +bed/train/bed_0380.off +bed/train/bed_0381.off +bed/train/bed_0382.off +bed/train/bed_0383.off +bed/train/bed_0384.off +bed/train/bed_0385.off +bed/train/bed_0386.off +bed/train/bed_0387.off +bed/train/bed_0388.off +bed/train/bed_0389.off +bed/train/bed_0390.off +bed/train/bed_0391.off +bed/train/bed_0392.off +bed/train/bed_0393.off +bed/train/bed_0394.off +bed/train/bed_0395.off +bed/train/bed_0396.off +bed/train/bed_0397.off +bed/train/bed_0398.off +bed/train/bed_0399.off +bed/train/bed_0400.off +bed/train/bed_0401.off +bed/train/bed_0402.off +bed/train/bed_0403.off +bed/train/bed_0404.off +bed/train/bed_0405.off +bed/train/bed_0406.off +bed/train/bed_0407.off +bed/train/bed_0408.off +bed/train/bed_0409.off +bed/train/bed_0410.off +bed/train/bed_0411.off +bed/train/bed_0412.off +bed/train/bed_0413.off +bed/train/bed_0414.off +bed/train/bed_0415.off +bed/train/bed_0416.off +bed/train/bed_0417.off +bed/train/bed_0418.off +bed/train/bed_0419.off +bed/train/bed_0420.off +bed/train/bed_0421.off +bed/train/bed_0422.off +bed/train/bed_0423.off +bed/train/bed_0424.off +bed/train/bed_0425.off +bed/train/bed_0426.off +bed/train/bed_0427.off +bed/train/bed_0428.off +bed/train/bed_0429.off +bed/train/bed_0430.off +bed/train/bed_0431.off +bed/train/bed_0432.off +bed/train/bed_0433.off +bed/train/bed_0434.off +bed/train/bed_0435.off +bed/train/bed_0436.off +bed/train/bed_0437.off +bed/train/bed_0438.off +bed/train/bed_0439.off +bed/train/bed_0440.off +bed/train/bed_0441.off +bed/train/bed_0442.off +bed/train/bed_0443.off +bed/train/bed_0444.off +bed/train/bed_0445.off +bed/train/bed_0446.off +bed/train/bed_0447.off +bed/train/bed_0448.off +bed/train/bed_0449.off +bed/train/bed_0450.off +bed/train/bed_0451.off +bed/train/bed_0452.off +bed/train/bed_0453.off +bed/train/bed_0454.off +bed/train/bed_0455.off +bed/train/bed_0456.off +bed/train/bed_0457.off +bed/train/bed_0458.off +bed/train/bed_0459.off +bed/train/bed_0460.off +bed/train/bed_0461.off +bed/train/bed_0462.off +bed/train/bed_0463.off +bed/train/bed_0464.off +tent/train/tent_0001.off +tent/train/tent_0002.off +tent/train/tent_0003.off +tent/train/tent_0004.off +tent/train/tent_0005.off +tent/train/tent_0006.off +tent/train/tent_0007.off +tent/train/tent_0008.off +tent/train/tent_0009.off +tent/train/tent_0010.off +tent/train/tent_0011.off +tent/train/tent_0012.off +tent/train/tent_0013.off +tent/train/tent_0014.off +tent/train/tent_0015.off +tent/train/tent_0016.off +tent/train/tent_0017.off +tent/train/tent_0018.off +tent/train/tent_0019.off +tent/train/tent_0020.off +tent/train/tent_0021.off +tent/train/tent_0022.off +tent/train/tent_0023.off +tent/train/tent_0024.off +tent/train/tent_0025.off +tent/train/tent_0026.off +tent/train/tent_0027.off +tent/train/tent_0028.off +tent/train/tent_0029.off +tent/train/tent_0030.off +tent/train/tent_0031.off +tent/train/tent_0032.off +tent/train/tent_0033.off +tent/train/tent_0034.off +tent/train/tent_0035.off +tent/train/tent_0036.off +tent/train/tent_0037.off +tent/train/tent_0038.off +tent/train/tent_0039.off +tent/train/tent_0040.off +tent/train/tent_0041.off +tent/train/tent_0042.off +tent/train/tent_0043.off +tent/train/tent_0044.off +tent/train/tent_0045.off +tent/train/tent_0046.off +tent/train/tent_0047.off +tent/train/tent_0048.off +tent/train/tent_0049.off +tent/train/tent_0050.off +tent/train/tent_0051.off +tent/train/tent_0052.off +tent/train/tent_0053.off +tent/train/tent_0054.off +tent/train/tent_0055.off +tent/train/tent_0056.off +tent/train/tent_0057.off +tent/train/tent_0058.off +tent/train/tent_0059.off +tent/train/tent_0060.off +tent/train/tent_0061.off +tent/train/tent_0062.off +tent/train/tent_0063.off +tent/train/tent_0064.off +tent/train/tent_0065.off +tent/train/tent_0066.off +tent/train/tent_0067.off +tent/train/tent_0068.off +tent/train/tent_0069.off +tent/train/tent_0070.off +tent/train/tent_0071.off +tent/train/tent_0072.off +tent/train/tent_0073.off +tent/train/tent_0074.off +tent/train/tent_0075.off +tent/train/tent_0076.off +tent/train/tent_0077.off +tent/train/tent_0078.off +tent/train/tent_0079.off +tent/train/tent_0080.off +tent/train/tent_0081.off +tent/train/tent_0082.off +tent/train/tent_0083.off +tent/train/tent_0084.off +tent/train/tent_0085.off +tent/train/tent_0086.off +tent/train/tent_0087.off +tent/train/tent_0088.off +tent/train/tent_0089.off +tent/train/tent_0090.off +tent/train/tent_0091.off +tent/train/tent_0092.off +tent/train/tent_0093.off +tent/train/tent_0094.off +tent/train/tent_0095.off +tent/train/tent_0096.off +tent/train/tent_0097.off +tent/train/tent_0098.off +tent/train/tent_0099.off +tent/train/tent_0100.off +tent/train/tent_0101.off +tent/train/tent_0102.off +tent/train/tent_0103.off +tent/train/tent_0104.off +tent/train/tent_0105.off +tent/train/tent_0106.off +tent/train/tent_0107.off +tent/train/tent_0108.off +tent/train/tent_0109.off +tent/train/tent_0110.off +tent/train/tent_0111.off +tent/train/tent_0112.off +tent/train/tent_0113.off +tent/train/tent_0114.off +tent/train/tent_0115.off +tent/train/tent_0116.off +tent/train/tent_0117.off +tent/train/tent_0118.off +tent/train/tent_0119.off +tent/train/tent_0120.off +tent/train/tent_0121.off +tent/train/tent_0122.off +tent/train/tent_0123.off +tent/train/tent_0124.off +tent/train/tent_0125.off +tent/train/tent_0126.off +tent/train/tent_0127.off +tent/train/tent_0128.off +tent/train/tent_0129.off +tent/train/tent_0130.off +tent/train/tent_0131.off +tent/train/tent_0132.off +tent/train/tent_0133.off +tent/train/tent_0134.off +tent/train/tent_0135.off +tent/train/tent_0136.off +tent/train/tent_0137.off +tent/train/tent_0138.off +tent/train/tent_0139.off +tent/train/tent_0140.off +tent/train/tent_0141.off +tent/train/tent_0142.off +tent/train/tent_0143.off +tent/train/tent_0144.off +tent/train/tent_0145.off +tent/train/tent_0146.off +tent/train/tent_0147.off +piano/train/piano_0001.off +piano/train/piano_0002.off +piano/train/piano_0003.off +piano/train/piano_0004.off +piano/train/piano_0005.off +piano/train/piano_0006.off +piano/train/piano_0007.off +piano/train/piano_0008.off +piano/train/piano_0009.off +piano/train/piano_0010.off +piano/train/piano_0011.off +piano/train/piano_0012.off +piano/train/piano_0013.off +piano/train/piano_0014.off +piano/train/piano_0015.off +piano/train/piano_0016.off +piano/train/piano_0017.off +piano/train/piano_0018.off +piano/train/piano_0019.off +piano/train/piano_0020.off +piano/train/piano_0021.off +piano/train/piano_0022.off +piano/train/piano_0023.off +piano/train/piano_0024.off +piano/train/piano_0025.off +piano/train/piano_0026.off +piano/train/piano_0027.off +piano/train/piano_0028.off +piano/train/piano_0029.off +piano/train/piano_0030.off +piano/train/piano_0031.off +piano/train/piano_0032.off +piano/train/piano_0033.off +piano/train/piano_0034.off +piano/train/piano_0035.off +piano/train/piano_0036.off +piano/train/piano_0037.off +piano/train/piano_0038.off +piano/train/piano_0039.off +piano/train/piano_0040.off +piano/train/piano_0041.off +piano/train/piano_0042.off +piano/train/piano_0043.off +piano/train/piano_0044.off +piano/train/piano_0045.off +piano/train/piano_0046.off +piano/train/piano_0047.off +piano/train/piano_0048.off +piano/train/piano_0049.off +piano/train/piano_0050.off +piano/train/piano_0051.off +piano/train/piano_0052.off +piano/train/piano_0053.off +piano/train/piano_0054.off +piano/train/piano_0055.off +piano/train/piano_0056.off +piano/train/piano_0057.off +piano/train/piano_0058.off +piano/train/piano_0059.off +piano/train/piano_0060.off +piano/train/piano_0061.off +piano/train/piano_0062.off +piano/train/piano_0063.off +piano/train/piano_0064.off +piano/train/piano_0065.off +piano/train/piano_0066.off +piano/train/piano_0067.off +piano/train/piano_0068.off +piano/train/piano_0069.off +piano/train/piano_0070.off +piano/train/piano_0071.off +piano/train/piano_0072.off +piano/train/piano_0073.off +piano/train/piano_0074.off +piano/train/piano_0075.off +piano/train/piano_0076.off +piano/train/piano_0077.off +piano/train/piano_0078.off +piano/train/piano_0079.off +piano/train/piano_0080.off +piano/train/piano_0081.off +piano/train/piano_0082.off +piano/train/piano_0083.off +piano/train/piano_0084.off +piano/train/piano_0085.off +piano/train/piano_0086.off +piano/train/piano_0087.off +piano/train/piano_0088.off +piano/train/piano_0089.off +piano/train/piano_0090.off +piano/train/piano_0091.off +piano/train/piano_0092.off +piano/train/piano_0093.off +piano/train/piano_0094.off +piano/train/piano_0095.off +piano/train/piano_0096.off +piano/train/piano_0097.off +piano/train/piano_0098.off +piano/train/piano_0099.off +piano/train/piano_0100.off +piano/train/piano_0101.off +piano/train/piano_0102.off +piano/train/piano_0103.off +piano/train/piano_0104.off +piano/train/piano_0105.off +piano/train/piano_0106.off +piano/train/piano_0107.off +piano/train/piano_0108.off +piano/train/piano_0109.off +piano/train/piano_0110.off +piano/train/piano_0111.off +piano/train/piano_0112.off +piano/train/piano_0113.off +piano/train/piano_0114.off +piano/train/piano_0115.off +piano/train/piano_0116.off +piano/train/piano_0117.off +piano/train/piano_0118.off +piano/train/piano_0119.off +piano/train/piano_0120.off +piano/train/piano_0121.off +piano/train/piano_0122.off +piano/train/piano_0123.off +piano/train/piano_0124.off +piano/train/piano_0125.off +piano/train/piano_0126.off +piano/train/piano_0127.off +piano/train/piano_0128.off +piano/train/piano_0129.off +piano/train/piano_0130.off +piano/train/piano_0131.off +piano/train/piano_0132.off +piano/train/piano_0133.off +piano/train/piano_0134.off +piano/train/piano_0135.off +piano/train/piano_0136.off +piano/train/piano_0137.off +piano/train/piano_0138.off +piano/train/piano_0139.off +piano/train/piano_0140.off +piano/train/piano_0141.off +piano/train/piano_0142.off +piano/train/piano_0143.off +piano/train/piano_0144.off +piano/train/piano_0145.off +piano/train/piano_0146.off +piano/train/piano_0147.off +piano/train/piano_0148.off +piano/train/piano_0149.off +piano/train/piano_0150.off +piano/train/piano_0151.off +piano/train/piano_0152.off +piano/train/piano_0153.off +piano/train/piano_0154.off +piano/train/piano_0155.off +piano/train/piano_0156.off +piano/train/piano_0157.off +piano/train/piano_0158.off +piano/train/piano_0159.off +piano/train/piano_0160.off +piano/train/piano_0161.off +piano/train/piano_0162.off +piano/train/piano_0163.off +piano/train/piano_0164.off +piano/train/piano_0165.off +piano/train/piano_0166.off +piano/train/piano_0167.off +piano/train/piano_0168.off +piano/train/piano_0169.off +piano/train/piano_0170.off +piano/train/piano_0171.off +piano/train/piano_0172.off +piano/train/piano_0173.off +piano/train/piano_0174.off +piano/train/piano_0175.off +piano/train/piano_0176.off +piano/train/piano_0177.off +piano/train/piano_0178.off +piano/train/piano_0179.off +piano/train/piano_0180.off +piano/train/piano_0181.off +piano/train/piano_0182.off +piano/train/piano_0183.off +piano/train/piano_0184.off +piano/train/piano_0185.off +piano/train/piano_0186.off +piano/train/piano_0187.off +piano/train/piano_0188.off +piano/train/piano_0189.off +piano/train/piano_0190.off +piano/train/piano_0191.off +piano/train/piano_0192.off +piano/train/piano_0193.off +piano/train/piano_0194.off +piano/train/piano_0195.off +piano/train/piano_0196.off +piano/train/piano_0197.off +piano/train/piano_0198.off +piano/train/piano_0199.off +piano/train/piano_0200.off +piano/train/piano_0201.off +piano/train/piano_0202.off +piano/train/piano_0203.off +piano/train/piano_0204.off +piano/train/piano_0205.off +piano/train/piano_0206.off +piano/train/piano_0207.off +piano/train/piano_0208.off +sofa/train/sofa_0001.off +sofa/train/sofa_0002.off +sofa/train/sofa_0003.off +sofa/train/sofa_0004.off +sofa/train/sofa_0005.off +sofa/train/sofa_0006.off +sofa/train/sofa_0007.off +sofa/train/sofa_0008.off +sofa/train/sofa_0009.off +sofa/train/sofa_0010.off +sofa/train/sofa_0011.off +sofa/train/sofa_0012.off +sofa/train/sofa_0013.off +sofa/train/sofa_0014.off +sofa/train/sofa_0015.off +sofa/train/sofa_0016.off +sofa/train/sofa_0017.off +sofa/train/sofa_0018.off +sofa/train/sofa_0019.off +sofa/train/sofa_0020.off +sofa/train/sofa_0021.off +sofa/train/sofa_0022.off +sofa/train/sofa_0023.off +sofa/train/sofa_0024.off +sofa/train/sofa_0025.off +sofa/train/sofa_0026.off +sofa/train/sofa_0027.off +sofa/train/sofa_0028.off +sofa/train/sofa_0029.off +sofa/train/sofa_0030.off +sofa/train/sofa_0031.off +sofa/train/sofa_0032.off +sofa/train/sofa_0033.off +sofa/train/sofa_0034.off +sofa/train/sofa_0035.off +sofa/train/sofa_0036.off +sofa/train/sofa_0037.off +sofa/train/sofa_0038.off +sofa/train/sofa_0039.off +sofa/train/sofa_0040.off +sofa/train/sofa_0041.off +sofa/train/sofa_0042.off +sofa/train/sofa_0043.off +sofa/train/sofa_0044.off +sofa/train/sofa_0045.off +sofa/train/sofa_0046.off +sofa/train/sofa_0047.off +sofa/train/sofa_0048.off +sofa/train/sofa_0049.off +sofa/train/sofa_0050.off +sofa/train/sofa_0051.off +sofa/train/sofa_0052.off +sofa/train/sofa_0053.off +sofa/train/sofa_0054.off +sofa/train/sofa_0055.off +sofa/train/sofa_0056.off +sofa/train/sofa_0057.off +sofa/train/sofa_0058.off +sofa/train/sofa_0059.off +sofa/train/sofa_0060.off +sofa/train/sofa_0061.off +sofa/train/sofa_0062.off +sofa/train/sofa_0063.off +sofa/train/sofa_0064.off +sofa/train/sofa_0065.off +sofa/train/sofa_0066.off +sofa/train/sofa_0067.off +sofa/train/sofa_0068.off +sofa/train/sofa_0069.off +sofa/train/sofa_0070.off +sofa/train/sofa_0071.off +sofa/train/sofa_0072.off +sofa/train/sofa_0073.off +sofa/train/sofa_0074.off +sofa/train/sofa_0075.off +sofa/train/sofa_0076.off +sofa/train/sofa_0077.off +sofa/train/sofa_0078.off +sofa/train/sofa_0079.off +sofa/train/sofa_0080.off +sofa/train/sofa_0081.off +sofa/train/sofa_0082.off +sofa/train/sofa_0083.off +sofa/train/sofa_0084.off +sofa/train/sofa_0085.off +sofa/train/sofa_0086.off +sofa/train/sofa_0087.off +sofa/train/sofa_0088.off +sofa/train/sofa_0089.off +sofa/train/sofa_0090.off +sofa/train/sofa_0091.off +sofa/train/sofa_0092.off +sofa/train/sofa_0093.off +sofa/train/sofa_0094.off +sofa/train/sofa_0095.off +sofa/train/sofa_0096.off +sofa/train/sofa_0097.off +sofa/train/sofa_0098.off +sofa/train/sofa_0099.off +sofa/train/sofa_0100.off +sofa/train/sofa_0101.off +sofa/train/sofa_0102.off +sofa/train/sofa_0103.off +sofa/train/sofa_0104.off +sofa/train/sofa_0105.off +sofa/train/sofa_0106.off +sofa/train/sofa_0107.off +sofa/train/sofa_0108.off +sofa/train/sofa_0109.off +sofa/train/sofa_0110.off +sofa/train/sofa_0111.off +sofa/train/sofa_0112.off +sofa/train/sofa_0113.off +sofa/train/sofa_0114.off +sofa/train/sofa_0115.off +sofa/train/sofa_0116.off +sofa/train/sofa_0117.off +sofa/train/sofa_0118.off +sofa/train/sofa_0119.off +sofa/train/sofa_0120.off +sofa/train/sofa_0121.off +sofa/train/sofa_0122.off +sofa/train/sofa_0123.off +sofa/train/sofa_0124.off +sofa/train/sofa_0125.off +sofa/train/sofa_0126.off +sofa/train/sofa_0127.off +sofa/train/sofa_0128.off +sofa/train/sofa_0129.off +sofa/train/sofa_0130.off +sofa/train/sofa_0131.off +sofa/train/sofa_0132.off +sofa/train/sofa_0133.off +sofa/train/sofa_0134.off +sofa/train/sofa_0135.off +sofa/train/sofa_0136.off +sofa/train/sofa_0137.off +sofa/train/sofa_0138.off +sofa/train/sofa_0139.off +sofa/train/sofa_0140.off +sofa/train/sofa_0141.off +sofa/train/sofa_0142.off +sofa/train/sofa_0143.off +sofa/train/sofa_0144.off +sofa/train/sofa_0145.off +sofa/train/sofa_0146.off +sofa/train/sofa_0147.off +sofa/train/sofa_0148.off +sofa/train/sofa_0149.off +sofa/train/sofa_0150.off +sofa/train/sofa_0151.off +sofa/train/sofa_0152.off +sofa/train/sofa_0153.off +sofa/train/sofa_0154.off +sofa/train/sofa_0155.off +sofa/train/sofa_0156.off +sofa/train/sofa_0157.off +sofa/train/sofa_0158.off +sofa/train/sofa_0159.off +sofa/train/sofa_0160.off +sofa/train/sofa_0161.off +sofa/train/sofa_0162.off +sofa/train/sofa_0163.off +sofa/train/sofa_0164.off +sofa/train/sofa_0165.off +sofa/train/sofa_0166.off +sofa/train/sofa_0167.off +sofa/train/sofa_0168.off +sofa/train/sofa_0169.off +sofa/train/sofa_0170.off +sofa/train/sofa_0171.off +sofa/train/sofa_0172.off +sofa/train/sofa_0173.off +sofa/train/sofa_0174.off +sofa/train/sofa_0175.off +sofa/train/sofa_0176.off +sofa/train/sofa_0177.off +sofa/train/sofa_0178.off +sofa/train/sofa_0179.off +sofa/train/sofa_0180.off +sofa/train/sofa_0181.off +sofa/train/sofa_0182.off +sofa/train/sofa_0183.off +sofa/train/sofa_0184.off +sofa/train/sofa_0185.off +sofa/train/sofa_0186.off +sofa/train/sofa_0187.off +sofa/train/sofa_0188.off +sofa/train/sofa_0189.off +sofa/train/sofa_0190.off +sofa/train/sofa_0191.off +sofa/train/sofa_0192.off +sofa/train/sofa_0193.off +sofa/train/sofa_0194.off +sofa/train/sofa_0195.off +sofa/train/sofa_0196.off +sofa/train/sofa_0197.off +sofa/train/sofa_0198.off +sofa/train/sofa_0199.off +sofa/train/sofa_0200.off +sofa/train/sofa_0201.off +sofa/train/sofa_0202.off +sofa/train/sofa_0203.off +sofa/train/sofa_0204.off +sofa/train/sofa_0205.off +sofa/train/sofa_0206.off +sofa/train/sofa_0207.off +sofa/train/sofa_0208.off +sofa/train/sofa_0209.off +sofa/train/sofa_0210.off +sofa/train/sofa_0211.off +sofa/train/sofa_0212.off +sofa/train/sofa_0213.off +sofa/train/sofa_0214.off +sofa/train/sofa_0215.off +sofa/train/sofa_0216.off +sofa/train/sofa_0217.off +sofa/train/sofa_0218.off +sofa/train/sofa_0219.off +sofa/train/sofa_0220.off +sofa/train/sofa_0221.off +sofa/train/sofa_0222.off +sofa/train/sofa_0223.off +sofa/train/sofa_0224.off +sofa/train/sofa_0225.off +sofa/train/sofa_0226.off +sofa/train/sofa_0227.off +sofa/train/sofa_0228.off +sofa/train/sofa_0229.off +sofa/train/sofa_0230.off +sofa/train/sofa_0231.off +sofa/train/sofa_0232.off +sofa/train/sofa_0233.off +sofa/train/sofa_0234.off +sofa/train/sofa_0235.off +sofa/train/sofa_0236.off +sofa/train/sofa_0237.off +sofa/train/sofa_0238.off +sofa/train/sofa_0239.off +sofa/train/sofa_0240.off +sofa/train/sofa_0241.off +sofa/train/sofa_0242.off +sofa/train/sofa_0243.off +sofa/train/sofa_0244.off +sofa/train/sofa_0245.off +sofa/train/sofa_0246.off +sofa/train/sofa_0247.off +sofa/train/sofa_0248.off +sofa/train/sofa_0249.off +sofa/train/sofa_0250.off +sofa/train/sofa_0251.off +sofa/train/sofa_0252.off +sofa/train/sofa_0253.off +sofa/train/sofa_0254.off +sofa/train/sofa_0255.off +sofa/train/sofa_0256.off +sofa/train/sofa_0257.off +sofa/train/sofa_0258.off +sofa/train/sofa_0259.off +sofa/train/sofa_0260.off +sofa/train/sofa_0261.off +sofa/train/sofa_0262.off +sofa/train/sofa_0263.off +sofa/train/sofa_0264.off +sofa/train/sofa_0265.off +sofa/train/sofa_0266.off +sofa/train/sofa_0267.off +sofa/train/sofa_0268.off +sofa/train/sofa_0269.off +sofa/train/sofa_0270.off +sofa/train/sofa_0271.off +sofa/train/sofa_0272.off +sofa/train/sofa_0273.off +sofa/train/sofa_0274.off +sofa/train/sofa_0275.off +sofa/train/sofa_0276.off +sofa/train/sofa_0277.off +sofa/train/sofa_0278.off +sofa/train/sofa_0279.off +sofa/train/sofa_0280.off +sofa/train/sofa_0281.off +sofa/train/sofa_0282.off +sofa/train/sofa_0283.off +sofa/train/sofa_0284.off +sofa/train/sofa_0285.off +sofa/train/sofa_0286.off +sofa/train/sofa_0287.off +sofa/train/sofa_0288.off +sofa/train/sofa_0289.off +sofa/train/sofa_0290.off +sofa/train/sofa_0291.off +sofa/train/sofa_0292.off +sofa/train/sofa_0293.off +sofa/train/sofa_0294.off +sofa/train/sofa_0295.off +sofa/train/sofa_0296.off +sofa/train/sofa_0297.off +sofa/train/sofa_0298.off +sofa/train/sofa_0299.off +sofa/train/sofa_0300.off +sofa/train/sofa_0301.off +sofa/train/sofa_0302.off +sofa/train/sofa_0303.off +sofa/train/sofa_0304.off +sofa/train/sofa_0305.off +sofa/train/sofa_0306.off +sofa/train/sofa_0307.off +sofa/train/sofa_0308.off +sofa/train/sofa_0309.off +sofa/train/sofa_0310.off +sofa/train/sofa_0311.off +sofa/train/sofa_0312.off +sofa/train/sofa_0313.off +sofa/train/sofa_0314.off +sofa/train/sofa_0315.off +sofa/train/sofa_0316.off +sofa/train/sofa_0317.off +sofa/train/sofa_0318.off +sofa/train/sofa_0319.off +sofa/train/sofa_0320.off +sofa/train/sofa_0321.off +sofa/train/sofa_0322.off +sofa/train/sofa_0323.off +sofa/train/sofa_0324.off +sofa/train/sofa_0325.off +sofa/train/sofa_0326.off +sofa/train/sofa_0327.off +sofa/train/sofa_0328.off +sofa/train/sofa_0329.off +sofa/train/sofa_0330.off +sofa/train/sofa_0331.off +sofa/train/sofa_0332.off +sofa/train/sofa_0333.off +sofa/train/sofa_0334.off +sofa/train/sofa_0335.off +sofa/train/sofa_0336.off +sofa/train/sofa_0337.off +sofa/train/sofa_0338.off +sofa/train/sofa_0339.off +sofa/train/sofa_0340.off +sofa/train/sofa_0341.off +sofa/train/sofa_0342.off +sofa/train/sofa_0343.off +sofa/train/sofa_0344.off +sofa/train/sofa_0345.off +sofa/train/sofa_0346.off +sofa/train/sofa_0347.off +sofa/train/sofa_0348.off +sofa/train/sofa_0349.off +sofa/train/sofa_0350.off +sofa/train/sofa_0351.off +sofa/train/sofa_0352.off +sofa/train/sofa_0353.off +sofa/train/sofa_0354.off +sofa/train/sofa_0355.off +sofa/train/sofa_0356.off +sofa/train/sofa_0357.off +sofa/train/sofa_0358.off +sofa/train/sofa_0359.off +sofa/train/sofa_0360.off +sofa/train/sofa_0361.off +sofa/train/sofa_0362.off +sofa/train/sofa_0363.off +sofa/train/sofa_0364.off +sofa/train/sofa_0365.off +sofa/train/sofa_0366.off +sofa/train/sofa_0367.off +sofa/train/sofa_0368.off +sofa/train/sofa_0369.off +sofa/train/sofa_0370.off +sofa/train/sofa_0371.off +sofa/train/sofa_0372.off +sofa/train/sofa_0373.off +sofa/train/sofa_0374.off +sofa/train/sofa_0375.off +sofa/train/sofa_0376.off +sofa/train/sofa_0377.off +sofa/train/sofa_0378.off +sofa/train/sofa_0379.off +sofa/train/sofa_0380.off +sofa/train/sofa_0381.off +sofa/train/sofa_0382.off +sofa/train/sofa_0383.off +sofa/train/sofa_0384.off +sofa/train/sofa_0385.off +sofa/train/sofa_0386.off +sofa/train/sofa_0387.off +sofa/train/sofa_0388.off +sofa/train/sofa_0389.off +sofa/train/sofa_0390.off +sofa/train/sofa_0391.off +sofa/train/sofa_0392.off +sofa/train/sofa_0393.off +sofa/train/sofa_0394.off +sofa/train/sofa_0395.off +sofa/train/sofa_0396.off +sofa/train/sofa_0397.off +sofa/train/sofa_0398.off +sofa/train/sofa_0399.off +sofa/train/sofa_0400.off +sofa/train/sofa_0401.off +sofa/train/sofa_0402.off +sofa/train/sofa_0403.off +sofa/train/sofa_0404.off +sofa/train/sofa_0405.off +sofa/train/sofa_0406.off +sofa/train/sofa_0407.off +sofa/train/sofa_0408.off +sofa/train/sofa_0409.off +sofa/train/sofa_0410.off +sofa/train/sofa_0411.off +sofa/train/sofa_0412.off +sofa/train/sofa_0413.off +sofa/train/sofa_0414.off +sofa/train/sofa_0415.off +sofa/train/sofa_0416.off +sofa/train/sofa_0417.off +sofa/train/sofa_0418.off +sofa/train/sofa_0419.off +sofa/train/sofa_0420.off +sofa/train/sofa_0421.off +sofa/train/sofa_0422.off +sofa/train/sofa_0423.off +sofa/train/sofa_0424.off +sofa/train/sofa_0425.off +sofa/train/sofa_0426.off +sofa/train/sofa_0427.off +sofa/train/sofa_0428.off +sofa/train/sofa_0429.off +sofa/train/sofa_0430.off +sofa/train/sofa_0431.off +sofa/train/sofa_0432.off +sofa/train/sofa_0433.off +sofa/train/sofa_0434.off +sofa/train/sofa_0435.off +sofa/train/sofa_0436.off +sofa/train/sofa_0437.off +sofa/train/sofa_0438.off +sofa/train/sofa_0439.off +sofa/train/sofa_0440.off +sofa/train/sofa_0441.off +sofa/train/sofa_0442.off +sofa/train/sofa_0443.off +sofa/train/sofa_0444.off +sofa/train/sofa_0445.off +sofa/train/sofa_0446.off +sofa/train/sofa_0447.off +sofa/train/sofa_0448.off +sofa/train/sofa_0449.off +sofa/train/sofa_0450.off +sofa/train/sofa_0451.off +sofa/train/sofa_0452.off +sofa/train/sofa_0453.off +sofa/train/sofa_0454.off +sofa/train/sofa_0455.off +sofa/train/sofa_0456.off +sofa/train/sofa_0457.off +sofa/train/sofa_0458.off +sofa/train/sofa_0459.off +sofa/train/sofa_0460.off +sofa/train/sofa_0461.off +sofa/train/sofa_0462.off +sofa/train/sofa_0463.off +sofa/train/sofa_0464.off +sofa/train/sofa_0465.off +sofa/train/sofa_0466.off +sofa/train/sofa_0467.off +sofa/train/sofa_0468.off +sofa/train/sofa_0469.off +sofa/train/sofa_0470.off +sofa/train/sofa_0471.off +sofa/train/sofa_0472.off +sofa/train/sofa_0473.off +sofa/train/sofa_0474.off +sofa/train/sofa_0475.off +sofa/train/sofa_0476.off +sofa/train/sofa_0477.off +sofa/train/sofa_0478.off +sofa/train/sofa_0479.off +sofa/train/sofa_0480.off +sofa/train/sofa_0481.off +sofa/train/sofa_0482.off +sofa/train/sofa_0483.off +sofa/train/sofa_0484.off +sofa/train/sofa_0485.off +sofa/train/sofa_0486.off +sofa/train/sofa_0487.off +sofa/train/sofa_0488.off +sofa/train/sofa_0489.off +sofa/train/sofa_0490.off +sofa/train/sofa_0491.off +sofa/train/sofa_0492.off +sofa/train/sofa_0493.off +sofa/train/sofa_0494.off +sofa/train/sofa_0495.off +sofa/train/sofa_0496.off +sofa/train/sofa_0497.off +sofa/train/sofa_0498.off +sofa/train/sofa_0499.off +sofa/train/sofa_0500.off +sofa/train/sofa_0501.off +sofa/train/sofa_0502.off +sofa/train/sofa_0503.off +sofa/train/sofa_0504.off +sofa/train/sofa_0505.off +sofa/train/sofa_0506.off +sofa/train/sofa_0507.off +sofa/train/sofa_0508.off +sofa/train/sofa_0509.off +sofa/train/sofa_0510.off +sofa/train/sofa_0511.off +sofa/train/sofa_0512.off +sofa/train/sofa_0513.off +sofa/train/sofa_0514.off +sofa/train/sofa_0515.off +sofa/train/sofa_0516.off +sofa/train/sofa_0517.off +sofa/train/sofa_0518.off +sofa/train/sofa_0519.off +sofa/train/sofa_0520.off +sofa/train/sofa_0521.off +sofa/train/sofa_0522.off +sofa/train/sofa_0523.off +sofa/train/sofa_0524.off +sofa/train/sofa_0525.off +sofa/train/sofa_0526.off +sofa/train/sofa_0527.off +sofa/train/sofa_0528.off +sofa/train/sofa_0529.off +sofa/train/sofa_0530.off +sofa/train/sofa_0531.off +sofa/train/sofa_0532.off +sofa/train/sofa_0533.off +sofa/train/sofa_0534.off +sofa/train/sofa_0535.off +sofa/train/sofa_0536.off +sofa/train/sofa_0537.off +sofa/train/sofa_0538.off +sofa/train/sofa_0539.off +sofa/train/sofa_0540.off +sofa/train/sofa_0541.off +sofa/train/sofa_0542.off +sofa/train/sofa_0543.off +sofa/train/sofa_0544.off +sofa/train/sofa_0545.off +sofa/train/sofa_0546.off +sofa/train/sofa_0547.off +sofa/train/sofa_0548.off +sofa/train/sofa_0549.off +sofa/train/sofa_0550.off +sofa/train/sofa_0551.off +sofa/train/sofa_0552.off +sofa/train/sofa_0553.off +sofa/train/sofa_0554.off +sofa/train/sofa_0555.off +sofa/train/sofa_0556.off +sofa/train/sofa_0557.off +sofa/train/sofa_0558.off +sofa/train/sofa_0559.off +sofa/train/sofa_0560.off +sofa/train/sofa_0561.off +sofa/train/sofa_0562.off +sofa/train/sofa_0563.off +sofa/train/sofa_0564.off +sofa/train/sofa_0565.off +sofa/train/sofa_0566.off +sofa/train/sofa_0567.off +sofa/train/sofa_0568.off +sofa/train/sofa_0569.off +sofa/train/sofa_0570.off +sofa/train/sofa_0571.off +sofa/train/sofa_0572.off +sofa/train/sofa_0573.off +sofa/train/sofa_0574.off +sofa/train/sofa_0575.off +sofa/train/sofa_0576.off +sofa/train/sofa_0577.off +sofa/train/sofa_0578.off +sofa/train/sofa_0579.off +sofa/train/sofa_0580.off +sofa/train/sofa_0581.off +sofa/train/sofa_0582.off +sofa/train/sofa_0583.off +sofa/train/sofa_0584.off +sofa/train/sofa_0585.off +sofa/train/sofa_0586.off +sofa/train/sofa_0587.off +sofa/train/sofa_0588.off +sofa/train/sofa_0589.off +sofa/train/sofa_0590.off +sofa/train/sofa_0591.off +sofa/train/sofa_0592.off +sofa/train/sofa_0593.off +sofa/train/sofa_0594.off +sofa/train/sofa_0595.off +sofa/train/sofa_0596.off +sofa/train/sofa_0597.off +sofa/train/sofa_0598.off +sofa/train/sofa_0599.off +sofa/train/sofa_0600.off +sofa/train/sofa_0601.off +sofa/train/sofa_0602.off +sofa/train/sofa_0603.off +sofa/train/sofa_0604.off +sofa/train/sofa_0605.off +sofa/train/sofa_0606.off +sofa/train/sofa_0607.off +sofa/train/sofa_0608.off +sofa/train/sofa_0609.off +sofa/train/sofa_0610.off +sofa/train/sofa_0611.off +sofa/train/sofa_0612.off +person/train/person_0001.off +person/train/person_0002.off +person/train/person_0003.off +person/train/person_0004.off +person/train/person_0005.off +person/train/person_0006.off +person/train/person_0007.off +person/train/person_0008.off +person/train/person_0009.off +person/train/person_0010.off +person/train/person_0011.off +person/train/person_0012.off +person/train/person_0013.off +person/train/person_0014.off +person/train/person_0015.off +person/train/person_0016.off +person/train/person_0017.off +person/train/person_0018.off +person/train/person_0019.off +person/train/person_0020.off +person/train/person_0021.off +person/train/person_0022.off +person/train/person_0023.off +person/train/person_0024.off +person/train/person_0025.off +person/train/person_0026.off +person/train/person_0027.off +person/train/person_0028.off +person/train/person_0029.off +person/train/person_0030.off +person/train/person_0031.off +person/train/person_0032.off +person/train/person_0033.off +person/train/person_0034.off +person/train/person_0035.off +person/train/person_0036.off +person/train/person_0037.off +person/train/person_0038.off +person/train/person_0039.off +person/train/person_0040.off +person/train/person_0041.off +person/train/person_0042.off +person/train/person_0043.off +person/train/person_0044.off +person/train/person_0045.off +person/train/person_0046.off +person/train/person_0047.off +person/train/person_0048.off +person/train/person_0049.off +person/train/person_0050.off +person/train/person_0051.off +person/train/person_0052.off +person/train/person_0053.off +person/train/person_0054.off +person/train/person_0055.off +person/train/person_0056.off +person/train/person_0057.off +person/train/person_0058.off +person/train/person_0059.off +person/train/person_0060.off +person/train/person_0061.off +person/train/person_0062.off +person/train/person_0063.off +person/train/person_0064.off +person/train/person_0065.off +person/train/person_0066.off +person/train/person_0067.off +person/train/person_0068.off +person/train/person_0069.off +person/train/person_0070.off +person/train/person_0071.off +person/train/person_0072.off +person/train/person_0073.off +person/train/person_0074.off +person/train/person_0075.off +person/train/person_0076.off +person/train/person_0077.off +person/train/person_0078.off +person/train/person_0079.off +person/train/person_0080.off +xbox/train/xbox_0001.off +xbox/train/xbox_0002.off +xbox/train/xbox_0003.off +xbox/train/xbox_0004.off +xbox/train/xbox_0005.off +xbox/train/xbox_0006.off +xbox/train/xbox_0007.off +xbox/train/xbox_0008.off +xbox/train/xbox_0009.off +xbox/train/xbox_0010.off +xbox/train/xbox_0011.off +xbox/train/xbox_0012.off +xbox/train/xbox_0013.off +xbox/train/xbox_0014.off +xbox/train/xbox_0015.off +xbox/train/xbox_0016.off +xbox/train/xbox_0017.off +xbox/train/xbox_0018.off +xbox/train/xbox_0019.off +xbox/train/xbox_0020.off +xbox/train/xbox_0021.off +xbox/train/xbox_0022.off +xbox/train/xbox_0023.off +xbox/train/xbox_0024.off +xbox/train/xbox_0025.off +xbox/train/xbox_0026.off +xbox/train/xbox_0027.off +xbox/train/xbox_0028.off +xbox/train/xbox_0029.off +xbox/train/xbox_0030.off +xbox/train/xbox_0031.off +xbox/train/xbox_0032.off +xbox/train/xbox_0033.off +xbox/train/xbox_0034.off +xbox/train/xbox_0035.off +xbox/train/xbox_0036.off +xbox/train/xbox_0037.off +xbox/train/xbox_0038.off +xbox/train/xbox_0039.off +xbox/train/xbox_0040.off +xbox/train/xbox_0041.off +xbox/train/xbox_0042.off +xbox/train/xbox_0043.off +xbox/train/xbox_0044.off +xbox/train/xbox_0045.off +xbox/train/xbox_0046.off +xbox/train/xbox_0047.off +xbox/train/xbox_0048.off +xbox/train/xbox_0049.off +xbox/train/xbox_0050.off +xbox/train/xbox_0051.off +xbox/train/xbox_0052.off +xbox/train/xbox_0053.off +xbox/train/xbox_0054.off +xbox/train/xbox_0055.off +xbox/train/xbox_0056.off +xbox/train/xbox_0057.off +xbox/train/xbox_0058.off +xbox/train/xbox_0059.off +xbox/train/xbox_0060.off +xbox/train/xbox_0061.off +xbox/train/xbox_0062.off +xbox/train/xbox_0063.off +xbox/train/xbox_0064.off +xbox/train/xbox_0065.off +xbox/train/xbox_0066.off +xbox/train/xbox_0067.off +xbox/train/xbox_0068.off +xbox/train/xbox_0069.off +xbox/train/xbox_0070.off +xbox/train/xbox_0071.off +xbox/train/xbox_0072.off +xbox/train/xbox_0073.off +xbox/train/xbox_0074.off +xbox/train/xbox_0075.off +xbox/train/xbox_0076.off +xbox/train/xbox_0077.off +xbox/train/xbox_0078.off +xbox/train/xbox_0079.off +xbox/train/xbox_0080.off +xbox/train/xbox_0081.off +xbox/train/xbox_0082.off +xbox/train/xbox_0083.off +xbox/train/xbox_0084.off +xbox/train/xbox_0085.off +xbox/train/xbox_0086.off +xbox/train/xbox_0087.off +xbox/train/xbox_0088.off +xbox/train/xbox_0089.off +xbox/train/xbox_0090.off +xbox/train/xbox_0091.off +xbox/train/xbox_0092.off +xbox/train/xbox_0093.off +stairs/train/stairs_0001.off +stairs/train/stairs_0002.off +stairs/train/stairs_0003.off +stairs/train/stairs_0004.off +stairs/train/stairs_0005.off +stairs/train/stairs_0006.off +stairs/train/stairs_0007.off +stairs/train/stairs_0008.off +stairs/train/stairs_0009.off +stairs/train/stairs_0010.off +stairs/train/stairs_0011.off +stairs/train/stairs_0012.off +stairs/train/stairs_0013.off +stairs/train/stairs_0014.off +stairs/train/stairs_0015.off +stairs/train/stairs_0016.off +stairs/train/stairs_0017.off +stairs/train/stairs_0018.off +stairs/train/stairs_0019.off +stairs/train/stairs_0020.off +stairs/train/stairs_0021.off +stairs/train/stairs_0022.off +stairs/train/stairs_0023.off +stairs/train/stairs_0024.off +stairs/train/stairs_0025.off +stairs/train/stairs_0026.off +stairs/train/stairs_0027.off +stairs/train/stairs_0028.off +stairs/train/stairs_0029.off +stairs/train/stairs_0030.off +stairs/train/stairs_0031.off +stairs/train/stairs_0032.off +stairs/train/stairs_0033.off +stairs/train/stairs_0034.off +stairs/train/stairs_0035.off +stairs/train/stairs_0036.off +stairs/train/stairs_0037.off +stairs/train/stairs_0038.off +stairs/train/stairs_0039.off +stairs/train/stairs_0040.off +stairs/train/stairs_0041.off +stairs/train/stairs_0042.off +stairs/train/stairs_0043.off +stairs/train/stairs_0044.off +stairs/train/stairs_0045.off +stairs/train/stairs_0046.off +stairs/train/stairs_0047.off +stairs/train/stairs_0048.off +stairs/train/stairs_0049.off +stairs/train/stairs_0050.off +stairs/train/stairs_0051.off +stairs/train/stairs_0052.off +stairs/train/stairs_0053.off +stairs/train/stairs_0054.off +stairs/train/stairs_0055.off +stairs/train/stairs_0056.off +stairs/train/stairs_0057.off +stairs/train/stairs_0058.off +stairs/train/stairs_0059.off +stairs/train/stairs_0060.off +stairs/train/stairs_0061.off +stairs/train/stairs_0062.off +stairs/train/stairs_0063.off +stairs/train/stairs_0064.off +stairs/train/stairs_0065.off +stairs/train/stairs_0066.off +stairs/train/stairs_0067.off +stairs/train/stairs_0068.off +stairs/train/stairs_0069.off +stairs/train/stairs_0070.off +stairs/train/stairs_0071.off +stairs/train/stairs_0072.off +stairs/train/stairs_0073.off +stairs/train/stairs_0074.off +stairs/train/stairs_0075.off +stairs/train/stairs_0076.off +stairs/train/stairs_0077.off +stairs/train/stairs_0078.off +stairs/train/stairs_0079.off +stairs/train/stairs_0080.off +stairs/train/stairs_0081.off +stairs/train/stairs_0082.off +stairs/train/stairs_0083.off +stairs/train/stairs_0084.off +stairs/train/stairs_0085.off +stairs/train/stairs_0086.off +stairs/train/stairs_0087.off +stairs/train/stairs_0088.off +stairs/train/stairs_0089.off +stairs/train/stairs_0090.off +stairs/train/stairs_0091.off +stairs/train/stairs_0092.off +stairs/train/stairs_0093.off +stairs/train/stairs_0094.off +stairs/train/stairs_0095.off +stairs/train/stairs_0096.off +stairs/train/stairs_0097.off +stairs/train/stairs_0098.off +stairs/train/stairs_0099.off +stairs/train/stairs_0100.off +stairs/train/stairs_0101.off +stairs/train/stairs_0102.off +stairs/train/stairs_0103.off +stairs/train/stairs_0104.off +stairs/train/stairs_0105.off +stairs/train/stairs_0106.off +stairs/train/stairs_0107.off +stairs/train/stairs_0108.off +stairs/train/stairs_0109.off +stairs/train/stairs_0110.off +stairs/train/stairs_0111.off +stairs/train/stairs_0112.off +cone/train/cone_0001.off +cone/train/cone_0002.off +cone/train/cone_0003.off +cone/train/cone_0004.off +cone/train/cone_0005.off +cone/train/cone_0006.off +cone/train/cone_0007.off +cone/train/cone_0008.off +cone/train/cone_0009.off +cone/train/cone_0010.off +cone/train/cone_0011.off +cone/train/cone_0012.off +cone/train/cone_0013.off +cone/train/cone_0014.off +cone/train/cone_0015.off +cone/train/cone_0016.off +cone/train/cone_0017.off +cone/train/cone_0018.off +cone/train/cone_0019.off +cone/train/cone_0020.off +cone/train/cone_0021.off +cone/train/cone_0022.off +cone/train/cone_0023.off +cone/train/cone_0024.off +cone/train/cone_0025.off +cone/train/cone_0026.off +cone/train/cone_0027.off +cone/train/cone_0028.off +cone/train/cone_0029.off +cone/train/cone_0030.off +cone/train/cone_0031.off +cone/train/cone_0032.off +cone/train/cone_0033.off +cone/train/cone_0034.off +cone/train/cone_0035.off +cone/train/cone_0036.off +cone/train/cone_0037.off +cone/train/cone_0038.off +cone/train/cone_0039.off +cone/train/cone_0040.off +cone/train/cone_0041.off +cone/train/cone_0042.off +cone/train/cone_0043.off +cone/train/cone_0044.off +cone/train/cone_0045.off +cone/train/cone_0046.off +cone/train/cone_0047.off +cone/train/cone_0048.off +cone/train/cone_0049.off +cone/train/cone_0050.off +cone/train/cone_0051.off +cone/train/cone_0052.off +cone/train/cone_0053.off +cone/train/cone_0054.off +cone/train/cone_0055.off +cone/train/cone_0056.off +cone/train/cone_0057.off +cone/train/cone_0058.off +cone/train/cone_0059.off +cone/train/cone_0060.off +cone/train/cone_0061.off +cone/train/cone_0062.off +cone/train/cone_0063.off +cone/train/cone_0064.off +cone/train/cone_0065.off +cone/train/cone_0066.off +cone/train/cone_0067.off +cone/train/cone_0068.off +cone/train/cone_0069.off +cone/train/cone_0070.off +cone/train/cone_0071.off +cone/train/cone_0072.off +cone/train/cone_0073.off +cone/train/cone_0074.off +cone/train/cone_0075.off +cone/train/cone_0076.off +cone/train/cone_0077.off +cone/train/cone_0078.off +cone/train/cone_0079.off +cone/train/cone_0080.off +cone/train/cone_0081.off +cone/train/cone_0082.off +cone/train/cone_0083.off +cone/train/cone_0084.off +cone/train/cone_0085.off +cone/train/cone_0086.off +cone/train/cone_0087.off +cone/train/cone_0088.off +cone/train/cone_0089.off +cone/train/cone_0090.off +cone/train/cone_0091.off +cone/train/cone_0092.off +cone/train/cone_0093.off +cone/train/cone_0094.off +cone/train/cone_0095.off +cone/train/cone_0096.off +cone/train/cone_0097.off +cone/train/cone_0098.off +cone/train/cone_0099.off +cone/train/cone_0100.off +cone/train/cone_0101.off +cone/train/cone_0102.off +cone/train/cone_0103.off +cone/train/cone_0104.off +cone/train/cone_0105.off +cone/train/cone_0106.off +cone/train/cone_0107.off +cone/train/cone_0108.off +cone/train/cone_0109.off +cone/train/cone_0110.off +cone/train/cone_0111.off +cone/train/cone_0112.off +cone/train/cone_0113.off +cone/train/cone_0114.off +cone/train/cone_0115.off +cone/train/cone_0116.off +cone/train/cone_0117.off +cone/train/cone_0118.off +cone/train/cone_0119.off +cone/train/cone_0120.off +cone/train/cone_0121.off +cone/train/cone_0122.off +cone/train/cone_0123.off +cone/train/cone_0124.off +cone/train/cone_0125.off +cone/train/cone_0126.off +cone/train/cone_0127.off +cone/train/cone_0128.off +cone/train/cone_0129.off +cone/train/cone_0130.off +cone/train/cone_0131.off +cone/train/cone_0132.off +cone/train/cone_0133.off +cone/train/cone_0134.off +cone/train/cone_0135.off +cone/train/cone_0136.off +cone/train/cone_0137.off +cone/train/cone_0138.off +cone/train/cone_0139.off +cone/train/cone_0140.off +cone/train/cone_0141.off +cone/train/cone_0142.off +cone/train/cone_0143.off +cone/train/cone_0144.off +cone/train/cone_0145.off +cone/train/cone_0146.off +cone/train/cone_0147.off +cone/train/cone_0148.off +cone/train/cone_0149.off +cone/train/cone_0150.off +cone/train/cone_0151.off +lamp/train/lamp_0001.off +lamp/train/lamp_0002.off +lamp/train/lamp_0003.off +lamp/train/lamp_0004.off +lamp/train/lamp_0005.off +lamp/train/lamp_0006.off +lamp/train/lamp_0007.off +lamp/train/lamp_0008.off +lamp/train/lamp_0009.off +lamp/train/lamp_0010.off +lamp/train/lamp_0011.off +lamp/train/lamp_0012.off +lamp/train/lamp_0013.off +lamp/train/lamp_0014.off +lamp/train/lamp_0015.off +lamp/train/lamp_0016.off +lamp/train/lamp_0017.off +lamp/train/lamp_0018.off +lamp/train/lamp_0019.off +lamp/train/lamp_0020.off +lamp/train/lamp_0021.off +lamp/train/lamp_0022.off +lamp/train/lamp_0023.off +lamp/train/lamp_0024.off +lamp/train/lamp_0025.off +lamp/train/lamp_0026.off +lamp/train/lamp_0027.off +lamp/train/lamp_0028.off +lamp/train/lamp_0029.off +lamp/train/lamp_0030.off +lamp/train/lamp_0031.off +lamp/train/lamp_0032.off +lamp/train/lamp_0033.off +lamp/train/lamp_0034.off +lamp/train/lamp_0035.off +lamp/train/lamp_0036.off +lamp/train/lamp_0037.off +lamp/train/lamp_0038.off +lamp/train/lamp_0039.off +lamp/train/lamp_0040.off +lamp/train/lamp_0041.off +lamp/train/lamp_0042.off +lamp/train/lamp_0043.off +lamp/train/lamp_0044.off +lamp/train/lamp_0045.off +lamp/train/lamp_0046.off +lamp/train/lamp_0047.off +lamp/train/lamp_0048.off +lamp/train/lamp_0049.off +lamp/train/lamp_0050.off +lamp/train/lamp_0051.off +lamp/train/lamp_0052.off +lamp/train/lamp_0053.off +lamp/train/lamp_0054.off +lamp/train/lamp_0055.off +lamp/train/lamp_0056.off +lamp/train/lamp_0057.off +lamp/train/lamp_0058.off +lamp/train/lamp_0059.off +lamp/train/lamp_0060.off +lamp/train/lamp_0061.off +lamp/train/lamp_0062.off +lamp/train/lamp_0063.off +lamp/train/lamp_0064.off +lamp/train/lamp_0065.off +lamp/train/lamp_0066.off +lamp/train/lamp_0067.off +lamp/train/lamp_0068.off +lamp/train/lamp_0069.off +lamp/train/lamp_0070.off +lamp/train/lamp_0071.off +lamp/train/lamp_0072.off +lamp/train/lamp_0073.off +lamp/train/lamp_0074.off +lamp/train/lamp_0075.off +lamp/train/lamp_0076.off +lamp/train/lamp_0077.off +lamp/train/lamp_0078.off +lamp/train/lamp_0079.off +lamp/train/lamp_0080.off +lamp/train/lamp_0081.off +lamp/train/lamp_0082.off +lamp/train/lamp_0083.off +lamp/train/lamp_0084.off +lamp/train/lamp_0085.off +lamp/train/lamp_0086.off +lamp/train/lamp_0087.off +lamp/train/lamp_0088.off +lamp/train/lamp_0089.off +lamp/train/lamp_0090.off +lamp/train/lamp_0091.off +lamp/train/lamp_0092.off +lamp/train/lamp_0093.off +lamp/train/lamp_0094.off +lamp/train/lamp_0095.off +lamp/train/lamp_0096.off +lamp/train/lamp_0097.off +lamp/train/lamp_0098.off +lamp/train/lamp_0099.off +lamp/train/lamp_0100.off +lamp/train/lamp_0101.off +lamp/train/lamp_0102.off +lamp/train/lamp_0103.off +lamp/train/lamp_0104.off +lamp/train/lamp_0105.off +lamp/train/lamp_0106.off +lamp/train/lamp_0107.off +lamp/train/lamp_0108.off +lamp/train/lamp_0109.off +lamp/train/lamp_0110.off +lamp/train/lamp_0111.off +lamp/train/lamp_0112.off +door/train/door_0001.off +door/train/door_0002.off +door/train/door_0003.off +door/train/door_0004.off +door/train/door_0005.off +door/train/door_0006.off +door/train/door_0007.off +door/train/door_0008.off +door/train/door_0009.off +door/train/door_0010.off +door/train/door_0011.off +door/train/door_0012.off +door/train/door_0013.off +door/train/door_0014.off +door/train/door_0015.off +door/train/door_0016.off +door/train/door_0017.off +door/train/door_0018.off +door/train/door_0019.off +door/train/door_0020.off +door/train/door_0021.off +door/train/door_0022.off +door/train/door_0023.off +door/train/door_0024.off +door/train/door_0025.off +door/train/door_0026.off +door/train/door_0027.off +door/train/door_0028.off +door/train/door_0029.off +door/train/door_0030.off +door/train/door_0031.off +door/train/door_0032.off +door/train/door_0033.off +door/train/door_0034.off +door/train/door_0035.off +door/train/door_0036.off +door/train/door_0037.off +door/train/door_0038.off +door/train/door_0039.off +door/train/door_0040.off +door/train/door_0041.off +door/train/door_0042.off +door/train/door_0043.off +door/train/door_0044.off +door/train/door_0045.off +door/train/door_0046.off +door/train/door_0047.off +door/train/door_0048.off +door/train/door_0049.off +door/train/door_0050.off +door/train/door_0051.off +door/train/door_0052.off +door/train/door_0053.off +door/train/door_0054.off +door/train/door_0055.off +door/train/door_0056.off +door/train/door_0057.off +door/train/door_0058.off +door/train/door_0059.off +door/train/door_0060.off +door/train/door_0061.off +door/train/door_0062.off +door/train/door_0063.off +door/train/door_0064.off +door/train/door_0065.off +door/train/door_0066.off +door/train/door_0067.off +door/train/door_0068.off +door/train/door_0069.off +door/train/door_0070.off +door/train/door_0071.off +door/train/door_0072.off +door/train/door_0073.off +door/train/door_0074.off +door/train/door_0075.off +door/train/door_0076.off +door/train/door_0077.off +door/train/door_0078.off +door/train/door_0079.off +door/train/door_0080.off +door/train/door_0081.off +door/train/door_0082.off +door/train/door_0083.off +door/train/door_0084.off +door/train/door_0085.off +door/train/door_0086.off +door/train/door_0087.off +door/train/door_0088.off +door/train/door_0089.off +door/train/door_0090.off +door/train/door_0091.off +door/train/door_0092.off +door/train/door_0093.off +door/train/door_0094.off +door/train/door_0095.off +door/train/door_0096.off +door/train/door_0097.off +door/train/door_0098.off +door/train/door_0099.off +range_hood/train/range_hood_0001.off +range_hood/train/range_hood_0002.off +range_hood/train/range_hood_0003.off +range_hood/train/range_hood_0004.off +range_hood/train/range_hood_0005.off +range_hood/train/range_hood_0006.off +range_hood/train/range_hood_0007.off +range_hood/train/range_hood_0008.off +range_hood/train/range_hood_0009.off +range_hood/train/range_hood_0010.off +range_hood/train/range_hood_0011.off +range_hood/train/range_hood_0012.off +range_hood/train/range_hood_0013.off +range_hood/train/range_hood_0014.off +range_hood/train/range_hood_0015.off +range_hood/train/range_hood_0016.off +range_hood/train/range_hood_0017.off +range_hood/train/range_hood_0018.off +range_hood/train/range_hood_0019.off +range_hood/train/range_hood_0020.off +range_hood/train/range_hood_0021.off +range_hood/train/range_hood_0022.off +range_hood/train/range_hood_0023.off +range_hood/train/range_hood_0024.off +range_hood/train/range_hood_0025.off +range_hood/train/range_hood_0026.off +range_hood/train/range_hood_0027.off +range_hood/train/range_hood_0028.off +range_hood/train/range_hood_0029.off +range_hood/train/range_hood_0030.off +range_hood/train/range_hood_0031.off +range_hood/train/range_hood_0032.off +range_hood/train/range_hood_0033.off +range_hood/train/range_hood_0034.off +range_hood/train/range_hood_0035.off +range_hood/train/range_hood_0036.off +range_hood/train/range_hood_0037.off +range_hood/train/range_hood_0038.off +range_hood/train/range_hood_0039.off +range_hood/train/range_hood_0040.off +range_hood/train/range_hood_0041.off +range_hood/train/range_hood_0042.off +range_hood/train/range_hood_0043.off +range_hood/train/range_hood_0044.off +range_hood/train/range_hood_0045.off +range_hood/train/range_hood_0046.off +range_hood/train/range_hood_0047.off +range_hood/train/range_hood_0048.off +range_hood/train/range_hood_0049.off +range_hood/train/range_hood_0050.off +range_hood/train/range_hood_0051.off +range_hood/train/range_hood_0052.off +range_hood/train/range_hood_0053.off +range_hood/train/range_hood_0054.off +range_hood/train/range_hood_0055.off +range_hood/train/range_hood_0056.off +range_hood/train/range_hood_0057.off +range_hood/train/range_hood_0058.off +range_hood/train/range_hood_0059.off +range_hood/train/range_hood_0060.off +range_hood/train/range_hood_0061.off +range_hood/train/range_hood_0062.off +range_hood/train/range_hood_0063.off +range_hood/train/range_hood_0064.off +range_hood/train/range_hood_0065.off +range_hood/train/range_hood_0066.off +range_hood/train/range_hood_0067.off +range_hood/train/range_hood_0068.off +range_hood/train/range_hood_0069.off +range_hood/train/range_hood_0070.off +range_hood/train/range_hood_0071.off +range_hood/train/range_hood_0072.off +range_hood/train/range_hood_0073.off +range_hood/train/range_hood_0074.off +range_hood/train/range_hood_0075.off +range_hood/train/range_hood_0076.off +range_hood/train/range_hood_0077.off +range_hood/train/range_hood_0078.off +range_hood/train/range_hood_0079.off +range_hood/train/range_hood_0080.off +range_hood/train/range_hood_0081.off +range_hood/train/range_hood_0082.off +range_hood/train/range_hood_0083.off +range_hood/train/range_hood_0084.off +range_hood/train/range_hood_0085.off +range_hood/train/range_hood_0086.off +range_hood/train/range_hood_0087.off +range_hood/train/range_hood_0088.off +range_hood/train/range_hood_0089.off +range_hood/train/range_hood_0090.off +range_hood/train/range_hood_0091.off +range_hood/train/range_hood_0092.off +range_hood/train/range_hood_0093.off +range_hood/train/range_hood_0094.off +range_hood/train/range_hood_0095.off +range_hood/train/range_hood_0096.off +range_hood/train/range_hood_0097.off +range_hood/train/range_hood_0098.off +range_hood/train/range_hood_0099.off +range_hood/train/range_hood_0100.off +range_hood/train/range_hood_0101.off +range_hood/train/range_hood_0102.off +range_hood/train/range_hood_0103.off +range_hood/train/range_hood_0104.off +flower_pot/train/flower_pot_0001.off +flower_pot/train/flower_pot_0002.off +flower_pot/train/flower_pot_0003.off +flower_pot/train/flower_pot_0004.off +flower_pot/train/flower_pot_0005.off +flower_pot/train/flower_pot_0006.off +flower_pot/train/flower_pot_0007.off +flower_pot/train/flower_pot_0008.off +flower_pot/train/flower_pot_0009.off +flower_pot/train/flower_pot_0010.off +flower_pot/train/flower_pot_0011.off +flower_pot/train/flower_pot_0012.off +flower_pot/train/flower_pot_0013.off +flower_pot/train/flower_pot_0014.off +flower_pot/train/flower_pot_0015.off +flower_pot/train/flower_pot_0016.off +flower_pot/train/flower_pot_0017.off +flower_pot/train/flower_pot_0018.off +flower_pot/train/flower_pot_0019.off +flower_pot/train/flower_pot_0020.off +flower_pot/train/flower_pot_0021.off +flower_pot/train/flower_pot_0022.off +flower_pot/train/flower_pot_0023.off +flower_pot/train/flower_pot_0024.off +flower_pot/train/flower_pot_0025.off +flower_pot/train/flower_pot_0026.off +flower_pot/train/flower_pot_0027.off +flower_pot/train/flower_pot_0028.off +flower_pot/train/flower_pot_0029.off +flower_pot/train/flower_pot_0030.off +flower_pot/train/flower_pot_0031.off +flower_pot/train/flower_pot_0032.off +flower_pot/train/flower_pot_0033.off +flower_pot/train/flower_pot_0034.off +flower_pot/train/flower_pot_0035.off +flower_pot/train/flower_pot_0036.off +flower_pot/train/flower_pot_0037.off +flower_pot/train/flower_pot_0038.off +flower_pot/train/flower_pot_0039.off +flower_pot/train/flower_pot_0040.off +flower_pot/train/flower_pot_0041.off +flower_pot/train/flower_pot_0042.off +flower_pot/train/flower_pot_0043.off +flower_pot/train/flower_pot_0044.off +flower_pot/train/flower_pot_0045.off +flower_pot/train/flower_pot_0046.off +flower_pot/train/flower_pot_0047.off +flower_pot/train/flower_pot_0048.off +flower_pot/train/flower_pot_0049.off +flower_pot/train/flower_pot_0050.off +flower_pot/train/flower_pot_0051.off +flower_pot/train/flower_pot_0052.off +flower_pot/train/flower_pot_0053.off +flower_pot/train/flower_pot_0054.off +flower_pot/train/flower_pot_0055.off +flower_pot/train/flower_pot_0056.off +flower_pot/train/flower_pot_0057.off +flower_pot/train/flower_pot_0058.off +flower_pot/train/flower_pot_0059.off +flower_pot/train/flower_pot_0060.off +flower_pot/train/flower_pot_0061.off +flower_pot/train/flower_pot_0062.off +flower_pot/train/flower_pot_0063.off +flower_pot/train/flower_pot_0064.off +flower_pot/train/flower_pot_0065.off +flower_pot/train/flower_pot_0066.off +flower_pot/train/flower_pot_0067.off +flower_pot/train/flower_pot_0068.off +flower_pot/train/flower_pot_0069.off +flower_pot/train/flower_pot_0070.off +flower_pot/train/flower_pot_0071.off +flower_pot/train/flower_pot_0072.off +flower_pot/train/flower_pot_0073.off +flower_pot/train/flower_pot_0074.off +flower_pot/train/flower_pot_0075.off +flower_pot/train/flower_pot_0076.off +flower_pot/train/flower_pot_0077.off +flower_pot/train/flower_pot_0078.off +flower_pot/train/flower_pot_0079.off +flower_pot/train/flower_pot_0080.off +flower_pot/train/flower_pot_0081.off +flower_pot/train/flower_pot_0082.off +flower_pot/train/flower_pot_0083.off +flower_pot/train/flower_pot_0084.off +flower_pot/train/flower_pot_0085.off +flower_pot/train/flower_pot_0086.off +flower_pot/train/flower_pot_0087.off +flower_pot/train/flower_pot_0088.off +flower_pot/train/flower_pot_0089.off +flower_pot/train/flower_pot_0090.off +flower_pot/train/flower_pot_0091.off +flower_pot/train/flower_pot_0092.off +flower_pot/train/flower_pot_0093.off +flower_pot/train/flower_pot_0094.off +flower_pot/train/flower_pot_0095.off +flower_pot/train/flower_pot_0096.off +flower_pot/train/flower_pot_0097.off +flower_pot/train/flower_pot_0098.off +flower_pot/train/flower_pot_0099.off +flower_pot/train/flower_pot_0100.off +flower_pot/train/flower_pot_0101.off +flower_pot/train/flower_pot_0102.off +flower_pot/train/flower_pot_0103.off +flower_pot/train/flower_pot_0104.off +flower_pot/train/flower_pot_0105.off +flower_pot/train/flower_pot_0106.off +flower_pot/train/flower_pot_0107.off +flower_pot/train/flower_pot_0108.off +flower_pot/train/flower_pot_0109.off +flower_pot/train/flower_pot_0110.off +flower_pot/train/flower_pot_0111.off +flower_pot/train/flower_pot_0112.off +flower_pot/train/flower_pot_0113.off +flower_pot/train/flower_pot_0114.off +flower_pot/train/flower_pot_0115.off +flower_pot/train/flower_pot_0116.off +flower_pot/train/flower_pot_0117.off +flower_pot/train/flower_pot_0118.off +flower_pot/train/flower_pot_0119.off +flower_pot/train/flower_pot_0120.off +flower_pot/train/flower_pot_0121.off +flower_pot/train/flower_pot_0122.off +flower_pot/train/flower_pot_0123.off +flower_pot/train/flower_pot_0124.off +flower_pot/train/flower_pot_0125.off +flower_pot/train/flower_pot_0126.off +flower_pot/train/flower_pot_0127.off +flower_pot/train/flower_pot_0128.off +flower_pot/train/flower_pot_0129.off +flower_pot/train/flower_pot_0130.off +flower_pot/train/flower_pot_0131.off +flower_pot/train/flower_pot_0132.off +flower_pot/train/flower_pot_0133.off +flower_pot/train/flower_pot_0134.off +flower_pot/train/flower_pot_0135.off \ No newline at end of file diff --git a/pcam/datasets/split/val_3dmatch.txt b/pcam/datasets/split/val_3dmatch.txt new file mode 100755 index 0000000..eee6d39 --- /dev/null +++ b/pcam/datasets/split/val_3dmatch.txt @@ -0,0 +1,6 @@ +sun3d-brown_bm_4-brown_bm_4 +sun3d-harvard_c11-hv_c11_2 +7-scenes-heads +rgbd-scenes-v2-scene_10 +bundlefusion-office0 +analysis-by-synthesis-apt2-kitchen diff --git a/pcam/datasets/split/val_kitti.txt b/pcam/datasets/split/val_kitti.txt new file mode 100755 index 0000000..baf1966 --- /dev/null +++ b/pcam/datasets/split/val_kitti.txt @@ -0,0 +1,2 @@ +6 +7 diff --git a/pcam/datasets/split/val_modelnet40.txt b/pcam/datasets/split/val_modelnet40.txt new file mode 100755 index 0000000..bbac7a1 --- /dev/null +++ b/pcam/datasets/split/val_modelnet40.txt @@ -0,0 +1,966 @@ +glass_box/train/glass_box_0155.off +glass_box/train/glass_box_0156.off +glass_box/train/glass_box_0157.off +glass_box/train/glass_box_0158.off +glass_box/train/glass_box_0159.off +glass_box/train/glass_box_0160.off +glass_box/train/glass_box_0161.off +glass_box/train/glass_box_0162.off +glass_box/train/glass_box_0163.off +glass_box/train/glass_box_0164.off +glass_box/train/glass_box_0165.off +glass_box/train/glass_box_0166.off +glass_box/train/glass_box_0167.off +glass_box/train/glass_box_0168.off +glass_box/train/glass_box_0169.off +glass_box/train/glass_box_0170.off +glass_box/train/glass_box_0171.off +laptop/train/laptop_0136.off +laptop/train/laptop_0137.off +laptop/train/laptop_0138.off +laptop/train/laptop_0139.off +laptop/train/laptop_0140.off +laptop/train/laptop_0141.off +laptop/train/laptop_0142.off +laptop/train/laptop_0143.off +laptop/train/laptop_0144.off +laptop/train/laptop_0145.off +laptop/train/laptop_0146.off +laptop/train/laptop_0147.off +laptop/train/laptop_0148.off +laptop/train/laptop_0149.off +sink/train/sink_0117.off +sink/train/sink_0118.off +sink/train/sink_0119.off +sink/train/sink_0120.off +sink/train/sink_0121.off +sink/train/sink_0122.off +sink/train/sink_0123.off +sink/train/sink_0124.off +sink/train/sink_0125.off +sink/train/sink_0126.off +sink/train/sink_0127.off +sink/train/sink_0128.off +night_stand/train/night_stand_0181.off +night_stand/train/night_stand_0182.off +night_stand/train/night_stand_0183.off +night_stand/train/night_stand_0184.off +night_stand/train/night_stand_0185.off +night_stand/train/night_stand_0186.off +night_stand/train/night_stand_0187.off +night_stand/train/night_stand_0188.off +night_stand/train/night_stand_0189.off +night_stand/train/night_stand_0190.off +night_stand/train/night_stand_0191.off +night_stand/train/night_stand_0192.off +night_stand/train/night_stand_0193.off +night_stand/train/night_stand_0194.off +night_stand/train/night_stand_0195.off +night_stand/train/night_stand_0196.off +night_stand/train/night_stand_0197.off +night_stand/train/night_stand_0198.off +night_stand/train/night_stand_0199.off +night_stand/train/night_stand_0200.off +car/train/car_0179.off +car/train/car_0180.off +car/train/car_0181.off +car/train/car_0182.off +car/train/car_0183.off +car/train/car_0184.off +car/train/car_0185.off +car/train/car_0186.off +car/train/car_0187.off +car/train/car_0188.off +car/train/car_0189.off +car/train/car_0190.off +car/train/car_0191.off +car/train/car_0192.off +car/train/car_0193.off +car/train/car_0194.off +car/train/car_0195.off +car/train/car_0196.off +car/train/car_0197.off +dresser/train/dresser_0181.off +dresser/train/dresser_0182.off +dresser/train/dresser_0183.off +dresser/train/dresser_0184.off +dresser/train/dresser_0185.off +dresser/train/dresser_0186.off +dresser/train/dresser_0187.off +dresser/train/dresser_0188.off +dresser/train/dresser_0189.off +dresser/train/dresser_0190.off +dresser/train/dresser_0191.off +dresser/train/dresser_0192.off +dresser/train/dresser_0193.off +dresser/train/dresser_0194.off +dresser/train/dresser_0195.off +dresser/train/dresser_0196.off +dresser/train/dresser_0197.off +dresser/train/dresser_0198.off +dresser/train/dresser_0199.off +dresser/train/dresser_0200.off +toilet/train/toilet_0311.off +toilet/train/toilet_0312.off +toilet/train/toilet_0313.off +toilet/train/toilet_0314.off +toilet/train/toilet_0315.off +toilet/train/toilet_0316.off +toilet/train/toilet_0317.off +toilet/train/toilet_0318.off +toilet/train/toilet_0319.off +toilet/train/toilet_0320.off +toilet/train/toilet_0321.off +toilet/train/toilet_0322.off +toilet/train/toilet_0323.off +toilet/train/toilet_0324.off +toilet/train/toilet_0325.off +toilet/train/toilet_0326.off +toilet/train/toilet_0327.off +toilet/train/toilet_0328.off +toilet/train/toilet_0329.off +toilet/train/toilet_0330.off +toilet/train/toilet_0331.off +toilet/train/toilet_0332.off +toilet/train/toilet_0333.off +toilet/train/toilet_0334.off +toilet/train/toilet_0335.off +toilet/train/toilet_0336.off +toilet/train/toilet_0337.off +toilet/train/toilet_0338.off +toilet/train/toilet_0339.off +toilet/train/toilet_0340.off +toilet/train/toilet_0341.off +toilet/train/toilet_0342.off +toilet/train/toilet_0343.off +toilet/train/toilet_0344.off +curtain/train/curtain_0126.off +curtain/train/curtain_0127.off +curtain/train/curtain_0128.off +curtain/train/curtain_0129.off +curtain/train/curtain_0130.off +curtain/train/curtain_0131.off +curtain/train/curtain_0132.off +curtain/train/curtain_0133.off +curtain/train/curtain_0134.off +curtain/train/curtain_0135.off +curtain/train/curtain_0136.off +curtain/train/curtain_0137.off +curtain/train/curtain_0138.off +wardrobe/train/wardrobe_0080.off +wardrobe/train/wardrobe_0081.off +wardrobe/train/wardrobe_0082.off +wardrobe/train/wardrobe_0083.off +wardrobe/train/wardrobe_0084.off +wardrobe/train/wardrobe_0085.off +wardrobe/train/wardrobe_0086.off +wardrobe/train/wardrobe_0087.off +stool/train/stool_0082.off +stool/train/stool_0083.off +stool/train/stool_0084.off +stool/train/stool_0085.off +stool/train/stool_0086.off +stool/train/stool_0087.off +stool/train/stool_0088.off +stool/train/stool_0089.off +stool/train/stool_0090.off +mantel/train/mantel_0257.off +mantel/train/mantel_0258.off +mantel/train/mantel_0259.off +mantel/train/mantel_0260.off +mantel/train/mantel_0261.off +mantel/train/mantel_0262.off +mantel/train/mantel_0263.off +mantel/train/mantel_0264.off +mantel/train/mantel_0265.off +mantel/train/mantel_0266.off +mantel/train/mantel_0267.off +mantel/train/mantel_0268.off +mantel/train/mantel_0269.off +mantel/train/mantel_0270.off +mantel/train/mantel_0271.off +mantel/train/mantel_0272.off +mantel/train/mantel_0273.off +mantel/train/mantel_0274.off +mantel/train/mantel_0275.off +mantel/train/mantel_0276.off +mantel/train/mantel_0277.off +mantel/train/mantel_0278.off +mantel/train/mantel_0279.off +mantel/train/mantel_0280.off +mantel/train/mantel_0281.off +mantel/train/mantel_0282.off +mantel/train/mantel_0283.off +mantel/train/mantel_0284.off +cup/train/cup_0073.off +cup/train/cup_0074.off +cup/train/cup_0075.off +cup/train/cup_0076.off +cup/train/cup_0077.off +cup/train/cup_0078.off +cup/train/cup_0079.off +radio/train/radio_0095.off +radio/train/radio_0096.off +radio/train/radio_0097.off +radio/train/radio_0098.off +radio/train/radio_0099.off +radio/train/radio_0100.off +radio/train/radio_0101.off +radio/train/radio_0102.off +radio/train/radio_0103.off +radio/train/radio_0104.off +airplane/train/airplane_0565.off +airplane/train/airplane_0566.off +airplane/train/airplane_0567.off +airplane/train/airplane_0568.off +airplane/train/airplane_0569.off +airplane/train/airplane_0570.off +airplane/train/airplane_0571.off +airplane/train/airplane_0572.off +airplane/train/airplane_0573.off +airplane/train/airplane_0574.off +airplane/train/airplane_0575.off +airplane/train/airplane_0576.off +airplane/train/airplane_0577.off +airplane/train/airplane_0578.off +airplane/train/airplane_0579.off +airplane/train/airplane_0580.off +airplane/train/airplane_0581.off +airplane/train/airplane_0582.off +airplane/train/airplane_0583.off +airplane/train/airplane_0584.off +airplane/train/airplane_0585.off +airplane/train/airplane_0586.off +airplane/train/airplane_0587.off +airplane/train/airplane_0588.off +airplane/train/airplane_0589.off +airplane/train/airplane_0590.off +airplane/train/airplane_0591.off +airplane/train/airplane_0592.off +airplane/train/airplane_0593.off +airplane/train/airplane_0594.off +airplane/train/airplane_0595.off +airplane/train/airplane_0596.off +airplane/train/airplane_0597.off +airplane/train/airplane_0598.off +airplane/train/airplane_0599.off +airplane/train/airplane_0600.off +airplane/train/airplane_0601.off +airplane/train/airplane_0602.off +airplane/train/airplane_0603.off +airplane/train/airplane_0604.off +airplane/train/airplane_0605.off +airplane/train/airplane_0606.off +airplane/train/airplane_0607.off +airplane/train/airplane_0608.off +airplane/train/airplane_0609.off +airplane/train/airplane_0610.off +airplane/train/airplane_0611.off +airplane/train/airplane_0612.off +airplane/train/airplane_0613.off +airplane/train/airplane_0614.off +airplane/train/airplane_0615.off +airplane/train/airplane_0616.off +airplane/train/airplane_0617.off +airplane/train/airplane_0618.off +airplane/train/airplane_0619.off +airplane/train/airplane_0620.off +airplane/train/airplane_0621.off +airplane/train/airplane_0622.off +airplane/train/airplane_0623.off +airplane/train/airplane_0624.off +airplane/train/airplane_0625.off +airplane/train/airplane_0626.off +table/train/table_0354.off +table/train/table_0355.off +table/train/table_0356.off +table/train/table_0357.off +table/train/table_0358.off +table/train/table_0359.off +table/train/table_0360.off +table/train/table_0361.off +table/train/table_0362.off +table/train/table_0363.off +table/train/table_0364.off +table/train/table_0365.off +table/train/table_0366.off +table/train/table_0367.off +table/train/table_0368.off +table/train/table_0369.off +table/train/table_0370.off +table/train/table_0371.off +table/train/table_0372.off +table/train/table_0373.off +table/train/table_0374.off +table/train/table_0375.off +table/train/table_0376.off +table/train/table_0377.off +table/train/table_0378.off +table/train/table_0379.off +table/train/table_0380.off +table/train/table_0381.off +table/train/table_0382.off +table/train/table_0383.off +table/train/table_0384.off +table/train/table_0385.off +table/train/table_0386.off +table/train/table_0387.off +table/train/table_0388.off +table/train/table_0389.off +table/train/table_0390.off +table/train/table_0391.off +table/train/table_0392.off +bench/train/bench_0157.off +bench/train/bench_0158.off +bench/train/bench_0159.off +bench/train/bench_0160.off +bench/train/bench_0161.off +bench/train/bench_0162.off +bench/train/bench_0163.off +bench/train/bench_0164.off +bench/train/bench_0165.off +bench/train/bench_0166.off +bench/train/bench_0167.off +bench/train/bench_0168.off +bench/train/bench_0169.off +bench/train/bench_0170.off +bench/train/bench_0171.off +bench/train/bench_0172.off +bench/train/bench_0173.off +plant/train/plant_0217.off +plant/train/plant_0218.off +plant/train/plant_0219.off +plant/train/plant_0220.off +plant/train/plant_0221.off +plant/train/plant_0222.off +plant/train/plant_0223.off +plant/train/plant_0224.off +plant/train/plant_0225.off +plant/train/plant_0226.off +plant/train/plant_0227.off +plant/train/plant_0228.off +plant/train/plant_0229.off +plant/train/plant_0230.off +plant/train/plant_0231.off +plant/train/plant_0232.off +plant/train/plant_0233.off +plant/train/plant_0234.off +plant/train/plant_0235.off +plant/train/plant_0236.off +plant/train/plant_0237.off +plant/train/plant_0238.off +plant/train/plant_0239.off +plant/train/plant_0240.off +chair/train/chair_0802.off +chair/train/chair_0803.off +chair/train/chair_0804.off +chair/train/chair_0805.off +chair/train/chair_0806.off +chair/train/chair_0807.off +chair/train/chair_0808.off +chair/train/chair_0809.off +chair/train/chair_0810.off +chair/train/chair_0811.off +chair/train/chair_0812.off +chair/train/chair_0813.off +chair/train/chair_0814.off +chair/train/chair_0815.off +chair/train/chair_0816.off +chair/train/chair_0817.off +chair/train/chair_0818.off +chair/train/chair_0819.off +chair/train/chair_0820.off +chair/train/chair_0821.off +chair/train/chair_0822.off +chair/train/chair_0823.off +chair/train/chair_0824.off +chair/train/chair_0825.off +chair/train/chair_0826.off +chair/train/chair_0827.off +chair/train/chair_0828.off +chair/train/chair_0829.off +chair/train/chair_0830.off +chair/train/chair_0831.off +chair/train/chair_0832.off +chair/train/chair_0833.off +chair/train/chair_0834.off +chair/train/chair_0835.off +chair/train/chair_0836.off +chair/train/chair_0837.off +chair/train/chair_0838.off +chair/train/chair_0839.off +chair/train/chair_0840.off +chair/train/chair_0841.off +chair/train/chair_0842.off +chair/train/chair_0843.off +chair/train/chair_0844.off +chair/train/chair_0845.off +chair/train/chair_0846.off +chair/train/chair_0847.off +chair/train/chair_0848.off +chair/train/chair_0849.off +chair/train/chair_0850.off +chair/train/chair_0851.off +chair/train/chair_0852.off +chair/train/chair_0853.off +chair/train/chair_0854.off +chair/train/chair_0855.off +chair/train/chair_0856.off +chair/train/chair_0857.off +chair/train/chair_0858.off +chair/train/chair_0859.off +chair/train/chair_0860.off +chair/train/chair_0861.off +chair/train/chair_0862.off +chair/train/chair_0863.off +chair/train/chair_0864.off +chair/train/chair_0865.off +chair/train/chair_0866.off +chair/train/chair_0867.off +chair/train/chair_0868.off +chair/train/chair_0869.off +chair/train/chair_0870.off +chair/train/chair_0871.off +chair/train/chair_0872.off +chair/train/chair_0873.off +chair/train/chair_0874.off +chair/train/chair_0875.off +chair/train/chair_0876.off +chair/train/chair_0877.off +chair/train/chair_0878.off +chair/train/chair_0879.off +chair/train/chair_0880.off +chair/train/chair_0881.off +chair/train/chair_0882.off +chair/train/chair_0883.off +chair/train/chair_0884.off +chair/train/chair_0885.off +chair/train/chair_0886.off +chair/train/chair_0887.off +chair/train/chair_0888.off +chair/train/chair_0889.off +vase/train/vase_0429.off +vase/train/vase_0430.off +vase/train/vase_0431.off +vase/train/vase_0432.off +vase/train/vase_0433.off +vase/train/vase_0434.off +vase/train/vase_0435.off +vase/train/vase_0436.off +vase/train/vase_0437.off +vase/train/vase_0438.off +vase/train/vase_0439.off +vase/train/vase_0440.off +vase/train/vase_0441.off +vase/train/vase_0442.off +vase/train/vase_0443.off +vase/train/vase_0444.off +vase/train/vase_0445.off +vase/train/vase_0446.off +vase/train/vase_0447.off +vase/train/vase_0448.off +vase/train/vase_0449.off +vase/train/vase_0450.off +vase/train/vase_0451.off +vase/train/vase_0452.off +vase/train/vase_0453.off +vase/train/vase_0454.off +vase/train/vase_0455.off +vase/train/vase_0456.off +vase/train/vase_0457.off +vase/train/vase_0458.off +vase/train/vase_0459.off +vase/train/vase_0460.off +vase/train/vase_0461.off +vase/train/vase_0462.off +vase/train/vase_0463.off +vase/train/vase_0464.off +vase/train/vase_0465.off +vase/train/vase_0466.off +vase/train/vase_0467.off +vase/train/vase_0468.off +vase/train/vase_0469.off +vase/train/vase_0470.off +vase/train/vase_0471.off +vase/train/vase_0472.off +vase/train/vase_0473.off +vase/train/vase_0474.off +vase/train/vase_0475.off +bookshelf/train/bookshelf_0516.off +bookshelf/train/bookshelf_0517.off +bookshelf/train/bookshelf_0518.off +bookshelf/train/bookshelf_0519.off +bookshelf/train/bookshelf_0520.off +bookshelf/train/bookshelf_0521.off +bookshelf/train/bookshelf_0522.off +bookshelf/train/bookshelf_0523.off +bookshelf/train/bookshelf_0524.off +bookshelf/train/bookshelf_0525.off +bookshelf/train/bookshelf_0526.off +bookshelf/train/bookshelf_0527.off +bookshelf/train/bookshelf_0528.off +bookshelf/train/bookshelf_0529.off +bookshelf/train/bookshelf_0530.off +bookshelf/train/bookshelf_0531.off +bookshelf/train/bookshelf_0532.off +bookshelf/train/bookshelf_0533.off +bookshelf/train/bookshelf_0534.off +bookshelf/train/bookshelf_0535.off +bookshelf/train/bookshelf_0536.off +bookshelf/train/bookshelf_0537.off +bookshelf/train/bookshelf_0538.off +bookshelf/train/bookshelf_0539.off +bookshelf/train/bookshelf_0540.off +bookshelf/train/bookshelf_0541.off +bookshelf/train/bookshelf_0542.off +bookshelf/train/bookshelf_0543.off +bookshelf/train/bookshelf_0544.off +bookshelf/train/bookshelf_0545.off +bookshelf/train/bookshelf_0546.off +bookshelf/train/bookshelf_0547.off +bookshelf/train/bookshelf_0548.off +bookshelf/train/bookshelf_0549.off +bookshelf/train/bookshelf_0550.off +bookshelf/train/bookshelf_0551.off +bookshelf/train/bookshelf_0552.off +bookshelf/train/bookshelf_0553.off +bookshelf/train/bookshelf_0554.off +bookshelf/train/bookshelf_0555.off +bookshelf/train/bookshelf_0556.off +bookshelf/train/bookshelf_0557.off +bookshelf/train/bookshelf_0558.off +bookshelf/train/bookshelf_0559.off +bookshelf/train/bookshelf_0560.off +bookshelf/train/bookshelf_0561.off +bookshelf/train/bookshelf_0562.off +bookshelf/train/bookshelf_0563.off +bookshelf/train/bookshelf_0564.off +bookshelf/train/bookshelf_0565.off +bookshelf/train/bookshelf_0566.off +bookshelf/train/bookshelf_0567.off +bookshelf/train/bookshelf_0568.off +bookshelf/train/bookshelf_0569.off +bookshelf/train/bookshelf_0570.off +bookshelf/train/bookshelf_0571.off +bookshelf/train/bookshelf_0572.off +guitar/train/guitar_0141.off +guitar/train/guitar_0142.off +guitar/train/guitar_0143.off +guitar/train/guitar_0144.off +guitar/train/guitar_0145.off +guitar/train/guitar_0146.off +guitar/train/guitar_0147.off +guitar/train/guitar_0148.off +guitar/train/guitar_0149.off +guitar/train/guitar_0150.off +guitar/train/guitar_0151.off +guitar/train/guitar_0152.off +guitar/train/guitar_0153.off +guitar/train/guitar_0154.off +guitar/train/guitar_0155.off +tv_stand/train/tv_stand_0242.off +tv_stand/train/tv_stand_0243.off +tv_stand/train/tv_stand_0244.off +tv_stand/train/tv_stand_0245.off +tv_stand/train/tv_stand_0246.off +tv_stand/train/tv_stand_0247.off +tv_stand/train/tv_stand_0248.off +tv_stand/train/tv_stand_0249.off +tv_stand/train/tv_stand_0250.off +tv_stand/train/tv_stand_0251.off +tv_stand/train/tv_stand_0252.off +tv_stand/train/tv_stand_0253.off +tv_stand/train/tv_stand_0254.off +tv_stand/train/tv_stand_0255.off +tv_stand/train/tv_stand_0256.off +tv_stand/train/tv_stand_0257.off +tv_stand/train/tv_stand_0258.off +tv_stand/train/tv_stand_0259.off +tv_stand/train/tv_stand_0260.off +tv_stand/train/tv_stand_0261.off +tv_stand/train/tv_stand_0262.off +tv_stand/train/tv_stand_0263.off +tv_stand/train/tv_stand_0264.off +tv_stand/train/tv_stand_0265.off +tv_stand/train/tv_stand_0266.off +tv_stand/train/tv_stand_0267.off +bathtub/train/bathtub_0097.off +bathtub/train/bathtub_0098.off +bathtub/train/bathtub_0099.off +bathtub/train/bathtub_0100.off +bathtub/train/bathtub_0101.off +bathtub/train/bathtub_0102.off +bathtub/train/bathtub_0103.off +bathtub/train/bathtub_0104.off +bathtub/train/bathtub_0105.off +bathtub/train/bathtub_0106.off +monitor/train/monitor_0420.off +monitor/train/monitor_0421.off +monitor/train/monitor_0422.off +monitor/train/monitor_0423.off +monitor/train/monitor_0424.off +monitor/train/monitor_0425.off +monitor/train/monitor_0426.off +monitor/train/monitor_0427.off +monitor/train/monitor_0428.off +monitor/train/monitor_0429.off +monitor/train/monitor_0430.off +monitor/train/monitor_0431.off +monitor/train/monitor_0432.off +monitor/train/monitor_0433.off +monitor/train/monitor_0434.off +monitor/train/monitor_0435.off +monitor/train/monitor_0436.off +monitor/train/monitor_0437.off +monitor/train/monitor_0438.off +monitor/train/monitor_0439.off +monitor/train/monitor_0440.off +monitor/train/monitor_0441.off +monitor/train/monitor_0442.off +monitor/train/monitor_0443.off +monitor/train/monitor_0444.off +monitor/train/monitor_0445.off +monitor/train/monitor_0446.off +monitor/train/monitor_0447.off +monitor/train/monitor_0448.off +monitor/train/monitor_0449.off +monitor/train/monitor_0450.off +monitor/train/monitor_0451.off +monitor/train/monitor_0452.off +monitor/train/monitor_0453.off +monitor/train/monitor_0454.off +monitor/train/monitor_0455.off +monitor/train/monitor_0456.off +monitor/train/monitor_0457.off +monitor/train/monitor_0458.off +monitor/train/monitor_0459.off +monitor/train/monitor_0460.off +monitor/train/monitor_0461.off +monitor/train/monitor_0462.off +monitor/train/monitor_0463.off +monitor/train/monitor_0464.off +monitor/train/monitor_0465.off +bottle/train/bottle_0303.off +bottle/train/bottle_0304.off +bottle/train/bottle_0305.off +bottle/train/bottle_0306.off +bottle/train/bottle_0307.off +bottle/train/bottle_0308.off +bottle/train/bottle_0309.off +bottle/train/bottle_0310.off +bottle/train/bottle_0311.off +bottle/train/bottle_0312.off +bottle/train/bottle_0313.off +bottle/train/bottle_0314.off +bottle/train/bottle_0315.off +bottle/train/bottle_0316.off +bottle/train/bottle_0317.off +bottle/train/bottle_0318.off +bottle/train/bottle_0319.off +bottle/train/bottle_0320.off +bottle/train/bottle_0321.off +bottle/train/bottle_0322.off +bottle/train/bottle_0323.off +bottle/train/bottle_0324.off +bottle/train/bottle_0325.off +bottle/train/bottle_0326.off +bottle/train/bottle_0327.off +bottle/train/bottle_0328.off +bottle/train/bottle_0329.off +bottle/train/bottle_0330.off +bottle/train/bottle_0331.off +bottle/train/bottle_0332.off +bottle/train/bottle_0333.off +bottle/train/bottle_0334.off +bottle/train/bottle_0335.off +bowl/train/bowl_0059.off +bowl/train/bowl_0060.off +bowl/train/bowl_0061.off +bowl/train/bowl_0062.off +bowl/train/bowl_0063.off +bowl/train/bowl_0064.off +keyboard/train/keyboard_0132.off +keyboard/train/keyboard_0133.off +keyboard/train/keyboard_0134.off +keyboard/train/keyboard_0135.off +keyboard/train/keyboard_0136.off +keyboard/train/keyboard_0137.off +keyboard/train/keyboard_0138.off +keyboard/train/keyboard_0139.off +keyboard/train/keyboard_0140.off +keyboard/train/keyboard_0141.off +keyboard/train/keyboard_0142.off +keyboard/train/keyboard_0143.off +keyboard/train/keyboard_0144.off +keyboard/train/keyboard_0145.off +desk/train/desk_0181.off +desk/train/desk_0182.off +desk/train/desk_0183.off +desk/train/desk_0184.off +desk/train/desk_0185.off +desk/train/desk_0186.off +desk/train/desk_0187.off +desk/train/desk_0188.off +desk/train/desk_0189.off +desk/train/desk_0190.off +desk/train/desk_0191.off +desk/train/desk_0192.off +desk/train/desk_0193.off +desk/train/desk_0194.off +desk/train/desk_0195.off +desk/train/desk_0196.off +desk/train/desk_0197.off +desk/train/desk_0198.off +desk/train/desk_0199.off +desk/train/desk_0200.off +bed/train/bed_0465.off +bed/train/bed_0466.off +bed/train/bed_0467.off +bed/train/bed_0468.off +bed/train/bed_0469.off +bed/train/bed_0470.off +bed/train/bed_0471.off +bed/train/bed_0472.off +bed/train/bed_0473.off +bed/train/bed_0474.off +bed/train/bed_0475.off +bed/train/bed_0476.off +bed/train/bed_0477.off +bed/train/bed_0478.off +bed/train/bed_0479.off +bed/train/bed_0480.off +bed/train/bed_0481.off +bed/train/bed_0482.off +bed/train/bed_0483.off +bed/train/bed_0484.off +bed/train/bed_0485.off +bed/train/bed_0486.off +bed/train/bed_0487.off +bed/train/bed_0488.off +bed/train/bed_0489.off +bed/train/bed_0490.off +bed/train/bed_0491.off +bed/train/bed_0492.off +bed/train/bed_0493.off +bed/train/bed_0494.off +bed/train/bed_0495.off +bed/train/bed_0496.off +bed/train/bed_0497.off +bed/train/bed_0498.off +bed/train/bed_0499.off +bed/train/bed_0500.off +bed/train/bed_0501.off +bed/train/bed_0502.off +bed/train/bed_0503.off +bed/train/bed_0504.off +bed/train/bed_0505.off +bed/train/bed_0506.off +bed/train/bed_0507.off +bed/train/bed_0508.off +bed/train/bed_0509.off +bed/train/bed_0510.off +bed/train/bed_0511.off +bed/train/bed_0512.off +bed/train/bed_0513.off +bed/train/bed_0514.off +bed/train/bed_0515.off +tent/train/tent_0148.off +tent/train/tent_0149.off +tent/train/tent_0150.off +tent/train/tent_0151.off +tent/train/tent_0152.off +tent/train/tent_0153.off +tent/train/tent_0154.off +tent/train/tent_0155.off +tent/train/tent_0156.off +tent/train/tent_0157.off +tent/train/tent_0158.off +tent/train/tent_0159.off +tent/train/tent_0160.off +tent/train/tent_0161.off +tent/train/tent_0162.off +tent/train/tent_0163.off +piano/train/piano_0209.off +piano/train/piano_0210.off +piano/train/piano_0211.off +piano/train/piano_0212.off +piano/train/piano_0213.off +piano/train/piano_0214.off +piano/train/piano_0215.off +piano/train/piano_0216.off +piano/train/piano_0217.off +piano/train/piano_0218.off +piano/train/piano_0219.off +piano/train/piano_0220.off +piano/train/piano_0221.off +piano/train/piano_0222.off +piano/train/piano_0223.off +piano/train/piano_0224.off +piano/train/piano_0225.off +piano/train/piano_0226.off +piano/train/piano_0227.off +piano/train/piano_0228.off +piano/train/piano_0229.off +piano/train/piano_0230.off +piano/train/piano_0231.off +sofa/train/sofa_0613.off +sofa/train/sofa_0614.off +sofa/train/sofa_0615.off +sofa/train/sofa_0616.off +sofa/train/sofa_0617.off +sofa/train/sofa_0618.off +sofa/train/sofa_0619.off +sofa/train/sofa_0620.off +sofa/train/sofa_0621.off +sofa/train/sofa_0622.off +sofa/train/sofa_0623.off +sofa/train/sofa_0624.off +sofa/train/sofa_0625.off +sofa/train/sofa_0626.off +sofa/train/sofa_0627.off +sofa/train/sofa_0628.off +sofa/train/sofa_0629.off +sofa/train/sofa_0630.off +sofa/train/sofa_0631.off +sofa/train/sofa_0632.off +sofa/train/sofa_0633.off +sofa/train/sofa_0634.off +sofa/train/sofa_0635.off +sofa/train/sofa_0636.off +sofa/train/sofa_0637.off +sofa/train/sofa_0638.off +sofa/train/sofa_0639.off +sofa/train/sofa_0640.off +sofa/train/sofa_0641.off +sofa/train/sofa_0642.off +sofa/train/sofa_0643.off +sofa/train/sofa_0644.off +sofa/train/sofa_0645.off +sofa/train/sofa_0646.off +sofa/train/sofa_0647.off +sofa/train/sofa_0648.off +sofa/train/sofa_0649.off +sofa/train/sofa_0650.off +sofa/train/sofa_0651.off +sofa/train/sofa_0652.off +sofa/train/sofa_0653.off +sofa/train/sofa_0654.off +sofa/train/sofa_0655.off +sofa/train/sofa_0656.off +sofa/train/sofa_0657.off +sofa/train/sofa_0658.off +sofa/train/sofa_0659.off +sofa/train/sofa_0660.off +sofa/train/sofa_0661.off +sofa/train/sofa_0662.off +sofa/train/sofa_0663.off +sofa/train/sofa_0664.off +sofa/train/sofa_0665.off +sofa/train/sofa_0666.off +sofa/train/sofa_0667.off +sofa/train/sofa_0668.off +sofa/train/sofa_0669.off +sofa/train/sofa_0670.off +sofa/train/sofa_0671.off +sofa/train/sofa_0672.off +sofa/train/sofa_0673.off +sofa/train/sofa_0674.off +sofa/train/sofa_0675.off +sofa/train/sofa_0676.off +sofa/train/sofa_0677.off +sofa/train/sofa_0678.off +sofa/train/sofa_0679.off +sofa/train/sofa_0680.off +person/train/person_0081.off +person/train/person_0082.off +person/train/person_0083.off +person/train/person_0084.off +person/train/person_0085.off +person/train/person_0086.off +person/train/person_0087.off +person/train/person_0088.off +xbox/train/xbox_0094.off +xbox/train/xbox_0095.off +xbox/train/xbox_0096.off +xbox/train/xbox_0097.off +xbox/train/xbox_0098.off +xbox/train/xbox_0099.off +xbox/train/xbox_0100.off +xbox/train/xbox_0101.off +xbox/train/xbox_0102.off +xbox/train/xbox_0103.off +stairs/train/stairs_0113.off +stairs/train/stairs_0114.off +stairs/train/stairs_0115.off +stairs/train/stairs_0116.off +stairs/train/stairs_0117.off +stairs/train/stairs_0118.off +stairs/train/stairs_0119.off +stairs/train/stairs_0120.off +stairs/train/stairs_0121.off +stairs/train/stairs_0122.off +stairs/train/stairs_0123.off +stairs/train/stairs_0124.off +cone/train/cone_0152.off +cone/train/cone_0153.off +cone/train/cone_0154.off +cone/train/cone_0155.off +cone/train/cone_0156.off +cone/train/cone_0157.off +cone/train/cone_0158.off +cone/train/cone_0159.off +cone/train/cone_0160.off +cone/train/cone_0161.off +cone/train/cone_0162.off +cone/train/cone_0163.off +cone/train/cone_0164.off +cone/train/cone_0165.off +cone/train/cone_0166.off +cone/train/cone_0167.off +lamp/train/lamp_0113.off +lamp/train/lamp_0114.off +lamp/train/lamp_0115.off +lamp/train/lamp_0116.off +lamp/train/lamp_0117.off +lamp/train/lamp_0118.off +lamp/train/lamp_0119.off +lamp/train/lamp_0120.off +lamp/train/lamp_0121.off +lamp/train/lamp_0122.off +lamp/train/lamp_0123.off +lamp/train/lamp_0124.off +door/train/door_0100.off +door/train/door_0101.off +door/train/door_0102.off +door/train/door_0103.off +door/train/door_0104.off +door/train/door_0105.off +door/train/door_0106.off +door/train/door_0107.off +door/train/door_0108.off +door/train/door_0109.off +range_hood/train/range_hood_0105.off +range_hood/train/range_hood_0106.off +range_hood/train/range_hood_0107.off +range_hood/train/range_hood_0108.off +range_hood/train/range_hood_0109.off +range_hood/train/range_hood_0110.off +range_hood/train/range_hood_0111.off +range_hood/train/range_hood_0112.off +range_hood/train/range_hood_0113.off +range_hood/train/range_hood_0114.off +range_hood/train/range_hood_0115.off +flower_pot/train/flower_pot_0136.off +flower_pot/train/flower_pot_0137.off +flower_pot/train/flower_pot_0138.off +flower_pot/train/flower_pot_0139.off +flower_pot/train/flower_pot_0140.off +flower_pot/train/flower_pot_0141.off +flower_pot/train/flower_pot_0142.off +flower_pot/train/flower_pot_0143.off +flower_pot/train/flower_pot_0144.off +flower_pot/train/flower_pot_0145.off +flower_pot/train/flower_pot_0146.off +flower_pot/train/flower_pot_0147.off +flower_pot/train/flower_pot_0148.off +flower_pot/train/flower_pot_0149.off \ No newline at end of file diff --git a/pcam/datasets/threedmatch_dataset.py b/pcam/datasets/threedmatch_dataset.py new file mode 100644 index 0000000..3e6e6bf --- /dev/null +++ b/pcam/datasets/threedmatch_dataset.py @@ -0,0 +1,150 @@ +""" +Most of the code in this file is taken from https://github.com/chrischoy/DeepGlobalRegistration/blob/master/dataloader/threedmatch_loader.py + +This is dataloader used in [1-3] and we re-use it to train and test PCAM on the same dataset. + +[1] Christopher Choy, Wei Dong, Vladlen Koltun. Deep Global Registration, CVPR, 2020. +[2] Christopher Choy, Jaesik Park, Vladlen Koltun. Fully Convolutional Geometric Features. ICCV, 2019. +[3] Christopher Choy, JunYoung Gwak, Silvio Savarese. 4D Spatio-Temporal ConvNets: Minkowski Convolutional Neural Networks. CVPR, 2019. +""" + +import torch +import numpy as np +import os +import random +from tqdm import tqdm +from pcam.datasets.pcam_dataset import PCAMDataset +from pcam.tool.transforms import sample_random_trans, apply_transform, sample_points, ground_truth_attention +from pcam.tool.file import read_trajectory +import open3d as o3d +import MinkowskiEngine as ME +import glob + + +class ThreeDMatchDataset(PCAMDataset): + OVERLAP_RATIO = 0.3 + dir_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'split') + DATA_FILES = { + 'train': os.path.join(dir_path, 'train_3dmatch.txt'), + 'val': os.path.join(dir_path, 'val_3dmatch.txt'), + 'test': os.path.join(dir_path, 'test_3dmatch.txt'), + } + def __init__(self, + root, + phase, + min_scale=0.8, + max_scale=1.2, + random_scale=False, + rotation_range=360, + voxel_size=0.05, + num_points=2048): + super(ThreeDMatchDataset, self).__init__(root, phase, voxel_size, num_points) + self.min_scale = min_scale + self.max_scale = max_scale + self.random_scale = random_scale + self.phase = phase + + self.files = [] + self.randg = np.random.RandomState() + self.rotation_range = rotation_range + + subset_names = open(self.DATA_FILES[phase]).read().split() + if phase == "test": + for sname in subset_names: + traj_file = os.path.join(self.root, sname + '-evaluation/gt.log') + assert os.path.exists(traj_file) + traj = read_trajectory(traj_file) + for ctraj in traj: + i = ctraj.metadata[0] + j = ctraj.metadata[1] + T_gt = ctraj.pose + self.files.append((sname, i, j, T_gt)) + else: + for name in subset_names: + fname = name + "*%.2f.txt" % self.OVERLAP_RATIO + fnames_txt = glob.glob(root + "/" + fname) + assert len(fnames_txt) > 0, f"Make sure that the path {root} has data {fname}" + for fname_txt in fnames_txt: + with open(fname_txt) as f: + content = f.readlines() + fnames = [x.strip().split() for x in content] + for fname in fnames: + self.files.append([fname[0], fname[1]]) + + + def __getitem__(self, idx): + if self.phase == "test": + file_name, i, j, T_gt = self.files[idx] + ply_name0 = os.path.join(self.root, file_name, f'cloud_bin_{i}.ply') + ply_name1 = os.path.join(self.root, file_name, f'cloud_bin_{j}.ply') + xyz0 = o3d.io.read_point_cloud(ply_name0) + xyz1 = o3d.io.read_point_cloud(ply_name1) + xyz0 = np.asarray(xyz0.points) + xyz1 = np.asarray(xyz1.points) + + ############ DUE TO BIAS AT TRAINING TIME WITH CENTERED POINT CLOUD + xyz0_mean = xyz0.mean(0, keepdims=True) + xyz1_mean = xyz1.mean(0, keepdims=True) + xyz0 = xyz0 - xyz0_mean + xyz1 = xyz1 - xyz1_mean + ############ + + else: + file0 = os.path.join(self.root, self.files[idx][0]) + file1 = os.path.join(self.root, self.files[idx][1]) + data0 = np.load(file0) + data1 = np.load(file1) + file_name = self.files[idx][0] + "_" + self.files[idx][1] + xyz0 = data0["pcd"] + xyz1 = data1["pcd"] + + if self.random_scale and random.random() < 0.95: + scale = self.min_scale + (self.max_scale - self.min_scale) * random.random() + xyz0 = scale * xyz0 + xyz1 = scale * xyz1 + T0 = sample_random_trans(xyz0, self.randg, self.rotation_range) + T1 = sample_random_trans(xyz1, self.randg, self.rotation_range) + T_gt = T1 @ np.linalg.inv(T0) + + xyz0 = apply_transform(xyz0, T0) + xyz1 = apply_transform(xyz1, T1) + + xyz0_mean, xyz1_mean = np.zeros((1, 3)), np.zeros((1, 3)) + + # Voxelization + xyz0_th = torch.from_numpy(xyz0) + xyz1_th = torch.from_numpy(xyz1) + + sel0 = ME.utils.sparse_quantize(xyz0_th / self.voxel_size, return_index=True) + sel1 = ME.utils.sparse_quantize(xyz1_th / self.voxel_size, return_index=True) + + unique_xyz0_th = xyz0_th[sel0] + unique_xyz1_th = xyz1_th[sel1] + + unique_xyz0_th, unique_xyz1_th = unique_xyz0_th.float().numpy(), unique_xyz1_th.float().numpy() + unique_xyz0_th = sample_points(unique_xyz0_th, self.num_points) + unique_xyz1_th = sample_points(unique_xyz1_th, self.num_points) + + if self.phase == "test": + T_gt = np.linalg.inv(T_gt) + + one_one_attention = ground_truth_attention(unique_xyz0_th, unique_xyz1_th, T_gt) + + return xyz0_th, xyz1_th, unique_xyz0_th, unique_xyz1_th, T_gt, np.linalg.inv(T_gt), one_one_attention.A, file_name, xyz0_mean, xyz1_mean + + +def test(root, phase): + dataset = ThreeDMatchDataset(root, phase) + cnt = 0 + for i in tqdm(range(len(dataset))): + dataset[i] + cnt += 1 + print(phase, len(dataset), cnt) + +if __name__ == '__main__': + root = "/gpfsscratch/rech/kvd/uyl37fq/PCAM/3dmatch/threedmatch" + test_root = "/gpfsscratch/rech/kvd/uyl37fq/PCAM/3dmatch/test" + test(test_root, "test") # test 1623 1623 + test(root, "train") # train 7317 7317 + test(root, "val") # val 643 643 + diff --git a/pcam/datasets/threedmatch_dm.py b/pcam/datasets/threedmatch_dm.py new file mode 100644 index 0000000..5efe172 --- /dev/null +++ b/pcam/datasets/threedmatch_dm.py @@ -0,0 +1,40 @@ +from pcam.datasets.threedmatch_dataset import ThreeDMatchDataset +from torch.utils.data import DataLoader +from pcam.datasets.collate import CollateFunc + + +class ThreeDMatchDataModule(): + def __init__(self, root, num_points): + self.root = root + self.num_points = num_points + self.collate_fn = CollateFunc() + + def train_loader(self): + self.train_set = ThreeDMatchDataset(self.root, "train", num_points=self.num_points) + return DataLoader(self.train_set, + pin_memory=True, + batch_size=1, + collate_fn=self.collate_fn, + num_workers=4, + shuffle=True) + + def val_loader(self): + self.val_set = ThreeDMatchDataset(self.root, "val", num_points=self.num_points) + return DataLoader(self.val_set, + pin_memory=True, + batch_size=1, + collate_fn=self.collate_fn, + num_workers=4, + shuffle=False) + + def test_loader(self): + self.test_set = ThreeDMatchDataset(self.root, "test", + min_scale=1., max_scale=1., + rotation_range=0, + num_points=self.num_points) + return DataLoader(self.test_set, + pin_memory=True, + batch_size=1, + collate_fn=self.collate_fn, + num_workers=4, + shuffle=False) diff --git a/pcam/models/network.py b/pcam/models/network.py new file mode 100644 index 0000000..d77fb70 --- /dev/null +++ b/pcam/models/network.py @@ -0,0 +1,344 @@ +import time +import torch +import numpy as np +import torch.nn as nn +import torch.nn.functional as F +import lightconvpoint.nn as lcp_nn + + +class Block(nn.Module): + + def __init__(self, in_channels, out_channels, ConvNet, Search, K, act): + + super().__init__() + self.in_channels = in_channels + self.out_channels = out_channels + self.act = act() + + self.enc1 = lcp_nn.Conv( + ConvNet(out_channels, out_channels=out_channels, kernel_size=K), + Search(K=K, stride=1), + activation=act(), + normalization=nn.InstanceNorm1d(out_channels, affine=True) + ) + + self.enc2 = lcp_nn.Conv( + ConvNet(out_channels, out_channels=out_channels, kernel_size=K), + Search(K=K, stride=1), + activation=None, + normalization=nn.InstanceNorm1d(out_channels, affine=True) + ) + + if in_channels != out_channels: + self.conv = nn.Conv1d(in_channels, out_channels, 1) + self.norm = nn.InstanceNorm1d(out_channels, affine=True) + else: + self.conv = None + self.norm = None + + def forward(self, input, points, indices=None): + + # Shape + bs, _, n_points = points.shape + + # Skip part + if self.conv is not None: + input = self.norm(self.conv(input)) + + # Init. + x = input + pts = points + + # Residual part + x, pts, idx = self.enc1(input=x, points=pts, support_points=pts, indices=indices) + if x is None: + return None, pts, idx + x, pts, idx = self.enc2(input=x, points=pts, support_points=pts, indices=indices) + + # Addition + x = self.act(input + x) + + return x, pts, idx + + +class Encoder(nn.Module): + + def __init__(self, ConvNet, Search, n_channels, K): + + super().__init__() + + self.layers = nn.ModuleList(self.create_layers(n_channels, ConvNet, Search, K)) + + def create_layers(self, n_channels, ConvNet, Search, K): + + layers = [] + for i in range(len(n_channels) - 1): + encoder = Block(n_channels[i], n_channels[i + 1], ConvNet, Search, K=K, act=nn.ReLU) + layers.append(encoder) + + return layers + + def forward(self, x, pts, indices=None): + + for layer in self.layers: + x, pts, idx = layer(input=x, points=pts, indices=indices) + + return x, pts, idx + + +class PointMatcher(nn.Module): + + def __init__(self, nb_encoders, last_attention, sparse_attention): + + super().__init__() + + K = 16 + self.last_attention = last_attention + self.sparse_attention = sparse_attention + + self.encoders = nn.ModuleList() + if nb_encoders >= 2: + n_channels = [3, 32, 32, 32] + self.encoders.append(Encoder(lcp_nn.FKAConv, lcp_nn.SearchQuantized, n_channels, K)) + n_channels = [64, 32, 32, 32] + self.encoders.append(Encoder(lcp_nn.FKAConv, lcp_nn.SearchQuantized, n_channels, K)) + if nb_encoders >= 4: + n_channels = [64, 64, 64, 64] + self.encoders.append(Encoder(lcp_nn.FKAConv, lcp_nn.SearchQuantized, n_channels, K)) + n_channels = [128, 64, 64, 64] + self.encoders.append(Encoder(lcp_nn.FKAConv, lcp_nn.SearchQuantized, n_channels, K)) + if nb_encoders >= 6: + n_channels = [128, 128, 128, 128] + self.encoders.append(Encoder(lcp_nn.FKAConv, lcp_nn.SearchQuantized, n_channels, K)) + n_channels = [256, 128, 128, 128] + self.encoders.append(Encoder(lcp_nn.FKAConv, lcp_nn.SearchQuantized, n_channels, K)) + if nb_encoders >= 8: + n_channels = [256, 128, 128, 128] + self.encoders.append(Encoder(lcp_nn.FKAConv, lcp_nn.SearchQuantized, n_channels, K)) + n_channels = [256, 128, 128, 128] + self.encoders.append(Encoder(lcp_nn.FKAConv, lcp_nn.SearchQuantized, n_channels, K)) + assert len(self.encoders) == nb_encoders + print('Nb encoders', len(self.encoders)) + + def get_log_attention(self, x1, x2, temp=0.03): + + # Normalize features: B x C x N + x1_norm = F.normalize(x1, dim=1, p=2) + x2_norm = F.normalize(x2, dim=1, p=2) + + # Scaled dot product: B x N x N + scores = torch.bmm(x1_norm.transpose(1, 2), x2_norm) / temp + + # Attention (both direction) + log_att1 = F.log_softmax(scores, dim=2) + log_att2 = F.log_softmax(scores, dim=1) + + return log_att1, log_att2 + + def encode(self, x1, x2, pts1, pts2, encoder, indices1=None, indices2=None): + + # Extract Point Feature: B x C x N + x1, pts1, _ = encoder(x1, pts1, indices1) + x2, pts2, _ = encoder(x2, pts2, indices2) + + # Attentions + log_att1, log_att2 = self.get_log_attention(x1, x2) + + # New features + # Side 1 + att1 = torch.exp(log_att1) + x1_comb = torch.bmm(att1, x2.transpose(1, 2)).transpose(1, 2) + # Side 2 + att2 = torch.exp(log_att2).transpose(1, 2) + x2_comb = torch.bmm(att2, x1.transpose(1, 2)).transpose(1, 2) + + # Concat + x1 = torch.cat([x1, x1_comb], dim=1) + x2 = torch.cat([x2, x2_comb], dim=1) + + return x1, x2, (log_att1, log_att2) + + def sparsify_attention(self, log_attention, dim): + + # If soft-attention + if not self.sparse_attention: + return F.normalize(torch.exp(log_attention), dim=dim, p=1) + + # Find best match + idx = torch.argmax(log_attention, dim=dim, keepdim=True) + + # Sparse attention + sparse_attention = torch.zeros_like(log_attention, requires_grad=False) + sparse_attention.scatter_(dim, idx, 1.) + + return sparse_attention + + def forward(self, pts1, pts2, indices1=None, indices2=None): + + # Compute series of attention matrices + log_attns = [] + x1, x2 = pts1, pts2 + for encoder in self.encoders: + x1, x2, log_att = self.encode( + x1, x2, pts1, pts2, encoder, indices1=indices1, indices2=indices2 + ) + log_attns.extend(log_att) + + # Sum ***log*** of attentions + if self.last_attention: + log_attn_row = log_attns[-2] # Row normalised attention are in even position + if self.training: + log_attn_col = log_attns[-1] # Column normalised attention are in odd position + else: + log_attn_col = None + else: + log_attn_row = sum(log_attns[::2]) # Row normalised attention are in even position + if self.training: + log_attn_col = sum(log_attns[1::2]) # Column normalised attention are in odd position + else: + log_attn_col = None + + # Selection of best match + attention_row = self.sparsify_attention(log_attn_row, 2) + if self.training: + attention_col = self.sparsify_attention(log_attn_col, 1).transpose(1, 2) + + # Corresponding points + corres_pts_for_pts1 = torch.bmm(attention_row, pts2.transpose(1, 2)).transpose(1, 2) + if self.training: + corres_pts_for_pts2 = torch.bmm(attention_col, pts1.transpose(1, 2)).transpose(1, 2) + else: + corres_pts_for_pts2 = None + + # Output + out = [corres_pts_for_pts1, corres_pts_for_pts2, log_attn_row, log_attn_col] + + return out + + +class ConfidenceEstimator(nn.Module): + + def __init__(self): + + super().__init__() + + # Param. + K = 16 + n_channels1 = [6, 16, 16, 16, 32, 32, 32, 64, 64, 64] + + # Layers + self.encoder1 = Encoder(lcp_nn.FKAConv, lcp_nn.SearchQuantized, n_channels1, K) + self.cv4 = lcp_nn.Conv( + lcp_nn.FKAConv(n_channels1[-1], out_channels=1, kernel_size=K), + lcp_nn.SearchQuantized(K=K, stride=1), + activation=nn.Sigmoid(), + normalization=None + ) + + def forward(self, in1, in2, pts, indices=None): + + # Concat input + x = torch.cat([in1, in2], dim=1) + + # Network + x, pts, _ = self.encoder1(x, pts, indices) + x, pts, indices = self.cv4(input=x, points=pts, support_points=pts, indices=indices) + + return x + + +class PoseEstimator(nn.Module): + + def __init__(self, nb_encoders, last_attention, sparse_attention, backprop, threshold=None, N=None): + + super().__init__() + + # + self.backprop = backprop + + # Point Matcher + self.matcher = PointMatcher(nb_encoders, last_attention, sparse_attention) + + # Confidence estimator for input pairs + self.confid = ConfidenceEstimator() + + # Threshold + self.threshold = threshold + print('Threshold', self.threshold) + self.N = N + print('N', self.N) + + @torch.no_grad() + def estimate_rot_trans(self, x, y, w): + + # L1 normalisation + if self.N is not None: + val, ind = torch.topk(w, self.N, dim=-1) + w = torch.zeros_like(w) + w.scatter_(-1, ind, val) + if self.threshold is not None: + w = w * (w > self.threshold).float() + w = F.normalize(w, dim=-1, p=1) + + # Center point clouds + mean_x = (w * x).sum(dim=-1, keepdim=True) + mean_y = (w * y).sum(dim=-1, keepdim=True) + x_centered = x - mean_x + y_centered = y - mean_y + + # Covariance + cov = torch.bmm(y_centered, (w * x_centered).transpose(1, 2)) + + # Rotation + U, _, V = torch.svd(cov) + #det = torch.det(U) * torch.det(V) + det = det_3x3(U) * det_3x3(V) + S = torch.eye(3, device=U.device).unsqueeze(0).repeat(x.shape[0], 1, 1) + S[:, -1, -1] = det + R = torch.bmm(U, torch.bmm(S, V.transpose(1, 2))) + + # Translation + T = mean_y - torch.bmm(R, mean_x) + + return R, T, w + + def forward(self, pts1, pts2, indices1=None, indices2=None): + + # Match points + out = self.matcher(pts1, pts2, indices1=indices1, indices2=indices2) + corres_pts_for_pts1, corres_pts_for_pts2, log_attn_row, log_attn_col = out + + # Confidence estimator + if self.backprop: + w_pts1 = self.confid(pts1, corres_pts_for_pts1, pts1, indices1) + if self.training: + w_pts2 = self.confid(pts2, corres_pts_for_pts2, pts2, indices2) + else: + w_pts2 = None + else: + w_pts1 = self.confid(pts1, corres_pts_for_pts1.detach(), pts1, indices1) + if self.training: + w_pts2 = self.confid(pts2, corres_pts_for_pts2.detach(), pts2, indices2) + else: + w_pts2 = None + + # Rotation / Translation + if self.training: + R, T = None, None # R and T not involved at training time + else: + # Estimate transformation + R, T, w_pts1 = self.estimate_rot_trans(pts1, corres_pts_for_pts1, w_pts1) + + return R, T, corres_pts_for_pts1, corres_pts_for_pts2, log_attn_row, log_attn_col, w_pts1, w_pts2 + + +def det_3x3(mat): + + a, b, c = mat[:, 0, 0], mat[:, 0, 1], mat[:, 0, 2] + d, e, f = mat[:, 1, 0], mat[:, 1, 1], mat[:, 1, 2] + g, h, i = mat[:, 2, 0], mat[:, 2, 1], mat[:, 2, 2] + + det = a * e * i + b * f * g + c * d * h + det = det - c * e * g - b * d * i - a * f * h + + return det diff --git a/pcam/scripts/eval.py b/pcam/scripts/eval.py new file mode 100755 index 0000000..003548d --- /dev/null +++ b/pcam/scripts/eval.py @@ -0,0 +1,201 @@ +import os +import sys +import torch +import numpy as np +from types import SimpleNamespace +import pcam.datasets.modelnet40 as m40 +from pcam.tool.test_final import test +from pcam.models.network import PoseEstimator +from pcam.datasets.kitti_dm import KittiDataModule +from pcam.datasets.threedmatch_dm import ThreeDMatchDataModule + +from torch.optim.lr_scheduler import MultiStepLR +from torch.utils.tensorboard import SummaryWriter + +from sacred import SETTINGS +from sacred import Experiment +from sacred.observers import MongoObserver +from sacred.utils import apply_backspaces_and_linefeeds + + +# Sacred config. +SETTINGS.CAPTURE_MODE = 'sys' # for tqdm +ex = Experiment('eval_pcam') +ex.captured_out_filter = apply_backspaces_and_linefeeds + +@ex.config +def config(): + # Name of the dataset + DATASET = '' + # Number of points to sample for the point cloud + NUM_POINTS = 2048 + # Use a sparse mapping or not when computing pairs of corresponding point + SPARSE_ATTENTION = False + # Filter out pairs of matching point with a low confidence score (below THRESHOLD) + THRESHOLD = None + # Refinement via the optimisation proposed in DGR (Deep Global Registration) + DGR_OPTIM = False + # Safeguard registration (as in DGR) when the confidence scores are below a threshold (WSUM_THRESHOLD) + SAFEGUARD = False + WSUM_THRESHOLD = None + # Refinement via ICP + ICP = False + # Split on which to evaluate + PHASE = 'test' + # Add a prefix for saving the model + PREFIX = '' + # Device for torch + DEVICE = 'cuda' + # Numbers of layers in our encoder to find matching points + NB_ENCODERS = 6 + # Set to False for PCAM. When set to True only the last attention is used to find corresponding point. + LAST_ATTENTION = False + # (De)activate losses during training + LOSS_ENTROPY_ATTENTION = True + LOSS_DIST_ATTENTION = False + LOSS_DIST_CONFIDENCE = True + + +@ex.automain +def main(NUM_POINTS, DEVICE, THRESHOLD, + SPARSE_ATTENTION, LAST_ATTENTION, WSUM_THRESHOLD, NB_ENCODERS, DATASET, PHASE, + LOSS_ENTROPY_ATTENTION, LOSS_DIST_ATTENTION, LOSS_DIST_CONFIDENCE, + PREFIX, ICP, SAFEGUARD, DGR_OPTIM): + + assert PHASE in ['val', 'test'], "PHASE must have value of either 'val' or 'test'" + assert DATASET in ['kitti', '3dmatch', 'modelnet', 'modelnet_unseen', 'modelnet_noise'], "Wrong value for DATASET" + + # --- Base directory + basedir = os.path.dirname(os.path.realpath(__file__)) + '/../' + + # --- Load dataset + if DATASET == 'kitti': + path2data = basedir + "/data/kitti/dataset" + icp_cache_path = basedir + "/data/kitti/icp" + config = SimpleNamespace( + voxel_size=0.3, + min_scale=1., + max_scale=1., + ) + threshold_rte = 0.6 + threshold_rre = 5 + num_points = NUM_POINTS + voxel_size = config.voxel_size + data_module = KittiDataModule(path2data, icp_cache_path, NUM_POINTS) + elif DATASET == '3dmatch': + if PHASE == "val": + path2data = basedir + "/data/3dmatch/threedmatch" + config = SimpleNamespace( + voxel_size=0.05, + min_scale=0.8, + max_scale=1.2, + ) + threshold_rte = 0.3 + threshold_rre = 15 + num_points = NUM_POINTS + voxel_size = config.voxel_size + data_module = ThreeDMatchDataModule(path2data, NUM_POINTS) + elif PHASE == 'test': + path2data = basedir + "/data/3dmatch/threedmatch_test" + config = SimpleNamespace( + voxel_size=0.05, + min_scale=1., + max_scale=1., + ) + threshold_rte = 0.3 + threshold_rre = 15 + num_points = NUM_POINTS + voxel_size = config.voxel_size + data_module = ThreeDMatchDataModule(path2data, NUM_POINTS) + elif DATASET[:8] == 'modelnet': + unseen = False + gaussian_noise = False + if len(DATASET) > 8: + if DATASET[9:] == 'unseen': + unseen = True + elif DATASET[9:] == 'noise': + gaussian_noise = True + else: + raise NotImplementedError('Dataset not available') + print('unseen', unseen, 'gaussian_noise', gaussian_noise) + partition = PHASE + + loader = torch.utils.data.DataLoader( + m40.ModelNet40(1024, partition=partition, gaussian_noise=gaussian_noise, unseen=unseen), + pin_memory=True, + batch_size=1, + collate_fn=m40.collate_fn, + num_workers=4, + shuffle=False + ) + threshold_rte = None + threshold_rre = None + num_points = None + voxel_size = None + else: + raise NotImplementedError('Dataset not available') + + # val or test + if DATASET == 'kitti' or DATASET == '3dmatch': + if PHASE == "val": + loader = data_module.val_loader() + elif PHASE == "test": + loader = data_module.test_loader() + + # --- Network + BACKPROP = not SPARSE_ATTENTION + net = PoseEstimator( + nb_encoders=NB_ENCODERS, + last_attention=LAST_ATTENTION, + sparse_attention=SPARSE_ATTENTION, + backprop=BACKPROP, + threshold=THRESHOLD, + N=None, + ).to(DEVICE) + + # --- Path to experiment + root = basedir + "/trained_models/" + path2exp = root + DATASET + '/' + PREFIX + '/' + if SPARSE_ATTENTION: + path2exp += 'sparse_' + else: + path2exp += 'soft_' + if LAST_ATTENTION: + path2exp += 'lastAttention_' + path2exp += 'nbEnc_' + str(NB_ENCODERS) + if not BACKPROP: + path2exp += '_noBackprop' + if LOSS_DIST_ATTENTION: + if LOSS_ENTROPY_ATTENTION: + path2exp += '_DistEntAtt' + else: + path2exp += '_DistAtt' + else: + if not LOSS_ENTROPY_ATTENTION: + path2exp += '_NoLossAtt' + if LOSS_DIST_CONFIDENCE: + path2exp += '_DistConf' + if NUM_POINTS != 2048: + path2exp += '_' + str(NUM_POINTS) + print(path2exp) + + # --- Reload model + print('Reload last checkpoint') + checkpoint = torch.load(os.path.join(path2exp, 'check_point_last.pth')) + net.load_state_dict(checkpoint['net']) + recall_best = checkpoint['best_recall'] if checkpoint.get('best_recall') is not None else 0 + rre_best = checkpoint['best_rre'] if checkpoint.get('best_rre') is not None else np.inf + print('Result from training:', checkpoint['epoch'], recall_best, rre_best) + + # --- + test(loader, net, DEVICE, + threshold_rte=threshold_rte, + threshold_rre=threshold_rre, + num_points=num_points, + voxel_size=voxel_size, + wsum_threshold=WSUM_THRESHOLD, + icp=ICP, + safeguard=SAFEGUARD, + dgr_optim=DGR_OPTIM, + dataset=DATASET, + nb_average=1) diff --git a/pcam/scripts/train.py b/pcam/scripts/train.py new file mode 100755 index 0000000..060b10a --- /dev/null +++ b/pcam/scripts/train.py @@ -0,0 +1,221 @@ +import os +import sys +import torch +import tarfile +import numpy as np +from types import SimpleNamespace +import pcam.datasets.modelnet40 as m40 +from pcam.models.network import PoseEstimator +from torch.optim.lr_scheduler import MultiStepLR +from torch.utils.tensorboard import SummaryWriter +from pcam.tool.train_util import train_one_epoch, validation +import math +from pcam.datasets.kitti_dm import KittiDataModule +from pcam.datasets.threedmatch_dm import ThreeDMatchDataModule + +from sacred import Experiment +from sacred import SETTINGS +from sacred.utils import apply_backspaces_and_linefeeds +from sacred.observers import MongoObserver + + +# Sacred config. +SETTINGS.CAPTURE_MODE = 'sys' # for tqdm +name = 'pcam_train' +ex = Experiment(name) + + +@ex.config +def config(): + # Name of the dataset + DATASET = '' + # Number of points to sample for the point cloud + NUM_POINTS = 2048 + # Device for torch + DEVICE = 'cuda' + # Name of subfolder where to save checkpoint + PREFIX = 'new_training' + # Use a sparse mapping or not when computing pairs of corresponding point + SPARSE_ATTENTION = True + # Set to False for PCAM. When set to True only the last attention is used to find corresponding point. + LAST_ATTENTION = False + # Numbers of layers in our encoder to find matching points + NB_ENCODERS = 6 + # Number of epochs + NB_EPOCHS = 100 + # In case training needs to be relaunched from last checkpoint + RELOAD_LAST = False + # (De)activate losses during training + LOSS_ENTROPY_ATTENTION = True + LOSS_DIST_ATTENTION = False + LOSS_DIST_CONFIDENCE = True + + +def save_model(epoch, net, optimizer, scheduler, best_recall, best_rre, filename): + + torch.save( + { + 'epoch': epoch, + 'net': net.state_dict(), + 'optimizer': optimizer.state_dict(), + 'scheduler': scheduler.state_dict(), + 'best_recall': best_recall, + 'best_rre': best_rre, + }, + filename + ) + + +@ex.automain +def main(NB_EPOCHS, NUM_POINTS, RELOAD_LAST, DEVICE, PREFIX, + SPARSE_ATTENTION, LAST_ATTENTION, NB_ENCODERS, DATASET, + LOSS_ENTROPY_ATTENTION, LOSS_DIST_ATTENTION, LOSS_DIST_CONFIDENCE): + + # --- Base directory + basedir = os.path.dirname(os.path.realpath(__file__)) + '/../' + + # --- Load dataset + if DATASET == 'kitti': + path2data = basedir + "/data/kitti/dataset" + icp_cache_path = basedir + "/data/kitti/icp" + threshold_rte = 0.6 + threshold_rre = 5 + config = SimpleNamespace( + voxel_size=0.3, + min_scale=1., + max_scale=1., + ) + data_module = KittiDataModule(path2data, icp_cache_path, NUM_POINTS) + elif DATASET == '3dmatch': + path2data = basedir + "/data/3dmatch/threedmatch" + config = SimpleNamespace( + voxel_size=0.05, + min_scale=0.8, + max_scale=1.2, + ) + threshold_rte = 0.3 + threshold_rre = 15 + data_module = ThreeDMatchDataModule(path2data, NUM_POINTS) + elif DATASET[:8] == 'modelnet': + unseen = False + gaussian_noise = False + if len(DATASET) > 8: + if DATASET[9:] == 'unseen': + unseen = True + elif DATASET[9:] == 'noise': + gaussian_noise = True + else: + raise NotImplementedError('Dataset not available') + print('unseen', unseen, 'gaussian_noise', gaussian_noise) + train_loader = torch.utils.data.DataLoader( + m40.ModelNet40(1024, partition='train', gaussian_noise=gaussian_noise, unseen=unseen), + pin_memory=True, + batch_size=1, + collate_fn=m40.collate_fn, + num_workers=4, + shuffle=True + ) + val_loader = torch.utils.data.DataLoader( + m40.ModelNet40(1024, partition='val', gaussian_noise=gaussian_noise, unseen=unseen), + pin_memory=True, + batch_size=1, + collate_fn=m40.collate_fn, + num_workers=4, + shuffle=False + ) + # For validation accuracy during training + threshold_rte = 0.03 + threshold_rre = 1. + # Only used to define threshold for good pairs of points + config = SimpleNamespace( + voxel_size=0.03, + max_scale=1., + ) + + if DATASET == 'kitti' or DATASET == '3dmatch': + train_loader = data_module.train_loader() + val_loader = data_module.val_loader() + + # --- Network + BACKPROP = not SPARSE_ATTENTION + net = PoseEstimator( + nb_encoders=NB_ENCODERS, + last_attention=LAST_ATTENTION, + sparse_attention=SPARSE_ATTENTION, + backprop=BACKPROP + ).to(DEVICE) + + # --- Optimizer + epoch_factor = NB_EPOCHS / 100.0 + optimizer = torch.optim.AdamW(net.parameters(), lr=1e-3, weight_decay=1e-3) + scheduler = MultiStepLR(optimizer, + milestones=[int(60 * epoch_factor), int(80 * epoch_factor)], + gamma=0.1) + + # --- Path to experiment + root = basedir + "/trained_models/" + path2exp = root + DATASET + '/' + PREFIX + '/' + if SPARSE_ATTENTION: + path2exp += 'sparse_' + else: + path2exp += 'soft_' + if LAST_ATTENTION: + path2exp += 'lastAttention_' + path2exp += 'nbEnc_' + str(NB_ENCODERS) + if not BACKPROP: + path2exp += '_noBackprop' + if LOSS_DIST_ATTENTION: + if LOSS_ENTROPY_ATTENTION: + path2exp += '_DistEntAtt' + else: + path2exp += '_DistAtt' + else: + if not LOSS_ENTROPY_ATTENTION: + path2exp += '_NoLossAtt' + if LOSS_DIST_CONFIDENCE: + path2exp += '_DistConf' + if NUM_POINTS != 2048: + path2exp += '_' + str(NUM_POINTS) + print('Save experiment in ' + path2exp) + + # --- Reload model + if RELOAD_LAST: + print('Reload last checkpoint') + checkpoint = torch.load(os.path.join(path2exp, 'check_point_last.pth')) + net.load_state_dict(checkpoint['net']) + optimizer.load_state_dict(checkpoint['optimizer']) + scheduler.load_state_dict(checkpoint['scheduler']) + epoch = checkpoint['epoch'] + 1 + purge_step = epoch * len(train_loader) + recall_best = checkpoint['best_recall'] if checkpoint.get('best_recall') is not None else 0 + rre_best = checkpoint['best_rre'] if checkpoint.get('best_rre') is not None else np.inf + else: + epoch = 0 + purge_step = 0 + recall_best = 0 + rre_best = np.inf + + # --- Tensorboard + logger = SummaryWriter(log_dir=path2exp, purge_step=purge_step, flush_secs=60) + + # --- Train + for epoch in range(epoch, NB_EPOCHS): + + train_one_epoch(epoch, train_loader, net, optimizer, logger, DEVICE, + 2 * config.max_scale * config.voxel_size, + LOSS_ENTROPY_ATTENTION, LOSS_DIST_ATTENTION, LOSS_DIST_CONFIDENCE) + recall, rre = validation(epoch, val_loader, net, logger, DEVICE, + threshold_rte=threshold_rte, + threshold_rre=threshold_rre) + scheduler.step() + + # Save best model (but we use the last saved model at test time !) + if recall_best < recall or (recall_best == recall and rre_best > rre): + recall_best, rre_best = recall, rre + filename = os.path.join(path2exp, 'check_point_best.pth') + save_model(epoch, net, optimizer, scheduler, recall_best, rre_best, filename) + + # Save checkpoint + print(epoch + 1, 'epoch done') + filename = os.path.join(path2exp, 'check_point_last.pth') + save_model(epoch, net, optimizer, scheduler, recall_best, rre_best, filename) diff --git a/pcam/tool/file.py b/pcam/tool/file.py new file mode 100755 index 0000000..3d035a3 --- /dev/null +++ b/pcam/tool/file.py @@ -0,0 +1,90 @@ +# Copyright (c) Chris Choy (chrischoy@ai.stanford.edu) and Wei Dong (weidong@andrew.cmu.edu) +# +# Please cite the following papers if you use any part of the code. +# - Christopher Choy, Wei Dong, Vladlen Koltun, Deep Global Registration, CVPR 2020 +# - Christopher Choy, Jaesik Park, Vladlen Koltun, Fully Convolutional Geometric Features, ICCV 2019 +# - Christopher Choy, JunYoung Gwak, Silvio Savarese, 4D Spatio-Temporal ConvNets: Minkowski Convolutional Neural Networks, CVPR 2019 +import os +import re +from os import listdir +from os.path import isfile, isdir, join, splitext + +import numpy as np + + +def read_txt(path): + """Read txt file into lines. + """ + with open(path) as f: + lines = f.readlines() + lines = [x.strip() for x in lines] + return lines + + +def ensure_dir(path): + if not os.path.exists(path): + os.makedirs(path, mode=0o755) + + +def sorted_alphanum(file_list_ordered): + def convert(text): + return int(text) if text.isdigit() else text + + def alphanum_key(key): + return [convert(c) for c in re.split('([0-9]+)', key)] + + return sorted(file_list_ordered, key=alphanum_key) + + +def get_file_list(path, extension=None): + if extension is None: + file_list = [join(path, f) for f in listdir(path) if isfile(join(path, f))] + else: + file_list = [ + join(path, f) for f in listdir(path) + if isfile(join(path, f)) and splitext(f)[1] == extension + ] + file_list = sorted_alphanum(file_list) + return file_list + + +def get_file_list_specific(path, color_depth, extension=None): + if extension is None: + file_list = [join(path, f) for f in listdir(path) if isfile(join(path, f))] + else: + file_list = [ + join(path, f) for f in listdir(path) + if isfile(join(path, f)) and color_depth in f and splitext(f)[1] == extension + ] + file_list = sorted_alphanum(file_list) + return file_list + + +def get_folder_list(path): + folder_list = [join(path, f) for f in listdir(path) if isdir(join(path, f))] + folder_list = sorted_alphanum(folder_list) + return folder_list + + +def read_trajectory(filename, dim=4): + class CameraPose: + def __init__(self, meta, mat): + self.metadata = meta + self.pose = mat + + def __str__(self): + return 'metadata : ' + ' '.join(map(str, self.metadata)) + '\n' + \ + "pose : " + "\n" + np.array_str(self.pose) + + traj = [] + with open(filename, 'r') as f: + metastr = f.readline() + while metastr: + metadata = list(map(int, metastr.split())) + mat = np.zeros(shape=(dim, dim)) + for i in range(dim): + matstr = f.readline() + mat[i, :] = np.fromstring(matstr, dtype=float, sep=' \t') + traj.append(CameraPose(metadata, mat)) + metastr = f.readline() + return traj diff --git a/pcam/tool/log.py b/pcam/tool/log.py new file mode 100755 index 0000000..d788dfa --- /dev/null +++ b/pcam/tool/log.py @@ -0,0 +1,65 @@ +import numpy as np +from collections import defaultdict +from .loss import compute_rre, compute_rte + + +class Logger: + + def __init__(self): + self.store = defaultdict(list) + + def reset(self): + self.store = defaultdict(list) + + def add(self, key, value): + self.store[key].append(value) + + def avg(self, key): + return np.mean(self.store[key]) + + def save_sacred(self, ex, it): + for k, v in self.store.items(): + if "fail" in k: + ex.log_scalar(k, np.sum(v), it) + else: + ex.log_scalar(k, np.mean(v), it) + + def show(self): + + print("\n========================") + + for k, v in self.store.items(): + + if "fail" in k: + print(k, np.sum(v)) + else: + print(k, np.mean(v)) + + if "attn_acc" in k or "count" in k: + print("min " + k + ": ", np.min(v)) + print("max " + k + ": ", np.max(v)) + + print("========================\n") + + +def save_metrics(logger, prefix, R, t, R_est, t_est, te_thres=0.6, re_thres=5): + + bs = R.shape[0] + rot_error = compute_rre(R_est, R) + trans_error = compute_rte(t.reshape(bs, -1), t_est.reshape(bs, -1)) + logger.add(prefix + ".rte_all", trans_error) + logger.add(prefix + ".rre_all", rot_error) + + if rot_error < re_thres and trans_error < te_thres: + logger.add(prefix + ".recall", 1) + logger.add(prefix + ".rte", trans_error) + logger.add(prefix + ".rre", rot_error) + else: + if rot_error > re_thres and trans_error > te_thres: + logger.add(prefix + ".fail_both", 1) + elif rot_error > 5: + logger.add(prefix + ".fail_rot", 1) + else: + logger.add(prefix + ".fail_trans", 1) + logger.add(prefix + ".recall", 0) + diff --git a/pcam/tool/loss.py b/pcam/tool/loss.py new file mode 100755 index 0000000..377c224 --- /dev/null +++ b/pcam/tool/loss.py @@ -0,0 +1,71 @@ +import math +import torch +import numpy as np +from sklearn.metrics import r2_score +from scipy.spatial.transform import Rotation + + +def compute_rte(t, t_est): + + t = t.squeeze().detach().cpu().numpy() + t_est = t_est.squeeze().detach().cpu().numpy() + + return np.linalg.norm(t - t_est) + + +def compute_rre(R_est, R): + + eps=1e-16 + + R = R.squeeze().detach().cpu().numpy() + R_est = R_est.squeeze().detach().cpu().numpy() + + return np.arccos( + np.clip( + (np.trace(R_est.T @ R) - 1) / 2, + -1 + eps, + 1 - eps + ) + ) * 180. / math.pi + + +# Metrics +def npmat2euler(mats, seq='zyx'): + eulers = [] + for i in range(mats.shape[0]): + r = Rotation.from_dcm(mats[i]) + eulers.append(r.as_euler(seq, degrees=True)) + return np.asarray(eulers, dtype='float32') + + + +def compute_metrics(true_r, pred_r, true_t, pred_t): + pred_euler = npmat2euler(pred_r) + true_euler = npmat2euler(true_r) + + r_mse = np.mean((pred_euler - true_euler) ** 2) + r_rmse = np.sqrt(r_mse) + + r_mae = np.mean(np.abs(pred_euler - true_euler)) + + t_mse = np.mean((pred_t - true_t) ** 2) + t_rmse = np.sqrt(t_mse) + + t_mae = np.mean(np.abs(pred_t - true_t)) + + r_r2_score = r2_score(true_euler, pred_euler) + t_r2_score = r2_score(true_t, pred_t) + + return { + 'r_mse': r_mse, + 't_mse': t_mse, + + 'r_rmse': r_rmse, + 't_rmse': t_rmse, + + 'r_mae': r_mae, + 't_mae': t_mae, + + 'r_r2_score': r_r2_score, + 't_r2_score': t_r2_score + } diff --git a/pcam/tool/pointcloud.py b/pcam/tool/pointcloud.py new file mode 100755 index 0000000..4d249ef --- /dev/null +++ b/pcam/tool/pointcloud.py @@ -0,0 +1,190 @@ +# Copyright (c) Chris Choy (chrischoy@ai.stanford.edu) and Wei Dong (weidong@andrew.cmu.edu) +# +# Please cite the following papers if you use any part of the code. +# - Christopher Choy, Wei Dong, Vladlen Koltun, Deep Global Registration, CVPR 2020 +# - Christopher Choy, Jaesik Park, Vladlen Koltun, Fully Convolutional Geometric Features, ICCV 2019 +# - Christopher Choy, JunYoung Gwak, Silvio Savarese, 4D Spatio-Temporal ConvNets: Minkowski Convolutional Neural Networks, CVPR 2019 +import copy +import numpy as np +import math + +import open3d as o3d + + +def make_open3d_point_cloud(xyz, color=None): + pcd = o3d.geometry.PointCloud() + pcd.points = o3d.utility.Vector3dVector(xyz) + if color is not None: + if len(color) != len(xyz): + color = np.tile(color, (len(xyz), 1)) + pcd.colors = o3d.utility.Vector3dVector(color) + return pcd + + +def make_open3d_feature(data, dim, npts): + feature = o3d.registration.Feature() + feature.resize(dim, npts) + feature.data = data.cpu().numpy().astype('d').transpose() + return feature + + +def make_open3d_feature_from_numpy(data): + assert isinstance(data, np.ndarray) + assert data.ndim == 2 + + feature = o3d.registration.Feature() + feature.resize(data.shape[1], data.shape[0]) + feature.data = data.astype('d').transpose() + return feature + + +def pointcloud_to_spheres(pcd, voxel_size, color, sphere_size=0.6): + spheres = o3d.geometry.TriangleMesh() + s = o3d.geometry.TriangleMesh.create_sphere(radius=voxel_size * sphere_size) + s.compute_vertex_normals() + s.paint_uniform_color(color) + if isinstance(pcd, o3d.geometry.PointCloud): + pcd = np.array(pcd.points) + for i, p in enumerate(pcd): + si = copy.deepcopy(s) + trans = np.identity(4) + trans[:3, 3] = p + si.transform(trans) + # si.paint_uniform_color(pcd.colors[i]) + spheres += si + return spheres + + +def prepare_single_pointcloud(pcd, voxel_size): + pcd.estimate_normals(o3d.KDTreeSearchParamHybrid(radius=voxel_size * 2.0, max_nn=30)) + return pcd + + +def prepare_pointcloud(filename, voxel_size): + pcd = o3d.io.read_point_cloud(filename) + T = get_random_transformation(pcd) + pcd.transform(T) + pcd_down = pcd.voxel_down_sample(voxel_size) + return pcd_down, T + + +def compute_overlap_ratio(pcd0, pcd1, trans, voxel_size): + pcd0_down = pcd0.voxel_down_sample(voxel_size) + pcd1_down = pcd1.voxel_down_sample(voxel_size) + matching01 = get_matching_indices(pcd0_down, pcd1_down, trans, voxel_size, 1) + matching10 = get_matching_indices(pcd1_down, pcd0_down, np.linalg.inv(trans), + voxel_size, 1) + overlap0 = len(matching01) / len(pcd0_down.points) + overlap1 = len(matching10) / len(pcd1_down.points) + return max(overlap0, overlap1) + + +def get_matching_indices(source, target, trans, search_voxel_size, K=None): + source_copy = copy.deepcopy(source) + target_copy = copy.deepcopy(target) + source_copy.transform(trans) + pcd_tree = o3d.geometry.KDTreeFlann(target_copy) + + match_inds = [] + for i, point in enumerate(source_copy.points): + [_, idx, _] = pcd_tree.search_radius_vector_3d(point, search_voxel_size) + if K is not None: + idx = idx[:K] + for j in idx: + match_inds.append((i, j)) + return match_inds + + +def evaluate_feature(pcd0, pcd1, feat0, feat1, trans_gth, search_voxel_size): + match_inds = get_matching_indices(pcd0, pcd1, trans_gth, search_voxel_size) + pcd_tree = o3d.geometry.KDTreeFlann(feat1) + dist = [] + for ind in match_inds: + k, idx, _ = pcd_tree.search_knn_vector_xd(feat0.data[:, ind[0]], 1) + dist.append( + np.clip(np.power(pcd1.points[ind[1]] - pcd1.points[idx[0]], 2), + a_min=0.0, + a_max=1.0)) + return np.mean(dist) + + +def evaluate_feature_3dmatch(pcd0, pcd1, feat0, feat1, trans_gth, inlier_thresh=0.1): + r"""Return the hit ratio (ratio of inlier correspondences and all correspondences). + + inliear_thresh is the inlier_threshold in meter. + """ + if len(pcd0.points) < len(pcd1.points): + hit = valid_feat_ratio(pcd0, pcd1, feat0, feat1, trans_gth, inlier_thresh) + else: + hit = valid_feat_ratio(pcd1, pcd0, feat1, feat0, np.linalg.inv(trans_gth), + inlier_thresh) + return hit + + +def get_matching_matrix(source, target, trans, voxel_size, debug_mode): + source_copy = copy.deepcopy(source) + target_copy = copy.deepcopy(target) + source_copy.transform(trans) + pcd_tree = o3d.geometry.KDTreeFlann(target_copy) + matching_matrix = np.zeros((len(source_copy.points), len(target_copy.points))) + + for i, point in enumerate(source_copy.points): + [k, idx, _] = pcd_tree.search_radius_vector_3d(point, voxel_size * 1.5) + if k >= 1: + matching_matrix[i, idx[0]] = 1 # TODO: only the cloest? + + return matching_matrix + + +def get_random_transformation(pcd_input): + def rot_x(x): + out = np.zeros((3, 3)) + c = math.cos(x) + s = math.sin(x) + out[0, 0] = 1 + out[1, 1] = c + out[1, 2] = -s + out[2, 1] = s + out[2, 2] = c + return out + + def rot_y(x): + out = np.zeros((3, 3)) + c = math.cos(x) + s = math.sin(x) + out[0, 0] = c + out[0, 2] = s + out[1, 1] = 1 + out[2, 0] = -s + out[2, 2] = c + return out + + def rot_z(x): + out = np.zeros((3, 3)) + c = math.cos(x) + s = math.sin(x) + out[0, 0] = c + out[0, 1] = -s + out[1, 0] = s + out[1, 1] = c + out[2, 2] = 1 + return out + + pcd_output = copy.deepcopy(pcd_input) + mean = np.mean(np.asarray(pcd_output.points), axis=0).transpose() + xyz = np.random.uniform(0, 2 * math.pi, 3) + R = np.dot(np.dot(rot_x(xyz[0]), rot_y(xyz[1])), rot_z(xyz[2])) + T = np.zeros((4, 4)) + T[:3, :3] = R + T[:3, 3] = np.dot(-R, mean) + T[3, 3] = 1 + return T + + +def draw_registration_result(source, target, transformation): + source_temp = copy.deepcopy(source) + target_temp = copy.deepcopy(target) + source_temp.paint_uniform_color([1, 0.706, 0]) + target_temp.paint_uniform_color([0, 0.651, 0.929]) + source_temp.transform(transformation) + o3d.visualization.draw_geometries([source_temp, target_temp]) diff --git a/pcam/tool/test_final.py b/pcam/tool/test_final.py new file mode 100755 index 0000000..e703b23 --- /dev/null +++ b/pcam/tool/test_final.py @@ -0,0 +1,327 @@ +""" +The code for the optional safeguard and refinement by optimisation or icp, proposed by DGR [1-3], are taken from +https://github.com/chrischoy/DeepGlobalRegistration/blob/master + +[1] Christopher Choy, Wei Dong, Vladlen Koltun. Deep Global Registration, CVPR, 2020. +[2] Christopher Choy, Jaesik Park, Vladlen Koltun. Fully Convolutional Geometric Features. ICCV, 2019. +[3] Christopher Choy, JunYoung Gwak, Silvio Savarese. 4D Spatio-Temporal ConvNets: Minkowski Convolutional Neural Networks. CVPR, 2019. +""" +import os +import time +import torch +import numpy as np +import open3d as o3d +from tqdm import tqdm +import torch.optim as optim +import MinkowskiEngine as ME +import torch.nn.functional as F +import lightconvpoint.nn as lcp_nn +from pcam.tool.log import Logger, save_metrics +from pcam.tool.loss import compute_metrics +from pcam.tool.transforms import sample_points +from pcam.tool.pointcloud import make_open3d_point_cloud + + +def ortho2rotation(poses): + """ + Function copy-pasted from https://github.com/chrischoy/DeepGlobalRegistration/blob/master. + Needed for DGR's refinement [1-3] + """ + r""" + poses: batch x 6 + """ + def normalize_vector(v): + r""" + Batch x 3 + """ + v_mag = torch.sqrt((v**2).sum(1, keepdim=True)) + v_mag = torch.clamp(v_mag, min=1e-8) + v = v / v_mag + return v + + def cross_product(u, v): + r""" + u: batch x 3 + v: batch x 3 + """ + i = u[:, 1] * v[:, 2] - u[:, 2] * v[:, 1] + j = u[:, 2] * v[:, 0] - u[:, 0] * v[:, 2] + k = u[:, 0] * v[:, 1] - u[:, 1] * v[:, 0] + + i = i[:, None] + j = j[:, None] + k = k[:, None] + return torch.cat((i, j, k), 1) + + def proj_u2a(u, a): + r""" + u: batch x 3 + a: batch x 3 + """ + inner_prod = (u * a).sum(1, keepdim=True) + norm2 = (u**2).sum(1, keepdim=True) + norm2 = torch.clamp(norm2, min=1e-8) + factor = inner_prod / norm2 + return factor * u + + x_raw = poses[:, 0:3] + y_raw = poses[:, 3:6] + + x = normalize_vector(x_raw) + y = normalize_vector(y_raw - proj_u2a(x, y_raw)) + z = cross_product(x, y) + + x = x[:, :, None] + y = y[:, :, None] + z = z[:, :, None] + return torch.cat((x, y, z), 2) + + +class Transformation(torch.nn.Module): + """ + Function copy-pasted from https://github.com/chrischoy/DeepGlobalRegistration/blob/master. + Needed for DGR's refinement [1-3] + """ + def __init__(self, R_init=None, t_init=None): + torch.nn.Module.__init__(self) + rot_init = torch.rand(1, 6) + trans_init = torch.zeros(1, 3) + if R_init is not None: + rot_init[0, :3] = R_init[:, 0] + rot_init[0, 3:] = R_init[:, 1] + if t_init is not None: + trans_init[0] = t_init + + self.rot6d = torch.nn.Parameter(rot_init) + self.trans = torch.nn.Parameter(trans_init) + + def forward(self, points): + rot_mat = ortho2rotation(self.rot6d) + return points @ rot_mat[0].t() + self.trans + + +class HighDimSmoothL1Loss: + """ + Function copy-pasted from https://github.com/chrischoy/DeepGlobalRegistration/blob/master. + Needed for DGR's refinement [1-3] + """ + def __init__(self, weights, quantization_size=1, eps=np.finfo(np.float32).eps): + self.eps = eps + self.quantization_size = quantization_size + self.weights = weights + if self.weights is not None: + self.w1 = weights.sum() + self.w1 = 1e-8 if self.w1 == 0 else self.w1 + + def __call__(self, X, Y): + sq_dist = torch.sum(((X - Y) / self.quantization_size)**2, axis=1, keepdim=True) + use_sq_half = 0.5 * (sq_dist < 1).float() + + loss = (0.5 - use_sq_half) * (torch.sqrt(sq_dist + self.eps) - + 0.5) + use_sq_half * sq_dist + + if self.weights is None: + return loss.mean() + else: + return (loss * self.weights).sum() / self.w1 + + +def test(test_loader, net, device, + threshold_rte, threshold_rre, + dataset, num_points=None, voxel_size=None, + icp=False, + dgr_optim=False, + safeguard=False, nb_average=0, + wsum_threshold=0): + # Init. + times = [] + if dataset == "3dmatch" or dataset == "kitti": + logger = Logger() + # To get 3D match scene name + subset_names = open(test_loader.dataset.DATA_FILES[test_loader.dataset.phase]).read().split() + print(subset_names) + array_sid = [] + elif "modelnet" in dataset: + pred_rs = [] + pred_ts = [] + true_rs = [] + true_ts = [] + net = net.eval() + search = lcp_nn.SearchQuantized(K=32, stride=1) + + # + for it, batch in enumerate(tqdm(test_loader)): + + # --- Start timer + torch.cuda.synchronize() + start = time.perf_counter() + + # --- Extract data + # Get full point cloud + src = batch['raw_src'] + tgt = batch['raw_tgt'] + assert src.shape[0] == 1 + # Quantize + if voxel_size is not None: + sel0 = ME.utils.sparse_quantize(src[0] / voxel_size, return_index=True) + sel1 = ME.utils.sparse_quantize(tgt[0] / voxel_size, return_index=True) + src = src[0][sel0] + tgt = tgt[0][sel1] + src_icp = src + tgt_icp = tgt + + # + cat_src, cat_tgt = [], [] + cat_ind_src, cat_ind_tgt = [], [] + for ind_average in range(nb_average): + # Sample + if num_points is not None: + src = torch.Tensor(sample_points(src, num_points).T).unsqueeze(0) + tgt = torch.Tensor(sample_points(tgt, num_points).T).unsqueeze(0) + # Search neighbors + src_indices = search(src)[0].to(device) + tgt_indices = search(tgt)[0].to(device) + src = src.to(device) + tgt = tgt.to(device) + # + cat_src.append(src) + cat_tgt.append(tgt) + cat_ind_src.append(src_indices) + cat_ind_tgt.append(tgt_indices) + src = torch.cat(cat_src, 0) + tgt = torch.cat(cat_tgt, 0) + src_indices = torch.cat(cat_ind_src, 0) + tgt_indices = torch.cat(cat_ind_tgt, 0) + + # Match points + with torch.no_grad(): + Rest, Test, corres_pts_for_pts1, _, _, _, w_pts1, _ = \ + net(src, tgt, indices1=src_indices, indices2=tgt_indices) + + # + error = torch.norm(torch.bmm(Rest, src) + Test - corres_pts_for_pts1, p=2, dim=1, keepdim=True) ** 2 + error = (w_pts1 * error).mean(-1) + ind = torch.argmin(error, dim=0) + Rest = Rest[ind:ind+1] + Test = Test[ind:ind+1] + + # DGR safeguard + wsum = w_pts1.sum().item() + if safeguard and wsum < wsum_threshold: + """Safeguard as proposed by DGR""" + pcd0 = make_open3d_point_cloud(src[0].T.cpu().numpy()) + pcd1 = make_open3d_point_cloud(corres_pts_for_pts1[0].T.cpu().numpy()) + idx0 = np.arange(src.shape[-1]).astype('int') + idx1 = np.arange(corres_pts_for_pts1.shape[-1]).astype('int') + corres = np.stack((idx0, idx1), axis=1) + corres = o3d.utility.Vector2iVector(corres) + # + T = o3d.registration.registration_ransac_based_on_correspondence( + pcd0, + pcd1, + corres, + 2 * voxel_size, + o3d.registration.TransformationEstimationPointToPoint(False), + 4, + o3d.registration.RANSACConvergenceCriteria(4000000, 80000) + ).transformation + # + Rest = torch.from_numpy(T[0:3, 0:3]).unsqueeze(0).float().to(device) + Test = torch.from_numpy(T[0:3, 3]).unsqueeze(0).unsqueeze(-1).float().to(device) + + else: + if dgr_optim: + """Optional refinement by optimisation as used in DGR""" + len_src = src_icp.shape[0] + src = torch.cat([src[i:i + 1] for i in range(nb_average)], -1)[:, :, :len_src] + w_pts1 = torch.cat([w_pts1[i:i+1] for i in range(nb_average)], -1)[:, :, :len_src] + corres_pts_for_pts1 = torch.cat([corres_pts_for_pts1[i:i + 1] for i in range(nb_average)], -1)[:, :, :len_src] + + max_break_count = 20 + break_threshold_ratio = 1e-4 + loss_fn = HighDimSmoothL1Loss(w_pts1.transpose(1, 2), 2 * voxel_size) + transformation = Transformation(Rest[0], Test[0, :, 0]).to(device) + + optimizer = optim.Adam(transformation.parameters(), lr=1e-1) + scheduler = optim.lr_scheduler.ExponentialLR(optimizer, gamma=0.999) + loss_prev = loss_fn(transformation(src[0].t()), corres_pts_for_pts1[0].t()).item() + break_counter = 0 + + # Transform points + for _ in range(1000): + new_points = transformation(src[0].t()) + loss = loss_fn(new_points, corres_pts_for_pts1[0].t()) + if loss.item() < 1e-7: + break + optimizer.zero_grad() + loss.backward() + optimizer.step() + scheduler.step() + if abs(loss_prev - loss.item()) < loss_prev * break_threshold_ratio: + break_counter += 1 + if break_counter >= max_break_count: + break + loss_prev = loss.item() + rot6d = transformation.rot6d.detach() + trans = transformation.trans.detach() + Rest = ortho2rotation(rot6d) + Test = trans.unsqueeze(-1) + + # ICP (on non subsampled but quantized point cloud) + if icp: + """Optional refinement by ICP""" + assert Rest.shape[0] == 1 + T = np.identity(4) + T[0:3, 0:3] = Rest[0].cpu().numpy() + T[0:3, 3] = Test[0, :, 0].cpu().numpy() + + T = o3d.registration.registration_icp( + make_open3d_point_cloud(src_icp), + make_open3d_point_cloud(tgt_icp), + icp, + T, + o3d.registration.TransformationEstimationPointToPoint() + ).transformation + Rest = torch.from_numpy(T[0:3, 0:3]).unsqueeze(0).float().to(device) + Test = torch.from_numpy(T[0:3, 3]).unsqueeze(0).unsqueeze(-1).float().to(device) + + # End timer + torch.cuda.synchronize() + end = time.perf_counter() + times.append(end - start) + + # Save metric + R = batch['rotation'].float().to(device) + T = batch['translation'].float().to(device) + # Compensate for centering in dataloader (correct bias at training) + p0_mean = batch['p0_mean'].float().to(device) + p1_mean = batch['p1_mean'].float().to(device) + Test = Test + p1_mean - Rest @ p0_mean + if "modelnet" not in dataset: + if batch['filename'][0] in subset_names: + array_sid.append(subset_names.index(batch['filename'][0])) + save_metrics(logger, 'val', R, T, Rest, Test, threshold_rte, threshold_rre) + elif "modelnet" in dataset: + pred_rs.append(Rest.detach().cpu().numpy()) + pred_ts.append(Test.squeeze().detach().cpu().numpy()) + true_rs.append(R.detach().cpu().numpy()) + true_ts.append(T.squeeze().detach().cpu().numpy()) + + # Log + if "modelnet" not in dataset: + print("RTE all:", np.mean(logger.store['val.rte_all'])) + print("RRE all", np.mean(logger.store['val.rre_all'])) + print("Recall:", np.mean(logger.store['val.recall'])) + print("RTE: ", np.mean(logger.store['val.rte'])) + print("RRE: ", np.mean(logger.store['val.rre'])) + print("Times:", np.mean(times)) + return np.array(logger.store['val.rte_all']), np.array(logger.store['val.rre_all']), np.array(times), np.array(array_sid), subset_names + elif "modelnet" in dataset: + pred_r = np.concatenate(pred_rs, axis=0) + pred_t = np.concatenate(pred_ts, axis=0) + true_r = np.concatenate(true_rs, axis=0) + true_t = np.concatenate(true_ts, axis=0) + print(pred_r.shape, true_r.shape, pred_t.shape, true_t.shape) + metrics = compute_metrics(true_r, pred_r, true_t, pred_t) + print(metrics) + diff --git a/pcam/tool/train_util.py b/pcam/tool/train_util.py new file mode 100755 index 0000000..9c82313 --- /dev/null +++ b/pcam/tool/train_util.py @@ -0,0 +1,175 @@ +import torch +import numpy as np +from tqdm import tqdm +import torch.nn.functional as F +from pcam.tool.log import Logger, save_metrics + + +@torch.no_grad() +def validation(epoch, val_loader, net, tensorboard, device, threshold_rte, threshold_rre): + """ + """ + + # Init. + net = net.eval() + + # + logger = Logger() + mean_epe_true_mask = 0 + mean_epe_detect_mask = 0 + + # + for it, batch in enumerate(tqdm(val_loader)): + + # Extract data + src = batch['src'].float().to(device) + tgt = batch['tgt'].float().to(device) + src_indices = batch['indices1'].long().to(device) + tgt_indices = batch['indices2'].long().to(device) + true_attention = batch['attention'].float().to(device) + R = batch['rotation'].float().to(device) + T = batch['translation'].float().to(device) + + # Match points + Rest, Test, corres_pts_for_src, _, _, _, w_src, _ = \ + net(src, tgt, indices1=src_indices, indices2=tgt_indices) + + # Save metric + save_metrics(logger, 'val', R, T, Rest, Test, threshold_rte, threshold_rre) + + # Log + est_mask_src = w_src > 0.5 + true_mask_src = true_attention.sum(2, keepdim=True).transpose(1, 2) > 0 + gt_corres_pts_for_src = torch.bmm(R, src) + T + epe = torch.norm(corres_pts_for_src - gt_corres_pts_for_src, p=2, dim=1, keepdim=True) + mean_epe_true_mask += epe[true_mask_src].mean().item() + mean_epe_detect_mask += epe[est_mask_src].mean().item() + + # Log + tensorboard.add_scalar('Acc_Val/recall', np.mean(logger.store['val.recall']), epoch) + tensorboard.add_scalar('Acc_Val/rte', np.mean(logger.store['val.rte']), epoch) + tensorboard.add_scalar('Acc_Val/rre', np.mean(logger.store['val.rre']), epoch) + tensorboard.add_scalar('Acc_Val/rte_all', np.mean(logger.store['val.rte_all']), epoch) + tensorboard.add_scalar('Acc_Val/rre_all', np.mean(logger.store['val.rre_all']), epoch) + tensorboard.add_scalar('EPE_Val/true_mask', mean_epe_true_mask / (it + 1), epoch) + tensorboard.add_scalar('EPE_Val/detected_mask', mean_epe_detect_mask / (it + 1), epoch) + + return np.mean(logger.store['val.recall']), np.mean(logger.store['val.rre_all']) + + +def train_one_epoch(epoch, train_loader, net, optimizer, tensorboard, device, threshold, + loss_entropy_attention, loss_dist_attention, loss_dist_confidence): + """ + """ + + # Init. + net = net.train() + shift = epoch * len(train_loader) + + # + delta = 100 + mean_lea = 0 + mean_lda = 0 + mean_lec = 0 + mean_ldc = 0 + mean_loss = 0 + mean_found = 0 + mean_correct = 0 + mean_good_pairs = 0 + zero = torch.Tensor([0.]).to(device) + + # + for it, batch in enumerate(tqdm(train_loader)): + + # Extract data + src = batch['src'].float().to(device) + tgt = batch['tgt'].float().to(device) + src_indices = batch['indices1'].long().to(device) + tgt_indices = batch['indices2'].long().to(device) + true_attention = batch['attention'].float().to(device) + R = batch['rotation'].float().to(device) + T = batch['translation'].float().to(device) + Rinv = batch['inv_rotation'].float().to(device) + Tinv = batch['inv_translation'].float().to(device) + + # Match points + _, _, corres_pts_for_src, corres_pts_for_tgt, log_attn_row, log_attn_col, w_src, w_tgt = \ + net(src, tgt, indices1=src_indices, indices2=tgt_indices) + + # --- Losses for point matcher + # Precomputations + gt_corres_pts_for_src = torch.bmm(R, src) + T + gt_corres_pts_for_tgt = torch.bmm(Rinv, tgt) + Tinv + # Cross entropy attention + if loss_entropy_attention: + lea = - (true_attention * log_attn_row).sum(2).mean() + lea += - (true_attention * log_attn_col).sum(1).mean() + else: + lea = zero + # EPE loss + if loss_dist_attention: + true_mask_src = true_attention.sum(2) > 0 + lda = torch.norm(corres_pts_for_src - gt_corres_pts_for_src, p=2, dim=1)[true_mask_src].mean() + true_mask_tgt = true_attention.sum(1) > 0 + lda += torch.norm(corres_pts_for_tgt - gt_corres_pts_for_tgt, p=2, dim=1)[true_mask_tgt].mean() + else: + lda = zero + + # --- Losses for confidence estimator + # Detach if no backprop from confidence estimator loss to attention + if not net.backprop: + corres_pts_for_src = corres_pts_for_src.detach() + corres_pts_for_tgt = corres_pts_for_tgt.detach() + # Cross entropy on confidence weights + # Source side + true_label = (torch.norm(corres_pts_for_src - gt_corres_pts_for_src, p=2, dim=1, keepdim=True) < threshold).float() + lec = F.binary_cross_entropy(w_src, true_label) + # Target side + true_label = (torch.norm(corres_pts_for_tgt - gt_corres_pts_for_tgt, p=2, dim=1, keepdim=True) < threshold).float() + lec += F.binary_cross_entropy(w_tgt, true_label) + # EPE loss + if loss_dist_confidence: + # Source side + ldc = (w_src * torch.norm(corres_pts_for_src - gt_corres_pts_for_src, p=2, dim=1, keepdim=True)).mean() + # Target side + ldc += (w_tgt * torch.norm(corres_pts_for_tgt - gt_corres_pts_for_tgt, p=2, dim=1, keepdim=True)).mean() + else: + ldc = zero + + # Total loss + loss = lea + lda + lec + ldc + + # Gradient + optimizer.zero_grad() + loss.backward() + optimizer.step() + + # Log + mean_lea += lea.item() + mean_lda += lda.item() + mean_lec += lec.item() + mean_ldc += ldc.item() + mean_loss += loss.item() + mean_found += (w_tgt > .5).float().sum(-1).mean() + mean_correct += ((w_tgt > .5).float() * true_label).sum(-1).mean() + mean_good_pairs += true_label.sum(-1).mean() + if it % delta == delta - 1: + # Loss + tensorboard.add_scalar('Loss_Train/loss', mean_loss / delta, shift + it) + tensorboard.add_scalar('Loss_Train/entropy_att', mean_lea / delta, shift + it) + tensorboard.add_scalar('Loss_Train/dist_att', mean_lda / delta, shift + it) + tensorboard.add_scalar('Loss_Train/entropy_conf', mean_lec / delta, shift + it) + tensorboard.add_scalar('Loss_Train/dist_conf', mean_ldc / delta, shift + it) + # Accuracies + tensorboard.add_scalar('Acc_Train/nb_to_found', mean_good_pairs / delta, shift + it) + tensorboard.add_scalar('Acc_Train/nb_correct', mean_correct / delta, shift + it) + tensorboard.add_scalar('Acc_Train/nb_found', mean_found / delta, shift + it) + # + mean_lea = 0 + mean_lda = 0 + mean_lec = 0 + mean_ldc = 0 + mean_loss = 0 + mean_found = 0 + mean_correct = 0 + mean_good_pairs = 0 diff --git a/pcam/tool/transforms.py b/pcam/tool/transforms.py new file mode 100755 index 0000000..a3b9f03 --- /dev/null +++ b/pcam/tool/transforms.py @@ -0,0 +1,176 @@ +# Copyright (c) Chris Choy (chrischoy@ai.stanford.edu) and Wei Dong (weidong@andrew.cmu.edu) +# +# Please cite the following papers if you use any part of the code. +# - Christopher Choy, Wei Dong, Vladlen Koltun, Deep Global Registration, CVPR 2020 +# - Christopher Choy, Jaesik Park, Vladlen Koltun, Fully Convolutional Geometric Features, ICCV 2019 +# - Christopher Choy, JunYoung Gwak, Silvio Savarese, 4D Spatio-Temporal ConvNets: Minkowski Convolutional Neural Networks, CVPR 2019 +import torch +import numpy as np +import random +from scipy.linalg import expm, norm +from sklearn.neighbors import NearestNeighbors +from scipy.sparse import csr_matrix +from .pointcloud import get_matching_indices, make_open3d_point_cloud + + +def decompose_rotation_translation(Ts): + Ts = Ts.float() + Rs = Ts[:, :3, :3] + ts = Ts[:, :3, 3] + + Rs.require_grad = False + ts.require_grad = False + + return Rs, ts + +def voxelize(point_cloud, voxel_size): + # Random permutation (for random selection within voxel) + point_cloud = np.random.permutation(point_cloud) + + # Set minimum value to 0 on each axis + min_val = point_cloud.min(0) + pc = point_cloud - min_val + + # Quantize + pc = np.floor(pc / voxel_size) + L, M, N = pc.max(0) + 1 + pc = pc[:, 0] + L * pc[:, 1] + L * M * pc[:, 2] + + # Select voxel + _, idx = np.unique(pc, return_index=True) + + return point_cloud[idx, :] + +def sample_points(pts, num_points): + if pts.shape[0] > num_points: + pts = np.random.permutation(pts)[:num_points] + else: + pts = np.random.permutation(pts) + return pts + +def ground_truth_attention_distance(xyz0, xyz1, trans, search_voxel_size): + + pcd0 = make_open3d_point_cloud(xyz0) + pcd1 = make_open3d_point_cloud(xyz1) + # Sizes + N = xyz0.shape[0] + M = xyz1.shape[0] + matches = get_matching_indices(pcd0, pcd1, trans, search_voxel_size, K=None) + + l, r = [], [] + for i, j in matches: + l.append(i) + r.append(j) + + A = csr_matrix((np.ones(len(matches)), (l, r)), (N, M)) +# print(A.shape) +# print(A.sum(axis=1).shape) +# A = A / A.sum(axis=1) +# B = csr_matrix((distance[:, 0], (np.arange(M), neighbors)), (M, N)).T +# A = A * B + + return A + +def ground_truth_attention(p1, p2, trans): + + # Ideal pts2 with ground truth transformation + ideal_pts2 = p1 @ trans[:3, :3].T + trans[:3, 3:4].T + + # Sizes + N = p1.shape[0] + M = p2.shape[0] + + # Search NN for each ideal_pt2 in p2 + nn = NearestNeighbors(n_neighbors=1).fit(p2) + distance, neighbors = nn.kneighbors(ideal_pts2) + neighbors = neighbors[:, 0] +# print(neighbors, len(neighbors)) + + # Create ideal attention matrix +# A = csr_matrix((distance[:, 0], (np.arange(N), neighbors)), (N, M)) + A = csr_matrix((np.ones(N), (np.arange(N), neighbors)), (N, M)) +# print(A.shape) + + # Search NN for each p2 in ideal_pt2 + nn = NearestNeighbors(n_neighbors=1).fit(ideal_pts2) + distance, neighbors = nn.kneighbors(p2) + neighbors = neighbors[:, 0] + + # Create ideal attention matrix + B = csr_matrix((np.ones(M), (np.arange(M), neighbors)), (M, N)).T +# B = csr_matrix((distance[:, 0], (np.arange(M), neighbors)), (M, N)).T + + # Keep only consistent neighbors by pointwise multiplication +# thres = 0.03 +# A = A.toarray() +# B = B.toarray() +# A = (A < thres) & (A > 0) +# B = (B < thres) & (B > 0) + A = A.multiply(B) + +# A = A * B + return A + +# Rotation matrix along axis with angle theta +def M(axis, theta): + return expm(np.cross(np.eye(3), axis / norm(axis) * theta)) + +def M_z_axis(theta): + theta = theta * np.pi / 180.0 + z_axis = np.array([0, 0, 1]) + return expm(np.cross(np.eye(3), z_axis / norm(z_axis) * theta)) + +def sample_random_rotation_z_axis(pcd, randg, rotation_range=360): + T = np.eye(4) + z_axis = np.array([0, 0, 1]) + random_angle = rotation_range * (randg.rand(1) - 0.5) + R = M(z_axis, random_angle * np.pi / 180.0) + T[:3, :3] = R + T[:3, 3] = R.dot(-np.mean(pcd, axis=0)) + return T + +def sample_random_trans(pcd, randg, rotation_range=360): + T = np.eye(4) + R = M(randg.rand(3) - 0.5, rotation_range * np.pi / 180.0 * (randg.rand(1) - 0.5)) + T[:3, :3] = R + T[:3, 3] = R.dot(-np.mean(pcd, axis=0)) + return T + +def apply_transform(pts, trans): + R = trans[:3, :3] + T = trans[:3, 3] + pts = pts @ R.T + T + return pts + +class Compose: + def __init__(self, transforms): + self.transforms = transforms + + def __call__(self, coords, feats): + for transform in self.transforms: + coords, feats = transform(coords, feats) + return coords, feats + + +class Jitter: + def __init__(self, mu=0, sigma=0.01): + self.mu = mu + self.sigma = sigma + + def __call__(self, coords, feats): + if random.random() < 0.95: + feats += self.sigma * torch.randn(feats.shape[0], feats.shape[1]) + if self.mu != 0: + feats += self.mu + return coords, feats + + +class ChromaticShift: + def __init__(self, mu=0, sigma=0.1): + self.mu = mu + self.sigma = sigma + + def __call__(self, coords, feats): + if random.random() < 0.95: + feats[:, :3] += torch.randn(self.mu, self.sigma, (1, 3)) + return coords, feats diff --git a/pcam/trained_models/models.md b/pcam/trained_models/models.md new file mode 100644 index 0000000..1a79494 --- /dev/null +++ b/pcam/trained_models/models.md @@ -0,0 +1,23 @@ +# PCAM pre-trained models + +## Folder structure + +Unzip the pretrained models in this folder (`/path/to/pcam/data/trained_models/`), which should contain the following subfolders: + +``` +./3dmatch/ +./3dmatch/soft_nbEnc_6_DistConf_4096/ +./3dmatch/sparse_nbEnc_6_noBackprop_DistConf_4096/ +./kitti/ +./kitti/soft_nbEnc_6_DistConf/ +./kitti/sparse_nbEnc_6_noBackprop_DistConf/ +./modelnet/ # Contains the models for modelnet unseen objects +./modelnet/soft_nbEnc_6_DistConf/ +./modelnet/sparse_nbEnc_6_noBackprop_DistConf/ +./modelnet_unseen/ # Contains the models for modelnet unseen categories +./modelnet_unseen/soft_nbEnc_6_DistConf/ +./modelnet_unseen/sparse_nbEnc_6_noBackprop_DistConf/ +./modelnet_noise/ # Contains the models for modelnet unseen objects with noise +./modelnet_noise/soft_nbEnc_6_DistConf/ +./modelnet_noise/sparse_nbEnc_6_noBackprop_DistConf/ +``` diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..a56802a --- /dev/null +++ b/requirements.txt @@ -0,0 +1,10 @@ +numpy==1.17.4 +scipy==1.3.3 +open3d==0.10.0.0 +easydict==1.9 +scikit-learn +sacred +tqdm +tensorboard +h5py +PyYAML \ No newline at end of file diff --git a/setup.py b/setup.py new file mode 100755 index 0000000..23945c6 --- /dev/null +++ b/setup.py @@ -0,0 +1,4 @@ +from setuptools import find_packages +from setuptools import setup + +setup(name="pcam", packages=find_packages())