├── README.md ├── chk.py ├── cnv_model.py ├── dist.py ├── ds_load.py ├── iam ├── iam.gin ├── iam.sh ├── iam_ln.gin ├── iam_par_gt.py ├── test.gc ├── test.ln ├── train.gc ├── train.ln ├── val.gc └── val.ln ├── ich17 ├── ich.gin ├── ich.py ├── ich.sh ├── test └── train ├── o1.png ├── requirements.txt ├── test.py ├── train.py └── utils.py /README.md: -------------------------------------------------------------------------------- 1 | # OrigamiNet 2 | 3 | Public implementation of our CVPR 2020 paper: 4 | 5 | "OrigamiNet: Weakly-Supervised, Segmentation-Free, One-Step, Full Page TextRecognition by learning to unfold" 6 | 7 |

8 | 9 |

10 | 11 | ## Getting Started 12 | 13 | OrigamiNet has been implemented and tested with Python 3.6 and PyTorch 1.3. All project configuration is handled using [Gin](https://github.com/google/gin-config). 14 | 15 | First clone the repo: 16 | ``` 17 | git clone https://github.com/IntuitionMachines/OrigamiNet.git 18 | ``` 19 | Then install the dependencies with: 20 | ``` 21 | pip install -r requirements.txt 22 | ``` 23 | ## Replicating Experiments 24 | 25 | ### IAM 26 | 1. Register at the FKI's webpage [here](http://www.fki.inf.unibe.ch/DBs/iamDB/iLogin/index.php). 27 | 28 | 2. After obtaining the username and password, we provide a script to download and setup the dataset, crop paragraph images and generate corresponding paragraph transcriptions by concatenating each line transcription. Run: 29 | ``` 30 | bash iam/iam.sh $IAM_USER $IAM_PASS $IAM_DEST 31 | ``` 32 | where `$IAM_USER` and `$IAM_PASS` are the username and password from FKI website, `IAM_DEST` is the destination folder where the dataset will be saved (the folder will be created by the script if it doesn't exist). 33 | 34 | 3. Run the training script using provided configuration: 35 | ``` 36 | python train.py --gin iam/iam.gin 37 | ``` 38 | Note: if you want to use `horovod`, run as following: 39 | ``` 40 | horovodrun -n $N_GPU -H localhost:$N_GPU python train.py --gin iam/iam.gin 41 | ``` 42 | where `$N_GPU` is the number of gpus to be used (visible GPUs can be controlled by setting `CUDA_VISIBLE_DEVICES`) 43 | 44 | ### ICDAR2017 HTR 45 | 46 | 1. Download and set up the dataset using the provided script: 47 | ``` 48 | bash ich17/ich.sh $ICH_DEST 49 | ``` 50 | `ICH_DEST` is the destination folder where the dataset will be saved. The folder will be created by the script if it doesn't exist. 51 | 52 | 2. Run the training script using provided configuration: 53 | ``` 54 | python train.py --gin ich17/ich.gin 55 | ``` 56 | 57 | ## Results 58 | 59 | In the following table CER and nCER are respectively the micro and macro averaged [Character Error Rate](https://en.wikipedia.org/wiki/Levenshtein_distance). BLEU is the marco-averaged character-level [BLEU](https://en.wikipedia.org/wiki/BLEU) score. 60 | 61 | ### Paper results 62 | 63 | Dataset | wmul | Size | CER (%) | nCER (%) | BLEU 64 | --------|------|---------|--------- | -------- |----- 65 | IAM | 1.5 | 750x750 | 4.7 | 4.84 | 91.15 66 | ICDAR | 1.8 |1400x1000| 6.80 | 5.87 | 92.67 67 | 68 | 69 | ### Additional results 70 | 71 | Dataset | wmul | Size | CER (%) | nCER (%) | BLEU 72 | --------|------|---------|--------- | -------- |----- 73 | IAM | 1.0 | 750x750 | 4.85 | 4.95 | 90.87 74 | IAM | 2.0 | 750x750 | 4.41 | 4.54 | 91.25 75 | IAM | 3.0 | 750x750 | 4.29 | 4.41 | 91.84 76 | IAM | 4.0 | 750x750 | 4.07 | 4.18 | 92.21 77 | ICDAR | 2.4 |1400x1000| 6.01 | 5.30 | 93.64 78 | 79 | These experiments were done with a `batch_size` of 8. We also obtained promising results with a `batch_size` of 4, as the proposed architecure does not utilize BatchNorm operations. 80 | 81 | ### Synthetic hard-to-segment IAM variants 82 | 83 | In the paper, two IAM variants with hard-to-segment text-lines were presented. These results can be replicated as follows: 84 | 85 | #### Compact lines 86 | 87 | 1. Make a copy of the `pargs` folder, which contains the extracted paragraph images: 88 | ``` 89 | cp -r iam/pargs/ iam/pargsCL 90 | ``` 91 | 2. To generate IAM with touching lines, use `image-magick` to resize images to half the height using seam carving. 92 | 93 | The following line runs the conversion in parallel to speed up the process: 94 | ``` 95 | find iam/pargsCL -iname "*.png" -type f -print0 | parallel --progress -0 -j +0 "mogrify -liquid-rescale 100x50%\! {}" 96 | ``` 97 | 98 | #### Rotated and warped 99 | 100 | 1. Make a copy of the `pargs` folder, which contains the extracted paragraph images: 101 | ``` 102 | cp -r iam/pargs/ iam/pargsPW 103 | ``` 104 | 2. To generate IAM with a random projection and wavy text-lines: 105 | 106 | ``` 107 | find iam/pargsPW -iname "*.png" -type f -print0 | parallel --progress -0 -j +0 "python dist.py {}" 108 | ``` 109 | ### Results 110 | 111 | Dataset | wmul | Size | CER (%) 112 | -------------------|------|---------|--------- 113 | Compact lines | 1.0 | 750x750 | 6.0 114 | Rotated and warped | 1.0 | 750x750 | 5.6 115 | 116 | ## Single line results 117 | 118 | To be as useful as possible, we show how to perform single-line recognition based on the code. This essentially resembles the [GTR model](https://arxiv.org/abs/1812.11894). Assuming lines from IAM and thier transcriptions are stored in `iam/lines/`, run as 119 | ``` 120 | python train.py --gin iam/iam_ln.gin 121 | ``` 122 | ### Results 123 | 124 | Results on the IAM single-line test set 125 | 126 | Dataset | nlyrs | Size | CER (%) 127 | ---------------|-------|---------|--------- 128 | IAM lines | 12 | 32x600 | 5.26 129 | IAM lines | 18 | 32x600 | 4.84 130 | IAM lines | 24 | 32x600 | 4.76 131 | 132 | 133 | 134 | ## Gin Options 135 | 136 | This is a brief list of the most important gin options. For full config files see `iam/iam.gin` or `ich17/ich.gin` 137 | - `dist`: The parallel traning method. We currently support three possible values: 138 | - `DP` uses DataParallel 139 | - `DDP` uses DistributedDataParallel 140 | - `HVD` uses horovod 141 | - `n_channels`: number of channels per image 142 | - `o_classes`: The size of the target vocabulary (i.e. number of symbols in the alphabet) 143 | - `GradCheck`: Whether or not to use gradient checkpointing 144 | - `0` disabled 145 | - `1` enabled, light version which offers good memory saving with small slowdown 146 | - `2` enabled, higher memory saving, but noticeably slower than `1` 147 | - `get_images.max_h` and `get_images.max_w`: Target height and width for each image, images will be resized to this target dimentions while maintaining aspect ratio by padding. 148 | - `train.AMP`: Whether Automatic Mixed Precision (by [Nvidia apex](https://github.com/NVIDIA/apex)) is enabled 149 | - `train.WdB`: Whether [Wandb](https://github.com/wandb/client) logging is enabled 150 | - `train.train_data_list` and `train.test_data_list`: Path to file containing list of training or testing images 151 | - `train.train_data_path` and `train.test_data_path`: Path to folder containing the training or testing images 152 | - `train.train_batch_size` and `train.val_batch_size`: the batch size used during training and validation, the interpretation of this value vaires according to `dist` option 153 | - `DP` the `train.batch_size` is the total batch size 154 | - `DDP` or `HVD` then `train.batch_size` is the batch size per process (total batch size is `train.batch_size*#Processes` 155 | - `train.workers`: Number of worker for the PyTorch `DataLoader` 156 | - `train.continue_model`: Path to checkpoint to continue from 157 | - `train.num_iter`: Total number of training iterations 158 | - `train.valInterval`: Perform validation every how many batches 159 | - `OrigamiNet.nlyrs`: #layers in the GTR model 160 | - `OrigamiNet.reduceAxis`: Final axis of reduction 161 | - `OrigamiNet.wmul`: Channel multipler, numer of channels in each channel will be multiplied by this value 162 | - `OrigamiNet.lszs`: Number of channels for each layer, this is a dictionary of format `leyer_id:channels`, unspecified layers are assumed constant 163 | - `s1/Upsample.size`: Size of penultimate layer 164 | - `s1/Upsample.size`: Size of the last layer 165 | - `OrigamiNet.lreszs`: Resampling stages in the model 166 | 167 | ## Acknowledgements 168 | 169 | Some code is borrowed from the [deep-text-recognition-benchmark](https://github.com/clovaai/deep-text-recognition-benchmark), 170 | which is under the Apache 2.0 license. 171 | 172 | Network architecture was visualized using [PlotNeuralNet](https://github.com/HarisIqbal88/PlotNeuralNet) 173 | 174 | This work was sponsored by [Intuition Machines, Inc](https://www.imachines.com/). 175 | 176 | ## Citation 177 | 178 | ```bibtex 179 | @inproceedings{yousef2020origaminet, 180 | title={OrigamiNet: Weakly-Supervised, Segmentation-Free, One-Step, Full Page TextRecognition by learning to unfold}, 181 | author={Yousef, Mohamed and Bishop, Tom E.}, 182 | booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)}, 183 | month = {June}, 184 | year = {2020} 185 | } 186 | ``` 187 | -------------------------------------------------------------------------------- /chk.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import warnings 3 | 4 | from torch.utils.checkpoint import checkpoint 5 | 6 | 7 | def checkpoint_sequential_step(functions, segments, *inputs, **kwargs): 8 | r"""A helper function for checkpointing sequential models. 9 | 10 | Sequential models execute a list of modules/functions in order 11 | (sequentially). Therefore, we can divide such a model in various segments 12 | and checkpoint each segment. All segments except the last will run in 13 | :func:`torch.no_grad` manner, i.e., not storing the intermediate 14 | activations. The inputs of each checkpointed segment will be saved for 15 | re-running the segment in the backward pass. 16 | 17 | See :func:`~torch.utils.checkpoint.checkpoint` on how checkpointing works. 18 | 19 | .. warning:: 20 | Checkpointing doesn't work with :func:`torch.autograd.grad`, but only 21 | with :func:`torch.autograd.backward`. 22 | 23 | .. warning: 24 | At least one of the inputs needs to have :code:`requires_grad=True` if 25 | grads are needed for model inputs, otherwise the checkpointed part of the 26 | model won't have gradients. 27 | 28 | Args: 29 | functions: A :class:`torch.nn.Sequential` or the list of modules or 30 | functions (comprising the model) to run sequentially. 31 | segments: Number of chunks to create in the model 32 | inputs: tuple of Tensors that are inputs to :attr:`functions` 33 | preserve_rng_state(bool, optional, default=True): Omit stashing and restoring 34 | the RNG state during each checkpoint. 35 | 36 | Returns: 37 | Output of running :attr:`functions` sequentially on :attr:`*inputs` 38 | 39 | Example: 40 | >>> model = nn.Sequential(...) 41 | >>> input_var = checkpoint_sequential(model, chunks, input_var) 42 | """ 43 | # Hack to mix *args with **kwargs in a python 2.7-compliant way 44 | preserve = kwargs.pop('preserve_rng_state', True) 45 | if kwargs: 46 | raise ValueError("Unexpected keyword arguments: " + ",".join(arg for arg in kwargs)) 47 | 48 | # To accept variadic arguments is not consistent with nn.Sequential. 49 | # This interface will be changed at PyTorch 1.3. 50 | # See also: https://github.com/pytorch/pytorch/issues/19260 51 | if not inputs: 52 | warnings.warn('Giving no input to checkpoint_sequential has been deprecated, ' 53 | 'a TypeError will be raised after PyTorch 1.3', 54 | DeprecationWarning) 55 | elif len(inputs) > 1: 56 | warnings.warn('multiple inputs to checkpoint_sequential has been deprecated, ' 57 | 'a TypeError will be raised after PyTorch 1.3', 58 | DeprecationWarning) 59 | 60 | def run_function(start, end, functions): 61 | def forward(*inputs): 62 | for j in range(start, end + 1): 63 | if isinstance(inputs, tuple): 64 | inputs = functions[j](*inputs) 65 | else: 66 | inputs = functions[j](inputs) 67 | return inputs 68 | return forward 69 | 70 | if isinstance(functions, torch.nn.Sequential): 71 | functions = list(functions.children()) 72 | 73 | segment_size = segments 74 | # the last chunk has to be non-volatile 75 | end = -1 76 | for start in range(0, len(functions)-segments, segments): 77 | end = start + segment_size - 1 78 | inputs = checkpoint(run_function(start, end, functions), *inputs, 79 | preserve_rng_state=preserve) 80 | if not isinstance(inputs, tuple): 81 | inputs = (inputs,) 82 | 83 | return checkpoint(run_function(end + 1, len(functions) - 1, functions), *inputs) 84 | -------------------------------------------------------------------------------- /cnv_model.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import torch.nn as nn 3 | import torch.nn.functional as F 4 | from chk import checkpoint_sequential_step, checkpoint 5 | 6 | import math 7 | import numpy as np 8 | from torchvision.utils import save_image 9 | 10 | import gin 11 | 12 | def ginM(n): return gin.query_parameter(f'%{n}') 13 | gin.external_configurable(nn.MaxPool2d, module='nn') 14 | gin.external_configurable(nn.Upsample, module='nn') 15 | 16 | 17 | class LN(nn.Module): 18 | def forward(self, x): 19 | return F.layer_norm(x, x.size()[1:], weight=None, bias=None, eps=1e-05) 20 | 21 | @gin.configurable 22 | class PadPool(nn.Module): 23 | def forward(self, x): 24 | x = F.pad(x, [0, 0, 0, 1]) 25 | x = F.max_pool2d(x,(2, 2), stride=(1, 2)) 26 | return x 27 | 28 | def pCnv(inp,out,groups=1): 29 | return nn.Sequential( 30 | nn.Conv2d(inp,out,1,bias=False,groups=groups), 31 | nn.InstanceNorm2d(out,affine=True) 32 | ) 33 | 34 | #regarding same padding in PT https://github.com/pytorch/pytorch/issues/3867 35 | def dsCnv(inp,k): 36 | return nn.Sequential( 37 | nn.Conv2d(inp,inp,k,groups=inp,bias=False,padding=(k - 1) // 2), 38 | nn.InstanceNorm2d(inp,affine=True) 39 | ) 40 | 41 | ngates = 2 42 | 43 | class Gate(nn.Module): 44 | def __init__(self,ifsz): 45 | super().__init__() 46 | self.ln = LN() 47 | 48 | def forward(self, x): 49 | t0,t1 = torch.chunk(x, ngates, dim=1) 50 | t0 = torch.tanh_(t0) 51 | t1.sub_(2) 52 | t1 = torch.sigmoid_(t1) 53 | 54 | return t1*t0 55 | 56 | def customGC(module): 57 | def custom_forward(*inputs): 58 | inputs = module(inputs[0]) 59 | return inputs 60 | return custom_forward 61 | 62 | @gin.configurable 63 | class GateBlock(nn.Module): 64 | def __init__(self, ifsz, ofsz, gt = True, ksz = 3, GradCheck=gin.REQUIRED): 65 | super().__init__() 66 | 67 | cfsz = int( math.floor(ifsz/2) ) 68 | ifsz2 = ifsz + ifsz%2 69 | 70 | self.sq = nn.Sequential( 71 | pCnv(ifsz, cfsz), 72 | dsCnv(cfsz,ksz), 73 | nn.ELU(), 74 | ########### 75 | pCnv(cfsz, cfsz*ngates), 76 | dsCnv(cfsz*ngates,ksz), 77 | Gate(cfsz), 78 | ########### 79 | pCnv(cfsz, ifsz), 80 | dsCnv(ifsz,ksz), 81 | nn.ELU(), 82 | ) 83 | 84 | self.gt = gt 85 | self.gc = GradCheck 86 | 87 | 88 | def forward(self, x): 89 | if self.gc >= 1: 90 | y = checkpoint(customGC(self.sq), x) 91 | else: 92 | y = self.sq(x) 93 | 94 | out = x + y 95 | return out 96 | 97 | @gin.configurable 98 | class InitBlock(nn.Module): 99 | def __init__(self, fup, n_channels): 100 | super().__init__() 101 | 102 | self.n1 = LN() 103 | self.Initsq = nn.Sequential( 104 | pCnv(n_channels, fup), 105 | nn.Softmax(dim=1), 106 | dsCnv(fup,11), 107 | LN() 108 | ) 109 | 110 | def forward(self, x): 111 | x = self.n1(x) 112 | xt = x 113 | x = self.Initsq(x) 114 | x = torch.cat([x,xt],1) 115 | return x 116 | 117 | @gin.configurable 118 | class OrigamiNet(nn.Module): 119 | def __init__(self, n_channels, o_classes, wmul, lreszs, lszs, nlyrs, fup, GradCheck, reduceAxis=3): 120 | super().__init__() 121 | 122 | self.lreszs = lreszs 123 | self.Initsq = InitBlock(fup) 124 | 125 | layers = [] 126 | isz = fup + n_channels 127 | osz = isz 128 | for i in range(nlyrs): 129 | osz = int( math.floor(lszs[i] * wmul) ) if i in lszs else isz 130 | layers.append( GateBlock(isz, osz, True, 3) ) 131 | 132 | if isz != osz: 133 | layers.append( pCnv(isz, osz) ) 134 | layers.append( nn.ELU() ) 135 | isz = osz 136 | 137 | if i in lreszs: 138 | layers.append( lreszs[i] ) 139 | 140 | layers.append( LN() ) 141 | self.Gatesq = nn.Sequential(*layers) 142 | 143 | self.Finsq = nn.Sequential( 144 | pCnv(osz, o_classes), 145 | nn.ELU(), 146 | ) 147 | 148 | self.n1 = LN() 149 | self.it=0 150 | self.gc = GradCheck 151 | self.reduceAxis = reduceAxis 152 | 153 | def forward(self, x, t=[]): 154 | x = self.Initsq(x) 155 | 156 | if self.gc >=2: 157 | x = checkpoint_sequential_step(self.Gatesq,4,x) #slower, more memory save 158 | # x = checkpoint_sequential_step(self.Gatesq,8,x) #faster, less memory save 159 | else: 160 | x = self.Gatesq(x) 161 | 162 | x = self.Finsq(x) 163 | 164 | x = torch.mean(x, self.reduceAxis, keepdim=False) 165 | x = self.n1(x) 166 | x = x.permute(0,2,1) 167 | 168 | return x -------------------------------------------------------------------------------- /dist.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import torch 3 | from scipy import ndimage 4 | import scipy.misc 5 | import skimage 6 | from skimage import exposure 7 | import matplotlib.pyplot as plt 8 | import os,sys 9 | from collections import namedtuple 10 | from random import shuffle 11 | import itertools 12 | from sklearn.externals import joblib 13 | from skimage import transform as stf 14 | from PIL import Image 15 | import unicodedata 16 | import copy 17 | from torch.utils.data import Dataset 18 | import imageio 19 | from math import floor, ceil 20 | import random 21 | 22 | try: 23 | import cPickle as pickle 24 | except: 25 | import pickle 26 | 27 | # Based on Elastic distortions in 28 | # https://github.com/mdbloice/Augmentor/blob/master/Augmentor/Operations.py 29 | class Distort3(): 30 | 31 | def __init__(self, probability, grid_width, grid_height, magnitudeX, magnitudeY, Isize, min_h_sep, min_v_sep): 32 | 33 | self.probability = probability 34 | self.grid_width = grid_width 35 | self.grid_height = grid_height 36 | self.xmagnitude = abs(magnitudeX) 37 | self.ymagnitude = abs(magnitudeY) 38 | self.randomise_magnitude = True 39 | 40 | w, h = Isize 41 | 42 | horizontal_tiles = self.grid_width 43 | vertical_tiles = self.grid_height 44 | 45 | width_of_square = int(floor(w / float(horizontal_tiles))) 46 | height_of_square = int(floor(h / float(vertical_tiles))) 47 | 48 | width_of_last_square = w - (width_of_square * (horizontal_tiles - 1)) 49 | height_of_last_square = h - (height_of_square * (vertical_tiles - 1)) 50 | 51 | dimensions = [] 52 | shift = [[(0,0) for x in range(horizontal_tiles)] for y in range(vertical_tiles)] 53 | 54 | for vertical_tile in range(vertical_tiles): 55 | for horizontal_tile in range(horizontal_tiles): 56 | if vertical_tile == (vertical_tiles - 1) and horizontal_tile == (horizontal_tiles - 1): 57 | dimensions.append([horizontal_tile * width_of_square, 58 | vertical_tile * height_of_square, 59 | width_of_last_square + (horizontal_tile * width_of_square), 60 | height_of_last_square + (height_of_square * vertical_tile)]) 61 | elif vertical_tile == (vertical_tiles - 1): 62 | dimensions.append([horizontal_tile * width_of_square, 63 | vertical_tile * height_of_square, 64 | width_of_square + (horizontal_tile * width_of_square), 65 | height_of_last_square + (height_of_square * vertical_tile)]) 66 | elif horizontal_tile == (horizontal_tiles - 1): 67 | dimensions.append([horizontal_tile * width_of_square, 68 | vertical_tile * height_of_square, 69 | width_of_last_square + (horizontal_tile * width_of_square), 70 | height_of_square + (height_of_square * vertical_tile)]) 71 | else: 72 | dimensions.append([horizontal_tile * width_of_square, 73 | vertical_tile * height_of_square, 74 | width_of_square + (horizontal_tile * width_of_square), 75 | height_of_square + (height_of_square * vertical_tile)]) 76 | 77 | sm_h = min( self.xmagnitude, width_of_square - (min_h_sep+shift[vertical_tile][horizontal_tile-1][0]) ) if horizontal_tile>0 else self.xmagnitude 78 | sm_v = min( self.ymagnitude, height_of_square - (min_v_sep+shift[vertical_tile-1][horizontal_tile][1]) ) if vertical_tile>0 else self.ymagnitude 79 | 80 | dx = random.randint(-sm_h, self.xmagnitude) 81 | dy = random.randint(-sm_v, self.ymagnitude) 82 | shift[vertical_tile][horizontal_tile] = (dx,dy) 83 | 84 | 85 | shift = list(itertools.chain.from_iterable(shift)) 86 | 87 | 88 | last_column = [] 89 | for i in range(vertical_tiles): 90 | last_column.append((horizontal_tiles - 1) + horizontal_tiles * i) 91 | 92 | last_row = range((horizontal_tiles * vertical_tiles) - horizontal_tiles, horizontal_tiles * vertical_tiles) 93 | 94 | polygons = [] 95 | for x1, y1, x2, y2 in dimensions: 96 | polygons.append([x1, y1, x1, y2, x2, y2, x2, y1]) 97 | 98 | polygon_indices = [] 99 | for i in range((vertical_tiles * horizontal_tiles) - 1): 100 | if i not in last_row and i not in last_column: 101 | polygon_indices.append([i, i + 1, i + horizontal_tiles, i + 1 + horizontal_tiles]) 102 | 103 | for id,(a, b, c, d) in enumerate(polygon_indices): 104 | 105 | dx = shift[id][0] 106 | dy = shift[id][1] 107 | 108 | x1, y1, x2, y2, x3, y3, x4, y4 = polygons[a] 109 | polygons[a] = [x1, y1, 110 | x2, y2, 111 | x3 + dx, y3 + dy, 112 | x4, y4] 113 | 114 | x1, y1, x2, y2, x3, y3, x4, y4 = polygons[b] 115 | polygons[b] = [x1, y1, 116 | x2 + dx, y2 + dy, 117 | x3, y3, 118 | x4, y4] 119 | 120 | x1, y1, x2, y2, x3, y3, x4, y4 = polygons[c] 121 | polygons[c] = [x1, y1, 122 | x2, y2, 123 | x3, y3, 124 | x4 + dx, y4 + dy] 125 | 126 | x1, y1, x2, y2, x3, y3, x4, y4 = polygons[d] 127 | polygons[d] = [x1 + dx, y1 + dy, 128 | x2, y2, 129 | x3, y3, 130 | x4, y4] 131 | 132 | generated_mesh = [] 133 | for i in range(len(dimensions)): 134 | generated_mesh.append([dimensions[i], polygons[i]]) 135 | 136 | self.generated_mesh = generated_mesh 137 | 138 | def perform_operation(self, image): 139 | return image.transform(image.size, Image.MESH, self.generated_mesh, resample=Image.BICUBIC) 140 | 141 | 142 | def aug_ED2(imgs, w, h, n_ch, tst=False): 143 | 144 | d = Distort3(1.0, 10, 10, 0, 25, [w, h], 1, 1) 145 | 146 | for i in range(len(imgs)): 147 | res = d.perform_operation(Image.fromarray(np.squeeze((imgs[i] * 255).astype(np.uint8)))) 148 | imgs[i] = np.reshape(res, [h, w, n_ch]) 149 | 150 | return np.squeeze(imgs) 151 | 152 | 153 | def RndTform(img,val=125 * 1.5): 154 | 155 | Ih,Iw = img[0].shape[:2] 156 | 157 | sgn = torch.randint(0,2,(1,)).item() * 2 - 1 158 | 159 | if sgn>0: 160 | dw = val 161 | dh = 0 162 | else: 163 | dw = 0 164 | dh = val 165 | 166 | def rd(d): return torch.empty(1).uniform_(-d,d).item() 167 | def fd(d): return torch.empty(1).uniform_(-dw,d).item() 168 | 169 | tl_top = rd(dh) # Top left corner, top margin 170 | tl_left = fd(dw) # Top left corner, left margin 171 | bl_bottom = rd(dh) # Bottom left corner, bottom margin 172 | bl_left = fd(dw) # Bottom left corner, left margin 173 | tr_top = rd(dh) # Top right corner, top margin 174 | tr_right = fd( min(Iw * 3/4 - tl_left,dw) ) # Top right corner, right margin 175 | br_bottom = rd(dh) # Bottom right corner, bottom margin 176 | br_right = fd( min(Iw * 3/4 - bl_left,dw) ) # Bottom right corner, right margin 177 | 178 | 179 | tform = stf.ProjectiveTransform() 180 | 181 | tform.estimate(np.array(( 182 | (tl_left, tl_top), 183 | (bl_left, Ih - bl_bottom), 184 | (Iw - br_right, Ih - br_bottom), 185 | (Iw - tr_right, tr_top) 186 | )), np.array(( 187 | [0, 0 ], 188 | [0, Ih - 1 ], 189 | [Iw-1, Ih-1 ], 190 | [Iw-1, 0] 191 | ))) 192 | 193 | corners = np.array([ 194 | [0, 0 ], 195 | [0, Ih - 1 ], 196 | [Iw-1, Ih-1 ], 197 | [Iw-1, 0] 198 | ]) 199 | 200 | corners = tform.inverse(corners) 201 | 202 | minc = corners[:, 0].min() 203 | minr = corners[:, 1].min() 204 | maxc = corners[:, 0].max() 205 | maxr = corners[:, 1].max() 206 | out_rows = maxr - minr + 1 207 | out_cols = maxc - minc + 1 208 | output_shape = np.around((out_rows, out_cols)) 209 | 210 | translation = (minc, minr) 211 | tform4 = stf.SimilarityTransform(translation=translation) 212 | tform = tform4 + tform 213 | tform.params /= tform.params[2, 2] 214 | 215 | ret = [] 216 | for i in range(len(img)): 217 | img2 = stf.warp(img[i], tform, output_shape=output_shape, cval=1.0) 218 | img2 = stf.resize(img2, (Ih,Iw), preserve_range=True).astype(np.float32) 219 | ret.append(img2) 220 | 221 | return ret 222 | 223 | def npThum(img, max_w, max_h): 224 | x, y = np.shape(img)[:2] 225 | 226 | y = min(int( y * max_h / x ),max_w) 227 | x = max_h 228 | 229 | img = np.array(Image.fromarray(img).resize((y,x))) 230 | return img 231 | 232 | image_data = np.array(Image.open(sys.argv[1])) 233 | 234 | image_data = npThum(image_data, 750, 750) 235 | image_data = skimage.img_as_float32(image_data) 236 | if image_data.ndim < 3: 237 | image_data = np.expand_dims(image_data, axis=-1) 238 | 239 | images = image_data[None,...] 240 | 241 | images = np.array([RndTform([image], val=140)[0] for image in images]) 242 | sh = images.shape 243 | images = np.array([aug_ED2(image[None,...],sh[2], sh[1], sh[3], tst=False) for image in images]) 244 | imageio.imwrite(sys.argv[1],images[0].astype(np.uint8)) 245 | -------------------------------------------------------------------------------- /ds_load.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import torch 3 | from scipy import ndimage 4 | import scipy.misc 5 | import skimage 6 | import os,sys 7 | import itertools 8 | from skimage import transform as stf 9 | from PIL import Image 10 | from torch.utils.data import Dataset 11 | import imageio 12 | from math import floor, ceil 13 | import pickle 14 | import gin 15 | 16 | def RndTform(img,val): 17 | Ih,Iw = img[0].shape[:2] 18 | 19 | sgn = torch.randint(0,2,(1,)).item() * 2 - 1 20 | 21 | if sgn>0: 22 | dw = val 23 | dh = 0 24 | else: 25 | dw = 0 26 | dh = val 27 | 28 | def rd(d): return torch.empty(1).uniform_(-d,d).item() 29 | def fd(d): return torch.empty(1).uniform_(-dw,d).item() 30 | 31 | # generate a random projective transform 32 | # adapted from https://navoshta.com/traffic-signs-classification/ 33 | tl_top = rd(dh) 34 | tl_left = fd(dw) 35 | bl_bottom = rd(dh) 36 | bl_left = fd(dw) 37 | tr_top = rd(dh) 38 | tr_right = fd( min(Iw * 3/4 - tl_left,dw) ) 39 | br_bottom = rd(dh) 40 | br_right = fd( min(Iw * 3/4 - bl_left,dw) ) 41 | 42 | tform = stf.ProjectiveTransform() 43 | tform.estimate(np.array(( 44 | (tl_left, tl_top), 45 | (bl_left, Ih - bl_bottom), 46 | (Iw - br_right, Ih - br_bottom), 47 | (Iw - tr_right, tr_top) 48 | )), np.array(( 49 | [0, 0 ], 50 | [0, Ih - 1 ], 51 | [Iw-1, Ih-1 ], 52 | [Iw-1, 0] 53 | ))) 54 | 55 | # determine shape of output image, to preserve size 56 | # trick take from the implementation of skimage.transform.rotate 57 | corners = np.array([ 58 | [0, 0 ], 59 | [0, Ih - 1 ], 60 | [Iw-1, Ih-1 ], 61 | [Iw-1, 0] 62 | ]) 63 | 64 | corners = tform.inverse(corners) 65 | minc = corners[:, 0].min() 66 | minr = corners[:, 1].min() 67 | maxc = corners[:, 0].max() 68 | maxr = corners[:, 1].max() 69 | out_rows = maxr - minr + 1 70 | out_cols = maxc - minc + 1 71 | output_shape = np.around((out_rows, out_cols)) 72 | 73 | # fit output image in new shape 74 | translation = (minc, minr) 75 | tform4 = stf.SimilarityTransform(translation=translation) 76 | tform = tform4 + tform 77 | # normalize 78 | tform.params /= tform.params[2, 2] 79 | 80 | 81 | ret = [] 82 | for i in range(len(img)): 83 | img2 = stf.warp(img[i], tform, output_shape=output_shape, cval=1.0) 84 | img2 = stf.resize(img2, (Ih,Iw), preserve_range=True).astype(np.float32) 85 | ret.append(img2) 86 | 87 | 88 | return ret 89 | 90 | @gin.configurable 91 | def SameTrCollate(batch, prjAug, prjVal): 92 | images, labels = zip(*batch) 93 | 94 | images = [image.transpose((1,2,0)) for image in images] 95 | 96 | if prjAug: 97 | images = [RndTform([image], val=prjVal)[0] for image in images] #different transform to each batch 98 | # images = RndTform(images, val=prjVal) #apply same transform to all images in a batch 99 | 100 | image_tensors = [torch.from_numpy(np.array(image, copy=False)) for image in images] 101 | image_tensors = torch.cat([t.unsqueeze(0) for t in image_tensors], 0) 102 | image_tensors = image_tensors.permute(0,3,1,2) 103 | 104 | return image_tensors, labels 105 | 106 | 107 | class myLoadDS(Dataset): 108 | def __init__(self, flist, dpath, ralph=None, fmin=True, mln=None): 109 | self.fns = get_files(flist, dpath) 110 | self.tlbls = get_labels(self.fns) 111 | 112 | if ralph == None: 113 | alph = get_alphabet(self.tlbls) 114 | self.ralph = dict (zip(alph.values(),alph.keys())) 115 | self.alph = alph 116 | else: 117 | self.ralph = ralph 118 | 119 | if mln != None: 120 | filt = [len(x) <= mln if fmin else len(x) >= mln for x in self.tlbls] 121 | self.tlbls = np.asarray(self.tlbls)[filt].tolist() 122 | self.fns = np.asarray(self.fns )[filt].tolist() 123 | 124 | def __len__(self): 125 | return len(self.fns) 126 | 127 | def __getitem__(self, index): 128 | timgs = get_images(self.fns[index]) 129 | timgs = timgs.transpose((2,0,1)) 130 | 131 | return ( timgs , self.tlbls[index] ) 132 | 133 | def get_files(nfile, dpath): 134 | fnames = open(nfile, 'r').readlines() 135 | fnames = [ dpath + x.strip() for x in fnames ] 136 | return fnames 137 | 138 | def npThum(img, max_w, max_h): 139 | x, y = np.shape(img)[:2] 140 | 141 | y = min(int( y * max_h / x ),max_w) 142 | x = max_h 143 | 144 | img = np.array(Image.fromarray(img).resize((y,x))) 145 | return img 146 | 147 | @gin.configurable 148 | def get_images(fname, max_w, max_h, nch): 149 | 150 | try: 151 | 152 | image_data = np.array(Image.open(fname)) 153 | image_data = npThum(image_data, max_w, max_h) 154 | image_data = skimage.img_as_float32(image_data) 155 | 156 | h, w = np.shape(image_data)[:2] 157 | if image_data.ndim < 3: 158 | image_data = np.expand_dims(image_data, axis=-1) 159 | 160 | if nch==3 and image_data.shape[2]!=3: 161 | image_data = np.tile(image_data,3) 162 | 163 | image_data = np.pad(image_data,((0,0),(0,max_w-np.shape(image_data)[1]),(0,0)), mode='constant', constant_values=(1.0)) 164 | 165 | except IOError as e: 166 | print('Could not read:', fname, ':', e) 167 | 168 | return image_data 169 | 170 | def get_labels(fnames): 171 | 172 | labels = [] 173 | for id,image_file in enumerate(fnames): 174 | fn = os.path.splitext(image_file)[0] + '.txt' 175 | lbl = open(fn, 'r').read() 176 | lbl = ' '.join(lbl.split()) #remove linebreaks if present 177 | 178 | labels.append(lbl) 179 | 180 | return labels 181 | 182 | def get_alphabet(labels): 183 | 184 | coll = ''.join(labels) 185 | unq = sorted(list(set(coll))) 186 | unq = [''.join(i) for i in itertools.product(unq, repeat = 1)] 187 | alph = dict( zip( unq,range(len(unq)) ) ) 188 | 189 | return alph -------------------------------------------------------------------------------- /iam/iam.gin: -------------------------------------------------------------------------------- 1 | port = 12345 2 | manualSeed = 1111 3 | dist = 'DDP' 4 | 5 | n_channels = 1 6 | o_classes = 80 7 | 8 | GradCheck = 0 9 | 10 | # Parameters for get_images (ds_load.py): 11 | # ============================================================================== 12 | get_images.max_w = 750 13 | get_images.max_h = 750 14 | get_images.nch = %n_channels 15 | 16 | # Parameters for SameTrCollate (ds_load.py): 17 | # ============================================================================== 18 | SameTrCollate.prjAug = True 19 | SameTrCollate.prjVal = 125 20 | 21 | # Parameters for train (train.py): 22 | # ============================================================================== 23 | train.experiment_name = 'iam_gin_test_' 24 | 25 | train.AMP = False 26 | train.WdB = False 27 | train.wdbprj = 'prj_Name' 28 | train.train_data_list = 'iam/train.gc' 29 | train.train_data_path = '/mnt/iam/pargs/' 30 | train.test_data_list = 'iam/val.gc' 31 | train.test_data_path = '/mnt/iam/pargs/' 32 | train.train_batch_size = 1 33 | train.val_batch_size = 1 34 | train.workers = 4 35 | train.lr = 0.01 36 | train.continue_model = '' 37 | train.valInterval = 500 38 | train.num_iter = 0 39 | 40 | 41 | # Parameters for OrigamiNet (cnv_model.py): 42 | # ============================================================================== 43 | OrigamiNet.n_channels = %n_channels 44 | OrigamiNet.o_classes = %o_classes 45 | OrigamiNet.fup = 33 46 | OrigamiNet.GradCheck = %GradCheck 47 | 48 | OrigamiNet.nlyrs = 12 49 | OrigamiNet.wmul = 1.0 50 | 51 | OrigamiNet.lszs = {0: 128, 52 | 2: 256, 53 | 4: 512, 54 | 11: 256 } 55 | 56 | ##resize structure## 57 | MaxPool2d.kernel_size = (2,2) 58 | 59 | Upsample.mode = 'bilinear' 60 | Upsample.align_corners = True 61 | s1/Upsample.size = (450,15) 62 | s2/Upsample.size = (1100,8) 63 | 64 | OrigamiNet.lreszs = { 65 | 0: @MaxPool2d(), 66 | 2: @MaxPool2d(), 67 | 4: @MaxPool2d(), 68 | 69 | 6: @PadPool(), 70 | 8: @PadPool(), 71 | 72 | 10: @s1/Upsample(), 73 | 11: @s2/Upsample() 74 | } 75 | 76 | # Parameters for InitBlock (cnv_model.py): 77 | # ============================================================================== 78 | InitBlock.n_channels = %n_channels 79 | 80 | # Parameters for GateBlock (cnv_model.py): 81 | # ============================================================================== 82 | GateBlock.GradCheck = %GradCheck -------------------------------------------------------------------------------- /iam/iam.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | dst=$3 4 | 5 | wget --user=$1 --password=$2 http://www.fki.inf.unibe.ch/DBs/iamDB/data/{forms/{formsA-D,formsE-H,formsI-Z}.tgz,xml/xml.tgz} 6 | 7 | mkdir -p $dst/{forms,xml,pargs} 8 | 9 | cat {formsA-D,formsE-H,formsI-Z}.tgz | tar -zxvf - -i -C $dst/forms 10 | tar zxvf xml.tgz -C $dst/xml 11 | 12 | python `dirname "$0"`/iam_par_gt.py $dst -------------------------------------------------------------------------------- /iam/iam_ln.gin: -------------------------------------------------------------------------------- 1 | port = 12346 2 | manualSeed = 1111 3 | dist = 'DDP' 4 | 5 | n_channels = 1 6 | o_classes = 80 7 | 8 | GradCheck = 0 9 | 10 | # Parameters for get_images (ds_load.py): 11 | # ============================================================================== 12 | get_images.max_w = 600 13 | get_images.max_h = 32 14 | get_images.nch = %n_channels 15 | 16 | # Parameters for SameTrCollate (ds_load.py): 17 | # ============================================================================== 18 | SameTrCollate.prjAug = True 19 | SameTrCollate.prjVal = 16 20 | 21 | # Parameters for train (train.py): 22 | # ============================================================================== 23 | train.experiment_name = 'iam_gin_lines_test_' 24 | 25 | train.AMP = False 26 | train.WdB = False 27 | train.wdbprj = 'prj_Name' 28 | train.train_data_list = 'iam/train.ln' 29 | train.train_data_path = '/mnt/iam/lines/' 30 | train.test_data_list = 'iam/val.ln' 31 | train.test_data_path = '/mnt/iam/lines/' 32 | train.train_batch_size = 8 33 | train.val_batch_size = 8 34 | train.workers = 4 35 | train.lr = 0.02 36 | train.continue_model = '' 37 | train.valInterval = 1000 38 | train.num_iter = 0 39 | 40 | 41 | # Parameters for OrigamiNet (cnv_model.py): 42 | # ============================================================================== 43 | OrigamiNet.n_channels = %n_channels 44 | OrigamiNet.o_classes = %o_classes 45 | OrigamiNet.fup = 33 46 | OrigamiNet.GradCheck = %GradCheck 47 | OrigamiNet.reduceAxis = 2 48 | 49 | OrigamiNet.nlyrs = 12 50 | OrigamiNet.wmul = 2.0 51 | 52 | OrigamiNet.lszs = {0: 128, 53 | 2: 256, 54 | 4: 512, 55 | 6: 1024 56 | } 57 | 58 | ##resize structure## 59 | MaxPool2d.kernel_size = (2,2) 60 | 61 | OrigamiNet.lreszs = { 62 | 0: @MaxPool2d(), 63 | 2: @MaxPool2d(), 64 | } 65 | 66 | # Parameters for InitBlock (cnv_model.py): 67 | # ============================================================================== 68 | InitBlock.n_channels = %n_channels 69 | 70 | # Parameters for GateBlock (cnv_model.py): 71 | # ============================================================================== 72 | GateBlock.GradCheck = %GradCheck -------------------------------------------------------------------------------- /iam/iam_par_gt.py: -------------------------------------------------------------------------------- 1 | import xml.etree.ElementTree as ET 2 | from xml.sax.saxutils import unescape 3 | import glob 4 | import sys,os 5 | import imageio 6 | import os.path as osp 7 | 8 | # base = '/home/asd/' 9 | base = sys.argv[1] 10 | 11 | xml = osp.join(base, 'xml/') 12 | fpath = osp.join(base, 'forms/') 13 | gpath = osp.join(base, 'pargs/') 14 | 15 | forms = glob.glob(xml+'*.xml') 16 | c=0 17 | for i in range(len(forms)): 18 | print(forms[i]) 19 | rt = ET.parse(forms[i]).getroot() 20 | xmin, ymin = [sys.maxsize] * 2 21 | xmax, ymax = [0] * 2 22 | ftxt = '' 23 | for line in rt.findall('.//line'): 24 | txt,id = line.attrib['text'],line.attrib['id'] 25 | txt = unescape(txt, {"'": "'", """: '"'}) 26 | ftxt = ftxt + txt + '\n' 27 | 28 | for cmp in line.findall('.//cmp'): 29 | dm = list(map(int,[ cmp.attrib['x'],cmp.attrib['y'],cmp.attrib['width'],cmp.attrib['height'] ])) 30 | xmin = min(xmin,dm[0]) 31 | ymin = min(ymin,dm[1]) 32 | xmax = max(xmax,dm[0]+dm[2]) 33 | ymax = max(ymax,dm[1]+dm[3]) 34 | 35 | ftxt = ftxt[:-1] 36 | marg = 5 37 | xmin -= marg 38 | ymin -= marg 39 | xmax += marg 40 | ymax += marg 41 | 42 | frmid = os.path.splitext( os.path.basename(forms[i]) )[0] 43 | frmfl = fpath + frmid + '.png' 44 | frm = imageio.imread(frmfl) 45 | imageio.imsave(gpath+frmid+'.png',frm[ymin:ymax,xmin:xmax]) 46 | open(gpath + frmid + '.txt','w').write(ftxt) 47 | -------------------------------------------------------------------------------- /iam/test.gc: -------------------------------------------------------------------------------- 1 | c04-110.png 2 | c04-116.png 3 | c04-134.png 4 | c04-139.png 5 | c04-144.png 6 | c04-150.png 7 | c04-165.png 8 | c04-170.png 9 | c06-011.png 10 | d01-016.png 11 | d01-019.png 12 | d01-049.png 13 | d01-052.png 14 | d01-080.png 15 | d01-085.png 16 | d01-098.png 17 | d01-104.png 18 | d01-118.png 19 | d01-123.png 20 | d03-117.png 21 | d04-012.png 22 | d04-016.png 23 | d04-021.png 24 | d04-028.png 25 | d04-032.png 26 | d04-037.png 27 | d04-047.png 28 | d04-050.png 29 | d04-053.png 30 | d04-058.png 31 | d04-062.png 32 | d04-066.png 33 | d04-086.png 34 | d04-089.png 35 | d04-096.png 36 | d04-101.png 37 | d04-111.png 38 | d04-125.png 39 | d04-131.png 40 | d05-008.png 41 | d05-013.png 42 | d05-021.png 43 | d05-025.png 44 | d05-030.png 45 | d05-040.png 46 | d06-003.png 47 | d06-008.png 48 | d06-011.png 49 | d06-020.png 50 | d06-025.png 51 | d06-027.png 52 | d06-037.png 53 | d06-041.png 54 | d06-046.png 55 | d06-056.png 56 | d06-060.png 57 | d06-063.png 58 | d06-067.png 59 | d06-072.png 60 | d06-076.png 61 | d06-086.png 62 | d06-096.png 63 | d06-100.png 64 | d06-104.png 65 | d06-107.png 66 | d06-111.png 67 | d06-113.png 68 | d07-082.png 69 | d07-085.png 70 | d07-089.png 71 | d07-093.png 72 | d07-096.png 73 | d07-100.png 74 | d07-102.png 75 | e01-055.png 76 | e06-000.png 77 | e06-003.png 78 | e06-010.png 79 | e06-015.png 80 | e06-021.png 81 | e06-026.png 82 | e06-030.png 83 | e06-033.png 84 | e06-046.png 85 | e06-049.png 86 | e06-053.png 87 | e06-070.png 88 | f04-032.png 89 | f04-035.png 90 | f04-039.png 91 | f04-043.png 92 | f04-053.png 93 | f04-057.png 94 | f04-061.png 95 | f04-064.png 96 | f04-068.png 97 | f04-071.png 98 | f04-074.png 99 | f04-079.png 100 | f04-083.png 101 | f04-087.png 102 | f07-000.png 103 | f07-000b.png 104 | f07-002.png 105 | f07-006.png 106 | f07-009.png 107 | f07-013.png 108 | f07-016.png 109 | f07-019a.png 110 | f07-019b.png 111 | f07-021a.png 112 | f07-021b.png 113 | f07-024a.png 114 | f07-024b.png 115 | f07-028a.png 116 | f07-032a.png 117 | f07-039a.png 118 | f07-042a.png 119 | f07-046a.png 120 | f07-069.png 121 | f07-073.png 122 | f07-076a.png 123 | f07-081a.png 124 | f07-081b.png 125 | f07-084a.png 126 | f07-084b.png 127 | f07-088a.png 128 | f07-088b.png 129 | f07-092a.png 130 | f07-092b.png 131 | f07-096.png 132 | f07-101b.png 133 | g01-004.png 134 | g01-008.png 135 | g01-012.png 136 | g01-016.png 137 | g01-019.png 138 | g01-025.png 139 | g01-027.png 140 | g01-031.png 141 | g01-034.png 142 | g01-037.png 143 | g01-039.png 144 | g01-043.png 145 | g01-045.png 146 | g01-067.png 147 | g01-070.png 148 | g01-074.png 149 | g01-088.png 150 | g02-059.png 151 | g02-062.png 152 | g02-065.png 153 | g02-073.png 154 | g03-000.png 155 | g03-004.png 156 | g03-032.png 157 | g03-040.png 158 | g03-043.png 159 | g03-049.png 160 | g03-052.png 161 | g03-064.png 162 | g04-022.png 163 | g04-043.png 164 | g04-048.png 165 | g04-052.png 166 | g04-068.png 167 | g04-072.png 168 | g07-000b.png 169 | g07-079a.png 170 | m01-049.png 171 | m01-060.png 172 | m01-079.png 173 | m01-084.png 174 | m01-095.png 175 | m01-104.png 176 | m01-110.png 177 | m01-121.png 178 | m01-125.png 179 | m01-131.png 180 | m01-136.png 181 | m01-149.png 182 | m02-048.png 183 | m02-055.png 184 | m02-059.png 185 | m02-066.png 186 | m02-069.png 187 | m02-072.png 188 | m02-080.png 189 | m02-087.png 190 | m02-095.png 191 | m02-109.png 192 | m02-112.png 193 | m03-006.png 194 | m03-013.png 195 | m03-020.png 196 | m03-033.png 197 | m03-110.png 198 | m03-114.png 199 | m03-118.png 200 | m04-030.png 201 | m04-038.png 202 | m04-043.png 203 | m04-061.png 204 | m04-072.png 205 | m04-078.png 206 | m04-081.png 207 | m04-093.png 208 | m04-100.png 209 | m04-107.png 210 | m04-113.png 211 | m04-123.png 212 | m04-131.png 213 | m04-138.png 214 | m04-231.png 215 | m04-238.png 216 | m04-246.png 217 | m06-031.png 218 | m06-042.png 219 | m06-048.png 220 | m06-056.png 221 | m06-067.png 222 | m06-076.png 223 | m06-083.png 224 | m06-091.png 225 | m06-098.png 226 | m06-106.png 227 | n01-000.png 228 | n01-004.png 229 | n01-009.png 230 | n01-020.png 231 | n01-031.png 232 | n01-036.png 233 | n01-045.png 234 | n01-052.png 235 | n01-057.png 236 | n02-004.png 237 | n02-009.png 238 | n02-028.png 239 | n02-033.png 240 | n02-037.png 241 | n02-040.png 242 | n02-045.png 243 | n02-049.png 244 | n02-054.png 245 | n02-062.png 246 | n02-104.png 247 | n02-109.png 248 | n02-114.png 249 | n02-120.png 250 | n02-127.png 251 | n02-151.png 252 | n02-154.png 253 | n02-157.png 254 | n03-038.png 255 | n03-064.png 256 | n03-066.png 257 | n03-097.png 258 | n03-103.png 259 | n03-106.png 260 | n03-113.png 261 | n03-120.png 262 | n03-126.png 263 | n04-000.png 264 | n04-009.png 265 | n04-048.png 266 | n04-052.png 267 | n04-060.png 268 | n04-068.png 269 | n04-075.png 270 | n04-084.png 271 | n04-092.png 272 | n04-100.png 273 | n04-107.png 274 | n04-114.png 275 | n04-130.png 276 | n04-139.png 277 | n04-149.png 278 | n04-156.png 279 | n04-163.png 280 | n04-202.png 281 | n04-209.png 282 | n04-213.png 283 | n04-218.png 284 | n06-074.png 285 | n06-082.png 286 | n06-092.png 287 | n06-100.png 288 | n06-111.png 289 | n06-119.png 290 | n06-123.png 291 | n06-128.png 292 | n06-133.png 293 | n06-140.png 294 | p01-147.png 295 | p01-155.png 296 | p01-168.png 297 | p01-174.png 298 | p02-000.png 299 | p02-008.png 300 | p02-022.png 301 | p02-027.png 302 | p02-069.png 303 | p02-076.png 304 | p02-081.png 305 | p02-090.png 306 | p02-101.png 307 | p02-105.png 308 | p02-109.png 309 | p02-115.png 310 | p02-135.png 311 | p02-139.png 312 | p02-144.png 313 | p02-150.png 314 | p03-012.png 315 | p03-023.png 316 | p03-027.png 317 | p03-029.png 318 | p03-033.png 319 | p03-040.png 320 | p03-047.png 321 | p03-072.png 322 | p03-080.png 323 | p03-163.png 324 | p03-173.png 325 | p03-181.png 326 | p03-189.png 327 | p06-030.png 328 | p06-042.png 329 | p06-047.png 330 | p06-052.png 331 | p06-058.png 332 | p06-069.png 333 | p06-088.png 334 | p06-096.png 335 | p06-104.png 336 | r03-053.png 337 | -------------------------------------------------------------------------------- /iam/test.ln: -------------------------------------------------------------------------------- 1 | g01-016-06.png 2 | n06-100-03.png 3 | d01-118-04.png 4 | d04-032-08.png 5 | n02-120-06.png 6 | n04-060-01.png 7 | d05-025-03.png 8 | d06-063-07.png 9 | n02-045-02.png 10 | p02-150-01.png 11 | e06-003-03.png 12 | e01-055-06.png 13 | m02-069-06.png 14 | g02-065-03.png 15 | f07-084a-08.png 16 | d06-063-05.png 17 | n04-100-00.png 18 | d04-012-08.png 19 | d07-082-05.png 20 | n03-064-04.png 21 | m04-123-05.png 22 | f04-039-04.png 23 | e06-003-09.png 24 | d04-012-09.png 25 | g01-031-06.png 26 | f07-024b-05.png 27 | e06-070-01.png 28 | n03-066-03.png 29 | d07-100-03.png 30 | m01-095-07.png 31 | f07-024b-07.png 32 | m04-061-03.png 33 | p06-088-02.png 34 | c04-110-01.png 35 | f07-024a-04.png 36 | g03-004-01.png 37 | m04-107-02.png 38 | f04-071-04.png 39 | d04-037-02.png 40 | p06-104-01.png 41 | c04-139-06.png 42 | r03-053-04.png 43 | d01-049-07.png 44 | g01-025-03.png 45 | r03-053-05.png 46 | f07-088a-07.png 47 | n02-049-04.png 48 | f07-000b-04.png 49 | n01-052-11.png 50 | m06-098-00.png 51 | n02-037-00.png 52 | m04-113-10.png 53 | p03-029-00.png 54 | g01-043-09.png 55 | c04-144-01.png 56 | e06-046-03.png 57 | p02-144-07.png 58 | m03-118-04.png 59 | f04-032-05.png 60 | c04-150-04.png 61 | d01-052-05.png 62 | p06-047-06.png 63 | f07-081a-05.png 64 | d06-060-03.png 65 | c06-011-08.png 66 | c04-150-05.png 67 | m01-104-07.png 68 | p02-069-04.png 69 | g01-025-01.png 70 | p03-080-01.png 71 | f07-002-06.png 72 | p03-040-07.png 73 | d04-111-09.png 74 | d05-025-07.png 75 | e06-070-02.png 76 | p06-088-06.png 77 | d06-067-01.png 78 | d07-085-00.png 79 | g01-070-07.png 80 | g01-070-00.png 81 | n04-202-01.png 82 | f07-088a-04.png 83 | n03-113-03.png 84 | n01-036-02.png 85 | n04-202-03.png 86 | f07-092a-07.png 87 | n06-074-06.png 88 | c04-144-02.png 89 | d07-093-00.png 90 | m02-059-03.png 91 | n04-075-02.png 92 | d06-111-02.png 93 | p03-023-02.png 94 | d06-003-03.png 95 | f07-069-04.png 96 | m03-006-04.png 97 | p03-040-04.png 98 | g02-065-02.png 99 | f07-013-09.png 100 | m06-042-01.png 101 | g03-064-03.png 102 | m03-118-00.png 103 | d04-053-00.png 104 | m06-031-04.png 105 | d07-089-06.png 106 | d07-093-04.png 107 | g01-067-04.png 108 | p02-109-00.png 109 | g02-065-06.png 110 | n03-113-07.png 111 | n06-123-08.png 112 | p02-076-05.png 113 | g03-064-01.png 114 | e06-015-03.png 115 | m01-136-06.png 116 | m02-095-03.png 117 | d07-082-02.png 118 | n01-020-07.png 119 | d06-025-04.png 120 | d07-085-01.png 121 | n02-151-10.png 122 | n02-151-00.png 123 | p02-144-05.png 124 | m04-093-00.png 125 | r03-053-06.png 126 | m06-083-02.png 127 | n04-156-04.png 128 | f07-019b-07.png 129 | d06-111-00.png 130 | p02-135-07.png 131 | n03-106-03.png 132 | f07-016-05.png 133 | d03-117-05.png 134 | d06-060-05.png 135 | m04-100-05.png 136 | m04-078-01.png 137 | g01-043-08.png 138 | n02-062-00.png 139 | n01-009-06.png 140 | n03-064-03.png 141 | f07-009-08.png 142 | m03-118-05.png 143 | e06-046-05.png 144 | n04-114-01.png 145 | c04-165-01.png 146 | g01-027-09.png 147 | g01-074-07.png 148 | n04-213-05.png 149 | n06-100-05.png 150 | m04-072-06.png 151 | n01-052-01.png 152 | n03-120-00.png 153 | d04-111-07.png 154 | p03-047-05.png 155 | m01-049-07.png 156 | p03-029-09.png 157 | m02-095-08.png 158 | d01-098-06.png 159 | n02-033-09.png 160 | n06-074-05.png 161 | p02-115-04.png 162 | d06-096-02.png 163 | m01-095-04.png 164 | d06-041-03.png 165 | d06-096-06.png 166 | m04-038-04.png 167 | n03-064-02.png 168 | c04-165-04.png 169 | m04-038-00.png 170 | m06-076-03.png 171 | d07-096-04.png 172 | g01-004-03.png 173 | m02-095-01.png 174 | d05-025-08.png 175 | m04-081-00.png 176 | f07-009-09.png 177 | n04-060-00.png 178 | n04-107-03.png 179 | g02-062-03.png 180 | m02-109-02.png 181 | n03-120-04.png 182 | c06-011-04.png 183 | n03-106-07.png 184 | f04-061-07.png 185 | m03-110-01.png 186 | d06-011-08.png 187 | n01-057-02.png 188 | p03-189-04.png 189 | e06-003-08.png 190 | n04-202-02.png 191 | f07-024a-07.png 192 | g07-000b-02.png 193 | f04-053-06.png 194 | p01-174-03.png 195 | p01-155-04.png 196 | f04-083-08.png 197 | m03-020-00.png 198 | n04-048-07.png 199 | m04-043-03.png 200 | p02-101-05.png 201 | f07-000b-05.png 202 | n04-163-04.png 203 | n01-052-08.png 204 | g01-008-08.png 205 | d04-050-01.png 206 | d06-046-08.png 207 | n04-202-06.png 208 | d04-089-05.png 209 | f07-081b-06.png 210 | n04-107-04.png 211 | g03-004-03.png 212 | n01-020-09.png 213 | p02-090-02.png 214 | f04-068-04.png 215 | d06-104-04.png 216 | d06-113-01.png 217 | f07-021b-02.png 218 | d04-111-06.png 219 | g01-004-01.png 220 | f04-071-05.png 221 | f07-028a-09.png 222 | f07-046a-03.png 223 | g04-022-05.png 224 | n02-114-08.png 225 | m04-061-01.png 226 | g01-016-04.png 227 | g03-049-06.png 228 | m04-081-09.png 229 | d01-123-01.png 230 | f07-069-06.png 231 | g01-045-05.png 232 | n04-139-07.png 233 | m06-083-06.png 234 | p03-072-05.png 235 | f04-039-00.png 236 | m02-069-01.png 237 | e06-053-03.png 238 | g03-052-05.png 239 | g04-022-04.png 240 | n04-052-03.png 241 | f04-064-01.png 242 | p03-023-01.png 243 | n01-045-04.png 244 | g04-072-07.png 245 | d04-111-05.png 246 | m02-112-05.png 247 | f04-053-01.png 248 | d06-046-06.png 249 | f07-016-07.png 250 | d07-100-04.png 251 | d06-008-09.png 252 | p03-047-07.png 253 | f07-016-04.png 254 | n06-100-02.png 255 | d04-066-06.png 256 | n02-028-00.png 257 | g02-059-01.png 258 | p06-088-00.png 259 | d01-098-03.png 260 | d06-111-04.png 261 | m02-072-01.png 262 | n04-052-04.png 263 | d06-046-03.png 264 | p03-047-01.png 265 | e06-026-01.png 266 | f07-002-00.png 267 | d04-125-00.png 268 | e06-030-04.png 269 | f04-079-03.png 270 | g01-037-02.png 271 | n02-054-09.png 272 | p02-090-03.png 273 | m04-043-01.png 274 | m04-081-01.png 275 | f07-069-05.png 276 | d05-040-05.png 277 | d04-016-06.png 278 | r03-053-01.png 279 | n06-140-06.png 280 | p06-030-02.png 281 | d05-025-06.png 282 | e06-049-03.png 283 | n06-082-04.png 284 | p02-150-00.png 285 | p03-047-02.png 286 | d01-080-00.png 287 | n03-103-09.png 288 | n01-031-08.png 289 | g03-052-01.png 290 | n02-109-01.png 291 | e01-055-03.png 292 | m01-084-02.png 293 | p03-047-04.png 294 | d06-086-02.png 295 | n02-104-07.png 296 | m04-131-02.png 297 | p02-076-10.png 298 | c04-150-07.png 299 | g04-048-04.png 300 | f07-000-01.png 301 | p06-069-03.png 302 | f07-024b-09.png 303 | n04-009-03.png 304 | n01-045-09.png 305 | n01-020-06.png 306 | n02-028-01.png 307 | p03-072-00.png 308 | f07-024a-01.png 309 | n06-092-03.png 310 | p03-181-05.png 311 | d07-089-07.png 312 | m04-238-00.png 313 | d05-025-02.png 314 | n03-106-06.png 315 | p02-105-01.png 316 | m01-060-06.png 317 | g03-043-04.png 318 | f07-088a-03.png 319 | m02-059-06.png 320 | d06-020-02.png 321 | p02-008-04.png 322 | n04-139-08.png 323 | f04-068-00.png 324 | m04-123-09.png 325 | d07-096-02.png 326 | g04-022-07.png 327 | m01-110-07.png 328 | n04-149-02.png 329 | g01-008-07.png 330 | d07-082-03.png 331 | d01-049-01.png 332 | f07-042a-00.png 333 | d01-080-03.png 334 | d07-100-02.png 335 | p03-047-06.png 336 | n06-140-00.png 337 | n04-100-07.png 338 | n04-107-01.png 339 | p02-000-06.png 340 | f07-073-08.png 341 | n01-009-00.png 342 | n02-104-05.png 343 | d05-040-00.png 344 | g04-043-01.png 345 | n02-037-06.png 346 | p03-181-06.png 347 | d06-072-05.png 348 | p03-163-01.png 349 | f04-061-06.png 350 | n02-127-07.png 351 | n04-107-06.png 352 | d01-019-02.png 353 | f07-039a-03.png 354 | n04-084-03.png 355 | n02-114-06.png 356 | f07-006-00.png 357 | d04-062-03.png 358 | f07-019a-00.png 359 | d04-016-00.png 360 | g01-025-02.png 361 | d05-040-03.png 362 | d05-025-09.png 363 | p06-104-04.png 364 | m04-100-02.png 365 | m06-042-02.png 366 | e01-055-04.png 367 | g01-034-01.png 368 | p06-030-06.png 369 | n01-045-02.png 370 | m04-061-04.png 371 | p03-033-04.png 372 | f04-074-07.png 373 | p01-147-00.png 374 | f07-032a-08.png 375 | c04-150-00.png 376 | m04-131-07.png 377 | n02-054-08.png 378 | c04-165-02.png 379 | f04-087-00.png 380 | p06-042-05.png 381 | e06-015-02.png 382 | n01-052-07.png 383 | g03-040-01.png 384 | d06-020-09.png 385 | m02-069-08.png 386 | n04-156-00.png 387 | e06-046-01.png 388 | n02-054-01.png 389 | n02-154-02.png 390 | c04-139-00.png 391 | d06-011-02.png 392 | d06-037-02.png 393 | g01-037-03.png 394 | n02-004-06.png 395 | d04-086-03.png 396 | m02-080-04.png 397 | d06-113-00.png 398 | e06-021-09.png 399 | m04-238-05.png 400 | m02-087-00.png 401 | f04-057-05.png 402 | d04-050-00.png 403 | f07-088b-04.png 404 | m01-095-05.png 405 | n02-040-01.png 406 | c04-139-02.png 407 | m02-048-10.png 408 | g04-043-07.png 409 | n06-133-06.png 410 | f07-024a-06.png 411 | g03-040-04.png 412 | m04-081-04.png 413 | f07-032a-07.png 414 | g01-037-00.png 415 | m01-079-00.png 416 | d01-052-01.png 417 | p06-047-00.png 418 | n01-057-03.png 419 | n01-031-05.png 420 | d06-008-05.png 421 | d04-125-03.png 422 | n01-020-05.png 423 | d06-107-06.png 424 | d06-086-01.png 425 | m01-104-05.png 426 | d07-089-10.png 427 | d05-025-01.png 428 | f07-073-07.png 429 | m03-114-01.png 430 | m04-100-06.png 431 | p02-081-07.png 432 | d01-098-00.png 433 | f04-083-01.png 434 | n06-133-04.png 435 | d04-066-07.png 436 | g02-062-04.png 437 | g03-032-05.png 438 | n02-054-07.png 439 | d01-049-05.png 440 | p01-147-11.png 441 | n01-009-03.png 442 | m04-138-03.png 443 | d01-085-01.png 444 | m06-031-01.png 445 | e06-033-07.png 446 | m01-110-08.png 447 | d06-046-09.png 448 | p03-173-05.png 449 | f04-068-01.png 450 | n02-033-08.png 451 | m04-131-03.png 452 | p01-147-09.png 453 | n02-049-00.png 454 | p03-012-07.png 455 | f07-024a-03.png 456 | p06-069-09.png 457 | p06-069-02.png 458 | g04-072-01.png 459 | p02-105-00.png 460 | d06-100-01.png 461 | m02-055-01.png 462 | g01-045-00.png 463 | n03-097-01.png 464 | d01-085-00.png 465 | m03-033-04.png 466 | m06-031-03.png 467 | f04-074-02.png 468 | d06-067-05.png 469 | d01-098-04.png 470 | n02-054-06.png 471 | n04-052-05.png 472 | d06-100-03.png 473 | m01-136-04.png 474 | p02-135-02.png 475 | p03-173-08.png 476 | p02-090-07.png 477 | m01-049-04.png 478 | m02-112-03.png 479 | n04-092-07.png 480 | g01-039-00.png 481 | m01-079-04.png 482 | d04-028-04.png 483 | n04-114-00.png 484 | f07-084a-09.png 485 | f04-064-08.png 486 | e06-053-05.png 487 | g04-068-03.png 488 | g04-072-00.png 489 | f07-073-02.png 490 | m04-107-06.png 491 | m06-083-00.png 492 | p02-144-03.png 493 | m01-136-07.png 494 | n06-100-01.png 495 | g02-059-05.png 496 | m04-138-09.png 497 | f07-016-02.png 498 | d06-107-04.png 499 | g01-039-05.png 500 | d01-085-02.png 501 | m01-049-05.png 502 | p02-135-00.png 503 | p03-173-01.png 504 | f07-021b-05.png 505 | e01-055-00.png 506 | p06-047-04.png 507 | f07-021b-06.png 508 | g03-052-06.png 509 | f04-064-05.png 510 | m04-038-02.png 511 | f04-035-05.png 512 | g01-031-05.png 513 | m04-123-08.png 514 | g01-012-06.png 515 | m04-081-10.png 516 | m02-055-04.png 517 | d06-072-02.png 518 | d06-041-01.png 519 | n02-109-05.png 520 | p02-000-00.png 521 | g01-039-02.png 522 | f07-084a-10.png 523 | e06-021-10.png 524 | g01-025-05.png 525 | n02-004-05.png 526 | f07-046a-05.png 527 | f07-046a-01.png 528 | p03-173-03.png 529 | n06-092-01.png 530 | n03-038-06.png 531 | g04-052-01.png 532 | g01-016-05.png 533 | d01-123-03.png 534 | f07-046a-02.png 535 | n06-123-02.png 536 | d06-072-04.png 537 | g04-022-03.png 538 | m02-048-08.png 539 | f04-087-02.png 540 | d01-098-01.png 541 | f07-092a-06.png 542 | e06-049-05.png 543 | n02-054-03.png 544 | m03-114-08.png 545 | n04-060-06.png 546 | f04-087-05.png 547 | n02-157-04.png 548 | d06-027-05.png 549 | p03-173-07.png 550 | p06-069-07.png 551 | n06-128-05.png 552 | m06-098-06.png 553 | n06-092-07.png 554 | d06-027-03.png 555 | n06-140-07.png 556 | g03-064-00.png 557 | g07-000b-05.png 558 | m04-123-02.png 559 | m06-031-00.png 560 | n01-004-00.png 561 | f04-039-06.png 562 | p03-080-02.png 563 | e06-015-01.png 564 | g01-031-01.png 565 | m04-100-01.png 566 | n01-045-01.png 567 | p02-109-06.png 568 | m04-100-00.png 569 | p02-150-02.png 570 | g02-073-05.png 571 | f07-013-07.png 572 | m06-106-05.png 573 | f07-084a-05.png 574 | d04-089-01.png 575 | f07-076a-09.png 576 | f07-028a-07.png 577 | n04-009-00.png 578 | d04-032-07.png 579 | d07-100-06.png 580 | d07-096-05.png 581 | p03-163-00.png 582 | p06-104-03.png 583 | g03-049-07.png 584 | p02-101-07.png 585 | p06-104-05.png 586 | n01-020-02.png 587 | n02-033-01.png 588 | g01-088-01.png 589 | m02-069-04.png 590 | m02-109-07.png 591 | d04-053-05.png 592 | m06-106-07.png 593 | n03-113-08.png 594 | d06-067-09.png 595 | d01-123-06.png 596 | n02-127-02.png 597 | d06-107-07.png 598 | d06-060-07.png 599 | e06-026-09.png 600 | m02-059-02.png 601 | p01-155-06.png 602 | n02-157-01.png 603 | m01-060-00.png 604 | d04-062-02.png 605 | d06-008-07.png 606 | n04-218-00.png 607 | g01-067-00.png 608 | n02-033-05.png 609 | e06-030-06.png 610 | m01-149-05.png 611 | g04-048-07.png 612 | f04-043-06.png 613 | d04-012-07.png 614 | d04-032-04.png 615 | f07-081b-03.png 616 | p01-174-07.png 617 | p02-000-01.png 618 | g01-019-01.png 619 | e06-053-07.png 620 | g02-073-03.png 621 | r03-053-08.png 622 | m06-048-01.png 623 | n02-120-01.png 624 | n01-000-03.png 625 | c04-134-03.png 626 | p03-033-03.png 627 | f04-074-04.png 628 | p06-058-01.png 629 | d06-100-07.png 630 | p06-096-03.png 631 | p06-096-00.png 632 | n01-036-01.png 633 | d06-011-00.png 634 | p03-023-05.png 635 | r03-053-07.png 636 | d06-011-06.png 637 | d04-131-03.png 638 | m02-069-05.png 639 | m01-149-07.png 640 | g01-025-08.png 641 | e06-015-08.png 642 | d05-025-05.png 643 | g04-022-00.png 644 | d06-025-01.png 645 | g01-012-03.png 646 | g02-059-00.png 647 | n01-057-04.png 648 | p02-101-04.png 649 | n02-127-04.png 650 | n04-218-08.png 651 | m06-076-06.png 652 | g03-040-00.png 653 | m04-138-04.png 654 | d06-107-03.png 655 | p02-008-02.png 656 | d07-082-01.png 657 | e06-026-05.png 658 | p03-072-02.png 659 | m04-061-00.png 660 | n06-128-08.png 661 | p02-101-00.png 662 | m01-131-05.png 663 | m04-123-00.png 664 | d04-016-04.png 665 | g01-074-03.png 666 | m02-109-03.png 667 | d01-123-00.png 668 | p06-047-02.png 669 | c06-011-01.png 670 | m01-121-04.png 671 | m01-110-01.png 672 | p03-173-02.png 673 | f07-013-05.png 674 | n06-133-01.png 675 | p01-155-08.png 676 | m02-059-00.png 677 | m04-093-01.png 678 | n04-156-02.png 679 | n04-048-03.png 680 | p02-105-04.png 681 | m03-020-01.png 682 | c04-110-03.png 683 | d01-049-06.png 684 | n01-020-01.png 685 | g02-059-07.png 686 | n04-068-05.png 687 | e06-033-08.png 688 | d06-086-10.png 689 | e06-000-07.png 690 | p06-042-03.png 691 | f07-032a-10.png 692 | f07-088a-01.png 693 | n01-000-04.png 694 | d06-037-03.png 695 | m02-080-09.png 696 | m06-083-03.png 697 | e06-049-06.png 698 | g03-032-07.png 699 | d03-117-01.png 700 | n04-202-00.png 701 | g01-039-03.png 702 | d04-047-01.png 703 | n01-000-02.png 704 | m06-076-04.png 705 | f07-000b-06.png 706 | e06-070-03.png 707 | n03-064-00.png 708 | m04-093-08.png 709 | m03-006-06.png 710 | d06-100-00.png 711 | p06-058-09.png 712 | m06-076-00.png 713 | m04-030-02.png 714 | d06-104-09.png 715 | m04-246-01.png 716 | p02-101-01.png 717 | g07-000b-00.png 718 | m04-123-04.png 719 | n06-128-01.png 720 | f04-043-02.png 721 | d01-104-04.png 722 | d04-050-02.png 723 | g03-040-02.png 724 | m01-149-01.png 725 | m04-061-02.png 726 | f04-087-04.png 727 | p03-027-00.png 728 | n02-045-04.png 729 | d04-125-05.png 730 | f07-088b-02.png 731 | n01-036-00.png 732 | f07-076a-01.png 733 | g04-048-06.png 734 | n03-126-00.png 735 | m01-121-02.png 736 | p02-135-01.png 737 | g03-064-07.png 738 | m04-131-04.png 739 | d06-037-04.png 740 | d04-089-02.png 741 | m04-072-05.png 742 | d04-131-01.png 743 | d01-085-04.png 744 | d07-102-01.png 745 | e06-053-00.png 746 | g01-008-05.png 747 | e06-010-05.png 748 | d06-060-08.png 749 | d05-013-07.png 750 | d05-008-03.png 751 | d07-096-07.png 752 | n02-028-09.png 753 | d04-021-04.png 754 | d06-037-05.png 755 | e06-010-06.png 756 | d06-086-07.png 757 | f07-021a-05.png 758 | d04-101-02.png 759 | p06-088-07.png 760 | m02-095-06.png 761 | p03-072-04.png 762 | g07-000b-01.png 763 | d04-089-04.png 764 | f07-088b-06.png 765 | d04-050-04.png 766 | f07-002-03.png 767 | d04-066-09.png 768 | m04-113-02.png 769 | m04-246-04.png 770 | p03-181-02.png 771 | d04-111-08.png 772 | p03-029-07.png 773 | e06-021-05.png 774 | f07-019a-01.png 775 | f07-009-04.png 776 | g01-027-04.png 777 | d06-020-06.png 778 | e06-010-04.png 779 | n02-114-09.png 780 | m06-042-05.png 781 | n01-020-03.png 782 | f07-076a-04.png 783 | n02-157-05.png 784 | f04-079-09.png 785 | m01-131-06.png 786 | d04-037-00.png 787 | m01-149-03.png 788 | m04-113-00.png 789 | d04-016-02.png 790 | n02-127-05.png 791 | d06-041-02.png 792 | n01-057-01.png 793 | g03-052-00.png 794 | p02-069-07.png 795 | d06-096-01.png 796 | f07-019b-01.png 797 | c04-134-00.png 798 | m04-072-04.png 799 | f04-057-07.png 800 | n04-107-07.png 801 | g03-000-01.png 802 | n04-139-01.png 803 | g01-016-07.png 804 | n03-120-05.png 805 | m02-055-00.png 806 | m02-080-07.png 807 | d05-030-06.png 808 | f07-101b-03.png 809 | d01-123-07.png 810 | m03-110-03.png 811 | n03-038-01.png 812 | n04-130-05.png 813 | p01-174-05.png 814 | d04-032-02.png 815 | n02-154-05.png 816 | d04-053-02.png 817 | g01-067-09.png 818 | m04-131-00.png 819 | g03-032-04.png 820 | f07-000-06.png 821 | m03-033-05.png 822 | n02-009-04.png 823 | p02-076-04.png 824 | p02-144-00.png 825 | m01-125-09.png 826 | n02-154-03.png 827 | f04-043-05.png 828 | n03-103-03.png 829 | p03-012-00.png 830 | p06-052-00.png 831 | m04-081-08.png 832 | n04-149-01.png 833 | m06-067-05.png 834 | d06-063-04.png 835 | d04-012-04.png 836 | n01-009-02.png 837 | f07-101b-00.png 838 | n04-218-04.png 839 | p06-069-01.png 840 | d04-086-04.png 841 | p06-030-04.png 842 | d07-093-07.png 843 | n02-104-01.png 844 | g03-043-06.png 845 | d06-056-06.png 846 | m01-125-02.png 847 | p03-029-01.png 848 | g01-088-08.png 849 | n02-157-03.png 850 | p01-147-02.png 851 | f07-024b-01.png 852 | p02-076-01.png 853 | f04-068-02.png 854 | m03-006-00.png 855 | m04-113-09.png 856 | n04-209-02.png 857 | p01-147-05.png 858 | m04-030-03.png 859 | e06-030-07.png 860 | d06-104-06.png 861 | d04-047-04.png 862 | d04-096-07.png 863 | f07-046a-07.png 864 | g03-043-02.png 865 | g01-043-01.png 866 | n04-052-02.png 867 | d01-085-05.png 868 | m02-055-08.png 869 | p06-047-03.png 870 | p03-181-04.png 871 | m02-069-00.png 872 | d06-111-03.png 873 | d04-047-05.png 874 | p03-072-07.png 875 | c04-139-03.png 876 | p02-139-05.png 877 | g01-037-08.png 878 | n03-103-05.png 879 | m03-006-05.png 880 | n02-045-03.png 881 | p03-033-02.png 882 | g01-045-02.png 883 | m02-066-05.png 884 | m03-013-05.png 885 | g04-052-05.png 886 | f07-013-01.png 887 | n06-128-07.png 888 | n02-114-03.png 889 | g03-040-03.png 890 | n04-075-01.png 891 | p03-047-08.png 892 | g01-067-08.png 893 | d04-086-06.png 894 | n02-004-08.png 895 | m02-087-06.png 896 | p02-008-01.png 897 | d04-058-03.png 898 | f07-081a-02.png 899 | e06-021-03.png 900 | d04-086-02.png 901 | g04-072-04.png 902 | g01-012-04.png 903 | f04-057-03.png 904 | n04-084-05.png 905 | n06-119-03.png 906 | m03-110-09.png 907 | n06-119-05.png 908 | m06-076-05.png 909 | n03-113-00.png 910 | d01-019-05.png 911 | e06-033-04.png 912 | n04-092-02.png 913 | m04-231-04.png 914 | d06-027-02.png 915 | n03-120-09.png 916 | g01-004-05.png 917 | d01-104-05.png 918 | e06-053-08.png 919 | f07-084a-03.png 920 | m01-136-03.png 921 | n02-028-06.png 922 | p06-096-07.png 923 | c04-144-04.png 924 | m02-072-05.png 925 | f07-009-01.png 926 | f07-096-01.png 927 | g01-074-09.png 928 | m06-106-02.png 929 | f07-092b-03.png 930 | f07-024b-04.png 931 | n04-156-01.png 932 | n02-120-02.png 933 | f04-061-03.png 934 | g01-031-03.png 935 | e06-070-00.png 936 | d04-086-00.png 937 | d04-131-00.png 938 | n02-151-02.png 939 | f07-096-05.png 940 | c04-165-05.png 941 | f07-002-05.png 942 | n06-074-01.png 943 | d03-117-06.png 944 | n04-156-05.png 945 | n04-213-03.png 946 | f04-053-04.png 947 | n04-213-07.png 948 | g01-008-04.png 949 | m01-084-03.png 950 | c04-170-02.png 951 | g03-052-04.png 952 | g01-074-04.png 953 | g02-065-04.png 954 | g03-032-01.png 955 | d01-052-07.png 956 | f04-068-06.png 957 | g01-043-07.png 958 | n01-031-06.png 959 | g07-079a-08.png 960 | p02-027-04.png 961 | f07-092b-05.png 962 | g01-045-09.png 963 | n04-139-00.png 964 | g01-027-07.png 965 | n02-040-02.png 966 | p06-058-05.png 967 | e06-049-08.png 968 | p03-012-03.png 969 | r03-053-02.png 970 | g02-062-02.png 971 | f07-081a-09.png 972 | m02-109-06.png 973 | d04-053-03.png 974 | m04-231-03.png 975 | p02-101-03.png 976 | c04-170-00.png 977 | m04-238-04.png 978 | e06-010-01.png 979 | g04-068-04.png 980 | p06-052-02.png 981 | n03-106-08.png 982 | g01-031-09.png 983 | f07-046a-08.png 984 | f07-039a-06.png 985 | n04-068-04.png 986 | m01-060-01.png 987 | m04-123-01.png 988 | g01-037-01.png 989 | f04-039-07.png 990 | d05-021-06.png 991 | d01-118-03.png 992 | n02-114-01.png 993 | d03-117-02.png 994 | e06-003-07.png 995 | f07-009-07.png 996 | n03-066-06.png 997 | d04-037-01.png 998 | m04-107-10.png 999 | d06-008-01.png 1000 | g03-052-03.png 1001 | m02-066-02.png 1002 | n04-114-02.png 1003 | e06-021-07.png 1004 | n02-040-03.png 1005 | n02-151-01.png 1006 | n04-209-05.png 1007 | d06-067-00.png 1008 | g04-072-03.png 1009 | m01-136-08.png 1010 | n04-084-04.png 1011 | p03-080-05.png 1012 | n04-060-05.png 1013 | p06-058-02.png 1014 | m06-067-06.png 1015 | n01-004-01.png 1016 | d06-008-08.png 1017 | d06-020-01.png 1018 | g01-070-08.png 1019 | m03-110-08.png 1020 | g07-079a-03.png 1021 | m03-006-09.png 1022 | n02-062-05.png 1023 | d06-104-02.png 1024 | d07-102-06.png 1025 | m06-083-01.png 1026 | f07-069-08.png 1027 | m04-246-00.png 1028 | d06-027-04.png 1029 | d04-032-06.png 1030 | f07-028a-08.png 1031 | m02-048-05.png 1032 | n02-037-03.png 1033 | g03-064-05.png 1034 | m04-038-03.png 1035 | n03-103-07.png 1036 | d05-030-04.png 1037 | m04-030-04.png 1038 | n03-106-10.png 1039 | p02-008-03.png 1040 | g01-039-08.png 1041 | p02-135-06.png 1042 | g01-088-02.png 1043 | n04-149-07.png 1044 | p03-012-04.png 1045 | g01-045-04.png 1046 | d06-096-05.png 1047 | f07-084a-06.png 1048 | g01-070-01.png 1049 | n03-066-04.png 1050 | n04-068-01.png 1051 | g04-052-06.png 1052 | n06-119-04.png 1053 | m04-093-02.png 1054 | e06-026-00.png 1055 | e01-055-02.png 1056 | d04-053-09.png 1057 | g04-068-01.png 1058 | m06-056-02.png 1059 | f07-032a-02.png 1060 | m04-231-02.png 1061 | p03-080-03.png 1062 | f04-043-04.png 1063 | n01-057-06.png 1064 | p06-047-10.png 1065 | d06-086-00.png 1066 | n01-052-10.png 1067 | e01-055-09.png 1068 | m04-078-05.png 1069 | e06-053-06.png 1070 | e06-000-02.png 1071 | n04-009-04.png 1072 | e06-049-04.png 1073 | m02-048-06.png 1074 | n06-111-00.png 1075 | d06-008-04.png 1076 | d06-060-06.png 1077 | p03-027-05.png 1078 | g01-034-00.png 1079 | c04-150-01.png 1080 | g04-068-08.png 1081 | n01-004-02.png 1082 | n04-052-06.png 1083 | n06-123-09.png 1084 | n06-133-07.png 1085 | n02-004-02.png 1086 | d05-013-05.png 1087 | e06-015-04.png 1088 | p02-105-02.png 1089 | p02-115-05.png 1090 | d07-100-05.png 1091 | p02-105-07.png 1092 | p03-029-08.png 1093 | n04-114-07.png 1094 | p06-069-05.png 1095 | n04-218-09.png 1096 | m01-104-04.png 1097 | d06-025-03.png 1098 | g01-074-02.png 1099 | g01-008-06.png 1100 | p01-168-06.png 1101 | g01-037-04.png 1102 | d06-063-02.png 1103 | m01-125-06.png 1104 | f07-024a-00.png 1105 | n06-111-02.png 1106 | e06-049-07.png 1107 | d05-030-08.png 1108 | d01-052-06.png 1109 | g03-043-08.png 1110 | g01-019-08.png 1111 | n01-052-12.png 1112 | n04-114-08.png 1113 | p01-168-00.png 1114 | d07-093-06.png 1115 | n03-097-00.png 1116 | d06-100-04.png 1117 | n04-218-01.png 1118 | p01-174-01.png 1119 | m06-067-01.png 1120 | n06-111-04.png 1121 | d06-096-07.png 1122 | m02-055-09.png 1123 | m02-080-00.png 1124 | e06-021-00.png 1125 | d04-021-02.png 1126 | m01-104-06.png 1127 | m01-149-06.png 1128 | n02-054-02.png 1129 | n04-213-01.png 1130 | n04-130-00.png 1131 | n02-151-09.png 1132 | p02-135-04.png 1133 | p02-105-05.png 1134 | c04-139-04.png 1135 | f04-057-00.png 1136 | c04-134-06.png 1137 | d06-056-04.png 1138 | g04-052-03.png 1139 | f04-032-03.png 1140 | f04-039-02.png 1141 | p06-030-03.png 1142 | f07-084b-03.png 1143 | p02-000-04.png 1144 | f07-021b-08.png 1145 | g02-059-04.png 1146 | n03-097-06.png 1147 | n06-100-07.png 1148 | p03-040-08.png 1149 | d06-107-08.png 1150 | g02-062-08.png 1151 | d01-098-07.png 1152 | n04-100-06.png 1153 | p03-023-03.png 1154 | n04-149-04.png 1155 | n02-157-08.png 1156 | p03-047-03.png 1157 | f07-019a-07.png 1158 | g04-072-05.png 1159 | n03-038-04.png 1160 | n04-163-02.png 1161 | m04-072-08.png 1162 | f04-074-01.png 1163 | m04-078-00.png 1164 | m03-110-04.png 1165 | p02-008-06.png 1166 | f04-035-00.png 1167 | c06-011-00.png 1168 | p03-029-06.png 1169 | m03-110-07.png 1170 | f04-079-10.png 1171 | f07-019b-05.png 1172 | e06-070-09.png 1173 | d04-131-05.png 1174 | m04-038-05.png 1175 | d04-021-07.png 1176 | p02-144-08.png 1177 | p02-081-06.png 1178 | d06-067-03.png 1179 | n02-062-07.png 1180 | m04-138-08.png 1181 | d07-082-00.png 1182 | f07-076a-06.png 1183 | e06-010-00.png 1184 | d04-111-02.png 1185 | d01-019-00.png 1186 | d07-089-02.png 1187 | p02-069-00.png 1188 | g04-043-04.png 1189 | f07-096-06.png 1190 | m01-084-01.png 1191 | m02-072-00.png 1192 | n02-049-02.png 1193 | p02-144-02.png 1194 | d04-028-05.png 1195 | f04-061-01.png 1196 | n04-060-03.png 1197 | n04-068-06.png 1198 | m04-072-00.png 1199 | m04-107-05.png 1200 | n06-119-02.png 1201 | p01-147-10.png 1202 | d06-107-00.png 1203 | d05-030-01.png 1204 | d07-102-00.png 1205 | m04-123-07.png 1206 | g01-027-03.png 1207 | d06-076-02.png 1208 | n02-004-07.png 1209 | n01-045-03.png 1210 | d04-096-01.png 1211 | p02-101-06.png 1212 | n04-000-04.png 1213 | n02-109-04.png 1214 | d04-037-03.png 1215 | m04-113-01.png 1216 | n04-052-01.png 1217 | n04-149-05.png 1218 | c04-110-02.png 1219 | n01-045-06.png 1220 | f07-032a-00.png 1221 | g01-088-04.png 1222 | g01-039-06.png 1223 | d06-056-07.png 1224 | m01-104-01.png 1225 | g01-031-10.png 1226 | m02-080-08.png 1227 | g03-032-03.png 1228 | d06-020-07.png 1229 | f07-081a-06.png 1230 | e06-003-02.png 1231 | m04-138-01.png 1232 | d06-104-03.png 1233 | m04-131-08.png 1234 | c04-116-03.png 1235 | p03-072-01.png 1236 | d06-037-07.png 1237 | m01-110-02.png 1238 | d06-104-01.png 1239 | f07-019b-09.png 1240 | g01-043-00.png 1241 | f07-088b-05.png 1242 | e06-021-02.png 1243 | d06-063-00.png 1244 | n01-052-02.png 1245 | m03-033-00.png 1246 | g01-070-05.png 1247 | m01-121-06.png 1248 | d07-089-03.png 1249 | p02-115-03.png 1250 | n02-062-01.png 1251 | n04-052-00.png 1252 | n01-009-07.png 1253 | f04-043-00.png 1254 | p06-088-08.png 1255 | m06-048-06.png 1256 | g04-043-02.png 1257 | f07-039a-05.png 1258 | n02-127-06.png 1259 | p06-069-00.png 1260 | n06-092-00.png 1261 | n04-048-09.png 1262 | e06-015-09.png 1263 | f04-053-05.png 1264 | n03-113-09.png 1265 | f04-087-03.png 1266 | p01-147-01.png 1267 | m01-125-08.png 1268 | g04-068-07.png 1269 | n04-139-03.png 1270 | g01-031-04.png 1271 | f04-032-00.png 1272 | g01-045-07.png 1273 | f07-042a-06.png 1274 | d06-076-03.png 1275 | p03-023-04.png 1276 | d04-111-11.png 1277 | m02-095-04.png 1278 | n04-009-06.png 1279 | m02-059-01.png 1280 | d01-118-06.png 1281 | m02-055-10.png 1282 | d04-066-04.png 1283 | f07-092a-05.png 1284 | n06-100-04.png 1285 | d05-008-02.png 1286 | n04-107-08.png 1287 | m04-030-00.png 1288 | g03-040-05.png 1289 | g07-079a-11.png 1290 | m01-149-00.png 1291 | n01-000-07.png 1292 | n01-057-05.png 1293 | g01-043-04.png 1294 | p02-144-06.png 1295 | g02-062-07.png 1296 | d04-032-03.png 1297 | f07-081b-01.png 1298 | d06-072-00.png 1299 | m01-136-02.png 1300 | p02-109-04.png 1301 | d01-049-03.png 1302 | n02-054-04.png 1303 | g03-049-04.png 1304 | n01-045-05.png 1305 | p06-042-00.png 1306 | d07-093-01.png 1307 | d06-056-03.png 1308 | g04-043-03.png 1309 | p02-105-06.png 1310 | f07-069-09.png 1311 | f04-061-00.png 1312 | p06-042-07.png 1313 | f07-101b-01.png 1314 | n02-157-06.png 1315 | n04-209-04.png 1316 | g02-062-05.png 1317 | n02-009-02.png 1318 | g01-045-06.png 1319 | d07-096-09.png 1320 | c04-170-03.png 1321 | f07-019a-05.png 1322 | p02-076-07.png 1323 | m01-049-11.png 1324 | f07-069-07.png 1325 | n02-040-05.png 1326 | n03-113-02.png 1327 | n04-107-05.png 1328 | p02-008-05.png 1329 | p02-000-02.png 1330 | g01-025-09.png 1331 | g07-079a-01.png 1332 | m02-080-02.png 1333 | d04-050-03.png 1334 | n04-092-03.png 1335 | n04-075-07.png 1336 | g01-008-03.png 1337 | d04-021-06.png 1338 | g02-073-00.png 1339 | m04-093-03.png 1340 | e06-021-01.png 1341 | m06-048-05.png 1342 | n04-052-07.png 1343 | n02-109-03.png 1344 | n06-123-06.png 1345 | f04-064-07.png 1346 | f04-064-00.png 1347 | g02-059-02.png 1348 | g01-088-07.png 1349 | p03-027-01.png 1350 | d04-058-00.png 1351 | n04-092-01.png 1352 | d01-016-03.png 1353 | d04-131-02.png 1354 | e06-033-03.png 1355 | p03-080-06.png 1356 | p06-052-04.png 1357 | n04-163-00.png 1358 | n06-100-09.png 1359 | f04-074-06.png 1360 | d06-046-01.png 1361 | m01-121-08.png 1362 | n04-100-04.png 1363 | n06-111-07.png 1364 | p02-081-05.png 1365 | m04-113-05.png 1366 | n06-082-01.png 1367 | f07-042a-05.png 1368 | m06-091-06.png 1369 | f07-084a-00.png 1370 | m04-138-00.png 1371 | g01-019-02.png 1372 | g01-034-08.png 1373 | g07-079a-09.png 1374 | d05-040-02.png 1375 | g01-004-00.png 1376 | d04-089-00.png 1377 | d01-104-07.png 1378 | n06-123-05.png 1379 | d04-101-00.png 1380 | g02-059-03.png 1381 | m01-125-10.png 1382 | p02-076-09.png 1383 | g07-000b-09.png 1384 | p06-058-07.png 1385 | p02-076-06.png 1386 | f07-069-01.png 1387 | g01-034-04.png 1388 | p06-052-01.png 1389 | g01-012-01.png 1390 | g02-059-06.png 1391 | g01-019-00.png 1392 | f04-079-06.png 1393 | p02-022-05.png 1394 | m06-056-05.png 1395 | n06-140-02.png 1396 | p02-069-08.png 1397 | n06-092-02.png 1398 | d06-011-01.png 1399 | m02-112-01.png 1400 | g07-079a-10.png 1401 | d05-025-00.png 1402 | m06-056-04.png 1403 | g04-072-02.png 1404 | g01-025-04.png 1405 | d05-030-02.png 1406 | n01-031-04.png 1407 | f07-021b-00.png 1408 | m06-067-00.png 1409 | g03-064-02.png 1410 | d07-093-03.png 1411 | m01-121-00.png 1412 | f07-021a-01.png 1413 | e06-015-07.png 1414 | g03-000-02.png 1415 | m06-042-03.png 1416 | d06-046-04.png 1417 | f04-083-06.png 1418 | n06-133-05.png 1419 | m04-072-09.png 1420 | d01-104-06.png 1421 | f07-096-02.png 1422 | d06-046-05.png 1423 | m04-072-03.png 1424 | n02-151-03.png 1425 | n01-057-07.png 1426 | p03-027-02.png 1427 | m04-081-05.png 1428 | p02-109-02.png 1429 | f07-039a-02.png 1430 | n04-000-03.png 1431 | n04-163-07.png 1432 | n06-092-06.png 1433 | f04-057-09.png 1434 | m03-013-03.png 1435 | d06-107-05.png 1436 | n03-113-01.png 1437 | n06-128-00.png 1438 | n06-111-01.png 1439 | n03-106-02.png 1440 | d06-107-01.png 1441 | m06-048-00.png 1442 | n02-045-00.png 1443 | m02-087-02.png 1444 | n02-104-03.png 1445 | g07-000b-07.png 1446 | f04-061-05.png 1447 | m01-049-09.png 1448 | n01-004-04.png 1449 | g03-049-01.png 1450 | m06-098-05.png 1451 | d06-003-06.png 1452 | n01-052-00.png 1453 | p02-076-08.png 1454 | m01-110-00.png 1455 | f04-071-01.png 1456 | n04-000-00.png 1457 | n04-068-03.png 1458 | n04-092-08.png 1459 | n02-004-01.png 1460 | d04-111-03.png 1461 | f07-016-10.png 1462 | f04-071-02.png 1463 | d04-089-06.png 1464 | g04-022-06.png 1465 | m04-131-01.png 1466 | f04-083-00.png 1467 | d01-052-03.png 1468 | n01-000-05.png 1469 | d06-056-01.png 1470 | f07-019b-06.png 1471 | p02-022-07.png 1472 | d01-052-02.png 1473 | p03-012-08.png 1474 | d03-117-00.png 1475 | g01-074-08.png 1476 | n02-037-04.png 1477 | d04-053-07.png 1478 | f07-073-06.png 1479 | n03-097-05.png 1480 | d06-025-00.png 1481 | m03-114-07.png 1482 | d01-123-05.png 1483 | m01-136-00.png 1484 | n01-045-07.png 1485 | n04-092-04.png 1486 | m01-136-09.png 1487 | d07-096-01.png 1488 | n03-120-02.png 1489 | f04-057-04.png 1490 | f07-039a-01.png 1491 | m01-121-07.png 1492 | p06-069-04.png 1493 | m04-043-04.png 1494 | p03-040-03.png 1495 | p03-181-03.png 1496 | g03-049-03.png 1497 | g01-088-09.png 1498 | e06-046-00.png 1499 | f07-092b-00.png 1500 | f07-088b-00.png 1501 | g04-043-06.png 1502 | d06-111-05.png 1503 | d07-100-08.png 1504 | d06-056-00.png 1505 | p02-081-00.png 1506 | n01-020-00.png 1507 | p06-047-09.png 1508 | m04-081-02.png 1509 | g01-016-01.png 1510 | g04-048-05.png 1511 | p03-029-03.png 1512 | p01-174-02.png 1513 | n06-074-03.png 1514 | p02-144-10.png 1515 | n01-031-07.png 1516 | f07-024b-10.png 1517 | p06-069-06.png 1518 | f07-081b-05.png 1519 | m01-079-06.png 1520 | n06-111-05.png 1521 | n04-114-04.png 1522 | n03-064-01.png 1523 | g02-062-01.png 1524 | f04-039-08.png 1525 | m03-020-03.png 1526 | d01-019-03.png 1527 | e06-000-01.png 1528 | g04-072-08.png 1529 | f07-000-08.png 1530 | m01-079-03.png 1531 | n02-109-07.png 1532 | p03-163-05.png 1533 | g01-016-03.png 1534 | d04-053-04.png 1535 | n02-045-08.png 1536 | p01-155-01.png 1537 | m02-048-09.png 1538 | f07-016-01.png 1539 | g04-048-00.png 1540 | n03-097-04.png 1541 | g03-049-00.png 1542 | m04-231-00.png 1543 | e01-055-08.png 1544 | f04-079-07.png 1545 | f07-006-05.png 1546 | n02-028-02.png 1547 | d06-003-01.png 1548 | n04-048-04.png 1549 | f04-032-01.png 1550 | f04-068-03.png 1551 | n02-114-02.png 1552 | p06-042-09.png 1553 | f07-021a-04.png 1554 | e06-003-06.png 1555 | f07-024b-03.png 1556 | m01-084-06.png 1557 | d04-016-05.png 1558 | f04-083-09.png 1559 | n03-103-04.png 1560 | p06-058-03.png 1561 | n03-103-08.png 1562 | p02-090-08.png 1563 | g02-073-02.png 1564 | p02-109-01.png 1565 | f07-101b-04.png 1566 | m01-095-00.png 1567 | d06-067-07.png 1568 | g07-079a-04.png 1569 | e06-021-04.png 1570 | m01-095-03.png 1571 | f07-084a-01.png 1572 | e06-010-02.png 1573 | f04-061-02.png 1574 | c04-134-05.png 1575 | f07-016-08.png 1576 | m01-104-02.png 1577 | m04-078-06.png 1578 | n04-092-05.png 1579 | m01-121-05.png 1580 | d06-046-02.png 1581 | n01-004-03.png 1582 | m03-110-00.png 1583 | p02-022-02.png 1584 | g07-000b-06.png 1585 | f04-074-05.png 1586 | p03-181-00.png 1587 | n04-139-04.png 1588 | m03-033-07.png 1589 | p02-150-08.png 1590 | c06-011-05.png 1591 | m04-238-03.png 1592 | n03-120-07.png 1593 | d01-019-04.png 1594 | p01-155-00.png 1595 | p03-033-05.png 1596 | n06-100-08.png 1597 | p01-168-05.png 1598 | n01-036-05.png 1599 | c04-139-01.png 1600 | g01-008-01.png 1601 | e06-003-01.png 1602 | n04-114-06.png 1603 | p02-022-08.png 1604 | n01-052-04.png 1605 | g01-027-05.png 1606 | d04-012-06.png 1607 | p01-155-05.png 1608 | g02-062-06.png 1609 | d05-008-07.png 1610 | e06-053-01.png 1611 | m06-056-01.png 1612 | e06-026-08.png 1613 | n01-009-08.png 1614 | p03-012-05.png 1615 | f07-096-03.png 1616 | n06-123-07.png 1617 | d06-020-03.png 1618 | n02-049-05.png 1619 | n06-111-06.png 1620 | m03-006-02.png 1621 | f04-064-03.png 1622 | d06-025-05.png 1623 | d05-021-08.png 1624 | f07-021a-00.png 1625 | d07-093-05.png 1626 | n03-103-00.png 1627 | f07-073-04.png 1628 | c04-144-03.png 1629 | g03-040-07.png 1630 | c04-116-02.png 1631 | d06-041-06.png 1632 | m02-095-00.png 1633 | n06-140-03.png 1634 | f04-071-03.png 1635 | g01-088-05.png 1636 | m02-109-01.png 1637 | p02-027-00.png 1638 | f07-013-02.png 1639 | e06-003-04.png 1640 | d07-100-01.png 1641 | d04-047-07.png 1642 | p02-069-06.png 1643 | n02-109-00.png 1644 | f07-013-00.png 1645 | p03-189-00.png 1646 | d06-027-07.png 1647 | f04-035-01.png 1648 | f07-081a-04.png 1649 | m04-123-06.png 1650 | n04-156-06.png 1651 | m01-104-00.png 1652 | g03-043-10.png 1653 | p02-144-09.png 1654 | p06-042-08.png 1655 | g01-012-05.png 1656 | e06-033-05.png 1657 | m01-131-04.png 1658 | p03-012-01.png 1659 | d06-060-00.png 1660 | d06-027-00.png 1661 | p06-030-05.png 1662 | d03-117-03.png 1663 | p06-052-07.png 1664 | p01-168-03.png 1665 | m04-038-01.png 1666 | f07-081a-00.png 1667 | d01-016-00.png 1668 | n03-126-02.png 1669 | m03-033-02.png 1670 | n02-033-07.png 1671 | n06-082-07.png 1672 | p06-058-06.png 1673 | c06-011-02.png 1674 | g01-067-01.png 1675 | p06-104-09.png 1676 | d01-118-00.png 1677 | n02-037-02.png 1678 | d01-019-01.png 1679 | m01-125-04.png 1680 | g04-048-03.png 1681 | f07-021a-03.png 1682 | m04-030-01.png 1683 | e06-033-00.png 1684 | p06-047-08.png 1685 | d06-086-08.png 1686 | d01-080-07.png 1687 | p02-008-08.png 1688 | d04-062-04.png 1689 | n02-045-01.png 1690 | f04-032-07.png 1691 | p02-076-00.png 1692 | f07-024a-02.png 1693 | n04-084-01.png 1694 | n02-157-07.png 1695 | m06-091-03.png 1696 | p03-033-01.png 1697 | d01-123-02.png 1698 | d06-037-00.png 1699 | d05-030-07.png 1700 | d01-016-02.png 1701 | n02-062-06.png 1702 | f07-084b-07.png 1703 | f07-092b-04.png 1704 | d07-100-00.png 1705 | g03-004-00.png 1706 | m02-080-03.png 1707 | g02-065-01.png 1708 | f07-084b-08.png 1709 | p03-072-03.png 1710 | p01-147-06.png 1711 | f07-081a-10.png 1712 | d04-101-05.png 1713 | g02-065-07.png 1714 | m04-072-02.png 1715 | p06-096-04.png 1716 | g01-008-02.png 1717 | d06-060-04.png 1718 | d04-066-08.png 1719 | f04-039-01.png 1720 | n01-031-00.png 1721 | g01-025-00.png 1722 | m04-131-06.png 1723 | n02-127-03.png 1724 | p03-027-03.png 1725 | f07-024a-08.png 1726 | n02-040-07.png 1727 | f07-081b-02.png 1728 | n02-045-05.png 1729 | n04-202-07.png 1730 | d06-020-05.png 1731 | g02-065-00.png 1732 | m02-055-05.png 1733 | d04-131-04.png 1734 | n04-139-05.png 1735 | g01-074-00.png 1736 | p02-069-01.png 1737 | m04-100-03.png 1738 | d06-003-02.png 1739 | c04-134-01.png 1740 | p03-040-00.png 1741 | m02-095-02.png 1742 | n02-040-00.png 1743 | p02-101-02.png 1744 | p02-022-04.png 1745 | e06-003-00.png 1746 | p01-147-04.png 1747 | p06-047-07.png 1748 | n04-068-00.png 1749 | m06-098-04.png 1750 | g01-067-06.png 1751 | n03-038-03.png 1752 | p06-096-02.png 1753 | d05-013-02.png 1754 | d06-086-05.png 1755 | d04-016-08.png 1756 | m03-110-02.png 1757 | d06-041-04.png 1758 | f07-032a-04.png 1759 | p03-173-06.png 1760 | g04-068-00.png 1761 | d05-025-04.png 1762 | g01-070-06.png 1763 | f07-084b-00.png 1764 | n03-113-04.png 1765 | n01-052-05.png 1766 | n02-049-03.png 1767 | n03-038-05.png 1768 | d07-102-02.png 1769 | f07-002-01.png 1770 | f07-021a-02.png 1771 | f07-028a-06.png 1772 | f04-083-05.png 1773 | n04-048-06.png 1774 | d06-063-01.png 1775 | d04-012-03.png 1776 | f07-081a-01.png 1777 | m04-231-05.png 1778 | d05-013-03.png 1779 | d06-072-09.png 1780 | d01-080-04.png 1781 | f04-039-03.png 1782 | m06-091-05.png 1783 | e06-010-03.png 1784 | p06-088-01.png 1785 | m06-098-02.png 1786 | n06-140-01.png 1787 | n02-040-04.png 1788 | d07-085-06.png 1789 | g01-070-02.png 1790 | d06-072-06.png 1791 | p06-088-03.png 1792 | g01-008-00.png 1793 | c04-170-04.png 1794 | f04-032-08.png 1795 | m01-110-09.png 1796 | n02-045-07.png 1797 | g03-049-05.png 1798 | g01-045-08.png 1799 | f04-083-02.png 1800 | m06-056-00.png 1801 | m04-072-10.png 1802 | d04-058-02.png 1803 | e06-030-02.png 1804 | n06-100-00.png 1805 | n06-111-03.png 1806 | e06-000-05.png 1807 | m04-113-04.png 1808 | p06-104-08.png 1809 | d07-085-07.png 1810 | f07-073-01.png 1811 | e01-055-07.png 1812 | f04-083-03.png 1813 | e06-026-03.png 1814 | d04-058-06.png 1815 | f07-024a-05.png 1816 | p02-069-02.png 1817 | f04-074-11.png 1818 | n06-140-04.png 1819 | c06-011-03.png 1820 | g01-019-06.png 1821 | m01-110-11.png 1822 | n03-106-05.png 1823 | d01-080-06.png 1824 | g01-088-06.png 1825 | d01-118-02.png 1826 | g01-039-07.png 1827 | p03-040-01.png 1828 | d01-080-02.png 1829 | g01-027-00.png 1830 | m02-066-04.png 1831 | n02-033-03.png 1832 | m02-095-05.png 1833 | g07-079a-02.png 1834 | f07-073-00.png 1835 | m04-246-02.png 1836 | n03-103-06.png 1837 | p02-115-02.png 1838 | p01-174-04.png 1839 | f07-084b-05.png 1840 | p02-027-01.png 1841 | d04-066-02.png 1842 | f07-013-03.png 1843 | d04-032-01.png 1844 | m01-131-00.png 1845 | f07-006-06.png 1846 | d04-111-00.png 1847 | g03-000-06.png 1848 | g07-000b-03.png 1849 | f04-053-02.png 1850 | p02-081-03.png 1851 | p02-022-03.png 1852 | f07-088a-06.png 1853 | g01-027-01.png 1854 | f04-032-06.png 1855 | n04-068-07.png 1856 | m01-084-07.png 1857 | n06-082-00.png 1858 | d04-050-05.png 1859 | g01-034-07.png 1860 | n04-114-05.png 1861 | g01-016-00.png 1862 | g02-073-04.png 1863 | g01-034-02.png 1864 | d07-085-02.png 1865 | f07-032a-06.png 1866 | d06-107-02.png 1867 | m01-110-04.png 1868 | g01-031-00.png 1869 | f04-039-05.png 1870 | f07-006-02.png 1871 | g02-062-09.png 1872 | g04-048-02.png 1873 | n02-109-06.png 1874 | m06-083-04.png 1875 | n03-126-01.png 1876 | n02-037-08.png 1877 | d04-037-05.png 1878 | g03-052-08.png 1879 | d06-111-01.png 1880 | f04-064-06.png 1881 | f07-021a-06.png 1882 | m04-138-05.png 1883 | d06-100-05.png 1884 | e06-033-01.png 1885 | n04-213-04.png 1886 | n04-218-06.png 1887 | n04-075-03.png 1888 | p02-081-04.png 1889 | f04-079-04.png 1890 | d06-011-05.png 1891 | g01-019-07.png 1892 | d04-021-01.png 1893 | d05-021-05.png 1894 | n02-151-04.png 1895 | m06-091-00.png 1896 | n02-120-03.png 1897 | n01-057-08.png 1898 | n04-163-03.png 1899 | f07-069-00.png 1900 | d04-089-07.png 1901 | g01-034-06.png 1902 | f07-024b-00.png 1903 | n02-009-05.png 1904 | n06-123-04.png 1905 | f07-019b-10.png 1906 | n02-009-06.png 1907 | m04-078-07.png 1908 | g04-043-05.png 1909 | e01-055-01.png 1910 | d06-096-00.png 1911 | f07-016-09.png 1912 | f07-032a-05.png 1913 | f07-081b-04.png 1914 | e01-055-05.png 1915 | n02-157-00.png 1916 | n04-156-07.png 1917 | d05-013-04.png 1918 | n03-106-01.png 1919 | p01-174-08.png 1920 | f04-057-06.png 1921 | g03-052-10.png 1922 | d06-072-10.png 1923 | d04-053-08.png 1924 | f07-019b-08.png 1925 | f07-028a-02.png 1926 | d06-025-07.png 1927 | g01-031-08.png 1928 | f04-071-07.png 1929 | f07-096-04.png 1930 | f07-042a-07.png 1931 | f07-006-03.png 1932 | f07-081a-03.png 1933 | p03-023-00.png 1934 | m04-078-02.png 1935 | c04-150-03.png 1936 | g01-034-03.png 1937 | m06-031-05.png 1938 | n02-009-01.png 1939 | f04-079-01.png 1940 | m03-110-06.png 1941 | p03-012-09.png 1942 | g03-032-02.png 1943 | d05-040-04.png 1944 | n04-009-05.png 1945 | d04-096-06.png 1946 | f07-081a-08.png 1947 | m02-048-02.png 1948 | e06-033-09.png 1949 | p06-104-00.png 1950 | g04-043-08.png 1951 | m01-110-03.png 1952 | n04-156-03.png 1953 | d07-082-07.png 1954 | n04-213-02.png 1955 | d06-041-00.png 1956 | e06-015-00.png 1957 | m04-246-06.png 1958 | p03-027-07.png 1959 | g01-088-03.png 1960 | e06-000-03.png 1961 | n04-149-06.png 1962 | n04-139-06.png 1963 | n02-127-01.png 1964 | c04-165-00.png 1965 | d04-053-01.png 1966 | d06-100-06.png 1967 | m03-006-08.png 1968 | e06-053-02.png 1969 | d05-021-03.png 1970 | g04-022-01.png 1971 | e06-033-02.png 1972 | p02-109-03.png 1973 | g01-025-07.png 1974 | d04-047-02.png 1975 | g04-068-09.png 1976 | e06-021-08.png 1977 | m06-106-06.png 1978 | f07-076a-02.png 1979 | n04-202-08.png 1980 | m01-131-01.png 1981 | m04-123-03.png 1982 | p02-069-05.png 1983 | n04-000-02.png 1984 | g01-070-03.png 1985 | n01-000-06.png 1986 | d07-096-03.png 1987 | d04-012-01.png 1988 | d04-125-01.png 1989 | g01-027-02.png 1990 | d04-012-02.png 1991 | d06-063-06.png 1992 | d06-056-08.png 1993 | d07-093-08.png 1994 | d01-049-02.png 1995 | f07-021a-07.png 1996 | m02-080-01.png 1997 | d06-104-10.png 1998 | p06-096-08.png 1999 | n02-120-05.png 2000 | d05-030-05.png 2001 | m02-048-00.png 2002 | n04-092-00.png 2003 | p02-076-02.png 2004 | d01-049-08.png 2005 | d04-047-08.png 2006 | n01-052-09.png 2007 | n04-130-02.png 2008 | n06-128-03.png 2009 | d07-096-06.png 2010 | d05-008-04.png 2011 | m04-107-08.png 2012 | n06-100-06.png 2013 | m03-013-02.png 2014 | f07-084b-02.png 2015 | g01-027-08.png 2016 | n02-054-05.png 2017 | m06-098-01.png 2018 | f07-084a-04.png 2019 | m06-106-03.png 2020 | n03-066-01.png 2021 | n03-126-03.png 2022 | n06-074-00.png 2023 | n04-130-04.png 2024 | m02-059-04.png 2025 | m02-059-05.png 2026 | f04-079-08.png 2027 | n02-154-00.png 2028 | n06-074-04.png 2029 | f07-009-06.png 2030 | c04-139-05.png 2031 | d06-020-00.png 2032 | f07-019a-08.png 2033 | p01-174-00.png 2034 | g07-079a-05.png 2035 | c04-116-01.png 2036 | d04-066-00.png 2037 | p02-081-02.png 2038 | n03-126-04.png 2039 | m02-072-03.png 2040 | d06-076-04.png 2041 | e06-003-10.png 2042 | p02-022-01.png 2043 | d01-085-03.png 2044 | g01-039-09.png 2045 | f07-039a-00.png 2046 | g01-004-02.png 2047 | p02-069-09.png 2048 | d06-113-02.png 2049 | f07-081b-00.png 2050 | f07-019a-03.png 2051 | g01-045-01.png 2052 | g03-004-05.png 2053 | n01-052-06.png 2054 | n04-213-06.png 2055 | d05-008-05.png 2056 | g03-000-05.png 2057 | d03-117-04.png 2058 | d06-072-01.png 2059 | d07-082-06.png 2060 | f04-035-03.png 2061 | g03-064-06.png 2062 | e06-000-06.png 2063 | m01-125-03.png 2064 | p06-104-02.png 2065 | d04-053-06.png 2066 | d07-096-08.png 2067 | g02-062-00.png 2068 | m02-066-03.png 2069 | m06-076-01.png 2070 | n02-037-07.png 2071 | f07-021b-01.png 2072 | p02-139-02.png 2073 | g01-043-05.png 2074 | g07-000b-04.png 2075 | n02-033-04.png 2076 | e06-030-05.png 2077 | f07-073-03.png 2078 | m02-080-06.png 2079 | d06-063-03.png 2080 | d05-021-01.png 2081 | d06-067-08.png 2082 | d06-025-06.png 2083 | d04-101-01.png 2084 | d06-046-07.png 2085 | n03-066-07.png 2086 | n01-045-00.png 2087 | m01-049-00.png 2088 | f07-028a-01.png 2089 | n04-100-03.png 2090 | d07-102-07.png 2091 | f07-073-05.png 2092 | e06-026-04.png 2093 | n01-020-04.png 2094 | d04-032-00.png 2095 | n02-045-06.png 2096 | f07-000-07.png 2097 | p03-029-02.png 2098 | n02-009-03.png 2099 | f07-016-06.png 2100 | m01-110-06.png 2101 | d05-008-01.png 2102 | f07-000b-01.png 2103 | p02-090-06.png 2104 | n02-040-06.png 2105 | d05-008-06.png 2106 | m01-049-10.png 2107 | d06-076-01.png 2108 | p03-163-07.png 2109 | n04-149-03.png 2110 | f07-006-04.png 2111 | c04-165-07.png 2112 | p02-081-01.png 2113 | d06-025-02.png 2114 | m01-049-01.png 2115 | m02-109-00.png 2116 | n04-075-00.png 2117 | e06-015-06.png 2118 | p02-150-06.png 2119 | n02-004-04.png 2120 | f07-006-01.png 2121 | n03-120-03.png 2122 | p02-008-00.png 2123 | n01-045-08.png 2124 | d06-072-08.png 2125 | d06-041-07.png 2126 | f07-013-06.png 2127 | m06-067-02.png 2128 | n03-120-01.png 2129 | m04-072-07.png 2130 | m04-107-04.png 2131 | f04-064-02.png 2132 | n04-209-01.png 2133 | m01-131-02.png 2134 | g01-070-04.png 2135 | m04-113-03.png 2136 | d05-021-07.png 2137 | d06-027-01.png 2138 | d07-089-04.png 2139 | p02-144-11.png 2140 | p03-012-02.png 2141 | n04-209-07.png 2142 | d04-016-03.png 2143 | p06-096-05.png 2144 | f07-000-00.png 2145 | n06-123-00.png 2146 | m01-110-05.png 2147 | g01-037-06.png 2148 | n01-057-00.png 2149 | f04-053-00.png 2150 | d01-080-01.png 2151 | m03-020-02.png 2152 | e06-049-09.png 2153 | p03-189-03.png 2154 | d07-100-07.png 2155 | c04-144-00.png 2156 | f04-068-07.png 2157 | d05-013-08.png 2158 | n04-218-05.png 2159 | d06-011-03.png 2160 | g04-068-05.png 2161 | n03-106-00.png 2162 | n04-084-06.png 2163 | p01-168-04.png 2164 | p06-030-00.png 2165 | p01-147-03.png 2166 | d06-060-02.png 2167 | p02-081-08.png 2168 | m03-013-01.png 2169 | c06-011-07.png 2170 | d01-016-01.png 2171 | n02-028-07.png 2172 | f07-081a-07.png 2173 | p02-027-02.png 2174 | m04-107-09.png 2175 | c06-011-06.png 2176 | g04-068-02.png 2177 | d04-012-10.png 2178 | f07-076a-05.png 2179 | g01-067-03.png 2180 | p06-052-08.png 2181 | p06-088-05.png 2182 | f07-084b-06.png 2183 | d04-058-04.png 2184 | m02-048-04.png 2185 | g02-065-09.png 2186 | d04-016-01.png 2187 | g01-031-02.png 2188 | m06-048-03.png 2189 | f07-019a-02.png 2190 | d04-111-10.png 2191 | m04-081-06.png 2192 | n02-151-05.png 2193 | n02-104-06.png 2194 | n03-120-08.png 2195 | p03-173-00.png 2196 | p03-072-06.png 2197 | n02-157-02.png 2198 | m01-104-03.png 2199 | m06-083-07.png 2200 | n02-120-04.png 2201 | f07-069-02.png 2202 | p02-115-00.png 2203 | d07-096-00.png 2204 | f07-013-08.png 2205 | d06-086-09.png 2206 | e06-026-02.png 2207 | n06-123-01.png 2208 | f04-071-00.png 2209 | n02-062-02.png 2210 | p01-174-06.png 2211 | d07-085-03.png 2212 | m04-100-04.png 2213 | m03-013-06.png 2214 | n02-151-07.png 2215 | p06-088-09.png 2216 | n02-109-02.png 2217 | d01-080-05.png 2218 | m06-106-08.png 2219 | m01-121-03.png 2220 | m01-125-07.png 2221 | f07-028a-04.png 2222 | m03-006-07.png 2223 | p06-058-10.png 2224 | d06-063-10.png 2225 | g03-000-08.png 2226 | f07-088b-01.png 2227 | d01-098-05.png 2228 | d04-066-03.png 2229 | p03-080-00.png 2230 | d06-104-08.png 2231 | n01-009-05.png 2232 | p06-058-04.png 2233 | d06-008-03.png 2234 | f07-092a-03.png 2235 | d06-011-04.png 2236 | d06-011-07.png 2237 | p06-030-08.png 2238 | n01-009-01.png 2239 | f04-043-07.png 2240 | m01-149-04.png 2241 | d04-047-06.png 2242 | m03-114-06.png 2243 | n04-149-00.png 2244 | p02-090-04.png 2245 | e06-070-06.png 2246 | d01-104-03.png 2247 | d06-060-09.png 2248 | n02-033-02.png 2249 | f04-074-10.png 2250 | d01-118-05.png 2251 | e06-049-02.png 2252 | n04-075-04.png 2253 | p06-069-08.png 2254 | m02-095-09.png 2255 | n02-154-06.png 2256 | p02-109-05.png 2257 | n02-037-01.png 2258 | d04-028-00.png 2259 | d06-041-05.png 2260 | d05-013-00.png 2261 | g01-019-04.png 2262 | n03-106-09.png 2263 | g03-000-09.png 2264 | d07-102-04.png 2265 | m04-093-05.png 2266 | m06-106-01.png 2267 | m01-060-07.png 2268 | f04-064-04.png 2269 | g01-037-05.png 2270 | n04-084-00.png 2271 | p02-027-03.png 2272 | d06-104-07.png 2273 | d05-021-00.png 2274 | n03-113-06.png 2275 | d06-086-06.png 2276 | n04-213-00.png 2277 | c04-165-06.png 2278 | g02-065-05.png 2279 | n02-151-06.png 2280 | n04-009-02.png 2281 | m03-114-04.png 2282 | d04-101-04.png 2283 | m01-110-10.png 2284 | g07-079a-07.png 2285 | n04-163-05.png 2286 | n06-140-05.png 2287 | p06-030-07.png 2288 | f07-009-05.png 2289 | n04-130-01.png 2290 | c04-150-02.png 2291 | m03-118-03.png 2292 | n03-097-07.png 2293 | m04-113-07.png 2294 | d04-021-00.png 2295 | d03-117-07.png 2296 | m06-106-00.png 2297 | p02-109-08.png 2298 | d06-104-00.png 2299 | d04-021-05.png 2300 | d04-058-05.png 2301 | f07-088b-03.png 2302 | n04-075-06.png 2303 | m04-107-01.png 2304 | n01-000-00.png 2305 | m02-109-05.png 2306 | n02-104-04.png 2307 | d03-117-08.png 2308 | p03-040-02.png 2309 | f07-000b-03.png 2310 | f07-088a-09.png 2311 | p02-150-04.png 2312 | f04-079-02.png 2313 | f07-076a-03.png 2314 | m02-087-07.png 2315 | f07-032a-01.png 2316 | d05-008-00.png 2317 | d04-101-03.png 2318 | m02-066-00.png 2319 | m02-048-07.png 2320 | e06-070-08.png 2321 | m02-087-04.png 2322 | g01-070-09.png 2323 | g03-052-07.png 2324 | p02-008-09.png 2325 | d06-046-00.png 2326 | m01-131-03.png 2327 | m06-076-02.png 2328 | p03-189-02.png 2329 | m01-084-05.png 2330 | m06-042-00.png 2331 | d04-047-00.png 2332 | n03-097-08.png 2333 | p02-150-03.png 2334 | n03-097-03.png 2335 | p06-058-08.png 2336 | f04-074-00.png 2337 | m03-033-06.png 2338 | f07-000b-02.png 2339 | m02-112-02.png 2340 | f07-046a-04.png 2341 | n03-066-00.png 2342 | p03-181-09.png 2343 | c04-110-00.png 2344 | g01-074-06.png 2345 | m02-066-01.png 2346 | n06-119-06.png 2347 | m06-042-04.png 2348 | g03-032-06.png 2349 | n03-066-02.png 2350 | f07-000-05.png 2351 | g03-000-04.png 2352 | m06-106-04.png 2353 | n04-000-01.png 2354 | p03-029-04.png 2355 | n04-163-01.png 2356 | n06-128-06.png 2357 | m03-013-00.png 2358 | m01-079-02.png 2359 | n04-100-02.png 2360 | p02-090-00.png 2361 | d06-072-07.png 2362 | f07-016-00.png 2363 | p06-088-04.png 2364 | e06-030-09.png 2365 | m04-138-07.png 2366 | p02-081-09.png 2367 | d04-086-05.png 2368 | g01-012-02.png 2369 | c04-144-05.png 2370 | d06-096-03.png 2371 | g03-004-02.png 2372 | p03-189-01.png 2373 | m01-049-08.png 2374 | n01-004-05.png 2375 | f07-084b-04.png 2376 | p06-047-01.png 2377 | m06-031-06.png 2378 | d06-027-06.png 2379 | f04-035-04.png 2380 | m06-067-04.png 2381 | d05-030-03.png 2382 | c04-165-08.png 2383 | d04-012-05.png 2384 | d07-102-03.png 2385 | f07-002-08.png 2386 | m04-043-00.png 2387 | n02-049-01.png 2388 | f07-032a-03.png 2389 | d06-008-02.png 2390 | m01-084-04.png 2391 | c04-150-06.png 2392 | n03-038-00.png 2393 | m03-118-02.png 2394 | p01-155-03.png 2395 | f07-042a-01.png 2396 | m02-069-07.png 2397 | p02-115-01.png 2398 | p02-139-01.png 2399 | p06-096-06.png 2400 | g04-043-00.png 2401 | f07-009-00.png 2402 | n02-154-01.png 2403 | m02-080-05.png 2404 | d06-100-02.png 2405 | m02-072-02.png 2406 | p02-144-04.png 2407 | p02-008-10.png 2408 | p03-163-06.png 2409 | g03-043-05.png 2410 | f07-042a-02.png 2411 | d05-021-02.png 2412 | m01-121-01.png 2413 | n04-048-01.png 2414 | n04-107-02.png 2415 | m04-093-09.png 2416 | n04-209-03.png 2417 | g01-043-02.png 2418 | e06-030-01.png 2419 | m04-100-07.png 2420 | g01-045-03.png 2421 | n02-154-04.png 2422 | d06-063-08.png 2423 | g01-025-06.png 2424 | n03-113-05.png 2425 | p02-139-00.png 2426 | m01-095-02.png 2427 | d04-058-01.png 2428 | p06-058-00.png 2429 | n02-028-05.png 2430 | n04-163-06.png 2431 | f07-000-03.png 2432 | p03-163-03.png 2433 | d04-066-05.png 2434 | m02-072-04.png 2435 | g04-022-02.png 2436 | f04-074-03.png 2437 | n03-066-05.png 2438 | d04-012-00.png 2439 | f07-101b-02.png 2440 | m06-067-03.png 2441 | n04-060-04.png 2442 | n06-092-05.png 2443 | p02-090-05.png 2444 | m01-049-06.png 2445 | d06-107-10.png 2446 | e06-026-06.png 2447 | m06-098-03.png 2448 | d01-104-02.png 2449 | n02-114-07.png 2450 | d07-089-00.png 2451 | p02-109-07.png 2452 | f07-028a-05.png 2453 | n06-092-04.png 2454 | m02-087-05.png 2455 | d01-104-00.png 2456 | f07-092b-02.png 2457 | m04-093-07.png 2458 | n04-100-05.png 2459 | f07-092b-06.png 2460 | n02-037-05.png 2461 | n02-114-05.png 2462 | f07-076a-08.png 2463 | g01-037-07.png 2464 | n04-209-00.png 2465 | d06-008-06.png 2466 | p02-139-04.png 2467 | g01-074-01.png 2468 | d07-093-02.png 2469 | m04-078-04.png 2470 | n02-028-04.png 2471 | n06-082-05.png 2472 | p03-047-00.png 2473 | d06-003-00.png 2474 | f07-024b-06.png 2475 | f04-061-04.png 2476 | p03-163-02.png 2477 | d04-028-02.png 2478 | m02-055-07.png 2479 | f04-057-02.png 2480 | d06-113-03.png 2481 | n03-103-02.png 2482 | n04-107-00.png 2483 | e06-070-05.png 2484 | n04-100-01.png 2485 | d04-111-04.png 2486 | d04-028-06.png 2487 | n04-009-01.png 2488 | e06-000-00.png 2489 | g01-012-00.png 2490 | p02-105-03.png 2491 | f07-000-02.png 2492 | n02-054-00.png 2493 | n02-004-03.png 2494 | p01-168-07.png 2495 | m06-031-02.png 2496 | d06-008-00.png 2497 | d06-056-02.png 2498 | m01-125-01.png 2499 | n01-004-06.png 2500 | p03-012-06.png 2501 | f07-016-03.png 2502 | f07-042a-04.png 2503 | m03-020-04.png 2504 | g03-043-09.png 2505 | n01-031-03.png 2506 | d04-089-03.png 2507 | n04-068-02.png 2508 | m03-114-05.png 2509 | m04-231-01.png 2510 | d06-096-04.png 2511 | p03-181-01.png 2512 | f04-032-02.png 2513 | n04-052-08.png 2514 | f07-021b-07.png 2515 | d01-052-00.png 2516 | d05-021-04.png 2517 | m04-072-01.png 2518 | n04-000-05.png 2519 | m01-060-02.png 2520 | f07-013-04.png 2521 | p06-096-01.png 2522 | f07-069-03.png 2523 | m04-078-03.png 2524 | n02-114-00.png 2525 | f04-043-03.png 2526 | g01-074-05.png 2527 | m06-091-01.png 2528 | p06-069-10.png 2529 | p03-040-05.png 2530 | c04-144-07.png 2531 | m03-006-01.png 2532 | p01-155-02.png 2533 | m03-013-04.png 2534 | g04-048-01.png 2535 | m01-136-01.png 2536 | f07-096-00.png 2537 | g01-027-06.png 2538 | m01-060-04.png 2539 | p01-168-01.png 2540 | p02-135-05.png 2541 | e06-049-01.png 2542 | p02-000-05.png 2543 | m04-123-10.png 2544 | m04-107-00.png 2545 | d04-037-04.png 2546 | d05-013-01.png 2547 | d06-020-04.png 2548 | m02-109-04.png 2549 | n02-004-00.png 2550 | n02-009-00.png 2551 | c04-144-06.png 2552 | p06-042-04.png 2553 | p01-147-08.png 2554 | f07-092b-01.png 2555 | f07-000-04.png 2556 | e06-010-07.png 2557 | d04-047-03.png 2558 | f04-071-06.png 2559 | d04-032-05.png 2560 | n02-114-04.png 2561 | f07-073-09.png 2562 | f04-035-02.png 2563 | m02-069-03.png 2564 | m04-107-07.png 2565 | p03-033-00.png 2566 | p02-090-01.png 2567 | m04-138-06.png 2568 | m04-093-04.png 2569 | g03-043-00.png 2570 | d04-032-09.png 2571 | g03-043-07.png 2572 | n06-082-06.png 2573 | d05-040-01.png 2574 | g01-088-00.png 2575 | n06-119-01.png 2576 | d07-082-08.png 2577 | m02-048-03.png 2578 | m02-095-07.png 2579 | f07-021b-04.png 2580 | g03-032-00.png 2581 | m03-114-03.png 2582 | d06-072-03.png 2583 | d06-107-09.png 2584 | d07-102-05.png 2585 | g04-052-02.png 2586 | m01-079-01.png 2587 | f04-071-08.png 2588 | d06-086-03.png 2589 | f04-032-09.png 2590 | g01-004-04.png 2591 | p02-150-05.png 2592 | g03-000-07.png 2593 | n02-104-02.png 2594 | r03-053-00.png 2595 | g03-049-02.png 2596 | g03-043-01.png 2597 | m03-114-09.png 2598 | g01-043-06.png 2599 | g04-052-00.png 2600 | m06-056-03.png 2601 | n01-020-08.png 2602 | n06-133-02.png 2603 | p02-135-03.png 2604 | f04-083-07.png 2605 | d01-049-04.png 2606 | m02-109-08.png 2607 | m02-087-01.png 2608 | p01-155-09.png 2609 | f07-024b-02.png 2610 | m02-048-01.png 2611 | d06-067-06.png 2612 | m03-114-00.png 2613 | n02-127-00.png 2614 | d06-037-06.png 2615 | n04-202-05.png 2616 | n06-092-08.png 2617 | d04-096-03.png 2618 | n04-084-02.png 2619 | e06-030-08.png 2620 | p03-040-06.png 2621 | d01-049-00.png 2622 | m03-118-01.png 2623 | m02-069-02.png 2624 | d04-028-03.png 2625 | d06-003-04.png 2626 | d07-089-08.png 2627 | f07-092a-00.png 2628 | m04-138-02.png 2629 | f07-019b-00.png 2630 | m04-093-06.png 2631 | d01-118-01.png 2632 | d04-131-06.png 2633 | d04-111-01.png 2634 | f07-028a-03.png 2635 | d04-096-04.png 2636 | m03-020-05.png 2637 | f07-088a-00.png 2638 | f07-092a-01.png 2639 | m06-083-05.png 2640 | f07-046a-00.png 2641 | g01-037-09.png 2642 | n01-052-03.png 2643 | f07-084a-07.png 2644 | d04-086-01.png 2645 | d06-067-04.png 2646 | d06-096-08.png 2647 | m01-079-05.png 2648 | f07-084a-02.png 2649 | p03-029-05.png 2650 | d01-052-04.png 2651 | n02-062-03.png 2652 | d01-085-06.png 2653 | e06-070-04.png 2654 | p02-022-00.png 2655 | m04-246-05.png 2656 | e06-030-10.png 2657 | n01-009-04.png 2658 | n01-031-02.png 2659 | n03-097-02.png 2660 | e06-003-05.png 2661 | f04-057-08.png 2662 | c04-170-01.png 2663 | m01-049-03.png 2664 | g01-067-07.png 2665 | e06-021-06.png 2666 | f07-032a-09.png 2667 | m04-246-03.png 2668 | n04-218-07.png 2669 | d07-089-05.png 2670 | f07-019a-06.png 2671 | d01-098-02.png 2672 | m06-106-09.png 2673 | n04-048-00.png 2674 | d04-096-00.png 2675 | f07-076a-07.png 2676 | e06-049-00.png 2677 | d04-062-01.png 2678 | f07-013-10.png 2679 | d06-104-05.png 2680 | d05-030-00.png 2681 | e06-030-03.png 2682 | f04-057-01.png 2683 | p03-027-06.png 2684 | p06-047-05.png 2685 | n04-218-02.png 2686 | p02-139-03.png 2687 | p03-047-09.png 2688 | n06-133-03.png 2689 | g03-000-03.png 2690 | f07-092a-08.png 2691 | m03-033-03.png 2692 | n06-082-03.png 2693 | m01-149-02.png 2694 | d06-067-02.png 2695 | d04-125-04.png 2696 | p03-027-04.png 2697 | e06-053-04.png 2698 | e06-070-07.png 2699 | d04-062-00.png 2700 | d04-053-10.png 2701 | m01-136-05.png 2702 | g01-019-03.png 2703 | p06-104-07.png 2704 | d07-089-09.png 2705 | n02-151-08.png 2706 | f04-083-04.png 2707 | d04-096-05.png 2708 | d06-063-09.png 2709 | m04-107-03.png 2710 | p02-022-06.png 2711 | g01-067-02.png 2712 | d06-020-08.png 2713 | d04-096-02.png 2714 | f04-032-04.png 2715 | c04-134-04.png 2716 | m01-095-01.png 2717 | f04-053-03.png 2718 | p02-115-06.png 2719 | g01-019-09.png 2720 | m04-238-01.png 2721 | p02-115-07.png 2722 | d04-032-10.png 2723 | n03-064-05.png 2724 | d07-100-09.png 2725 | f07-021b-03.png 2726 | f07-009-02.png 2727 | g02-065-08.png 2728 | p03-173-04.png 2729 | d06-060-01.png 2730 | d05-013-06.png 2731 | p01-155-07.png 2732 | p03-163-04.png 2733 | p02-144-01.png 2734 | d06-086-04.png 2735 | m01-136-10.png 2736 | n06-074-02.png 2737 | p02-069-03.png 2738 | m02-112-00.png 2739 | g03-064-04.png 2740 | f07-028a-00.png 2741 | m02-112-04.png 2742 | n03-103-01.png 2743 | p06-052-03.png 2744 | f04-079-00.png 2745 | m02-087-03.png 2746 | n04-202-04.png 2747 | d04-037-06.png 2748 | m01-049-02.png 2749 | d06-076-05.png 2750 | m04-113-08.png 2751 | e06-026-07.png 2752 | g03-000-00.png 2753 | m01-095-06.png 2754 | n06-133-08.png 2755 | g01-034-05.png 2756 | m06-048-04.png 2757 | n01-031-01.png 2758 | d07-085-05.png 2759 | n02-104-00.png 2760 | g01-031-07.png 2761 | g03-040-06.png 2762 | m04-113-06.png 2763 | m03-033-01.png 2764 | n02-062-04.png 2765 | d01-104-08.png 2766 | p03-080-04.png 2767 | p06-096-09.png 2768 | f07-019b-04.png 2769 | f07-024b-08.png 2770 | m06-091-02.png 2771 | r03-053-03.png 2772 | d04-016-07.png 2773 | n04-163-08.png 2774 | m01-125-05.png 2775 | n01-036-03.png 2776 | m04-081-07.png 2777 | d07-089-01.png 2778 | f07-088a-02.png 2779 | f07-002-02.png 2780 | g02-073-01.png 2781 | m01-084-00.png 2782 | p06-042-06.png 2783 | f04-087-01.png 2784 | g07-000b-08.png 2785 | g03-004-04.png 2786 | f07-002-07.png 2787 | f04-071-09.png 2788 | d07-082-04.png 2789 | n02-033-00.png 2790 | g03-052-02.png 2791 | d04-066-01.png 2792 | n03-038-02.png 2793 | n06-133-00.png 2794 | e06-033-06.png 2795 | n04-048-05.png 2796 | g01-039-01.png 2797 | g01-043-03.png 2798 | n04-209-06.png 2799 | p01-168-02.png 2800 | m04-131-05.png 2801 | n01-000-01.png 2802 | p02-008-07.png 2803 | e06-046-02.png 2804 | f07-046a-09.png 2805 | g03-043-03.png 2806 | p06-052-05.png 2807 | f04-043-01.png 2808 | n04-048-08.png 2809 | f07-042a-03.png 2810 | p02-135-08.png 2811 | n03-106-04.png 2812 | p06-042-02.png 2813 | d06-076-00.png 2814 | f07-084b-01.png 2815 | f07-039a-04.png 2816 | m04-081-03.png 2817 | n01-057-09.png 2818 | g01-039-04.png 2819 | p01-147-07.png 2820 | p06-042-01.png 2821 | m02-055-02.png 2822 | c04-165-03.png 2823 | n06-123-10.png 2824 | n04-139-02.png 2825 | m02-055-06.png 2826 | n02-028-03.png 2827 | p06-042-10.png 2828 | d04-028-01.png 2829 | m03-114-02.png 2830 | p06-104-06.png 2831 | f07-046a-06.png 2832 | n02-033-06.png 2833 | e06-015-05.png 2834 | f07-009-03.png 2835 | d06-003-05.png 2836 | f07-092a-04.png 2837 | g01-067-05.png 2838 | f07-092a-02.png 2839 | g07-079a-06.png 2840 | p02-150-07.png 2841 | f07-076a-10.png 2842 | m06-091-04.png 2843 | c04-116-00.png 2844 | f07-021b-09.png 2845 | m04-238-02.png 2846 | m02-055-03.png 2847 | d06-011-09.png 2848 | f07-088a-08.png 2849 | g01-019-05.png 2850 | m06-048-02.png 2851 | f07-002-04.png 2852 | n06-123-03.png 2853 | f07-076a-00.png 2854 | g04-052-04.png 2855 | n04-048-02.png 2856 | f07-019a-04.png 2857 | n02-120-00.png 2858 | f07-088a-05.png 2859 | p02-115-08.png 2860 | e06-030-00.png 2861 | m03-110-05.png 2862 | d04-021-03.png 2863 | n02-120-07.png 2864 | p02-000-03.png 2865 | p03-181-07.png 2866 | n06-128-02.png 2867 | n06-119-00.png 2868 | p06-052-06.png 2869 | f07-000b-00.png 2870 | p02-076-03.png 2871 | d06-111-06.png 2872 | f04-068-05.png 2873 | n06-082-02.png 2874 | m04-231-06.png 2875 | m01-060-05.png 2876 | m01-060-03.png 2877 | p06-030-01.png 2878 | g03-052-09.png 2879 | d07-085-04.png 2880 | n04-130-03.png 2881 | n02-028-08.png 2882 | f07-019b-03.png 2883 | d01-123-04.png 2884 | n03-120-06.png 2885 | g04-068-06.png 2886 | m03-006-03.png 2887 | g04-072-06.png 2888 | g07-079a-00.png 2889 | e06-046-04.png 2890 | g01-016-02.png 2891 | d06-056-05.png 2892 | n04-092-06.png 2893 | n04-075-05.png 2894 | f04-079-05.png 2895 | m02-072-06.png 2896 | f07-019b-02.png 2897 | n01-036-04.png 2898 | m01-125-00.png 2899 | n04-060-02.png 2900 | n06-128-04.png 2901 | c04-134-02.png 2902 | n04-114-03.png 2903 | f04-074-09.png 2904 | m06-048-07.png 2905 | p03-181-08.png 2906 | p06-096-10.png 2907 | d06-037-01.png 2908 | e06-000-04.png 2909 | f04-074-08.png 2910 | n04-218-03.png 2911 | d04-125-02.png 2912 | n03-106-11.png 2913 | d06-113-04.png 2914 | m04-043-02.png 2915 | d01-104-01.png 2916 | -------------------------------------------------------------------------------- /iam/train.gc: -------------------------------------------------------------------------------- 1 | a01-000u.png 2 | a01-000x.png 3 | a01-003.png 4 | a01-003u.png 5 | a01-003x.png 6 | a01-007.png 7 | a01-007u.png 8 | a01-007x.png 9 | a01-011.png 10 | a01-011u.png 11 | a01-011x.png 12 | a01-014.png 13 | a01-014u.png 14 | a01-014x.png 15 | a01-020.png 16 | a01-020u.png 17 | a01-020x.png 18 | a01-026.png 19 | a01-026u.png 20 | a01-026x.png 21 | a01-030.png 22 | a01-030u.png 23 | a01-030x.png 24 | a01-038.png 25 | a01-038x.png 26 | a01-043.png 27 | a01-043u.png 28 | a01-043x.png 29 | a01-049.png 30 | a01-049u.png 31 | a01-049x.png 32 | a01-053.png 33 | a01-053u.png 34 | a01-053x.png 35 | a01-058.png 36 | a01-058u.png 37 | a01-058x.png 38 | a01-063.png 39 | a01-063u.png 40 | a01-063x.png 41 | a01-068u.png 42 | a01-072u.png 43 | a01-072x.png 44 | a01-077.png 45 | a01-077u.png 46 | a01-082u.png 47 | a01-087.png 48 | a01-087u.png 49 | a01-091.png 50 | a01-091u.png 51 | a01-096u.png 52 | a01-102.png 53 | a01-102u.png 54 | a01-107.png 55 | a01-107u.png 56 | a01-113.png 57 | a01-113u.png 58 | a01-117.png 59 | a01-117u.png 60 | a01-122.png 61 | a01-122u.png 62 | a01-128.png 63 | a01-128u.png 64 | a01-132.png 65 | a01-132u.png 66 | a01-132x.png 67 | a02-000.png 68 | a02-004.png 69 | a02-008.png 70 | a02-012.png 71 | a02-017.png 72 | a02-020.png 73 | a02-024.png 74 | a02-027.png 75 | a02-032.png 76 | a02-037.png 77 | a02-042.png 78 | a02-046.png 79 | a02-050.png 80 | a02-053.png 81 | a02-057.png 82 | a02-062.png 83 | a02-067.png 84 | a02-072.png 85 | a02-078.png 86 | a02-082.png 87 | a02-086.png 88 | a02-090.png 89 | a02-093.png 90 | a02-098.png 91 | a02-102.png 92 | a02-106.png 93 | a02-111.png 94 | a02-116.png 95 | a02-120.png 96 | a02-124.png 97 | a03-006.png 98 | a03-009.png 99 | a03-011.png 100 | a03-014.png 101 | a03-017.png 102 | a03-020.png 103 | a03-023.png 104 | a03-027.png 105 | a03-030.png 106 | a03-034.png 107 | a03-037.png 108 | a03-040.png 109 | a03-043.png 110 | a03-047.png 111 | a03-050.png 112 | a03-054.png 113 | a03-059.png 114 | a03-063.png 115 | a03-066.png 116 | a03-071.png 117 | a03-073.png 118 | a03-080.png 119 | a03-089.png 120 | a04-000.png 121 | a04-003.png 122 | a04-006.png 123 | a04-010.png 124 | a04-015.png 125 | a04-019.png 126 | a04-023.png 127 | a04-027.png 128 | a04-031.png 129 | a04-035.png 130 | a04-039.png 131 | a04-043.png 132 | a04-047.png 133 | a04-050.png 134 | a04-054.png 135 | a04-059.png 136 | a04-066.png 137 | a04-069.png 138 | a04-072.png 139 | a04-081.png 140 | a04-085.png 141 | a04-089.png 142 | a04-092.png 143 | a04-096.png 144 | a04-099.png 145 | a04-103.png 146 | a05-000.png 147 | a05-004.png 148 | a05-009.png 149 | a05-013.png 150 | a05-017.png 151 | a05-022.png 152 | a05-025.png 153 | a05-029.png 154 | a05-039.png 155 | a05-044.png 156 | a05-048.png 157 | a05-053.png 158 | a05-058.png 159 | a05-062.png 160 | a05-069.png 161 | a05-073.png 162 | a05-080.png 163 | a05-084.png 164 | a05-089.png 165 | a05-094.png 166 | a05-099.png 167 | a05-104.png 168 | a05-108.png 169 | a05-113.png 170 | a05-116.png 171 | a05-121.png 172 | a05-125.png 173 | a06-000.png 174 | a06-004.png 175 | a06-008.png 176 | a06-014.png 177 | a06-020.png 178 | a06-025.png 179 | a06-036.png 180 | a06-039.png 181 | a06-044.png 182 | a06-051.png 183 | a06-057.png 184 | a06-064.png 185 | a06-070.png 186 | a06-075.png 187 | a06-090.png 188 | a06-095.png 189 | a06-100.png 190 | a06-110.png 191 | a06-114.png 192 | a06-119.png 193 | a06-124.png 194 | a06-128.png 195 | a06-134.png 196 | a06-141.png 197 | a06-147.png 198 | a06-152.png 199 | a06-157.png 200 | b01-000.png 201 | b01-004.png 202 | b01-009.png 203 | b01-014.png 204 | b01-018.png 205 | b01-023.png 206 | b01-027.png 207 | b01-033.png 208 | b01-038.png 209 | b01-044.png 210 | b01-049.png 211 | b01-053.png 212 | b01-057.png 213 | b01-062.png 214 | b01-073.png 215 | b01-079.png 216 | b01-084.png 217 | b01-089.png 218 | b01-094.png 219 | b01-113.png 220 | b01-118.png 221 | b01-122.png 222 | b01-127.png 223 | b01-132.png 224 | b01-136.png 225 | b02-013.png 226 | b02-035.png 227 | b02-045.png 228 | b02-097.png 229 | b02-102.png 230 | b02-105.png 231 | b03-025.png 232 | b03-087.png 233 | b03-092.png 234 | b03-098.png 235 | b03-104.png 236 | b03-109.png 237 | b03-114.png 238 | b04-000.png 239 | b04-004.png 240 | b04-010.png 241 | b04-020.png 242 | b04-026.png 243 | b04-034.png 244 | b04-040.png 245 | b04-047.png 246 | b04-054.png 247 | b04-060.png 248 | b04-066.png 249 | b04-075.png 250 | b04-081.png 251 | b04-089.png 252 | b04-096.png 253 | b04-103.png 254 | b04-107.png 255 | b04-116.png 256 | b04-121.png 257 | b04-128.png 258 | b04-134.png 259 | b04-140.png 260 | b04-147.png 261 | b04-154.png 262 | b04-162.png 263 | b04-169.png 264 | b04-175.png 265 | b04-181.png 266 | b04-187.png 267 | b04-195.png 268 | b04-202.png 269 | b04-208.png 270 | b05-017.png 271 | b05-032.png 272 | b05-038.png 273 | b05-042.png 274 | b05-045.png 275 | b05-050.png 276 | b05-055.png 277 | b05-058.png 278 | b05-062.png 279 | b05-067.png 280 | b05-071.png 281 | b05-074.png 282 | b05-079.png 283 | b05-083.png 284 | b05-088.png 285 | b05-098.png 286 | b06-000.png 287 | b06-004.png 288 | b06-008.png 289 | b06-012.png 290 | b06-015.png 291 | b06-019.png 292 | b06-023.png 293 | b06-027.png 294 | b06-032.png 295 | b06-036.png 296 | b06-042.png 297 | b06-045.png 298 | b06-049.png 299 | b06-053.png 300 | b06-056.png 301 | b06-059.png 302 | b06-064.png 303 | b06-068.png 304 | b06-071.png 305 | b06-075.png 306 | b06-079.png 307 | b06-082.png 308 | b06-087.png 309 | b06-090.png 310 | b06-093.png 311 | b06-097.png 312 | b06-100.png 313 | b06-110.png 314 | c01-009.png 315 | c01-014.png 316 | c01-066.png 317 | c02-000.png 318 | c02-003.png 319 | c02-007.png 320 | c02-012.png 321 | c02-017.png 322 | c02-022.png 323 | c02-026.png 324 | c02-030.png 325 | c02-035.png 326 | c02-049.png 327 | c02-056.png 328 | c02-059.png 329 | c02-078.png 330 | c02-082.png 331 | c02-089.png 332 | c03-000a.png 333 | c03-000b.png 334 | c03-000c.png 335 | c03-000d.png 336 | c03-000e.png 337 | c03-000f.png 338 | c03-003a.png 339 | c03-003b.png 340 | c03-003c.png 341 | c03-003d.png 342 | c03-003e.png 343 | c03-003f.png 344 | c03-007.png 345 | c03-007a.png 346 | c03-007b.png 347 | c03-007c.png 348 | c03-007d.png 349 | c03-007e.png 350 | c03-007f.png 351 | c03-016a.png 352 | c03-016b.png 353 | c03-016c.png 354 | c03-016d.png 355 | c03-016e.png 356 | c03-021a.png 357 | c03-021b.png 358 | c03-021c.png 359 | c03-021d.png 360 | c03-021e.png 361 | c03-021f.png 362 | c03-081a.png 363 | c03-081b.png 364 | c03-081c.png 365 | c03-081d.png 366 | c03-081e.png 367 | c03-081f.png 368 | c03-084a.png 369 | c03-084b.png 370 | c03-084c.png 371 | c03-084d.png 372 | c03-084e.png 373 | c03-084f.png 374 | c03-087a.png 375 | c03-087b.png 376 | c03-087c.png 377 | c03-087d.png 378 | c03-087e.png 379 | c03-087f.png 380 | c03-094a.png 381 | c03-094b.png 382 | c03-094c.png 383 | c03-094d.png 384 | c03-094e.png 385 | c03-094f.png 386 | c03-096a.png 387 | c03-096b.png 388 | c03-096c.png 389 | c03-096d.png 390 | c03-096e.png 391 | c03-096f.png 392 | c04-000.png 393 | c04-004.png 394 | c04-008.png 395 | c04-013.png 396 | c04-017.png 397 | c04-023.png 398 | c04-028.png 399 | c04-035.png 400 | c04-039.png 401 | c04-044.png 402 | c04-050.png 403 | c04-056.png 404 | c04-061.png 405 | c04-066.png 406 | c04-075.png 407 | c04-080.png 408 | c04-089.png 409 | c04-098.png 410 | c04-105.png 411 | c04-122.png 412 | c04-128.png 413 | c06-000.png 414 | c06-005.png 415 | c06-014.png 416 | c06-020.png 417 | c06-027.png 418 | c06-031.png 419 | c06-039.png 420 | c06-043.png 421 | c06-047.png 422 | c06-052.png 423 | c06-058.png 424 | c06-076.png 425 | c06-080.png 426 | c06-087.png 427 | c06-091.png 428 | c06-095.png 429 | c06-100.png 430 | c06-103.png 431 | c06-106.png 432 | c06-111.png 433 | c06-116.png 434 | c06-128.png 435 | c06-138.png 436 | e01-022.png 437 | e01-025.png 438 | e01-029.png 439 | e01-032.png 440 | e01-035.png 441 | e01-050.png 442 | e01-059.png 443 | e01-062.png 444 | e01-081.png 445 | e01-086.png 446 | e01-092.png 447 | e01-102.png 448 | e01-107.png 449 | e01-113.png 450 | e01-119.png 451 | e02-000.png 452 | e02-014.png 453 | e02-018.png 454 | e02-021.png 455 | e02-025.png 456 | e02-074.png 457 | e02-082.png 458 | e02-086.png 459 | e02-091.png 460 | e02-094.png 461 | e02-100.png 462 | e02-117.png 463 | e04-000.png 464 | e04-004.png 465 | e04-008.png 466 | e04-011.png 467 | e04-015.png 468 | e04-019.png 469 | e04-022.png 470 | e04-026.png 471 | e04-030.png 472 | e04-034.png 473 | e04-038.png 474 | e04-043.png 475 | e04-052.png 476 | e04-058.png 477 | e04-062.png 478 | e04-068.png 479 | e04-079.png 480 | e04-083.png 481 | e04-086.png 482 | e04-091.png 483 | e04-095.png 484 | e04-099.png 485 | e04-103.png 486 | e04-109.png 487 | e04-114.png 488 | e04-119.png 489 | e04-124.png 490 | e04-127.png 491 | e04-132.png 492 | e07-000.png 493 | e07-003.png 494 | e07-007.png 495 | e07-012.png 496 | e07-061.png 497 | e07-066.png 498 | e07-072.png 499 | e07-076.png 500 | e07-079.png 501 | e07-083.png 502 | e07-086.png 503 | e07-090.png 504 | e07-094.png 505 | e07-098.png 506 | e07-101.png 507 | e07-105.png 508 | e07-108.png 509 | e07-112.png 510 | f01-053.png 511 | f01-058.png 512 | f01-066.png 513 | f01-070.png 514 | f01-075.png 515 | f01-081.png 516 | f01-085.png 517 | f01-135.png 518 | f01-139.png 519 | f01-143.png 520 | f01-147.png 521 | f02-000.png 522 | f02-003.png 523 | f02-017.png 524 | f02-020.png 525 | f02-030.png 526 | f02-033.png 527 | f02-036.png 528 | f02-038.png 529 | f02-040.png 530 | f02-044.png 531 | f02-076.png 532 | f03-169.png 533 | f03-174.png 534 | f03-182.png 535 | f03-191.png 536 | f04-004.png 537 | f04-007.png 538 | f04-011.png 539 | f04-016.png 540 | f04-020.png 541 | f04-024.png 542 | f04-028.png 543 | g01-000.png 544 | g04-003.png 545 | g04-007.png 546 | g04-011.png 547 | g04-014.png 548 | g04-017.png 549 | g04-026.png 550 | g04-032.png 551 | g04-077.png 552 | g04-081.png 553 | g04-088.png 554 | g04-092.png 555 | g04-095.png 556 | g04-098.png 557 | g04-101.png 558 | g04-104.png 559 | g04-108.png 560 | g05-087.png 561 | g05-094.png 562 | g05-098.png 563 | g06-011a.png 564 | g06-011b.png 565 | g06-011c.png 566 | g06-011e.png 567 | g06-011f.png 568 | g06-011g.png 569 | g06-011h.png 570 | g06-011i.png 571 | g06-011j.png 572 | g06-011k.png 573 | g06-011l.png 574 | g06-011m.png 575 | g06-018a.png 576 | g06-018b.png 577 | g06-018c.png 578 | g06-018d.png 579 | g06-018e.png 580 | g06-018f.png 581 | g06-018g.png 582 | g06-018h.png 583 | g06-018i.png 584 | g06-018j.png 585 | g06-018k.png 586 | g06-018l.png 587 | g06-018m.png 588 | g06-026a.png 589 | g06-026b.png 590 | g06-026c.png 591 | g06-026d.png 592 | g06-026e.png 593 | g06-026f.png 594 | g06-026g.png 595 | g06-026h.png 596 | g06-026i.png 597 | g06-026j.png 598 | g06-026k.png 599 | g06-026l.png 600 | g06-026m.png 601 | g06-031a.png 602 | g06-031b.png 603 | g06-031c.png 604 | g06-031d.png 605 | g06-031e.png 606 | g06-031f.png 607 | g06-031g.png 608 | g06-031h.png 609 | g06-031i.png 610 | g06-031j.png 611 | g06-031k.png 612 | g06-031l.png 613 | g06-031m.png 614 | g06-037b.png 615 | g06-037c.png 616 | g06-037d.png 617 | g06-037e.png 618 | g06-037f.png 619 | g06-037g.png 620 | g06-037h.png 621 | g06-037i.png 622 | g06-037j.png 623 | g06-037k.png 624 | g06-037l.png 625 | g06-037m.png 626 | g06-042a.png 627 | g06-042b.png 628 | g06-042c.png 629 | g06-042d.png 630 | g06-042e.png 631 | g06-042f.png 632 | g06-042g.png 633 | g06-042h.png 634 | g06-042i.png 635 | g06-042j.png 636 | g06-042k.png 637 | g06-042l.png 638 | g06-042m.png 639 | g06-045a.png 640 | g06-045b.png 641 | g06-045c.png 642 | g06-045d.png 643 | g06-045e.png 644 | g06-045f.png 645 | g06-045g.png 646 | g06-045h.png 647 | g06-045i.png 648 | g06-045j.png 649 | g06-045k.png 650 | g06-045l.png 651 | g06-045m.png 652 | g06-047a.png 653 | g06-047b.png 654 | g06-047c.png 655 | g06-047d.png 656 | g06-047e.png 657 | g06-047f.png 658 | g06-047g.png 659 | g06-047h.png 660 | g06-047i.png 661 | g06-047j.png 662 | g06-047k.png 663 | g06-047l.png 664 | g06-047m.png 665 | g06-050a.png 666 | g06-050b.png 667 | g06-050c.png 668 | g06-050d.png 669 | g06-050e.png 670 | g06-050f.png 671 | g06-050g.png 672 | g06-050h.png 673 | g06-050i.png 674 | g06-050j.png 675 | g06-050k.png 676 | g06-050l.png 677 | g06-050m.png 678 | h04-000.png 679 | h04-007.png 680 | h04-021.png 681 | h04-025.png 682 | h05-012.png 683 | k04-017.png 684 | k04-022.png 685 | n02-146.png 686 | p06-242.png 687 | p06-248.png 688 | r02-000.png 689 | r02-003.png 690 | r02-006.png 691 | r02-010.png 692 | r02-013.png 693 | r02-038.png 694 | r02-054.png 695 | r02-060.png 696 | r02-065.png 697 | r02-070.png 698 | r02-078.png 699 | r02-081.png 700 | r02-089.png 701 | r02-109.png 702 | r02-117.png 703 | r02-127.png 704 | r02-131.png 705 | r02-137.png 706 | r02-146.png 707 | r03-002.png 708 | r03-007.png 709 | r03-026.png 710 | r03-030.png 711 | r03-035.png 712 | r03-050.png 713 | r03-056.png 714 | r03-065.png 715 | r03-084.png 716 | r03-090.png 717 | r03-096.png 718 | r03-110.png 719 | r03-115.png 720 | r06-000.png 721 | r06-003.png 722 | r06-007.png 723 | r06-011.png 724 | r06-018.png 725 | r06-022.png 726 | r06-027.png 727 | r06-035.png 728 | r06-041.png 729 | r06-044.png 730 | r06-049.png 731 | r06-053.png 732 | r06-057.png 733 | r06-062.png 734 | r06-066.png 735 | r06-070.png 736 | r06-076.png 737 | r06-090.png 738 | r06-097.png 739 | r06-103.png 740 | r06-106.png 741 | r06-111.png 742 | r06-115.png 743 | r06-121.png 744 | r06-126.png 745 | r06-130.png 746 | r06-137.png 747 | r06-143.png 748 | -------------------------------------------------------------------------------- /iam/val.gc: -------------------------------------------------------------------------------- 1 | c04-156.png 2 | c04-160.png 3 | c06-083.png 4 | d01-024.png 5 | d01-056.png 6 | d01-060.png 7 | d03-112.png 8 | d04-005.png 9 | d04-008.png 10 | d04-071.png 11 | d04-075.png 12 | d04-081.png 13 | d04-117.png 14 | d04-121.png 15 | d06-000.png 16 | d06-015.png 17 | d06-030.png 18 | d06-050.png 19 | d06-082.png 20 | d06-091.png 21 | e01-014.png 22 | e01-018.png 23 | e06-006.png 24 | e06-037.png 25 | e06-041.png 26 | f04-046.png 27 | f04-049.png 28 | f04-093.png 29 | f04-096.png 30 | f04-100.png 31 | f07-028b.png 32 | f07-032b.png 33 | f07-036.png 34 | f07-039b.png 35 | f07-042b.png 36 | f07-046b.png 37 | g01-083.png 38 | g03-016.png 39 | g03-058.png 40 | g04-036.png 41 | g04-039.png 42 | g04-055.png 43 | g04-060.png 44 | g04-063.png 45 | h01-004.png 46 | m01-090.png 47 | m01-115.png 48 | m01-160.png 49 | m02-052.png 50 | m02-075.png 51 | m02-083.png 52 | m02-090.png 53 | m02-102.png 54 | m02-106.png 55 | m03-062.png 56 | m03-095.png 57 | m04-000.png 58 | m04-007.png 59 | m04-012.png 60 | m04-019.png 61 | m04-024.png 62 | m04-145.png 63 | m04-152.png 64 | m04-164.png 65 | m04-180.png 66 | m04-190.png 67 | m04-200.png 68 | m04-209.png 69 | m04-216.png 70 | m04-222.png 71 | m04-251.png 72 | m06-019.png 73 | n02-000.png 74 | n02-016.png 75 | n02-082a.png 76 | n02-098.png 77 | n03-079.png 78 | n03-082.png 79 | n03-091.png 80 | n04-015.png 81 | n04-022.png 82 | n04-031.png 83 | n04-039.png 84 | n04-044.png 85 | n04-171.png 86 | n04-183.png 87 | n04-190.png 88 | n04-195.png 89 | n06-148.png 90 | n06-156.png 91 | n06-163.png 92 | n06-169.png 93 | n06-175.png 94 | n06-182.png 95 | n06-186.png 96 | n06-194.png 97 | n06-201.png 98 | p02-017.png 99 | p02-121.png 100 | p02-127.png 101 | p02-131.png 102 | p02-155.png 103 | p03-004.png 104 | p03-009.png 105 | p03-057.png 106 | p03-069.png 107 | p03-087.png 108 | p03-096.png 109 | p03-103.png 110 | p03-112.png 111 | p03-121.png 112 | p03-135.png 113 | p03-142.png 114 | p03-151.png 115 | p03-158.png 116 | p03-185.png 117 | -------------------------------------------------------------------------------- /iam/val.ln: -------------------------------------------------------------------------------- 1 | c04-156-06.png 2 | c04-156-04.png 3 | c04-156-00.png 4 | c04-156-03.png 5 | c04-156-01.png 6 | c04-156-05.png 7 | c04-156-02.png 8 | c04-160-07.png 9 | c04-160-06.png 10 | c04-160-05.png 11 | c04-160-03.png 12 | c04-160-08.png 13 | c04-160-09.png 14 | c04-160-00.png 15 | c04-160-02.png 16 | c04-160-01.png 17 | c04-160-04.png 18 | c06-083-06.png 19 | c06-083-02.png 20 | c06-083-00.png 21 | c06-083-01.png 22 | c06-083-03.png 23 | c06-083-07.png 24 | c06-083-05.png 25 | c06-083-04.png 26 | c06-083-08.png 27 | d01-024-05.png 28 | d01-024-04.png 29 | d01-024-00.png 30 | d01-024-07.png 31 | d01-024-02.png 32 | d01-024-08.png 33 | d01-024-01.png 34 | d01-024-06.png 35 | d01-024-03.png 36 | d01-056-00.png 37 | d01-056-03.png 38 | d01-056-02.png 39 | d01-056-07.png 40 | d01-056-09.png 41 | d01-056-06.png 42 | d01-056-08.png 43 | d01-056-04.png 44 | d01-056-05.png 45 | d01-056-01.png 46 | d01-060-09.png 47 | d01-060-08.png 48 | d01-060-00.png 49 | d01-060-03.png 50 | d01-060-01.png 51 | d01-060-06.png 52 | d01-060-07.png 53 | d01-060-05.png 54 | d01-060-02.png 55 | d01-060-04.png 56 | d03-112-06.png 57 | d03-112-03.png 58 | d03-112-04.png 59 | d03-112-07.png 60 | d03-112-01.png 61 | d03-112-02.png 62 | d03-112-05.png 63 | d03-112-00.png 64 | d03-112-08.png 65 | d04-005-01.png 66 | d04-005-00.png 67 | d04-005-02.png 68 | d04-005-05.png 69 | d04-005-06.png 70 | d04-005-07.png 71 | d04-005-03.png 72 | d04-005-04.png 73 | d04-008-05.png 74 | d04-008-03.png 75 | d04-008-02.png 76 | d04-008-04.png 77 | d04-008-01.png 78 | d04-008-00.png 79 | d04-071-06.png 80 | d04-071-04.png 81 | d04-071-03.png 82 | d04-071-00.png 83 | d04-071-01.png 84 | d04-071-02.png 85 | d04-071-07.png 86 | d04-071-05.png 87 | d04-075-04.png 88 | d04-075-09.png 89 | d04-075-03.png 90 | d04-075-07.png 91 | d04-075-02.png 92 | d04-075-00.png 93 | d04-075-06.png 94 | d04-075-05.png 95 | d04-075-01.png 96 | d04-075-08.png 97 | d04-081-01.png 98 | d04-081-00.png 99 | d04-081-08.png 100 | d04-081-03.png 101 | d04-081-06.png 102 | d04-081-04.png 103 | d04-081-05.png 104 | d04-081-02.png 105 | d04-081-07.png 106 | d04-117-00.png 107 | d04-117-05.png 108 | d04-117-03.png 109 | d04-117-04.png 110 | d04-117-06.png 111 | d04-117-01.png 112 | d04-117-07.png 113 | d04-117-02.png 114 | d04-121-03.png 115 | d04-121-06.png 116 | d04-121-05.png 117 | d04-121-00.png 118 | d04-121-02.png 119 | d04-121-04.png 120 | d04-121-01.png 121 | d06-000-07.png 122 | d06-000-00.png 123 | d06-000-03.png 124 | d06-000-04.png 125 | d06-000-09.png 126 | d06-000-02.png 127 | d06-000-08.png 128 | d06-000-01.png 129 | d06-000-06.png 130 | d06-000-05.png 131 | d06-015-03.png 132 | d06-015-00.png 133 | d06-015-01.png 134 | d06-015-05.png 135 | d06-015-02.png 136 | d06-015-04.png 137 | d06-030-03.png 138 | d06-030-04.png 139 | d06-030-01.png 140 | d06-030-00.png 141 | d06-030-02.png 142 | d06-030-05.png 143 | d06-050-03.png 144 | d06-050-00.png 145 | d06-050-06.png 146 | d06-050-05.png 147 | d06-050-02.png 148 | d06-050-01.png 149 | d06-050-04.png 150 | d06-082-02.png 151 | d06-082-01.png 152 | d06-082-00.png 153 | d06-082-04.png 154 | d06-082-05.png 155 | d06-082-03.png 156 | d06-091-08.png 157 | d06-091-00.png 158 | d06-091-03.png 159 | d06-091-05.png 160 | d06-091-07.png 161 | d06-091-01.png 162 | d06-091-04.png 163 | d06-091-02.png 164 | d06-091-10.png 165 | d06-091-06.png 166 | d06-091-09.png 167 | e01-014-04.png 168 | e01-014-00.png 169 | e01-014-05.png 170 | e01-014-06.png 171 | e01-014-02.png 172 | e01-014-01.png 173 | e01-014-03.png 174 | e01-018-04.png 175 | e01-018-02.png 176 | e01-018-07.png 177 | e01-018-00.png 178 | e01-018-05.png 179 | e01-018-01.png 180 | e01-018-08.png 181 | e01-018-06.png 182 | e01-018-03.png 183 | e06-006-04.png 184 | e06-006-07.png 185 | e06-006-01.png 186 | e06-006-08.png 187 | e06-006-09.png 188 | e06-006-03.png 189 | e06-006-06.png 190 | e06-006-10.png 191 | e06-006-02.png 192 | e06-006-05.png 193 | e06-006-00.png 194 | e06-037-08.png 195 | e06-037-02.png 196 | e06-037-06.png 197 | e06-037-00.png 198 | e06-037-09.png 199 | e06-037-04.png 200 | e06-037-05.png 201 | e06-037-10.png 202 | e06-037-03.png 203 | e06-037-07.png 204 | e06-037-01.png 205 | e06-041-00.png 206 | e06-041-02.png 207 | e06-041-04.png 208 | e06-041-05.png 209 | e06-041-06.png 210 | e06-041-01.png 211 | e06-041-07.png 212 | e06-041-08.png 213 | e06-041-03.png 214 | e06-041-09.png 215 | f04-046-03.png 216 | f04-046-05.png 217 | f04-046-02.png 218 | f04-046-01.png 219 | f04-046-04.png 220 | f04-046-00.png 221 | f04-049-05.png 222 | f04-049-03.png 223 | f04-049-04.png 224 | f04-049-02.png 225 | f04-049-00.png 226 | f04-049-01.png 227 | f04-049-06.png 228 | f04-093-03.png 229 | f04-093-06.png 230 | f04-093-05.png 231 | f04-093-08.png 232 | f04-093-09.png 233 | f04-093-04.png 234 | f04-093-02.png 235 | f04-093-00.png 236 | f04-093-07.png 237 | f04-093-01.png 238 | f04-096-08.png 239 | f04-096-07.png 240 | f04-096-09.png 241 | f04-096-10.png 242 | f04-096-05.png 243 | f04-096-04.png 244 | f04-096-03.png 245 | f04-096-01.png 246 | f04-096-00.png 247 | f04-096-06.png 248 | f04-096-02.png 249 | f04-100-03.png 250 | f04-100-00.png 251 | f04-100-10.png 252 | f04-100-02.png 253 | f04-100-08.png 254 | f04-100-01.png 255 | f04-100-04.png 256 | f04-100-06.png 257 | f04-100-07.png 258 | f04-100-05.png 259 | f04-100-09.png 260 | f07-028b-06.png 261 | f07-028b-00.png 262 | f07-028b-04.png 263 | f07-028b-05.png 264 | f07-028b-09.png 265 | f07-028b-01.png 266 | f07-028b-03.png 267 | f07-028b-10.png 268 | f07-028b-02.png 269 | f07-028b-07.png 270 | f07-028b-11.png 271 | f07-028b-08.png 272 | f07-032b-09.png 273 | f07-032b-04.png 274 | f07-032b-06.png 275 | f07-032b-08.png 276 | f07-032b-00.png 277 | f07-032b-05.png 278 | f07-032b-10.png 279 | f07-032b-01.png 280 | f07-032b-03.png 281 | f07-032b-11.png 282 | f07-032b-02.png 283 | f07-032b-07.png 284 | f07-036-06.png 285 | f07-036-08.png 286 | f07-036-01.png 287 | f07-036-07.png 288 | f07-036-02.png 289 | f07-036-03.png 290 | f07-036-00.png 291 | f07-036-04.png 292 | f07-036-05.png 293 | f07-039b-06.png 294 | f07-039b-08.png 295 | f07-039b-04.png 296 | f07-039b-07.png 297 | f07-039b-05.png 298 | f07-039b-03.png 299 | f07-039b-00.png 300 | f07-039b-01.png 301 | f07-039b-02.png 302 | f07-042b-02.png 303 | f07-042b-05.png 304 | f07-042b-00.png 305 | f07-042b-04.png 306 | f07-042b-03.png 307 | f07-042b-06.png 308 | f07-042b-07.png 309 | f07-042b-01.png 310 | f07-046b-06.png 311 | f07-046b-08.png 312 | f07-046b-07.png 313 | f07-046b-04.png 314 | f07-046b-05.png 315 | f07-046b-03.png 316 | f07-046b-01.png 317 | f07-046b-02.png 318 | f07-046b-00.png 319 | g01-083-08.png 320 | g01-083-02.png 321 | g01-083-10.png 322 | g01-083-07.png 323 | g01-083-00.png 324 | g01-083-04.png 325 | g01-083-09.png 326 | g01-083-01.png 327 | g01-083-03.png 328 | g01-083-05.png 329 | g01-083-06.png 330 | g03-016-02.png 331 | g03-016-06.png 332 | g03-016-08.png 333 | g03-016-00.png 334 | g03-016-01.png 335 | g03-016-05.png 336 | g03-016-03.png 337 | g03-016-04.png 338 | g03-016-07.png 339 | g03-058-05.png 340 | g03-058-07.png 341 | g03-058-04.png 342 | g03-058-06.png 343 | g03-058-01.png 344 | g03-058-00.png 345 | g03-058-03.png 346 | g03-058-02.png 347 | g04-036-05.png 348 | g04-036-06.png 349 | g04-036-07.png 350 | g04-036-04.png 351 | g04-036-03.png 352 | g04-036-00.png 353 | g04-036-02.png 354 | g04-036-01.png 355 | g04-039-05.png 356 | g04-039-01.png 357 | g04-039-03.png 358 | g04-039-04.png 359 | g04-039-00.png 360 | g04-039-06.png 361 | g04-039-07.png 362 | g04-039-02.png 363 | g04-055-01.png 364 | g04-055-06.png 365 | g04-055-08.png 366 | g04-055-02.png 367 | g04-055-00.png 368 | g04-055-05.png 369 | g04-055-04.png 370 | g04-055-07.png 371 | g04-055-03.png 372 | g04-055-09.png 373 | g04-060-04.png 374 | g04-060-05.png 375 | g04-060-03.png 376 | g04-060-00.png 377 | g04-060-02.png 378 | g04-060-06.png 379 | g04-060-01.png 380 | g04-063-02.png 381 | g04-063-09.png 382 | g04-063-06.png 383 | g04-063-07.png 384 | g04-063-00.png 385 | g04-063-01.png 386 | g04-063-08.png 387 | g04-063-03.png 388 | g04-063-05.png 389 | g04-063-04.png 390 | h01-004-03.png 391 | h01-004-05.png 392 | h01-004-01.png 393 | h01-004-04.png 394 | h01-004-02.png 395 | h01-004-00.png 396 | m01-090-04.png 397 | m01-090-05.png 398 | m01-090-07.png 399 | m01-090-03.png 400 | m01-090-00.png 401 | m01-090-02.png 402 | m01-090-06.png 403 | m01-090-01.png 404 | m01-115-01.png 405 | m01-115-02.png 406 | m01-115-00.png 407 | m01-115-03.png 408 | m01-115-05.png 409 | m01-115-06.png 410 | m01-115-04.png 411 | m01-115-08.png 412 | m01-115-07.png 413 | m01-160-05.png 414 | m01-160-04.png 415 | m01-160-02.png 416 | m01-160-00.png 417 | m01-160-06.png 418 | m01-160-01.png 419 | m01-160-03.png 420 | m02-052-04.png 421 | m02-052-03.png 422 | m02-052-06.png 423 | m02-052-05.png 424 | m02-052-02.png 425 | m02-052-01.png 426 | m02-052-00.png 427 | m02-075-04.png 428 | m02-075-02.png 429 | m02-075-06.png 430 | m02-075-05.png 431 | m02-075-00.png 432 | m02-075-01.png 433 | m02-075-03.png 434 | m02-075-07.png 435 | m02-083-09.png 436 | m02-083-01.png 437 | m02-083-04.png 438 | m02-083-08.png 439 | m02-083-11.png 440 | m02-083-07.png 441 | m02-083-02.png 442 | m02-083-06.png 443 | m02-083-03.png 444 | m02-083-10.png 445 | m02-083-05.png 446 | m02-083-00.png 447 | m02-090-02.png 448 | m02-090-00.png 449 | m02-090-08.png 450 | m02-090-07.png 451 | m02-090-04.png 452 | m02-090-06.png 453 | m02-090-10.png 454 | m02-090-05.png 455 | m02-090-09.png 456 | m02-090-03.png 457 | m02-090-01.png 458 | m02-102-06.png 459 | m02-102-07.png 460 | m02-102-04.png 461 | m02-102-08.png 462 | m02-102-02.png 463 | m02-102-09.png 464 | m02-102-05.png 465 | m02-102-00.png 466 | m02-102-10.png 467 | m02-102-01.png 468 | m02-102-03.png 469 | m02-106-00.png 470 | m02-106-02.png 471 | m02-106-06.png 472 | m02-106-09.png 473 | m02-106-04.png 474 | m02-106-01.png 475 | m02-106-07.png 476 | m02-106-08.png 477 | m02-106-05.png 478 | m02-106-03.png 479 | m03-062-05.png 480 | m03-062-01.png 481 | m03-062-06.png 482 | m03-062-00.png 483 | m03-062-03.png 484 | m03-062-08.png 485 | m03-062-07.png 486 | m03-062-04.png 487 | m03-062-02.png 488 | m03-095-00.png 489 | m03-095-06.png 490 | m03-095-05.png 491 | m03-095-07.png 492 | m03-095-01.png 493 | m03-095-03.png 494 | m03-095-08.png 495 | m03-095-02.png 496 | m03-095-04.png 497 | m04-000-04.png 498 | m04-000-06.png 499 | m04-000-03.png 500 | m04-000-05.png 501 | m04-000-00.png 502 | m04-000-07.png 503 | m04-000-01.png 504 | m04-000-02.png 505 | m04-007-08.png 506 | m04-007-03.png 507 | m04-007-02.png 508 | m04-007-00.png 509 | m04-007-06.png 510 | m04-007-05.png 511 | m04-007-09.png 512 | m04-007-01.png 513 | m04-007-04.png 514 | m04-007-07.png 515 | m04-012-09.png 516 | m04-012-07.png 517 | m04-012-04.png 518 | m04-012-06.png 519 | m04-012-08.png 520 | m04-012-00.png 521 | m04-012-01.png 522 | m04-012-02.png 523 | m04-012-03.png 524 | m04-012-05.png 525 | m04-019-01.png 526 | m04-019-07.png 527 | m04-019-00.png 528 | m04-019-06.png 529 | m04-019-05.png 530 | m04-019-04.png 531 | m04-019-03.png 532 | m04-019-02.png 533 | m04-024-06.png 534 | m04-024-01.png 535 | m04-024-07.png 536 | m04-024-02.png 537 | m04-024-00.png 538 | m04-024-03.png 539 | m04-024-05.png 540 | m04-024-04.png 541 | m04-145-04.png 542 | m04-145-00.png 543 | m04-145-05.png 544 | m04-145-01.png 545 | m04-145-02.png 546 | m04-145-03.png 547 | m04-145-06.png 548 | m04-145-07.png 549 | m04-152-03.png 550 | m04-152-01.png 551 | m04-152-06.png 552 | m04-152-00.png 553 | m04-152-02.png 554 | m04-152-05.png 555 | m04-152-07.png 556 | m04-152-04.png 557 | m04-164-07.png 558 | m04-164-00.png 559 | m04-164-04.png 560 | m04-164-01.png 561 | m04-164-03.png 562 | m04-164-02.png 563 | m04-164-05.png 564 | m04-164-06.png 565 | m04-180-02.png 566 | m04-180-03.png 567 | m04-180-06.png 568 | m04-180-04.png 569 | m04-180-01.png 570 | m04-180-00.png 571 | m04-180-05.png 572 | m04-180-07.png 573 | m04-190-08.png 574 | m04-190-05.png 575 | m04-190-02.png 576 | m04-190-04.png 577 | m04-190-07.png 578 | m04-190-00.png 579 | m04-190-06.png 580 | m04-190-01.png 581 | m04-190-03.png 582 | m04-190-09.png 583 | m04-200-03.png 584 | m04-200-06.png 585 | m04-200-02.png 586 | m04-200-01.png 587 | m04-200-07.png 588 | m04-200-04.png 589 | m04-200-05.png 590 | m04-200-00.png 591 | m04-209-01.png 592 | m04-209-02.png 593 | m04-209-06.png 594 | m04-209-04.png 595 | m04-209-05.png 596 | m04-209-00.png 597 | m04-209-03.png 598 | m04-216-02.png 599 | m04-216-01.png 600 | m04-216-06.png 601 | m04-216-05.png 602 | m04-216-04.png 603 | m04-216-03.png 604 | m04-216-00.png 605 | m04-222-05.png 606 | m04-222-07.png 607 | m04-222-03.png 608 | m04-222-00.png 609 | m04-222-01.png 610 | m04-222-04.png 611 | m04-222-06.png 612 | m04-222-02.png 613 | m04-251-00.png 614 | m04-251-01.png 615 | m04-251-02.png 616 | m06-019-04.png 617 | m06-019-01.png 618 | m06-019-03.png 619 | m06-019-05.png 620 | m06-019-06.png 621 | m06-019-02.png 622 | m06-019-00.png 623 | m06-019-07.png 624 | n02-000-07.png 625 | n02-000-01.png 626 | n02-000-04.png 627 | n02-000-06.png 628 | n02-000-02.png 629 | n02-000-05.png 630 | n02-000-00.png 631 | n02-000-03.png 632 | n02-016-01.png 633 | n02-016-06.png 634 | n02-016-03.png 635 | n02-016-07.png 636 | n02-016-05.png 637 | n02-016-02.png 638 | n02-016-00.png 639 | n02-016-04.png 640 | n02-082a-00.png 641 | n02-082a-02.png 642 | n02-082a-05.png 643 | n02-082a-04.png 644 | n02-082a-06.png 645 | n02-082a-01.png 646 | n02-082a-03.png 647 | n02-098-03.png 648 | n02-098-06.png 649 | n02-098-04.png 650 | n02-098-05.png 651 | n02-098-00.png 652 | n02-098-01.png 653 | n02-098-07.png 654 | n02-098-02.png 655 | n03-079-02.png 656 | n03-079-06.png 657 | n03-079-05.png 658 | n03-079-00.png 659 | n03-079-01.png 660 | n03-079-04.png 661 | n03-079-03.png 662 | n03-082-04.png 663 | n03-082-02.png 664 | n03-082-05.png 665 | n03-082-03.png 666 | n03-082-01.png 667 | n03-082-00.png 668 | n03-082-06.png 669 | n03-082-07.png 670 | n03-091-02.png 671 | n03-091-00.png 672 | n03-091-01.png 673 | n03-091-04.png 674 | n03-091-08.png 675 | n03-091-03.png 676 | n03-091-07.png 677 | n03-091-06.png 678 | n03-091-05.png 679 | n04-015-07.png 680 | n04-015-01.png 681 | n04-015-03.png 682 | n04-015-05.png 683 | n04-015-02.png 684 | n04-015-04.png 685 | n04-015-00.png 686 | n04-015-06.png 687 | n04-022-04.png 688 | n04-022-07.png 689 | n04-022-05.png 690 | n04-022-06.png 691 | n04-022-03.png 692 | n04-022-00.png 693 | n04-022-01.png 694 | n04-022-02.png 695 | n04-031-00.png 696 | n04-031-07.png 697 | n04-031-03.png 698 | n04-031-01.png 699 | n04-031-06.png 700 | n04-031-05.png 701 | n04-031-02.png 702 | n04-031-04.png 703 | n04-039-03.png 704 | n04-039-02.png 705 | n04-039-04.png 706 | n04-039-01.png 707 | n04-039-05.png 708 | n04-039-00.png 709 | n04-044-10.png 710 | n04-044-05.png 711 | n04-044-02.png 712 | n04-044-07.png 713 | n04-044-04.png 714 | n04-044-00.png 715 | n04-044-09.png 716 | n04-044-03.png 717 | n04-044-08.png 718 | n04-044-06.png 719 | n04-044-01.png 720 | n04-171-00.png 721 | n04-171-04.png 722 | n04-171-06.png 723 | n04-171-05.png 724 | n04-171-02.png 725 | n04-171-03.png 726 | n04-171-01.png 727 | n04-183-00.png 728 | n04-183-05.png 729 | n04-183-03.png 730 | n04-183-01.png 731 | n04-183-04.png 732 | n04-183-06.png 733 | n04-183-02.png 734 | n04-190-03.png 735 | n04-190-04.png 736 | n04-190-01.png 737 | n04-190-00.png 738 | n04-190-02.png 739 | n04-190-05.png 740 | n04-190-06.png 741 | n04-195-03.png 742 | n04-195-01.png 743 | n04-195-04.png 744 | n04-195-02.png 745 | n04-195-05.png 746 | n04-195-00.png 747 | n06-148-00.png 748 | n06-148-01.png 749 | n06-148-08.png 750 | n06-148-07.png 751 | n06-148-02.png 752 | n06-148-05.png 753 | n06-148-06.png 754 | n06-148-04.png 755 | n06-148-03.png 756 | n06-156-04.png 757 | n06-156-00.png 758 | n06-156-05.png 759 | n06-156-02.png 760 | n06-156-06.png 761 | n06-156-01.png 762 | n06-156-03.png 763 | n06-156-07.png 764 | n06-163-03.png 765 | n06-163-08.png 766 | n06-163-09.png 767 | n06-163-01.png 768 | n06-163-05.png 769 | n06-163-02.png 770 | n06-163-04.png 771 | n06-163-00.png 772 | n06-163-07.png 773 | n06-163-06.png 774 | n06-169-08.png 775 | n06-169-01.png 776 | n06-169-02.png 777 | n06-169-00.png 778 | n06-169-04.png 779 | n06-169-05.png 780 | n06-169-06.png 781 | n06-169-03.png 782 | n06-169-07.png 783 | n06-175-05.png 784 | n06-175-09.png 785 | n06-175-08.png 786 | n06-175-07.png 787 | n06-175-04.png 788 | n06-175-02.png 789 | n06-175-03.png 790 | n06-175-01.png 791 | n06-175-06.png 792 | n06-175-00.png 793 | n06-182-06.png 794 | n06-182-00.png 795 | n06-182-01.png 796 | n06-182-03.png 797 | n06-182-04.png 798 | n06-182-02.png 799 | n06-182-07.png 800 | n06-182-05.png 801 | n06-186-01.png 802 | n06-186-05.png 803 | n06-186-00.png 804 | n06-186-07.png 805 | n06-186-04.png 806 | n06-186-02.png 807 | n06-186-06.png 808 | n06-186-03.png 809 | n06-194-05.png 810 | n06-194-04.png 811 | n06-194-07.png 812 | n06-194-00.png 813 | n06-194-03.png 814 | n06-194-01.png 815 | n06-194-02.png 816 | n06-194-06.png 817 | n06-201-01.png 818 | n06-201-03.png 819 | n06-201-05.png 820 | n06-201-04.png 821 | n06-201-06.png 822 | n06-201-00.png 823 | n06-201-02.png 824 | n06-201-07.png 825 | p02-017-06.png 826 | p02-017-01.png 827 | p02-017-00.png 828 | p02-017-03.png 829 | p02-017-04.png 830 | p02-017-05.png 831 | p02-017-02.png 832 | p02-017-07.png 833 | p02-121-02.png 834 | p02-121-04.png 835 | p02-121-05.png 836 | p02-121-03.png 837 | p02-121-01.png 838 | p02-121-00.png 839 | p02-127-01.png 840 | p02-127-03.png 841 | p02-127-02.png 842 | p02-127-04.png 843 | p02-127-05.png 844 | p02-127-00.png 845 | p02-127-06.png 846 | p02-131-05.png 847 | p02-131-01.png 848 | p02-131-07.png 849 | p02-131-06.png 850 | p02-131-03.png 851 | p02-131-02.png 852 | p02-131-00.png 853 | p02-131-04.png 854 | p02-155-01.png 855 | p02-155-00.png 856 | p03-004-06.png 857 | p03-004-00.png 858 | p03-004-04.png 859 | p03-004-01.png 860 | p03-004-09.png 861 | p03-004-07.png 862 | p03-004-03.png 863 | p03-004-05.png 864 | p03-004-10.png 865 | p03-004-08.png 866 | p03-004-02.png 867 | p03-004-11.png 868 | p03-009-03.png 869 | p03-009-01.png 870 | p03-009-04.png 871 | p03-009-05.png 872 | p03-009-00.png 873 | p03-009-02.png 874 | p03-009-06.png 875 | p03-057-07.png 876 | p03-057-04.png 877 | p03-057-08.png 878 | p03-057-02.png 879 | p03-057-09.png 880 | p03-057-03.png 881 | p03-057-05.png 882 | p03-057-00.png 883 | p03-057-06.png 884 | p03-057-01.png 885 | p03-069-01.png 886 | p03-069-00.png 887 | p03-069-02.png 888 | p03-069-05.png 889 | p03-069-06.png 890 | p03-069-04.png 891 | p03-069-03.png 892 | p03-087-06.png 893 | p03-087-03.png 894 | p03-087-10.png 895 | p03-087-08.png 896 | p03-087-01.png 897 | p03-087-00.png 898 | p03-087-07.png 899 | p03-087-05.png 900 | p03-087-04.png 901 | p03-087-09.png 902 | p03-087-02.png 903 | p03-096-08.png 904 | p03-096-06.png 905 | p03-096-09.png 906 | p03-096-02.png 907 | p03-096-04.png 908 | p03-096-05.png 909 | p03-096-03.png 910 | p03-096-00.png 911 | p03-096-01.png 912 | p03-096-07.png 913 | p03-103-06.png 914 | p03-103-05.png 915 | p03-103-00.png 916 | p03-103-03.png 917 | p03-103-02.png 918 | p03-103-01.png 919 | p03-103-04.png 920 | p03-103-07.png 921 | p03-112-02.png 922 | p03-112-00.png 923 | p03-112-05.png 924 | p03-112-06.png 925 | p03-112-07.png 926 | p03-112-01.png 927 | p03-112-08.png 928 | p03-112-03.png 929 | p03-112-04.png 930 | p03-112-09.png 931 | p03-121-04.png 932 | p03-121-01.png 933 | p03-121-03.png 934 | p03-121-06.png 935 | p03-121-02.png 936 | p03-121-00.png 937 | p03-121-05.png 938 | p03-135-06.png 939 | p03-135-00.png 940 | p03-135-05.png 941 | p03-135-03.png 942 | p03-135-04.png 943 | p03-135-02.png 944 | p03-135-01.png 945 | p03-142-02.png 946 | p03-142-03.png 947 | p03-142-06.png 948 | p03-142-05.png 949 | p03-142-00.png 950 | p03-142-01.png 951 | p03-142-04.png 952 | p03-151-06.png 953 | p03-151-00.png 954 | p03-151-07.png 955 | p03-151-05.png 956 | p03-151-03.png 957 | p03-151-02.png 958 | p03-151-04.png 959 | p03-151-01.png 960 | p03-158-05.png 961 | p03-158-02.png 962 | p03-158-03.png 963 | p03-158-06.png 964 | p03-158-01.png 965 | p03-158-07.png 966 | p03-158-00.png 967 | p03-158-04.png 968 | p03-185-02.png 969 | p03-185-06.png 970 | p03-185-07.png 971 | p03-185-03.png 972 | p03-185-00.png 973 | p03-185-05.png 974 | p03-185-08.png 975 | p03-185-04.png 976 | p03-185-01.png 977 | -------------------------------------------------------------------------------- /ich17/ich.gin: -------------------------------------------------------------------------------- 1 | port = 12345 2 | manualSeed = 1111 3 | dist = 'DDP' 4 | 5 | n_channels = 3 6 | o_classes = 92 7 | 8 | GradCheck = 1 9 | 10 | # Parameters for get_images (ds_load.py): 11 | # ============================================================================== 12 | get_images.max_w = 1000 13 | get_images.max_h = 1400 14 | get_images.nch = %n_channels 15 | 16 | # Parameters for SameTrCollate (ds_load.py): 17 | # ============================================================================== 18 | SameTrCollate.prjAug = True 19 | SameTrCollate.prjVal = 125 20 | 21 | # Parameters for train (train.py): 22 | # ============================================================================== 23 | train.experiment_name = 'ich_gin_test_' 24 | 25 | train.AMP = False 26 | train.WdB = False 27 | train.wdbprj = 'pt-fpr-ich17' 28 | train.train_data_list = 'ich17/train' 29 | train.train_data_path = '/mnt/ich17/Train-B/' 30 | train.test_data_list = 'ich17/test' 31 | train.test_data_path = '/mnt/ich17/Train-B/' 32 | train.train_batch_size = 1 33 | train.val_batch_size = 1 34 | train.workers = 4 35 | train.lr = 0.01 36 | train.continue_model = '' 37 | train.valInterval = 500 38 | train.num_iter = 0 39 | 40 | 41 | # Parameters for OrigamiNet (cnv_model.py): 42 | # ============================================================================== 43 | OrigamiNet.n_channels = %n_channels 44 | OrigamiNet.o_classes = %o_classes 45 | OrigamiNet.fup = 33 46 | OrigamiNet.GradCheck = %GradCheck 47 | 48 | OrigamiNet.nlyrs = 12 49 | OrigamiNet.wmul = 1.0 50 | 51 | OrigamiNet.lszs = {0: 128, 52 | 2: 256, 53 | 4: 512, 54 | 11: 256 } 55 | 56 | ##resize structure## 57 | MaxPool2d.kernel_size = (2,2) 58 | 59 | Upsample.mode = 'bilinear' 60 | Upsample.align_corners = True 61 | s1/Upsample.size = (3500,31) 62 | s2/Upsample.size = (7200,15) 63 | 64 | OrigamiNet.lreszs = { 65 | 0: @MaxPool2d(), 66 | 2: @MaxPool2d(), 67 | 68 | 4: @PadPool(), 69 | 6: @PadPool(), 70 | 8: @PadPool(), 71 | 72 | 10: @s1/Upsample(), 73 | 11: @s2/Upsample() 74 | } 75 | 76 | # Parameters for InitBlock (cnv_model.py): 77 | # ============================================================================== 78 | InitBlock.n_channels = %n_channels 79 | 80 | # Parameters for GateBlock (cnv_model.py): 81 | # ============================================================================== 82 | GateBlock.GradCheck = %GradCheck -------------------------------------------------------------------------------- /ich17/ich.py: -------------------------------------------------------------------------------- 1 | import xml.etree.ElementTree as ET 2 | from xml.sax.saxutils import unescape 3 | import glob 4 | import sys,os 5 | import scipy.misc 6 | from PIL import Image 7 | import os.path as osp 8 | import unicodedata 9 | 10 | base = sys.argv[1] 11 | 12 | xml = osp.join(base,'page/') 13 | pages = glob.glob(xml+'*.xml') 14 | 15 | rm = ["§","æ","­","|","‰","#","+","[","]","œ","̃","‒","*","□","°","†","‹","›","ο","—","£","τ","ν","‡","ψ","ι","α","κ","ω","η","℔"," ","χ","ξ","₤","ε","π","~","μ","¬","Ζ","λ","Τ","Γ","І","̸","∫","·",">","♂","✓","Œ","♀","$","∆","ø","ρ","∇"] 16 | print(len(pages)) 17 | a=[] 18 | for i in range(len(pages)): 19 | rt = ET.parse(pages[i]).getroot() 20 | un = rt.find(".//{http://schema.primaresearch.org/PAGE/gts/pagecontent/2013-07-15}Unicode") 21 | txt = unescape(un.text, {"'": "'", """: '"'}) 22 | txt = unicodedata.normalize('NFKD', txt) 23 | txt = txt.translate({ord(i): None for i in rm}) 24 | 25 | a.append(txt) 26 | open(osp.join(base,pages[i][-10:-4]+'.txt'),'w+').write(txt.strip()) -------------------------------------------------------------------------------- /ich17/ich.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | dst=$1 4 | 5 | wget --content-disposition https://zenodo.org/record/439811/files/Train-B_batch{1,2}.tbz2?download=1 6 | 7 | mkdir -p $dst 8 | 9 | cat Train-B_batch{1,2}.tbz2 | tar -jxvf - -i --strip-components=2 -C $dst 10 | 11 | python `dirname "$0"`/ich.py $dst -------------------------------------------------------------------------------- /ich17/test: -------------------------------------------------------------------------------- 1 | 019001.jpg 2 | 019002.jpg 3 | 019003.jpg 4 | 019004.jpg 5 | 019005.jpg 6 | 019006.jpg 7 | 019007.jpg 8 | 019008.jpg 9 | 019009.jpg 10 | 019010.jpg 11 | 019011.jpg 12 | 019012.jpg 13 | 019013.jpg 14 | 019014.jpg 15 | 019015.jpg 16 | 019016.jpg 17 | 019017.jpg 18 | 019018.jpg 19 | 019019.jpg 20 | 019020.jpg 21 | 019021.jpg 22 | 019022.jpg 23 | 019023.jpg 24 | 019024.jpg 25 | 019025.jpg 26 | 019026.jpg 27 | 019027.jpg 28 | 019028.jpg 29 | 019029.jpg 30 | 019030.jpg 31 | 019031.jpg 32 | 019032.jpg 33 | 019033.jpg 34 | 019034.jpg 35 | 019035.jpg 36 | 019036.jpg 37 | 019037.jpg 38 | 019038.jpg 39 | 019039.jpg 40 | 019040.jpg 41 | 019041.jpg 42 | 019042.jpg 43 | 019043.jpg 44 | 019044.jpg 45 | 019045.jpg 46 | 019046.jpg 47 | 019047.jpg 48 | 019048.jpg 49 | 019049.jpg 50 | 019050.jpg 51 | 019051.jpg 52 | 019052.jpg 53 | 019053.jpg 54 | 019054.jpg 55 | 019055.jpg 56 | 019056.jpg 57 | 019057.jpg 58 | 019058.jpg 59 | 019059.jpg 60 | 019060.jpg 61 | 019061.jpg 62 | 019062.jpg 63 | 019063.jpg 64 | 019064.jpg 65 | 019065.jpg 66 | 019066.jpg 67 | 019067.jpg 68 | 019068.jpg 69 | 019069.jpg 70 | 019070.jpg 71 | 019071.jpg 72 | 019072.jpg 73 | 019073.jpg 74 | 019074.jpg 75 | 019075.jpg 76 | 019076.jpg 77 | 019077.jpg 78 | 019078.jpg 79 | 019079.jpg 80 | 019080.jpg 81 | 019081.jpg 82 | 019082.jpg 83 | 019083.jpg 84 | 019084.jpg 85 | 019085.jpg 86 | 019086.jpg 87 | 019087.jpg 88 | 019088.jpg 89 | 019089.jpg 90 | 019090.jpg 91 | 019091.jpg 92 | 019092.jpg 93 | 019093.jpg 94 | 019094.jpg 95 | 019095.jpg 96 | 019096.jpg 97 | 019097.jpg 98 | 019098.jpg 99 | 019099.jpg 100 | 019100.jpg 101 | 019101.jpg 102 | 019102.jpg 103 | 019103.jpg 104 | 019104.jpg 105 | 019105.jpg 106 | 019106.jpg 107 | 019107.jpg 108 | 019108.jpg 109 | 019109.jpg 110 | 019110.jpg 111 | 019111.jpg 112 | 019112.jpg 113 | 019113.jpg 114 | 019114.jpg 115 | 019115.jpg 116 | 019116.jpg 117 | 019117.jpg 118 | 019118.jpg 119 | 019119.jpg 120 | 019120.jpg 121 | 019121.jpg 122 | 019122.jpg 123 | 019123.jpg 124 | 019124.jpg 125 | 019125.jpg 126 | 019126.jpg 127 | 019127.jpg 128 | 019128.jpg 129 | 019129.jpg 130 | 019130.jpg 131 | 019131.jpg 132 | 019132.jpg 133 | 019133.jpg 134 | 019134.jpg 135 | 019135.jpg 136 | 019136.jpg 137 | 019137.jpg 138 | 019138.jpg 139 | 019139.jpg 140 | 019140.jpg 141 | 019141.jpg 142 | 019142.jpg 143 | 019143.jpg 144 | 019144.jpg 145 | 019145.jpg 146 | 019146.jpg 147 | 019147.jpg 148 | 019148.jpg 149 | 019149.jpg 150 | 019150.jpg 151 | 019151.jpg 152 | 019152.jpg 153 | 019153.jpg 154 | 019154.jpg 155 | 019155.jpg 156 | 019156.jpg 157 | 019157.jpg 158 | 019158.jpg 159 | 019159.jpg 160 | 019160.jpg 161 | 019161.jpg 162 | 019162.jpg 163 | 019163.jpg 164 | 019164.jpg 165 | 019165.jpg 166 | 019166.jpg 167 | 019167.jpg 168 | 019168.jpg 169 | 019169.jpg 170 | 019170.jpg 171 | 019171.jpg 172 | 019172.jpg 173 | 019173.jpg 174 | 019174.jpg 175 | 019175.jpg 176 | 019176.jpg 177 | 019177.jpg 178 | 019178.jpg 179 | 019179.jpg 180 | 019180.jpg 181 | 019181.jpg 182 | 019182.jpg 183 | 019183.jpg 184 | 019184.jpg 185 | 019185.jpg 186 | 019186.jpg 187 | 019187.jpg 188 | 019188.jpg 189 | 019189.jpg 190 | 019190.jpg 191 | 019191.jpg 192 | 019192.jpg 193 | 019193.jpg 194 | 019194.jpg 195 | 019195.jpg 196 | 019196.jpg 197 | 019197.jpg 198 | 019198.jpg 199 | 019199.jpg 200 | 019200.jpg 201 | 019201.jpg 202 | 019202.jpg 203 | 019203.jpg 204 | 019204.jpg 205 | 019205.jpg 206 | 019206.jpg 207 | 019207.jpg 208 | 019208.jpg 209 | 019209.jpg 210 | 019210.jpg 211 | 019211.jpg 212 | 019212.jpg 213 | 019213.jpg 214 | 019214.jpg 215 | 019215.jpg 216 | 019216.jpg 217 | 019217.jpg 218 | 019218.jpg 219 | 019219.jpg 220 | 019220.jpg 221 | 019221.jpg 222 | 019222.jpg 223 | 019223.jpg 224 | 019224.jpg 225 | 019225.jpg 226 | 019226.jpg 227 | 019227.jpg 228 | 019228.jpg 229 | 019229.jpg 230 | 019230.jpg 231 | 019231.jpg 232 | 019232.jpg 233 | 019233.jpg 234 | 019234.jpg 235 | 019235.jpg 236 | 019236.jpg 237 | 019237.jpg 238 | 019238.jpg 239 | 019239.jpg 240 | 019240.jpg 241 | 019241.jpg 242 | 019242.jpg 243 | 019243.jpg 244 | 019244.jpg 245 | 019245.jpg 246 | 019246.jpg 247 | 019247.jpg 248 | 019248.jpg 249 | 019249.jpg 250 | 019250.jpg 251 | 019251.jpg 252 | 019252.jpg 253 | 019253.jpg 254 | 019254.jpg 255 | 019255.jpg 256 | 019256.jpg 257 | 019257.jpg 258 | 019258.jpg 259 | 019259.jpg 260 | 019260.jpg 261 | 019261.jpg 262 | 019262.jpg 263 | 019263.jpg 264 | 019264.jpg 265 | 019265.jpg 266 | 019266.jpg 267 | 019267.jpg 268 | 019268.jpg 269 | 019269.jpg 270 | 019270.jpg 271 | 019271.jpg 272 | 019272.jpg 273 | 019273.jpg 274 | 019274.jpg 275 | 019275.jpg 276 | 019276.jpg 277 | 019277.jpg 278 | 019278.jpg 279 | 019279.jpg 280 | 019280.jpg 281 | 019281.jpg 282 | 019282.jpg 283 | 019283.jpg 284 | 019284.jpg 285 | 019285.jpg 286 | 019286.jpg 287 | 019287.jpg 288 | 019288.jpg 289 | 019289.jpg 290 | 019290.jpg 291 | 019291.jpg 292 | 019292.jpg 293 | 019293.jpg 294 | 019294.jpg 295 | 019295.jpg 296 | 019296.jpg 297 | 019297.jpg 298 | 019298.jpg 299 | 019299.jpg 300 | 019300.jpg 301 | 019301.jpg 302 | 019302.jpg 303 | 019303.jpg 304 | 019304.jpg 305 | 019305.jpg 306 | 019306.jpg 307 | 019307.jpg 308 | 019308.jpg 309 | 019309.jpg 310 | 019310.jpg 311 | 019311.jpg 312 | 019312.jpg 313 | 019313.jpg 314 | 019314.jpg 315 | 019315.jpg 316 | 019316.jpg 317 | 019317.jpg 318 | 019318.jpg 319 | 019319.jpg 320 | 019320.jpg 321 | 019321.jpg 322 | 019322.jpg 323 | 019323.jpg 324 | 019324.jpg 325 | 019325.jpg 326 | 019326.jpg 327 | 019327.jpg 328 | 019328.jpg 329 | 019329.jpg 330 | 019330.jpg 331 | 019331.jpg 332 | 019332.jpg 333 | 019333.jpg 334 | 019334.jpg 335 | 019335.jpg 336 | 019336.jpg 337 | 019337.jpg 338 | 019338.jpg 339 | 019339.jpg 340 | 019340.jpg 341 | 019341.jpg 342 | 019342.jpg 343 | 019343.jpg 344 | 019344.jpg 345 | 019345.jpg 346 | 019346.jpg 347 | 019347.jpg 348 | 019348.jpg 349 | 019349.jpg 350 | 019350.jpg 351 | 019351.jpg 352 | 019352.jpg 353 | 019353.jpg 354 | 019354.jpg 355 | 019355.jpg 356 | 019356.jpg 357 | 019357.jpg 358 | 019358.jpg 359 | 019359.jpg 360 | 019360.jpg 361 | 019361.jpg 362 | 019362.jpg 363 | 019363.jpg 364 | 019364.jpg 365 | 019365.jpg 366 | 019366.jpg 367 | 019367.jpg 368 | 019368.jpg 369 | 019369.jpg 370 | 019370.jpg 371 | 019371.jpg 372 | 019372.jpg 373 | 019373.jpg 374 | 019374.jpg 375 | 019375.jpg 376 | 019376.jpg 377 | 019377.jpg 378 | 019378.jpg 379 | 019379.jpg 380 | 019380.jpg 381 | 019381.jpg 382 | 019382.jpg 383 | 019383.jpg 384 | 019384.jpg 385 | 019385.jpg 386 | 019386.jpg 387 | 019387.jpg 388 | 019388.jpg 389 | 019389.jpg 390 | 019390.jpg 391 | 019391.jpg 392 | 019392.jpg 393 | 019393.jpg 394 | 019394.jpg 395 | 019395.jpg 396 | 019396.jpg 397 | 019397.jpg 398 | 019398.jpg 399 | 019399.jpg 400 | 019400.jpg 401 | 019401.jpg 402 | 019402.jpg 403 | 019403.jpg 404 | 019404.jpg 405 | 019405.jpg 406 | 019406.jpg 407 | 019407.jpg 408 | 019408.jpg 409 | 019409.jpg 410 | 019410.jpg 411 | 019411.jpg 412 | 019412.jpg 413 | 019413.jpg 414 | 019414.jpg 415 | 019415.jpg 416 | 019416.jpg 417 | 019417.jpg 418 | 019418.jpg 419 | 019419.jpg 420 | 019420.jpg 421 | 019421.jpg 422 | 019422.jpg 423 | 019423.jpg 424 | 019424.jpg 425 | 019425.jpg 426 | 019426.jpg 427 | 019427.jpg 428 | 019428.jpg 429 | 019429.jpg 430 | 019430.jpg 431 | 019431.jpg 432 | 019432.jpg 433 | 019433.jpg 434 | 019434.jpg 435 | 019435.jpg 436 | 019436.jpg 437 | 019437.jpg 438 | 019438.jpg 439 | 019439.jpg 440 | 019440.jpg 441 | 019441.jpg 442 | 019442.jpg 443 | 019443.jpg 444 | 019444.jpg 445 | 019445.jpg 446 | 019446.jpg 447 | 019447.jpg 448 | 019448.jpg 449 | 019449.jpg 450 | 019450.jpg 451 | 019451.jpg 452 | 019452.jpg 453 | 019453.jpg 454 | 019454.jpg 455 | 019455.jpg 456 | 019456.jpg 457 | 019457.jpg 458 | 019458.jpg 459 | 019459.jpg 460 | 019460.jpg 461 | 019461.jpg 462 | 019462.jpg 463 | 019463.jpg 464 | 019464.jpg 465 | 019465.jpg 466 | 019466.jpg 467 | 019467.jpg 468 | 019468.jpg 469 | 019469.jpg 470 | 019470.jpg 471 | 019471.jpg 472 | 019472.jpg 473 | 019473.jpg 474 | 019474.jpg 475 | 019475.jpg 476 | 019476.jpg 477 | 019477.jpg 478 | 019478.jpg 479 | 019479.jpg 480 | 019480.jpg 481 | 019481.jpg 482 | 019482.jpg 483 | 019483.jpg 484 | 019484.jpg 485 | 019485.jpg 486 | 019486.jpg 487 | 019487.jpg 488 | 019488.jpg 489 | 019489.jpg 490 | 019490.jpg 491 | 019491.jpg 492 | 019492.jpg 493 | 019493.jpg 494 | 019494.jpg 495 | 019495.jpg 496 | 019496.jpg 497 | 019497.jpg 498 | 019498.jpg 499 | 019499.jpg 500 | 019500.jpg 501 | 019501.jpg 502 | 019502.jpg 503 | 019503.jpg 504 | 019504.jpg 505 | 019505.jpg 506 | 019506.jpg 507 | 019507.jpg 508 | 019508.jpg 509 | 019509.jpg 510 | 019510.jpg 511 | 019511.jpg 512 | 019512.jpg 513 | 019513.jpg 514 | 019514.jpg 515 | 019515.jpg 516 | 019516.jpg 517 | 019517.jpg 518 | 019518.jpg 519 | 019519.jpg 520 | 019520.jpg 521 | 019521.jpg 522 | 019522.jpg 523 | 019523.jpg 524 | 019524.jpg 525 | 019525.jpg 526 | 019526.jpg 527 | 019527.jpg 528 | 019528.jpg 529 | 019529.jpg 530 | 019530.jpg 531 | 019531.jpg 532 | 019532.jpg 533 | 019533.jpg 534 | 019534.jpg 535 | 019535.jpg 536 | 019536.jpg 537 | 019537.jpg 538 | 019538.jpg 539 | 019539.jpg 540 | 019540.jpg 541 | 019541.jpg 542 | 019542.jpg 543 | 019543.jpg 544 | 019544.jpg 545 | 019545.jpg 546 | 019546.jpg 547 | 019547.jpg 548 | 019548.jpg 549 | 019549.jpg 550 | 019550.jpg 551 | 019551.jpg 552 | 019552.jpg 553 | 019553.jpg 554 | 019554.jpg 555 | 019555.jpg 556 | 019556.jpg 557 | 019557.jpg 558 | 019558.jpg 559 | 019559.jpg 560 | 019560.jpg 561 | 019561.jpg 562 | 019562.jpg 563 | 019563.jpg 564 | 019564.jpg 565 | 019565.jpg 566 | 019566.jpg 567 | 019567.jpg 568 | 019568.jpg 569 | 019569.jpg 570 | 019570.jpg 571 | 019571.jpg 572 | 019572.jpg 573 | 019573.jpg 574 | 019574.jpg 575 | 019575.jpg 576 | 019576.jpg 577 | 019577.jpg 578 | 019578.jpg 579 | 019579.jpg 580 | 019580.jpg 581 | 019581.jpg 582 | 019582.jpg 583 | 019583.jpg 584 | 019584.jpg 585 | 019585.jpg 586 | 019586.jpg 587 | 019587.jpg 588 | 019588.jpg 589 | 019589.jpg 590 | 019590.jpg 591 | 019591.jpg 592 | 019592.jpg 593 | 019593.jpg 594 | 019594.jpg 595 | 019595.jpg 596 | 019596.jpg 597 | 019597.jpg 598 | 019598.jpg 599 | 019599.jpg 600 | 019600.jpg 601 | 019601.jpg 602 | 019602.jpg 603 | 019603.jpg 604 | 019604.jpg 605 | 019605.jpg 606 | 019606.jpg 607 | 019607.jpg 608 | 019608.jpg 609 | 019609.jpg 610 | 019610.jpg 611 | 019611.jpg 612 | 019612.jpg 613 | 019613.jpg 614 | 019614.jpg 615 | 019615.jpg 616 | 019616.jpg 617 | 019617.jpg 618 | 019618.jpg 619 | 019619.jpg 620 | 019620.jpg 621 | 019621.jpg 622 | 019622.jpg 623 | 019623.jpg 624 | 019624.jpg 625 | 019625.jpg 626 | 019626.jpg 627 | 019627.jpg 628 | 019628.jpg 629 | 019629.jpg 630 | 019630.jpg 631 | 019631.jpg 632 | 019632.jpg 633 | 019633.jpg 634 | 019634.jpg 635 | 019635.jpg 636 | 019636.jpg 637 | 019637.jpg 638 | 019638.jpg 639 | 019639.jpg 640 | 019640.jpg 641 | 019641.jpg 642 | 019642.jpg 643 | 019643.jpg 644 | 019644.jpg 645 | 019645.jpg 646 | 019646.jpg 647 | 019647.jpg 648 | 019648.jpg 649 | 019649.jpg 650 | 019650.jpg 651 | 019651.jpg 652 | 019652.jpg 653 | 019653.jpg 654 | 019654.jpg 655 | 019655.jpg 656 | 019656.jpg 657 | 019657.jpg 658 | 019658.jpg 659 | 019659.jpg 660 | 019660.jpg 661 | 019661.jpg 662 | 019662.jpg 663 | 019663.jpg 664 | 019664.jpg 665 | 019665.jpg 666 | 019666.jpg 667 | 019667.jpg 668 | 019668.jpg 669 | 019669.jpg 670 | 019670.jpg 671 | 019671.jpg 672 | 019672.jpg 673 | 019673.jpg 674 | 019674.jpg 675 | 019675.jpg 676 | 019676.jpg 677 | 019677.jpg 678 | 019678.jpg 679 | 019679.jpg 680 | 019680.jpg 681 | 019681.jpg 682 | 019682.jpg 683 | 019683.jpg 684 | 019684.jpg 685 | 019685.jpg 686 | 019686.jpg 687 | 019687.jpg 688 | 019688.jpg 689 | 019689.jpg 690 | 019690.jpg 691 | 019691.jpg 692 | 019692.jpg 693 | 019693.jpg 694 | 019694.jpg 695 | 019695.jpg 696 | 019696.jpg 697 | 019697.jpg 698 | 019698.jpg 699 | 019699.jpg 700 | 019700.jpg 701 | 019701.jpg 702 | 019702.jpg 703 | 019703.jpg 704 | 019704.jpg 705 | 019705.jpg 706 | 019706.jpg 707 | 019707.jpg 708 | 019708.jpg 709 | 019709.jpg 710 | 019710.jpg 711 | 019711.jpg 712 | 019712.jpg 713 | 019713.jpg 714 | 019714.jpg 715 | 019715.jpg 716 | 019716.jpg 717 | 019717.jpg 718 | 019718.jpg 719 | 019719.jpg 720 | 019720.jpg 721 | 019721.jpg 722 | 019722.jpg 723 | 019723.jpg 724 | 019724.jpg 725 | 019725.jpg 726 | 019726.jpg 727 | 019727.jpg 728 | 019728.jpg 729 | 019729.jpg 730 | 019730.jpg 731 | 019731.jpg 732 | 019732.jpg 733 | 019733.jpg 734 | 019734.jpg 735 | 019735.jpg 736 | 019736.jpg 737 | 019737.jpg 738 | 019738.jpg 739 | 019739.jpg 740 | 019740.jpg 741 | 019741.jpg 742 | 019742.jpg 743 | 019743.jpg 744 | 019744.jpg 745 | 019745.jpg 746 | 019746.jpg 747 | 019747.jpg 748 | 019748.jpg 749 | 019749.jpg 750 | 019750.jpg 751 | 019751.jpg 752 | 019752.jpg 753 | 019753.jpg 754 | 019754.jpg 755 | 019755.jpg 756 | 019756.jpg 757 | 019757.jpg 758 | 019758.jpg 759 | 019759.jpg 760 | 019760.jpg 761 | 019761.jpg 762 | 019762.jpg 763 | 019763.jpg 764 | 019764.jpg 765 | 019765.jpg 766 | 019766.jpg 767 | 019767.jpg 768 | 019768.jpg 769 | 019769.jpg 770 | 019770.jpg 771 | 019771.jpg 772 | 019772.jpg 773 | 019773.jpg 774 | 019774.jpg 775 | 019775.jpg 776 | 019776.jpg 777 | 019777.jpg 778 | 019778.jpg 779 | 019779.jpg 780 | 019780.jpg 781 | 019781.jpg 782 | 019782.jpg 783 | 019783.jpg 784 | 019784.jpg 785 | 019785.jpg 786 | 019786.jpg 787 | 019787.jpg 788 | 019788.jpg 789 | 019789.jpg 790 | 019790.jpg 791 | 019791.jpg 792 | 019792.jpg 793 | 019793.jpg 794 | 019794.jpg 795 | 019795.jpg 796 | 019796.jpg 797 | 019797.jpg 798 | 019798.jpg 799 | 019799.jpg 800 | 019800.jpg 801 | 019801.jpg 802 | 019802.jpg 803 | 019803.jpg 804 | 019804.jpg 805 | 019805.jpg 806 | 019806.jpg 807 | 019807.jpg 808 | 019808.jpg 809 | 019809.jpg 810 | 019810.jpg 811 | 019811.jpg 812 | 019812.jpg 813 | 019813.jpg 814 | 019814.jpg 815 | 019815.jpg 816 | 019816.jpg 817 | 019817.jpg 818 | 019818.jpg 819 | 019819.jpg 820 | 019820.jpg 821 | 019821.jpg 822 | 019822.jpg 823 | 019823.jpg 824 | 019824.jpg 825 | 019825.jpg 826 | 019826.jpg 827 | 019827.jpg 828 | 019828.jpg 829 | 019829.jpg 830 | 019830.jpg 831 | 019831.jpg 832 | 019832.jpg 833 | 019833.jpg 834 | 019834.jpg 835 | 019835.jpg 836 | 019836.jpg 837 | 019837.jpg 838 | 019838.jpg 839 | 019839.jpg 840 | 019840.jpg 841 | 019841.jpg 842 | 019842.jpg 843 | 019843.jpg 844 | 019844.jpg 845 | 019845.jpg 846 | 019846.jpg 847 | 019847.jpg 848 | 019848.jpg 849 | 019849.jpg 850 | 019850.jpg 851 | 019851.jpg 852 | 019852.jpg 853 | 019853.jpg 854 | 019854.jpg 855 | 019855.jpg 856 | 019856.jpg 857 | 019857.jpg 858 | 019858.jpg 859 | 019859.jpg 860 | 019860.jpg 861 | 019861.jpg 862 | 019862.jpg 863 | 019863.jpg 864 | 019864.jpg 865 | 019865.jpg 866 | 019866.jpg 867 | 019867.jpg 868 | 019868.jpg 869 | 019869.jpg 870 | 019870.jpg 871 | 019871.jpg 872 | 019872.jpg 873 | 019873.jpg 874 | 019874.jpg 875 | 019875.jpg 876 | 019876.jpg 877 | 019877.jpg 878 | 019878.jpg 879 | 019879.jpg 880 | 019880.jpg 881 | 019881.jpg 882 | 019882.jpg 883 | 019883.jpg 884 | 019884.jpg 885 | 019885.jpg 886 | 019886.jpg 887 | 019887.jpg 888 | 019888.jpg 889 | 019889.jpg 890 | 019890.jpg 891 | 019891.jpg 892 | 019892.jpg 893 | 019893.jpg 894 | 019894.jpg 895 | 019895.jpg 896 | 019896.jpg 897 | 019897.jpg 898 | 019898.jpg 899 | 019899.jpg 900 | 019900.jpg 901 | 019901.jpg 902 | 019902.jpg 903 | 019903.jpg 904 | 019904.jpg 905 | 019905.jpg 906 | 019906.jpg 907 | 019907.jpg 908 | 019908.jpg 909 | 019909.jpg 910 | 019910.jpg 911 | 019911.jpg 912 | 019912.jpg 913 | 019913.jpg 914 | 019914.jpg 915 | 019915.jpg 916 | 019916.jpg 917 | 019917.jpg 918 | 019918.jpg 919 | 019919.jpg 920 | 019920.jpg 921 | 019921.jpg 922 | 019922.jpg 923 | 019923.jpg 924 | 019924.jpg 925 | 019925.jpg 926 | 019926.jpg 927 | 019927.jpg 928 | 019928.jpg 929 | 019929.jpg 930 | 019930.jpg 931 | 019931.jpg 932 | 019932.jpg 933 | 019933.jpg 934 | 019934.jpg 935 | 019935.jpg 936 | 019936.jpg 937 | 019937.jpg 938 | 019938.jpg 939 | 019939.jpg 940 | 019940.jpg 941 | 019941.jpg 942 | 019942.jpg 943 | 019943.jpg 944 | 019944.jpg 945 | 019945.jpg 946 | 019946.jpg 947 | 019947.jpg 948 | 019948.jpg 949 | 019949.jpg 950 | 019950.jpg 951 | 019951.jpg 952 | 019952.jpg 953 | 019953.jpg 954 | 019954.jpg 955 | 019955.jpg 956 | 019956.jpg 957 | 019957.jpg 958 | 019958.jpg 959 | 019959.jpg 960 | 019960.jpg 961 | 019961.jpg 962 | 019962.jpg 963 | 019963.jpg 964 | 019964.jpg 965 | 019965.jpg 966 | 019966.jpg 967 | 019967.jpg 968 | 019968.jpg 969 | 019969.jpg 970 | 019970.jpg 971 | 019971.jpg 972 | 019972.jpg 973 | 019973.jpg 974 | 019974.jpg 975 | 019975.jpg 976 | 019976.jpg 977 | 019977.jpg 978 | 019978.jpg 979 | 019979.jpg 980 | 019980.jpg 981 | 019981.jpg 982 | 019982.jpg 983 | 019983.jpg 984 | 019984.jpg 985 | 019985.jpg 986 | 019986.jpg 987 | 019987.jpg 988 | 019988.jpg 989 | 019989.jpg 990 | 019990.jpg 991 | 019991.jpg 992 | 019992.jpg 993 | 019993.jpg 994 | 019994.jpg 995 | 019995.jpg 996 | 019996.jpg 997 | 019997.jpg 998 | 019998.jpg 999 | 019999.jpg 1000 | 020000.jpg 1001 | -------------------------------------------------------------------------------- /o1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntuitionMachines/OrigamiNet/9e82724cc2998d583a976b1ca781f7aeba73c38c/o1.png -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | opencv_python_headless==4.1.2.30 2 | natsort 3 | numpy 4 | tqdm 5 | lmdb 6 | scikit_image 7 | matplotlib 8 | torchsummary 9 | nltk 10 | torchvision 11 | imageio 12 | six 13 | scipy 14 | fire 15 | Pillow 16 | scikit_learn 17 | horovod 18 | editdistance 19 | git+https://github.com/google/gin-config -------------------------------------------------------------------------------- /test.py: -------------------------------------------------------------------------------- 1 | import os 2 | import time 3 | import string 4 | 5 | import torch 6 | import torch.backends.cudnn as cudnn 7 | import torch.utils.data 8 | import torch.distributed as dist 9 | import numpy as np 10 | import editdistance 11 | from nltk.translate.bleu_score import sentence_bleu 12 | import horovod.torch as hvd 13 | 14 | from utils import Averager 15 | device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') 16 | 17 | 18 | def metric_sum_hvd(val, name): 19 | tensor = torch.tensor(val) 20 | avg_tensor = hvd.allreduce(tensor, name=name, average=False) 21 | return avg_tensor.item() 22 | 23 | def metric_sum_ddp(tensor, av=False): 24 | # rt = tensor.clone() 25 | rt = torch.tensor(tensor).cuda() 26 | dist.all_reduce(rt, op=dist.ReduceOp.SUM) 27 | if av: 28 | rt /= dist.get_world_size() 29 | return rt 30 | 31 | def validation(model, criterion, evaluation_loader, converter, opt, parO): 32 | """ validation or evaluation """ 33 | n_correct = 0 34 | norm_ED = 0 35 | tot_ED = 0 36 | length_of_gt = 0 37 | bleu = 0.0 38 | infer_time = 0 39 | valid_loss_avg = Averager() 40 | 41 | for i, (image_tensors, labels) in enumerate(evaluation_loader): 42 | batch_size = image_tensors.size(0) 43 | image = image_tensors.to(device) 44 | 45 | text_for_loss, length_for_loss = converter.encode(labels) 46 | 47 | start_time = time.time() 48 | 49 | preds = model(image, '') 50 | forward_time = time.time() - start_time 51 | 52 | # Calculate evaluation loss for CTC deocder. 53 | preds_size = torch.IntTensor([preds.size(1)] * batch_size) 54 | preds = preds.permute(1, 0, 2).log_softmax(2) # to use CTCloss format 55 | 56 | # To avoid ctc_loss issue, disabled cudnn for the computation of the ctc_loss 57 | # https://github.com/jpuigcerver/PyLaia/issues/16 58 | torch.backends.cudnn.enabled = False 59 | cost = criterion(preds, text_for_loss, preds_size, length_for_loss).mean() 60 | torch.backends.cudnn.enabled = True 61 | 62 | _, preds_index = preds.max(2) 63 | preds_index = preds_index.transpose(1, 0).contiguous().view(-1) 64 | preds_str = converter.decode(preds_index.data, preds_size.data) 65 | 66 | infer_time += forward_time 67 | valid_loss_avg.add(cost) 68 | 69 | # calculate accuracy. 70 | for pred, gt in zip(preds_str, labels): 71 | tmped = editdistance.eval(pred, gt) 72 | if pred == gt: 73 | n_correct += 1 74 | if len(gt) == 0: 75 | norm_ED += 1 76 | else: 77 | norm_ED += tmped / float(len(gt)) 78 | 79 | tot_ED += tmped 80 | length_of_gt += len(gt) 81 | bleu += sentence_bleu( [list(gt)], list(pred) ) 82 | 83 | if parO.HVD: 84 | n_correct = metric_sum_hvd(n_correct , 'sum_n_correct') 85 | tot_ED = metric_sum_hvd(tot_ED , 'sum_tot_ED') 86 | length_of_gt = metric_sum_hvd(length_of_gt , 'sum_length_of_gt') 87 | norm_ED = metric_sum_hvd(norm_ED, 'sum_norm_ED') 88 | bleu = metric_sum_hvd(bleu, 'sum_bleu') 89 | 90 | elif parO.DDP: 91 | val_loss = metric_sum_ddp(valid_loss_avg.val(), av=True) 92 | n_correct = metric_sum_ddp(n_correct) 93 | tot_ED = metric_sum_ddp(tot_ED) 94 | length_of_gt = metric_sum_ddp(length_of_gt) 95 | norm_ED = metric_sum_ddp(norm_ED) 96 | bleu = metric_sum_ddp(bleu) 97 | 98 | nelms = float(len(evaluation_loader.dataset)) 99 | tot_ED = tot_ED / float(length_of_gt) 100 | val_loss = valid_loss_avg.val() if not parO.DDP else val_loss 101 | bleu /= nelms 102 | norm_ED /= nelms 103 | accuracy = n_correct / nelms * 100 104 | 105 | return val_loss, accuracy, norm_ED, tot_ED, bleu, preds_str, labels, infer_time -------------------------------------------------------------------------------- /train.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import time 4 | import random 5 | import string 6 | import argparse 7 | from collections import namedtuple 8 | import copy 9 | 10 | import torch 11 | import torch.backends.cudnn as cudnn 12 | import torch.nn.init as init 13 | import torch.optim as optim 14 | import torch.utils.data 15 | from torch import autograd 16 | import torch.multiprocessing as mp 17 | import torch.distributed as dist 18 | from torch.utils.data import Dataset 19 | from torch.nn.parallel import DistributedDataParallel as pDDP 20 | 21 | from torchsummary import summary 22 | from torchvision.utils import save_image 23 | import horovod.torch as hvd 24 | import gin 25 | 26 | import numpy as np 27 | from tqdm import tqdm, trange 28 | from PIL import Image 29 | 30 | import apex 31 | from apex.parallel import DistributedDataParallel as aDDP 32 | from apex.fp16_utils import * 33 | from apex import amp 34 | from apex.multi_tensor_apply import multi_tensor_applier 35 | 36 | import wandb 37 | import ds_load 38 | 39 | from utils import CTCLabelConverter, Averager, ModelEma, Metric 40 | from cnv_model import OrigamiNet, ginM 41 | from test import validation 42 | 43 | parOptions = namedtuple('parOptions', ['DP', 'DDP', 'HVD']) 44 | parOptions.__new__.__defaults__ = (False,) * len(parOptions._fields) 45 | 46 | pO = None 47 | OnceExecWorker = None 48 | 49 | device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') 50 | 51 | def init_bn(model): 52 | if type(model) in [torch.nn.InstanceNorm2d, torch.nn.BatchNorm2d]: 53 | init.ones_(model.weight) 54 | init.zeros_(model.bias) 55 | 56 | elif type(model) in [torch.nn.Conv2d]: 57 | init.kaiming_uniform_(model.weight) 58 | 59 | def WrkSeeder(_): 60 | return np.random.seed((torch.initial_seed()) % (2 ** 32)) 61 | 62 | @gin.configurable 63 | def train(opt, AMP, WdB, train_data_path, train_data_list, test_data_path, test_data_list, experiment_name, 64 | train_batch_size, val_batch_size, workers, lr, valInterval, num_iter, wdbprj, continue_model=''): 65 | 66 | HVD3P = pO.HVD or pO.DDP 67 | 68 | os.makedirs(f'./saved_models/{experiment_name}', exist_ok=True) 69 | 70 | if OnceExecWorker and WdB: 71 | wandb.init(project=wdbprj, name=experiment_name) 72 | wandb.config.update(opt) 73 | 74 | train_dataset = ds_load.myLoadDS(train_data_list, train_data_path) 75 | valid_dataset = ds_load.myLoadDS(test_data_list, test_data_path , ralph=train_dataset.ralph) 76 | 77 | if OnceExecWorker: 78 | print(pO) 79 | print('Alphabet :',len(train_dataset.alph),train_dataset.alph) 80 | for d in [train_dataset, valid_dataset]: 81 | print('Dataset Size :',len(d.fns)) 82 | print('Max LbW : ',max(list(map(len,d.tlbls))) ) 83 | print('#Chars : ',sum([len(x) for x in d.tlbls])) 84 | print('Sample label :',d.tlbls[-1]) 85 | print("Dataset :", sorted(list(map(len,d.tlbls))) ) 86 | print('-'*80) 87 | 88 | if opt.num_gpu > 1: 89 | workers = workers * ( 1 if HVD3P else opt.num_gpu ) 90 | 91 | if HVD3P: 92 | train_sampler = torch.utils.data.distributed.DistributedSampler(train_dataset, num_replicas=opt.world_size, rank=opt.rank) 93 | valid_sampler = torch.utils.data.distributed.DistributedSampler(valid_dataset, num_replicas=opt.world_size, rank=opt.rank) 94 | 95 | train_loader = torch.utils.data.DataLoader( train_dataset, batch_size=train_batch_size, shuffle=True if not HVD3P else False, 96 | pin_memory = True, num_workers = int(workers), 97 | sampler = train_sampler if HVD3P else None, 98 | worker_init_fn = WrkSeeder, 99 | collate_fn = ds_load.SameTrCollate 100 | ) 101 | 102 | valid_loader = torch.utils.data.DataLoader( valid_dataset, batch_size=val_batch_size , pin_memory=True, 103 | num_workers = int(workers), sampler=valid_sampler if HVD3P else None) 104 | 105 | model = OrigamiNet() 106 | model.apply(init_bn) 107 | model.train() 108 | 109 | if OnceExecWorker: import pprint;[print(k,model.lreszs[k]) for k in sorted(model.lreszs.keys())] 110 | 111 | biparams = list(dict(filter(lambda kv: 'bias' in kv[0], model.named_parameters())).values()) 112 | nonbiparams = list(dict(filter(lambda kv: 'bias' not in kv[0], model.named_parameters())).values()) 113 | 114 | if not pO.DDP: 115 | model = model.to(device) 116 | else: 117 | model.cuda(opt.rank) 118 | 119 | optimizer = optim.Adam(model.parameters(), lr=lr) 120 | lr_scheduler = torch.optim.lr_scheduler.ExponentialLR(optimizer, gamma=10**(-1/90000)) 121 | 122 | if OnceExecWorker and WdB: 123 | wandb.watch(model, log="all") 124 | 125 | if pO.HVD: 126 | hvd.broadcast_parameters(model.state_dict(), root_rank=0) 127 | hvd.broadcast_optimizer_state(optimizer, root_rank=0) 128 | optimizer = hvd.DistributedOptimizer(optimizer, named_parameters=model.named_parameters()) 129 | # optimizer = hvd.DistributedOptimizer(optimizer, named_parameters=model.named_parameters(), compression=hvd.Compression.fp16) 130 | 131 | if pO.DDP and opt.rank!=0: 132 | random.seed() 133 | np.random.seed() 134 | 135 | if AMP: 136 | model, optimizer = amp.initialize(model, optimizer, opt_level = "O1") 137 | if pO.DP: 138 | model = torch.nn.DataParallel(model) 139 | elif pO.DDP: 140 | model = pDDP(model, device_ids=[opt.rank], output_device=opt.rank,find_unused_parameters=False) 141 | 142 | 143 | 144 | model_ema = ModelEma(model) 145 | 146 | if continue_model != '': 147 | if OnceExecWorker: print(f'loading pretrained model from {continue_model}') 148 | checkpoint = torch.load(continue_model, map_location=f'cuda:{opt.rank}' if HVD3P else None) 149 | model.load_state_dict(checkpoint['model'], strict=True) 150 | optimizer.load_state_dict(checkpoint['optimizer']) 151 | model_ema._load_checkpoint(continue_model, f'cuda:{opt.rank}' if HVD3P else None) 152 | 153 | criterion = torch.nn.CTCLoss(reduction='none', zero_infinity=True).to(device) 154 | converter = CTCLabelConverter(train_dataset.ralph.values()) 155 | 156 | if OnceExecWorker: 157 | with open(f'./saved_models/{experiment_name}/opt.txt', 'a') as opt_file: 158 | opt_log = '------------ Options -------------\n' 159 | args = vars(opt) 160 | for k, v in args.items(): 161 | opt_log += f'{str(k)}: {str(v)}\n' 162 | opt_log += '---------------------------------------\n' 163 | opt_log += gin.operative_config_str() 164 | opt_file.write(opt_log) 165 | if WdB: 166 | wandb.config.gin_str = gin.operative_config_str().splitlines() 167 | 168 | 169 | print(optimizer) 170 | print(opt_log) 171 | 172 | start_time = time.time() 173 | best_accuracy = -1 174 | best_norm_ED = 1e+6 175 | best_CER = 1e+6 176 | i = 0 177 | gAcc = 1 178 | epoch = 1 179 | btReplay = False and AMP 180 | max_batch_replays = 3 181 | 182 | if HVD3P: train_sampler.set_epoch(epoch) 183 | titer = iter(train_loader) 184 | 185 | while(True): 186 | start_time = time.time() 187 | 188 | model.zero_grad() 189 | train_loss = Metric(pO,'train_loss') 190 | 191 | for j in trange(valInterval, leave=False, desc='Training'): 192 | 193 | try: 194 | image_tensors, labels = next(titer) 195 | except StopIteration: 196 | epoch += 1 197 | if HVD3P: train_sampler.set_epoch(epoch) 198 | titer = iter(train_loader) 199 | image_tensors, labels = next(titer) 200 | 201 | image = image_tensors.to(device) 202 | text, length = converter.encode(labels) 203 | batch_size = image.size(0) 204 | 205 | replay_batch = True 206 | maxR = 3 207 | while replay_batch and maxR>0: 208 | maxR -= 1 209 | 210 | preds = model(image,text).float() 211 | preds_size = torch.IntTensor([preds.size(1)] * batch_size).to(device) 212 | preds = preds.permute(1, 0, 2).log_softmax(2) 213 | 214 | if i==0 and OnceExecWorker: 215 | print('Model inp : ',image.dtype,image.size()) 216 | print('CTC inp : ',preds.dtype,preds.size(),preds_size[0]) 217 | 218 | # To avoid ctc_loss issue, disabled cudnn for the computation of the ctc_loss 219 | torch.backends.cudnn.enabled = False 220 | cost = criterion(preds, text.to(device), preds_size, length.to(device)).mean() / gAcc 221 | torch.backends.cudnn.enabled = True 222 | 223 | train_loss.update(cost) 224 | 225 | optimizer.zero_grad() 226 | default_optimizer_step = optimizer.step # added for batch replay 227 | 228 | if not AMP: 229 | cost.backward() 230 | replay_batch = False 231 | else: 232 | with amp.scale_loss(cost, optimizer) as scaled_loss: 233 | scaled_loss.backward() 234 | if pO.HVD: optimizer.synchronize() 235 | 236 | if optimizer.step is default_optimizer_step or not btReplay: 237 | replay_batch = False 238 | elif maxR>0: 239 | optimizer.step() 240 | 241 | 242 | if btReplay: amp._amp_state.loss_scalers[0]._loss_scale = mx_sc 243 | 244 | if (i+1) % gAcc == 0: 245 | 246 | if pO.HVD and AMP: 247 | with optimizer.skip_synchronize(): 248 | optimizer.step() 249 | else: 250 | optimizer.step() 251 | 252 | model.zero_grad() 253 | model_ema.update(model, num_updates=i/2) 254 | 255 | if (i+1) % (gAcc*2) == 0: 256 | lr_scheduler.step() 257 | 258 | i += 1 259 | 260 | # validation part 261 | if True: 262 | 263 | elapsed_time = time.time() - start_time 264 | start_time = time.time() 265 | 266 | model.eval() 267 | with torch.no_grad(): 268 | 269 | 270 | valid_loss, current_accuracy, current_norm_ED, ted, bleu, preds, labels, infer_time = validation( 271 | model_ema.ema, criterion, valid_loader, converter, opt, pO) 272 | 273 | model.train() 274 | v_time = time.time() - start_time 275 | 276 | if OnceExecWorker: 277 | if current_norm_ED < best_norm_ED: 278 | best_norm_ED = current_norm_ED 279 | checkpoint = { 280 | 'model': model.state_dict(), 281 | 'state_dict_ema': model_ema.ema.state_dict(), 282 | 'optimizer': optimizer.state_dict(), 283 | } 284 | torch.save(checkpoint, f'./saved_models/{experiment_name}/best_norm_ED.pth') 285 | 286 | if ted < best_CER: 287 | best_CER = ted 288 | 289 | if current_accuracy > best_accuracy: 290 | best_accuracy = current_accuracy 291 | 292 | out = f'[{i}] Loss: {train_loss.avg:0.5f} time: ({elapsed_time:0.1f},{v_time:0.1f})' 293 | out += f' vloss: {valid_loss:0.3f}' 294 | out += f' CER: {ted:0.4f} NER: {current_norm_ED:0.4f} lr: {lr_scheduler.get_lr()[0]:0.5f}' 295 | out += f' bAcc: {best_accuracy:0.1f}, bNER: {best_norm_ED:0.4f}, bCER: {best_CER:0.4f}, B: {bleu*100:0.2f}' 296 | print(out) 297 | 298 | with open(f'./saved_models/{experiment_name}/log_train.txt', 'a') as log: log.write(out + '\n') 299 | 300 | if WdB: 301 | wandb.log({'lr': lr_scheduler.get_lr()[0], 'It':i, 'nED': current_norm_ED, 'B':bleu*100, 302 | 'tloss':train_loss.avg, 'AnED': best_norm_ED, 'CER':ted, 'bestCER':best_CER, 'vloss':valid_loss}) 303 | 304 | if i == num_iter: 305 | print('end the training') 306 | sys.exit() 307 | 308 | def gInit(opt): 309 | global pO, OnceExecWorker 310 | gin.parse_config_file(opt.gin) 311 | pO = parOptions(**{ginM('dist'):True}) 312 | 313 | if pO.HVD: 314 | hvd.init() 315 | torch.cuda.set_device(hvd.local_rank()) 316 | 317 | OnceExecWorker = (pO.HVD and hvd.rank() == 0) or (pO.DP) 318 | cudnn.benchmark = True 319 | 320 | 321 | def rSeed(sd): 322 | random.seed(sd) 323 | np.random.seed(sd) 324 | torch.manual_seed(sd) 325 | torch.cuda.manual_seed(sd) 326 | 327 | def launch_fn(rank, opt): 328 | global OnceExecWorker 329 | gInit(opt) 330 | OnceExecWorker = OnceExecWorker or (pO.DDP and rank==0) 331 | mp.set_start_method('fork', force=True) 332 | 333 | os.environ['MASTER_ADDR'] = 'localhost' 334 | os.environ['MASTER_PORT'] = str(opt.port) 335 | 336 | dist.init_process_group("nccl", rank=rank, world_size=opt.num_gpu) 337 | 338 | #to ensure identical init parameters 339 | rSeed(opt.manualSeed) 340 | 341 | torch.cuda.set_device(rank) 342 | opt.world_size = opt.num_gpu 343 | opt.rank = rank 344 | 345 | train(opt) 346 | 347 | if __name__ == '__main__': 348 | 349 | parser = argparse.ArgumentParser() 350 | parser.add_argument('--gin', help='Gin config file') 351 | 352 | opt = parser.parse_args() 353 | gInit(opt) 354 | opt.manualSeed = ginM('manualSeed') 355 | opt.port = ginM('port') 356 | 357 | if OnceExecWorker: 358 | rSeed(opt.manualSeed) 359 | 360 | opt.num_gpu = torch.cuda.device_count() 361 | 362 | 363 | if pO.HVD: 364 | opt.world_size = hvd.size() 365 | opt.rank = hvd.rank() 366 | 367 | if not pO.DDP: 368 | train(opt) 369 | else: 370 | mp.spawn(launch_fn, args=(opt,), nprocs=opt.num_gpu) -------------------------------------------------------------------------------- /utils.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import torch.distributed as dist 3 | 4 | import horovod.torch as hvd 5 | 6 | from copy import deepcopy 7 | from collections import OrderedDict 8 | device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') 9 | 10 | 11 | class CTCLabelConverter(object): 12 | """ Convert between text-label and text-index """ 13 | 14 | def __init__(self, character): 15 | # character (str): set of the possible characters. 16 | dict_character = list(character) 17 | 18 | self.dict = {} 19 | for i, char in enumerate(dict_character): 20 | # NOTE: 0 is reserved for 'blank' token required by CTCLoss 21 | self.dict[char] = i + 1 22 | 23 | self.character = ['[blank]'] + dict_character # dummy '[blank]' token for CTCLoss (index 0) 24 | 25 | def encode(self, text): 26 | """convert text-label into text-index. 27 | input: 28 | text: text labels of each image. [batch_size] 29 | 30 | output: 31 | text: concatenated text index for CTCLoss. 32 | [sum(text_lengths)] = [text_index_0 + text_index_1 + ... + text_index_(n - 1)] 33 | length: length of each text. [batch_size] 34 | """ 35 | length = [len(s) for s in text] 36 | text = ''.join(text) 37 | text = [self.dict[char] for char in text] 38 | 39 | return (torch.IntTensor(text).to(device), torch.IntTensor(length).to(device)) 40 | 41 | def decode(self, text_index, length): 42 | """ convert text-index into text-label. """ 43 | texts = [] 44 | index = 0 45 | for l in length: 46 | t = text_index[index:index + l] 47 | 48 | char_list = [] 49 | for i in range(l): 50 | if t[i] != 0 and (not (i > 0 and t[i - 1] == t[i])) and t[i] Loaded state_dict_ema") 152 | else: 153 | print("=> Failed to find state_dict_ema, starting from loaded model weights") 154 | 155 | def update(self, model, num_updates=-1): 156 | # correct a mismatch in state dict keys 157 | needs_module = hasattr(model, 'module') and not self.ema_has_module 158 | if num_updates >= 0: 159 | _cdecay = min(self.decay, (1 + num_updates) / (10 + num_updates)) 160 | else: 161 | _cdecay = self.decay 162 | 163 | with torch.no_grad(): 164 | msd = model.state_dict() 165 | for k, ema_v in self.ema.state_dict().items(): 166 | if needs_module: 167 | k = 'module.' + k 168 | model_v = msd[k].detach() 169 | if self.device: 170 | model_v = model_v.to(device=self.device) 171 | ema_v.copy_(ema_v * _cdecay + (1. - _cdecay) * model_v) --------------------------------------------------------------------------------