diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6b6401260..2d65938a4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,11 +2,10 @@ name: CI on: push: - branches: fbopt + branches: mhof_dev_merge pull_request: - branches: fbopt + branches: mhof_dev_merge workflow_dispatch: - jobs: test: name: Run tests @@ -32,7 +31,7 @@ jobs: - name: test if api works run: poetry run python examples/api/jigen_dann_transformer.py - name: Generate coverage report - run: rm -r zoutput && poetry run pytest --cov=domainlab tests/ --cov-report=xml + run: rm -rf zoutput && poetry run pytest --maxfail=1 -vvv --tb=short --cov=domainlab tests/ --cov-report=xml - name: Upload coverage to Codecov uses: codecov/codecov-action@v1 with: @@ -42,8 +41,14 @@ jobs: env: CODECOV_TOKEN: 02ecb3ac-b7ce-4ea4-90a2-961c3d1a1030 - name: check if readme yaml works - run: rm -r zoutput && python main_out.py -c ./examples/conf/vlcs_diva_mldg_dial.yaml + run: rm -rf zoutput && python main_out.py -c ./examples/conf/vlcs_diva_mldg_dial.yaml - name: test if examples in markdown works - run: bash -x -v ci_run_examples.sh + run: bash -x -v scripts/ci_run_examples.sh - name: test if benchmark works - run: pip install snakemake==7.32.0 && pip install pulp==2.7.0 && sed -i '1s/^/#!\/bin\/bash -x -v\n/' run_benchmark_standalone.sh && bash -x -v run_benchmark_standalone.sh examples/benchmark/demo_shared_hyper_grid.yaml && cat zoutput/benchmarks/mnist_benchmark_grid/hyperparameters.csv && cat zoutput/benchmarks/mnist_benchmark_grid/results.csv + run: | + pip install snakemake==7.32.0 && pip install pulp==2.7.0 + echo "insert a shebang line (#!/bin/bash -x -v) at the beginning of the bash script" + sed -i '1s/^/#!\/bin\/bash -x -v\n/' run_benchmark_standalone.sh + bash -x -v run_benchmark_standalone.sh examples/benchmark/demo_shared_hyper_grid.yaml + cat zoutput/benchmarks/mnist_benchmark_grid*/hyperparameters.csv + cat zoutput/benchmarks/mnist_benchmark_grid*/results.csv diff --git a/.gitignore b/.gitignore index edfe19c37..b001bad9e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,11 @@ .ropeproject -./zdpath -./zoutput +/zdpath +/zoutput tests/__pycache__/ *.pyc .vscode/ -data/pacs +domainlab/zdata/pacs +/data/ +/dist +/domainlab.egg-info +/runs diff --git a/README.md b/README.md index ccedf4048..e16d02681 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,141 @@ -# M-HOF-Opt: Multi-Objective Hierarchical Output Feedback Optimization via Multiplier Induced Loss Landscape Scheduling +# DomainLab: modular python package for training domain invariant neural networks -Source: https://arxiv.org/pdf/2403.13728.pdf +![GH Actions CI ](https://github.com/marrlab/DomainLab/actions/workflows/ci.yml/badge.svg?branch=master) +[![codecov](https://codecov.io/gh/marrlab/DomainLab/branch/master/graph/badge.svg)](https://app.codecov.io/gh/marrlab/DomainLab) +[![Codacy Badge](https://app.codacy.com/project/badge/Grade/bc22a1f9afb742efb02b87284e04dc86)](https://www.codacy.com/gh/marrlab/DomainLab/dashboard) +[![Documentation](https://img.shields.io/badge/Documentation-Here)](https://marrlab.github.io/DomainLab/) +[![pages-build-deployment](https://github.com/marrlab/DomainLab/actions/workflows/pages/pages-build-deployment/badge.svg)](https://github.com/marrlab/DomainLab/actions/workflows/pages/pages-build-deployment) + +## Distribution shifts, domain generalization and DomainLab + +Neural networks trained using data from a specific distribution (domain) usually fail to generalize to novel distributions (domains). Domain generalization aims at learning domain invariant features by utilizing data from multiple domains (data sites, cohorts, batches, vendors) so the learned feature can be generalized to new unseen domains (distributions). + +DomainLab is a software platform with state-of-the-art domain generalization algorithms implemented and designed by maximal decoupling of different software components thus enhancing maximal code reuse. + +### DomainLab +DomainLab decouples the following concepts or objects: +- task $M$: In DomainLab, a task is a container for datasets from different domains. (e.g. from distribution $D_1$ and $D_2$). The task offers a static protocol to evaluate the generalization performance of a neural network: which dataset(s) is used for training, and which dataset(s) is used for testing. +- neural network: a map $\phi$ from the input data to the feature space and a map $\varphi$ from the feature space to output $\hat{y}$ (e.g. decision variable). +- model: structural risk in the form of $\ell() + \mu R()$ where + - $\ell(Y, \hat{y}=\varphi(\phi(X)))$ is the task-specific empirical loss (e.g. cross entropy for classification task). + - $R(\phi(X))$ is the penalty loss to boost domain invariant feature extraction using $\phi$. + - $\mu$ is the corresponding multiplier to each penalty function factor. +- trainer: an object that guides the data flow to model and append further domain invariant losses +like inter-domain feature alignment. + +We offer detailed documentation on how these models and trainers work on our documentation page: https://marrlab.github.io/DomainLab/ + +DomainLab makes it possible to combine models with models, trainers with models, and trainers with trainers in a decorator pattern like the line of code below + +``` +Trainer A( + Trainer B(Model C( + Model D(network E), + network E, + network F + ) + ) + ) +``` + +which correspond to $\ell() + \mu_a R_a() + \mu_b R_b + \mu_c R_c() + \mu_d R_d()$, where Model C and Model D share neural network E, but Model C has an extra neural network F. All models share the same neural network for feature extraction, but can have different auxiliary networks for $R()$. + +
+
+ +
+
+ +## Getting started + +### Installation +For the development version in Github, see [Installation and Dependencies handling](./docs/doc_install.md) + +We also offer a PyPI version here https://pypi.org/project/domainlab/ which one could install via `pip install domainlab` and it is recommended to create a virtual environment for it. + +### Task specification +We offer various ways for the user to specify a scenario to evaluate the generalization performance via training on a limited number of datasets. See detail in +[Task Specification](./docs/doc_tasks.md) + +### Example and usage +#### Available arguments for commandline + +The following command tells which arguments/hyperparameters/multipliers are available to be set by the user and which model they are associated with + +```shell +python main_out.py --help +``` + +or + +``` +domainlab --help +``` + +#### Command line configuration file + +`domainlab -c ./examples/conf/vlcs_diva_mldg_dial.yaml` (if you install via pip) + +or if you clone this the code repository for DomainLab + +`python main_out.py -c ./examples/conf/vlcs_diva_mldg_dial.yaml` + +where the configuration file below can be downloaded [here](https://raw.githubusercontent.com/marrlab/DomainLab/master/examples/conf/vlcs_diva_mldg_dial.yaml) +``` +te_d: caltech # domain name of test domain +tpath: examples/tasks/task_vlcs.py # python file path to specify the task +bs: 2 # batch size +model: dann_diva # combine model DANN with DIVA +epos: 1 # number of epochs +trainer: mldg_dial # combine trainer MLDG and DIAL +gamma_y: 700000.0 # hyperparameter of diva +gamma_d: 100000.0 # hyperparameter of diva +npath: examples/nets/resnet.py # neural network for class classification +npath_dom: examples/nets/resnet.py # neural network for domain classification +``` +See details in [Command line usage](./docs/doc_usage_cmd.md) + +#### or Programm against DomainLab API + +See example here: [Transformer as feature extractor, decorate JIGEN with DANN, training using MLDG decorated by DIAL](https://github.com/marrlab/DomainLab/blob/master/examples/api/jigen_dann_transformer.py) + + +### Benchmark different methods +DomainLab provides a powerful benchmark functionality. +To benchmark several algorithms(combination of neural networks, models, trainers and associated hyperparameters), a single line command along with a benchmark configuration files is sufficient. See details in [benchmarks documentation and tutorial](./docs/doc_benchmark.md) + +One could simply run +`bash run_benchmark_slurm.sh your_benchmark_configuration.yaml` to launch different experiments with specified configuraiton. + + +For example, the following result (without any augmentation like flip) is for PACS dataset using ResNet. The reader should note that using different neural network, whether pre-trained or not, what kind of preprocessinga and augmentation to use can lead to very different result distributions, which is one of the features DomainLab provide: the above factors get decoupled in DomainLab. + +
+
+ +
+
Benchmark results plot generated from DomainLab, where each rectangle represent one model trainer combination, each bar inside the rectangle represent a unique hyperparameter index associated with that method combination, each dot represent a random seeds.
+
+
+
+ + +### Citation + +Source: https://arxiv.org/pdf/2403.14356.pdf Citation: ```bibtex -@misc{sun2024m, - title={M-HOF-Opt: Multi-Objective Hierarchical Output Feedback Optimization via Multiplier Induced Loss Landscape Scheduling}, - author={Sun, Xudong and Chen, Nutan and Gossmann, Alexej and Xing, Yu and Dorigatt, Emilio and Drost, Felix and Feistner, Carla and Scarcella, Daniele and Beer, Lisa and Marr, Carsten}, - journal={https://arxiv.org/pdf/2403.13728.pdf}, - number={2403.13728}, - year={2024}, - publisher={https://arxiv.org/pdf/2403.13728.pdf} +@misc{sun2024domainlab, + title={DomainLab: A modular Python package for domain generalization in deep learning}, + author={Sun, Xudong and Feistner, Carla and Gossmann, Alexej and Schwarz, George and Umer, Rao Muhammad and Beer, Lisa and Rockenschaub, Patrick and Shrestha, Rahul Babu and Gruber, Armin and Chen, Nutan and others}, + journal={https://arxiv.org/pdf/2403.14356.pdf}, + year={2024} } ``` +# M-HOF-Opt: Multi-Objective Hierarchical Output Feedback Optimization via Multiplier Induced Loss Landscape Scheduling +Source: https://arxiv.org/pdf/2403.13728.pdf M-HOF-Opt is implemented in [DomainLab](https://github.com/marrlab/DomainLab). If you meet any problems, feel free to report them at https://github.com/marrlab/DomainLab/issues @@ -67,3 +189,15 @@ bash script_generate_all_figures_diva.sh ``` The resulting figures will be stored in the directory `figures_diva`, which can be changed by editing the top of the [script_generate_all_figures_diva.sh](https://github.com/marrlab/DomainLab/blob/mhof/script_generate_all_figures_diva.sh) file if needed. + +Citation: +```bibtex +@misc{sun2024m, + title={M-HOF-Opt: Multi-Objective Hierarchical Output Feedback Optimization via Multiplier Induced Loss Landscape Scheduling}, + author={Sun, Xudong and Chen, Nutan and Gossmann, Alexej and Xing, Yu and Dorigatt, Emilio and Drost, Felix and Feistner, Carla and Scarcella, Daniele and Beer, Lisa and Marr, Carsten}, + journal={https://arxiv.org/pdf/2403.13728.pdf}, + number={2403.13728}, + year={2024}, + publisher={https://arxiv.org/pdf/2403.13728.pdf} +} +``` \ No newline at end of file diff --git a/a_test_feedforward_irm.sh b/a_test_feedforward_irm.sh new file mode 100644 index 000000000..007f3e9ac --- /dev/null +++ b/a_test_feedforward_irm.sh @@ -0,0 +1 @@ +python main_out.py --te_d=0 --tr_d 1 2 --task=mnistcolor10 --model=erm --nname=conv_bn_pool_2 --trainer=hyperscheduler_irm_dial --k_i_gain_ratio=0.5 --force_setpoint_change_once --epos=10 --epos_min=4 --exp_shoulder_clip=1 --mu_clip=100 --ini_setpoint_ratio=0.99999999 diff --git a/a_test_mhof_irm.sh b/a_test_mhof_irm.sh new file mode 100644 index 000000000..3cf1ae7ed --- /dev/null +++ b/a_test_mhof_irm.sh @@ -0,0 +1 @@ +python main_out.py --te_d=0 --tr_d 1 2 --task=mnistcolor10 --model=erm --nname=conv_bn_pool_2 --trainer=fbopt_irm_dial --k_i_gain_ratio=0.5 --force_setpoint_change_once --epos=500 --epos_min=400 --exp_shoulder_clip=1 --mu_clip=100 --ini_setpoint_ratio=0.9 --nb4reg_over_task_ratio=0 --tr_with_init_mu --coeff_ma_setpoint=0.0 --str_setpoint_ada="SliderAnyComponent()" diff --git a/data/mixed_codec/caltech/auto/text.txt b/data/mixed_codec/caltech/auto/text.txt deleted file mode 100644 index 557db03de..000000000 --- a/data/mixed_codec/caltech/auto/text.txt +++ /dev/null @@ -1 +0,0 @@ -Hello World diff --git a/data/mixed_codec/caltech/auto/train_imgs_150.jpg b/data/mixed_codec/caltech/auto/train_imgs_150.jpg deleted file mode 100644 index 8d01af8c3..000000000 Binary files a/data/mixed_codec/caltech/auto/train_imgs_150.jpg and /dev/null differ diff --git a/data/mixed_codec/caltech/auto/train_imgs_151.jpg b/data/mixed_codec/caltech/auto/train_imgs_151.jpg deleted file mode 100644 index 4d1bdc631..000000000 Binary files a/data/mixed_codec/caltech/auto/train_imgs_151.jpg and /dev/null differ diff --git a/data/mixed_codec/caltech/auto/train_imgs_152.png b/data/mixed_codec/caltech/auto/train_imgs_152.png deleted file mode 100644 index 7582a9d15..000000000 Binary files a/data/mixed_codec/caltech/auto/train_imgs_152.png and /dev/null differ diff --git a/data/mixed_codec/caltech/vogel/train_imgs_1.jpg b/data/mixed_codec/caltech/vogel/train_imgs_1.jpg deleted file mode 100644 index 36e8af5d6..000000000 Binary files a/data/mixed_codec/caltech/vogel/train_imgs_1.jpg and /dev/null differ diff --git a/data/mixed_codec/caltech/vogel/train_imgs_2.jpg b/data/mixed_codec/caltech/vogel/train_imgs_2.jpg deleted file mode 100644 index 5affad9fb..000000000 Binary files a/data/mixed_codec/caltech/vogel/train_imgs_2.jpg and /dev/null differ diff --git a/data/mixed_codec/caltech/vogel/train_imgs_3.png b/data/mixed_codec/caltech/vogel/train_imgs_3.png deleted file mode 100644 index 85448b532..000000000 Binary files a/data/mixed_codec/caltech/vogel/train_imgs_3.png and /dev/null differ diff --git a/data/mixed_codec/sun/sofa/train_imgs_609.jpg b/data/mixed_codec/sun/sofa/train_imgs_609.jpg deleted file mode 100644 index 239adbfcc..000000000 Binary files a/data/mixed_codec/sun/sofa/train_imgs_609.jpg and /dev/null differ diff --git a/data/mixed_codec/sun/sofa/train_imgs_612.jpg b/data/mixed_codec/sun/sofa/train_imgs_612.jpg deleted file mode 100644 index 55a3480d0..000000000 Binary files a/data/mixed_codec/sun/sofa/train_imgs_612.jpg and /dev/null differ diff --git a/data/mixed_codec/sun/vehicle/train_imgs_17.jpg b/data/mixed_codec/sun/vehicle/train_imgs_17.jpg deleted file mode 100644 index 07f3213cc..000000000 Binary files a/data/mixed_codec/sun/vehicle/train_imgs_17.jpg and /dev/null differ diff --git a/data/mixed_codec/sun/vehicle/train_imgs_19.jpg b/data/mixed_codec/sun/vehicle/train_imgs_19.jpg deleted file mode 100644 index 33aba5e89..000000000 Binary files a/data/mixed_codec/sun/vehicle/train_imgs_19.jpg and /dev/null differ diff --git a/data/pacs_mini_10/art_painting/dog/pic_195.jpg b/data/pacs_mini_10/art_painting/dog/pic_195.jpg deleted file mode 100644 index 40f008068..000000000 Binary files a/data/pacs_mini_10/art_painting/dog/pic_195.jpg and /dev/null differ diff --git a/data/pacs_mini_10/art_painting/dog/pic_304.jpg b/data/pacs_mini_10/art_painting/dog/pic_304.jpg deleted file mode 100644 index 5f558c11d..000000000 Binary files a/data/pacs_mini_10/art_painting/dog/pic_304.jpg and /dev/null differ diff --git a/data/pacs_mini_10/art_painting/elephant/pic_026.jpg b/data/pacs_mini_10/art_painting/elephant/pic_026.jpg deleted file mode 100644 index 2901d4715..000000000 Binary files a/data/pacs_mini_10/art_painting/elephant/pic_026.jpg and /dev/null differ diff --git a/data/pacs_mini_10/art_painting/giraffe/pic_243.jpg b/data/pacs_mini_10/art_painting/giraffe/pic_243.jpg deleted file mode 100644 index 2ffc182e8..000000000 Binary files a/data/pacs_mini_10/art_painting/giraffe/pic_243.jpg and /dev/null differ diff --git a/data/pacs_mini_10/art_painting/guitar/pic_020.jpg b/data/pacs_mini_10/art_painting/guitar/pic_020.jpg deleted file mode 100644 index bd14528d6..000000000 Binary files a/data/pacs_mini_10/art_painting/guitar/pic_020.jpg and /dev/null differ diff --git a/data/pacs_mini_10/art_painting/guitar/pic_182.jpg b/data/pacs_mini_10/art_painting/guitar/pic_182.jpg deleted file mode 100644 index b137ff1db..000000000 Binary files a/data/pacs_mini_10/art_painting/guitar/pic_182.jpg and /dev/null differ diff --git a/data/pacs_mini_10/art_painting/horse/pic_142.jpg b/data/pacs_mini_10/art_painting/horse/pic_142.jpg deleted file mode 100644 index a5c00422d..000000000 Binary files a/data/pacs_mini_10/art_painting/horse/pic_142.jpg and /dev/null differ diff --git a/data/pacs_mini_10/art_painting/person/pic_165.jpg b/data/pacs_mini_10/art_painting/person/pic_165.jpg deleted file mode 100644 index 83803783b..000000000 Binary files a/data/pacs_mini_10/art_painting/person/pic_165.jpg and /dev/null differ diff --git a/data/pacs_mini_10/art_painting/person/pic_199.jpg b/data/pacs_mini_10/art_painting/person/pic_199.jpg deleted file mode 100644 index 0afd6b2a6..000000000 Binary files a/data/pacs_mini_10/art_painting/person/pic_199.jpg and /dev/null differ diff --git a/data/pacs_mini_10/art_painting/person/pic_497.jpg b/data/pacs_mini_10/art_painting/person/pic_497.jpg deleted file mode 100644 index 9e72f4953..000000000 Binary files a/data/pacs_mini_10/art_painting/person/pic_497.jpg and /dev/null differ diff --git a/data/pacs_mini_10/cartoon/dog/pic_112.jpg b/data/pacs_mini_10/cartoon/dog/pic_112.jpg deleted file mode 100644 index 0ee2f1c05..000000000 Binary files a/data/pacs_mini_10/cartoon/dog/pic_112.jpg and /dev/null differ diff --git a/data/pacs_mini_10/cartoon/dog/pic_137.jpg b/data/pacs_mini_10/cartoon/dog/pic_137.jpg deleted file mode 100644 index 6926b6aeb..000000000 Binary files a/data/pacs_mini_10/cartoon/dog/pic_137.jpg and /dev/null differ diff --git a/data/pacs_mini_10/cartoon/dog/pic_219.jpg b/data/pacs_mini_10/cartoon/dog/pic_219.jpg deleted file mode 100644 index ce2957c1b..000000000 Binary files a/data/pacs_mini_10/cartoon/dog/pic_219.jpg and /dev/null differ diff --git a/data/pacs_mini_10/cartoon/elephant/pic_332.jpg b/data/pacs_mini_10/cartoon/elephant/pic_332.jpg deleted file mode 100644 index f6b164d62..000000000 Binary files a/data/pacs_mini_10/cartoon/elephant/pic_332.jpg and /dev/null differ diff --git a/data/pacs_mini_10/cartoon/giraffe/pic_377.jpg b/data/pacs_mini_10/cartoon/giraffe/pic_377.jpg deleted file mode 100644 index c4eace676..000000000 Binary files a/data/pacs_mini_10/cartoon/giraffe/pic_377.jpg and /dev/null differ diff --git a/data/pacs_mini_10/cartoon/giraffe/pic_382.jpg b/data/pacs_mini_10/cartoon/giraffe/pic_382.jpg deleted file mode 100644 index 386b37ae0..000000000 Binary files a/data/pacs_mini_10/cartoon/giraffe/pic_382.jpg and /dev/null differ diff --git a/data/pacs_mini_10/cartoon/horse/pic_064.jpg b/data/pacs_mini_10/cartoon/horse/pic_064.jpg deleted file mode 100644 index dec5f3f40..000000000 Binary files a/data/pacs_mini_10/cartoon/horse/pic_064.jpg and /dev/null differ diff --git a/data/pacs_mini_10/cartoon/house/pic_040.jpg b/data/pacs_mini_10/cartoon/house/pic_040.jpg deleted file mode 100644 index 8318b173d..000000000 Binary files a/data/pacs_mini_10/cartoon/house/pic_040.jpg and /dev/null differ diff --git a/data/pacs_mini_10/cartoon/person/pic_111.jpg b/data/pacs_mini_10/cartoon/person/pic_111.jpg deleted file mode 100644 index 9b364463b..000000000 Binary files a/data/pacs_mini_10/cartoon/person/pic_111.jpg and /dev/null differ diff --git a/data/pacs_mini_10/cartoon/person/pic_180.jpg b/data/pacs_mini_10/cartoon/person/pic_180.jpg deleted file mode 100644 index a22db07e7..000000000 Binary files a/data/pacs_mini_10/cartoon/person/pic_180.jpg and /dev/null differ diff --git a/data/pacs_mini_10/main.sh b/data/pacs_mini_10/main.sh deleted file mode 100644 index 8e44c8183..000000000 --- a/data/pacs_mini_10/main.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -# first argument is the file with pointers to image -# s -bash run_with_bash_copy_files_according2txt.sh ../pacs_split/art_painting_10.txt ~/Documents/dataset/PACS/raw . -bash run_with_bash_copy_files_according2txt.sh ../pacs_split/cartoon_10.txt ~/Documents/dataset/PACS/raw . -bash run_with_bash_copy_files_according2txt.sh ../pacs_split/photo_10.txt ~/Documents/dataset/PACS/raw . -bash run_with_bash_copy_files_according2txt.sh ../pacs_split/sketch_10.txt ~/Documents/dataset/PACS/raw . diff --git a/data/pacs_mini_10/photo/dog/n02103406_1011.jpg b/data/pacs_mini_10/photo/dog/n02103406_1011.jpg deleted file mode 100644 index 8859d6d21..000000000 Binary files a/data/pacs_mini_10/photo/dog/n02103406_1011.jpg and /dev/null differ diff --git a/data/pacs_mini_10/photo/elephant/n02503517_6232.jpg b/data/pacs_mini_10/photo/elephant/n02503517_6232.jpg deleted file mode 100644 index 06333ace2..000000000 Binary files a/data/pacs_mini_10/photo/elephant/n02503517_6232.jpg and /dev/null differ diff --git a/data/pacs_mini_10/photo/guitar/n02676566_7830.jpg b/data/pacs_mini_10/photo/guitar/n02676566_7830.jpg deleted file mode 100644 index 513f836b1..000000000 Binary files a/data/pacs_mini_10/photo/guitar/n02676566_7830.jpg and /dev/null differ diff --git a/data/pacs_mini_10/photo/horse/105_0223.jpg b/data/pacs_mini_10/photo/horse/105_0223.jpg deleted file mode 100644 index 6f8c61346..000000000 Binary files a/data/pacs_mini_10/photo/horse/105_0223.jpg and /dev/null differ diff --git a/data/pacs_mini_10/photo/house/pic_046.jpg b/data/pacs_mini_10/photo/house/pic_046.jpg deleted file mode 100644 index fee8e964f..000000000 Binary files a/data/pacs_mini_10/photo/house/pic_046.jpg and /dev/null differ diff --git a/data/pacs_mini_10/photo/house/pic_110.jpg b/data/pacs_mini_10/photo/house/pic_110.jpg deleted file mode 100644 index f7de2e500..000000000 Binary files a/data/pacs_mini_10/photo/house/pic_110.jpg and /dev/null differ diff --git a/data/pacs_mini_10/photo/house/pic_146.jpg b/data/pacs_mini_10/photo/house/pic_146.jpg deleted file mode 100644 index 2de68aedc..000000000 Binary files a/data/pacs_mini_10/photo/house/pic_146.jpg and /dev/null differ diff --git a/data/pacs_mini_10/photo/house/pic_218.jpg b/data/pacs_mini_10/photo/house/pic_218.jpg deleted file mode 100644 index d7271783c..000000000 Binary files a/data/pacs_mini_10/photo/house/pic_218.jpg and /dev/null differ diff --git a/data/pacs_mini_10/photo/person/253_0221.jpg b/data/pacs_mini_10/photo/person/253_0221.jpg deleted file mode 100644 index ba960df6a..000000000 Binary files a/data/pacs_mini_10/photo/person/253_0221.jpg and /dev/null differ diff --git a/data/pacs_mini_10/photo/person/253_0297.jpg b/data/pacs_mini_10/photo/person/253_0297.jpg deleted file mode 100644 index 88b89ec7a..000000000 Binary files a/data/pacs_mini_10/photo/person/253_0297.jpg and /dev/null differ diff --git a/data/pacs_mini_10/run_with_bash_copy_files_according2txt.sh b/data/pacs_mini_10/run_with_bash_copy_files_according2txt.sh deleted file mode 100644 index 695e46218..000000000 --- a/data/pacs_mini_10/run_with_bash_copy_files_according2txt.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -input=$1 -path=$2 - -# test string array works -sentence="this is a story" -stringarray=($sentence) -echo "${stringarray[0]}" - -while IFS= read -r line -do - echo "$line" - stringarray=($line) - echo "${stringarray[0]}" - relativepath=${stringarray[0]} - fullpath="$path/$relativepath" - echo "fullpath is $fullpath" - newpath="$3/$relativepath" - echo "newpath is $newpath" - newpath2=`dirname "$newpath"` - echo "newpath2 is $newpath2" - mkdir -p "$newpath2" - cp "$fullpath" "$newpath2" - # cp "$fullpath" --parent "$3" - -done < "$input" diff --git a/data/pacs_mini_10/sketch/dog/5302.png b/data/pacs_mini_10/sketch/dog/5302.png deleted file mode 100644 index 3ec54e87b..000000000 Binary files a/data/pacs_mini_10/sketch/dog/5302.png and /dev/null differ diff --git a/data/pacs_mini_10/sketch/dog/5317.png b/data/pacs_mini_10/sketch/dog/5317.png deleted file mode 100644 index 8e6434ab4..000000000 Binary files a/data/pacs_mini_10/sketch/dog/5317.png and /dev/null differ diff --git a/data/pacs_mini_10/sketch/dog/n02103406_3255-6.png b/data/pacs_mini_10/sketch/dog/n02103406_3255-6.png deleted file mode 100644 index 2921bfe54..000000000 Binary files a/data/pacs_mini_10/sketch/dog/n02103406_3255-6.png and /dev/null differ diff --git a/data/pacs_mini_10/sketch/elephant/5981.png b/data/pacs_mini_10/sketch/elephant/5981.png deleted file mode 100644 index 22562d022..000000000 Binary files a/data/pacs_mini_10/sketch/elephant/5981.png and /dev/null differ diff --git a/data/pacs_mini_10/sketch/elephant/n02503517_12688-4.png b/data/pacs_mini_10/sketch/elephant/n02503517_12688-4.png deleted file mode 100644 index 2bdebdc11..000000000 Binary files a/data/pacs_mini_10/sketch/elephant/n02503517_12688-4.png and /dev/null differ diff --git a/data/pacs_mini_10/sketch/giraffe/n02439033_13384-2.png b/data/pacs_mini_10/sketch/giraffe/n02439033_13384-2.png deleted file mode 100644 index 81ac8d66e..000000000 Binary files a/data/pacs_mini_10/sketch/giraffe/n02439033_13384-2.png and /dev/null differ diff --git a/data/pacs_mini_10/sketch/guitar/n02676566_8618-2.png b/data/pacs_mini_10/sketch/guitar/n02676566_8618-2.png deleted file mode 100644 index be920f071..000000000 Binary files a/data/pacs_mini_10/sketch/guitar/n02676566_8618-2.png and /dev/null differ diff --git a/data/pacs_mini_10/sketch/guitar/n03467517_6423-3.png b/data/pacs_mini_10/sketch/guitar/n03467517_6423-3.png deleted file mode 100644 index 7bfd45e84..000000000 Binary files a/data/pacs_mini_10/sketch/guitar/n03467517_6423-3.png and /dev/null differ diff --git a/data/pacs_mini_10/sketch/horse/n02374451_779-1.png b/data/pacs_mini_10/sketch/horse/n02374451_779-1.png deleted file mode 100644 index 1c09e0754..000000000 Binary files a/data/pacs_mini_10/sketch/horse/n02374451_779-1.png and /dev/null differ diff --git a/data/pacs_mini_10/sketch/house/8873.png b/data/pacs_mini_10/sketch/house/8873.png deleted file mode 100644 index 6645def94..000000000 Binary files a/data/pacs_mini_10/sketch/house/8873.png and /dev/null differ diff --git a/data/pacs_split/art_painting_10.txt b/data/pacs_split/art_painting_10.txt deleted file mode 100644 index 77f7627a2..000000000 --- a/data/pacs_split/art_painting_10.txt +++ /dev/null @@ -1,10 +0,0 @@ -art_painting/person/pic_199.jpg 7 -art_painting/person/pic_497.jpg 7 -art_painting/guitar/pic_020.jpg 4 -art_painting/dog/pic_195.jpg 1 -art_painting/guitar/pic_182.jpg 4 -art_painting/giraffe/pic_243.jpg 3 -art_painting/elephant/pic_026.jpg 2 -art_painting/dog/pic_304.jpg 1 -art_painting/horse/pic_142.jpg 5 -art_painting/person/pic_165.jpg 7 diff --git a/data/pacs_split/art_painting_100.txt b/data/pacs_split/art_painting_100.txt deleted file mode 100644 index 7da95eda1..000000000 --- a/data/pacs_split/art_painting_100.txt +++ /dev/null @@ -1,100 +0,0 @@ -art_painting/dog/pic_289.jpg 1 -art_painting/person/pic_460.jpg 7 -art_painting/horse/pic_073.jpg 5 -art_painting/horse/pic_108.jpg 5 -art_painting/dog/pic_324.jpg 1 -art_painting/elephant/pic_053.jpg 2 -art_painting/horse/pic_174.jpg 5 -art_painting/giraffe/pic_035.jpg 3 -art_painting/horse/pic_223.jpg 5 -art_painting/person/pic_387.jpg 7 -art_painting/dog/pic_196.jpg 1 -art_painting/horse/pic_171.jpg 5 -art_painting/person/pic_184.jpg 7 -art_painting/dog/pic_146.jpg 1 -art_painting/dog/pic_002.jpg 1 -art_painting/dog/pic_121.jpg 1 -art_painting/dog/pic_180.jpg 1 -art_painting/giraffe/pic_192.jpg 3 -art_painting/giraffe/pic_236.jpg 3 -art_painting/house/pic_306.jpg 6 -art_painting/person/pic_089.jpg 7 -art_painting/dog/pic_212.jpg 1 -art_painting/dog/pic_387.jpg 1 -art_painting/person/pic_214.jpg 7 -art_painting/elephant/pic_240.jpg 2 -art_painting/guitar/pic_064.jpg 4 -art_painting/elephant/pic_218.jpg 2 -art_painting/guitar/pic_011.jpg 4 -art_painting/horse/pic_151.jpg 5 -art_painting/house/pic_301.jpg 6 -art_painting/elephant/pic_193.jpg 2 -art_painting/dog/pic_117.jpg 1 -art_painting/person/pic_171.jpg 7 -art_painting/person/pic_143.jpg 7 -art_painting/house/pic_125.jpg 6 -art_painting/house/pic_044.jpg 6 -art_painting/dog/pic_077.jpg 1 -art_painting/person/pic_132.jpg 7 -art_painting/dog/pic_150.jpg 1 -art_painting/dog/pic_268.jpg 1 -art_painting/house/pic_207.jpg 6 -art_painting/guitar/pic_189.jpg 4 -art_painting/dog/pic_183.jpg 1 -art_painting/elephant/pic_164.jpg 2 -art_painting/guitar/pic_035.jpg 4 -art_painting/giraffe/pic_259.jpg 3 -art_painting/giraffe/pic_119.jpg 3 -art_painting/elephant/pic_098.jpg 2 -art_painting/horse/pic_160.jpg 5 -art_painting/giraffe/pic_204.jpg 3 -art_painting/horse/pic_196.jpg 5 -art_painting/giraffe/pic_046.jpg 3 -art_painting/dog/pic_245.jpg 1 -art_painting/horse/pic_083.jpg 5 -art_painting/house/pic_131.jpg 6 -art_painting/dog/pic_388.jpg 1 -art_painting/horse/pic_050.jpg 5 -art_painting/house/pic_171.jpg 6 -art_painting/elephant/pic_041.jpg 2 -art_painting/person/pic_108.jpg 7 -art_painting/guitar/pic_113.jpg 4 -art_painting/dog/pic_244.jpg 1 -art_painting/person/pic_111.jpg 7 -art_painting/horse/pic_081.jpg 5 -art_painting/dog/pic_186.jpg 1 -art_painting/dog/pic_258.jpg 1 -art_painting/house/pic_156.jpg 6 -art_painting/horse/pic_062.jpg 5 -art_painting/guitar/pic_085.jpg 4 -art_painting/dog/pic_090.jpg 1 -art_painting/person/pic_228.jpg 7 -art_painting/horse/pic_154.jpg 5 -art_painting/dog/pic_299.jpg 1 -art_painting/person/pic_510.jpg 7 -art_painting/person/pic_468.jpg 7 -art_painting/horse/pic_222.jpg 5 -art_painting/guitar/pic_104.jpg 4 -art_painting/giraffe/pic_015.jpg 3 -art_painting/person/pic_256.jpg 7 -art_painting/giraffe/pic_171.jpg 3 -art_painting/horse/pic_107.jpg 5 -art_painting/horse/pic_225.jpg 5 -art_painting/elephant/pic_102.jpg 2 -art_painting/guitar/pic_155.jpg 4 -art_painting/elephant/pic_144.jpg 2 -art_painting/giraffe/pic_058.jpg 3 -art_painting/person/pic_356.jpg 7 -art_painting/guitar/pic_136.jpg 4 -art_painting/person/pic_572.jpg 7 -art_painting/house/pic_104.jpg 6 -art_painting/elephant/pic_210.jpg 2 -art_painting/house/pic_346.jpg 6 -art_painting/dog/pic_246.jpg 1 -art_painting/dog/pic_024.jpg 1 -art_painting/elephant/pic_221.jpg 2 -art_painting/person/pic_145.jpg 7 -art_painting/person/pic_042.jpg 7 -art_painting/house/pic_116.jpg 6 -art_painting/house/pic_198.jpg 6 -art_painting/person/pic_342.jpg 7 diff --git a/data/pacs_split/art_painting_crossval_kfold.txt b/data/pacs_split/art_painting_crossval_kfold.txt deleted file mode 100644 index 61b3f44e1..000000000 --- a/data/pacs_split/art_painting_crossval_kfold.txt +++ /dev/null @@ -1,208 +0,0 @@ -art_painting/dog/pic_225.jpg 0 -art_painting/dog/pic_248.jpg 1 -art_painting/dog/pic_306.jpg 1 -art_painting/dog/pic_241.jpg 1 -art_painting/dog/pic_219.jpg 1 -art_painting/dog/pic_252.jpg 1 -art_painting/dog/pic_309.jpg 1 -art_painting/dog/pic_255.jpg 1 -art_painting/dog/pic_310.jpg 1 -art_painting/dog/pic_247.jpg 1 -art_painting/dog/pic_236.jpg 1 -art_painting/dog/pic_242.jpg 1 -art_painting/dog/pic_257.jpg 1 -art_painting/dog/pic_314.jpg 1 -art_painting/dog/pic_317.jpg 1 -art_painting/dog/pic_315.jpg 1 -art_painting/dog/pic_248.jpg 1 -art_painting/dog/pic_250.jpg 1 -art_painting/dog/pic_282.jpg 1 -art_painting/dog/pic_260.jpg 1 -art_painting/dog/pic_316.jpg 1 -art_painting/dog/pic_305.jpg 1 -art_painting/dog/pic_300.jpg 1 -art_painting/dog/pic_365.jpg 1 -art_painting/dog/pic_296.jpg 1 -art_painting/dog/pic_301.jpg 1 -art_painting/dog/pic_298.jpg 1 -art_painting/dog/pic_291.jpg 1 -art_painting/dog/pic_313.jpg 1 -art_painting/dog/pic_311.jpg 1 -art_painting/dog/pic_312.jpg 1 -art_painting/dog/pic_308.jpg 1 -art_painting/dog/pic_329.jpg 1 -art_painting/dog/pic_322.jpg 1 -art_painting/dog/pic_323.jpg 1 -art_painting/dog/pic_330.jpg 1 -art_painting/dog/pic_371.jpg 1 -art_painting/dog/pic_339.jpg 1 -art_painting/elephant/pic_243.jpg 2 -art_painting/elephant/pic_154.jpg 2 -art_painting/elephant/pic_239.jpg 2 -art_painting/elephant/pic_156.jpg 2 -art_painting/elephant/pic_167.jpg 2 -art_painting/elephant/pic_168.jpg 2 -art_painting/elephant/pic_162.jpg 2 -art_painting/elephant/pic_161.jpg 2 -art_painting/elephant/pic_159.jpg 2 -art_painting/elephant/pic_160.jpg 2 -art_painting/elephant/pic_158.jpg 2 -art_painting/elephant/pic_157.jpg 2 -art_painting/elephant/pic_166.jpg 2 -art_painting/elephant/pic_171.jpg 2 -art_painting/elephant/pic_169.jpg 2 -art_painting/elephant/pic_170.jpg 2 -art_painting/elephant/pic_176.jpg 2 -art_painting/elephant/pic_175.jpg 2 -art_painting/elephant/pic_173.jpg 2 -art_painting/elephant/pic_172.jpg 2 -art_painting/elephant/pic_082.jpg 2 -art_painting/elephant/pic_081.jpg 2 -art_painting/elephant/pic_080.jpg 2 -art_painting/elephant/pic_078.jpg 2 -art_painting/elephant/pic_079.jpg 2 -art_painting/elephant/pic_093.jpg 2 -art_painting/giraffe/pic_134.jpg 3 -art_painting/giraffe/pic_129.jpg 3 -art_painting/giraffe/pic_127.jpg 3 -art_painting/giraffe/pic_151.jpg 3 -art_painting/giraffe/pic_131.jpg 3 -art_painting/giraffe/pic_158.jpg 3 -art_painting/giraffe/pic_144.jpg 3 -art_painting/giraffe/pic_238.jpg 3 -art_painting/giraffe/pic_222.jpg 3 -art_painting/giraffe/pic_185.jpg 3 -art_painting/giraffe/pic_160.jpg 3 -art_painting/giraffe/pic_155.jpg 3 -art_painting/giraffe/pic_209.jpg 3 -art_painting/giraffe/pic_228.jpg 3 -art_painting/giraffe/pic_169.jpg 3 -art_painting/giraffe/pic_198.jpg 3 -art_painting/giraffe/pic_145.jpg 3 -art_painting/giraffe/pic_273.jpg 3 -art_painting/giraffe/pic_303.jpg 3 -art_painting/giraffe/pic_284.jpg 3 -art_painting/giraffe/pic_302.jpg 3 -art_painting/giraffe/pic_286.jpg 3 -art_painting/giraffe/pic_287.jpg 3 -art_painting/giraffe/pic_301.jpg 3 -art_painting/giraffe/pic_295.jpg 3 -art_painting/giraffe/pic_296.jpg 3 -art_painting/giraffe/pic_311.jpg 3 -art_painting/giraffe/pic_309.jpg 3 -art_painting/giraffe/pic_310.jpg 3 -art_painting/guitar/pic_125.jpg 4 -art_painting/guitar/pic_124.jpg 4 -art_painting/guitar/pic_179.jpg 4 -art_painting/guitar/pic_147.jpg 4 -art_painting/guitar/pic_146.jpg 4 -art_painting/guitar/pic_183.jpg 4 -art_painting/guitar/pic_126.jpg 4 -art_painting/guitar/pic_172.jpg 4 -art_painting/guitar/pic_137.jpg 4 -art_painting/guitar/pic_180.jpg 4 -art_painting/guitar/pic_150.jpg 4 -art_painting/guitar/pic_176.jpg 4 -art_painting/guitar/pic_187.jpg 4 -art_painting/guitar/pic_186.jpg 4 -art_painting/guitar/pic_184.jpg 4 -art_painting/guitar/pic_174.jpg 4 -art_painting/guitar/pic_165.jpg 4 -art_painting/guitar/pic_161.jpg 4 -art_painting/guitar/pic_162.jpg 4 -art_painting/horse/pic_034.jpg 5 -art_painting/horse/pic_040.jpg 5 -art_painting/horse/pic_039.jpg 5 -art_painting/horse/pic_042.jpg 5 -art_painting/horse/pic_028.jpg 5 -art_painting/horse/pic_037.jpg 5 -art_painting/horse/pic_041.jpg 5 -art_painting/horse/pic_033.jpg 5 -art_painting/horse/pic_038.jpg 5 -art_painting/horse/pic_025.jpg 5 -art_painting/horse/pic_023.jpg 5 -art_painting/horse/pic_045.jpg 5 -art_painting/horse/pic_030.jpg 5 -art_painting/horse/pic_043.jpg 5 -art_painting/horse/pic_021.jpg 5 -art_painting/horse/pic_026.jpg 5 -art_painting/horse/pic_046.jpg 5 -art_painting/horse/pic_001.jpg 5 -art_painting/horse/pic_002.jpg 5 -art_painting/horse/pic_003.jpg 5 -art_painting/horse/pic_004.jpg 5 -art_painting/house/pic_313.jpg 6 -art_painting/house/pic_169.jpg 6 -art_painting/house/pic_168.jpg 6 -art_painting/house/pic_308.jpg 6 -art_painting/house/pic_167.jpg 6 -art_painting/house/pic_310.jpg 6 -art_painting/house/pic_314.jpg 6 -art_painting/house/pic_170.jpg 6 -art_painting/house/pic_316.jpg 6 -art_painting/house/pic_175.jpg 6 -art_painting/house/pic_173.jpg 6 -art_painting/house/pic_322.jpg 6 -art_painting/house/pic_321.jpg 6 -art_painting/house/pic_320.jpg 6 -art_painting/house/pic_178.jpg 6 -art_painting/house/pic_331.jpg 6 -art_painting/house/pic_001.jpg 6 -art_painting/house/pic_002.jpg 6 -art_painting/house/pic_003.jpg 6 -art_painting/house/pic_004.jpg 6 -art_painting/house/pic_005.jpg 6 -art_painting/house/pic_006.jpg 6 -art_painting/house/pic_007.jpg 6 -art_painting/house/pic_008.jpg 6 -art_painting/house/pic_009.jpg 6 -art_painting/house/pic_010.jpg 6 -art_painting/house/pic_011.jpg 6 -art_painting/house/pic_013.jpg 6 -art_painting/house/pic_015.jpg 6 -art_painting/house/pic_030.jpg 6 -art_painting/person/pic_280.jpg 7 -art_painting/person/pic_278.jpg 7 -art_painting/person/pic_277.jpg 7 -art_painting/person/pic_276.jpg 7 -art_painting/person/pic_275.jpg 7 -art_painting/person/pic_273.jpg 7 -art_painting/person/pic_284.jpg 7 -art_painting/person/pic_283.jpg 7 -art_painting/person/pic_281.jpg 7 -art_painting/person/pic_282.jpg 7 -art_painting/person/pic_285.jpg 7 -art_painting/person/pic_269.jpg 7 -art_painting/person/pic_297.jpg 7 -art_painting/person/pic_298.jpg 7 -art_painting/person/pic_296.jpg 7 -art_painting/person/pic_295.jpg 7 -art_painting/person/pic_134.jpg 7 -art_painting/person/pic_133.jpg 7 -art_painting/person/pic_135.jpg 7 -art_painting/person/pic_310.jpg 7 -art_painting/person/pic_141.jpg 7 -art_painting/person/pic_001.jpg 7 -art_painting/person/pic_002.jpg 7 -art_painting/person/pic_003.jpg 7 -art_painting/person/pic_004.jpg 7 -art_painting/person/pic_005.jpg 7 -art_painting/person/pic_048.jpg 7 -art_painting/person/pic_050.jpg 7 -art_painting/person/pic_052.jpg 7 -art_painting/person/pic_055.jpg 7 -art_painting/person/pic_056.jpg 7 -art_painting/person/pic_065.jpg 7 -art_painting/person/pic_331.jpg 7 -art_painting/person/pic_330.jpg 7 -art_painting/person/pic_176.jpg 7 -art_painting/person/pic_416.jpg 7 -art_painting/person/pic_420.jpg 7 -art_painting/person/pic_426.jpg 7 -art_painting/person/pic_424.jpg 7 -art_painting/person/pic_423.jpg 7 -art_painting/person/pic_421.jpg 7 -art_painting/person/pic_183.jpg 7 -art_painting/person/pic_428.jpg 7 -art_painting/person/pic_430.jpg 7 -art_painting/person/pic_429.jpg 7 diff --git a/data/pacs_split/art_painting_test_kfold.txt b/data/pacs_split/art_painting_test_kfold.txt deleted file mode 100644 index 9a5728738..000000000 --- a/data/pacs_split/art_painting_test_kfold.txt +++ /dev/null @@ -1,2048 +0,0 @@ -art_painting/dog/pic_225.jpg 1 -art_painting/dog/pic_249.jpg 1 -art_painting/dog/pic_306.jpg 1 -art_painting/dog/pic_241.jpg 1 -art_painting/dog/pic_219.jpg 1 -art_painting/dog/pic_252.jpg 1 -art_painting/dog/pic_309.jpg 1 -art_painting/dog/pic_255.jpg 1 -art_painting/dog/pic_310.jpg 1 -art_painting/dog/pic_247.jpg 1 -art_painting/dog/pic_236.jpg 1 -art_painting/dog/pic_242.jpg 1 -art_painting/dog/pic_257.jpg 1 -art_painting/dog/pic_314.jpg 1 -art_painting/dog/pic_317.jpg 1 -art_painting/dog/pic_315.jpg 1 -art_painting/dog/pic_248.jpg 1 -art_painting/dog/pic_250.jpg 1 -art_painting/dog/pic_282.jpg 1 -art_painting/dog/pic_260.jpg 1 -art_painting/dog/pic_316.jpg 1 -art_painting/dog/pic_305.jpg 1 -art_painting/dog/pic_300.jpg 1 -art_painting/dog/pic_365.jpg 1 -art_painting/dog/pic_296.jpg 1 -art_painting/dog/pic_301.jpg 1 -art_painting/dog/pic_298.jpg 1 -art_painting/dog/pic_291.jpg 1 -art_painting/dog/pic_313.jpg 1 -art_painting/dog/pic_311.jpg 1 -art_painting/dog/pic_312.jpg 1 -art_painting/dog/pic_308.jpg 1 -art_painting/dog/pic_329.jpg 1 -art_painting/dog/pic_322.jpg 1 -art_painting/dog/pic_323.jpg 1 -art_painting/dog/pic_330.jpg 1 -art_painting/dog/pic_371.jpg 1 -art_painting/dog/pic_339.jpg 1 -art_painting/dog/pic_333.jpg 1 -art_painting/dog/pic_376.jpg 1 -art_painting/dog/pic_259.jpg 1 -art_painting/dog/pic_261.jpg 1 -art_painting/dog/pic_256.jpg 1 -art_painting/dog/pic_253.jpg 1 -art_painting/dog/pic_265.jpg 1 -art_painting/dog/pic_258.jpg 1 -art_painting/dog/pic_279.jpg 1 -art_painting/dog/pic_324.jpg 1 -art_painting/dog/pic_325.jpg 1 -art_painting/dog/pic_332.jpg 1 -art_painting/dog/pic_251.jpg 1 -art_painting/dog/pic_275.jpg 1 -art_painting/dog/pic_276.jpg 1 -art_painting/dog/pic_269.jpg 1 -art_painting/dog/pic_267.jpg 1 -art_painting/dog/pic_334.jpg 1 -art_painting/dog/pic_278.jpg 1 -art_painting/dog/pic_266.jpg 1 -art_painting/dog/pic_340.jpg 1 -art_painting/dog/pic_198.jpg 1 -art_painting/dog/pic_166.jpg 1 -art_painting/dog/pic_196.jpg 1 -art_painting/dog/pic_268.jpg 1 -art_painting/dog/pic_192.jpg 1 -art_painting/dog/pic_272.jpg 1 -art_painting/dog/pic_274.jpg 1 -art_painting/dog/pic_209.jpg 1 -art_painting/dog/pic_201.jpg 1 -art_painting/dog/pic_205.jpg 1 -art_painting/dog/pic_208.jpg 1 -art_painting/dog/pic_210.jpg 1 -art_painting/dog/pic_226.jpg 1 -art_painting/dog/pic_221.jpg 1 -art_painting/dog/pic_281.jpg 1 -art_painting/dog/pic_193.jpg 1 -art_painting/dog/pic_199.jpg 1 -art_painting/dog/pic_188.jpg 1 -art_painting/dog/pic_234.jpg 1 -art_painting/dog/pic_009.jpg 1 -art_painting/dog/pic_010.jpg 1 -art_painting/dog/pic_011.jpg 1 -art_painting/dog/pic_012.jpg 1 -art_painting/dog/pic_013.jpg 1 -art_painting/dog/pic_014.jpg 1 -art_painting/dog/pic_015.jpg 1 -art_painting/dog/pic_016.jpg 1 -art_painting/dog/pic_017.jpg 1 -art_painting/dog/pic_018.jpg 1 -art_painting/dog/pic_019.jpg 1 -art_painting/dog/pic_023.jpg 1 -art_painting/dog/pic_020.jpg 1 -art_painting/dog/pic_022.jpg 1 -art_painting/dog/pic_031.jpg 1 -art_painting/dog/pic_026.jpg 1 -art_painting/dog/pic_029.jpg 1 -art_painting/dog/pic_028.jpg 1 -art_painting/dog/pic_025.jpg 1 -art_painting/dog/pic_032.jpg 1 -art_painting/dog/pic_113.jpg 1 -art_painting/dog/pic_116.jpg 1 -art_painting/dog/pic_121.jpg 1 -art_painting/dog/pic_118.jpg 1 -art_painting/dog/pic_132.jpg 1 -art_painting/dog/pic_105.jpg 1 -art_painting/dog/pic_114.jpg 1 -art_painting/dog/pic_237.jpg 1 -art_painting/dog/pic_239.jpg 1 -art_painting/dog/pic_177.jpg 1 -art_painting/dog/pic_172.jpg 1 -art_painting/dog/pic_170.jpg 1 -art_painting/dog/pic_169.jpg 1 -art_painting/dog/pic_240.jpg 1 -art_painting/dog/pic_244.jpg 1 -art_painting/dog/pic_243.jpg 1 -art_painting/dog/pic_127.jpg 1 -art_painting/dog/pic_146.jpg 1 -art_painting/dog/pic_130.jpg 1 -art_painting/dog/pic_143.jpg 1 -art_painting/dog/pic_148.jpg 1 -art_painting/dog/pic_140.jpg 1 -art_painting/dog/pic_246.jpg 1 -art_painting/dog/pic_147.jpg 1 -art_painting/dog/pic_139.jpg 1 -art_painting/dog/pic_144.jpg 1 -art_painting/dog/pic_176.jpg 1 -art_painting/dog/pic_153.jpg 1 -art_painting/dog/pic_187.jpg 1 -art_painting/dog/pic_165.jpg 1 -art_painting/dog/pic_163.jpg 1 -art_painting/dog/pic_167.jpg 1 -art_painting/dog/pic_164.jpg 1 -art_painting/dog/pic_181.jpg 1 -art_painting/dog/pic_183.jpg 1 -art_painting/dog/pic_401.jpg 1 -art_painting/dog/pic_395.jpg 1 -art_painting/dog/pic_412.jpg 1 -art_painting/dog/pic_409.jpg 1 -art_painting/dog/pic_414.jpg 1 -art_painting/dog/pic_407.jpg 1 -art_painting/dog/pic_404.jpg 1 -art_painting/dog/pic_415.jpg 1 -art_painting/dog/pic_410.jpg 1 -art_painting/dog/pic_413.jpg 1 -art_painting/dog/pic_408.jpg 1 -art_painting/dog/pic_382.jpg 1 -art_painting/dog/pic_342.jpg 1 -art_painting/dog/pic_343.jpg 1 -art_painting/dog/pic_271.jpg 1 -art_painting/dog/pic_280.jpg 1 -art_painting/dog/pic_303.jpg 1 -art_painting/dog/pic_349.jpg 1 -art_painting/dog/pic_290.jpg 1 -art_painting/dog/pic_289.jpg 1 -art_painting/dog/pic_287.jpg 1 -art_painting/dog/pic_284.jpg 1 -art_painting/dog/pic_283.jpg 1 -art_painting/dog/pic_286.jpg 1 -art_painting/dog/pic_307.jpg 1 -art_painting/dog/pic_293.jpg 1 -art_painting/dog/pic_299.jpg 1 -art_painting/dog/pic_288.jpg 1 -art_painting/dog/pic_354.jpg 1 -art_painting/dog/pic_358.jpg 1 -art_painting/dog/pic_295.jpg 1 -art_painting/dog/pic_292.jpg 1 -art_painting/dog/pic_400.jpg 1 -art_painting/dog/pic_351.jpg 1 -art_painting/dog/pic_350.jpg 1 -art_painting/dog/pic_348.jpg 1 -art_painting/dog/pic_346.jpg 1 -art_painting/dog/pic_405.jpg 1 -art_painting/dog/pic_411.jpg 1 -art_painting/dog/pic_406.jpg 1 -art_painting/dog/pic_357.jpg 1 -art_painting/dog/pic_359.jpg 1 -art_painting/dog/pic_369.jpg 1 -art_painting/dog/pic_355.jpg 1 -art_painting/dog/pic_360.jpg 1 -art_painting/dog/pic_377.jpg 1 -art_painting/dog/pic_361.jpg 1 -art_painting/dog/pic_367.jpg 1 -art_painting/dog/pic_362.jpg 1 -art_painting/dog/pic_372.jpg 1 -art_painting/dog/pic_370.jpg 1 -art_painting/dog/pic_366.jpg 1 -art_painting/dog/pic_375.jpg 1 -art_painting/dog/pic_374.jpg 1 -art_painting/dog/pic_368.jpg 1 -art_painting/dog/pic_392.jpg 1 -art_painting/dog/pic_380.jpg 1 -art_painting/dog/pic_381.jpg 1 -art_painting/dog/pic_386.jpg 1 -art_painting/dog/pic_385.jpg 1 -art_painting/dog/pic_384.jpg 1 -art_painting/dog/pic_378.jpg 1 -art_painting/dog/pic_383.jpg 1 -art_painting/dog/pic_393.jpg 1 -art_painting/dog/pic_388.jpg 1 -art_painting/dog/pic_394.jpg 1 -art_painting/dog/pic_391.jpg 1 -art_painting/dog/pic_390.jpg 1 -art_painting/dog/pic_399.jpg 1 -art_painting/dog/pic_396.jpg 1 -art_painting/dog/pic_110.jpg 1 -art_painting/dog/pic_120.jpg 1 -art_painting/dog/pic_123.jpg 1 -art_painting/dog/pic_112.jpg 1 -art_painting/dog/pic_126.jpg 1 -art_painting/dog/pic_065.jpg 1 -art_painting/dog/pic_064.jpg 1 -art_painting/dog/pic_066.jpg 1 -art_painting/dog/pic_062.jpg 1 -art_painting/dog/pic_070.jpg 1 -art_painting/dog/pic_131.jpg 1 -art_painting/dog/pic_133.jpg 1 -art_painting/dog/pic_136.jpg 1 -art_painting/dog/pic_145.jpg 1 -art_painting/dog/pic_149.jpg 1 -art_painting/dog/pic_152.jpg 1 -art_painting/dog/pic_151.jpg 1 -art_painting/dog/pic_179.jpg 1 -art_painting/dog/pic_178.jpg 1 -art_painting/dog/pic_182.jpg 1 -art_painting/dog/pic_109.jpg 1 -art_painting/dog/pic_107.jpg 1 -art_painting/dog/pic_185.jpg 1 -art_painting/dog/pic_106.jpg 1 -art_painting/dog/pic_083.jpg 1 -art_painting/dog/pic_088.jpg 1 -art_painting/dog/pic_087.jpg 1 -art_painting/dog/pic_089.jpg 1 -art_painting/dog/pic_103.jpg 1 -art_painting/dog/pic_124.jpg 1 -art_painting/dog/pic_150.jpg 1 -art_painting/dog/pic_137.jpg 1 -art_painting/dog/pic_092.jpg 1 -art_painting/dog/pic_085.jpg 1 -art_painting/dog/pic_001.jpg 1 -art_painting/dog/pic_002.jpg 1 -art_painting/dog/pic_003.jpg 1 -art_painting/dog/pic_004.jpg 1 -art_painting/dog/pic_005.jpg 1 -art_painting/dog/pic_006.jpg 1 -art_painting/dog/pic_007.jpg 1 -art_painting/dog/pic_008.jpg 1 -art_painting/dog/pic_055.jpg 1 -art_painting/dog/pic_048.jpg 1 -art_painting/dog/pic_047.jpg 1 -art_painting/dog/pic_052.jpg 1 -art_painting/dog/pic_050.jpg 1 -art_painting/dog/pic_046.jpg 1 -art_painting/dog/pic_075.jpg 1 -art_painting/dog/pic_076.jpg 1 -art_painting/dog/pic_090.jpg 1 -art_painting/dog/pic_097.jpg 1 -art_painting/dog/pic_099.jpg 1 -art_painting/dog/pic_061.jpg 1 -art_painting/dog/pic_058.jpg 1 -art_painting/dog/pic_056.jpg 1 -art_painting/dog/pic_063.jpg 1 -art_painting/dog/pic_057.jpg 1 -art_painting/dog/pic_060.jpg 1 -art_painting/dog/pic_059.jpg 1 -art_painting/dog/pic_104.jpg 1 -art_painting/dog/pic_108.jpg 1 -art_painting/dog/pic_173.jpg 1 -art_painting/dog/pic_174.jpg 1 -art_painting/dog/pic_254.jpg 1 -art_painting/dog/pic_184.jpg 1 -art_painting/dog/pic_191.jpg 1 -art_painting/dog/pic_194.jpg 1 -art_painting/dog/pic_189.jpg 1 -art_painting/dog/pic_262.jpg 1 -art_painting/dog/pic_195.jpg 1 -art_painting/dog/pic_214.jpg 1 -art_painting/dog/pic_213.jpg 1 -art_painting/dog/pic_263.jpg 1 -art_painting/dog/pic_264.jpg 1 -art_painting/dog/pic_186.jpg 1 -art_painting/dog/pic_168.jpg 1 -art_painting/dog/pic_206.jpg 1 -art_painting/dog/pic_202.jpg 1 -art_painting/dog/pic_180.jpg 1 -art_painting/dog/pic_204.jpg 1 -art_painting/dog/pic_154.jpg 1 -art_painting/dog/pic_072.jpg 1 -art_painting/dog/pic_074.jpg 1 -art_painting/dog/pic_073.jpg 1 -art_painting/dog/pic_086.jpg 1 -art_painting/dog/pic_082.jpg 1 -art_painting/dog/pic_067.jpg 1 -art_painting/dog/pic_158.jpg 1 -art_painting/dog/pic_079.jpg 1 -art_painting/dog/pic_077.jpg 1 -art_painting/dog/pic_161.jpg 1 -art_painting/dog/pic_096.jpg 1 -art_painting/dog/pic_095.jpg 1 -art_painting/dog/pic_080.jpg 1 -art_painting/dog/pic_100.jpg 1 -art_painting/dog/pic_102.jpg 1 -art_painting/dog/pic_091.jpg 1 -art_painting/dog/pic_135.jpg 1 -art_painting/dog/pic_033.jpg 1 -art_painting/dog/pic_034.jpg 1 -art_painting/dog/pic_024.jpg 1 -art_painting/dog/pic_021.jpg 1 -art_painting/dog/pic_027.jpg 1 -art_painting/dog/pic_035.jpg 1 -art_painting/dog/pic_037.jpg 1 -art_painting/dog/pic_039.jpg 1 -art_painting/dog/pic_036.jpg 1 -art_painting/dog/pic_041.jpg 1 -art_painting/dog/pic_042.jpg 1 -art_painting/dog/pic_038.jpg 1 -art_painting/dog/pic_045.jpg 1 -art_painting/dog/pic_043.jpg 1 -art_painting/dog/pic_044.jpg 1 -art_painting/dog/pic_049.jpg 1 -art_painting/dog/pic_040.jpg 1 -art_painting/dog/pic_051.jpg 1 -art_painting/dog/pic_054.jpg 1 -art_painting/dog/pic_053.jpg 1 -art_painting/dog/pic_344.jpg 1 -art_painting/dog/pic_328.jpg 1 -art_painting/dog/pic_321.jpg 1 -art_painting/dog/pic_320.jpg 1 -art_painting/dog/pic_326.jpg 1 -art_painting/dog/pic_327.jpg 1 -art_painting/dog/pic_318.jpg 1 -art_painting/dog/pic_387.jpg 1 -art_painting/dog/pic_319.jpg 1 -art_painting/dog/pic_341.jpg 1 -art_painting/dog/pic_331.jpg 1 -art_painting/dog/pic_337.jpg 1 -art_painting/dog/pic_335.jpg 1 -art_painting/dog/pic_338.jpg 1 -art_painting/dog/pic_336.jpg 1 -art_painting/dog/pic_353.jpg 1 -art_painting/dog/pic_352.jpg 1 -art_painting/dog/pic_397.jpg 1 -art_painting/dog/pic_345.jpg 1 -art_painting/dog/pic_398.jpg 1 -art_painting/dog/pic_098.jpg 1 -art_painting/dog/pic_094.jpg 1 -art_painting/dog/pic_081.jpg 1 -art_painting/dog/pic_101.jpg 1 -art_painting/dog/pic_078.jpg 1 -art_painting/dog/pic_084.jpg 1 -art_painting/dog/pic_211.jpg 1 -art_painting/dog/pic_138.jpg 1 -art_painting/dog/pic_155.jpg 1 -art_painting/dog/pic_156.jpg 1 -art_painting/dog/pic_157.jpg 1 -art_painting/dog/pic_222.jpg 1 -art_painting/dog/pic_217.jpg 1 -art_painting/dog/pic_223.jpg 1 -art_painting/dog/pic_229.jpg 1 -art_painting/dog/pic_134.jpg 1 -art_painting/dog/pic_117.jpg 1 -art_painting/dog/pic_235.jpg 1 -art_painting/dog/pic_200.jpg 1 -art_painting/dog/pic_245.jpg 1 -art_painting/dog/pic_285.jpg 1 -art_painting/dog/pic_212.jpg 1 -art_painting/dog/pic_197.jpg 1 -art_painting/dog/pic_294.jpg 1 -art_painting/dog/pic_215.jpg 1 -art_painting/dog/pic_203.jpg 1 -art_painting/dog/pic_297.jpg 1 -art_painting/dog/pic_231.jpg 1 -art_painting/dog/pic_233.jpg 1 -art_painting/dog/pic_224.jpg 1 -art_painting/dog/pic_227.jpg 1 -art_painting/dog/pic_230.jpg 1 -art_painting/dog/pic_228.jpg 1 -art_painting/dog/pic_232.jpg 1 -art_painting/dog/pic_238.jpg 1 -art_painting/dog/pic_220.jpg 1 -art_painting/dog/pic_304.jpg 1 -art_painting/elephant/pic_243.jpg 2 -art_painting/elephant/pic_154.jpg 2 -art_painting/elephant/pic_239.jpg 2 -art_painting/elephant/pic_156.jpg 2 -art_painting/elephant/pic_167.jpg 2 -art_painting/elephant/pic_168.jpg 2 -art_painting/elephant/pic_162.jpg 2 -art_painting/elephant/pic_161.jpg 2 -art_painting/elephant/pic_159.jpg 2 -art_painting/elephant/pic_160.jpg 2 -art_painting/elephant/pic_158.jpg 2 -art_painting/elephant/pic_157.jpg 2 -art_painting/elephant/pic_166.jpg 2 -art_painting/elephant/pic_171.jpg 2 -art_painting/elephant/pic_169.jpg 2 -art_painting/elephant/pic_170.jpg 2 -art_painting/elephant/pic_176.jpg 2 -art_painting/elephant/pic_175.jpg 2 -art_painting/elephant/pic_173.jpg 2 -art_painting/elephant/pic_172.jpg 2 -art_painting/elephant/pic_082.jpg 2 -art_painting/elephant/pic_081.jpg 2 -art_painting/elephant/pic_080.jpg 2 -art_painting/elephant/pic_078.jpg 2 -art_painting/elephant/pic_079.jpg 2 -art_painting/elephant/pic_093.jpg 2 -art_painting/elephant/pic_085.jpg 2 -art_painting/elephant/pic_090.jpg 2 -art_painting/elephant/pic_089.jpg 2 -art_painting/elephant/pic_099.jpg 2 -art_painting/elephant/pic_111.jpg 2 -art_painting/elephant/pic_108.jpg 2 -art_painting/elephant/pic_114.jpg 2 -art_painting/elephant/pic_116.jpg 2 -art_painting/elephant/pic_123.jpg 2 -art_painting/elephant/pic_133.jpg 2 -art_painting/elephant/pic_131.jpg 2 -art_painting/elephant/pic_122.jpg 2 -art_painting/elephant/pic_113.jpg 2 -art_painting/elephant/pic_115.jpg 2 -art_painting/elephant/pic_112.jpg 2 -art_painting/elephant/pic_251.jpg 2 -art_painting/elephant/pic_250.jpg 2 -art_painting/elephant/pic_242.jpg 2 -art_painting/elephant/pic_246.jpg 2 -art_painting/elephant/pic_257.jpg 2 -art_painting/elephant/pic_249.jpg 2 -art_painting/elephant/pic_261.jpg 2 -art_painting/elephant/pic_260.jpg 2 -art_painting/elephant/pic_259.jpg 2 -art_painting/elephant/pic_039.jpg 2 -art_painting/elephant/pic_033.jpg 2 -art_painting/elephant/pic_041.jpg 2 -art_painting/elephant/pic_049.jpg 2 -art_painting/elephant/pic_048.jpg 2 -art_painting/elephant/pic_030.jpg 2 -art_painting/elephant/pic_026.jpg 2 -art_painting/elephant/pic_052.jpg 2 -art_painting/elephant/pic_053.jpg 2 -art_painting/elephant/pic_050.jpg 2 -art_painting/elephant/pic_054.jpg 2 -art_painting/elephant/pic_058.jpg 2 -art_painting/elephant/pic_056.jpg 2 -art_painting/elephant/pic_057.jpg 2 -art_painting/elephant/pic_055.jpg 2 -art_painting/elephant/pic_059.jpg 2 -art_painting/elephant/pic_060.jpg 2 -art_painting/elephant/pic_065.jpg 2 -art_painting/elephant/pic_063.jpg 2 -art_painting/elephant/pic_064.jpg 2 -art_painting/elephant/pic_061.jpg 2 -art_painting/elephant/pic_193.jpg 2 -art_painting/elephant/pic_192.jpg 2 -art_painting/elephant/pic_198.jpg 2 -art_painting/elephant/pic_201.jpg 2 -art_painting/elephant/pic_199.jpg 2 -art_painting/elephant/pic_212.jpg 2 -art_painting/elephant/pic_211.jpg 2 -art_painting/elephant/pic_210.jpg 2 -art_painting/elephant/pic_209.jpg 2 -art_painting/elephant/pic_208.jpg 2 -art_painting/elephant/pic_206.jpg 2 -art_painting/elephant/pic_207.jpg 2 -art_painting/elephant/pic_205.jpg 2 -art_painting/elephant/pic_203.jpg 2 -art_painting/elephant/pic_204.jpg 2 -art_painting/elephant/pic_222.jpg 2 -art_painting/elephant/pic_221.jpg 2 -art_painting/elephant/pic_218.jpg 2 -art_painting/elephant/pic_215.jpg 2 -art_painting/elephant/pic_213.jpg 2 -art_painting/elephant/pic_035.jpg 2 -art_painting/elephant/pic_036.jpg 2 -art_painting/elephant/pic_031.jpg 2 -art_painting/elephant/pic_034.jpg 2 -art_painting/elephant/pic_027.jpg 2 -art_painting/elephant/pic_040.jpg 2 -art_painting/elephant/pic_044.jpg 2 -art_painting/elephant/pic_043.jpg 2 -art_painting/elephant/pic_029.jpg 2 -art_painting/elephant/pic_023.jpg 2 -art_painting/elephant/pic_037.jpg 2 -art_painting/elephant/pic_045.jpg 2 -art_painting/elephant/pic_024.jpg 2 -art_painting/elephant/pic_046.jpg 2 -art_painting/elephant/pic_022.jpg 2 -art_painting/elephant/pic_047.jpg 2 -art_painting/elephant/pic_025.jpg 2 -art_painting/elephant/pic_021.jpg 2 -art_painting/elephant/pic_020.jpg 2 -art_painting/elephant/pic_174.jpg 2 -art_painting/elephant/pic_182.jpg 2 -art_painting/elephant/pic_181.jpg 2 -art_painting/elephant/pic_180.jpg 2 -art_painting/elephant/pic_178.jpg 2 -art_painting/elephant/pic_177.jpg 2 -art_painting/elephant/pic_188.jpg 2 -art_painting/elephant/pic_187.jpg 2 -art_painting/elephant/pic_185.jpg 2 -art_painting/elephant/pic_186.jpg 2 -art_painting/elephant/pic_184.jpg 2 -art_painting/elephant/pic_183.jpg 2 -art_painting/elephant/pic_191.jpg 2 -art_painting/elephant/pic_190.jpg 2 -art_painting/elephant/pic_189.jpg 2 -art_painting/elephant/pic_202.jpg 2 -art_painting/elephant/pic_200.jpg 2 -art_painting/elephant/pic_196.jpg 2 -art_painting/elephant/pic_197.jpg 2 -art_painting/elephant/pic_194.jpg 2 -art_painting/elephant/pic_195.jpg 2 -art_painting/elephant/pic_110.jpg 2 -art_painting/elephant/pic_106.jpg 2 -art_painting/elephant/pic_105.jpg 2 -art_painting/elephant/pic_102.jpg 2 -art_painting/elephant/pic_101.jpg 2 -art_painting/elephant/pic_100.jpg 2 -art_painting/elephant/pic_097.jpg 2 -art_painting/elephant/pic_095.jpg 2 -art_painting/elephant/pic_096.jpg 2 -art_painting/elephant/pic_127.jpg 2 -art_painting/elephant/pic_150.jpg 2 -art_painting/elephant/pic_130.jpg 2 -art_painting/elephant/pic_119.jpg 2 -art_painting/elephant/pic_109.jpg 2 -art_painting/elephant/pic_104.jpg 2 -art_painting/elephant/pic_129.jpg 2 -art_painting/elephant/pic_128.jpg 2 -art_painting/elephant/pic_103.jpg 2 -art_painting/elephant/pic_098.jpg 2 -art_painting/elephant/pic_214.jpg 2 -art_painting/elephant/pic_217.jpg 2 -art_painting/elephant/pic_232.jpg 2 -art_painting/elephant/pic_231.jpg 2 -art_painting/elephant/pic_230.jpg 2 -art_painting/elephant/pic_229.jpg 2 -art_painting/elephant/pic_226.jpg 2 -art_painting/elephant/pic_224.jpg 2 -art_painting/elephant/pic_225.jpg 2 -art_painting/elephant/pic_223.jpg 2 -art_painting/elephant/pic_227.jpg 2 -art_painting/elephant/pic_228.jpg 2 -art_painting/elephant/pic_235.jpg 2 -art_painting/elephant/pic_236.jpg 2 -art_painting/elephant/pic_234.jpg 2 -art_painting/elephant/pic_241.jpg 2 -art_painting/elephant/pic_258.jpg 2 -art_painting/elephant/pic_256.jpg 2 -art_painting/elephant/pic_254.jpg 2 -art_painting/elephant/pic_255.jpg 2 -art_painting/elephant/pic_253.jpg 2 -art_painting/elephant/pic_004.jpg 2 -art_painting/elephant/pic_005.jpg 2 -art_painting/elephant/pic_006.jpg 2 -art_painting/elephant/pic_007.jpg 2 -art_painting/elephant/pic_008.jpg 2 -art_painting/elephant/pic_009.jpg 2 -art_painting/elephant/pic_010.jpg 2 -art_painting/elephant/pic_011.jpg 2 -art_painting/elephant/pic_012.jpg 2 -art_painting/elephant/pic_014.jpg 2 -art_painting/elephant/pic_015.jpg 2 -art_painting/elephant/pic_016.jpg 2 -art_painting/elephant/pic_017.jpg 2 -art_painting/elephant/pic_018.jpg 2 -art_painting/elephant/pic_019.jpg 2 -art_painting/elephant/pic_051.jpg 2 -art_painting/elephant/pic_042.jpg 2 -art_painting/elephant/pic_028.jpg 2 -art_painting/elephant/pic_032.jpg 2 -art_painting/elephant/pic_001.jpg 2 -art_painting/elephant/pic_002.jpg 2 -art_painting/elephant/pic_003.jpg 2 -art_painting/elephant/pic_107.jpg 2 -art_painting/elephant/pic_117.jpg 2 -art_painting/elephant/pic_120.jpg 2 -art_painting/elephant/pic_118.jpg 2 -art_painting/elephant/pic_121.jpg 2 -art_painting/elephant/pic_125.jpg 2 -art_painting/elephant/pic_124.jpg 2 -art_painting/elephant/pic_126.jpg 2 -art_painting/elephant/pic_132.jpg 2 -art_painting/elephant/pic_151.jpg 2 -art_painting/elephant/pic_138.jpg 2 -art_painting/elephant/pic_139.jpg 2 -art_painting/elephant/pic_136.jpg 2 -art_painting/elephant/pic_137.jpg 2 -art_painting/elephant/pic_179.jpg 2 -art_painting/elephant/pic_134.jpg 2 -art_painting/elephant/pic_164.jpg 2 -art_painting/elephant/pic_163.jpg 2 -art_painting/elephant/pic_135.jpg 2 -art_painting/elephant/pic_165.jpg 2 -art_painting/elephant/pic_219.jpg 2 -art_painting/elephant/pic_062.jpg 2 -art_painting/elephant/pic_066.jpg 2 -art_painting/elephant/pic_067.jpg 2 -art_painting/elephant/pic_068.jpg 2 -art_painting/elephant/pic_069.jpg 2 -art_painting/elephant/pic_070.jpg 2 -art_painting/elephant/pic_071.jpg 2 -art_painting/elephant/pic_072.jpg 2 -art_painting/elephant/pic_073.jpg 2 -art_painting/elephant/pic_074.jpg 2 -art_painting/elephant/pic_075.jpg 2 -art_painting/elephant/pic_076.jpg 2 -art_painting/elephant/pic_077.jpg 2 -art_painting/elephant/pic_094.jpg 2 -art_painting/elephant/pic_092.jpg 2 -art_painting/elephant/pic_091.jpg 2 -art_painting/elephant/pic_088.jpg 2 -art_painting/elephant/pic_087.jpg 2 -art_painting/elephant/pic_086.jpg 2 -art_painting/elephant/pic_084.jpg 2 -art_painting/elephant/pic_083.jpg 2 -art_painting/elephant/pic_146.jpg 2 -art_painting/elephant/pic_142.jpg 2 -art_painting/elephant/pic_144.jpg 2 -art_painting/elephant/pic_143.jpg 2 -art_painting/elephant/pic_140.jpg 2 -art_painting/elephant/pic_141.jpg 2 -art_painting/elephant/pic_145.jpg 2 -art_painting/elephant/pic_149.jpg 2 -art_painting/elephant/pic_233.jpg 2 -art_painting/elephant/pic_148.jpg 2 -art_painting/elephant/pic_147.jpg 2 -art_painting/elephant/pic_220.jpg 2 -art_painting/elephant/pic_153.jpg 2 -art_painting/elephant/pic_237.jpg 2 -art_painting/elephant/pic_152.jpg 2 -art_painting/elephant/pic_238.jpg 2 -art_painting/elephant/pic_155.jpg 2 -art_painting/elephant/pic_252.jpg 2 -art_painting/elephant/pic_244.jpg 2 -art_painting/elephant/pic_240.jpg 2 -art_painting/giraffe/pic_134.jpg 3 -art_painting/giraffe/pic_129.jpg 3 -art_painting/giraffe/pic_127.jpg 3 -art_painting/giraffe/pic_151.jpg 3 -art_painting/giraffe/pic_131.jpg 3 -art_painting/giraffe/pic_158.jpg 3 -art_painting/giraffe/pic_144.jpg 3 -art_painting/giraffe/pic_238.jpg 3 -art_painting/giraffe/pic_222.jpg 3 -art_painting/giraffe/pic_185.jpg 3 -art_painting/giraffe/pic_160.jpg 3 -art_painting/giraffe/pic_155.jpg 3 -art_painting/giraffe/pic_209.jpg 3 -art_painting/giraffe/pic_228.jpg 3 -art_painting/giraffe/pic_169.jpg 3 -art_painting/giraffe/pic_198.jpg 3 -art_painting/giraffe/pic_145.jpg 3 -art_painting/giraffe/pic_273.jpg 3 -art_painting/giraffe/pic_303.jpg 3 -art_painting/giraffe/pic_284.jpg 3 -art_painting/giraffe/pic_302.jpg 3 -art_painting/giraffe/pic_286.jpg 3 -art_painting/giraffe/pic_287.jpg 3 -art_painting/giraffe/pic_301.jpg 3 -art_painting/giraffe/pic_295.jpg 3 -art_painting/giraffe/pic_296.jpg 3 -art_painting/giraffe/pic_311.jpg 3 -art_painting/giraffe/pic_309.jpg 3 -art_painting/giraffe/pic_310.jpg 3 -art_painting/giraffe/pic_308.jpg 3 -art_painting/giraffe/pic_307.jpg 3 -art_painting/giraffe/pic_276.jpg 3 -art_painting/giraffe/pic_298.jpg 3 -art_painting/giraffe/pic_244.jpg 3 -art_painting/giraffe/pic_242.jpg 3 -art_painting/giraffe/pic_240.jpg 3 -art_painting/giraffe/pic_234.jpg 3 -art_painting/giraffe/pic_206.jpg 3 -art_painting/giraffe/pic_204.jpg 3 -art_painting/giraffe/pic_193.jpg 3 -art_painting/giraffe/pic_190.jpg 3 -art_painting/giraffe/pic_188.jpg 3 -art_painting/giraffe/pic_186.jpg 3 -art_painting/giraffe/pic_280.jpg 3 -art_painting/giraffe/pic_177.jpg 3 -art_painting/giraffe/pic_264.jpg 3 -art_painting/giraffe/pic_263.jpg 3 -art_painting/giraffe/pic_282.jpg 3 -art_painting/giraffe/pic_077.jpg 3 -art_painting/giraffe/pic_075.jpg 3 -art_painting/giraffe/pic_083.jpg 3 -art_painting/giraffe/pic_090.jpg 3 -art_painting/giraffe/pic_089.jpg 3 -art_painting/giraffe/pic_088.jpg 3 -art_painting/giraffe/pic_087.jpg 3 -art_painting/giraffe/pic_086.jpg 3 -art_painting/giraffe/pic_085.jpg 3 -art_painting/giraffe/pic_084.jpg 3 -art_painting/giraffe/pic_092.jpg 3 -art_painting/giraffe/pic_091.jpg 3 -art_painting/giraffe/pic_097.jpg 3 -art_painting/giraffe/pic_096.jpg 3 -art_painting/giraffe/pic_095.jpg 3 -art_painting/giraffe/pic_093.jpg 3 -art_painting/giraffe/pic_094.jpg 3 -art_painting/giraffe/pic_100.jpg 3 -art_painting/giraffe/pic_107.jpg 3 -art_painting/giraffe/pic_106.jpg 3 -art_painting/giraffe/pic_247.jpg 3 -art_painting/giraffe/pic_252.jpg 3 -art_painting/giraffe/pic_266.jpg 3 -art_painting/giraffe/pic_246.jpg 3 -art_painting/giraffe/pic_241.jpg 3 -art_painting/giraffe/pic_248.jpg 3 -art_painting/giraffe/pic_271.jpg 3 -art_painting/giraffe/pic_283.jpg 3 -art_painting/giraffe/pic_258.jpg 3 -art_painting/giraffe/pic_279.jpg 3 -art_painting/giraffe/pic_297.jpg 3 -art_painting/giraffe/pic_300.jpg 3 -art_painting/giraffe/pic_257.jpg 3 -art_painting/giraffe/pic_249.jpg 3 -art_painting/giraffe/pic_254.jpg 3 -art_painting/giraffe/pic_253.jpg 3 -art_painting/giraffe/pic_245.jpg 3 -art_painting/giraffe/pic_236.jpg 3 -art_painting/giraffe/pic_164.jpg 3 -art_painting/giraffe/pic_166.jpg 3 -art_painting/giraffe/pic_200.jpg 3 -art_painting/giraffe/pic_147.jpg 3 -art_painting/giraffe/pic_210.jpg 3 -art_painting/giraffe/pic_170.jpg 3 -art_painting/giraffe/pic_168.jpg 3 -art_painting/giraffe/pic_223.jpg 3 -art_painting/giraffe/pic_213.jpg 3 -art_painting/giraffe/pic_207.jpg 3 -art_painting/giraffe/pic_171.jpg 3 -art_painting/giraffe/pic_232.jpg 3 -art_painting/giraffe/pic_211.jpg 3 -art_painting/giraffe/pic_221.jpg 3 -art_painting/giraffe/pic_230.jpg 3 -art_painting/giraffe/pic_235.jpg 3 -art_painting/giraffe/pic_212.jpg 3 -art_painting/giraffe/pic_231.jpg 3 -art_painting/giraffe/pic_021.jpg 3 -art_painting/giraffe/pic_033.jpg 3 -art_painting/giraffe/pic_050.jpg 3 -art_painting/giraffe/pic_046.jpg 3 -art_painting/giraffe/pic_045.jpg 3 -art_painting/giraffe/pic_030.jpg 3 -art_painting/giraffe/pic_037.jpg 3 -art_painting/giraffe/pic_024.jpg 3 -art_painting/giraffe/pic_042.jpg 3 -art_painting/giraffe/pic_028.jpg 3 -art_painting/giraffe/pic_051.jpg 3 -art_painting/giraffe/pic_025.jpg 3 -art_painting/giraffe/pic_043.jpg 3 -art_painting/giraffe/pic_052.jpg 3 -art_painting/giraffe/pic_049.jpg 3 -art_painting/giraffe/pic_044.jpg 3 -art_painting/giraffe/pic_023.jpg 3 -art_painting/giraffe/pic_053.jpg 3 -art_painting/giraffe/pic_056.jpg 3 -art_painting/giraffe/pic_068.jpg 3 -art_painting/giraffe/pic_063.jpg 3 -art_painting/giraffe/pic_182.jpg 3 -art_painting/giraffe/pic_173.jpg 3 -art_painting/giraffe/pic_165.jpg 3 -art_painting/giraffe/pic_154.jpg 3 -art_painting/giraffe/pic_138.jpg 3 -art_painting/giraffe/pic_137.jpg 3 -art_painting/giraffe/pic_136.jpg 3 -art_painting/giraffe/pic_062.jpg 3 -art_painting/giraffe/pic_061.jpg 3 -art_painting/giraffe/pic_059.jpg 3 -art_painting/giraffe/pic_060.jpg 3 -art_painting/giraffe/pic_058.jpg 3 -art_painting/giraffe/pic_057.jpg 3 -art_painting/giraffe/pic_069.jpg 3 -art_painting/giraffe/pic_066.jpg 3 -art_painting/giraffe/pic_065.jpg 3 -art_painting/giraffe/pic_070.jpg 3 -art_painting/giraffe/pic_072.jpg 3 -art_painting/giraffe/pic_071.jpg 3 -art_painting/giraffe/pic_074.jpg 3 -art_painting/giraffe/pic_073.jpg 3 -art_painting/giraffe/pic_081.jpg 3 -art_painting/giraffe/pic_082.jpg 3 -art_painting/giraffe/pic_080.jpg 3 -art_painting/giraffe/pic_078.jpg 3 -art_painting/giraffe/pic_079.jpg 3 -art_painting/giraffe/pic_001.jpg 3 -art_painting/giraffe/pic_002.jpg 3 -art_painting/giraffe/pic_003.jpg 3 -art_painting/giraffe/pic_004.jpg 3 -art_painting/giraffe/pic_005.jpg 3 -art_painting/giraffe/pic_007.jpg 3 -art_painting/giraffe/pic_008.jpg 3 -art_painting/giraffe/pic_009.jpg 3 -art_painting/giraffe/pic_010.jpg 3 -art_painting/giraffe/pic_011.jpg 3 -art_painting/giraffe/pic_012.jpg 3 -art_painting/giraffe/pic_013.jpg 3 -art_painting/giraffe/pic_014.jpg 3 -art_painting/giraffe/pic_015.jpg 3 -art_painting/giraffe/pic_016.jpg 3 -art_painting/giraffe/pic_140.jpg 3 -art_painting/giraffe/pic_150.jpg 3 -art_painting/giraffe/pic_159.jpg 3 -art_painting/giraffe/pic_135.jpg 3 -art_painting/giraffe/pic_224.jpg 3 -art_painting/giraffe/pic_153.jpg 3 -art_painting/giraffe/pic_227.jpg 3 -art_painting/giraffe/pic_226.jpg 3 -art_painting/giraffe/pic_162.jpg 3 -art_painting/giraffe/pic_175.jpg 3 -art_painting/giraffe/pic_225.jpg 3 -art_painting/giraffe/pic_229.jpg 3 -art_painting/giraffe/pic_167.jpg 3 -art_painting/giraffe/pic_174.jpg 3 -art_painting/giraffe/pic_161.jpg 3 -art_painting/giraffe/pic_184.jpg 3 -art_painting/giraffe/pic_141.jpg 3 -art_painting/giraffe/pic_201.jpg 3 -art_painting/giraffe/pic_237.jpg 3 -art_painting/giraffe/pic_163.jpg 3 -art_painting/giraffe/pic_133.jpg 3 -art_painting/giraffe/pic_132.jpg 3 -art_painting/giraffe/pic_130.jpg 3 -art_painting/giraffe/pic_125.jpg 3 -art_painting/giraffe/pic_123.jpg 3 -art_painting/giraffe/pic_121.jpg 3 -art_painting/giraffe/pic_122.jpg 3 -art_painting/giraffe/pic_119.jpg 3 -art_painting/giraffe/pic_120.jpg 3 -art_painting/giraffe/pic_118.jpg 3 -art_painting/giraffe/pic_208.jpg 3 -art_painting/giraffe/pic_217.jpg 3 -art_painting/giraffe/pic_172.jpg 3 -art_painting/giraffe/pic_157.jpg 3 -art_painting/giraffe/pic_152.jpg 3 -art_painting/giraffe/pic_143.jpg 3 -art_painting/giraffe/pic_176.jpg 3 -art_painting/giraffe/pic_146.jpg 3 -art_painting/giraffe/pic_139.jpg 3 -art_painting/giraffe/pic_142.jpg 3 -art_painting/giraffe/pic_105.jpg 3 -art_painting/giraffe/pic_104.jpg 3 -art_painting/giraffe/pic_102.jpg 3 -art_painting/giraffe/pic_101.jpg 3 -art_painting/giraffe/pic_099.jpg 3 -art_painting/giraffe/pic_098.jpg 3 -art_painting/giraffe/pic_103.jpg 3 -art_painting/giraffe/pic_115.jpg 3 -art_painting/giraffe/pic_117.jpg 3 -art_painting/giraffe/pic_116.jpg 3 -art_painting/giraffe/pic_110.jpg 3 -art_painting/giraffe/pic_113.jpg 3 -art_painting/giraffe/pic_111.jpg 3 -art_painting/giraffe/pic_112.jpg 3 -art_painting/giraffe/pic_109.jpg 3 -art_painting/giraffe/pic_108.jpg 3 -art_painting/giraffe/pic_114.jpg 3 -art_painting/giraffe/pic_126.jpg 3 -art_painting/giraffe/pic_128.jpg 3 -art_painting/giraffe/pic_218.jpg 3 -art_painting/giraffe/pic_178.jpg 3 -art_painting/giraffe/pic_191.jpg 3 -art_painting/giraffe/pic_285.jpg 3 -art_painting/giraffe/pic_270.jpg 3 -art_painting/giraffe/pic_267.jpg 3 -art_painting/giraffe/pic_288.jpg 3 -art_painting/giraffe/pic_261.jpg 3 -art_painting/giraffe/pic_305.jpg 3 -art_painting/giraffe/pic_274.jpg 3 -art_painting/giraffe/pic_251.jpg 3 -art_painting/giraffe/pic_291.jpg 3 -art_painting/giraffe/pic_259.jpg 3 -art_painting/giraffe/pic_262.jpg 3 -art_painting/giraffe/pic_304.jpg 3 -art_painting/giraffe/pic_268.jpg 3 -art_painting/giraffe/pic_256.jpg 3 -art_painting/giraffe/pic_281.jpg 3 -art_painting/giraffe/pic_292.jpg 3 -art_painting/giraffe/pic_293.jpg 3 -art_painting/giraffe/pic_277.jpg 3 -art_painting/giraffe/pic_017.jpg 3 -art_painting/giraffe/pic_018.jpg 3 -art_painting/giraffe/pic_019.jpg 3 -art_painting/giraffe/pic_022.jpg 3 -art_painting/giraffe/pic_027.jpg 3 -art_painting/giraffe/pic_034.jpg 3 -art_painting/giraffe/pic_035.jpg 3 -art_painting/giraffe/pic_029.jpg 3 -art_painting/giraffe/pic_055.jpg 3 -art_painting/giraffe/pic_054.jpg 3 -art_painting/giraffe/pic_048.jpg 3 -art_painting/giraffe/pic_047.jpg 3 -art_painting/giraffe/pic_031.jpg 3 -art_painting/giraffe/pic_032.jpg 3 -art_painting/giraffe/pic_041.jpg 3 -art_painting/giraffe/pic_036.jpg 3 -art_painting/giraffe/pic_040.jpg 3 -art_painting/giraffe/pic_038.jpg 3 -art_painting/giraffe/pic_039.jpg 3 -art_painting/giraffe/pic_020.jpg 3 -art_painting/giraffe/pic_026.jpg 3 -art_painting/giraffe/pic_243.jpg 3 -art_painting/giraffe/pic_278.jpg 3 -art_painting/giraffe/pic_272.jpg 3 -art_painting/giraffe/pic_306.jpg 3 -art_painting/giraffe/pic_290.jpg 3 -art_painting/giraffe/pic_265.jpg 3 -art_painting/giraffe/pic_255.jpg 3 -art_painting/giraffe/pic_194.jpg 3 -art_painting/giraffe/pic_216.jpg 3 -art_painting/giraffe/pic_215.jpg 3 -art_painting/giraffe/pic_233.jpg 3 -art_painting/giraffe/pic_203.jpg 3 -art_painting/giraffe/pic_192.jpg 3 -art_painting/giraffe/pic_214.jpg 3 -art_painting/giraffe/pic_239.jpg 3 -art_painting/giraffe/pic_205.jpg 3 -art_painting/giraffe/pic_180.jpg 3 -art_painting/giraffe/pic_195.jpg 3 -art_painting/guitar/pic_125.jpg 4 -art_painting/guitar/pic_124.jpg 4 -art_painting/guitar/pic_179.jpg 4 -art_painting/guitar/pic_147.jpg 4 -art_painting/guitar/pic_146.jpg 4 -art_painting/guitar/pic_183.jpg 4 -art_painting/guitar/pic_126.jpg 4 -art_painting/guitar/pic_172.jpg 4 -art_painting/guitar/pic_137.jpg 4 -art_painting/guitar/pic_180.jpg 4 -art_painting/guitar/pic_150.jpg 4 -art_painting/guitar/pic_176.jpg 4 -art_painting/guitar/pic_187.jpg 4 -art_painting/guitar/pic_186.jpg 4 -art_painting/guitar/pic_184.jpg 4 -art_painting/guitar/pic_174.jpg 4 -art_painting/guitar/pic_165.jpg 4 -art_painting/guitar/pic_161.jpg 4 -art_painting/guitar/pic_162.jpg 4 -art_painting/guitar/pic_055.jpg 4 -art_painting/guitar/pic_059.jpg 4 -art_painting/guitar/pic_061.jpg 4 -art_painting/guitar/pic_060.jpg 4 -art_painting/guitar/pic_062.jpg 4 -art_painting/guitar/pic_063.jpg 4 -art_painting/guitar/pic_064.jpg 4 -art_painting/guitar/pic_067.jpg 4 -art_painting/guitar/pic_069.jpg 4 -art_painting/guitar/pic_077.jpg 4 -art_painting/guitar/pic_076.jpg 4 -art_painting/guitar/pic_075.jpg 4 -art_painting/guitar/pic_073.jpg 4 -art_painting/guitar/pic_072.jpg 4 -art_painting/guitar/pic_071.jpg 4 -art_painting/guitar/pic_070.jpg 4 -art_painting/guitar/pic_078.jpg 4 -art_painting/guitar/pic_111.jpg 4 -art_painting/guitar/pic_101.jpg 4 -art_painting/guitar/pic_130.jpg 4 -art_painting/guitar/pic_113.jpg 4 -art_painting/guitar/pic_182.jpg 4 -art_painting/guitar/pic_115.jpg 4 -art_painting/guitar/pic_100.jpg 4 -art_painting/guitar/pic_104.jpg 4 -art_painting/guitar/pic_098.jpg 4 -art_painting/guitar/pic_155.jpg 4 -art_painting/guitar/pic_149.jpg 4 -art_painting/guitar/pic_144.jpg 4 -art_painting/guitar/pic_143.jpg 4 -art_painting/guitar/pic_120.jpg 4 -art_painting/guitar/pic_152.jpg 4 -art_painting/guitar/pic_170.jpg 4 -art_painting/guitar/pic_157.jpg 4 -art_painting/guitar/pic_107.jpg 4 -art_painting/guitar/pic_173.jpg 4 -art_painting/guitar/pic_128.jpg 4 -art_painting/guitar/pic_074.jpg 4 -art_painting/guitar/pic_088.jpg 4 -art_painting/guitar/pic_087.jpg 4 -art_painting/guitar/pic_086.jpg 4 -art_painting/guitar/pic_084.jpg 4 -art_painting/guitar/pic_082.jpg 4 -art_painting/guitar/pic_083.jpg 4 -art_painting/guitar/pic_081.jpg 4 -art_painting/guitar/pic_079.jpg 4 -art_painting/guitar/pic_080.jpg 4 -art_painting/guitar/pic_089.jpg 4 -art_painting/guitar/pic_085.jpg 4 -art_painting/guitar/pic_142.jpg 4 -art_painting/guitar/pic_134.jpg 4 -art_painting/guitar/pic_133.jpg 4 -art_painting/guitar/pic_129.jpg 4 -art_painting/guitar/pic_127.jpg 4 -art_painting/guitar/pic_118.jpg 4 -art_painting/guitar/pic_109.jpg 4 -art_painting/guitar/pic_106.jpg 4 -art_painting/guitar/pic_103.jpg 4 -art_painting/guitar/pic_001.jpg 4 -art_painting/guitar/pic_002.jpg 4 -art_painting/guitar/pic_003.jpg 4 -art_painting/guitar/pic_004.jpg 4 -art_painting/guitar/pic_005.jpg 4 -art_painting/guitar/pic_006.jpg 4 -art_painting/guitar/pic_007.jpg 4 -art_painting/guitar/pic_008.jpg 4 -art_painting/guitar/pic_009.jpg 4 -art_painting/guitar/pic_010.jpg 4 -art_painting/guitar/pic_011.jpg 4 -art_painting/guitar/pic_012.jpg 4 -art_painting/guitar/pic_013.jpg 4 -art_painting/guitar/pic_014.jpg 4 -art_painting/guitar/pic_015.jpg 4 -art_painting/guitar/pic_020.jpg 4 -art_painting/guitar/pic_018.jpg 4 -art_painting/guitar/pic_017.jpg 4 -art_painting/guitar/pic_016.jpg 4 -art_painting/guitar/pic_026.jpg 4 -art_painting/guitar/pic_025.jpg 4 -art_painting/guitar/pic_024.jpg 4 -art_painting/guitar/pic_023.jpg 4 -art_painting/guitar/pic_021.jpg 4 -art_painting/guitar/pic_019.jpg 4 -art_painting/guitar/pic_022.jpg 4 -art_painting/guitar/pic_028.jpg 4 -art_painting/guitar/pic_027.jpg 4 -art_painting/guitar/pic_035.jpg 4 -art_painting/guitar/pic_047.jpg 4 -art_painting/guitar/pic_042.jpg 4 -art_painting/guitar/pic_043.jpg 4 -art_painting/guitar/pic_041.jpg 4 -art_painting/guitar/pic_040.jpg 4 -art_painting/guitar/pic_038.jpg 4 -art_painting/guitar/pic_037.jpg 4 -art_painting/guitar/pic_036.jpg 4 -art_painting/guitar/pic_034.jpg 4 -art_painting/guitar/pic_032.jpg 4 -art_painting/guitar/pic_031.jpg 4 -art_painting/guitar/pic_029.jpg 4 -art_painting/guitar/pic_044.jpg 4 -art_painting/guitar/pic_039.jpg 4 -art_painting/guitar/pic_048.jpg 4 -art_painting/guitar/pic_030.jpg 4 -art_painting/guitar/pic_049.jpg 4 -art_painting/guitar/pic_033.jpg 4 -art_painting/guitar/pic_053.jpg 4 -art_painting/guitar/pic_052.jpg 4 -art_painting/guitar/pic_051.jpg 4 -art_painting/guitar/pic_050.jpg 4 -art_painting/guitar/pic_058.jpg 4 -art_painting/guitar/pic_056.jpg 4 -art_painting/guitar/pic_175.jpg 4 -art_painting/guitar/pic_167.jpg 4 -art_painting/guitar/pic_196.jpg 4 -art_painting/guitar/pic_197.jpg 4 -art_painting/guitar/pic_199.jpg 4 -art_painting/guitar/pic_192.jpg 4 -art_painting/guitar/pic_194.jpg 4 -art_painting/guitar/pic_190.jpg 4 -art_painting/guitar/pic_189.jpg 4 -art_painting/guitar/pic_188.jpg 4 -art_painting/guitar/pic_195.jpg 4 -art_painting/guitar/pic_201.jpg 4 -art_painting/guitar/pic_191.jpg 4 -art_painting/guitar/pic_193.jpg 4 -art_painting/guitar/pic_131.jpg 4 -art_painting/guitar/pic_114.jpg 4 -art_painting/guitar/pic_141.jpg 4 -art_painting/guitar/pic_105.jpg 4 -art_painting/guitar/pic_117.jpg 4 -art_painting/guitar/pic_178.jpg 4 -art_painting/guitar/pic_171.jpg 4 -art_painting/guitar/pic_169.jpg 4 -art_painting/guitar/pic_156.jpg 4 -art_painting/guitar/pic_148.jpg 4 -art_painting/guitar/pic_123.jpg 4 -art_painting/guitar/pic_163.jpg 4 -art_painting/guitar/pic_110.jpg 4 -art_painting/guitar/pic_138.jpg 4 -art_painting/guitar/pic_116.jpg 4 -art_painting/guitar/pic_145.jpg 4 -art_painting/guitar/pic_121.jpg 4 -art_painting/guitar/pic_160.jpg 4 -art_painting/guitar/pic_177.jpg 4 -art_painting/guitar/pic_166.jpg 4 -art_painting/guitar/pic_159.jpg 4 -art_painting/guitar/pic_102.jpg 4 -art_painting/guitar/pic_099.jpg 4 -art_painting/guitar/pic_097.jpg 4 -art_painting/guitar/pic_095.jpg 4 -art_painting/guitar/pic_092.jpg 4 -art_painting/guitar/pic_094.jpg 4 -art_painting/guitar/pic_093.jpg 4 -art_painting/guitar/pic_091.jpg 4 -art_painting/guitar/pic_090.jpg 4 -art_painting/guitar/pic_140.jpg 4 -art_painting/guitar/pic_153.jpg 4 -art_painting/guitar/pic_158.jpg 4 -art_painting/guitar/pic_132.jpg 4 -art_painting/guitar/pic_135.jpg 4 -art_painting/guitar/pic_119.jpg 4 -art_painting/guitar/pic_122.jpg 4 -art_painting/guitar/pic_108.jpg 4 -art_painting/guitar/pic_136.jpg 4 -art_painting/guitar/pic_112.jpg 4 -art_painting/horse/pic_034.jpg 5 -art_painting/horse/pic_040.jpg 5 -art_painting/horse/pic_039.jpg 5 -art_painting/horse/pic_042.jpg 5 -art_painting/horse/pic_028.jpg 5 -art_painting/horse/pic_037.jpg 5 -art_painting/horse/pic_041.jpg 5 -art_painting/horse/pic_033.jpg 5 -art_painting/horse/pic_038.jpg 5 -art_painting/horse/pic_025.jpg 5 -art_painting/horse/pic_023.jpg 5 -art_painting/horse/pic_045.jpg 5 -art_painting/horse/pic_030.jpg 5 -art_painting/horse/pic_043.jpg 5 -art_painting/horse/pic_021.jpg 5 -art_painting/horse/pic_026.jpg 5 -art_painting/horse/pic_046.jpg 5 -art_painting/horse/pic_001.jpg 5 -art_painting/horse/pic_002.jpg 5 -art_painting/horse/pic_003.jpg 5 -art_painting/horse/pic_004.jpg 5 -art_painting/horse/pic_005.jpg 5 -art_painting/horse/pic_096.jpg 5 -art_painting/horse/pic_103.jpg 5 -art_painting/horse/pic_110.jpg 5 -art_painting/horse/pic_098.jpg 5 -art_painting/horse/pic_116.jpg 5 -art_painting/horse/pic_120.jpg 5 -art_painting/horse/pic_112.jpg 5 -art_painting/horse/pic_106.jpg 5 -art_painting/horse/pic_123.jpg 5 -art_painting/horse/pic_117.jpg 5 -art_painting/horse/pic_181.jpg 5 -art_painting/horse/pic_141.jpg 5 -art_painting/horse/pic_145.jpg 5 -art_painting/horse/pic_139.jpg 5 -art_painting/horse/pic_138.jpg 5 -art_painting/horse/pic_137.jpg 5 -art_painting/horse/pic_134.jpg 5 -art_painting/horse/pic_135.jpg 5 -art_painting/horse/pic_073.jpg 5 -art_painting/horse/pic_071.jpg 5 -art_painting/horse/pic_072.jpg 5 -art_painting/horse/pic_076.jpg 5 -art_painting/horse/pic_079.jpg 5 -art_painting/horse/pic_081.jpg 5 -art_painting/horse/pic_078.jpg 5 -art_painting/horse/pic_074.jpg 5 -art_painting/horse/pic_077.jpg 5 -art_painting/horse/pic_080.jpg 5 -art_painting/horse/pic_109.jpg 5 -art_painting/horse/pic_104.jpg 5 -art_painting/horse/pic_101.jpg 5 -art_painting/horse/pic_100.jpg 5 -art_painting/horse/pic_097.jpg 5 -art_painting/horse/pic_089.jpg 5 -art_painting/horse/pic_090.jpg 5 -art_painting/horse/pic_091.jpg 5 -art_painting/horse/pic_088.jpg 5 -art_painting/horse/pic_087.jpg 5 -art_painting/horse/pic_083.jpg 5 -art_painting/horse/pic_047.jpg 5 -art_painting/horse/pic_048.jpg 5 -art_painting/horse/pic_049.jpg 5 -art_painting/horse/pic_050.jpg 5 -art_painting/horse/pic_006.jpg 5 -art_painting/horse/pic_007.jpg 5 -art_painting/horse/pic_008.jpg 5 -art_painting/horse/pic_010.jpg 5 -art_painting/horse/pic_011.jpg 5 -art_painting/horse/pic_012.jpg 5 -art_painting/horse/pic_014.jpg 5 -art_painting/horse/pic_015.jpg 5 -art_painting/horse/pic_017.jpg 5 -art_painting/horse/pic_027.jpg 5 -art_painting/horse/pic_019.jpg 5 -art_painting/horse/pic_032.jpg 5 -art_painting/horse/pic_035.jpg 5 -art_painting/horse/pic_024.jpg 5 -art_painting/horse/pic_036.jpg 5 -art_painting/horse/pic_031.jpg 5 -art_painting/horse/pic_160.jpg 5 -art_painting/horse/pic_169.jpg 5 -art_painting/horse/pic_184.jpg 5 -art_painting/horse/pic_179.jpg 5 -art_painting/horse/pic_177.jpg 5 -art_painting/horse/pic_178.jpg 5 -art_painting/horse/pic_176.jpg 5 -art_painting/horse/pic_172.jpg 5 -art_painting/horse/pic_174.jpg 5 -art_painting/horse/pic_173.jpg 5 -art_painting/horse/pic_171.jpg 5 -art_painting/horse/pic_186.jpg 5 -art_painting/horse/pic_199.jpg 5 -art_painting/horse/pic_198.jpg 5 -art_painting/horse/pic_197.jpg 5 -art_painting/horse/pic_191.jpg 5 -art_painting/horse/pic_189.jpg 5 -art_painting/horse/pic_053.jpg 5 -art_painting/horse/pic_051.jpg 5 -art_painting/horse/pic_054.jpg 5 -art_painting/horse/pic_052.jpg 5 -art_painting/horse/pic_057.jpg 5 -art_painting/horse/pic_056.jpg 5 -art_painting/horse/pic_059.jpg 5 -art_painting/horse/pic_060.jpg 5 -art_painting/horse/pic_062.jpg 5 -art_painting/horse/pic_063.jpg 5 -art_painting/horse/pic_061.jpg 5 -art_painting/horse/pic_067.jpg 5 -art_painting/horse/pic_069.jpg 5 -art_painting/horse/pic_066.jpg 5 -art_painting/horse/pic_064.jpg 5 -art_painting/horse/pic_065.jpg 5 -art_painting/horse/pic_070.jpg 5 -art_painting/horse/pic_075.jpg 5 -art_painting/horse/pic_086.jpg 5 -art_painting/horse/pic_082.jpg 5 -art_painting/horse/pic_105.jpg 5 -art_painting/horse/pic_108.jpg 5 -art_painting/horse/pic_107.jpg 5 -art_painting/horse/pic_084.jpg 5 -art_painting/horse/pic_093.jpg 5 -art_painting/horse/pic_099.jpg 5 -art_painting/horse/pic_092.jpg 5 -art_painting/horse/pic_095.jpg 5 -art_painting/horse/pic_121.jpg 5 -art_painting/horse/pic_114.jpg 5 -art_painting/horse/pic_085.jpg 5 -art_painting/horse/pic_113.jpg 5 -art_painting/horse/pic_122.jpg 5 -art_painting/horse/pic_115.jpg 5 -art_painting/horse/pic_102.jpg 5 -art_painting/horse/pic_119.jpg 5 -art_painting/horse/pic_227.jpg 5 -art_painting/horse/pic_226.jpg 5 -art_painting/horse/pic_224.jpg 5 -art_painting/horse/pic_223.jpg 5 -art_painting/horse/pic_222.jpg 5 -art_painting/horse/pic_220.jpg 5 -art_painting/horse/pic_218.jpg 5 -art_painting/horse/pic_217.jpg 5 -art_painting/horse/pic_228.jpg 5 -art_painting/horse/pic_221.jpg 5 -art_painting/horse/pic_219.jpg 5 -art_painting/horse/pic_232.jpg 5 -art_painting/horse/pic_229.jpg 5 -art_painting/horse/pic_193.jpg 5 -art_painting/horse/pic_192.jpg 5 -art_painting/horse/pic_196.jpg 5 -art_painting/horse/pic_200.jpg 5 -art_painting/horse/pic_208.jpg 5 -art_painting/horse/pic_206.jpg 5 -art_painting/horse/pic_203.jpg 5 -art_painting/horse/pic_202.jpg 5 -art_painting/horse/pic_201.jpg 5 -art_painting/horse/pic_209.jpg 5 -art_painting/horse/pic_207.jpg 5 -art_painting/horse/pic_205.jpg 5 -art_painting/horse/pic_210.jpg 5 -art_painting/horse/pic_215.jpg 5 -art_painting/horse/pic_216.jpg 5 -art_painting/horse/pic_212.jpg 5 -art_painting/horse/pic_213.jpg 5 -art_painting/horse/pic_214.jpg 5 -art_painting/horse/pic_225.jpg 5 -art_painting/horse/pic_133.jpg 5 -art_painting/horse/pic_131.jpg 5 -art_painting/horse/pic_125.jpg 5 -art_painting/horse/pic_127.jpg 5 -art_painting/horse/pic_126.jpg 5 -art_painting/horse/pic_156.jpg 5 -art_painting/horse/pic_143.jpg 5 -art_painting/horse/pic_147.jpg 5 -art_painting/horse/pic_144.jpg 5 -art_painting/horse/pic_146.jpg 5 -art_painting/horse/pic_155.jpg 5 -art_painting/horse/pic_142.jpg 5 -art_painting/horse/pic_136.jpg 5 -art_painting/horse/pic_148.jpg 5 -art_painting/horse/pic_162.jpg 5 -art_painting/horse/pic_163.jpg 5 -art_painting/horse/pic_128.jpg 5 -art_painting/horse/pic_154.jpg 5 -art_painting/horse/pic_150.jpg 5 -art_painting/horse/pic_151.jpg 5 -art_painting/horse/pic_152.jpg 5 -art_painting/horse/pic_182.jpg 5 -art_painting/horse/pic_157.jpg 5 -art_painting/horse/pic_130.jpg 5 -art_painting/horse/pic_180.jpg 5 -art_painting/horse/pic_158.jpg 5 -art_painting/horse/pic_204.jpg 5 -art_painting/horse/pic_195.jpg 5 -art_painting/horse/pic_188.jpg 5 -art_painting/horse/pic_159.jpg 5 -art_painting/horse/pic_170.jpg 5 -art_painting/horse/pic_168.jpg 5 -art_painting/horse/pic_165.jpg 5 -art_painting/horse/pic_164.jpg 5 -art_painting/horse/pic_161.jpg 5 -art_painting/house/pic_313.jpg 6 -art_painting/house/pic_169.jpg 6 -art_painting/house/pic_168.jpg 6 -art_painting/house/pic_308.jpg 6 -art_painting/house/pic_167.jpg 6 -art_painting/house/pic_310.jpg 6 -art_painting/house/pic_314.jpg 6 -art_painting/house/pic_170.jpg 6 -art_painting/house/pic_316.jpg 6 -art_painting/house/pic_175.jpg 6 -art_painting/house/pic_173.jpg 6 -art_painting/house/pic_322.jpg 6 -art_painting/house/pic_321.jpg 6 -art_painting/house/pic_320.jpg 6 -art_painting/house/pic_178.jpg 6 -art_painting/house/pic_331.jpg 6 -art_painting/house/pic_001.jpg 6 -art_painting/house/pic_002.jpg 6 -art_painting/house/pic_003.jpg 6 -art_painting/house/pic_004.jpg 6 -art_painting/house/pic_005.jpg 6 -art_painting/house/pic_006.jpg 6 -art_painting/house/pic_007.jpg 6 -art_painting/house/pic_008.jpg 6 -art_painting/house/pic_009.jpg 6 -art_painting/house/pic_010.jpg 6 -art_painting/house/pic_011.jpg 6 -art_painting/house/pic_013.jpg 6 -art_painting/house/pic_015.jpg 6 -art_painting/house/pic_030.jpg 6 -art_painting/house/pic_032.jpg 6 -art_painting/house/pic_019.jpg 6 -art_painting/house/pic_016.jpg 6 -art_painting/house/pic_034.jpg 6 -art_painting/house/pic_022.jpg 6 -art_painting/house/pic_023.jpg 6 -art_painting/house/pic_014.jpg 6 -art_painting/house/pic_025.jpg 6 -art_painting/house/pic_024.jpg 6 -art_painting/house/pic_037.jpg 6 -art_painting/house/pic_018.jpg 6 -art_painting/house/pic_031.jpg 6 -art_painting/house/pic_027.jpg 6 -art_painting/house/pic_029.jpg 6 -art_painting/house/pic_274.jpg 6 -art_painting/house/pic_162.jpg 6 -art_painting/house/pic_160.jpg 6 -art_painting/house/pic_272.jpg 6 -art_painting/house/pic_159.jpg 6 -art_painting/house/pic_161.jpg 6 -art_painting/house/pic_276.jpg 6 -art_painting/house/pic_295.jpg 6 -art_painting/house/pic_165.jpg 6 -art_painting/house/pic_294.jpg 6 -art_painting/house/pic_293.jpg 6 -art_painting/house/pic_163.jpg 6 -art_painting/house/pic_282.jpg 6 -art_painting/house/pic_166.jpg 6 -art_painting/house/pic_164.jpg 6 -art_painting/house/pic_281.jpg 6 -art_painting/house/pic_171.jpg 6 -art_painting/house/pic_311.jpg 6 -art_painting/house/pic_237.jpg 6 -art_painting/house/pic_235.jpg 6 -art_painting/house/pic_234.jpg 6 -art_painting/house/pic_232.jpg 6 -art_painting/house/pic_240.jpg 6 -art_painting/house/pic_251.jpg 6 -art_painting/house/pic_248.jpg 6 -art_painting/house/pic_247.jpg 6 -art_painting/house/pic_246.jpg 6 -art_painting/house/pic_245.jpg 6 -art_painting/house/pic_243.jpg 6 -art_painting/house/pic_242.jpg 6 -art_painting/house/pic_250.jpg 6 -art_painting/house/pic_270.jpg 6 -art_painting/house/pic_269.jpg 6 -art_painting/house/pic_264.jpg 6 -art_painting/house/pic_329.jpg 6 -art_painting/house/pic_297.jpg 6 -art_painting/house/pic_304.jpg 6 -art_painting/house/pic_303.jpg 6 -art_painting/house/pic_302.jpg 6 -art_painting/house/pic_319.jpg 6 -art_painting/house/pic_318.jpg 6 -art_painting/house/pic_317.jpg 6 -art_painting/house/pic_315.jpg 6 -art_painting/house/pic_309.jpg 6 -art_painting/house/pic_306.jpg 6 -art_painting/house/pic_305.jpg 6 -art_painting/house/pic_323.jpg 6 -art_painting/house/pic_324.jpg 6 -art_painting/house/pic_336.jpg 6 -art_painting/house/pic_330.jpg 6 -art_painting/house/pic_327.jpg 6 -art_painting/house/pic_129.jpg 6 -art_painting/house/pic_130.jpg 6 -art_painting/house/pic_131.jpg 6 -art_painting/house/pic_255.jpg 6 -art_painting/house/pic_253.jpg 6 -art_painting/house/pic_133.jpg 6 -art_painting/house/pic_132.jpg 6 -art_painting/house/pic_256.jpg 6 -art_painting/house/pic_134.jpg 6 -art_painting/house/pic_257.jpg 6 -art_painting/house/pic_137.jpg 6 -art_painting/house/pic_258.jpg 6 -art_painting/house/pic_136.jpg 6 -art_painting/house/pic_140.jpg 6 -art_painting/house/pic_142.jpg 6 -art_painting/house/pic_259.jpg 6 -art_painting/house/pic_141.jpg 6 -art_painting/house/pic_146.jpg 6 -art_painting/house/pic_147.jpg 6 -art_painting/house/pic_145.jpg 6 -art_painting/house/pic_254.jpg 6 -art_painting/house/pic_263.jpg 6 -art_painting/house/pic_278.jpg 6 -art_painting/house/pic_277.jpg 6 -art_painting/house/pic_279.jpg 6 -art_painting/house/pic_280.jpg 6 -art_painting/house/pic_283.jpg 6 -art_painting/house/pic_284.jpg 6 -art_painting/house/pic_285.jpg 6 -art_painting/house/pic_287.jpg 6 -art_painting/house/pic_296.jpg 6 -art_painting/house/pic_292.jpg 6 -art_painting/house/pic_289.jpg 6 -art_painting/house/pic_290.jpg 6 -art_painting/house/pic_291.jpg 6 -art_painting/house/pic_301.jpg 6 -art_painting/house/pic_299.jpg 6 -art_painting/house/pic_298.jpg 6 -art_painting/house/pic_189.jpg 6 -art_painting/house/pic_187.jpg 6 -art_painting/house/pic_194.jpg 6 -art_painting/house/pic_206.jpg 6 -art_painting/house/pic_205.jpg 6 -art_painting/house/pic_201.jpg 6 -art_painting/house/pic_200.jpg 6 -art_painting/house/pic_198.jpg 6 -art_painting/house/pic_196.jpg 6 -art_painting/house/pic_197.jpg 6 -art_painting/house/pic_195.jpg 6 -art_painting/house/pic_199.jpg 6 -art_painting/house/pic_203.jpg 6 -art_painting/house/pic_221.jpg 6 -art_painting/house/pic_219.jpg 6 -art_painting/house/pic_217.jpg 6 -art_painting/house/pic_216.jpg 6 -art_painting/house/pic_184.jpg 6 -art_painting/house/pic_181.jpg 6 -art_painting/house/pic_180.jpg 6 -art_painting/house/pic_182.jpg 6 -art_painting/house/pic_335.jpg 6 -art_painting/house/pic_340.jpg 6 -art_painting/house/pic_348.jpg 6 -art_painting/house/pic_185.jpg 6 -art_painting/house/pic_346.jpg 6 -art_painting/house/pic_345.jpg 6 -art_painting/house/pic_344.jpg 6 -art_painting/house/pic_343.jpg 6 -art_painting/house/pic_193.jpg 6 -art_painting/house/pic_192.jpg 6 -art_painting/house/pic_191.jpg 6 -art_painting/house/pic_074.jpg 6 -art_painting/house/pic_076.jpg 6 -art_painting/house/pic_075.jpg 6 -art_painting/house/pic_077.jpg 6 -art_painting/house/pic_087.jpg 6 -art_painting/house/pic_085.jpg 6 -art_painting/house/pic_084.jpg 6 -art_painting/house/pic_083.jpg 6 -art_painting/house/pic_080.jpg 6 -art_painting/house/pic_079.jpg 6 -art_painting/house/pic_078.jpg 6 -art_painting/house/pic_088.jpg 6 -art_painting/house/pic_082.jpg 6 -art_painting/house/pic_086.jpg 6 -art_painting/house/pic_123.jpg 6 -art_painting/house/pic_122.jpg 6 -art_painting/house/pic_119.jpg 6 -art_painting/house/pic_111.jpg 6 -art_painting/house/pic_108.jpg 6 -art_painting/house/pic_104.jpg 6 -art_painting/house/pic_215.jpg 6 -art_painting/house/pic_211.jpg 6 -art_painting/house/pic_209.jpg 6 -art_painting/house/pic_208.jpg 6 -art_painting/house/pic_207.jpg 6 -art_painting/house/pic_218.jpg 6 -art_painting/house/pic_210.jpg 6 -art_painting/house/pic_228.jpg 6 -art_painting/house/pic_227.jpg 6 -art_painting/house/pic_225.jpg 6 -art_painting/house/pic_224.jpg 6 -art_painting/house/pic_223.jpg 6 -art_painting/house/pic_222.jpg 6 -art_painting/house/pic_226.jpg 6 -art_painting/house/pic_230.jpg 6 -art_painting/house/pic_229.jpg 6 -art_painting/house/pic_231.jpg 6 -art_painting/house/pic_241.jpg 6 -art_painting/house/pic_144.jpg 6 -art_painting/house/pic_143.jpg 6 -art_painting/house/pic_149.jpg 6 -art_painting/house/pic_150.jpg 6 -art_painting/house/pic_151.jpg 6 -art_painting/house/pic_148.jpg 6 -art_painting/house/pic_260.jpg 6 -art_painting/house/pic_153.jpg 6 -art_painting/house/pic_152.jpg 6 -art_painting/house/pic_261.jpg 6 -art_painting/house/pic_262.jpg 6 -art_painting/house/pic_268.jpg 6 -art_painting/house/pic_156.jpg 6 -art_painting/house/pic_158.jpg 6 -art_painting/house/pic_157.jpg 6 -art_painting/house/pic_266.jpg 6 -art_painting/house/pic_267.jpg 6 -art_painting/house/pic_273.jpg 6 -art_painting/house/pic_097.jpg 6 -art_painting/house/pic_118.jpg 6 -art_painting/house/pic_114.jpg 6 -art_painting/house/pic_094.jpg 6 -art_painting/house/pic_101.jpg 6 -art_painting/house/pic_125.jpg 6 -art_painting/house/pic_113.jpg 6 -art_painting/house/pic_109.jpg 6 -art_painting/house/pic_098.jpg 6 -art_painting/house/pic_116.jpg 6 -art_painting/house/pic_127.jpg 6 -art_painting/house/pic_120.jpg 6 -art_painting/house/pic_138.jpg 6 -art_painting/house/pic_176.jpg 6 -art_painting/house/pic_177.jpg 6 -art_painting/house/pic_212.jpg 6 -art_painting/house/pic_213.jpg 6 -art_painting/house/pic_238.jpg 6 -art_painting/house/pic_128.jpg 6 -art_painting/house/pic_053.jpg 6 -art_painting/house/pic_055.jpg 6 -art_painting/house/pic_054.jpg 6 -art_painting/house/pic_057.jpg 6 -art_painting/house/pic_056.jpg 6 -art_painting/house/pic_058.jpg 6 -art_painting/house/pic_059.jpg 6 -art_painting/house/pic_061.jpg 6 -art_painting/house/pic_060.jpg 6 -art_painting/house/pic_062.jpg 6 -art_painting/house/pic_063.jpg 6 -art_painting/house/pic_067.jpg 6 -art_painting/house/pic_069.jpg 6 -art_painting/house/pic_068.jpg 6 -art_painting/house/pic_066.jpg 6 -art_painting/house/pic_071.jpg 6 -art_painting/house/pic_070.jpg 6 -art_painting/house/pic_072.jpg 6 -art_painting/house/pic_106.jpg 6 -art_painting/house/pic_107.jpg 6 -art_painting/house/pic_099.jpg 6 -art_painting/house/pic_100.jpg 6 -art_painting/house/pic_035.jpg 6 -art_painting/house/pic_095.jpg 6 -art_painting/house/pic_093.jpg 6 -art_painting/house/pic_090.jpg 6 -art_painting/house/pic_092.jpg 6 -art_painting/house/pic_091.jpg 6 -art_painting/house/pic_103.jpg 6 -art_painting/house/pic_124.jpg 6 -art_painting/house/pic_110.jpg 6 -art_painting/house/pic_117.jpg 6 -art_painting/house/pic_105.jpg 6 -art_painting/house/pic_121.jpg 6 -art_painting/house/pic_115.jpg 6 -art_painting/house/pic_028.jpg 6 -art_painting/house/pic_017.jpg 6 -art_painting/house/pic_038.jpg 6 -art_painting/house/pic_048.jpg 6 -art_painting/house/pic_047.jpg 6 -art_painting/house/pic_036.jpg 6 -art_painting/house/pic_043.jpg 6 -art_painting/house/pic_041.jpg 6 -art_painting/house/pic_040.jpg 6 -art_painting/house/pic_039.jpg 6 -art_painting/house/pic_021.jpg 6 -art_painting/house/pic_020.jpg 6 -art_painting/house/pic_026.jpg 6 -art_painting/house/pic_046.jpg 6 -art_painting/house/pic_044.jpg 6 -art_painting/house/pic_045.jpg 6 -art_painting/house/pic_042.jpg 6 -art_painting/house/pic_049.jpg 6 -art_painting/house/pic_050.jpg 6 -art_painting/house/pic_051.jpg 6 -art_painting/person/pic_280.jpg 7 -art_painting/person/pic_278.jpg 7 -art_painting/person/pic_277.jpg 7 -art_painting/person/pic_276.jpg 7 -art_painting/person/pic_275.jpg 7 -art_painting/person/pic_273.jpg 7 -art_painting/person/pic_284.jpg 7 -art_painting/person/pic_283.jpg 7 -art_painting/person/pic_281.jpg 7 -art_painting/person/pic_282.jpg 7 -art_painting/person/pic_285.jpg 7 -art_painting/person/pic_269.jpg 7 -art_painting/person/pic_297.jpg 7 -art_painting/person/pic_298.jpg 7 -art_painting/person/pic_296.jpg 7 -art_painting/person/pic_295.jpg 7 -art_painting/person/pic_134.jpg 7 -art_painting/person/pic_133.jpg 7 -art_painting/person/pic_135.jpg 7 -art_painting/person/pic_310.jpg 7 -art_painting/person/pic_141.jpg 7 -art_painting/person/pic_001.jpg 7 -art_painting/person/pic_002.jpg 7 -art_painting/person/pic_003.jpg 7 -art_painting/person/pic_004.jpg 7 -art_painting/person/pic_005.jpg 7 -art_painting/person/pic_048.jpg 7 -art_painting/person/pic_050.jpg 7 -art_painting/person/pic_052.jpg 7 -art_painting/person/pic_055.jpg 7 -art_painting/person/pic_056.jpg 7 -art_painting/person/pic_065.jpg 7 -art_painting/person/pic_331.jpg 7 -art_painting/person/pic_330.jpg 7 -art_painting/person/pic_176.jpg 7 -art_painting/person/pic_416.jpg 7 -art_painting/person/pic_420.jpg 7 -art_painting/person/pic_426.jpg 7 -art_painting/person/pic_424.jpg 7 -art_painting/person/pic_423.jpg 7 -art_painting/person/pic_421.jpg 7 -art_painting/person/pic_183.jpg 7 -art_painting/person/pic_428.jpg 7 -art_painting/person/pic_430.jpg 7 -art_painting/person/pic_429.jpg 7 -art_painting/person/pic_436.jpg 7 -art_painting/person/pic_437.jpg 7 -art_painting/person/pic_438.jpg 7 -art_painting/person/pic_184.jpg 7 -art_painting/person/pic_186.jpg 7 -art_painting/person/pic_388.jpg 7 -art_painting/person/pic_410.jpg 7 -art_painting/person/pic_400.jpg 7 -art_painting/person/pic_391.jpg 7 -art_painting/person/pic_406.jpg 7 -art_painting/person/pic_407.jpg 7 -art_painting/person/pic_417.jpg 7 -art_painting/person/pic_435.jpg 7 -art_painting/person/pic_433.jpg 7 -art_painting/person/pic_431.jpg 7 -art_painting/person/pic_467.jpg 7 -art_painting/person/pic_247.jpg 7 -art_painting/person/pic_249.jpg 7 -art_painting/person/pic_252.jpg 7 -art_painting/person/pic_255.jpg 7 -art_painting/person/pic_531.jpg 7 -art_painting/person/pic_530.jpg 7 -art_painting/person/pic_264.jpg 7 -art_painting/person/pic_262.jpg 7 -art_painting/person/pic_549.jpg 7 -art_painting/person/pic_260.jpg 7 -art_painting/person/pic_548.jpg 7 -art_painting/person/pic_501.jpg 7 -art_painting/person/pic_495.jpg 7 -art_painting/person/pic_494.jpg 7 -art_painting/person/pic_506.jpg 7 -art_painting/person/pic_532.jpg 7 -art_painting/person/pic_527.jpg 7 -art_painting/person/pic_525.jpg 7 -art_painting/person/pic_519.jpg 7 -art_painting/person/pic_523.jpg 7 -art_painting/person/pic_521.jpg 7 -art_painting/person/pic_520.jpg 7 -art_painting/person/pic_512.jpg 7 -art_painting/person/pic_528.jpg 7 -art_painting/person/pic_526.jpg 7 -art_painting/person/pic_518.jpg 7 -art_painting/person/pic_534.jpg 7 -art_painting/person/pic_538.jpg 7 -art_painting/person/pic_026.jpg 7 -art_painting/person/pic_047.jpg 7 -art_painting/person/pic_030.jpg 7 -art_painting/person/pic_022.jpg 7 -art_painting/person/pic_032.jpg 7 -art_painting/person/pic_024.jpg 7 -art_painting/person/pic_044.jpg 7 -art_painting/person/pic_038.jpg 7 -art_painting/person/pic_027.jpg 7 -art_painting/person/pic_019.jpg 7 -art_painting/person/pic_034.jpg 7 -art_painting/person/pic_045.jpg 7 -art_painting/person/pic_023.jpg 7 -art_painting/person/pic_029.jpg 7 -art_painting/person/pic_025.jpg 7 -art_painting/person/pic_041.jpg 7 -art_painting/person/pic_039.jpg 7 -art_painting/person/pic_031.jpg 7 -art_painting/person/pic_046.jpg 7 -art_painting/person/pic_020.jpg 7 -art_painting/person/pic_040.jpg 7 -art_painting/person/pic_226.jpg 7 -art_painting/person/pic_229.jpg 7 -art_painting/person/pic_228.jpg 7 -art_painting/person/pic_484.jpg 7 -art_painting/person/pic_234.jpg 7 -art_painting/person/pic_231.jpg 7 -art_painting/person/pic_232.jpg 7 -art_painting/person/pic_235.jpg 7 -art_painting/person/pic_505.jpg 7 -art_painting/person/pic_243.jpg 7 -art_painting/person/pic_237.jpg 7 -art_painting/person/pic_456.jpg 7 -art_painting/person/pic_200.jpg 7 -art_painting/person/pic_459.jpg 7 -art_painting/person/pic_460.jpg 7 -art_painting/person/pic_203.jpg 7 -art_painting/person/pic_206.jpg 7 -art_painting/person/pic_204.jpg 7 -art_painting/person/pic_202.jpg 7 -art_painting/person/pic_201.jpg 7 -art_painting/person/pic_462.jpg 7 -art_painting/person/pic_205.jpg 7 -art_painting/person/pic_213.jpg 7 -art_painting/person/pic_470.jpg 7 -art_painting/person/pic_469.jpg 7 -art_painting/person/pic_464.jpg 7 -art_painting/person/pic_209.jpg 7 -art_painting/person/pic_208.jpg 7 -art_painting/person/pic_210.jpg 7 -art_painting/person/pic_497.jpg 7 -art_painting/person/pic_236.jpg 7 -art_painting/person/pic_496.jpg 7 -art_painting/person/pic_503.jpg 7 -art_painting/person/pic_238.jpg 7 -art_painting/person/pic_508.jpg 7 -art_painting/person/pic_507.jpg 7 -art_painting/person/pic_504.jpg 7 -art_painting/person/pic_245.jpg 7 -art_painting/person/pic_254.jpg 7 -art_painting/person/pic_253.jpg 7 -art_painting/person/pic_522.jpg 7 -art_painting/person/pic_248.jpg 7 -art_painting/person/pic_514.jpg 7 -art_painting/person/pic_513.jpg 7 -art_painting/person/pic_246.jpg 7 -art_painting/person/pic_250.jpg 7 -art_painting/person/pic_132.jpg 7 -art_painting/person/pic_116.jpg 7 -art_painting/person/pic_104.jpg 7 -art_painting/person/pic_112.jpg 7 -art_painting/person/pic_100.jpg 7 -art_painting/person/pic_117.jpg 7 -art_painting/person/pic_122.jpg 7 -art_painting/person/pic_121.jpg 7 -art_painting/person/pic_129.jpg 7 -art_painting/person/pic_136.jpg 7 -art_painting/person/pic_193.jpg 7 -art_painting/person/pic_194.jpg 7 -art_painting/person/pic_192.jpg 7 -art_painting/person/pic_195.jpg 7 -art_painting/person/pic_241.jpg 7 -art_painting/person/pic_242.jpg 7 -art_painting/person/pic_240.jpg 7 -art_painting/person/pic_152.jpg 7 -art_painting/person/pic_170.jpg 7 -art_painting/person/pic_171.jpg 7 -art_painting/person/pic_168.jpg 7 -art_painting/person/pic_167.jpg 7 -art_painting/person/pic_320.jpg 7 -art_painting/person/pic_319.jpg 7 -art_painting/person/pic_318.jpg 7 -art_painting/person/pic_164.jpg 7 -art_painting/person/pic_163.jpg 7 -art_painting/person/pic_162.jpg 7 -art_painting/person/pic_161.jpg 7 -art_painting/person/pic_316.jpg 7 -art_painting/person/pic_160.jpg 7 -art_painting/person/pic_321.jpg 7 -art_painting/person/pic_165.jpg 7 -art_painting/person/pic_317.jpg 7 -art_painting/person/pic_166.jpg 7 -art_painting/person/pic_169.jpg 7 -art_painting/person/pic_535.jpg 7 -art_painting/person/pic_543.jpg 7 -art_painting/person/pic_540.jpg 7 -art_painting/person/pic_539.jpg 7 -art_painting/person/pic_542.jpg 7 -art_painting/person/pic_545.jpg 7 -art_painting/person/pic_559.jpg 7 -art_painting/person/pic_555.jpg 7 -art_painting/person/pic_553.jpg 7 -art_painting/person/pic_551.jpg 7 -art_painting/person/pic_552.jpg 7 -art_painting/person/pic_550.jpg 7 -art_painting/person/pic_546.jpg 7 -art_painting/person/pic_556.jpg 7 -art_painting/person/pic_558.jpg 7 -art_painting/person/pic_572.jpg 7 -art_painting/person/pic_571.jpg 7 -art_painting/person/pic_570.jpg 7 -art_painting/person/pic_564.jpg 7 -art_painting/person/pic_563.jpg 7 -art_painting/person/pic_560.jpg 7 -art_painting/person/pic_561.jpg 7 -art_painting/person/pic_577.jpg 7 -art_painting/person/pic_259.jpg 7 -art_painting/person/pic_547.jpg 7 -art_painting/person/pic_257.jpg 7 -art_painting/person/pic_256.jpg 7 -art_painting/person/pic_537.jpg 7 -art_painting/person/pic_536.jpg 7 -art_painting/person/pic_263.jpg 7 -art_painting/person/pic_051.jpg 7 -art_painting/person/pic_268.jpg 7 -art_painting/person/pic_574.jpg 7 -art_painting/person/pic_573.jpg 7 -art_painting/person/pic_267.jpg 7 -art_painting/person/pic_266.jpg 7 -art_painting/person/pic_265.jpg 7 -art_painting/person/pic_272.jpg 7 -art_painting/person/pic_568.jpg 7 -art_painting/person/pic_569.jpg 7 -art_painting/person/pic_271.jpg 7 -art_painting/person/pic_113.jpg 7 -art_painting/person/pic_111.jpg 7 -art_painting/person/pic_109.jpg 7 -art_painting/person/pic_107.jpg 7 -art_painting/person/pic_106.jpg 7 -art_painting/person/pic_105.jpg 7 -art_painting/person/pic_101.jpg 7 -art_painting/person/pic_099.jpg 7 -art_painting/person/pic_131.jpg 7 -art_painting/person/pic_120.jpg 7 -art_painting/person/pic_110.jpg 7 -art_painting/person/pic_123.jpg 7 -art_painting/person/pic_108.jpg 7 -art_painting/person/pic_098.jpg 7 -art_painting/person/pic_364.jpg 7 -art_painting/person/pic_363.jpg 7 -art_painting/person/pic_356.jpg 7 -art_painting/person/pic_357.jpg 7 -art_painting/person/pic_366.jpg 7 -art_painting/person/pic_372.jpg 7 -art_painting/person/pic_377.jpg 7 -art_painting/person/pic_378.jpg 7 -art_painting/person/pic_376.jpg 7 -art_painting/person/pic_371.jpg 7 -art_painting/person/pic_375.jpg 7 -art_painting/person/pic_389.jpg 7 -art_painting/person/pic_387.jpg 7 -art_painting/person/pic_386.jpg 7 -art_painting/person/pic_385.jpg 7 -art_painting/person/pic_379.jpg 7 -art_painting/person/pic_214.jpg 7 -art_painting/person/pic_211.jpg 7 -art_painting/person/pic_471.jpg 7 -art_painting/person/pic_475.jpg 7 -art_painting/person/pic_220.jpg 7 -art_painting/person/pic_218.jpg 7 -art_painting/person/pic_216.jpg 7 -art_painting/person/pic_215.jpg 7 -art_painting/person/pic_221.jpg 7 -art_painting/person/pic_217.jpg 7 -art_painting/person/pic_219.jpg 7 -art_painting/person/pic_227.jpg 7 -art_painting/person/pic_480.jpg 7 -art_painting/person/pic_479.jpg 7 -art_painting/person/pic_476.jpg 7 -art_painting/person/pic_224.jpg 7 -art_painting/person/pic_223.jpg 7 -art_painting/person/pic_222.jpg 7 -art_painting/person/pic_322.jpg 7 -art_painting/person/pic_306.jpg 7 -art_painting/person/pic_333.jpg 7 -art_painting/person/pic_346.jpg 7 -art_painting/person/pic_354.jpg 7 -art_painting/person/pic_353.jpg 7 -art_painting/person/pic_352.jpg 7 -art_painting/person/pic_351.jpg 7 -art_painting/person/pic_349.jpg 7 -art_painting/person/pic_347.jpg 7 -art_painting/person/pic_345.jpg 7 -art_painting/person/pic_338.jpg 7 -art_painting/person/pic_337.jpg 7 -art_painting/person/pic_350.jpg 7 -art_painting/person/pic_339.jpg 7 -art_painting/person/pic_368.jpg 7 -art_painting/person/pic_308.jpg 7 -art_painting/person/pic_151.jpg 7 -art_painting/person/pic_150.jpg 7 -art_painting/person/pic_149.jpg 7 -art_painting/person/pic_313.jpg 7 -art_painting/person/pic_148.jpg 7 -art_painting/person/pic_146.jpg 7 -art_painting/person/pic_311.jpg 7 -art_painting/person/pic_143.jpg 7 -art_painting/person/pic_144.jpg 7 -art_painting/person/pic_147.jpg 7 -art_painting/person/pic_145.jpg 7 -art_painting/person/pic_312.jpg 7 -art_painting/person/pic_314.jpg 7 -art_painting/person/pic_158.jpg 7 -art_painting/person/pic_157.jpg 7 -art_painting/person/pic_156.jpg 7 -art_painting/person/pic_155.jpg 7 -art_painting/person/pic_290.jpg 7 -art_painting/person/pic_288.jpg 7 -art_painting/person/pic_287.jpg 7 -art_painting/person/pic_294.jpg 7 -art_painting/person/pic_293.jpg 7 -art_painting/person/pic_292.jpg 7 -art_painting/person/pic_291.jpg 7 -art_painting/person/pic_301.jpg 7 -art_painting/person/pic_300.jpg 7 -art_painting/person/pic_305.jpg 7 -art_painting/person/pic_303.jpg 7 -art_painting/person/pic_304.jpg 7 -art_painting/person/pic_336.jpg 7 -art_painting/person/pic_325.jpg 7 -art_painting/person/pic_324.jpg 7 -art_painting/person/pic_006.jpg 7 -art_painting/person/pic_007.jpg 7 -art_painting/person/pic_008.jpg 7 -art_painting/person/pic_009.jpg 7 -art_painting/person/pic_010.jpg 7 -art_painting/person/pic_011.jpg 7 -art_painting/person/pic_012.jpg 7 -art_painting/person/pic_013.jpg 7 -art_painting/person/pic_014.jpg 7 -art_painting/person/pic_015.jpg 7 -art_painting/person/pic_016.jpg 7 -art_painting/person/pic_042.jpg 7 -art_painting/person/pic_033.jpg 7 -art_painting/person/pic_018.jpg 7 -art_painting/person/pic_036.jpg 7 -art_painting/person/pic_017.jpg 7 -art_painting/person/pic_037.jpg 7 -art_painting/person/pic_028.jpg 7 -art_painting/person/pic_043.jpg 7 -art_painting/person/pic_035.jpg 7 -art_painting/person/pic_327.jpg 7 -art_painting/person/pic_175.jpg 7 -art_painting/person/pic_328.jpg 7 -art_painting/person/pic_326.jpg 7 -art_painting/person/pic_174.jpg 7 -art_painting/person/pic_172.jpg 7 -art_painting/person/pic_329.jpg 7 -art_painting/person/pic_173.jpg 7 -art_painting/person/pic_178.jpg 7 -art_painting/person/pic_334.jpg 7 -art_painting/person/pic_335.jpg 7 -art_painting/person/pic_342.jpg 7 -art_painting/person/pic_181.jpg 7 -art_painting/person/pic_343.jpg 7 -art_painting/person/pic_180.jpg 7 -art_painting/person/pic_340.jpg 7 -art_painting/person/pic_359.jpg 7 -art_painting/person/pic_064.jpg 7 -art_painting/person/pic_062.jpg 7 -art_painting/person/pic_059.jpg 7 -art_painting/person/pic_060.jpg 7 -art_painting/person/pic_066.jpg 7 -art_painting/person/pic_063.jpg 7 -art_painting/person/pic_071.jpg 7 -art_painting/person/pic_070.jpg 7 -art_painting/person/pic_069.jpg 7 -art_painting/person/pic_072.jpg 7 -art_painting/person/pic_076.jpg 7 -art_painting/person/pic_074.jpg 7 -art_painting/person/pic_077.jpg 7 -art_painting/person/pic_078.jpg 7 -art_painting/person/pic_079.jpg 7 -art_painting/person/pic_080.jpg 7 -art_painting/person/pic_081.jpg 7 -art_painting/person/pic_082.jpg 7 -art_painting/person/pic_083.jpg 7 -art_painting/person/pic_094.jpg 7 -art_painting/person/pic_093.jpg 7 -art_painting/person/pic_089.jpg 7 -art_painting/person/pic_090.jpg 7 -art_painting/person/pic_086.jpg 7 -art_painting/person/pic_097.jpg 7 -art_painting/person/pic_124.jpg 7 -art_painting/person/pic_128.jpg 7 -art_painting/person/pic_127.jpg 7 -art_painting/person/pic_126.jpg 7 -art_painting/person/pic_115.jpg 7 -art_painting/person/pic_114.jpg 7 -art_painting/person/pic_463.jpg 7 -art_painting/person/pic_458.jpg 7 -art_painting/person/pic_444.jpg 7 -art_painting/person/pic_445.jpg 7 -art_painting/person/pic_466.jpg 7 -art_painting/person/pic_465.jpg 7 -art_painting/person/pic_493.jpg 7 -art_painting/person/pic_490.jpg 7 -art_painting/person/pic_487.jpg 7 -art_painting/person/pic_481.jpg 7 -art_painting/person/pic_474.jpg 7 -art_painting/person/pic_468.jpg 7 -art_painting/person/pic_492.jpg 7 -art_painting/person/pic_473.jpg 7 -art_painting/person/pic_511.jpg 7 -art_painting/person/pic_510.jpg 7 -art_painting/person/pic_502.jpg 7 -art_painting/person/pic_187.jpg 7 -art_painting/person/pic_441.jpg 7 -art_painting/person/pic_440.jpg 7 -art_painting/person/pic_188.jpg 7 -art_painting/person/pic_450.jpg 7 -art_painting/person/pic_449.jpg 7 -art_painting/person/pic_448.jpg 7 -art_painting/person/pic_447.jpg 7 -art_painting/person/pic_190.jpg 7 -art_painting/person/pic_454.jpg 7 -art_painting/person/pic_455.jpg 7 -art_painting/person/pic_199.jpg 7 -art_painting/person/pic_197.jpg 7 -art_painting/person/pic_198.jpg 7 -art_painting/person/pic_196.jpg 7 -art_painting/person/pic_191.jpg 7 -art_painting/person/pic_358.jpg 7 -art_painting/person/pic_361.jpg 7 -art_painting/person/pic_362.jpg 7 -art_painting/person/pic_382.jpg 7 -art_painting/person/pic_380.jpg 7 -art_painting/person/pic_381.jpg 7 -art_painting/person/pic_383.jpg 7 -art_painting/person/pic_398.jpg 7 -art_painting/person/pic_395.jpg 7 -art_painting/person/pic_394.jpg 7 -art_painting/person/pic_396.jpg 7 -art_painting/person/pic_397.jpg 7 -art_painting/person/pic_402.jpg 7 -art_painting/person/pic_404.jpg 7 -art_painting/person/pic_405.jpg 7 -art_painting/person/pic_412.jpg 7 -art_painting/person/pic_414.jpg 7 -art_painting/person/pic_413.jpg 7 diff --git a/data/pacs_split/art_painting_train_kfold.txt b/data/pacs_split/art_painting_train_kfold.txt deleted file mode 100644 index 8b5405715..000000000 --- a/data/pacs_split/art_painting_train_kfold.txt +++ /dev/null @@ -1,1840 +0,0 @@ -art_painting/dog/pic_333.jpg 1 -art_painting/dog/pic_376.jpg 1 -art_painting/dog/pic_259.jpg 1 -art_painting/dog/pic_261.jpg 1 -art_painting/dog/pic_256.jpg 1 -art_painting/dog/pic_253.jpg 1 -art_painting/dog/pic_265.jpg 1 -art_painting/dog/pic_258.jpg 1 -art_painting/dog/pic_279.jpg 1 -art_painting/dog/pic_324.jpg 1 -art_painting/dog/pic_325.jpg 1 -art_painting/dog/pic_332.jpg 1 -art_painting/dog/pic_251.jpg 1 -art_painting/dog/pic_275.jpg 1 -art_painting/dog/pic_276.jpg 1 -art_painting/dog/pic_269.jpg 1 -art_painting/dog/pic_267.jpg 1 -art_painting/dog/pic_334.jpg 1 -art_painting/dog/pic_278.jpg 1 -art_painting/dog/pic_266.jpg 1 -art_painting/dog/pic_340.jpg 1 -art_painting/dog/pic_198.jpg 1 -art_painting/dog/pic_166.jpg 1 -art_painting/dog/pic_196.jpg 1 -art_painting/dog/pic_268.jpg 1 -art_painting/dog/pic_192.jpg 1 -art_painting/dog/pic_272.jpg 1 -art_painting/dog/pic_274.jpg 1 -art_painting/dog/pic_209.jpg 1 -art_painting/dog/pic_201.jpg 1 -art_painting/dog/pic_205.jpg 1 -art_painting/dog/pic_208.jpg 1 -art_painting/dog/pic_210.jpg 1 -art_painting/dog/pic_226.jpg 1 -art_painting/dog/pic_221.jpg 1 -art_painting/dog/pic_281.jpg 1 -art_painting/dog/pic_193.jpg 1 -art_painting/dog/pic_199.jpg 1 -art_painting/dog/pic_188.jpg 1 -art_painting/dog/pic_234.jpg 1 -art_painting/dog/pic_009.jpg 1 -art_painting/dog/pic_010.jpg 1 -art_painting/dog/pic_011.jpg 1 -art_painting/dog/pic_012.jpg 1 -art_painting/dog/pic_013.jpg 1 -art_painting/dog/pic_014.jpg 1 -art_painting/dog/pic_015.jpg 1 -art_painting/dog/pic_016.jpg 1 -art_painting/dog/pic_017.jpg 1 -art_painting/dog/pic_018.jpg 1 -art_painting/dog/pic_019.jpg 1 -art_painting/dog/pic_023.jpg 1 -art_painting/dog/pic_020.jpg 1 -art_painting/dog/pic_022.jpg 1 -art_painting/dog/pic_031.jpg 1 -art_painting/dog/pic_026.jpg 1 -art_painting/dog/pic_029.jpg 1 -art_painting/dog/pic_028.jpg 1 -art_painting/dog/pic_025.jpg 1 -art_painting/dog/pic_032.jpg 1 -art_painting/dog/pic_113.jpg 1 -art_painting/dog/pic_116.jpg 1 -art_painting/dog/pic_121.jpg 1 -art_painting/dog/pic_118.jpg 1 -art_painting/dog/pic_132.jpg 1 -art_painting/dog/pic_105.jpg 1 -art_painting/dog/pic_114.jpg 1 -art_painting/dog/pic_237.jpg 1 -art_painting/dog/pic_239.jpg 1 -art_painting/dog/pic_177.jpg 1 -art_painting/dog/pic_172.jpg 1 -art_painting/dog/pic_170.jpg 1 -art_painting/dog/pic_169.jpg 1 -art_painting/dog/pic_240.jpg 1 -art_painting/dog/pic_244.jpg 1 -art_painting/dog/pic_243.jpg 1 -art_painting/dog/pic_127.jpg 1 -art_painting/dog/pic_146.jpg 1 -art_painting/dog/pic_130.jpg 1 -art_painting/dog/pic_143.jpg 1 -art_painting/dog/pic_148.jpg 1 -art_painting/dog/pic_140.jpg 1 -art_painting/dog/pic_246.jpg 1 -art_painting/dog/pic_147.jpg 1 -art_painting/dog/pic_139.jpg 1 -art_painting/dog/pic_144.jpg 1 -art_painting/dog/pic_176.jpg 1 -art_painting/dog/pic_153.jpg 1 -art_painting/dog/pic_187.jpg 1 -art_painting/dog/pic_165.jpg 1 -art_painting/dog/pic_163.jpg 1 -art_painting/dog/pic_167.jpg 1 -art_painting/dog/pic_164.jpg 1 -art_painting/dog/pic_181.jpg 1 -art_painting/dog/pic_183.jpg 1 -art_painting/dog/pic_401.jpg 1 -art_painting/dog/pic_395.jpg 1 -art_painting/dog/pic_412.jpg 1 -art_painting/dog/pic_409.jpg 1 -art_painting/dog/pic_414.jpg 1 -art_painting/dog/pic_407.jpg 1 -art_painting/dog/pic_404.jpg 1 -art_painting/dog/pic_415.jpg 1 -art_painting/dog/pic_410.jpg 1 -art_painting/dog/pic_413.jpg 1 -art_painting/dog/pic_408.jpg 1 -art_painting/dog/pic_382.jpg 1 -art_painting/dog/pic_342.jpg 1 -art_painting/dog/pic_343.jpg 1 -art_painting/dog/pic_271.jpg 1 -art_painting/dog/pic_280.jpg 1 -art_painting/dog/pic_303.jpg 1 -art_painting/dog/pic_349.jpg 1 -art_painting/dog/pic_290.jpg 1 -art_painting/dog/pic_289.jpg 1 -art_painting/dog/pic_287.jpg 1 -art_painting/dog/pic_284.jpg 1 -art_painting/dog/pic_283.jpg 1 -art_painting/dog/pic_286.jpg 1 -art_painting/dog/pic_307.jpg 1 -art_painting/dog/pic_293.jpg 1 -art_painting/dog/pic_299.jpg 1 -art_painting/dog/pic_288.jpg 1 -art_painting/dog/pic_354.jpg 1 -art_painting/dog/pic_358.jpg 1 -art_painting/dog/pic_295.jpg 1 -art_painting/dog/pic_292.jpg 1 -art_painting/dog/pic_400.jpg 1 -art_painting/dog/pic_351.jpg 1 -art_painting/dog/pic_350.jpg 1 -art_painting/dog/pic_348.jpg 1 -art_painting/dog/pic_346.jpg 1 -art_painting/dog/pic_405.jpg 1 -art_painting/dog/pic_411.jpg 1 -art_painting/dog/pic_406.jpg 1 -art_painting/dog/pic_357.jpg 1 -art_painting/dog/pic_359.jpg 1 -art_painting/dog/pic_369.jpg 1 -art_painting/dog/pic_355.jpg 1 -art_painting/dog/pic_360.jpg 1 -art_painting/dog/pic_377.jpg 1 -art_painting/dog/pic_361.jpg 1 -art_painting/dog/pic_367.jpg 1 -art_painting/dog/pic_362.jpg 1 -art_painting/dog/pic_372.jpg 1 -art_painting/dog/pic_370.jpg 1 -art_painting/dog/pic_366.jpg 1 -art_painting/dog/pic_375.jpg 1 -art_painting/dog/pic_374.jpg 1 -art_painting/dog/pic_368.jpg 1 -art_painting/dog/pic_392.jpg 1 -art_painting/dog/pic_380.jpg 1 -art_painting/dog/pic_381.jpg 1 -art_painting/dog/pic_386.jpg 1 -art_painting/dog/pic_385.jpg 1 -art_painting/dog/pic_384.jpg 1 -art_painting/dog/pic_378.jpg 1 -art_painting/dog/pic_383.jpg 1 -art_painting/dog/pic_393.jpg 1 -art_painting/dog/pic_388.jpg 1 -art_painting/dog/pic_394.jpg 1 -art_painting/dog/pic_391.jpg 1 -art_painting/dog/pic_390.jpg 1 -art_painting/dog/pic_399.jpg 1 -art_painting/dog/pic_396.jpg 1 -art_painting/dog/pic_110.jpg 1 -art_painting/dog/pic_120.jpg 1 -art_painting/dog/pic_123.jpg 1 -art_painting/dog/pic_112.jpg 1 -art_painting/dog/pic_126.jpg 1 -art_painting/dog/pic_065.jpg 1 -art_painting/dog/pic_064.jpg 1 -art_painting/dog/pic_066.jpg 1 -art_painting/dog/pic_062.jpg 1 -art_painting/dog/pic_070.jpg 1 -art_painting/dog/pic_131.jpg 1 -art_painting/dog/pic_133.jpg 1 -art_painting/dog/pic_136.jpg 1 -art_painting/dog/pic_145.jpg 1 -art_painting/dog/pic_149.jpg 1 -art_painting/dog/pic_152.jpg 1 -art_painting/dog/pic_151.jpg 1 -art_painting/dog/pic_179.jpg 1 -art_painting/dog/pic_178.jpg 1 -art_painting/dog/pic_182.jpg 1 -art_painting/dog/pic_109.jpg 1 -art_painting/dog/pic_107.jpg 1 -art_painting/dog/pic_185.jpg 1 -art_painting/dog/pic_106.jpg 1 -art_painting/dog/pic_083.jpg 1 -art_painting/dog/pic_088.jpg 1 -art_painting/dog/pic_087.jpg 1 -art_painting/dog/pic_089.jpg 1 -art_painting/dog/pic_103.jpg 1 -art_painting/dog/pic_124.jpg 1 -art_painting/dog/pic_150.jpg 1 -art_painting/dog/pic_137.jpg 1 -art_painting/dog/pic_092.jpg 1 -art_painting/dog/pic_085.jpg 1 -art_painting/dog/pic_001.jpg 1 -art_painting/dog/pic_002.jpg 1 -art_painting/dog/pic_003.jpg 1 -art_painting/dog/pic_004.jpg 1 -art_painting/dog/pic_005.jpg 1 -art_painting/dog/pic_006.jpg 1 -art_painting/dog/pic_007.jpg 1 -art_painting/dog/pic_008.jpg 1 -art_painting/dog/pic_055.jpg 1 -art_painting/dog/pic_048.jpg 1 -art_painting/dog/pic_047.jpg 1 -art_painting/dog/pic_052.jpg 1 -art_painting/dog/pic_050.jpg 1 -art_painting/dog/pic_046.jpg 1 -art_painting/dog/pic_075.jpg 1 -art_painting/dog/pic_076.jpg 1 -art_painting/dog/pic_090.jpg 1 -art_painting/dog/pic_097.jpg 1 -art_painting/dog/pic_099.jpg 1 -art_painting/dog/pic_061.jpg 1 -art_painting/dog/pic_058.jpg 1 -art_painting/dog/pic_056.jpg 1 -art_painting/dog/pic_063.jpg 1 -art_painting/dog/pic_057.jpg 1 -art_painting/dog/pic_060.jpg 1 -art_painting/dog/pic_059.jpg 1 -art_painting/dog/pic_104.jpg 1 -art_painting/dog/pic_108.jpg 1 -art_painting/dog/pic_173.jpg 1 -art_painting/dog/pic_174.jpg 1 -art_painting/dog/pic_254.jpg 1 -art_painting/dog/pic_184.jpg 1 -art_painting/dog/pic_191.jpg 1 -art_painting/dog/pic_194.jpg 1 -art_painting/dog/pic_189.jpg 1 -art_painting/dog/pic_262.jpg 1 -art_painting/dog/pic_195.jpg 1 -art_painting/dog/pic_214.jpg 1 -art_painting/dog/pic_213.jpg 1 -art_painting/dog/pic_263.jpg 1 -art_painting/dog/pic_264.jpg 1 -art_painting/dog/pic_186.jpg 1 -art_painting/dog/pic_168.jpg 1 -art_painting/dog/pic_206.jpg 1 -art_painting/dog/pic_202.jpg 1 -art_painting/dog/pic_180.jpg 1 -art_painting/dog/pic_204.jpg 1 -art_painting/dog/pic_154.jpg 1 -art_painting/dog/pic_072.jpg 1 -art_painting/dog/pic_074.jpg 1 -art_painting/dog/pic_073.jpg 1 -art_painting/dog/pic_086.jpg 1 -art_painting/dog/pic_082.jpg 1 -art_painting/dog/pic_067.jpg 1 -art_painting/dog/pic_158.jpg 1 -art_painting/dog/pic_079.jpg 1 -art_painting/dog/pic_077.jpg 1 -art_painting/dog/pic_161.jpg 1 -art_painting/dog/pic_096.jpg 1 -art_painting/dog/pic_095.jpg 1 -art_painting/dog/pic_080.jpg 1 -art_painting/dog/pic_100.jpg 1 -art_painting/dog/pic_102.jpg 1 -art_painting/dog/pic_091.jpg 1 -art_painting/dog/pic_135.jpg 1 -art_painting/dog/pic_033.jpg 1 -art_painting/dog/pic_034.jpg 1 -art_painting/dog/pic_024.jpg 1 -art_painting/dog/pic_021.jpg 1 -art_painting/dog/pic_027.jpg 1 -art_painting/dog/pic_035.jpg 1 -art_painting/dog/pic_037.jpg 1 -art_painting/dog/pic_039.jpg 1 -art_painting/dog/pic_036.jpg 1 -art_painting/dog/pic_041.jpg 1 -art_painting/dog/pic_042.jpg 1 -art_painting/dog/pic_038.jpg 1 -art_painting/dog/pic_045.jpg 1 -art_painting/dog/pic_043.jpg 1 -art_painting/dog/pic_044.jpg 1 -art_painting/dog/pic_049.jpg 1 -art_painting/dog/pic_040.jpg 1 -art_painting/dog/pic_051.jpg 1 -art_painting/dog/pic_054.jpg 1 -art_painting/dog/pic_053.jpg 1 -art_painting/dog/pic_344.jpg 1 -art_painting/dog/pic_328.jpg 1 -art_painting/dog/pic_321.jpg 1 -art_painting/dog/pic_320.jpg 1 -art_painting/dog/pic_326.jpg 1 -art_painting/dog/pic_327.jpg 1 -art_painting/dog/pic_318.jpg 1 -art_painting/dog/pic_387.jpg 1 -art_painting/dog/pic_319.jpg 1 -art_painting/dog/pic_341.jpg 1 -art_painting/dog/pic_331.jpg 1 -art_painting/dog/pic_337.jpg 1 -art_painting/dog/pic_335.jpg 1 -art_painting/dog/pic_338.jpg 1 -art_painting/dog/pic_336.jpg 1 -art_painting/dog/pic_353.jpg 1 -art_painting/dog/pic_352.jpg 1 -art_painting/dog/pic_397.jpg 1 -art_painting/dog/pic_345.jpg 1 -art_painting/dog/pic_398.jpg 1 -art_painting/dog/pic_098.jpg 1 -art_painting/dog/pic_094.jpg 1 -art_painting/dog/pic_081.jpg 1 -art_painting/dog/pic_101.jpg 1 -art_painting/dog/pic_078.jpg 1 -art_painting/dog/pic_084.jpg 1 -art_painting/dog/pic_211.jpg 1 -art_painting/dog/pic_138.jpg 1 -art_painting/dog/pic_155.jpg 1 -art_painting/dog/pic_156.jpg 1 -art_painting/dog/pic_157.jpg 1 -art_painting/dog/pic_222.jpg 1 -art_painting/dog/pic_217.jpg 1 -art_painting/dog/pic_223.jpg 1 -art_painting/dog/pic_229.jpg 1 -art_painting/dog/pic_134.jpg 1 -art_painting/dog/pic_117.jpg 1 -art_painting/dog/pic_235.jpg 1 -art_painting/dog/pic_200.jpg 1 -art_painting/dog/pic_245.jpg 1 -art_painting/dog/pic_285.jpg 1 -art_painting/dog/pic_212.jpg 1 -art_painting/dog/pic_197.jpg 1 -art_painting/dog/pic_294.jpg 1 -art_painting/dog/pic_215.jpg 1 -art_painting/dog/pic_203.jpg 1 -art_painting/dog/pic_297.jpg 1 -art_painting/dog/pic_231.jpg 1 -art_painting/dog/pic_233.jpg 1 -art_painting/dog/pic_224.jpg 1 -art_painting/dog/pic_227.jpg 1 -art_painting/dog/pic_230.jpg 1 -art_painting/dog/pic_228.jpg 1 -art_painting/dog/pic_232.jpg 1 -art_painting/dog/pic_238.jpg 1 -art_painting/dog/pic_220.jpg 1 -art_painting/dog/pic_304.jpg 1 -art_painting/elephant/pic_085.jpg 2 -art_painting/elephant/pic_090.jpg 2 -art_painting/elephant/pic_089.jpg 2 -art_painting/elephant/pic_099.jpg 2 -art_painting/elephant/pic_111.jpg 2 -art_painting/elephant/pic_108.jpg 2 -art_painting/elephant/pic_114.jpg 2 -art_painting/elephant/pic_116.jpg 2 -art_painting/elephant/pic_123.jpg 2 -art_painting/elephant/pic_133.jpg 2 -art_painting/elephant/pic_131.jpg 2 -art_painting/elephant/pic_122.jpg 2 -art_painting/elephant/pic_113.jpg 2 -art_painting/elephant/pic_115.jpg 2 -art_painting/elephant/pic_112.jpg 2 -art_painting/elephant/pic_251.jpg 2 -art_painting/elephant/pic_250.jpg 2 -art_painting/elephant/pic_242.jpg 2 -art_painting/elephant/pic_246.jpg 2 -art_painting/elephant/pic_257.jpg 2 -art_painting/elephant/pic_249.jpg 2 -art_painting/elephant/pic_261.jpg 2 -art_painting/elephant/pic_260.jpg 2 -art_painting/elephant/pic_259.jpg 2 -art_painting/elephant/pic_039.jpg 2 -art_painting/elephant/pic_033.jpg 2 -art_painting/elephant/pic_041.jpg 2 -art_painting/elephant/pic_049.jpg 2 -art_painting/elephant/pic_048.jpg 2 -art_painting/elephant/pic_030.jpg 2 -art_painting/elephant/pic_026.jpg 2 -art_painting/elephant/pic_052.jpg 2 -art_painting/elephant/pic_053.jpg 2 -art_painting/elephant/pic_050.jpg 2 -art_painting/elephant/pic_054.jpg 2 -art_painting/elephant/pic_058.jpg 2 -art_painting/elephant/pic_056.jpg 2 -art_painting/elephant/pic_057.jpg 2 -art_painting/elephant/pic_055.jpg 2 -art_painting/elephant/pic_059.jpg 2 -art_painting/elephant/pic_060.jpg 2 -art_painting/elephant/pic_065.jpg 2 -art_painting/elephant/pic_063.jpg 2 -art_painting/elephant/pic_064.jpg 2 -art_painting/elephant/pic_061.jpg 2 -art_painting/elephant/pic_193.jpg 2 -art_painting/elephant/pic_192.jpg 2 -art_painting/elephant/pic_198.jpg 2 -art_painting/elephant/pic_201.jpg 2 -art_painting/elephant/pic_199.jpg 2 -art_painting/elephant/pic_212.jpg 2 -art_painting/elephant/pic_211.jpg 2 -art_painting/elephant/pic_210.jpg 2 -art_painting/elephant/pic_209.jpg 2 -art_painting/elephant/pic_208.jpg 2 -art_painting/elephant/pic_206.jpg 2 -art_painting/elephant/pic_207.jpg 2 -art_painting/elephant/pic_205.jpg 2 -art_painting/elephant/pic_203.jpg 2 -art_painting/elephant/pic_204.jpg 2 -art_painting/elephant/pic_222.jpg 2 -art_painting/elephant/pic_221.jpg 2 -art_painting/elephant/pic_218.jpg 2 -art_painting/elephant/pic_215.jpg 2 -art_painting/elephant/pic_213.jpg 2 -art_painting/elephant/pic_035.jpg 2 -art_painting/elephant/pic_036.jpg 2 -art_painting/elephant/pic_031.jpg 2 -art_painting/elephant/pic_034.jpg 2 -art_painting/elephant/pic_027.jpg 2 -art_painting/elephant/pic_040.jpg 2 -art_painting/elephant/pic_044.jpg 2 -art_painting/elephant/pic_043.jpg 2 -art_painting/elephant/pic_029.jpg 2 -art_painting/elephant/pic_023.jpg 2 -art_painting/elephant/pic_037.jpg 2 -art_painting/elephant/pic_045.jpg 2 -art_painting/elephant/pic_024.jpg 2 -art_painting/elephant/pic_046.jpg 2 -art_painting/elephant/pic_022.jpg 2 -art_painting/elephant/pic_047.jpg 2 -art_painting/elephant/pic_025.jpg 2 -art_painting/elephant/pic_021.jpg 2 -art_painting/elephant/pic_020.jpg 2 -art_painting/elephant/pic_174.jpg 2 -art_painting/elephant/pic_182.jpg 2 -art_painting/elephant/pic_181.jpg 2 -art_painting/elephant/pic_180.jpg 2 -art_painting/elephant/pic_178.jpg 2 -art_painting/elephant/pic_177.jpg 2 -art_painting/elephant/pic_188.jpg 2 -art_painting/elephant/pic_187.jpg 2 -art_painting/elephant/pic_185.jpg 2 -art_painting/elephant/pic_186.jpg 2 -art_painting/elephant/pic_184.jpg 2 -art_painting/elephant/pic_183.jpg 2 -art_painting/elephant/pic_191.jpg 2 -art_painting/elephant/pic_190.jpg 2 -art_painting/elephant/pic_189.jpg 2 -art_painting/elephant/pic_202.jpg 2 -art_painting/elephant/pic_200.jpg 2 -art_painting/elephant/pic_196.jpg 2 -art_painting/elephant/pic_197.jpg 2 -art_painting/elephant/pic_194.jpg 2 -art_painting/elephant/pic_195.jpg 2 -art_painting/elephant/pic_110.jpg 2 -art_painting/elephant/pic_106.jpg 2 -art_painting/elephant/pic_105.jpg 2 -art_painting/elephant/pic_102.jpg 2 -art_painting/elephant/pic_101.jpg 2 -art_painting/elephant/pic_100.jpg 2 -art_painting/elephant/pic_097.jpg 2 -art_painting/elephant/pic_095.jpg 2 -art_painting/elephant/pic_096.jpg 2 -art_painting/elephant/pic_127.jpg 2 -art_painting/elephant/pic_150.jpg 2 -art_painting/elephant/pic_130.jpg 2 -art_painting/elephant/pic_119.jpg 2 -art_painting/elephant/pic_109.jpg 2 -art_painting/elephant/pic_104.jpg 2 -art_painting/elephant/pic_129.jpg 2 -art_painting/elephant/pic_128.jpg 2 -art_painting/elephant/pic_103.jpg 2 -art_painting/elephant/pic_098.jpg 2 -art_painting/elephant/pic_214.jpg 2 -art_painting/elephant/pic_217.jpg 2 -art_painting/elephant/pic_232.jpg 2 -art_painting/elephant/pic_231.jpg 2 -art_painting/elephant/pic_230.jpg 2 -art_painting/elephant/pic_229.jpg 2 -art_painting/elephant/pic_226.jpg 2 -art_painting/elephant/pic_224.jpg 2 -art_painting/elephant/pic_225.jpg 2 -art_painting/elephant/pic_223.jpg 2 -art_painting/elephant/pic_227.jpg 2 -art_painting/elephant/pic_228.jpg 2 -art_painting/elephant/pic_235.jpg 2 -art_painting/elephant/pic_236.jpg 2 -art_painting/elephant/pic_234.jpg 2 -art_painting/elephant/pic_241.jpg 2 -art_painting/elephant/pic_258.jpg 2 -art_painting/elephant/pic_256.jpg 2 -art_painting/elephant/pic_254.jpg 2 -art_painting/elephant/pic_255.jpg 2 -art_painting/elephant/pic_253.jpg 2 -art_painting/elephant/pic_004.jpg 2 -art_painting/elephant/pic_005.jpg 2 -art_painting/elephant/pic_006.jpg 2 -art_painting/elephant/pic_007.jpg 2 -art_painting/elephant/pic_008.jpg 2 -art_painting/elephant/pic_009.jpg 2 -art_painting/elephant/pic_010.jpg 2 -art_painting/elephant/pic_011.jpg 2 -art_painting/elephant/pic_012.jpg 2 -art_painting/elephant/pic_014.jpg 2 -art_painting/elephant/pic_015.jpg 2 -art_painting/elephant/pic_016.jpg 2 -art_painting/elephant/pic_017.jpg 2 -art_painting/elephant/pic_018.jpg 2 -art_painting/elephant/pic_019.jpg 2 -art_painting/elephant/pic_051.jpg 2 -art_painting/elephant/pic_042.jpg 2 -art_painting/elephant/pic_028.jpg 2 -art_painting/elephant/pic_032.jpg 2 -art_painting/elephant/pic_001.jpg 2 -art_painting/elephant/pic_002.jpg 2 -art_painting/elephant/pic_003.jpg 2 -art_painting/elephant/pic_107.jpg 2 -art_painting/elephant/pic_117.jpg 2 -art_painting/elephant/pic_120.jpg 2 -art_painting/elephant/pic_118.jpg 2 -art_painting/elephant/pic_121.jpg 2 -art_painting/elephant/pic_125.jpg 2 -art_painting/elephant/pic_124.jpg 2 -art_painting/elephant/pic_126.jpg 2 -art_painting/elephant/pic_132.jpg 2 -art_painting/elephant/pic_151.jpg 2 -art_painting/elephant/pic_138.jpg 2 -art_painting/elephant/pic_139.jpg 2 -art_painting/elephant/pic_136.jpg 2 -art_painting/elephant/pic_137.jpg 2 -art_painting/elephant/pic_179.jpg 2 -art_painting/elephant/pic_134.jpg 2 -art_painting/elephant/pic_164.jpg 2 -art_painting/elephant/pic_163.jpg 2 -art_painting/elephant/pic_135.jpg 2 -art_painting/elephant/pic_165.jpg 2 -art_painting/elephant/pic_219.jpg 2 -art_painting/elephant/pic_062.jpg 2 -art_painting/elephant/pic_066.jpg 2 -art_painting/elephant/pic_067.jpg 2 -art_painting/elephant/pic_068.jpg 2 -art_painting/elephant/pic_069.jpg 2 -art_painting/elephant/pic_070.jpg 2 -art_painting/elephant/pic_071.jpg 2 -art_painting/elephant/pic_072.jpg 2 -art_painting/elephant/pic_073.jpg 2 -art_painting/elephant/pic_074.jpg 2 -art_painting/elephant/pic_075.jpg 2 -art_painting/elephant/pic_076.jpg 2 -art_painting/elephant/pic_077.jpg 2 -art_painting/elephant/pic_094.jpg 2 -art_painting/elephant/pic_092.jpg 2 -art_painting/elephant/pic_091.jpg 2 -art_painting/elephant/pic_088.jpg 2 -art_painting/elephant/pic_087.jpg 2 -art_painting/elephant/pic_086.jpg 2 -art_painting/elephant/pic_084.jpg 2 -art_painting/elephant/pic_083.jpg 2 -art_painting/elephant/pic_146.jpg 2 -art_painting/elephant/pic_142.jpg 2 -art_painting/elephant/pic_144.jpg 2 -art_painting/elephant/pic_143.jpg 2 -art_painting/elephant/pic_140.jpg 2 -art_painting/elephant/pic_141.jpg 2 -art_painting/elephant/pic_145.jpg 2 -art_painting/elephant/pic_149.jpg 2 -art_painting/elephant/pic_233.jpg 2 -art_painting/elephant/pic_148.jpg 2 -art_painting/elephant/pic_147.jpg 2 -art_painting/elephant/pic_220.jpg 2 -art_painting/elephant/pic_153.jpg 2 -art_painting/elephant/pic_237.jpg 2 -art_painting/elephant/pic_152.jpg 2 -art_painting/elephant/pic_238.jpg 2 -art_painting/elephant/pic_155.jpg 2 -art_painting/elephant/pic_252.jpg 2 -art_painting/elephant/pic_244.jpg 2 -art_painting/elephant/pic_240.jpg 2 -art_painting/giraffe/pic_308.jpg 3 -art_painting/giraffe/pic_307.jpg 3 -art_painting/giraffe/pic_276.jpg 3 -art_painting/giraffe/pic_298.jpg 3 -art_painting/giraffe/pic_244.jpg 3 -art_painting/giraffe/pic_242.jpg 3 -art_painting/giraffe/pic_240.jpg 3 -art_painting/giraffe/pic_234.jpg 3 -art_painting/giraffe/pic_206.jpg 3 -art_painting/giraffe/pic_204.jpg 3 -art_painting/giraffe/pic_193.jpg 3 -art_painting/giraffe/pic_190.jpg 3 -art_painting/giraffe/pic_188.jpg 3 -art_painting/giraffe/pic_186.jpg 3 -art_painting/giraffe/pic_280.jpg 3 -art_painting/giraffe/pic_177.jpg 3 -art_painting/giraffe/pic_264.jpg 3 -art_painting/giraffe/pic_263.jpg 3 -art_painting/giraffe/pic_282.jpg 3 -art_painting/giraffe/pic_077.jpg 3 -art_painting/giraffe/pic_075.jpg 3 -art_painting/giraffe/pic_083.jpg 3 -art_painting/giraffe/pic_090.jpg 3 -art_painting/giraffe/pic_089.jpg 3 -art_painting/giraffe/pic_088.jpg 3 -art_painting/giraffe/pic_087.jpg 3 -art_painting/giraffe/pic_086.jpg 3 -art_painting/giraffe/pic_085.jpg 3 -art_painting/giraffe/pic_084.jpg 3 -art_painting/giraffe/pic_092.jpg 3 -art_painting/giraffe/pic_091.jpg 3 -art_painting/giraffe/pic_097.jpg 3 -art_painting/giraffe/pic_096.jpg 3 -art_painting/giraffe/pic_095.jpg 3 -art_painting/giraffe/pic_093.jpg 3 -art_painting/giraffe/pic_094.jpg 3 -art_painting/giraffe/pic_100.jpg 3 -art_painting/giraffe/pic_107.jpg 3 -art_painting/giraffe/pic_106.jpg 3 -art_painting/giraffe/pic_247.jpg 3 -art_painting/giraffe/pic_252.jpg 3 -art_painting/giraffe/pic_266.jpg 3 -art_painting/giraffe/pic_246.jpg 3 -art_painting/giraffe/pic_241.jpg 3 -art_painting/giraffe/pic_248.jpg 3 -art_painting/giraffe/pic_271.jpg 3 -art_painting/giraffe/pic_283.jpg 3 -art_painting/giraffe/pic_258.jpg 3 -art_painting/giraffe/pic_279.jpg 3 -art_painting/giraffe/pic_297.jpg 3 -art_painting/giraffe/pic_300.jpg 3 -art_painting/giraffe/pic_257.jpg 3 -art_painting/giraffe/pic_249.jpg 3 -art_painting/giraffe/pic_254.jpg 3 -art_painting/giraffe/pic_253.jpg 3 -art_painting/giraffe/pic_245.jpg 3 -art_painting/giraffe/pic_236.jpg 3 -art_painting/giraffe/pic_164.jpg 3 -art_painting/giraffe/pic_166.jpg 3 -art_painting/giraffe/pic_200.jpg 3 -art_painting/giraffe/pic_147.jpg 3 -art_painting/giraffe/pic_210.jpg 3 -art_painting/giraffe/pic_170.jpg 3 -art_painting/giraffe/pic_168.jpg 3 -art_painting/giraffe/pic_223.jpg 3 -art_painting/giraffe/pic_213.jpg 3 -art_painting/giraffe/pic_207.jpg 3 -art_painting/giraffe/pic_171.jpg 3 -art_painting/giraffe/pic_232.jpg 3 -art_painting/giraffe/pic_211.jpg 3 -art_painting/giraffe/pic_221.jpg 3 -art_painting/giraffe/pic_230.jpg 3 -art_painting/giraffe/pic_235.jpg 3 -art_painting/giraffe/pic_212.jpg 3 -art_painting/giraffe/pic_231.jpg 3 -art_painting/giraffe/pic_021.jpg 3 -art_painting/giraffe/pic_033.jpg 3 -art_painting/giraffe/pic_050.jpg 3 -art_painting/giraffe/pic_046.jpg 3 -art_painting/giraffe/pic_045.jpg 3 -art_painting/giraffe/pic_030.jpg 3 -art_painting/giraffe/pic_037.jpg 3 -art_painting/giraffe/pic_024.jpg 3 -art_painting/giraffe/pic_042.jpg 3 -art_painting/giraffe/pic_028.jpg 3 -art_painting/giraffe/pic_051.jpg 3 -art_painting/giraffe/pic_025.jpg 3 -art_painting/giraffe/pic_043.jpg 3 -art_painting/giraffe/pic_052.jpg 3 -art_painting/giraffe/pic_049.jpg 3 -art_painting/giraffe/pic_044.jpg 3 -art_painting/giraffe/pic_023.jpg 3 -art_painting/giraffe/pic_053.jpg 3 -art_painting/giraffe/pic_056.jpg 3 -art_painting/giraffe/pic_068.jpg 3 -art_painting/giraffe/pic_063.jpg 3 -art_painting/giraffe/pic_182.jpg 3 -art_painting/giraffe/pic_173.jpg 3 -art_painting/giraffe/pic_165.jpg 3 -art_painting/giraffe/pic_154.jpg 3 -art_painting/giraffe/pic_138.jpg 3 -art_painting/giraffe/pic_137.jpg 3 -art_painting/giraffe/pic_136.jpg 3 -art_painting/giraffe/pic_062.jpg 3 -art_painting/giraffe/pic_061.jpg 3 -art_painting/giraffe/pic_059.jpg 3 -art_painting/giraffe/pic_060.jpg 3 -art_painting/giraffe/pic_058.jpg 3 -art_painting/giraffe/pic_057.jpg 3 -art_painting/giraffe/pic_069.jpg 3 -art_painting/giraffe/pic_066.jpg 3 -art_painting/giraffe/pic_065.jpg 3 -art_painting/giraffe/pic_070.jpg 3 -art_painting/giraffe/pic_072.jpg 3 -art_painting/giraffe/pic_071.jpg 3 -art_painting/giraffe/pic_074.jpg 3 -art_painting/giraffe/pic_073.jpg 3 -art_painting/giraffe/pic_081.jpg 3 -art_painting/giraffe/pic_082.jpg 3 -art_painting/giraffe/pic_080.jpg 3 -art_painting/giraffe/pic_078.jpg 3 -art_painting/giraffe/pic_079.jpg 3 -art_painting/giraffe/pic_001.jpg 3 -art_painting/giraffe/pic_002.jpg 3 -art_painting/giraffe/pic_003.jpg 3 -art_painting/giraffe/pic_004.jpg 3 -art_painting/giraffe/pic_005.jpg 3 -art_painting/giraffe/pic_007.jpg 3 -art_painting/giraffe/pic_008.jpg 3 -art_painting/giraffe/pic_009.jpg 3 -art_painting/giraffe/pic_010.jpg 3 -art_painting/giraffe/pic_011.jpg 3 -art_painting/giraffe/pic_012.jpg 3 -art_painting/giraffe/pic_013.jpg 3 -art_painting/giraffe/pic_014.jpg 3 -art_painting/giraffe/pic_015.jpg 3 -art_painting/giraffe/pic_016.jpg 3 -art_painting/giraffe/pic_140.jpg 3 -art_painting/giraffe/pic_150.jpg 3 -art_painting/giraffe/pic_159.jpg 3 -art_painting/giraffe/pic_135.jpg 3 -art_painting/giraffe/pic_224.jpg 3 -art_painting/giraffe/pic_153.jpg 3 -art_painting/giraffe/pic_227.jpg 3 -art_painting/giraffe/pic_226.jpg 3 -art_painting/giraffe/pic_162.jpg 3 -art_painting/giraffe/pic_175.jpg 3 -art_painting/giraffe/pic_225.jpg 3 -art_painting/giraffe/pic_229.jpg 3 -art_painting/giraffe/pic_167.jpg 3 -art_painting/giraffe/pic_174.jpg 3 -art_painting/giraffe/pic_161.jpg 3 -art_painting/giraffe/pic_184.jpg 3 -art_painting/giraffe/pic_141.jpg 3 -art_painting/giraffe/pic_201.jpg 3 -art_painting/giraffe/pic_237.jpg 3 -art_painting/giraffe/pic_163.jpg 3 -art_painting/giraffe/pic_133.jpg 3 -art_painting/giraffe/pic_132.jpg 3 -art_painting/giraffe/pic_130.jpg 3 -art_painting/giraffe/pic_125.jpg 3 -art_painting/giraffe/pic_123.jpg 3 -art_painting/giraffe/pic_121.jpg 3 -art_painting/giraffe/pic_122.jpg 3 -art_painting/giraffe/pic_119.jpg 3 -art_painting/giraffe/pic_120.jpg 3 -art_painting/giraffe/pic_118.jpg 3 -art_painting/giraffe/pic_208.jpg 3 -art_painting/giraffe/pic_217.jpg 3 -art_painting/giraffe/pic_172.jpg 3 -art_painting/giraffe/pic_157.jpg 3 -art_painting/giraffe/pic_152.jpg 3 -art_painting/giraffe/pic_143.jpg 3 -art_painting/giraffe/pic_176.jpg 3 -art_painting/giraffe/pic_146.jpg 3 -art_painting/giraffe/pic_139.jpg 3 -art_painting/giraffe/pic_142.jpg 3 -art_painting/giraffe/pic_105.jpg 3 -art_painting/giraffe/pic_104.jpg 3 -art_painting/giraffe/pic_102.jpg 3 -art_painting/giraffe/pic_101.jpg 3 -art_painting/giraffe/pic_099.jpg 3 -art_painting/giraffe/pic_098.jpg 3 -art_painting/giraffe/pic_103.jpg 3 -art_painting/giraffe/pic_115.jpg 3 -art_painting/giraffe/pic_117.jpg 3 -art_painting/giraffe/pic_116.jpg 3 -art_painting/giraffe/pic_110.jpg 3 -art_painting/giraffe/pic_113.jpg 3 -art_painting/giraffe/pic_111.jpg 3 -art_painting/giraffe/pic_112.jpg 3 -art_painting/giraffe/pic_109.jpg 3 -art_painting/giraffe/pic_108.jpg 3 -art_painting/giraffe/pic_114.jpg 3 -art_painting/giraffe/pic_126.jpg 3 -art_painting/giraffe/pic_128.jpg 3 -art_painting/giraffe/pic_218.jpg 3 -art_painting/giraffe/pic_178.jpg 3 -art_painting/giraffe/pic_191.jpg 3 -art_painting/giraffe/pic_285.jpg 3 -art_painting/giraffe/pic_270.jpg 3 -art_painting/giraffe/pic_267.jpg 3 -art_painting/giraffe/pic_288.jpg 3 -art_painting/giraffe/pic_261.jpg 3 -art_painting/giraffe/pic_305.jpg 3 -art_painting/giraffe/pic_274.jpg 3 -art_painting/giraffe/pic_251.jpg 3 -art_painting/giraffe/pic_291.jpg 3 -art_painting/giraffe/pic_259.jpg 3 -art_painting/giraffe/pic_262.jpg 3 -art_painting/giraffe/pic_304.jpg 3 -art_painting/giraffe/pic_268.jpg 3 -art_painting/giraffe/pic_256.jpg 3 -art_painting/giraffe/pic_281.jpg 3 -art_painting/giraffe/pic_292.jpg 3 -art_painting/giraffe/pic_293.jpg 3 -art_painting/giraffe/pic_277.jpg 3 -art_painting/giraffe/pic_017.jpg 3 -art_painting/giraffe/pic_018.jpg 3 -art_painting/giraffe/pic_019.jpg 3 -art_painting/giraffe/pic_022.jpg 3 -art_painting/giraffe/pic_027.jpg 3 -art_painting/giraffe/pic_034.jpg 3 -art_painting/giraffe/pic_035.jpg 3 -art_painting/giraffe/pic_029.jpg 3 -art_painting/giraffe/pic_055.jpg 3 -art_painting/giraffe/pic_054.jpg 3 -art_painting/giraffe/pic_048.jpg 3 -art_painting/giraffe/pic_047.jpg 3 -art_painting/giraffe/pic_031.jpg 3 -art_painting/giraffe/pic_032.jpg 3 -art_painting/giraffe/pic_041.jpg 3 -art_painting/giraffe/pic_036.jpg 3 -art_painting/giraffe/pic_040.jpg 3 -art_painting/giraffe/pic_038.jpg 3 -art_painting/giraffe/pic_039.jpg 3 -art_painting/giraffe/pic_020.jpg 3 -art_painting/giraffe/pic_026.jpg 3 -art_painting/giraffe/pic_243.jpg 3 -art_painting/giraffe/pic_278.jpg 3 -art_painting/giraffe/pic_272.jpg 3 -art_painting/giraffe/pic_306.jpg 3 -art_painting/giraffe/pic_290.jpg 3 -art_painting/giraffe/pic_265.jpg 3 -art_painting/giraffe/pic_255.jpg 3 -art_painting/giraffe/pic_194.jpg 3 -art_painting/giraffe/pic_216.jpg 3 -art_painting/giraffe/pic_215.jpg 3 -art_painting/giraffe/pic_233.jpg 3 -art_painting/giraffe/pic_203.jpg 3 -art_painting/giraffe/pic_192.jpg 3 -art_painting/giraffe/pic_214.jpg 3 -art_painting/giraffe/pic_239.jpg 3 -art_painting/giraffe/pic_205.jpg 3 -art_painting/giraffe/pic_180.jpg 3 -art_painting/giraffe/pic_195.jpg 3 -art_painting/guitar/pic_055.jpg 4 -art_painting/guitar/pic_059.jpg 4 -art_painting/guitar/pic_061.jpg 4 -art_painting/guitar/pic_060.jpg 4 -art_painting/guitar/pic_062.jpg 4 -art_painting/guitar/pic_063.jpg 4 -art_painting/guitar/pic_064.jpg 4 -art_painting/guitar/pic_067.jpg 4 -art_painting/guitar/pic_069.jpg 4 -art_painting/guitar/pic_077.jpg 4 -art_painting/guitar/pic_076.jpg 4 -art_painting/guitar/pic_075.jpg 4 -art_painting/guitar/pic_073.jpg 4 -art_painting/guitar/pic_072.jpg 4 -art_painting/guitar/pic_071.jpg 4 -art_painting/guitar/pic_070.jpg 4 -art_painting/guitar/pic_078.jpg 4 -art_painting/guitar/pic_111.jpg 4 -art_painting/guitar/pic_101.jpg 4 -art_painting/guitar/pic_130.jpg 4 -art_painting/guitar/pic_113.jpg 4 -art_painting/guitar/pic_182.jpg 4 -art_painting/guitar/pic_115.jpg 4 -art_painting/guitar/pic_100.jpg 4 -art_painting/guitar/pic_104.jpg 4 -art_painting/guitar/pic_098.jpg 4 -art_painting/guitar/pic_155.jpg 4 -art_painting/guitar/pic_149.jpg 4 -art_painting/guitar/pic_144.jpg 4 -art_painting/guitar/pic_143.jpg 4 -art_painting/guitar/pic_120.jpg 4 -art_painting/guitar/pic_152.jpg 4 -art_painting/guitar/pic_170.jpg 4 -art_painting/guitar/pic_157.jpg 4 -art_painting/guitar/pic_107.jpg 4 -art_painting/guitar/pic_173.jpg 4 -art_painting/guitar/pic_128.jpg 4 -art_painting/guitar/pic_074.jpg 4 -art_painting/guitar/pic_088.jpg 4 -art_painting/guitar/pic_087.jpg 4 -art_painting/guitar/pic_086.jpg 4 -art_painting/guitar/pic_084.jpg 4 -art_painting/guitar/pic_082.jpg 4 -art_painting/guitar/pic_083.jpg 4 -art_painting/guitar/pic_081.jpg 4 -art_painting/guitar/pic_079.jpg 4 -art_painting/guitar/pic_080.jpg 4 -art_painting/guitar/pic_089.jpg 4 -art_painting/guitar/pic_085.jpg 4 -art_painting/guitar/pic_142.jpg 4 -art_painting/guitar/pic_134.jpg 4 -art_painting/guitar/pic_133.jpg 4 -art_painting/guitar/pic_129.jpg 4 -art_painting/guitar/pic_127.jpg 4 -art_painting/guitar/pic_118.jpg 4 -art_painting/guitar/pic_109.jpg 4 -art_painting/guitar/pic_106.jpg 4 -art_painting/guitar/pic_103.jpg 4 -art_painting/guitar/pic_001.jpg 4 -art_painting/guitar/pic_002.jpg 4 -art_painting/guitar/pic_003.jpg 4 -art_painting/guitar/pic_004.jpg 4 -art_painting/guitar/pic_005.jpg 4 -art_painting/guitar/pic_006.jpg 4 -art_painting/guitar/pic_007.jpg 4 -art_painting/guitar/pic_008.jpg 4 -art_painting/guitar/pic_009.jpg 4 -art_painting/guitar/pic_010.jpg 4 -art_painting/guitar/pic_011.jpg 4 -art_painting/guitar/pic_012.jpg 4 -art_painting/guitar/pic_013.jpg 4 -art_painting/guitar/pic_014.jpg 4 -art_painting/guitar/pic_015.jpg 4 -art_painting/guitar/pic_020.jpg 4 -art_painting/guitar/pic_018.jpg 4 -art_painting/guitar/pic_017.jpg 4 -art_painting/guitar/pic_016.jpg 4 -art_painting/guitar/pic_026.jpg 4 -art_painting/guitar/pic_025.jpg 4 -art_painting/guitar/pic_024.jpg 4 -art_painting/guitar/pic_023.jpg 4 -art_painting/guitar/pic_021.jpg 4 -art_painting/guitar/pic_019.jpg 4 -art_painting/guitar/pic_022.jpg 4 -art_painting/guitar/pic_028.jpg 4 -art_painting/guitar/pic_027.jpg 4 -art_painting/guitar/pic_035.jpg 4 -art_painting/guitar/pic_047.jpg 4 -art_painting/guitar/pic_042.jpg 4 -art_painting/guitar/pic_043.jpg 4 -art_painting/guitar/pic_041.jpg 4 -art_painting/guitar/pic_040.jpg 4 -art_painting/guitar/pic_038.jpg 4 -art_painting/guitar/pic_037.jpg 4 -art_painting/guitar/pic_036.jpg 4 -art_painting/guitar/pic_034.jpg 4 -art_painting/guitar/pic_032.jpg 4 -art_painting/guitar/pic_031.jpg 4 -art_painting/guitar/pic_029.jpg 4 -art_painting/guitar/pic_044.jpg 4 -art_painting/guitar/pic_039.jpg 4 -art_painting/guitar/pic_048.jpg 4 -art_painting/guitar/pic_030.jpg 4 -art_painting/guitar/pic_049.jpg 4 -art_painting/guitar/pic_033.jpg 4 -art_painting/guitar/pic_053.jpg 4 -art_painting/guitar/pic_052.jpg 4 -art_painting/guitar/pic_051.jpg 4 -art_painting/guitar/pic_050.jpg 4 -art_painting/guitar/pic_058.jpg 4 -art_painting/guitar/pic_056.jpg 4 -art_painting/guitar/pic_175.jpg 4 -art_painting/guitar/pic_167.jpg 4 -art_painting/guitar/pic_196.jpg 4 -art_painting/guitar/pic_197.jpg 4 -art_painting/guitar/pic_199.jpg 4 -art_painting/guitar/pic_192.jpg 4 -art_painting/guitar/pic_194.jpg 4 -art_painting/guitar/pic_190.jpg 4 -art_painting/guitar/pic_189.jpg 4 -art_painting/guitar/pic_188.jpg 4 -art_painting/guitar/pic_195.jpg 4 -art_painting/guitar/pic_201.jpg 4 -art_painting/guitar/pic_191.jpg 4 -art_painting/guitar/pic_193.jpg 4 -art_painting/guitar/pic_131.jpg 4 -art_painting/guitar/pic_114.jpg 4 -art_painting/guitar/pic_141.jpg 4 -art_painting/guitar/pic_105.jpg 4 -art_painting/guitar/pic_117.jpg 4 -art_painting/guitar/pic_178.jpg 4 -art_painting/guitar/pic_171.jpg 4 -art_painting/guitar/pic_169.jpg 4 -art_painting/guitar/pic_156.jpg 4 -art_painting/guitar/pic_148.jpg 4 -art_painting/guitar/pic_123.jpg 4 -art_painting/guitar/pic_163.jpg 4 -art_painting/guitar/pic_110.jpg 4 -art_painting/guitar/pic_138.jpg 4 -art_painting/guitar/pic_116.jpg 4 -art_painting/guitar/pic_145.jpg 4 -art_painting/guitar/pic_121.jpg 4 -art_painting/guitar/pic_160.jpg 4 -art_painting/guitar/pic_177.jpg 4 -art_painting/guitar/pic_166.jpg 4 -art_painting/guitar/pic_159.jpg 4 -art_painting/guitar/pic_102.jpg 4 -art_painting/guitar/pic_099.jpg 4 -art_painting/guitar/pic_097.jpg 4 -art_painting/guitar/pic_095.jpg 4 -art_painting/guitar/pic_092.jpg 4 -art_painting/guitar/pic_094.jpg 4 -art_painting/guitar/pic_093.jpg 4 -art_painting/guitar/pic_091.jpg 4 -art_painting/guitar/pic_090.jpg 4 -art_painting/guitar/pic_140.jpg 4 -art_painting/guitar/pic_153.jpg 4 -art_painting/guitar/pic_158.jpg 4 -art_painting/guitar/pic_132.jpg 4 -art_painting/guitar/pic_135.jpg 4 -art_painting/guitar/pic_119.jpg 4 -art_painting/guitar/pic_122.jpg 4 -art_painting/guitar/pic_108.jpg 4 -art_painting/guitar/pic_136.jpg 4 -art_painting/guitar/pic_112.jpg 4 -art_painting/horse/pic_005.jpg 5 -art_painting/horse/pic_096.jpg 5 -art_painting/horse/pic_103.jpg 5 -art_painting/horse/pic_110.jpg 5 -art_painting/horse/pic_098.jpg 5 -art_painting/horse/pic_116.jpg 5 -art_painting/horse/pic_120.jpg 5 -art_painting/horse/pic_112.jpg 5 -art_painting/horse/pic_106.jpg 5 -art_painting/horse/pic_123.jpg 5 -art_painting/horse/pic_117.jpg 5 -art_painting/horse/pic_181.jpg 5 -art_painting/horse/pic_141.jpg 5 -art_painting/horse/pic_145.jpg 5 -art_painting/horse/pic_139.jpg 5 -art_painting/horse/pic_138.jpg 5 -art_painting/horse/pic_137.jpg 5 -art_painting/horse/pic_134.jpg 5 -art_painting/horse/pic_135.jpg 5 -art_painting/horse/pic_073.jpg 5 -art_painting/horse/pic_071.jpg 5 -art_painting/horse/pic_072.jpg 5 -art_painting/horse/pic_076.jpg 5 -art_painting/horse/pic_079.jpg 5 -art_painting/horse/pic_081.jpg 5 -art_painting/horse/pic_078.jpg 5 -art_painting/horse/pic_074.jpg 5 -art_painting/horse/pic_077.jpg 5 -art_painting/horse/pic_080.jpg 5 -art_painting/horse/pic_109.jpg 5 -art_painting/horse/pic_104.jpg 5 -art_painting/horse/pic_101.jpg 5 -art_painting/horse/pic_100.jpg 5 -art_painting/horse/pic_097.jpg 5 -art_painting/horse/pic_089.jpg 5 -art_painting/horse/pic_090.jpg 5 -art_painting/horse/pic_091.jpg 5 -art_painting/horse/pic_088.jpg 5 -art_painting/horse/pic_087.jpg 5 -art_painting/horse/pic_083.jpg 5 -art_painting/horse/pic_047.jpg 5 -art_painting/horse/pic_048.jpg 5 -art_painting/horse/pic_049.jpg 5 -art_painting/horse/pic_050.jpg 5 -art_painting/horse/pic_006.jpg 5 -art_painting/horse/pic_007.jpg 5 -art_painting/horse/pic_008.jpg 5 -art_painting/horse/pic_010.jpg 5 -art_painting/horse/pic_011.jpg 5 -art_painting/horse/pic_012.jpg 5 -art_painting/horse/pic_014.jpg 5 -art_painting/horse/pic_015.jpg 5 -art_painting/horse/pic_017.jpg 5 -art_painting/horse/pic_027.jpg 5 -art_painting/horse/pic_019.jpg 5 -art_painting/horse/pic_032.jpg 5 -art_painting/horse/pic_035.jpg 5 -art_painting/horse/pic_024.jpg 5 -art_painting/horse/pic_036.jpg 5 -art_painting/horse/pic_031.jpg 5 -art_painting/horse/pic_160.jpg 5 -art_painting/horse/pic_169.jpg 5 -art_painting/horse/pic_184.jpg 5 -art_painting/horse/pic_179.jpg 5 -art_painting/horse/pic_177.jpg 5 -art_painting/horse/pic_178.jpg 5 -art_painting/horse/pic_176.jpg 5 -art_painting/horse/pic_172.jpg 5 -art_painting/horse/pic_174.jpg 5 -art_painting/horse/pic_173.jpg 5 -art_painting/horse/pic_171.jpg 5 -art_painting/horse/pic_186.jpg 5 -art_painting/horse/pic_199.jpg 5 -art_painting/horse/pic_198.jpg 5 -art_painting/horse/pic_197.jpg 5 -art_painting/horse/pic_191.jpg 5 -art_painting/horse/pic_189.jpg 5 -art_painting/horse/pic_053.jpg 5 -art_painting/horse/pic_051.jpg 5 -art_painting/horse/pic_054.jpg 5 -art_painting/horse/pic_052.jpg 5 -art_painting/horse/pic_057.jpg 5 -art_painting/horse/pic_056.jpg 5 -art_painting/horse/pic_059.jpg 5 -art_painting/horse/pic_060.jpg 5 -art_painting/horse/pic_062.jpg 5 -art_painting/horse/pic_063.jpg 5 -art_painting/horse/pic_061.jpg 5 -art_painting/horse/pic_067.jpg 5 -art_painting/horse/pic_069.jpg 5 -art_painting/horse/pic_066.jpg 5 -art_painting/horse/pic_064.jpg 5 -art_painting/horse/pic_065.jpg 5 -art_painting/horse/pic_070.jpg 5 -art_painting/horse/pic_075.jpg 5 -art_painting/horse/pic_086.jpg 5 -art_painting/horse/pic_082.jpg 5 -art_painting/horse/pic_105.jpg 5 -art_painting/horse/pic_108.jpg 5 -art_painting/horse/pic_107.jpg 5 -art_painting/horse/pic_084.jpg 5 -art_painting/horse/pic_093.jpg 5 -art_painting/horse/pic_099.jpg 5 -art_painting/horse/pic_092.jpg 5 -art_painting/horse/pic_095.jpg 5 -art_painting/horse/pic_121.jpg 5 -art_painting/horse/pic_114.jpg 5 -art_painting/horse/pic_085.jpg 5 -art_painting/horse/pic_113.jpg 5 -art_painting/horse/pic_122.jpg 5 -art_painting/horse/pic_115.jpg 5 -art_painting/horse/pic_102.jpg 5 -art_painting/horse/pic_119.jpg 5 -art_painting/horse/pic_227.jpg 5 -art_painting/horse/pic_226.jpg 5 -art_painting/horse/pic_224.jpg 5 -art_painting/horse/pic_223.jpg 5 -art_painting/horse/pic_222.jpg 5 -art_painting/horse/pic_220.jpg 5 -art_painting/horse/pic_218.jpg 5 -art_painting/horse/pic_217.jpg 5 -art_painting/horse/pic_228.jpg 5 -art_painting/horse/pic_221.jpg 5 -art_painting/horse/pic_219.jpg 5 -art_painting/horse/pic_232.jpg 5 -art_painting/horse/pic_229.jpg 5 -art_painting/horse/pic_193.jpg 5 -art_painting/horse/pic_192.jpg 5 -art_painting/horse/pic_196.jpg 5 -art_painting/horse/pic_200.jpg 5 -art_painting/horse/pic_208.jpg 5 -art_painting/horse/pic_206.jpg 5 -art_painting/horse/pic_203.jpg 5 -art_painting/horse/pic_202.jpg 5 -art_painting/horse/pic_201.jpg 5 -art_painting/horse/pic_209.jpg 5 -art_painting/horse/pic_207.jpg 5 -art_painting/horse/pic_205.jpg 5 -art_painting/horse/pic_210.jpg 5 -art_painting/horse/pic_215.jpg 5 -art_painting/horse/pic_216.jpg 5 -art_painting/horse/pic_212.jpg 5 -art_painting/horse/pic_213.jpg 5 -art_painting/horse/pic_214.jpg 5 -art_painting/horse/pic_225.jpg 5 -art_painting/horse/pic_133.jpg 5 -art_painting/horse/pic_131.jpg 5 -art_painting/horse/pic_125.jpg 5 -art_painting/horse/pic_127.jpg 5 -art_painting/horse/pic_126.jpg 5 -art_painting/horse/pic_156.jpg 5 -art_painting/horse/pic_143.jpg 5 -art_painting/horse/pic_147.jpg 5 -art_painting/horse/pic_144.jpg 5 -art_painting/horse/pic_146.jpg 5 -art_painting/horse/pic_155.jpg 5 -art_painting/horse/pic_142.jpg 5 -art_painting/horse/pic_136.jpg 5 -art_painting/horse/pic_148.jpg 5 -art_painting/horse/pic_162.jpg 5 -art_painting/horse/pic_163.jpg 5 -art_painting/horse/pic_128.jpg 5 -art_painting/horse/pic_154.jpg 5 -art_painting/horse/pic_150.jpg 5 -art_painting/horse/pic_151.jpg 5 -art_painting/horse/pic_152.jpg 5 -art_painting/horse/pic_182.jpg 5 -art_painting/horse/pic_157.jpg 5 -art_painting/horse/pic_130.jpg 5 -art_painting/horse/pic_180.jpg 5 -art_painting/horse/pic_158.jpg 5 -art_painting/horse/pic_204.jpg 5 -art_painting/horse/pic_195.jpg 5 -art_painting/horse/pic_188.jpg 5 -art_painting/horse/pic_159.jpg 5 -art_painting/horse/pic_170.jpg 5 -art_painting/horse/pic_168.jpg 5 -art_painting/horse/pic_165.jpg 5 -art_painting/horse/pic_164.jpg 5 -art_painting/horse/pic_161.jpg 5 -art_painting/house/pic_032.jpg 6 -art_painting/house/pic_019.jpg 6 -art_painting/house/pic_016.jpg 6 -art_painting/house/pic_034.jpg 6 -art_painting/house/pic_022.jpg 6 -art_painting/house/pic_023.jpg 6 -art_painting/house/pic_014.jpg 6 -art_painting/house/pic_025.jpg 6 -art_painting/house/pic_024.jpg 6 -art_painting/house/pic_037.jpg 6 -art_painting/house/pic_018.jpg 6 -art_painting/house/pic_031.jpg 6 -art_painting/house/pic_027.jpg 6 -art_painting/house/pic_029.jpg 6 -art_painting/house/pic_274.jpg 6 -art_painting/house/pic_162.jpg 6 -art_painting/house/pic_160.jpg 6 -art_painting/house/pic_272.jpg 6 -art_painting/house/pic_159.jpg 6 -art_painting/house/pic_161.jpg 6 -art_painting/house/pic_276.jpg 6 -art_painting/house/pic_295.jpg 6 -art_painting/house/pic_165.jpg 6 -art_painting/house/pic_294.jpg 6 -art_painting/house/pic_293.jpg 6 -art_painting/house/pic_163.jpg 6 -art_painting/house/pic_282.jpg 6 -art_painting/house/pic_166.jpg 6 -art_painting/house/pic_164.jpg 6 -art_painting/house/pic_281.jpg 6 -art_painting/house/pic_171.jpg 6 -art_painting/house/pic_311.jpg 6 -art_painting/house/pic_237.jpg 6 -art_painting/house/pic_235.jpg 6 -art_painting/house/pic_234.jpg 6 -art_painting/house/pic_232.jpg 6 -art_painting/house/pic_240.jpg 6 -art_painting/house/pic_251.jpg 6 -art_painting/house/pic_248.jpg 6 -art_painting/house/pic_247.jpg 6 -art_painting/house/pic_246.jpg 6 -art_painting/house/pic_245.jpg 6 -art_painting/house/pic_243.jpg 6 -art_painting/house/pic_242.jpg 6 -art_painting/house/pic_250.jpg 6 -art_painting/house/pic_270.jpg 6 -art_painting/house/pic_269.jpg 6 -art_painting/house/pic_264.jpg 6 -art_painting/house/pic_329.jpg 6 -art_painting/house/pic_297.jpg 6 -art_painting/house/pic_304.jpg 6 -art_painting/house/pic_303.jpg 6 -art_painting/house/pic_302.jpg 6 -art_painting/house/pic_319.jpg 6 -art_painting/house/pic_318.jpg 6 -art_painting/house/pic_317.jpg 6 -art_painting/house/pic_315.jpg 6 -art_painting/house/pic_309.jpg 6 -art_painting/house/pic_306.jpg 6 -art_painting/house/pic_305.jpg 6 -art_painting/house/pic_323.jpg 6 -art_painting/house/pic_324.jpg 6 -art_painting/house/pic_336.jpg 6 -art_painting/house/pic_330.jpg 6 -art_painting/house/pic_327.jpg 6 -art_painting/house/pic_129.jpg 6 -art_painting/house/pic_130.jpg 6 -art_painting/house/pic_131.jpg 6 -art_painting/house/pic_255.jpg 6 -art_painting/house/pic_253.jpg 6 -art_painting/house/pic_133.jpg 6 -art_painting/house/pic_132.jpg 6 -art_painting/house/pic_256.jpg 6 -art_painting/house/pic_134.jpg 6 -art_painting/house/pic_257.jpg 6 -art_painting/house/pic_137.jpg 6 -art_painting/house/pic_258.jpg 6 -art_painting/house/pic_136.jpg 6 -art_painting/house/pic_140.jpg 6 -art_painting/house/pic_142.jpg 6 -art_painting/house/pic_259.jpg 6 -art_painting/house/pic_141.jpg 6 -art_painting/house/pic_146.jpg 6 -art_painting/house/pic_147.jpg 6 -art_painting/house/pic_145.jpg 6 -art_painting/house/pic_254.jpg 6 -art_painting/house/pic_263.jpg 6 -art_painting/house/pic_278.jpg 6 -art_painting/house/pic_277.jpg 6 -art_painting/house/pic_279.jpg 6 -art_painting/house/pic_280.jpg 6 -art_painting/house/pic_283.jpg 6 -art_painting/house/pic_284.jpg 6 -art_painting/house/pic_285.jpg 6 -art_painting/house/pic_287.jpg 6 -art_painting/house/pic_296.jpg 6 -art_painting/house/pic_292.jpg 6 -art_painting/house/pic_289.jpg 6 -art_painting/house/pic_290.jpg 6 -art_painting/house/pic_291.jpg 6 -art_painting/house/pic_301.jpg 6 -art_painting/house/pic_299.jpg 6 -art_painting/house/pic_298.jpg 6 -art_painting/house/pic_189.jpg 6 -art_painting/house/pic_187.jpg 6 -art_painting/house/pic_194.jpg 6 -art_painting/house/pic_206.jpg 6 -art_painting/house/pic_205.jpg 6 -art_painting/house/pic_201.jpg 6 -art_painting/house/pic_200.jpg 6 -art_painting/house/pic_198.jpg 6 -art_painting/house/pic_196.jpg 6 -art_painting/house/pic_197.jpg 6 -art_painting/house/pic_195.jpg 6 -art_painting/house/pic_199.jpg 6 -art_painting/house/pic_203.jpg 6 -art_painting/house/pic_221.jpg 6 -art_painting/house/pic_219.jpg 6 -art_painting/house/pic_217.jpg 6 -art_painting/house/pic_216.jpg 6 -art_painting/house/pic_184.jpg 6 -art_painting/house/pic_181.jpg 6 -art_painting/house/pic_180.jpg 6 -art_painting/house/pic_182.jpg 6 -art_painting/house/pic_335.jpg 6 -art_painting/house/pic_340.jpg 6 -art_painting/house/pic_348.jpg 6 -art_painting/house/pic_185.jpg 6 -art_painting/house/pic_346.jpg 6 -art_painting/house/pic_345.jpg 6 -art_painting/house/pic_344.jpg 6 -art_painting/house/pic_343.jpg 6 -art_painting/house/pic_193.jpg 6 -art_painting/house/pic_192.jpg 6 -art_painting/house/pic_191.jpg 6 -art_painting/house/pic_074.jpg 6 -art_painting/house/pic_076.jpg 6 -art_painting/house/pic_075.jpg 6 -art_painting/house/pic_077.jpg 6 -art_painting/house/pic_087.jpg 6 -art_painting/house/pic_085.jpg 6 -art_painting/house/pic_084.jpg 6 -art_painting/house/pic_083.jpg 6 -art_painting/house/pic_080.jpg 6 -art_painting/house/pic_079.jpg 6 -art_painting/house/pic_078.jpg 6 -art_painting/house/pic_088.jpg 6 -art_painting/house/pic_082.jpg 6 -art_painting/house/pic_086.jpg 6 -art_painting/house/pic_123.jpg 6 -art_painting/house/pic_122.jpg 6 -art_painting/house/pic_119.jpg 6 -art_painting/house/pic_111.jpg 6 -art_painting/house/pic_108.jpg 6 -art_painting/house/pic_104.jpg 6 -art_painting/house/pic_215.jpg 6 -art_painting/house/pic_211.jpg 6 -art_painting/house/pic_209.jpg 6 -art_painting/house/pic_208.jpg 6 -art_painting/house/pic_207.jpg 6 -art_painting/house/pic_218.jpg 6 -art_painting/house/pic_210.jpg 6 -art_painting/house/pic_228.jpg 6 -art_painting/house/pic_227.jpg 6 -art_painting/house/pic_225.jpg 6 -art_painting/house/pic_224.jpg 6 -art_painting/house/pic_223.jpg 6 -art_painting/house/pic_222.jpg 6 -art_painting/house/pic_226.jpg 6 -art_painting/house/pic_230.jpg 6 -art_painting/house/pic_229.jpg 6 -art_painting/house/pic_231.jpg 6 -art_painting/house/pic_241.jpg 6 -art_painting/house/pic_144.jpg 6 -art_painting/house/pic_143.jpg 6 -art_painting/house/pic_149.jpg 6 -art_painting/house/pic_150.jpg 6 -art_painting/house/pic_151.jpg 6 -art_painting/house/pic_148.jpg 6 -art_painting/house/pic_260.jpg 6 -art_painting/house/pic_153.jpg 6 -art_painting/house/pic_152.jpg 6 -art_painting/house/pic_261.jpg 6 -art_painting/house/pic_262.jpg 6 -art_painting/house/pic_268.jpg 6 -art_painting/house/pic_156.jpg 6 -art_painting/house/pic_158.jpg 6 -art_painting/house/pic_157.jpg 6 -art_painting/house/pic_266.jpg 6 -art_painting/house/pic_267.jpg 6 -art_painting/house/pic_273.jpg 6 -art_painting/house/pic_097.jpg 6 -art_painting/house/pic_118.jpg 6 -art_painting/house/pic_114.jpg 6 -art_painting/house/pic_094.jpg 6 -art_painting/house/pic_101.jpg 6 -art_painting/house/pic_125.jpg 6 -art_painting/house/pic_113.jpg 6 -art_painting/house/pic_109.jpg 6 -art_painting/house/pic_098.jpg 6 -art_painting/house/pic_116.jpg 6 -art_painting/house/pic_127.jpg 6 -art_painting/house/pic_120.jpg 6 -art_painting/house/pic_138.jpg 6 -art_painting/house/pic_176.jpg 6 -art_painting/house/pic_177.jpg 6 -art_painting/house/pic_212.jpg 6 -art_painting/house/pic_213.jpg 6 -art_painting/house/pic_238.jpg 6 -art_painting/house/pic_128.jpg 6 -art_painting/house/pic_053.jpg 6 -art_painting/house/pic_055.jpg 6 -art_painting/house/pic_054.jpg 6 -art_painting/house/pic_057.jpg 6 -art_painting/house/pic_056.jpg 6 -art_painting/house/pic_058.jpg 6 -art_painting/house/pic_059.jpg 6 -art_painting/house/pic_061.jpg 6 -art_painting/house/pic_060.jpg 6 -art_painting/house/pic_062.jpg 6 -art_painting/house/pic_063.jpg 6 -art_painting/house/pic_067.jpg 6 -art_painting/house/pic_069.jpg 6 -art_painting/house/pic_068.jpg 6 -art_painting/house/pic_066.jpg 6 -art_painting/house/pic_071.jpg 6 -art_painting/house/pic_070.jpg 6 -art_painting/house/pic_072.jpg 6 -art_painting/house/pic_106.jpg 6 -art_painting/house/pic_107.jpg 6 -art_painting/house/pic_099.jpg 6 -art_painting/house/pic_100.jpg 6 -art_painting/house/pic_035.jpg 6 -art_painting/house/pic_095.jpg 6 -art_painting/house/pic_093.jpg 6 -art_painting/house/pic_090.jpg 6 -art_painting/house/pic_092.jpg 6 -art_painting/house/pic_091.jpg 6 -art_painting/house/pic_103.jpg 6 -art_painting/house/pic_124.jpg 6 -art_painting/house/pic_110.jpg 6 -art_painting/house/pic_117.jpg 6 -art_painting/house/pic_105.jpg 6 -art_painting/house/pic_121.jpg 6 -art_painting/house/pic_115.jpg 6 -art_painting/house/pic_028.jpg 6 -art_painting/house/pic_017.jpg 6 -art_painting/house/pic_038.jpg 6 -art_painting/house/pic_048.jpg 6 -art_painting/house/pic_047.jpg 6 -art_painting/house/pic_036.jpg 6 -art_painting/house/pic_043.jpg 6 -art_painting/house/pic_041.jpg 6 -art_painting/house/pic_040.jpg 6 -art_painting/house/pic_039.jpg 6 -art_painting/house/pic_021.jpg 6 -art_painting/house/pic_020.jpg 6 -art_painting/house/pic_026.jpg 6 -art_painting/house/pic_046.jpg 6 -art_painting/house/pic_044.jpg 6 -art_painting/house/pic_045.jpg 6 -art_painting/house/pic_042.jpg 6 -art_painting/house/pic_049.jpg 6 -art_painting/house/pic_050.jpg 6 -art_painting/house/pic_051.jpg 6 -art_painting/person/pic_436.jpg 7 -art_painting/person/pic_437.jpg 7 -art_painting/person/pic_438.jpg 7 -art_painting/person/pic_184.jpg 7 -art_painting/person/pic_186.jpg 7 -art_painting/person/pic_388.jpg 7 -art_painting/person/pic_410.jpg 7 -art_painting/person/pic_400.jpg 7 -art_painting/person/pic_391.jpg 7 -art_painting/person/pic_406.jpg 7 -art_painting/person/pic_407.jpg 7 -art_painting/person/pic_417.jpg 7 -art_painting/person/pic_435.jpg 7 -art_painting/person/pic_433.jpg 7 -art_painting/person/pic_431.jpg 7 -art_painting/person/pic_467.jpg 7 -art_painting/person/pic_247.jpg 7 -art_painting/person/pic_249.jpg 7 -art_painting/person/pic_252.jpg 7 -art_painting/person/pic_255.jpg 7 -art_painting/person/pic_531.jpg 7 -art_painting/person/pic_530.jpg 7 -art_painting/person/pic_264.jpg 7 -art_painting/person/pic_262.jpg 7 -art_painting/person/pic_549.jpg 7 -art_painting/person/pic_260.jpg 7 -art_painting/person/pic_548.jpg 7 -art_painting/person/pic_501.jpg 7 -art_painting/person/pic_495.jpg 7 -art_painting/person/pic_494.jpg 7 -art_painting/person/pic_506.jpg 7 -art_painting/person/pic_532.jpg 7 -art_painting/person/pic_527.jpg 7 -art_painting/person/pic_525.jpg 7 -art_painting/person/pic_519.jpg 7 -art_painting/person/pic_523.jpg 7 -art_painting/person/pic_521.jpg 7 -art_painting/person/pic_520.jpg 7 -art_painting/person/pic_512.jpg 7 -art_painting/person/pic_528.jpg 7 -art_painting/person/pic_526.jpg 7 -art_painting/person/pic_518.jpg 7 -art_painting/person/pic_534.jpg 7 -art_painting/person/pic_538.jpg 7 -art_painting/person/pic_026.jpg 7 -art_painting/person/pic_047.jpg 7 -art_painting/person/pic_030.jpg 7 -art_painting/person/pic_022.jpg 7 -art_painting/person/pic_032.jpg 7 -art_painting/person/pic_024.jpg 7 -art_painting/person/pic_044.jpg 7 -art_painting/person/pic_038.jpg 7 -art_painting/person/pic_027.jpg 7 -art_painting/person/pic_019.jpg 7 -art_painting/person/pic_034.jpg 7 -art_painting/person/pic_045.jpg 7 -art_painting/person/pic_023.jpg 7 -art_painting/person/pic_029.jpg 7 -art_painting/person/pic_025.jpg 7 -art_painting/person/pic_041.jpg 7 -art_painting/person/pic_039.jpg 7 -art_painting/person/pic_031.jpg 7 -art_painting/person/pic_046.jpg 7 -art_painting/person/pic_020.jpg 7 -art_painting/person/pic_040.jpg 7 -art_painting/person/pic_226.jpg 7 -art_painting/person/pic_229.jpg 7 -art_painting/person/pic_228.jpg 7 -art_painting/person/pic_484.jpg 7 -art_painting/person/pic_234.jpg 7 -art_painting/person/pic_231.jpg 7 -art_painting/person/pic_232.jpg 7 -art_painting/person/pic_235.jpg 7 -art_painting/person/pic_505.jpg 7 -art_painting/person/pic_243.jpg 7 -art_painting/person/pic_237.jpg 7 -art_painting/person/pic_456.jpg 7 -art_painting/person/pic_200.jpg 7 -art_painting/person/pic_459.jpg 7 -art_painting/person/pic_460.jpg 7 -art_painting/person/pic_203.jpg 7 -art_painting/person/pic_206.jpg 7 -art_painting/person/pic_204.jpg 7 -art_painting/person/pic_202.jpg 7 -art_painting/person/pic_201.jpg 7 -art_painting/person/pic_462.jpg 7 -art_painting/person/pic_205.jpg 7 -art_painting/person/pic_213.jpg 7 -art_painting/person/pic_470.jpg 7 -art_painting/person/pic_469.jpg 7 -art_painting/person/pic_464.jpg 7 -art_painting/person/pic_209.jpg 7 -art_painting/person/pic_208.jpg 7 -art_painting/person/pic_210.jpg 7 -art_painting/person/pic_497.jpg 7 -art_painting/person/pic_236.jpg 7 -art_painting/person/pic_496.jpg 7 -art_painting/person/pic_503.jpg 7 -art_painting/person/pic_238.jpg 7 -art_painting/person/pic_508.jpg 7 -art_painting/person/pic_507.jpg 7 -art_painting/person/pic_504.jpg 7 -art_painting/person/pic_245.jpg 7 -art_painting/person/pic_254.jpg 7 -art_painting/person/pic_253.jpg 7 -art_painting/person/pic_522.jpg 7 -art_painting/person/pic_248.jpg 7 -art_painting/person/pic_514.jpg 7 -art_painting/person/pic_513.jpg 7 -art_painting/person/pic_246.jpg 7 -art_painting/person/pic_250.jpg 7 -art_painting/person/pic_132.jpg 7 -art_painting/person/pic_116.jpg 7 -art_painting/person/pic_104.jpg 7 -art_painting/person/pic_112.jpg 7 -art_painting/person/pic_100.jpg 7 -art_painting/person/pic_117.jpg 7 -art_painting/person/pic_122.jpg 7 -art_painting/person/pic_121.jpg 7 -art_painting/person/pic_129.jpg 7 -art_painting/person/pic_136.jpg 7 -art_painting/person/pic_193.jpg 7 -art_painting/person/pic_194.jpg 7 -art_painting/person/pic_192.jpg 7 -art_painting/person/pic_195.jpg 7 -art_painting/person/pic_241.jpg 7 -art_painting/person/pic_242.jpg 7 -art_painting/person/pic_240.jpg 7 -art_painting/person/pic_152.jpg 7 -art_painting/person/pic_170.jpg 7 -art_painting/person/pic_171.jpg 7 -art_painting/person/pic_168.jpg 7 -art_painting/person/pic_167.jpg 7 -art_painting/person/pic_320.jpg 7 -art_painting/person/pic_319.jpg 7 -art_painting/person/pic_318.jpg 7 -art_painting/person/pic_164.jpg 7 -art_painting/person/pic_163.jpg 7 -art_painting/person/pic_162.jpg 7 -art_painting/person/pic_161.jpg 7 -art_painting/person/pic_316.jpg 7 -art_painting/person/pic_160.jpg 7 -art_painting/person/pic_321.jpg 7 -art_painting/person/pic_165.jpg 7 -art_painting/person/pic_317.jpg 7 -art_painting/person/pic_166.jpg 7 -art_painting/person/pic_169.jpg 7 -art_painting/person/pic_535.jpg 7 -art_painting/person/pic_543.jpg 7 -art_painting/person/pic_540.jpg 7 -art_painting/person/pic_539.jpg 7 -art_painting/person/pic_542.jpg 7 -art_painting/person/pic_545.jpg 7 -art_painting/person/pic_559.jpg 7 -art_painting/person/pic_555.jpg 7 -art_painting/person/pic_553.jpg 7 -art_painting/person/pic_551.jpg 7 -art_painting/person/pic_552.jpg 7 -art_painting/person/pic_550.jpg 7 -art_painting/person/pic_546.jpg 7 -art_painting/person/pic_556.jpg 7 -art_painting/person/pic_558.jpg 7 -art_painting/person/pic_572.jpg 7 -art_painting/person/pic_571.jpg 7 -art_painting/person/pic_570.jpg 7 -art_painting/person/pic_564.jpg 7 -art_painting/person/pic_563.jpg 7 -art_painting/person/pic_560.jpg 7 -art_painting/person/pic_561.jpg 7 -art_painting/person/pic_577.jpg 7 -art_painting/person/pic_259.jpg 7 -art_painting/person/pic_547.jpg 7 -art_painting/person/pic_257.jpg 7 -art_painting/person/pic_256.jpg 7 -art_painting/person/pic_537.jpg 7 -art_painting/person/pic_536.jpg 7 -art_painting/person/pic_263.jpg 7 -art_painting/person/pic_051.jpg 7 -art_painting/person/pic_268.jpg 7 -art_painting/person/pic_574.jpg 7 -art_painting/person/pic_573.jpg 7 -art_painting/person/pic_267.jpg 7 -art_painting/person/pic_266.jpg 7 -art_painting/person/pic_265.jpg 7 -art_painting/person/pic_272.jpg 7 -art_painting/person/pic_568.jpg 7 -art_painting/person/pic_569.jpg 7 -art_painting/person/pic_271.jpg 7 -art_painting/person/pic_113.jpg 7 -art_painting/person/pic_111.jpg 7 -art_painting/person/pic_109.jpg 7 -art_painting/person/pic_107.jpg 7 -art_painting/person/pic_106.jpg 7 -art_painting/person/pic_105.jpg 7 -art_painting/person/pic_101.jpg 7 -art_painting/person/pic_099.jpg 7 -art_painting/person/pic_131.jpg 7 -art_painting/person/pic_120.jpg 7 -art_painting/person/pic_110.jpg 7 -art_painting/person/pic_123.jpg 7 -art_painting/person/pic_108.jpg 7 -art_painting/person/pic_098.jpg 7 -art_painting/person/pic_364.jpg 7 -art_painting/person/pic_363.jpg 7 -art_painting/person/pic_356.jpg 7 -art_painting/person/pic_357.jpg 7 -art_painting/person/pic_366.jpg 7 -art_painting/person/pic_372.jpg 7 -art_painting/person/pic_377.jpg 7 -art_painting/person/pic_378.jpg 7 -art_painting/person/pic_376.jpg 7 -art_painting/person/pic_371.jpg 7 -art_painting/person/pic_375.jpg 7 -art_painting/person/pic_389.jpg 7 -art_painting/person/pic_387.jpg 7 -art_painting/person/pic_386.jpg 7 -art_painting/person/pic_385.jpg 7 -art_painting/person/pic_379.jpg 7 -art_painting/person/pic_214.jpg 7 -art_painting/person/pic_211.jpg 7 -art_painting/person/pic_471.jpg 7 -art_painting/person/pic_475.jpg 7 -art_painting/person/pic_220.jpg 7 -art_painting/person/pic_218.jpg 7 -art_painting/person/pic_216.jpg 7 -art_painting/person/pic_215.jpg 7 -art_painting/person/pic_221.jpg 7 -art_painting/person/pic_217.jpg 7 -art_painting/person/pic_219.jpg 7 -art_painting/person/pic_227.jpg 7 -art_painting/person/pic_480.jpg 7 -art_painting/person/pic_479.jpg 7 -art_painting/person/pic_476.jpg 7 -art_painting/person/pic_224.jpg 7 -art_painting/person/pic_223.jpg 7 -art_painting/person/pic_222.jpg 7 -art_painting/person/pic_322.jpg 7 -art_painting/person/pic_306.jpg 7 -art_painting/person/pic_333.jpg 7 -art_painting/person/pic_346.jpg 7 -art_painting/person/pic_354.jpg 7 -art_painting/person/pic_353.jpg 7 -art_painting/person/pic_352.jpg 7 -art_painting/person/pic_351.jpg 7 -art_painting/person/pic_349.jpg 7 -art_painting/person/pic_347.jpg 7 -art_painting/person/pic_345.jpg 7 -art_painting/person/pic_338.jpg 7 -art_painting/person/pic_337.jpg 7 -art_painting/person/pic_350.jpg 7 -art_painting/person/pic_339.jpg 7 -art_painting/person/pic_368.jpg 7 -art_painting/person/pic_308.jpg 7 -art_painting/person/pic_151.jpg 7 -art_painting/person/pic_150.jpg 7 -art_painting/person/pic_149.jpg 7 -art_painting/person/pic_313.jpg 7 -art_painting/person/pic_148.jpg 7 -art_painting/person/pic_146.jpg 7 -art_painting/person/pic_311.jpg 7 -art_painting/person/pic_143.jpg 7 -art_painting/person/pic_144.jpg 7 -art_painting/person/pic_147.jpg 7 -art_painting/person/pic_145.jpg 7 -art_painting/person/pic_312.jpg 7 -art_painting/person/pic_314.jpg 7 -art_painting/person/pic_158.jpg 7 -art_painting/person/pic_157.jpg 7 -art_painting/person/pic_156.jpg 7 -art_painting/person/pic_155.jpg 7 -art_painting/person/pic_290.jpg 7 -art_painting/person/pic_288.jpg 7 -art_painting/person/pic_287.jpg 7 -art_painting/person/pic_294.jpg 7 -art_painting/person/pic_293.jpg 7 -art_painting/person/pic_292.jpg 7 -art_painting/person/pic_291.jpg 7 -art_painting/person/pic_301.jpg 7 -art_painting/person/pic_300.jpg 7 -art_painting/person/pic_305.jpg 7 -art_painting/person/pic_303.jpg 7 -art_painting/person/pic_304.jpg 7 -art_painting/person/pic_336.jpg 7 -art_painting/person/pic_325.jpg 7 -art_painting/person/pic_324.jpg 7 -art_painting/person/pic_006.jpg 7 -art_painting/person/pic_007.jpg 7 -art_painting/person/pic_008.jpg 7 -art_painting/person/pic_009.jpg 7 -art_painting/person/pic_010.jpg 7 -art_painting/person/pic_011.jpg 7 -art_painting/person/pic_012.jpg 7 -art_painting/person/pic_013.jpg 7 -art_painting/person/pic_014.jpg 7 -art_painting/person/pic_015.jpg 7 -art_painting/person/pic_016.jpg 7 -art_painting/person/pic_042.jpg 7 -art_painting/person/pic_033.jpg 7 -art_painting/person/pic_018.jpg 7 -art_painting/person/pic_036.jpg 7 -art_painting/person/pic_017.jpg 7 -art_painting/person/pic_037.jpg 7 -art_painting/person/pic_028.jpg 7 -art_painting/person/pic_043.jpg 7 -art_painting/person/pic_035.jpg 7 -art_painting/person/pic_327.jpg 7 -art_painting/person/pic_175.jpg 7 -art_painting/person/pic_328.jpg 7 -art_painting/person/pic_326.jpg 7 -art_painting/person/pic_174.jpg 7 -art_painting/person/pic_172.jpg 7 -art_painting/person/pic_329.jpg 7 -art_painting/person/pic_173.jpg 7 -art_painting/person/pic_178.jpg 7 -art_painting/person/pic_334.jpg 7 -art_painting/person/pic_335.jpg 7 -art_painting/person/pic_342.jpg 7 -art_painting/person/pic_181.jpg 7 -art_painting/person/pic_343.jpg 7 -art_painting/person/pic_180.jpg 7 -art_painting/person/pic_340.jpg 7 -art_painting/person/pic_359.jpg 7 -art_painting/person/pic_064.jpg 7 -art_painting/person/pic_062.jpg 7 -art_painting/person/pic_059.jpg 7 -art_painting/person/pic_060.jpg 7 -art_painting/person/pic_066.jpg 7 -art_painting/person/pic_063.jpg 7 -art_painting/person/pic_071.jpg 7 -art_painting/person/pic_070.jpg 7 -art_painting/person/pic_069.jpg 7 -art_painting/person/pic_072.jpg 7 -art_painting/person/pic_076.jpg 7 -art_painting/person/pic_074.jpg 7 -art_painting/person/pic_077.jpg 7 -art_painting/person/pic_078.jpg 7 -art_painting/person/pic_079.jpg 7 -art_painting/person/pic_080.jpg 7 -art_painting/person/pic_081.jpg 7 -art_painting/person/pic_082.jpg 7 -art_painting/person/pic_083.jpg 7 -art_painting/person/pic_094.jpg 7 -art_painting/person/pic_093.jpg 7 -art_painting/person/pic_089.jpg 7 -art_painting/person/pic_090.jpg 7 -art_painting/person/pic_086.jpg 7 -art_painting/person/pic_097.jpg 7 -art_painting/person/pic_124.jpg 7 -art_painting/person/pic_128.jpg 7 -art_painting/person/pic_127.jpg 7 -art_painting/person/pic_126.jpg 7 -art_painting/person/pic_115.jpg 7 -art_painting/person/pic_114.jpg 7 -art_painting/person/pic_463.jpg 7 -art_painting/person/pic_458.jpg 7 -art_painting/person/pic_444.jpg 7 -art_painting/person/pic_445.jpg 7 -art_painting/person/pic_466.jpg 7 -art_painting/person/pic_465.jpg 7 -art_painting/person/pic_493.jpg 7 -art_painting/person/pic_490.jpg 7 -art_painting/person/pic_487.jpg 7 -art_painting/person/pic_481.jpg 7 -art_painting/person/pic_474.jpg 7 -art_painting/person/pic_468.jpg 7 -art_painting/person/pic_492.jpg 7 -art_painting/person/pic_473.jpg 7 -art_painting/person/pic_511.jpg 7 -art_painting/person/pic_510.jpg 7 -art_painting/person/pic_502.jpg 7 -art_painting/person/pic_187.jpg 7 -art_painting/person/pic_441.jpg 7 -art_painting/person/pic_440.jpg 7 -art_painting/person/pic_188.jpg 7 -art_painting/person/pic_450.jpg 7 -art_painting/person/pic_449.jpg 7 -art_painting/person/pic_448.jpg 7 -art_painting/person/pic_447.jpg 7 -art_painting/person/pic_190.jpg 7 -art_painting/person/pic_454.jpg 7 -art_painting/person/pic_455.jpg 7 -art_painting/person/pic_199.jpg 7 -art_painting/person/pic_197.jpg 7 -art_painting/person/pic_198.jpg 7 -art_painting/person/pic_196.jpg 7 -art_painting/person/pic_191.jpg 7 -art_painting/person/pic_358.jpg 7 -art_painting/person/pic_361.jpg 7 -art_painting/person/pic_362.jpg 7 -art_painting/person/pic_382.jpg 7 -art_painting/person/pic_380.jpg 7 -art_painting/person/pic_381.jpg 7 -art_painting/person/pic_383.jpg 7 -art_painting/person/pic_398.jpg 7 -art_painting/person/pic_395.jpg 7 -art_painting/person/pic_394.jpg 7 -art_painting/person/pic_396.jpg 7 -art_painting/person/pic_397.jpg 7 -art_painting/person/pic_402.jpg 7 -art_painting/person/pic_404.jpg 7 -art_painting/person/pic_405.jpg 7 -art_painting/person/pic_412.jpg 7 -art_painting/person/pic_414.jpg 7 -art_painting/person/pic_413.jpg 7 diff --git a/data/pacs_split/cartoon_10.txt b/data/pacs_split/cartoon_10.txt deleted file mode 100644 index 9c90dce46..000000000 --- a/data/pacs_split/cartoon_10.txt +++ /dev/null @@ -1,10 +0,0 @@ -cartoon/person/pic_180.jpg 7 -cartoon/dog/pic_112.jpg 1 -cartoon/giraffe/pic_377.jpg 3 -cartoon/person/pic_111.jpg 7 -cartoon/giraffe/pic_382.jpg 3 -cartoon/horse/pic_064.jpg 5 -cartoon/dog/pic_137.jpg 1 -cartoon/house/pic_040.jpg 6 -cartoon/dog/pic_219.jpg 1 -cartoon/elephant/pic_332.jpg 2 diff --git a/data/pacs_split/cartoon_100.txt b/data/pacs_split/cartoon_100.txt deleted file mode 100644 index 678652e4c..000000000 --- a/data/pacs_split/cartoon_100.txt +++ /dev/null @@ -1,100 +0,0 @@ -cartoon/house/pic_032.jpg 6 -cartoon/giraffe/pic_286.jpg 3 -cartoon/giraffe/pic_147.jpg 3 -cartoon/horse/pic_303.jpg 5 -cartoon/giraffe/pic_193.jpg 3 -cartoon/elephant/pic_496.jpg 2 -cartoon/giraffe/pic_275.jpg 3 -cartoon/dog/pic_423.jpg 1 -cartoon/person/pic_340.jpg 7 -cartoon/dog/pic_332.jpg 1 -cartoon/elephant/pic_328.jpg 2 -cartoon/horse/pic_276.jpg 5 -cartoon/guitar/pic_081.jpg 4 -cartoon/person/pic_045.jpg 7 -cartoon/dog/pic_279.jpg 1 -cartoon/elephant/pic_065.jpg 2 -cartoon/guitar/pic_026.jpg 4 -cartoon/house/pic_176.jpg 6 -cartoon/guitar/pic_103.jpg 4 -cartoon/horse/pic_300.jpg 5 -cartoon/dog/pic_363.jpg 1 -cartoon/dog/pic_213.jpg 1 -cartoon/person/pic_276.jpg 7 -cartoon/dog/pic_195.jpg 1 -cartoon/giraffe/pic_262.jpg 3 -cartoon/person/pic_380.jpg 7 -cartoon/elephant/pic_179.jpg 2 -cartoon/person/pic_399.jpg 7 -cartoon/horse/pic_057.jpg 5 -cartoon/giraffe/pic_071.jpg 3 -cartoon/horse/pic_103.jpg 5 -cartoon/elephant/pic_101.jpg 2 -cartoon/elephant/pic_294.jpg 2 -cartoon/house/pic_188.jpg 6 -cartoon/giraffe/pic_361.jpg 3 -cartoon/giraffe/pic_139.jpg 3 -cartoon/horse/pic_056.jpg 5 -cartoon/elephant/pic_427.jpg 2 -cartoon/giraffe/pic_051.jpg 3 -cartoon/horse/pic_258.jpg 5 -cartoon/giraffe/pic_241.jpg 3 -cartoon/dog/pic_244.jpg 1 -cartoon/person/pic_303.jpg 7 -cartoon/giraffe/pic_368.jpg 3 -cartoon/house/pic_065.jpg 6 -cartoon/person/pic_080.jpg 7 -cartoon/person/pic_410.jpg 7 -cartoon/house/pic_264.jpg 6 -cartoon/elephant/pic_197.jpg 2 -cartoon/giraffe/pic_208.jpg 3 -cartoon/horse/pic_254.jpg 5 -cartoon/giraffe/pic_116.jpg 3 -cartoon/person/pic_229.jpg 7 -cartoon/elephant/pic_042.jpg 2 -cartoon/house/pic_147.jpg 6 -cartoon/dog/pic_102.jpg 1 -cartoon/horse/pic_160.jpg 5 -cartoon/elephant/pic_203.jpg 2 -cartoon/dog/pic_008.jpg 1 -cartoon/dog/pic_132.jpg 1 -cartoon/elephant/pic_059.jpg 2 -cartoon/elephant/pic_501.jpg 2 -cartoon/elephant/pic_254.jpg 2 -cartoon/giraffe/pic_200.jpg 3 -cartoon/elephant/pic_419.jpg 2 -cartoon/giraffe/pic_224.jpg 3 -cartoon/person/pic_146.jpg 7 -cartoon/giraffe/pic_129.jpg 3 -cartoon/giraffe/pic_370.jpg 3 -cartoon/guitar/pic_147.jpg 4 -cartoon/dog/pic_387.jpg 1 -cartoon/person/pic_390.jpg 7 -cartoon/horse/pic_356.jpg 5 -cartoon/guitar/pic_057.jpg 4 -cartoon/person/pic_219.jpg 7 -cartoon/elephant/pic_266.jpg 2 -cartoon/horse/pic_142.jpg 5 -cartoon/guitar/pic_037.jpg 4 -cartoon/dog/pic_112.jpg 1 -cartoon/house/pic_231.jpg 6 -cartoon/dog/pic_178.jpg 1 -cartoon/person/pic_033.jpg 7 -cartoon/dog/pic_007.jpg 1 -cartoon/dog/pic_062.jpg 1 -cartoon/house/pic_158.jpg 6 -cartoon/house/pic_301.jpg 6 -cartoon/horse/pic_137.jpg 5 -cartoon/dog/pic_338.jpg 1 -cartoon/giraffe/pic_165.jpg 3 -cartoon/elephant/pic_216.jpg 2 -cartoon/horse/pic_307.jpg 5 -cartoon/person/pic_026.jpg 7 -cartoon/person/pic_429.jpg 7 -cartoon/giraffe/pic_222.jpg 3 -cartoon/elephant/pic_461.jpg 2 -cartoon/horse/pic_298.jpg 5 -cartoon/person/pic_375.jpg 7 -cartoon/person/pic_373.jpg 7 -cartoon/house/pic_118.jpg 6 -cartoon/giraffe/pic_047.jpg 3 diff --git a/data/pacs_split/cartoon_crossval_kfold.txt b/data/pacs_split/cartoon_crossval_kfold.txt deleted file mode 100644 index e8374913b..000000000 --- a/data/pacs_split/cartoon_crossval_kfold.txt +++ /dev/null @@ -1,237 +0,0 @@ -cartoon/dog/pic_383.jpg 1 -cartoon/dog/pic_382.jpg 1 -cartoon/dog/pic_386.jpg 1 -cartoon/dog/pic_384.jpg 1 -cartoon/dog/pic_385.jpg 1 -cartoon/dog/pic_391.jpg 1 -cartoon/dog/pic_390.jpg 1 -cartoon/dog/pic_392.jpg 1 -cartoon/dog/pic_393.jpg 1 -cartoon/dog/pic_405.jpg 1 -cartoon/dog/pic_403.jpg 1 -cartoon/dog/pic_417.jpg 1 -cartoon/dog/pic_416.jpg 1 -cartoon/dog/pic_415.jpg 1 -cartoon/dog/pic_150.jpg 1 -cartoon/dog/pic_233.jpg 1 -cartoon/dog/pic_232.jpg 1 -cartoon/dog/pic_227.jpg 1 -cartoon/dog/pic_228.jpg 1 -cartoon/dog/pic_229.jpg 1 -cartoon/dog/pic_226.jpg 1 -cartoon/dog/pic_230.jpg 1 -cartoon/dog/pic_286.jpg 1 -cartoon/dog/pic_285.jpg 1 -cartoon/dog/pic_276.jpg 1 -cartoon/dog/pic_262.jpg 1 -cartoon/dog/pic_259.jpg 1 -cartoon/dog/pic_257.jpg 1 -cartoon/dog/pic_254.jpg 1 -cartoon/dog/pic_252.jpg 1 -cartoon/dog/pic_249.jpg 1 -cartoon/dog/pic_001.jpg 1 -cartoon/dog/pic_003.jpg 1 -cartoon/dog/pic_004.jpg 1 -cartoon/dog/pic_005.jpg 1 -cartoon/dog/pic_006.jpg 1 -cartoon/dog/pic_031.jpg 1 -cartoon/dog/pic_043.jpg 1 -cartoon/dog/pic_025.jpg 1 -cartoon/elephant/pic_211.jpg 2 -cartoon/elephant/pic_154.jpg 2 -cartoon/elephant/pic_153.jpg 2 -cartoon/elephant/pic_237.jpg 2 -cartoon/elephant/pic_227.jpg 2 -cartoon/elephant/pic_226.jpg 2 -cartoon/elephant/pic_225.jpg 2 -cartoon/elephant/pic_155.jpg 2 -cartoon/elephant/pic_165.jpg 2 -cartoon/elephant/pic_164.jpg 2 -cartoon/elephant/pic_162.jpg 2 -cartoon/elephant/pic_157.jpg 2 -cartoon/elephant/pic_156.jpg 2 -cartoon/elephant/pic_166.jpg 2 -cartoon/elephant/pic_168.jpg 2 -cartoon/elephant/pic_167.jpg 2 -cartoon/elephant/pic_169.jpg 2 -cartoon/elephant/pic_171.jpg 2 -cartoon/elephant/pic_170.jpg 2 -cartoon/elephant/pic_240.jpg 2 -cartoon/elephant/pic_243.jpg 2 -cartoon/elephant/pic_242.jpg 2 -cartoon/elephant/pic_244.jpg 2 -cartoon/elephant/pic_172.jpg 2 -cartoon/elephant/pic_247.jpg 2 -cartoon/elephant/pic_248.jpg 2 -cartoon/elephant/pic_251.jpg 2 -cartoon/elephant/pic_250.jpg 2 -cartoon/elephant/pic_249.jpg 2 -cartoon/elephant/pic_252.jpg 2 -cartoon/elephant/pic_258.jpg 2 -cartoon/elephant/pic_257.jpg 2 -cartoon/elephant/pic_173.jpg 2 -cartoon/elephant/pic_412.jpg 2 -cartoon/elephant/pic_411.jpg 2 -cartoon/elephant/pic_408.jpg 2 -cartoon/elephant/pic_409.jpg 2 -cartoon/elephant/pic_413.jpg 2 -cartoon/elephant/pic_410.jpg 2 -cartoon/elephant/pic_431.jpg 2 -cartoon/elephant/pic_430.jpg 2 -cartoon/elephant/pic_428.jpg 2 -cartoon/elephant/pic_425.jpg 2 -cartoon/elephant/pic_423.jpg 2 -cartoon/elephant/pic_424.jpg 2 -cartoon/elephant/pic_420.jpg 2 -cartoon/giraffe/pic_005.jpg 3 -cartoon/giraffe/pic_006.jpg 3 -cartoon/giraffe/pic_007.jpg 3 -cartoon/giraffe/pic_008.jpg 3 -cartoon/giraffe/pic_009.jpg 3 -cartoon/giraffe/pic_010.jpg 3 -cartoon/giraffe/pic_011.jpg 3 -cartoon/giraffe/pic_012.jpg 3 -cartoon/giraffe/pic_013.jpg 3 -cartoon/giraffe/pic_014.jpg 3 -cartoon/giraffe/pic_015.jpg 3 -cartoon/giraffe/pic_016.jpg 3 -cartoon/giraffe/pic_017.jpg 3 -cartoon/giraffe/pic_018.jpg 3 -cartoon/giraffe/pic_019.jpg 3 -cartoon/giraffe/pic_020.jpg 3 -cartoon/giraffe/pic_022.jpg 3 -cartoon/giraffe/pic_025.jpg 3 -cartoon/giraffe/pic_024.jpg 3 -cartoon/giraffe/pic_091.jpg 3 -cartoon/giraffe/pic_090.jpg 3 -cartoon/giraffe/pic_087.jpg 3 -cartoon/giraffe/pic_086.jpg 3 -cartoon/giraffe/pic_085.jpg 3 -cartoon/giraffe/pic_095.jpg 3 -cartoon/giraffe/pic_096.jpg 3 -cartoon/giraffe/pic_093.jpg 3 -cartoon/giraffe/pic_094.jpg 3 -cartoon/giraffe/pic_106.jpg 3 -cartoon/giraffe/pic_108.jpg 3 -cartoon/giraffe/pic_104.jpg 3 -cartoon/giraffe/pic_103.jpg 3 -cartoon/giraffe/pic_101.jpg 3 -cartoon/giraffe/pic_100.jpg 3 -cartoon/giraffe/pic_099.jpg 3 -cartoon/guitar/pic_072.jpg 4 -cartoon/guitar/pic_003.jpg 4 -cartoon/guitar/pic_004.jpg 4 -cartoon/guitar/pic_005.jpg 4 -cartoon/guitar/pic_006.jpg 4 -cartoon/guitar/pic_007.jpg 4 -cartoon/guitar/pic_009.jpg 4 -cartoon/guitar/pic_010.jpg 4 -cartoon/guitar/pic_011.jpg 4 -cartoon/guitar/pic_012.jpg 4 -cartoon/guitar/pic_013.jpg 4 -cartoon/guitar/pic_016.jpg 4 -cartoon/guitar/pic_017.jpg 4 -cartoon/guitar/pic_020.jpg 4 -cartoon/horse/pic_329.jpg 5 -cartoon/horse/pic_317.jpg 5 -cartoon/horse/pic_331.jpg 5 -cartoon/horse/pic_333.jpg 5 -cartoon/horse/pic_332.jpg 5 -cartoon/horse/pic_334.jpg 5 -cartoon/horse/pic_324.jpg 5 -cartoon/horse/pic_318.jpg 5 -cartoon/horse/pic_338.jpg 5 -cartoon/horse/pic_337.jpg 5 -cartoon/horse/pic_341.jpg 5 -cartoon/horse/pic_340.jpg 5 -cartoon/horse/pic_335.jpg 5 -cartoon/horse/pic_342.jpg 5 -cartoon/horse/pic_347.jpg 5 -cartoon/horse/pic_346.jpg 5 -cartoon/horse/pic_343.jpg 5 -cartoon/horse/pic_336.jpg 5 -cartoon/horse/pic_348.jpg 5 -cartoon/horse/pic_339.jpg 5 -cartoon/horse/pic_349.jpg 5 -cartoon/horse/pic_139.jpg 5 -cartoon/horse/pic_132.jpg 5 -cartoon/horse/pic_141.jpg 5 -cartoon/horse/pic_133.jpg 5 -cartoon/horse/pic_162.jpg 5 -cartoon/horse/pic_155.jpg 5 -cartoon/horse/pic_159.jpg 5 -cartoon/horse/pic_156.jpg 5 -cartoon/horse/pic_151.jpg 5 -cartoon/horse/pic_149.jpg 5 -cartoon/horse/pic_147.jpg 5 -cartoon/horse/pic_161.jpg 5 -cartoon/house/pic_103.jpg 6 -cartoon/house/pic_091.jpg 6 -cartoon/house/pic_089.jpg 6 -cartoon/house/pic_092.jpg 6 -cartoon/house/pic_093.jpg 6 -cartoon/house/pic_107.jpg 6 -cartoon/house/pic_104.jpg 6 -cartoon/house/pic_114.jpg 6 -cartoon/house/pic_112.jpg 6 -cartoon/house/pic_109.jpg 6 -cartoon/house/pic_108.jpg 6 -cartoon/house/pic_102.jpg 6 -cartoon/house/pic_099.jpg 6 -cartoon/house/pic_098.jpg 6 -cartoon/house/pic_097.jpg 6 -cartoon/house/pic_111.jpg 6 -cartoon/house/pic_320.jpg 6 -cartoon/house/pic_321.jpg 6 -cartoon/house/pic_315.jpg 6 -cartoon/house/pic_322.jpg 6 -cartoon/house/pic_323.jpg 6 -cartoon/house/pic_311.jpg 6 -cartoon/house/pic_324.jpg 6 -cartoon/house/pic_327.jpg 6 -cartoon/house/pic_312.jpg 6 -cartoon/house/pic_314.jpg 6 -cartoon/house/pic_328.jpg 6 -cartoon/house/pic_069.jpg 6 -cartoon/house/pic_079.jpg 6 -cartoon/person/pic_308.jpg 7 -cartoon/person/pic_307.jpg 7 -cartoon/person/pic_306.jpg 7 -cartoon/person/pic_313.jpg 7 -cartoon/person/pic_323.jpg 7 -cartoon/person/pic_319.jpg 7 -cartoon/person/pic_320.jpg 7 -cartoon/person/pic_321.jpg 7 -cartoon/person/pic_318.jpg 7 -cartoon/person/pic_317.jpg 7 -cartoon/person/pic_316.jpg 7 -cartoon/person/pic_324.jpg 7 -cartoon/person/pic_334.jpg 7 -cartoon/person/pic_331.jpg 7 -cartoon/person/pic_332.jpg 7 -cartoon/person/pic_333.jpg 7 -cartoon/person/pic_144.jpg 7 -cartoon/person/pic_145.jpg 7 -cartoon/person/pic_143.jpg 7 -cartoon/person/pic_138.jpg 7 -cartoon/person/pic_154.jpg 7 -cartoon/person/pic_151.jpg 7 -cartoon/person/pic_152.jpg 7 -cartoon/person/pic_148.jpg 7 -cartoon/person/pic_149.jpg 7 -cartoon/person/pic_155.jpg 7 -cartoon/person/pic_157.jpg 7 -cartoon/person/pic_159.jpg 7 -cartoon/person/pic_176.jpg 7 -cartoon/person/pic_171.jpg 7 -cartoon/person/pic_168.jpg 7 -cartoon/person/pic_169.jpg 7 -cartoon/person/pic_167.jpg 7 -cartoon/person/pic_056.jpg 7 -cartoon/person/pic_071.jpg 7 -cartoon/person/pic_070.jpg 7 -cartoon/person/pic_069.jpg 7 -cartoon/person/pic_073.jpg 7 -cartoon/person/pic_075.jpg 7 -cartoon/person/pic_076.jpg 7 -cartoon/person/pic_068.jpg 7 diff --git a/data/pacs_split/cartoon_test_kfold.txt b/data/pacs_split/cartoon_test_kfold.txt deleted file mode 100644 index 5daf9281e..000000000 --- a/data/pacs_split/cartoon_test_kfold.txt +++ /dev/null @@ -1,2344 +0,0 @@ -cartoon/dog/pic_383.jpg 1 -cartoon/dog/pic_382.jpg 1 -cartoon/dog/pic_386.jpg 1 -cartoon/dog/pic_384.jpg 1 -cartoon/dog/pic_385.jpg 1 -cartoon/dog/pic_391.jpg 1 -cartoon/dog/pic_390.jpg 1 -cartoon/dog/pic_392.jpg 1 -cartoon/dog/pic_393.jpg 1 -cartoon/dog/pic_405.jpg 1 -cartoon/dog/pic_403.jpg 1 -cartoon/dog/pic_417.jpg 1 -cartoon/dog/pic_416.jpg 1 -cartoon/dog/pic_415.jpg 1 -cartoon/dog/pic_150.jpg 1 -cartoon/dog/pic_233.jpg 1 -cartoon/dog/pic_232.jpg 1 -cartoon/dog/pic_227.jpg 1 -cartoon/dog/pic_228.jpg 1 -cartoon/dog/pic_229.jpg 1 -cartoon/dog/pic_226.jpg 1 -cartoon/dog/pic_230.jpg 1 -cartoon/dog/pic_286.jpg 1 -cartoon/dog/pic_285.jpg 1 -cartoon/dog/pic_276.jpg 1 -cartoon/dog/pic_262.jpg 1 -cartoon/dog/pic_259.jpg 1 -cartoon/dog/pic_257.jpg 1 -cartoon/dog/pic_254.jpg 1 -cartoon/dog/pic_252.jpg 1 -cartoon/dog/pic_249.jpg 1 -cartoon/dog/pic_001.jpg 1 -cartoon/dog/pic_003.jpg 1 -cartoon/dog/pic_004.jpg 1 -cartoon/dog/pic_005.jpg 1 -cartoon/dog/pic_006.jpg 1 -cartoon/dog/pic_031.jpg 1 -cartoon/dog/pic_043.jpg 1 -cartoon/dog/pic_025.jpg 1 -cartoon/dog/pic_056.jpg 1 -cartoon/dog/pic_052.jpg 1 -cartoon/dog/pic_049.jpg 1 -cartoon/dog/pic_019.jpg 1 -cartoon/dog/pic_023.jpg 1 -cartoon/dog/pic_048.jpg 1 -cartoon/dog/pic_044.jpg 1 -cartoon/dog/pic_042.jpg 1 -cartoon/dog/pic_038.jpg 1 -cartoon/dog/pic_033.jpg 1 -cartoon/dog/pic_040.jpg 1 -cartoon/dog/pic_055.jpg 1 -cartoon/dog/pic_053.jpg 1 -cartoon/dog/pic_041.jpg 1 -cartoon/dog/pic_039.jpg 1 -cartoon/dog/pic_111.jpg 1 -cartoon/dog/pic_109.jpg 1 -cartoon/dog/pic_114.jpg 1 -cartoon/dog/pic_140.jpg 1 -cartoon/dog/pic_142.jpg 1 -cartoon/dog/pic_138.jpg 1 -cartoon/dog/pic_135.jpg 1 -cartoon/dog/pic_129.jpg 1 -cartoon/dog/pic_125.jpg 1 -cartoon/dog/pic_122.jpg 1 -cartoon/dog/pic_121.jpg 1 -cartoon/dog/pic_117.jpg 1 -cartoon/dog/pic_115.jpg 1 -cartoon/dog/pic_112.jpg 1 -cartoon/dog/pic_120.jpg 1 -cartoon/dog/pic_143.jpg 1 -cartoon/dog/pic_346.jpg 1 -cartoon/dog/pic_349.jpg 1 -cartoon/dog/pic_347.jpg 1 -cartoon/dog/pic_340.jpg 1 -cartoon/dog/pic_332.jpg 1 -cartoon/dog/pic_358.jpg 1 -cartoon/dog/pic_351.jpg 1 -cartoon/dog/pic_361.jpg 1 -cartoon/dog/pic_360.jpg 1 -cartoon/dog/pic_446.jpg 1 -cartoon/dog/pic_430.jpg 1 -cartoon/dog/pic_427.jpg 1 -cartoon/dog/pic_381.jpg 1 -cartoon/dog/pic_379.jpg 1 -cartoon/dog/pic_373.jpg 1 -cartoon/dog/pic_400.jpg 1 -cartoon/dog/pic_429.jpg 1 -cartoon/dog/pic_442.jpg 1 -cartoon/dog/pic_134.jpg 1 -cartoon/dog/pic_137.jpg 1 -cartoon/dog/pic_136.jpg 1 -cartoon/dog/pic_118.jpg 1 -cartoon/dog/pic_126.jpg 1 -cartoon/dog/pic_133.jpg 1 -cartoon/dog/pic_124.jpg 1 -cartoon/dog/pic_127.jpg 1 -cartoon/dog/pic_139.jpg 1 -cartoon/dog/pic_145.jpg 1 -cartoon/dog/pic_132.jpg 1 -cartoon/dog/pic_141.jpg 1 -cartoon/dog/pic_152.jpg 1 -cartoon/dog/pic_151.jpg 1 -cartoon/dog/pic_153.jpg 1 -cartoon/dog/pic_155.jpg 1 -cartoon/dog/pic_217.jpg 1 -cartoon/dog/pic_218.jpg 1 -cartoon/dog/pic_244.jpg 1 -cartoon/dog/pic_246.jpg 1 -cartoon/dog/pic_245.jpg 1 -cartoon/dog/pic_243.jpg 1 -cartoon/dog/pic_241.jpg 1 -cartoon/dog/pic_296.jpg 1 -cartoon/dog/pic_300.jpg 1 -cartoon/dog/pic_277.jpg 1 -cartoon/dog/pic_290.jpg 1 -cartoon/dog/pic_284.jpg 1 -cartoon/dog/pic_256.jpg 1 -cartoon/dog/pic_255.jpg 1 -cartoon/dog/pic_261.jpg 1 -cartoon/dog/pic_294.jpg 1 -cartoon/dog/pic_247.jpg 1 -cartoon/dog/pic_267.jpg 1 -cartoon/dog/pic_265.jpg 1 -cartoon/dog/pic_208.jpg 1 -cartoon/dog/pic_205.jpg 1 -cartoon/dog/pic_207.jpg 1 -cartoon/dog/pic_206.jpg 1 -cartoon/dog/pic_209.jpg 1 -cartoon/dog/pic_224.jpg 1 -cartoon/dog/pic_223.jpg 1 -cartoon/dog/pic_222.jpg 1 -cartoon/dog/pic_215.jpg 1 -cartoon/dog/pic_221.jpg 1 -cartoon/dog/pic_214.jpg 1 -cartoon/dog/pic_212.jpg 1 -cartoon/dog/pic_211.jpg 1 -cartoon/dog/pic_210.jpg 1 -cartoon/dog/pic_213.jpg 1 -cartoon/dog/pic_239.jpg 1 -cartoon/dog/pic_237.jpg 1 -cartoon/dog/pic_234.jpg 1 -cartoon/dog/pic_235.jpg 1 -cartoon/dog/pic_007.jpg 1 -cartoon/dog/pic_008.jpg 1 -cartoon/dog/pic_009.jpg 1 -cartoon/dog/pic_010.jpg 1 -cartoon/dog/pic_011.jpg 1 -cartoon/dog/pic_012.jpg 1 -cartoon/dog/pic_013.jpg 1 -cartoon/dog/pic_014.jpg 1 -cartoon/dog/pic_015.jpg 1 -cartoon/dog/pic_016.jpg 1 -cartoon/dog/pic_017.jpg 1 -cartoon/dog/pic_018.jpg 1 -cartoon/dog/pic_032.jpg 1 -cartoon/dog/pic_030.jpg 1 -cartoon/dog/pic_021.jpg 1 -cartoon/dog/pic_024.jpg 1 -cartoon/dog/pic_028.jpg 1 -cartoon/dog/pic_026.jpg 1 -cartoon/dog/pic_022.jpg 1 -cartoon/dog/pic_447.jpg 1 -cartoon/dog/pic_449.jpg 1 -cartoon/dog/pic_450.jpg 1 -cartoon/dog/pic_166.jpg 1 -cartoon/dog/pic_171.jpg 1 -cartoon/dog/pic_167.jpg 1 -cartoon/dog/pic_168.jpg 1 -cartoon/dog/pic_172.jpg 1 -cartoon/dog/pic_170.jpg 1 -cartoon/dog/pic_169.jpg 1 -cartoon/dog/pic_173.jpg 1 -cartoon/dog/pic_176.jpg 1 -cartoon/dog/pic_175.jpg 1 -cartoon/dog/pic_180.jpg 1 -cartoon/dog/pic_179.jpg 1 -cartoon/dog/pic_178.jpg 1 -cartoon/dog/pic_177.jpg 1 -cartoon/dog/pic_183.jpg 1 -cartoon/dog/pic_184.jpg 1 -cartoon/dog/pic_182.jpg 1 -cartoon/dog/pic_220.jpg 1 -cartoon/dog/pic_219.jpg 1 -cartoon/dog/pic_216.jpg 1 -cartoon/dog/pic_273.jpg 1 -cartoon/dog/pic_272.jpg 1 -cartoon/dog/pic_275.jpg 1 -cartoon/dog/pic_274.jpg 1 -cartoon/dog/pic_280.jpg 1 -cartoon/dog/pic_279.jpg 1 -cartoon/dog/pic_281.jpg 1 -cartoon/dog/pic_282.jpg 1 -cartoon/dog/pic_327.jpg 1 -cartoon/dog/pic_329.jpg 1 -cartoon/dog/pic_326.jpg 1 -cartoon/dog/pic_328.jpg 1 -cartoon/dog/pic_335.jpg 1 -cartoon/dog/pic_338.jpg 1 -cartoon/dog/pic_339.jpg 1 -cartoon/dog/pic_337.jpg 1 -cartoon/dog/pic_374.jpg 1 -cartoon/dog/pic_372.jpg 1 -cartoon/dog/pic_371.jpg 1 -cartoon/dog/pic_369.jpg 1 -cartoon/dog/pic_368.jpg 1 -cartoon/dog/pic_367.jpg 1 -cartoon/dog/pic_366.jpg 1 -cartoon/dog/pic_365.jpg 1 -cartoon/dog/pic_364.jpg 1 -cartoon/dog/pic_437.jpg 1 -cartoon/dog/pic_431.jpg 1 -cartoon/dog/pic_413.jpg 1 -cartoon/dog/pic_394.jpg 1 -cartoon/dog/pic_428.jpg 1 -cartoon/dog/pic_387.jpg 1 -cartoon/dog/pic_380.jpg 1 -cartoon/dog/pic_376.jpg 1 -cartoon/dog/pic_425.jpg 1 -cartoon/dog/pic_414.jpg 1 -cartoon/dog/pic_398.jpg 1 -cartoon/dog/pic_317.jpg 1 -cartoon/dog/pic_318.jpg 1 -cartoon/dog/pic_323.jpg 1 -cartoon/dog/pic_363.jpg 1 -cartoon/dog/pic_357.jpg 1 -cartoon/dog/pic_356.jpg 1 -cartoon/dog/pic_354.jpg 1 -cartoon/dog/pic_352.jpg 1 -cartoon/dog/pic_353.jpg 1 -cartoon/dog/pic_348.jpg 1 -cartoon/dog/pic_345.jpg 1 -cartoon/dog/pic_344.jpg 1 -cartoon/dog/pic_343.jpg 1 -cartoon/dog/pic_341.jpg 1 -cartoon/dog/pic_333.jpg 1 -cartoon/dog/pic_334.jpg 1 -cartoon/dog/pic_331.jpg 1 -cartoon/dog/pic_350.jpg 1 -cartoon/dog/pic_181.jpg 1 -cartoon/dog/pic_188.jpg 1 -cartoon/dog/pic_190.jpg 1 -cartoon/dog/pic_186.jpg 1 -cartoon/dog/pic_185.jpg 1 -cartoon/dog/pic_189.jpg 1 -cartoon/dog/pic_192.jpg 1 -cartoon/dog/pic_191.jpg 1 -cartoon/dog/pic_193.jpg 1 -cartoon/dog/pic_195.jpg 1 -cartoon/dog/pic_201.jpg 1 -cartoon/dog/pic_200.jpg 1 -cartoon/dog/pic_197.jpg 1 -cartoon/dog/pic_198.jpg 1 -cartoon/dog/pic_196.jpg 1 -cartoon/dog/pic_202.jpg 1 -cartoon/dog/pic_204.jpg 1 -cartoon/dog/pic_203.jpg 1 -cartoon/dog/pic_034.jpg 1 -cartoon/dog/pic_027.jpg 1 -cartoon/dog/pic_029.jpg 1 -cartoon/dog/pic_050.jpg 1 -cartoon/dog/pic_035.jpg 1 -cartoon/dog/pic_037.jpg 1 -cartoon/dog/pic_051.jpg 1 -cartoon/dog/pic_045.jpg 1 -cartoon/dog/pic_058.jpg 1 -cartoon/dog/pic_057.jpg 1 -cartoon/dog/pic_059.jpg 1 -cartoon/dog/pic_062.jpg 1 -cartoon/dog/pic_063.jpg 1 -cartoon/dog/pic_060.jpg 1 -cartoon/dog/pic_061.jpg 1 -cartoon/dog/pic_065.jpg 1 -cartoon/dog/pic_064.jpg 1 -cartoon/dog/pic_068.jpg 1 -cartoon/dog/pic_067.jpg 1 -cartoon/dog/pic_432.jpg 1 -cartoon/dog/pic_424.jpg 1 -cartoon/dog/pic_445.jpg 1 -cartoon/dog/pic_397.jpg 1 -cartoon/dog/pic_389.jpg 1 -cartoon/dog/pic_395.jpg 1 -cartoon/dog/pic_435.jpg 1 -cartoon/dog/pic_399.jpg 1 -cartoon/dog/pic_411.jpg 1 -cartoon/dog/pic_434.jpg 1 -cartoon/dog/pic_444.jpg 1 -cartoon/dog/pic_401.jpg 1 -cartoon/dog/pic_396.jpg 1 -cartoon/dog/pic_426.jpg 1 -cartoon/dog/pic_433.jpg 1 -cartoon/dog/pic_443.jpg 1 -cartoon/dog/pic_412.jpg 1 -cartoon/dog/pic_148.jpg 1 -cartoon/dog/pic_146.jpg 1 -cartoon/dog/pic_418.jpg 1 -cartoon/dog/pic_156.jpg 1 -cartoon/dog/pic_149.jpg 1 -cartoon/dog/pic_160.jpg 1 -cartoon/dog/pic_161.jpg 1 -cartoon/dog/pic_163.jpg 1 -cartoon/dog/pic_165.jpg 1 -cartoon/dog/pic_164.jpg 1 -cartoon/dog/pic_419.jpg 1 -cartoon/dog/pic_422.jpg 1 -cartoon/dog/pic_420.jpg 1 -cartoon/dog/pic_421.jpg 1 -cartoon/dog/pic_423.jpg 1 -cartoon/dog/pic_439.jpg 1 -cartoon/dog/pic_438.jpg 1 -cartoon/dog/pic_441.jpg 1 -cartoon/dog/pic_440.jpg 1 -cartoon/dog/pic_242.jpg 1 -cartoon/dog/pic_260.jpg 1 -cartoon/dog/pic_293.jpg 1 -cartoon/dog/pic_278.jpg 1 -cartoon/dog/pic_269.jpg 1 -cartoon/dog/pic_292.jpg 1 -cartoon/dog/pic_268.jpg 1 -cartoon/dog/pic_291.jpg 1 -cartoon/dog/pic_289.jpg 1 -cartoon/dog/pic_266.jpg 1 -cartoon/dog/pic_258.jpg 1 -cartoon/dog/pic_264.jpg 1 -cartoon/dog/pic_287.jpg 1 -cartoon/dog/pic_298.jpg 1 -cartoon/dog/pic_288.jpg 1 -cartoon/dog/pic_295.jpg 1 -cartoon/dog/pic_299.jpg 1 -cartoon/dog/pic_306.jpg 1 -cartoon/dog/pic_305.jpg 1 -cartoon/dog/pic_304.jpg 1 -cartoon/dog/pic_302.jpg 1 -cartoon/dog/pic_303.jpg 1 -cartoon/dog/pic_308.jpg 1 -cartoon/dog/pic_309.jpg 1 -cartoon/dog/pic_330.jpg 1 -cartoon/dog/pic_324.jpg 1 -cartoon/dog/pic_322.jpg 1 -cartoon/dog/pic_319.jpg 1 -cartoon/dog/pic_320.jpg 1 -cartoon/dog/pic_315.jpg 1 -cartoon/dog/pic_313.jpg 1 -cartoon/dog/pic_314.jpg 1 -cartoon/dog/pic_310.jpg 1 -cartoon/dog/pic_325.jpg 1 -cartoon/dog/pic_316.jpg 1 -cartoon/dog/pic_321.jpg 1 -cartoon/dog/pic_312.jpg 1 -cartoon/dog/pic_069.jpg 1 -cartoon/dog/pic_066.jpg 1 -cartoon/dog/pic_082.jpg 1 -cartoon/dog/pic_078.jpg 1 -cartoon/dog/pic_076.jpg 1 -cartoon/dog/pic_077.jpg 1 -cartoon/dog/pic_074.jpg 1 -cartoon/dog/pic_073.jpg 1 -cartoon/dog/pic_072.jpg 1 -cartoon/dog/pic_071.jpg 1 -cartoon/dog/pic_079.jpg 1 -cartoon/dog/pic_080.jpg 1 -cartoon/dog/pic_083.jpg 1 -cartoon/dog/pic_081.jpg 1 -cartoon/dog/pic_084.jpg 1 -cartoon/dog/pic_085.jpg 1 -cartoon/dog/pic_086.jpg 1 -cartoon/dog/pic_087.jpg 1 -cartoon/dog/pic_088.jpg 1 -cartoon/dog/pic_089.jpg 1 -cartoon/dog/pic_090.jpg 1 -cartoon/dog/pic_094.jpg 1 -cartoon/dog/pic_093.jpg 1 -cartoon/dog/pic_091.jpg 1 -cartoon/dog/pic_092.jpg 1 -cartoon/dog/pic_108.jpg 1 -cartoon/dog/pic_105.jpg 1 -cartoon/dog/pic_104.jpg 1 -cartoon/dog/pic_103.jpg 1 -cartoon/dog/pic_099.jpg 1 -cartoon/dog/pic_101.jpg 1 -cartoon/dog/pic_098.jpg 1 -cartoon/dog/pic_097.jpg 1 -cartoon/dog/pic_096.jpg 1 -cartoon/dog/pic_095.jpg 1 -cartoon/dog/pic_102.jpg 1 -cartoon/dog/pic_106.jpg 1 -cartoon/dog/pic_107.jpg 1 -cartoon/dog/pic_100.jpg 1 -cartoon/dog/pic_113.jpg 1 -cartoon/dog/pic_110.jpg 1 -cartoon/elephant/pic_211.jpg 2 -cartoon/elephant/pic_154.jpg 2 -cartoon/elephant/pic_153.jpg 2 -cartoon/elephant/pic_237.jpg 2 -cartoon/elephant/pic_227.jpg 2 -cartoon/elephant/pic_226.jpg 2 -cartoon/elephant/pic_225.jpg 2 -cartoon/elephant/pic_155.jpg 2 -cartoon/elephant/pic_165.jpg 2 -cartoon/elephant/pic_164.jpg 2 -cartoon/elephant/pic_162.jpg 2 -cartoon/elephant/pic_157.jpg 2 -cartoon/elephant/pic_156.jpg 2 -cartoon/elephant/pic_166.jpg 2 -cartoon/elephant/pic_168.jpg 2 -cartoon/elephant/pic_167.jpg 2 -cartoon/elephant/pic_169.jpg 2 -cartoon/elephant/pic_171.jpg 2 -cartoon/elephant/pic_170.jpg 2 -cartoon/elephant/pic_240.jpg 2 -cartoon/elephant/pic_243.jpg 2 -cartoon/elephant/pic_242.jpg 2 -cartoon/elephant/pic_244.jpg 2 -cartoon/elephant/pic_172.jpg 2 -cartoon/elephant/pic_247.jpg 2 -cartoon/elephant/pic_248.jpg 2 -cartoon/elephant/pic_251.jpg 2 -cartoon/elephant/pic_250.jpg 2 -cartoon/elephant/pic_249.jpg 2 -cartoon/elephant/pic_252.jpg 2 -cartoon/elephant/pic_258.jpg 2 -cartoon/elephant/pic_257.jpg 2 -cartoon/elephant/pic_173.jpg 2 -cartoon/elephant/pic_412.jpg 2 -cartoon/elephant/pic_411.jpg 2 -cartoon/elephant/pic_408.jpg 2 -cartoon/elephant/pic_409.jpg 2 -cartoon/elephant/pic_413.jpg 2 -cartoon/elephant/pic_410.jpg 2 -cartoon/elephant/pic_431.jpg 2 -cartoon/elephant/pic_430.jpg 2 -cartoon/elephant/pic_428.jpg 2 -cartoon/elephant/pic_425.jpg 2 -cartoon/elephant/pic_423.jpg 2 -cartoon/elephant/pic_424.jpg 2 -cartoon/elephant/pic_420.jpg 2 -cartoon/elephant/pic_421.jpg 2 -cartoon/elephant/pic_419.jpg 2 -cartoon/elephant/pic_418.jpg 2 -cartoon/elephant/pic_026.jpg 2 -cartoon/elephant/pic_028.jpg 2 -cartoon/elephant/pic_024.jpg 2 -cartoon/elephant/pic_027.jpg 2 -cartoon/elephant/pic_021.jpg 2 -cartoon/elephant/pic_030.jpg 2 -cartoon/elephant/pic_036.jpg 2 -cartoon/elephant/pic_037.jpg 2 -cartoon/elephant/pic_033.jpg 2 -cartoon/elephant/pic_056.jpg 2 -cartoon/elephant/pic_052.jpg 2 -cartoon/elephant/pic_048.jpg 2 -cartoon/elephant/pic_040.jpg 2 -cartoon/elephant/pic_046.jpg 2 -cartoon/elephant/pic_045.jpg 2 -cartoon/elephant/pic_043.jpg 2 -cartoon/elephant/pic_044.jpg 2 -cartoon/elephant/pic_042.jpg 2 -cartoon/elephant/pic_034.jpg 2 -cartoon/elephant/pic_025.jpg 2 -cartoon/elephant/pic_325.jpg 2 -cartoon/elephant/pic_328.jpg 2 -cartoon/elephant/pic_329.jpg 2 -cartoon/elephant/pic_330.jpg 2 -cartoon/elephant/pic_331.jpg 2 -cartoon/elephant/pic_332.jpg 2 -cartoon/elephant/pic_333.jpg 2 -cartoon/elephant/pic_338.jpg 2 -cartoon/elephant/pic_336.jpg 2 -cartoon/elephant/pic_337.jpg 2 -cartoon/elephant/pic_335.jpg 2 -cartoon/elephant/pic_334.jpg 2 -cartoon/elephant/pic_342.jpg 2 -cartoon/elephant/pic_339.jpg 2 -cartoon/elephant/pic_340.jpg 2 -cartoon/elephant/pic_341.jpg 2 -cartoon/elephant/pic_343.jpg 2 -cartoon/elephant/pic_351.jpg 2 -cartoon/elephant/pic_345.jpg 2 -cartoon/elephant/pic_350.jpg 2 -cartoon/elephant/pic_280.jpg 2 -cartoon/elephant/pic_203.jpg 2 -cartoon/elephant/pic_204.jpg 2 -cartoon/elephant/pic_215.jpg 2 -cartoon/elephant/pic_207.jpg 2 -cartoon/elephant/pic_208.jpg 2 -cartoon/elephant/pic_206.jpg 2 -cartoon/elephant/pic_205.jpg 2 -cartoon/elephant/pic_216.jpg 2 -cartoon/elephant/pic_223.jpg 2 -cartoon/elephant/pic_222.jpg 2 -cartoon/elephant/pic_221.jpg 2 -cartoon/elephant/pic_285.jpg 2 -cartoon/elephant/pic_282.jpg 2 -cartoon/elephant/pic_218.jpg 2 -cartoon/elephant/pic_217.jpg 2 -cartoon/elephant/pic_224.jpg 2 -cartoon/elephant/pic_286.jpg 2 -cartoon/elephant/pic_392.jpg 2 -cartoon/elephant/pic_390.jpg 2 -cartoon/elephant/pic_395.jpg 2 -cartoon/elephant/pic_393.jpg 2 -cartoon/elephant/pic_391.jpg 2 -cartoon/elephant/pic_394.jpg 2 -cartoon/elephant/pic_403.jpg 2 -cartoon/elephant/pic_401.jpg 2 -cartoon/elephant/pic_400.jpg 2 -cartoon/elephant/pic_399.jpg 2 -cartoon/elephant/pic_396.jpg 2 -cartoon/elephant/pic_397.jpg 2 -cartoon/elephant/pic_398.jpg 2 -cartoon/elephant/pic_402.jpg 2 -cartoon/elephant/pic_407.jpg 2 -cartoon/elephant/pic_406.jpg 2 -cartoon/elephant/pic_405.jpg 2 -cartoon/elephant/pic_404.jpg 2 -cartoon/elephant/pic_415.jpg 2 -cartoon/elephant/pic_416.jpg 2 -cartoon/elephant/pic_349.jpg 2 -cartoon/elephant/pic_348.jpg 2 -cartoon/elephant/pic_347.jpg 2 -cartoon/elephant/pic_346.jpg 2 -cartoon/elephant/pic_344.jpg 2 -cartoon/elephant/pic_356.jpg 2 -cartoon/elephant/pic_355.jpg 2 -cartoon/elephant/pic_354.jpg 2 -cartoon/elephant/pic_352.jpg 2 -cartoon/elephant/pic_359.jpg 2 -cartoon/elephant/pic_357.jpg 2 -cartoon/elephant/pic_362.jpg 2 -cartoon/elephant/pic_360.jpg 2 -cartoon/elephant/pic_366.jpg 2 -cartoon/elephant/pic_365.jpg 2 -cartoon/elephant/pic_364.jpg 2 -cartoon/elephant/pic_363.jpg 2 -cartoon/elephant/pic_367.jpg 2 -cartoon/elephant/pic_064.jpg 2 -cartoon/elephant/pic_063.jpg 2 -cartoon/elephant/pic_062.jpg 2 -cartoon/elephant/pic_061.jpg 2 -cartoon/elephant/pic_118.jpg 2 -cartoon/elephant/pic_111.jpg 2 -cartoon/elephant/pic_100.jpg 2 -cartoon/elephant/pic_098.jpg 2 -cartoon/elephant/pic_096.jpg 2 -cartoon/elephant/pic_092.jpg 2 -cartoon/elephant/pic_088.jpg 2 -cartoon/elephant/pic_086.jpg 2 -cartoon/elephant/pic_083.jpg 2 -cartoon/elephant/pic_080.jpg 2 -cartoon/elephant/pic_079.jpg 2 -cartoon/elephant/pic_078.jpg 2 -cartoon/elephant/pic_076.jpg 2 -cartoon/elephant/pic_068.jpg 2 -cartoon/elephant/pic_072.jpg 2 -cartoon/elephant/pic_074.jpg 2 -cartoon/elephant/pic_071.jpg 2 -cartoon/elephant/pic_001.jpg 2 -cartoon/elephant/pic_002.jpg 2 -cartoon/elephant/pic_003.jpg 2 -cartoon/elephant/pic_004.jpg 2 -cartoon/elephant/pic_005.jpg 2 -cartoon/elephant/pic_007.jpg 2 -cartoon/elephant/pic_008.jpg 2 -cartoon/elephant/pic_009.jpg 2 -cartoon/elephant/pic_010.jpg 2 -cartoon/elephant/pic_011.jpg 2 -cartoon/elephant/pic_012.jpg 2 -cartoon/elephant/pic_013.jpg 2 -cartoon/elephant/pic_014.jpg 2 -cartoon/elephant/pic_015.jpg 2 -cartoon/elephant/pic_016.jpg 2 -cartoon/elephant/pic_017.jpg 2 -cartoon/elephant/pic_019.jpg 2 -cartoon/elephant/pic_020.jpg 2 -cartoon/elephant/pic_038.jpg 2 -cartoon/elephant/pic_220.jpg 2 -cartoon/elephant/pic_219.jpg 2 -cartoon/elephant/pic_284.jpg 2 -cartoon/elephant/pic_233.jpg 2 -cartoon/elephant/pic_232.jpg 2 -cartoon/elephant/pic_290.jpg 2 -cartoon/elephant/pic_292.jpg 2 -cartoon/elephant/pic_231.jpg 2 -cartoon/elephant/pic_228.jpg 2 -cartoon/elephant/pic_230.jpg 2 -cartoon/elephant/pic_229.jpg 2 -cartoon/elephant/pic_289.jpg 2 -cartoon/elephant/pic_291.jpg 2 -cartoon/elephant/pic_236.jpg 2 -cartoon/elephant/pic_235.jpg 2 -cartoon/elephant/pic_294.jpg 2 -cartoon/elephant/pic_239.jpg 2 -cartoon/elephant/pic_238.jpg 2 -cartoon/elephant/pic_295.jpg 2 -cartoon/elephant/pic_296.jpg 2 -cartoon/elephant/pic_183.jpg 2 -cartoon/elephant/pic_182.jpg 2 -cartoon/elephant/pic_190.jpg 2 -cartoon/elephant/pic_198.jpg 2 -cartoon/elephant/pic_197.jpg 2 -cartoon/elephant/pic_196.jpg 2 -cartoon/elephant/pic_273.jpg 2 -cartoon/elephant/pic_194.jpg 2 -cartoon/elephant/pic_272.jpg 2 -cartoon/elephant/pic_195.jpg 2 -cartoon/elephant/pic_192.jpg 2 -cartoon/elephant/pic_276.jpg 2 -cartoon/elephant/pic_279.jpg 2 -cartoon/elephant/pic_202.jpg 2 -cartoon/elephant/pic_275.jpg 2 -cartoon/elephant/pic_274.jpg 2 -cartoon/elephant/pic_200.jpg 2 -cartoon/elephant/pic_201.jpg 2 -cartoon/elephant/pic_199.jpg 2 -cartoon/elephant/pic_433.jpg 2 -cartoon/elephant/pic_434.jpg 2 -cartoon/elephant/pic_435.jpg 2 -cartoon/elephant/pic_432.jpg 2 -cartoon/elephant/pic_439.jpg 2 -cartoon/elephant/pic_427.jpg 2 -cartoon/elephant/pic_440.jpg 2 -cartoon/elephant/pic_438.jpg 2 -cartoon/elephant/pic_426.jpg 2 -cartoon/elephant/pic_449.jpg 2 -cartoon/elephant/pic_447.jpg 2 -cartoon/elephant/pic_448.jpg 2 -cartoon/elephant/pic_444.jpg 2 -cartoon/elephant/pic_443.jpg 2 -cartoon/elephant/pic_442.jpg 2 -cartoon/elephant/pic_446.jpg 2 -cartoon/elephant/pic_464.jpg 2 -cartoon/elephant/pic_368.jpg 2 -cartoon/elephant/pic_370.jpg 2 -cartoon/elephant/pic_372.jpg 2 -cartoon/elephant/pic_373.jpg 2 -cartoon/elephant/pic_374.jpg 2 -cartoon/elephant/pic_376.jpg 2 -cartoon/elephant/pic_375.jpg 2 -cartoon/elephant/pic_378.jpg 2 -cartoon/elephant/pic_377.jpg 2 -cartoon/elephant/pic_381.jpg 2 -cartoon/elephant/pic_382.jpg 2 -cartoon/elephant/pic_383.jpg 2 -cartoon/elephant/pic_384.jpg 2 -cartoon/elephant/pic_385.jpg 2 -cartoon/elephant/pic_389.jpg 2 -cartoon/elephant/pic_388.jpg 2 -cartoon/elephant/pic_387.jpg 2 -cartoon/elephant/pic_023.jpg 2 -cartoon/elephant/pic_022.jpg 2 -cartoon/elephant/pic_039.jpg 2 -cartoon/elephant/pic_053.jpg 2 -cartoon/elephant/pic_049.jpg 2 -cartoon/elephant/pic_047.jpg 2 -cartoon/elephant/pic_041.jpg 2 -cartoon/elephant/pic_050.jpg 2 -cartoon/elephant/pic_035.jpg 2 -cartoon/elephant/pic_057.jpg 2 -cartoon/elephant/pic_032.jpg 2 -cartoon/elephant/pic_055.jpg 2 -cartoon/elephant/pic_058.jpg 2 -cartoon/elephant/pic_029.jpg 2 -cartoon/elephant/pic_051.jpg 2 -cartoon/elephant/pic_054.jpg 2 -cartoon/elephant/pic_059.jpg 2 -cartoon/elephant/pic_060.jpg 2 -cartoon/elephant/pic_066.jpg 2 -cartoon/elephant/pic_065.jpg 2 -cartoon/elephant/pic_085.jpg 2 -cartoon/elephant/pic_094.jpg 2 -cartoon/elephant/pic_091.jpg 2 -cartoon/elephant/pic_110.jpg 2 -cartoon/elephant/pic_147.jpg 2 -cartoon/elephant/pic_149.jpg 2 -cartoon/elephant/pic_140.jpg 2 -cartoon/elephant/pic_135.jpg 2 -cartoon/elephant/pic_115.jpg 2 -cartoon/elephant/pic_089.jpg 2 -cartoon/elephant/pic_107.jpg 2 -cartoon/elephant/pic_104.jpg 2 -cartoon/elephant/pic_095.jpg 2 -cartoon/elephant/pic_142.jpg 2 -cartoon/elephant/pic_081.jpg 2 -cartoon/elephant/pic_090.jpg 2 -cartoon/elephant/pic_097.jpg 2 -cartoon/elephant/pic_106.jpg 2 -cartoon/elephant/pic_151.jpg 2 -cartoon/elephant/pic_129.jpg 2 -cartoon/elephant/pic_121.jpg 2 -cartoon/elephant/pic_259.jpg 2 -cartoon/elephant/pic_174.jpg 2 -cartoon/elephant/pic_260.jpg 2 -cartoon/elephant/pic_180.jpg 2 -cartoon/elephant/pic_178.jpg 2 -cartoon/elephant/pic_177.jpg 2 -cartoon/elephant/pic_176.jpg 2 -cartoon/elephant/pic_264.jpg 2 -cartoon/elephant/pic_175.jpg 2 -cartoon/elephant/pic_263.jpg 2 -cartoon/elephant/pic_262.jpg 2 -cartoon/elephant/pic_261.jpg 2 -cartoon/elephant/pic_181.jpg 2 -cartoon/elephant/pic_268.jpg 2 -cartoon/elephant/pic_179.jpg 2 -cartoon/elephant/pic_269.jpg 2 -cartoon/elephant/pic_191.jpg 2 -cartoon/elephant/pic_271.jpg 2 -cartoon/elephant/pic_184.jpg 2 -cartoon/elephant/pic_185.jpg 2 -cartoon/elephant/pic_270.jpg 2 -cartoon/elephant/pic_070.jpg 2 -cartoon/elephant/pic_067.jpg 2 -cartoon/elephant/pic_069.jpg 2 -cartoon/elephant/pic_137.jpg 2 -cartoon/elephant/pic_136.jpg 2 -cartoon/elephant/pic_108.jpg 2 -cartoon/elephant/pic_116.jpg 2 -cartoon/elephant/pic_117.jpg 2 -cartoon/elephant/pic_103.jpg 2 -cartoon/elephant/pic_093.jpg 2 -cartoon/elephant/pic_099.jpg 2 -cartoon/elephant/pic_084.jpg 2 -cartoon/elephant/pic_102.jpg 2 -cartoon/elephant/pic_087.jpg 2 -cartoon/elephant/pic_082.jpg 2 -cartoon/elephant/pic_073.jpg 2 -cartoon/elephant/pic_075.jpg 2 -cartoon/elephant/pic_077.jpg 2 -cartoon/elephant/pic_473.jpg 2 -cartoon/elephant/pic_475.jpg 2 -cartoon/elephant/pic_474.jpg 2 -cartoon/elephant/pic_476.jpg 2 -cartoon/elephant/pic_481.jpg 2 -cartoon/elephant/pic_480.jpg 2 -cartoon/elephant/pic_478.jpg 2 -cartoon/elephant/pic_479.jpg 2 -cartoon/elephant/pic_477.jpg 2 -cartoon/elephant/pic_482.jpg 2 -cartoon/elephant/pic_485.jpg 2 -cartoon/elephant/pic_484.jpg 2 -cartoon/elephant/pic_483.jpg 2 -cartoon/elephant/pic_486.jpg 2 -cartoon/elephant/pic_487.jpg 2 -cartoon/elephant/pic_491.jpg 2 -cartoon/elephant/pic_493.jpg 2 -cartoon/elephant/pic_305.jpg 2 -cartoon/elephant/pic_307.jpg 2 -cartoon/elephant/pic_311.jpg 2 -cartoon/elephant/pic_308.jpg 2 -cartoon/elephant/pic_312.jpg 2 -cartoon/elephant/pic_310.jpg 2 -cartoon/elephant/pic_313.jpg 2 -cartoon/elephant/pic_309.jpg 2 -cartoon/elephant/pic_314.jpg 2 -cartoon/elephant/pic_316.jpg 2 -cartoon/elephant/pic_319.jpg 2 -cartoon/elephant/pic_318.jpg 2 -cartoon/elephant/pic_322.jpg 2 -cartoon/elephant/pic_320.jpg 2 -cartoon/elephant/pic_324.jpg 2 -cartoon/elephant/pic_323.jpg 2 -cartoon/elephant/pic_327.jpg 2 -cartoon/elephant/pic_326.jpg 2 -cartoon/elephant/pic_114.jpg 2 -cartoon/elephant/pic_146.jpg 2 -cartoon/elephant/pic_131.jpg 2 -cartoon/elephant/pic_132.jpg 2 -cartoon/elephant/pic_213.jpg 2 -cartoon/elephant/pic_210.jpg 2 -cartoon/elephant/pic_186.jpg 2 -cartoon/elephant/pic_188.jpg 2 -cartoon/elephant/pic_214.jpg 2 -cartoon/elephant/pic_152.jpg 2 -cartoon/elephant/pic_119.jpg 2 -cartoon/elephant/pic_133.jpg 2 -cartoon/elephant/pic_139.jpg 2 -cartoon/elephant/pic_212.jpg 2 -cartoon/elephant/pic_209.jpg 2 -cartoon/elephant/pic_126.jpg 2 -cartoon/elephant/pic_130.jpg 2 -cartoon/elephant/pic_187.jpg 2 -cartoon/elephant/pic_159.jpg 2 -cartoon/elephant/pic_462.jpg 2 -cartoon/elephant/pic_463.jpg 2 -cartoon/elephant/pic_460.jpg 2 -cartoon/elephant/pic_461.jpg 2 -cartoon/elephant/pic_458.jpg 2 -cartoon/elephant/pic_456.jpg 2 -cartoon/elephant/pic_454.jpg 2 -cartoon/elephant/pic_453.jpg 2 -cartoon/elephant/pic_452.jpg 2 -cartoon/elephant/pic_450.jpg 2 -cartoon/elephant/pic_468.jpg 2 -cartoon/elephant/pic_459.jpg 2 -cartoon/elephant/pic_455.jpg 2 -cartoon/elephant/pic_457.jpg 2 -cartoon/elephant/pic_466.jpg 2 -cartoon/elephant/pic_465.jpg 2 -cartoon/elephant/pic_471.jpg 2 -cartoon/elephant/pic_469.jpg 2 -cartoon/elephant/pic_496.jpg 2 -cartoon/elephant/pic_495.jpg 2 -cartoon/elephant/pic_497.jpg 2 -cartoon/elephant/pic_498.jpg 2 -cartoon/elephant/pic_499.jpg 2 -cartoon/elephant/pic_502.jpg 2 -cartoon/elephant/pic_504.jpg 2 -cartoon/elephant/pic_501.jpg 2 -cartoon/elephant/pic_505.jpg 2 -cartoon/elephant/pic_245.jpg 2 -cartoon/elephant/pic_246.jpg 2 -cartoon/elephant/pic_253.jpg 2 -cartoon/elephant/pic_299.jpg 2 -cartoon/elephant/pic_278.jpg 2 -cartoon/elephant/pic_288.jpg 2 -cartoon/elephant/pic_304.jpg 2 -cartoon/elephant/pic_303.jpg 2 -cartoon/elephant/pic_266.jpg 2 -cartoon/elephant/pic_265.jpg 2 -cartoon/elephant/pic_256.jpg 2 -cartoon/elephant/pic_254.jpg 2 -cartoon/elephant/pic_255.jpg 2 -cartoon/elephant/pic_306.jpg 2 -cartoon/elephant/pic_293.jpg 2 -cartoon/elephant/pic_302.jpg 2 -cartoon/elephant/pic_301.jpg 2 -cartoon/elephant/pic_300.jpg 2 -cartoon/elephant/pic_138.jpg 2 -cartoon/elephant/pic_125.jpg 2 -cartoon/elephant/pic_112.jpg 2 -cartoon/elephant/pic_144.jpg 2 -cartoon/elephant/pic_101.jpg 2 -cartoon/elephant/pic_122.jpg 2 -cartoon/elephant/pic_120.jpg 2 -cartoon/elephant/pic_105.jpg 2 -cartoon/elephant/pic_189.jpg 2 -cartoon/elephant/pic_141.jpg 2 -cartoon/elephant/pic_143.jpg 2 -cartoon/elephant/pic_160.jpg 2 -cartoon/elephant/pic_113.jpg 2 -cartoon/elephant/pic_145.jpg 2 -cartoon/elephant/pic_109.jpg 2 -cartoon/elephant/pic_148.jpg 2 -cartoon/elephant/pic_128.jpg 2 -cartoon/elephant/pic_127.jpg 2 -cartoon/elephant/pic_150.jpg 2 -cartoon/elephant/pic_124.jpg 2 -cartoon/giraffe/pic_005.jpg 3 -cartoon/giraffe/pic_006.jpg 3 -cartoon/giraffe/pic_007.jpg 3 -cartoon/giraffe/pic_008.jpg 3 -cartoon/giraffe/pic_009.jpg 3 -cartoon/giraffe/pic_010.jpg 3 -cartoon/giraffe/pic_011.jpg 3 -cartoon/giraffe/pic_012.jpg 3 -cartoon/giraffe/pic_013.jpg 3 -cartoon/giraffe/pic_014.jpg 3 -cartoon/giraffe/pic_015.jpg 3 -cartoon/giraffe/pic_016.jpg 3 -cartoon/giraffe/pic_017.jpg 3 -cartoon/giraffe/pic_018.jpg 3 -cartoon/giraffe/pic_019.jpg 3 -cartoon/giraffe/pic_020.jpg 3 -cartoon/giraffe/pic_022.jpg 3 -cartoon/giraffe/pic_025.jpg 3 -cartoon/giraffe/pic_024.jpg 3 -cartoon/giraffe/pic_091.jpg 3 -cartoon/giraffe/pic_090.jpg 3 -cartoon/giraffe/pic_087.jpg 3 -cartoon/giraffe/pic_086.jpg 3 -cartoon/giraffe/pic_085.jpg 3 -cartoon/giraffe/pic_095.jpg 3 -cartoon/giraffe/pic_096.jpg 3 -cartoon/giraffe/pic_093.jpg 3 -cartoon/giraffe/pic_094.jpg 3 -cartoon/giraffe/pic_106.jpg 3 -cartoon/giraffe/pic_108.jpg 3 -cartoon/giraffe/pic_104.jpg 3 -cartoon/giraffe/pic_103.jpg 3 -cartoon/giraffe/pic_101.jpg 3 -cartoon/giraffe/pic_100.jpg 3 -cartoon/giraffe/pic_099.jpg 3 -cartoon/giraffe/pic_098.jpg 3 -cartoon/giraffe/pic_097.jpg 3 -cartoon/giraffe/pic_107.jpg 3 -cartoon/giraffe/pic_109.jpg 3 -cartoon/giraffe/pic_285.jpg 3 -cartoon/giraffe/pic_282.jpg 3 -cartoon/giraffe/pic_284.jpg 3 -cartoon/giraffe/pic_287.jpg 3 -cartoon/giraffe/pic_286.jpg 3 -cartoon/giraffe/pic_298.jpg 3 -cartoon/giraffe/pic_296.jpg 3 -cartoon/giraffe/pic_294.jpg 3 -cartoon/giraffe/pic_293.jpg 3 -cartoon/giraffe/pic_292.jpg 3 -cartoon/giraffe/pic_290.jpg 3 -cartoon/giraffe/pic_288.jpg 3 -cartoon/giraffe/pic_291.jpg 3 -cartoon/giraffe/pic_320.jpg 3 -cartoon/giraffe/pic_313.jpg 3 -cartoon/giraffe/pic_305.jpg 3 -cartoon/giraffe/pic_307.jpg 3 -cartoon/giraffe/pic_306.jpg 3 -cartoon/giraffe/pic_303.jpg 3 -cartoon/giraffe/pic_152.jpg 3 -cartoon/giraffe/pic_153.jpg 3 -cartoon/giraffe/pic_151.jpg 3 -cartoon/giraffe/pic_155.jpg 3 -cartoon/giraffe/pic_156.jpg 3 -cartoon/giraffe/pic_157.jpg 3 -cartoon/giraffe/pic_159.jpg 3 -cartoon/giraffe/pic_160.jpg 3 -cartoon/giraffe/pic_161.jpg 3 -cartoon/giraffe/pic_162.jpg 3 -cartoon/giraffe/pic_158.jpg 3 -cartoon/giraffe/pic_163.jpg 3 -cartoon/giraffe/pic_164.jpg 3 -cartoon/giraffe/pic_165.jpg 3 -cartoon/giraffe/pic_166.jpg 3 -cartoon/giraffe/pic_167.jpg 3 -cartoon/giraffe/pic_168.jpg 3 -cartoon/giraffe/pic_170.jpg 3 -cartoon/giraffe/pic_369.jpg 3 -cartoon/giraffe/pic_368.jpg 3 -cartoon/giraffe/pic_367.jpg 3 -cartoon/giraffe/pic_365.jpg 3 -cartoon/giraffe/pic_364.jpg 3 -cartoon/giraffe/pic_363.jpg 3 -cartoon/giraffe/pic_373.jpg 3 -cartoon/giraffe/pic_370.jpg 3 -cartoon/giraffe/pic_376.jpg 3 -cartoon/giraffe/pic_375.jpg 3 -cartoon/giraffe/pic_377.jpg 3 -cartoon/giraffe/pic_379.jpg 3 -cartoon/giraffe/pic_381.jpg 3 -cartoon/giraffe/pic_382.jpg 3 -cartoon/giraffe/pic_380.jpg 3 -cartoon/giraffe/pic_383.jpg 3 -cartoon/giraffe/pic_385.jpg 3 -cartoon/giraffe/pic_384.jpg 3 -cartoon/giraffe/pic_386.jpg 3 -cartoon/giraffe/pic_031.jpg 3 -cartoon/giraffe/pic_030.jpg 3 -cartoon/giraffe/pic_029.jpg 3 -cartoon/giraffe/pic_027.jpg 3 -cartoon/giraffe/pic_023.jpg 3 -cartoon/giraffe/pic_026.jpg 3 -cartoon/giraffe/pic_033.jpg 3 -cartoon/giraffe/pic_028.jpg 3 -cartoon/giraffe/pic_032.jpg 3 -cartoon/giraffe/pic_043.jpg 3 -cartoon/giraffe/pic_042.jpg 3 -cartoon/giraffe/pic_041.jpg 3 -cartoon/giraffe/pic_039.jpg 3 -cartoon/giraffe/pic_038.jpg 3 -cartoon/giraffe/pic_036.jpg 3 -cartoon/giraffe/pic_035.jpg 3 -cartoon/giraffe/pic_037.jpg 3 -cartoon/giraffe/pic_040.jpg 3 -cartoon/giraffe/pic_051.jpg 3 -cartoon/giraffe/pic_050.jpg 3 -cartoon/giraffe/pic_048.jpg 3 -cartoon/giraffe/pic_047.jpg 3 -cartoon/giraffe/pic_045.jpg 3 -cartoon/giraffe/pic_044.jpg 3 -cartoon/giraffe/pic_053.jpg 3 -cartoon/giraffe/pic_052.jpg 3 -cartoon/giraffe/pic_054.jpg 3 -cartoon/giraffe/pic_056.jpg 3 -cartoon/giraffe/pic_055.jpg 3 -cartoon/giraffe/pic_057.jpg 3 -cartoon/giraffe/pic_059.jpg 3 -cartoon/giraffe/pic_060.jpg 3 -cartoon/giraffe/pic_058.jpg 3 -cartoon/giraffe/pic_062.jpg 3 -cartoon/giraffe/pic_061.jpg 3 -cartoon/giraffe/pic_067.jpg 3 -cartoon/giraffe/pic_064.jpg 3 -cartoon/giraffe/pic_065.jpg 3 -cartoon/giraffe/pic_066.jpg 3 -cartoon/giraffe/pic_233.jpg 3 -cartoon/giraffe/pic_235.jpg 3 -cartoon/giraffe/pic_236.jpg 3 -cartoon/giraffe/pic_238.jpg 3 -cartoon/giraffe/pic_237.jpg 3 -cartoon/giraffe/pic_239.jpg 3 -cartoon/giraffe/pic_130.jpg 3 -cartoon/giraffe/pic_131.jpg 3 -cartoon/giraffe/pic_134.jpg 3 -cartoon/giraffe/pic_133.jpg 3 -cartoon/giraffe/pic_132.jpg 3 -cartoon/giraffe/pic_136.jpg 3 -cartoon/giraffe/pic_138.jpg 3 -cartoon/giraffe/pic_139.jpg 3 -cartoon/giraffe/pic_141.jpg 3 -cartoon/giraffe/pic_143.jpg 3 -cartoon/giraffe/pic_145.jpg 3 -cartoon/giraffe/pic_147.jpg 3 -cartoon/giraffe/pic_144.jpg 3 -cartoon/giraffe/pic_146.jpg 3 -cartoon/giraffe/pic_149.jpg 3 -cartoon/giraffe/pic_148.jpg 3 -cartoon/giraffe/pic_343.jpg 3 -cartoon/giraffe/pic_346.jpg 3 -cartoon/giraffe/pic_352.jpg 3 -cartoon/giraffe/pic_355.jpg 3 -cartoon/giraffe/pic_354.jpg 3 -cartoon/giraffe/pic_351.jpg 3 -cartoon/giraffe/pic_350.jpg 3 -cartoon/giraffe/pic_353.jpg 3 -cartoon/giraffe/pic_349.jpg 3 -cartoon/giraffe/pic_359.jpg 3 -cartoon/giraffe/pic_360.jpg 3 -cartoon/giraffe/pic_361.jpg 3 -cartoon/giraffe/pic_358.jpg 3 -cartoon/giraffe/pic_356.jpg 3 -cartoon/giraffe/pic_374.jpg 3 -cartoon/giraffe/pic_372.jpg 3 -cartoon/giraffe/pic_371.jpg 3 -cartoon/giraffe/pic_174.jpg 3 -cartoon/giraffe/pic_172.jpg 3 -cartoon/giraffe/pic_173.jpg 3 -cartoon/giraffe/pic_177.jpg 3 -cartoon/giraffe/pic_175.jpg 3 -cartoon/giraffe/pic_176.jpg 3 -cartoon/giraffe/pic_178.jpg 3 -cartoon/giraffe/pic_179.jpg 3 -cartoon/giraffe/pic_180.jpg 3 -cartoon/giraffe/pic_181.jpg 3 -cartoon/giraffe/pic_182.jpg 3 -cartoon/giraffe/pic_185.jpg 3 -cartoon/giraffe/pic_183.jpg 3 -cartoon/giraffe/pic_186.jpg 3 -cartoon/giraffe/pic_187.jpg 3 -cartoon/giraffe/pic_188.jpg 3 -cartoon/giraffe/pic_189.jpg 3 -cartoon/giraffe/pic_190.jpg 3 -cartoon/giraffe/pic_192.jpg 3 -cartoon/giraffe/pic_262.jpg 3 -cartoon/giraffe/pic_265.jpg 3 -cartoon/giraffe/pic_266.jpg 3 -cartoon/giraffe/pic_264.jpg 3 -cartoon/giraffe/pic_267.jpg 3 -cartoon/giraffe/pic_268.jpg 3 -cartoon/giraffe/pic_269.jpg 3 -cartoon/giraffe/pic_270.jpg 3 -cartoon/giraffe/pic_272.jpg 3 -cartoon/giraffe/pic_271.jpg 3 -cartoon/giraffe/pic_275.jpg 3 -cartoon/giraffe/pic_274.jpg 3 -cartoon/giraffe/pic_273.jpg 3 -cartoon/giraffe/pic_276.jpg 3 -cartoon/giraffe/pic_279.jpg 3 -cartoon/giraffe/pic_277.jpg 3 -cartoon/giraffe/pic_278.jpg 3 -cartoon/giraffe/pic_280.jpg 3 -cartoon/giraffe/pic_063.jpg 3 -cartoon/giraffe/pic_068.jpg 3 -cartoon/giraffe/pic_080.jpg 3 -cartoon/giraffe/pic_082.jpg 3 -cartoon/giraffe/pic_079.jpg 3 -cartoon/giraffe/pic_077.jpg 3 -cartoon/giraffe/pic_078.jpg 3 -cartoon/giraffe/pic_074.jpg 3 -cartoon/giraffe/pic_075.jpg 3 -cartoon/giraffe/pic_073.jpg 3 -cartoon/giraffe/pic_072.jpg 3 -cartoon/giraffe/pic_071.jpg 3 -cartoon/giraffe/pic_069.jpg 3 -cartoon/giraffe/pic_083.jpg 3 -cartoon/giraffe/pic_084.jpg 3 -cartoon/giraffe/pic_076.jpg 3 -cartoon/giraffe/pic_089.jpg 3 -cartoon/giraffe/pic_088.jpg 3 -cartoon/giraffe/pic_194.jpg 3 -cartoon/giraffe/pic_193.jpg 3 -cartoon/giraffe/pic_195.jpg 3 -cartoon/giraffe/pic_196.jpg 3 -cartoon/giraffe/pic_197.jpg 3 -cartoon/giraffe/pic_198.jpg 3 -cartoon/giraffe/pic_199.jpg 3 -cartoon/giraffe/pic_200.jpg 3 -cartoon/giraffe/pic_201.jpg 3 -cartoon/giraffe/pic_202.jpg 3 -cartoon/giraffe/pic_203.jpg 3 -cartoon/giraffe/pic_204.jpg 3 -cartoon/giraffe/pic_205.jpg 3 -cartoon/giraffe/pic_206.jpg 3 -cartoon/giraffe/pic_209.jpg 3 -cartoon/giraffe/pic_208.jpg 3 -cartoon/giraffe/pic_210.jpg 3 -cartoon/giraffe/pic_212.jpg 3 -cartoon/giraffe/pic_211.jpg 3 -cartoon/giraffe/pic_216.jpg 3 -cartoon/giraffe/pic_102.jpg 3 -cartoon/giraffe/pic_105.jpg 3 -cartoon/giraffe/pic_121.jpg 3 -cartoon/giraffe/pic_124.jpg 3 -cartoon/giraffe/pic_122.jpg 3 -cartoon/giraffe/pic_119.jpg 3 -cartoon/giraffe/pic_118.jpg 3 -cartoon/giraffe/pic_117.jpg 3 -cartoon/giraffe/pic_115.jpg 3 -cartoon/giraffe/pic_116.jpg 3 -cartoon/giraffe/pic_114.jpg 3 -cartoon/giraffe/pic_112.jpg 3 -cartoon/giraffe/pic_111.jpg 3 -cartoon/giraffe/pic_123.jpg 3 -cartoon/giraffe/pic_113.jpg 3 -cartoon/giraffe/pic_120.jpg 3 -cartoon/giraffe/pic_127.jpg 3 -cartoon/giraffe/pic_126.jpg 3 -cartoon/giraffe/pic_125.jpg 3 -cartoon/giraffe/pic_129.jpg 3 -cartoon/giraffe/pic_128.jpg 3 -cartoon/giraffe/pic_001.jpg 3 -cartoon/giraffe/pic_002.jpg 3 -cartoon/giraffe/pic_003.jpg 3 -cartoon/giraffe/pic_004.jpg 3 -cartoon/giraffe/pic_215.jpg 3 -cartoon/giraffe/pic_214.jpg 3 -cartoon/giraffe/pic_213.jpg 3 -cartoon/giraffe/pic_218.jpg 3 -cartoon/giraffe/pic_219.jpg 3 -cartoon/giraffe/pic_217.jpg 3 -cartoon/giraffe/pic_220.jpg 3 -cartoon/giraffe/pic_221.jpg 3 -cartoon/giraffe/pic_222.jpg 3 -cartoon/giraffe/pic_224.jpg 3 -cartoon/giraffe/pic_225.jpg 3 -cartoon/giraffe/pic_226.jpg 3 -cartoon/giraffe/pic_227.jpg 3 -cartoon/giraffe/pic_228.jpg 3 -cartoon/giraffe/pic_229.jpg 3 -cartoon/giraffe/pic_230.jpg 3 -cartoon/giraffe/pic_231.jpg 3 -cartoon/giraffe/pic_232.jpg 3 -cartoon/giraffe/pic_344.jpg 3 -cartoon/giraffe/pic_345.jpg 3 -cartoon/giraffe/pic_342.jpg 3 -cartoon/giraffe/pic_334.jpg 3 -cartoon/giraffe/pic_335.jpg 3 -cartoon/giraffe/pic_327.jpg 3 -cartoon/giraffe/pic_330.jpg 3 -cartoon/giraffe/pic_333.jpg 3 -cartoon/giraffe/pic_328.jpg 3 -cartoon/giraffe/pic_331.jpg 3 -cartoon/giraffe/pic_326.jpg 3 -cartoon/giraffe/pic_324.jpg 3 -cartoon/giraffe/pic_323.jpg 3 -cartoon/giraffe/pic_347.jpg 3 -cartoon/giraffe/pic_341.jpg 3 -cartoon/giraffe/pic_336.jpg 3 -cartoon/giraffe/pic_339.jpg 3 -cartoon/giraffe/pic_337.jpg 3 -cartoon/giraffe/pic_304.jpg 3 -cartoon/giraffe/pic_302.jpg 3 -cartoon/giraffe/pic_297.jpg 3 -cartoon/giraffe/pic_295.jpg 3 -cartoon/giraffe/pic_299.jpg 3 -cartoon/giraffe/pic_316.jpg 3 -cartoon/giraffe/pic_312.jpg 3 -cartoon/giraffe/pic_318.jpg 3 -cartoon/giraffe/pic_319.jpg 3 -cartoon/giraffe/pic_308.jpg 3 -cartoon/giraffe/pic_310.jpg 3 -cartoon/giraffe/pic_309.jpg 3 -cartoon/giraffe/pic_301.jpg 3 -cartoon/giraffe/pic_311.jpg 3 -cartoon/giraffe/pic_322.jpg 3 -cartoon/giraffe/pic_321.jpg 3 -cartoon/giraffe/pic_300.jpg 3 -cartoon/giraffe/pic_317.jpg 3 -cartoon/giraffe/pic_340.jpg 3 -cartoon/giraffe/pic_242.jpg 3 -cartoon/giraffe/pic_241.jpg 3 -cartoon/giraffe/pic_243.jpg 3 -cartoon/giraffe/pic_244.jpg 3 -cartoon/giraffe/pic_245.jpg 3 -cartoon/giraffe/pic_246.jpg 3 -cartoon/giraffe/pic_247.jpg 3 -cartoon/giraffe/pic_249.jpg 3 -cartoon/giraffe/pic_248.jpg 3 -cartoon/giraffe/pic_251.jpg 3 -cartoon/giraffe/pic_252.jpg 3 -cartoon/giraffe/pic_253.jpg 3 -cartoon/giraffe/pic_254.jpg 3 -cartoon/giraffe/pic_256.jpg 3 -cartoon/giraffe/pic_257.jpg 3 -cartoon/giraffe/pic_259.jpg 3 -cartoon/giraffe/pic_260.jpg 3 -cartoon/giraffe/pic_261.jpg 3 -cartoon/guitar/pic_072.jpg 4 -cartoon/guitar/pic_003.jpg 4 -cartoon/guitar/pic_004.jpg 4 -cartoon/guitar/pic_005.jpg 4 -cartoon/guitar/pic_006.jpg 4 -cartoon/guitar/pic_007.jpg 4 -cartoon/guitar/pic_009.jpg 4 -cartoon/guitar/pic_010.jpg 4 -cartoon/guitar/pic_011.jpg 4 -cartoon/guitar/pic_012.jpg 4 -cartoon/guitar/pic_013.jpg 4 -cartoon/guitar/pic_016.jpg 4 -cartoon/guitar/pic_017.jpg 4 -cartoon/guitar/pic_020.jpg 4 -cartoon/guitar/pic_019.jpg 4 -cartoon/guitar/pic_022.jpg 4 -cartoon/guitar/pic_028.jpg 4 -cartoon/guitar/pic_025.jpg 4 -cartoon/guitar/pic_069.jpg 4 -cartoon/guitar/pic_067.jpg 4 -cartoon/guitar/pic_068.jpg 4 -cartoon/guitar/pic_063.jpg 4 -cartoon/guitar/pic_066.jpg 4 -cartoon/guitar/pic_064.jpg 4 -cartoon/guitar/pic_071.jpg 4 -cartoon/guitar/pic_070.jpg 4 -cartoon/guitar/pic_076.jpg 4 -cartoon/guitar/pic_074.jpg 4 -cartoon/guitar/pic_077.jpg 4 -cartoon/guitar/pic_075.jpg 4 -cartoon/guitar/pic_079.jpg 4 -cartoon/guitar/pic_078.jpg 4 -cartoon/guitar/pic_112.jpg 4 -cartoon/guitar/pic_135.jpg 4 -cartoon/guitar/pic_151.jpg 4 -cartoon/guitar/pic_133.jpg 4 -cartoon/guitar/pic_128.jpg 4 -cartoon/guitar/pic_122.jpg 4 -cartoon/guitar/pic_024.jpg 4 -cartoon/guitar/pic_023.jpg 4 -cartoon/guitar/pic_027.jpg 4 -cartoon/guitar/pic_034.jpg 4 -cartoon/guitar/pic_032.jpg 4 -cartoon/guitar/pic_031.jpg 4 -cartoon/guitar/pic_030.jpg 4 -cartoon/guitar/pic_029.jpg 4 -cartoon/guitar/pic_037.jpg 4 -cartoon/guitar/pic_036.jpg 4 -cartoon/guitar/pic_038.jpg 4 -cartoon/guitar/pic_040.jpg 4 -cartoon/guitar/pic_048.jpg 4 -cartoon/guitar/pic_045.jpg 4 -cartoon/guitar/pic_044.jpg 4 -cartoon/guitar/pic_043.jpg 4 -cartoon/guitar/pic_042.jpg 4 -cartoon/guitar/pic_021.jpg 4 -cartoon/guitar/pic_018.jpg 4 -cartoon/guitar/pic_039.jpg 4 -cartoon/guitar/pic_026.jpg 4 -cartoon/guitar/pic_104.jpg 4 -cartoon/guitar/pic_098.jpg 4 -cartoon/guitar/pic_146.jpg 4 -cartoon/guitar/pic_131.jpg 4 -cartoon/guitar/pic_106.jpg 4 -cartoon/guitar/pic_124.jpg 4 -cartoon/guitar/pic_137.jpg 4 -cartoon/guitar/pic_092.jpg 4 -cartoon/guitar/pic_096.jpg 4 -cartoon/guitar/pic_086.jpg 4 -cartoon/guitar/pic_145.jpg 4 -cartoon/guitar/pic_123.jpg 4 -cartoon/guitar/pic_111.jpg 4 -cartoon/guitar/pic_116.jpg 4 -cartoon/guitar/pic_150.jpg 4 -cartoon/guitar/pic_113.jpg 4 -cartoon/guitar/pic_107.jpg 4 -cartoon/guitar/pic_103.jpg 4 -cartoon/guitar/pic_097.jpg 4 -cartoon/guitar/pic_090.jpg 4 -cartoon/guitar/pic_088.jpg 4 -cartoon/guitar/pic_085.jpg 4 -cartoon/guitar/pic_083.jpg 4 -cartoon/guitar/pic_084.jpg 4 -cartoon/guitar/pic_082.jpg 4 -cartoon/guitar/pic_081.jpg 4 -cartoon/guitar/pic_080.jpg 4 -cartoon/guitar/pic_139.jpg 4 -cartoon/guitar/pic_140.jpg 4 -cartoon/guitar/pic_125.jpg 4 -cartoon/guitar/pic_117.jpg 4 -cartoon/guitar/pic_033.jpg 4 -cartoon/guitar/pic_035.jpg 4 -cartoon/guitar/pic_047.jpg 4 -cartoon/guitar/pic_046.jpg 4 -cartoon/guitar/pic_049.jpg 4 -cartoon/guitar/pic_052.jpg 4 -cartoon/guitar/pic_051.jpg 4 -cartoon/guitar/pic_053.jpg 4 -cartoon/guitar/pic_050.jpg 4 -cartoon/guitar/pic_054.jpg 4 -cartoon/guitar/pic_056.jpg 4 -cartoon/guitar/pic_055.jpg 4 -cartoon/guitar/pic_057.jpg 4 -cartoon/guitar/pic_060.jpg 4 -cartoon/guitar/pic_058.jpg 4 -cartoon/guitar/pic_059.jpg 4 -cartoon/guitar/pic_061.jpg 4 -cartoon/guitar/pic_065.jpg 4 -cartoon/guitar/pic_062.jpg 4 -cartoon/guitar/pic_073.jpg 4 -cartoon/guitar/pic_105.jpg 4 -cartoon/guitar/pic_136.jpg 4 -cartoon/guitar/pic_129.jpg 4 -cartoon/guitar/pic_110.jpg 4 -cartoon/guitar/pic_142.jpg 4 -cartoon/guitar/pic_089.jpg 4 -cartoon/guitar/pic_127.jpg 4 -cartoon/guitar/pic_148.jpg 4 -cartoon/guitar/pic_093.jpg 4 -cartoon/guitar/pic_100.jpg 4 -cartoon/guitar/pic_144.jpg 4 -cartoon/guitar/pic_149.jpg 4 -cartoon/guitar/pic_119.jpg 4 -cartoon/guitar/pic_121.jpg 4 -cartoon/guitar/pic_130.jpg 4 -cartoon/guitar/pic_094.jpg 4 -cartoon/guitar/pic_147.jpg 4 -cartoon/guitar/pic_099.jpg 4 -cartoon/guitar/pic_101.jpg 4 -cartoon/guitar/pic_132.jpg 4 -cartoon/guitar/pic_152.jpg 4 -cartoon/guitar/pic_134.jpg 4 -cartoon/guitar/pic_118.jpg 4 -cartoon/guitar/pic_001.jpg 4 -cartoon/guitar/pic_002.jpg 4 -cartoon/horse/pic_329.jpg 5 -cartoon/horse/pic_317.jpg 5 -cartoon/horse/pic_331.jpg 5 -cartoon/horse/pic_333.jpg 5 -cartoon/horse/pic_332.jpg 5 -cartoon/horse/pic_334.jpg 5 -cartoon/horse/pic_324.jpg 5 -cartoon/horse/pic_318.jpg 5 -cartoon/horse/pic_338.jpg 5 -cartoon/horse/pic_337.jpg 5 -cartoon/horse/pic_341.jpg 5 -cartoon/horse/pic_340.jpg 5 -cartoon/horse/pic_335.jpg 5 -cartoon/horse/pic_342.jpg 5 -cartoon/horse/pic_347.jpg 5 -cartoon/horse/pic_346.jpg 5 -cartoon/horse/pic_343.jpg 5 -cartoon/horse/pic_336.jpg 5 -cartoon/horse/pic_348.jpg 5 -cartoon/horse/pic_339.jpg 5 -cartoon/horse/pic_349.jpg 5 -cartoon/horse/pic_139.jpg 5 -cartoon/horse/pic_132.jpg 5 -cartoon/horse/pic_141.jpg 5 -cartoon/horse/pic_133.jpg 5 -cartoon/horse/pic_162.jpg 5 -cartoon/horse/pic_155.jpg 5 -cartoon/horse/pic_159.jpg 5 -cartoon/horse/pic_156.jpg 5 -cartoon/horse/pic_151.jpg 5 -cartoon/horse/pic_149.jpg 5 -cartoon/horse/pic_147.jpg 5 -cartoon/horse/pic_161.jpg 5 -cartoon/horse/pic_153.jpg 5 -cartoon/horse/pic_158.jpg 5 -cartoon/horse/pic_157.jpg 5 -cartoon/horse/pic_010.jpg 5 -cartoon/horse/pic_011.jpg 5 -cartoon/horse/pic_012.jpg 5 -cartoon/horse/pic_013.jpg 5 -cartoon/horse/pic_014.jpg 5 -cartoon/horse/pic_015.jpg 5 -cartoon/horse/pic_016.jpg 5 -cartoon/horse/pic_017.jpg 5 -cartoon/horse/pic_018.jpg 5 -cartoon/horse/pic_019.jpg 5 -cartoon/horse/pic_020.jpg 5 -cartoon/horse/pic_022.jpg 5 -cartoon/horse/pic_021.jpg 5 -cartoon/horse/pic_023.jpg 5 -cartoon/horse/pic_024.jpg 5 -cartoon/horse/pic_025.jpg 5 -cartoon/horse/pic_026.jpg 5 -cartoon/horse/pic_027.jpg 5 -cartoon/horse/pic_028.jpg 5 -cartoon/horse/pic_029.jpg 5 -cartoon/horse/pic_030.jpg 5 -cartoon/horse/pic_267.jpg 5 -cartoon/horse/pic_266.jpg 5 -cartoon/horse/pic_271.jpg 5 -cartoon/horse/pic_270.jpg 5 -cartoon/horse/pic_261.jpg 5 -cartoon/horse/pic_273.jpg 5 -cartoon/horse/pic_272.jpg 5 -cartoon/horse/pic_274.jpg 5 -cartoon/horse/pic_275.jpg 5 -cartoon/horse/pic_277.jpg 5 -cartoon/horse/pic_276.jpg 5 -cartoon/horse/pic_278.jpg 5 -cartoon/horse/pic_279.jpg 5 -cartoon/horse/pic_283.jpg 5 -cartoon/horse/pic_284.jpg 5 -cartoon/horse/pic_287.jpg 5 -cartoon/horse/pic_286.jpg 5 -cartoon/horse/pic_288.jpg 5 -cartoon/horse/pic_289.jpg 5 -cartoon/horse/pic_062.jpg 5 -cartoon/horse/pic_067.jpg 5 -cartoon/horse/pic_064.jpg 5 -cartoon/horse/pic_059.jpg 5 -cartoon/horse/pic_057.jpg 5 -cartoon/horse/pic_056.jpg 5 -cartoon/horse/pic_031.jpg 5 -cartoon/horse/pic_032.jpg 5 -cartoon/horse/pic_033.jpg 5 -cartoon/horse/pic_307.jpg 5 -cartoon/horse/pic_309.jpg 5 -cartoon/horse/pic_299.jpg 5 -cartoon/horse/pic_311.jpg 5 -cartoon/horse/pic_312.jpg 5 -cartoon/horse/pic_313.jpg 5 -cartoon/horse/pic_314.jpg 5 -cartoon/horse/pic_315.jpg 5 -cartoon/horse/pic_316.jpg 5 -cartoon/horse/pic_319.jpg 5 -cartoon/horse/pic_310.jpg 5 -cartoon/horse/pic_323.jpg 5 -cartoon/horse/pic_322.jpg 5 -cartoon/horse/pic_320.jpg 5 -cartoon/horse/pic_328.jpg 5 -cartoon/horse/pic_327.jpg 5 -cartoon/horse/pic_330.jpg 5 -cartoon/horse/pic_089.jpg 5 -cartoon/horse/pic_118.jpg 5 -cartoon/horse/pic_114.jpg 5 -cartoon/horse/pic_113.jpg 5 -cartoon/horse/pic_112.jpg 5 -cartoon/horse/pic_103.jpg 5 -cartoon/horse/pic_105.jpg 5 -cartoon/horse/pic_104.jpg 5 -cartoon/horse/pic_100.jpg 5 -cartoon/horse/pic_101.jpg 5 -cartoon/horse/pic_119.jpg 5 -cartoon/horse/pic_115.jpg 5 -cartoon/horse/pic_110.jpg 5 -cartoon/horse/pic_126.jpg 5 -cartoon/horse/pic_106.jpg 5 -cartoon/horse/pic_120.jpg 5 -cartoon/horse/pic_054.jpg 5 -cartoon/horse/pic_055.jpg 5 -cartoon/horse/pic_053.jpg 5 -cartoon/horse/pic_052.jpg 5 -cartoon/horse/pic_051.jpg 5 -cartoon/horse/pic_050.jpg 5 -cartoon/horse/pic_049.jpg 5 -cartoon/horse/pic_076.jpg 5 -cartoon/horse/pic_066.jpg 5 -cartoon/horse/pic_081.jpg 5 -cartoon/horse/pic_079.jpg 5 -cartoon/horse/pic_060.jpg 5 -cartoon/horse/pic_058.jpg 5 -cartoon/horse/pic_069.jpg 5 -cartoon/horse/pic_074.jpg 5 -cartoon/horse/pic_065.jpg 5 -cartoon/horse/pic_075.jpg 5 -cartoon/horse/pic_078.jpg 5 -cartoon/horse/pic_070.jpg 5 -cartoon/horse/pic_072.jpg 5 -cartoon/horse/pic_291.jpg 5 -cartoon/horse/pic_282.jpg 5 -cartoon/horse/pic_293.jpg 5 -cartoon/horse/pic_294.jpg 5 -cartoon/horse/pic_295.jpg 5 -cartoon/horse/pic_297.jpg 5 -cartoon/horse/pic_268.jpg 5 -cartoon/horse/pic_296.jpg 5 -cartoon/horse/pic_298.jpg 5 -cartoon/horse/pic_300.jpg 5 -cartoon/horse/pic_302.jpg 5 -cartoon/horse/pic_280.jpg 5 -cartoon/horse/pic_304.jpg 5 -cartoon/horse/pic_303.jpg 5 -cartoon/horse/pic_305.jpg 5 -cartoon/horse/pic_308.jpg 5 -cartoon/horse/pic_183.jpg 5 -cartoon/horse/pic_184.jpg 5 -cartoon/horse/pic_185.jpg 5 -cartoon/horse/pic_188.jpg 5 -cartoon/horse/pic_186.jpg 5 -cartoon/horse/pic_187.jpg 5 -cartoon/horse/pic_189.jpg 5 -cartoon/horse/pic_178.jpg 5 -cartoon/horse/pic_191.jpg 5 -cartoon/horse/pic_193.jpg 5 -cartoon/horse/pic_190.jpg 5 -cartoon/horse/pic_200.jpg 5 -cartoon/horse/pic_196.jpg 5 -cartoon/horse/pic_195.jpg 5 -cartoon/horse/pic_201.jpg 5 -cartoon/horse/pic_198.jpg 5 -cartoon/horse/pic_204.jpg 5 -cartoon/horse/pic_245.jpg 5 -cartoon/horse/pic_250.jpg 5 -cartoon/horse/pic_252.jpg 5 -cartoon/horse/pic_255.jpg 5 -cartoon/horse/pic_254.jpg 5 -cartoon/horse/pic_235.jpg 5 -cartoon/horse/pic_256.jpg 5 -cartoon/horse/pic_258.jpg 5 -cartoon/horse/pic_257.jpg 5 -cartoon/horse/pic_253.jpg 5 -cartoon/horse/pic_240.jpg 5 -cartoon/horse/pic_243.jpg 5 -cartoon/horse/pic_260.jpg 5 -cartoon/horse/pic_246.jpg 5 -cartoon/horse/pic_262.jpg 5 -cartoon/horse/pic_251.jpg 5 -cartoon/horse/pic_264.jpg 5 -cartoon/horse/pic_263.jpg 5 -cartoon/horse/pic_265.jpg 5 -cartoon/horse/pic_259.jpg 5 -cartoon/horse/pic_269.jpg 5 -cartoon/horse/pic_001.jpg 5 -cartoon/horse/pic_002.jpg 5 -cartoon/horse/pic_003.jpg 5 -cartoon/horse/pic_004.jpg 5 -cartoon/horse/pic_005.jpg 5 -cartoon/horse/pic_006.jpg 5 -cartoon/horse/pic_007.jpg 5 -cartoon/horse/pic_008.jpg 5 -cartoon/horse/pic_009.jpg 5 -cartoon/horse/pic_116.jpg 5 -cartoon/horse/pic_108.jpg 5 -cartoon/horse/pic_111.jpg 5 -cartoon/horse/pic_128.jpg 5 -cartoon/horse/pic_124.jpg 5 -cartoon/horse/pic_130.jpg 5 -cartoon/horse/pic_131.jpg 5 -cartoon/horse/pic_129.jpg 5 -cartoon/horse/pic_125.jpg 5 -cartoon/horse/pic_121.jpg 5 -cartoon/horse/pic_127.jpg 5 -cartoon/horse/pic_123.jpg 5 -cartoon/horse/pic_143.jpg 5 -cartoon/horse/pic_135.jpg 5 -cartoon/horse/pic_134.jpg 5 -cartoon/horse/pic_140.jpg 5 -cartoon/horse/pic_145.jpg 5 -cartoon/horse/pic_146.jpg 5 -cartoon/horse/pic_142.jpg 5 -cartoon/horse/pic_137.jpg 5 -cartoon/horse/pic_350.jpg 5 -cartoon/horse/pic_351.jpg 5 -cartoon/horse/pic_352.jpg 5 -cartoon/horse/pic_353.jpg 5 -cartoon/horse/pic_354.jpg 5 -cartoon/horse/pic_355.jpg 5 -cartoon/horse/pic_345.jpg 5 -cartoon/horse/pic_357.jpg 5 -cartoon/horse/pic_359.jpg 5 -cartoon/horse/pic_358.jpg 5 -cartoon/horse/pic_361.jpg 5 -cartoon/horse/pic_362.jpg 5 -cartoon/horse/pic_364.jpg 5 -cartoon/horse/pic_356.jpg 5 -cartoon/horse/pic_363.jpg 5 -cartoon/horse/pic_160.jpg 5 -cartoon/horse/pic_173.jpg 5 -cartoon/horse/pic_172.jpg 5 -cartoon/horse/pic_169.jpg 5 -cartoon/horse/pic_167.jpg 5 -cartoon/horse/pic_166.jpg 5 -cartoon/horse/pic_164.jpg 5 -cartoon/horse/pic_163.jpg 5 -cartoon/horse/pic_152.jpg 5 -cartoon/horse/pic_174.jpg 5 -cartoon/horse/pic_171.jpg 5 -cartoon/horse/pic_177.jpg 5 -cartoon/horse/pic_176.jpg 5 -cartoon/horse/pic_181.jpg 5 -cartoon/horse/pic_180.jpg 5 -cartoon/horse/pic_179.jpg 5 -cartoon/horse/pic_084.jpg 5 -cartoon/horse/pic_083.jpg 5 -cartoon/horse/pic_071.jpg 5 -cartoon/horse/pic_096.jpg 5 -cartoon/horse/pic_094.jpg 5 -cartoon/horse/pic_098.jpg 5 -cartoon/horse/pic_095.jpg 5 -cartoon/horse/pic_093.jpg 5 -cartoon/horse/pic_092.jpg 5 -cartoon/horse/pic_091.jpg 5 -cartoon/horse/pic_090.jpg 5 -cartoon/horse/pic_088.jpg 5 -cartoon/horse/pic_086.jpg 5 -cartoon/horse/pic_097.jpg 5 -cartoon/horse/pic_087.jpg 5 -cartoon/horse/pic_203.jpg 5 -cartoon/horse/pic_205.jpg 5 -cartoon/horse/pic_209.jpg 5 -cartoon/horse/pic_212.jpg 5 -cartoon/horse/pic_213.jpg 5 -cartoon/horse/pic_192.jpg 5 -cartoon/horse/pic_211.jpg 5 -cartoon/horse/pic_214.jpg 5 -cartoon/horse/pic_218.jpg 5 -cartoon/horse/pic_215.jpg 5 -cartoon/horse/pic_217.jpg 5 -cartoon/horse/pic_220.jpg 5 -cartoon/horse/pic_219.jpg 5 -cartoon/horse/pic_221.jpg 5 -cartoon/horse/pic_223.jpg 5 -cartoon/horse/pic_224.jpg 5 -cartoon/horse/pic_208.jpg 5 -cartoon/horse/pic_035.jpg 5 -cartoon/horse/pic_034.jpg 5 -cartoon/horse/pic_037.jpg 5 -cartoon/horse/pic_036.jpg 5 -cartoon/horse/pic_044.jpg 5 -cartoon/horse/pic_047.jpg 5 -cartoon/horse/pic_045.jpg 5 -cartoon/horse/pic_043.jpg 5 -cartoon/horse/pic_042.jpg 5 -cartoon/horse/pic_040.jpg 5 -cartoon/horse/pic_041.jpg 5 -cartoon/horse/pic_038.jpg 5 -cartoon/horse/pic_039.jpg 5 -cartoon/horse/pic_048.jpg 5 -cartoon/horse/pic_046.jpg 5 -cartoon/horse/pic_061.jpg 5 -cartoon/horse/pic_073.jpg 5 -cartoon/horse/pic_077.jpg 5 -cartoon/horse/pic_080.jpg 5 -cartoon/horse/pic_082.jpg 5 -cartoon/horse/pic_225.jpg 5 -cartoon/horse/pic_228.jpg 5 -cartoon/horse/pic_207.jpg 5 -cartoon/horse/pic_227.jpg 5 -cartoon/horse/pic_226.jpg 5 -cartoon/horse/pic_231.jpg 5 -cartoon/horse/pic_232.jpg 5 -cartoon/horse/pic_234.jpg 5 -cartoon/horse/pic_236.jpg 5 -cartoon/horse/pic_237.jpg 5 -cartoon/horse/pic_239.jpg 5 -cartoon/horse/pic_238.jpg 5 -cartoon/horse/pic_229.jpg 5 -cartoon/horse/pic_241.jpg 5 -cartoon/horse/pic_242.jpg 5 -cartoon/horse/pic_244.jpg 5 -cartoon/horse/pic_233.jpg 5 -cartoon/horse/pic_249.jpg 5 -cartoon/horse/pic_248.jpg 5 -cartoon/horse/pic_247.jpg 5 -cartoon/house/pic_103.jpg 6 -cartoon/house/pic_091.jpg 6 -cartoon/house/pic_089.jpg 6 -cartoon/house/pic_092.jpg 6 -cartoon/house/pic_093.jpg 6 -cartoon/house/pic_107.jpg 6 -cartoon/house/pic_104.jpg 6 -cartoon/house/pic_114.jpg 6 -cartoon/house/pic_112.jpg 6 -cartoon/house/pic_109.jpg 6 -cartoon/house/pic_108.jpg 6 -cartoon/house/pic_102.jpg 6 -cartoon/house/pic_099.jpg 6 -cartoon/house/pic_098.jpg 6 -cartoon/house/pic_097.jpg 6 -cartoon/house/pic_111.jpg 6 -cartoon/house/pic_320.jpg 6 -cartoon/house/pic_321.jpg 6 -cartoon/house/pic_315.jpg 6 -cartoon/house/pic_322.jpg 6 -cartoon/house/pic_323.jpg 6 -cartoon/house/pic_311.jpg 6 -cartoon/house/pic_324.jpg 6 -cartoon/house/pic_327.jpg 6 -cartoon/house/pic_312.jpg 6 -cartoon/house/pic_314.jpg 6 -cartoon/house/pic_328.jpg 6 -cartoon/house/pic_069.jpg 6 -cartoon/house/pic_079.jpg 6 -cartoon/house/pic_071.jpg 6 -cartoon/house/pic_072.jpg 6 -cartoon/house/pic_074.jpg 6 -cartoon/house/pic_077.jpg 6 -cartoon/house/pic_081.jpg 6 -cartoon/house/pic_088.jpg 6 -cartoon/house/pic_082.jpg 6 -cartoon/house/pic_080.jpg 6 -cartoon/house/pic_090.jpg 6 -cartoon/house/pic_100.jpg 6 -cartoon/house/pic_084.jpg 6 -cartoon/house/pic_085.jpg 6 -cartoon/house/pic_083.jpg 6 -cartoon/house/pic_087.jpg 6 -cartoon/house/pic_094.jpg 6 -cartoon/house/pic_157.jpg 6 -cartoon/house/pic_169.jpg 6 -cartoon/house/pic_172.jpg 6 -cartoon/house/pic_173.jpg 6 -cartoon/house/pic_171.jpg 6 -cartoon/house/pic_176.jpg 6 -cartoon/house/pic_180.jpg 6 -cartoon/house/pic_182.jpg 6 -cartoon/house/pic_185.jpg 6 -cartoon/house/pic_184.jpg 6 -cartoon/house/pic_187.jpg 6 -cartoon/house/pic_188.jpg 6 -cartoon/house/pic_189.jpg 6 -cartoon/house/pic_191.jpg 6 -cartoon/house/pic_174.jpg 6 -cartoon/house/pic_179.jpg 6 -cartoon/house/pic_237.jpg 6 -cartoon/house/pic_258.jpg 6 -cartoon/house/pic_260.jpg 6 -cartoon/house/pic_242.jpg 6 -cartoon/house/pic_262.jpg 6 -cartoon/house/pic_263.jpg 6 -cartoon/house/pic_249.jpg 6 -cartoon/house/pic_253.jpg 6 -cartoon/house/pic_257.jpg 6 -cartoon/house/pic_265.jpg 6 -cartoon/house/pic_267.jpg 6 -cartoon/house/pic_268.jpg 6 -cartoon/house/pic_269.jpg 6 -cartoon/house/pic_272.jpg 6 -cartoon/house/pic_264.jpg 6 -cartoon/house/pic_274.jpg 6 -cartoon/house/pic_270.jpg 6 -cartoon/house/pic_177.jpg 6 -cartoon/house/pic_192.jpg 6 -cartoon/house/pic_193.jpg 6 -cartoon/house/pic_178.jpg 6 -cartoon/house/pic_181.jpg 6 -cartoon/house/pic_194.jpg 6 -cartoon/house/pic_196.jpg 6 -cartoon/house/pic_197.jpg 6 -cartoon/house/pic_198.jpg 6 -cartoon/house/pic_199.jpg 6 -cartoon/house/pic_200.jpg 6 -cartoon/house/pic_201.jpg 6 -cartoon/house/pic_202.jpg 6 -cartoon/house/pic_203.jpg 6 -cartoon/house/pic_205.jpg 6 -cartoon/house/pic_195.jpg 6 -cartoon/house/pic_207.jpg 6 -cartoon/house/pic_206.jpg 6 -cartoon/house/pic_204.jpg 6 -cartoon/house/pic_209.jpg 6 -cartoon/house/pic_234.jpg 6 -cartoon/house/pic_239.jpg 6 -cartoon/house/pic_241.jpg 6 -cartoon/house/pic_240.jpg 6 -cartoon/house/pic_224.jpg 6 -cartoon/house/pic_243.jpg 6 -cartoon/house/pic_246.jpg 6 -cartoon/house/pic_245.jpg 6 -cartoon/house/pic_244.jpg 6 -cartoon/house/pic_250.jpg 6 -cartoon/house/pic_230.jpg 6 -cartoon/house/pic_238.jpg 6 -cartoon/house/pic_252.jpg 6 -cartoon/house/pic_254.jpg 6 -cartoon/house/pic_255.jpg 6 -cartoon/house/pic_256.jpg 6 -cartoon/house/pic_008.jpg 6 -cartoon/house/pic_009.jpg 6 -cartoon/house/pic_010.jpg 6 -cartoon/house/pic_011.jpg 6 -cartoon/house/pic_012.jpg 6 -cartoon/house/pic_013.jpg 6 -cartoon/house/pic_014.jpg 6 -cartoon/house/pic_016.jpg 6 -cartoon/house/pic_017.jpg 6 -cartoon/house/pic_020.jpg 6 -cartoon/house/pic_022.jpg 6 -cartoon/house/pic_026.jpg 6 -cartoon/house/pic_024.jpg 6 -cartoon/house/pic_027.jpg 6 -cartoon/house/pic_028.jpg 6 -cartoon/house/pic_032.jpg 6 -cartoon/house/pic_029.jpg 6 -cartoon/house/pic_001.jpg 6 -cartoon/house/pic_002.jpg 6 -cartoon/house/pic_003.jpg 6 -cartoon/house/pic_004.jpg 6 -cartoon/house/pic_005.jpg 6 -cartoon/house/pic_006.jpg 6 -cartoon/house/pic_007.jpg 6 -cartoon/house/pic_158.jpg 6 -cartoon/house/pic_160.jpg 6 -cartoon/house/pic_161.jpg 6 -cartoon/house/pic_162.jpg 6 -cartoon/house/pic_151.jpg 6 -cartoon/house/pic_164.jpg 6 -cartoon/house/pic_165.jpg 6 -cartoon/house/pic_156.jpg 6 -cartoon/house/pic_166.jpg 6 -cartoon/house/pic_167.jpg 6 -cartoon/house/pic_168.jpg 6 -cartoon/house/pic_163.jpg 6 -cartoon/house/pic_318.jpg 6 -cartoon/house/pic_331.jpg 6 -cartoon/house/pic_333.jpg 6 -cartoon/house/pic_334.jpg 6 -cartoon/house/pic_337.jpg 6 -cartoon/house/pic_335.jpg 6 -cartoon/house/pic_338.jpg 6 -cartoon/house/pic_341.jpg 6 -cartoon/house/pic_343.jpg 6 -cartoon/house/pic_344.jpg 6 -cartoon/house/pic_330.jpg 6 -cartoon/house/pic_346.jpg 6 -cartoon/house/pic_348.jpg 6 -cartoon/house/pic_340.jpg 6 -cartoon/house/pic_349.jpg 6 -cartoon/house/pic_347.jpg 6 -cartoon/house/pic_336.jpg 6 -cartoon/house/pic_355.jpg 6 -cartoon/house/pic_356.jpg 6 -cartoon/house/pic_357.jpg 6 -cartoon/house/pic_358.jpg 6 -cartoon/house/pic_360.jpg 6 -cartoon/house/pic_345.jpg 6 -cartoon/house/pic_354.jpg 6 -cartoon/house/pic_353.jpg 6 -cartoon/house/pic_359.jpg 6 -cartoon/house/pic_212.jpg 6 -cartoon/house/pic_211.jpg 6 -cartoon/house/pic_221.jpg 6 -cartoon/house/pic_219.jpg 6 -cartoon/house/pic_218.jpg 6 -cartoon/house/pic_215.jpg 6 -cartoon/house/pic_217.jpg 6 -cartoon/house/pic_220.jpg 6 -cartoon/house/pic_222.jpg 6 -cartoon/house/pic_223.jpg 6 -cartoon/house/pic_216.jpg 6 -cartoon/house/pic_208.jpg 6 -cartoon/house/pic_225.jpg 6 -cartoon/house/pic_226.jpg 6 -cartoon/house/pic_214.jpg 6 -cartoon/house/pic_231.jpg 6 -cartoon/house/pic_233.jpg 6 -cartoon/house/pic_228.jpg 6 -cartoon/house/pic_235.jpg 6 -cartoon/house/pic_273.jpg 6 -cartoon/house/pic_279.jpg 6 -cartoon/house/pic_278.jpg 6 -cartoon/house/pic_283.jpg 6 -cartoon/house/pic_280.jpg 6 -cartoon/house/pic_266.jpg 6 -cartoon/house/pic_281.jpg 6 -cartoon/house/pic_286.jpg 6 -cartoon/house/pic_276.jpg 6 -cartoon/house/pic_277.jpg 6 -cartoon/house/pic_288.jpg 6 -cartoon/house/pic_289.jpg 6 -cartoon/house/pic_282.jpg 6 -cartoon/house/pic_290.jpg 6 -cartoon/house/pic_292.jpg 6 -cartoon/house/pic_285.jpg 6 -cartoon/house/pic_295.jpg 6 -cartoon/house/pic_047.jpg 6 -cartoon/house/pic_049.jpg 6 -cartoon/house/pic_048.jpg 6 -cartoon/house/pic_050.jpg 6 -cartoon/house/pic_053.jpg 6 -cartoon/house/pic_056.jpg 6 -cartoon/house/pic_054.jpg 6 -cartoon/house/pic_059.jpg 6 -cartoon/house/pic_057.jpg 6 -cartoon/house/pic_067.jpg 6 -cartoon/house/pic_062.jpg 6 -cartoon/house/pic_060.jpg 6 -cartoon/house/pic_063.jpg 6 -cartoon/house/pic_066.jpg 6 -cartoon/house/pic_064.jpg 6 -cartoon/house/pic_065.jpg 6 -cartoon/house/pic_284.jpg 6 -cartoon/house/pic_297.jpg 6 -cartoon/house/pic_296.jpg 6 -cartoon/house/pic_298.jpg 6 -cartoon/house/pic_301.jpg 6 -cartoon/house/pic_302.jpg 6 -cartoon/house/pic_304.jpg 6 -cartoon/house/pic_305.jpg 6 -cartoon/house/pic_306.jpg 6 -cartoon/house/pic_291.jpg 6 -cartoon/house/pic_309.jpg 6 -cartoon/house/pic_308.jpg 6 -cartoon/house/pic_310.jpg 6 -cartoon/house/pic_299.jpg 6 -cartoon/house/pic_300.jpg 6 -cartoon/house/pic_303.jpg 6 -cartoon/house/pic_316.jpg 6 -cartoon/house/pic_317.jpg 6 -cartoon/house/pic_319.jpg 6 -cartoon/house/pic_039.jpg 6 -cartoon/house/pic_030.jpg 6 -cartoon/house/pic_034.jpg 6 -cartoon/house/pic_031.jpg 6 -cartoon/house/pic_038.jpg 6 -cartoon/house/pic_025.jpg 6 -cartoon/house/pic_051.jpg 6 -cartoon/house/pic_036.jpg 6 -cartoon/house/pic_041.jpg 6 -cartoon/house/pic_023.jpg 6 -cartoon/house/pic_046.jpg 6 -cartoon/house/pic_052.jpg 6 -cartoon/house/pic_040.jpg 6 -cartoon/house/pic_045.jpg 6 -cartoon/house/pic_044.jpg 6 -cartoon/house/pic_043.jpg 6 -cartoon/house/pic_042.jpg 6 -cartoon/house/pic_138.jpg 6 -cartoon/house/pic_140.jpg 6 -cartoon/house/pic_130.jpg 6 -cartoon/house/pic_143.jpg 6 -cartoon/house/pic_145.jpg 6 -cartoon/house/pic_146.jpg 6 -cartoon/house/pic_148.jpg 6 -cartoon/house/pic_147.jpg 6 -cartoon/house/pic_149.jpg 6 -cartoon/house/pic_152.jpg 6 -cartoon/house/pic_139.jpg 6 -cartoon/house/pic_153.jpg 6 -cartoon/house/pic_113.jpg 6 -cartoon/house/pic_116.jpg 6 -cartoon/house/pic_110.jpg 6 -cartoon/house/pic_122.jpg 6 -cartoon/house/pic_121.jpg 6 -cartoon/house/pic_120.jpg 6 -cartoon/house/pic_119.jpg 6 -cartoon/house/pic_118.jpg 6 -cartoon/house/pic_126.jpg 6 -cartoon/house/pic_123.jpg 6 -cartoon/house/pic_131.jpg 6 -cartoon/house/pic_132.jpg 6 -cartoon/house/pic_134.jpg 6 -cartoon/person/pic_308.jpg 7 -cartoon/person/pic_307.jpg 7 -cartoon/person/pic_306.jpg 7 -cartoon/person/pic_313.jpg 7 -cartoon/person/pic_323.jpg 7 -cartoon/person/pic_319.jpg 7 -cartoon/person/pic_320.jpg 7 -cartoon/person/pic_321.jpg 7 -cartoon/person/pic_318.jpg 7 -cartoon/person/pic_317.jpg 7 -cartoon/person/pic_316.jpg 7 -cartoon/person/pic_324.jpg 7 -cartoon/person/pic_334.jpg 7 -cartoon/person/pic_331.jpg 7 -cartoon/person/pic_332.jpg 7 -cartoon/person/pic_333.jpg 7 -cartoon/person/pic_144.jpg 7 -cartoon/person/pic_145.jpg 7 -cartoon/person/pic_143.jpg 7 -cartoon/person/pic_138.jpg 7 -cartoon/person/pic_154.jpg 7 -cartoon/person/pic_151.jpg 7 -cartoon/person/pic_152.jpg 7 -cartoon/person/pic_148.jpg 7 -cartoon/person/pic_149.jpg 7 -cartoon/person/pic_155.jpg 7 -cartoon/person/pic_157.jpg 7 -cartoon/person/pic_159.jpg 7 -cartoon/person/pic_176.jpg 7 -cartoon/person/pic_171.jpg 7 -cartoon/person/pic_168.jpg 7 -cartoon/person/pic_169.jpg 7 -cartoon/person/pic_167.jpg 7 -cartoon/person/pic_056.jpg 7 -cartoon/person/pic_071.jpg 7 -cartoon/person/pic_070.jpg 7 -cartoon/person/pic_069.jpg 7 -cartoon/person/pic_073.jpg 7 -cartoon/person/pic_075.jpg 7 -cartoon/person/pic_076.jpg 7 -cartoon/person/pic_068.jpg 7 -cartoon/person/pic_074.jpg 7 -cartoon/person/pic_072.jpg 7 -cartoon/person/pic_077.jpg 7 -cartoon/person/pic_094.jpg 7 -cartoon/person/pic_123.jpg 7 -cartoon/person/pic_110.jpg 7 -cartoon/person/pic_109.jpg 7 -cartoon/person/pic_100.jpg 7 -cartoon/person/pic_095.jpg 7 -cartoon/person/pic_087.jpg 7 -cartoon/person/pic_089.jpg 7 -cartoon/person/pic_365.jpg 7 -cartoon/person/pic_373.jpg 7 -cartoon/person/pic_381.jpg 7 -cartoon/person/pic_379.jpg 7 -cartoon/person/pic_370.jpg 7 -cartoon/person/pic_374.jpg 7 -cartoon/person/pic_377.jpg 7 -cartoon/person/pic_380.jpg 7 -cartoon/person/pic_393.jpg 7 -cartoon/person/pic_392.jpg 7 -cartoon/person/pic_391.jpg 7 -cartoon/person/pic_389.jpg 7 -cartoon/person/pic_390.jpg 7 -cartoon/person/pic_387.jpg 7 -cartoon/person/pic_386.jpg 7 -cartoon/person/pic_385.jpg 7 -cartoon/person/pic_384.jpg 7 -cartoon/person/pic_383.jpg 7 -cartoon/person/pic_382.jpg 7 -cartoon/person/pic_001.jpg 7 -cartoon/person/pic_002.jpg 7 -cartoon/person/pic_003.jpg 7 -cartoon/person/pic_004.jpg 7 -cartoon/person/pic_085.jpg 7 -cartoon/person/pic_084.jpg 7 -cartoon/person/pic_083.jpg 7 -cartoon/person/pic_082.jpg 7 -cartoon/person/pic_081.jpg 7 -cartoon/person/pic_079.jpg 7 -cartoon/person/pic_078.jpg 7 -cartoon/person/pic_121.jpg 7 -cartoon/person/pic_117.jpg 7 -cartoon/person/pic_120.jpg 7 -cartoon/person/pic_105.jpg 7 -cartoon/person/pic_027.jpg 7 -cartoon/person/pic_025.jpg 7 -cartoon/person/pic_026.jpg 7 -cartoon/person/pic_022.jpg 7 -cartoon/person/pic_019.jpg 7 -cartoon/person/pic_030.jpg 7 -cartoon/person/pic_037.jpg 7 -cartoon/person/pic_036.jpg 7 -cartoon/person/pic_035.jpg 7 -cartoon/person/pic_032.jpg 7 -cartoon/person/pic_033.jpg 7 -cartoon/person/pic_031.jpg 7 -cartoon/person/pic_034.jpg 7 -cartoon/person/pic_038.jpg 7 -cartoon/person/pic_039.jpg 7 -cartoon/person/pic_040.jpg 7 -cartoon/person/pic_042.jpg 7 -cartoon/person/pic_043.jpg 7 -cartoon/person/pic_041.jpg 7 -cartoon/person/pic_049.jpg 7 -cartoon/person/pic_048.jpg 7 -cartoon/person/pic_415.jpg 7 -cartoon/person/pic_427.jpg 7 -cartoon/person/pic_429.jpg 7 -cartoon/person/pic_420.jpg 7 -cartoon/person/pic_423.jpg 7 -cartoon/person/pic_438.jpg 7 -cartoon/person/pic_434.jpg 7 -cartoon/person/pic_436.jpg 7 -cartoon/person/pic_432.jpg 7 -cartoon/person/pic_433.jpg 7 -cartoon/person/pic_431.jpg 7 -cartoon/person/pic_430.jpg 7 -cartoon/person/pic_439.jpg 7 -cartoon/person/pic_435.jpg 7 -cartoon/person/pic_445.jpg 7 -cartoon/person/pic_444.jpg 7 -cartoon/person/pic_441.jpg 7 -cartoon/person/pic_442.jpg 7 -cartoon/person/pic_443.jpg 7 -cartoon/person/pic_440.jpg 7 -cartoon/person/pic_005.jpg 7 -cartoon/person/pic_007.jpg 7 -cartoon/person/pic_008.jpg 7 -cartoon/person/pic_009.jpg 7 -cartoon/person/pic_010.jpg 7 -cartoon/person/pic_011.jpg 7 -cartoon/person/pic_012.jpg 7 -cartoon/person/pic_013.jpg 7 -cartoon/person/pic_014.jpg 7 -cartoon/person/pic_015.jpg 7 -cartoon/person/pic_021.jpg 7 -cartoon/person/pic_024.jpg 7 -cartoon/person/pic_023.jpg 7 -cartoon/person/pic_020.jpg 7 -cartoon/person/pic_018.jpg 7 -cartoon/person/pic_016.jpg 7 -cartoon/person/pic_017.jpg 7 -cartoon/person/pic_029.jpg 7 -cartoon/person/pic_028.jpg 7 -cartoon/person/pic_165.jpg 7 -cartoon/person/pic_164.jpg 7 -cartoon/person/pic_162.jpg 7 -cartoon/person/pic_158.jpg 7 -cartoon/person/pic_160.jpg 7 -cartoon/person/pic_172.jpg 7 -cartoon/person/pic_173.jpg 7 -cartoon/person/pic_170.jpg 7 -cartoon/person/pic_174.jpg 7 -cartoon/person/pic_161.jpg 7 -cartoon/person/pic_163.jpg 7 -cartoon/person/pic_175.jpg 7 -cartoon/person/pic_177.jpg 7 -cartoon/person/pic_180.jpg 7 -cartoon/person/pic_179.jpg 7 -cartoon/person/pic_181.jpg 7 -cartoon/person/pic_184.jpg 7 -cartoon/person/pic_185.jpg 7 -cartoon/person/pic_127.jpg 7 -cartoon/person/pic_113.jpg 7 -cartoon/person/pic_106.jpg 7 -cartoon/person/pic_129.jpg 7 -cartoon/person/pic_119.jpg 7 -cartoon/person/pic_125.jpg 7 -cartoon/person/pic_124.jpg 7 -cartoon/person/pic_147.jpg 7 -cartoon/person/pic_141.jpg 7 -cartoon/person/pic_140.jpg 7 -cartoon/person/pic_136.jpg 7 -cartoon/person/pic_137.jpg 7 -cartoon/person/pic_135.jpg 7 -cartoon/person/pic_133.jpg 7 -cartoon/person/pic_134.jpg 7 -cartoon/person/pic_132.jpg 7 -cartoon/person/pic_131.jpg 7 -cartoon/person/pic_146.jpg 7 -cartoon/person/pic_388.jpg 7 -cartoon/person/pic_400.jpg 7 -cartoon/person/pic_399.jpg 7 -cartoon/person/pic_402.jpg 7 -cartoon/person/pic_401.jpg 7 -cartoon/person/pic_394.jpg 7 -cartoon/person/pic_396.jpg 7 -cartoon/person/pic_395.jpg 7 -cartoon/person/pic_397.jpg 7 -cartoon/person/pic_398.jpg 7 -cartoon/person/pic_408.jpg 7 -cartoon/person/pic_403.jpg 7 -cartoon/person/pic_206.jpg 7 -cartoon/person/pic_209.jpg 7 -cartoon/person/pic_208.jpg 7 -cartoon/person/pic_207.jpg 7 -cartoon/person/pic_204.jpg 7 -cartoon/person/pic_216.jpg 7 -cartoon/person/pic_212.jpg 7 -cartoon/person/pic_210.jpg 7 -cartoon/person/pic_218.jpg 7 -cartoon/person/pic_221.jpg 7 -cartoon/person/pic_220.jpg 7 -cartoon/person/pic_222.jpg 7 -cartoon/person/pic_224.jpg 7 -cartoon/person/pic_225.jpg 7 -cartoon/person/pic_219.jpg 7 -cartoon/person/pic_226.jpg 7 -cartoon/person/pic_227.jpg 7 -cartoon/person/pic_451.jpg 7 -cartoon/person/pic_449.jpg 7 -cartoon/person/pic_450.jpg 7 -cartoon/person/pic_447.jpg 7 -cartoon/person/pic_448.jpg 7 -cartoon/person/pic_446.jpg 7 -cartoon/person/pic_453.jpg 7 -cartoon/person/pic_454.jpg 7 -cartoon/person/pic_452.jpg 7 -cartoon/person/pic_456.jpg 7 -cartoon/person/pic_458.jpg 7 -cartoon/person/pic_455.jpg 7 -cartoon/person/pic_457.jpg 7 -cartoon/person/pic_329.jpg 7 -cartoon/person/pic_330.jpg 7 -cartoon/person/pic_326.jpg 7 -cartoon/person/pic_327.jpg 7 -cartoon/person/pic_325.jpg 7 -cartoon/person/pic_328.jpg 7 -cartoon/person/pic_336.jpg 7 -cartoon/person/pic_338.jpg 7 -cartoon/person/pic_337.jpg 7 -cartoon/person/pic_340.jpg 7 -cartoon/person/pic_339.jpg 7 -cartoon/person/pic_342.jpg 7 -cartoon/person/pic_341.jpg 7 -cartoon/person/pic_343.jpg 7 -cartoon/person/pic_344.jpg 7 -cartoon/person/pic_347.jpg 7 -cartoon/person/pic_348.jpg 7 -cartoon/person/pic_350.jpg 7 -cartoon/person/pic_352.jpg 7 -cartoon/person/pic_047.jpg 7 -cartoon/person/pic_044.jpg 7 -cartoon/person/pic_045.jpg 7 -cartoon/person/pic_046.jpg 7 -cartoon/person/pic_052.jpg 7 -cartoon/person/pic_050.jpg 7 -cartoon/person/pic_053.jpg 7 -cartoon/person/pic_051.jpg 7 -cartoon/person/pic_067.jpg 7 -cartoon/person/pic_064.jpg 7 -cartoon/person/pic_063.jpg 7 -cartoon/person/pic_065.jpg 7 -cartoon/person/pic_060.jpg 7 -cartoon/person/pic_061.jpg 7 -cartoon/person/pic_059.jpg 7 -cartoon/person/pic_062.jpg 7 -cartoon/person/pic_055.jpg 7 -cartoon/person/pic_058.jpg 7 -cartoon/person/pic_054.jpg 7 -cartoon/person/pic_057.jpg 7 -cartoon/person/pic_093.jpg 7 -cartoon/person/pic_103.jpg 7 -cartoon/person/pic_104.jpg 7 -cartoon/person/pic_092.jpg 7 -cartoon/person/pic_090.jpg 7 -cartoon/person/pic_097.jpg 7 -cartoon/person/pic_080.jpg 7 -cartoon/person/pic_091.jpg 7 -cartoon/person/pic_122.jpg 7 -cartoon/person/pic_126.jpg 7 -cartoon/person/pic_112.jpg 7 -cartoon/person/pic_111.jpg 7 -cartoon/person/pic_101.jpg 7 -cartoon/person/pic_096.jpg 7 -cartoon/person/pic_130.jpg 7 -cartoon/person/pic_098.jpg 7 -cartoon/person/pic_102.jpg 7 -cartoon/person/pic_108.jpg 7 -cartoon/person/pic_114.jpg 7 -cartoon/person/pic_183.jpg 7 -cartoon/person/pic_186.jpg 7 -cartoon/person/pic_194.jpg 7 -cartoon/person/pic_188.jpg 7 -cartoon/person/pic_190.jpg 7 -cartoon/person/pic_193.jpg 7 -cartoon/person/pic_195.jpg 7 -cartoon/person/pic_199.jpg 7 -cartoon/person/pic_197.jpg 7 -cartoon/person/pic_200.jpg 7 -cartoon/person/pic_201.jpg 7 -cartoon/person/pic_203.jpg 7 -cartoon/person/pic_202.jpg 7 -cartoon/person/pic_217.jpg 7 -cartoon/person/pic_214.jpg 7 -cartoon/person/pic_215.jpg 7 -cartoon/person/pic_229.jpg 7 -cartoon/person/pic_228.jpg 7 -cartoon/person/pic_230.jpg 7 -cartoon/person/pic_236.jpg 7 -cartoon/person/pic_233.jpg 7 -cartoon/person/pic_232.jpg 7 -cartoon/person/pic_234.jpg 7 -cartoon/person/pic_231.jpg 7 -cartoon/person/pic_235.jpg 7 -cartoon/person/pic_240.jpg 7 -cartoon/person/pic_239.jpg 7 -cartoon/person/pic_237.jpg 7 -cartoon/person/pic_243.jpg 7 -cartoon/person/pic_242.jpg 7 -cartoon/person/pic_241.jpg 7 -cartoon/person/pic_244.jpg 7 -cartoon/person/pic_245.jpg 7 -cartoon/person/pic_246.jpg 7 -cartoon/person/pic_256.jpg 7 -cartoon/person/pic_254.jpg 7 -cartoon/person/pic_260.jpg 7 -cartoon/person/pic_270.jpg 7 -cartoon/person/pic_271.jpg 7 -cartoon/person/pic_273.jpg 7 -cartoon/person/pic_274.jpg 7 -cartoon/person/pic_275.jpg 7 -cartoon/person/pic_272.jpg 7 -cartoon/person/pic_276.jpg 7 -cartoon/person/pic_278.jpg 7 -cartoon/person/pic_297.jpg 7 -cartoon/person/pic_291.jpg 7 -cartoon/person/pic_293.jpg 7 -cartoon/person/pic_292.jpg 7 -cartoon/person/pic_289.jpg 7 -cartoon/person/pic_285.jpg 7 -cartoon/person/pic_283.jpg 7 -cartoon/person/pic_282.jpg 7 -cartoon/person/pic_286.jpg 7 -cartoon/person/pic_281.jpg 7 -cartoon/person/pic_280.jpg 7 -cartoon/person/pic_279.jpg 7 -cartoon/person/pic_277.jpg 7 -cartoon/person/pic_301.jpg 7 -cartoon/person/pic_298.jpg 7 -cartoon/person/pic_302.jpg 7 -cartoon/person/pic_294.jpg 7 -cartoon/person/pic_299.jpg 7 -cartoon/person/pic_284.jpg 7 -cartoon/person/pic_287.jpg 7 -cartoon/person/pic_305.jpg 7 -cartoon/person/pic_296.jpg 7 -cartoon/person/pic_300.jpg 7 -cartoon/person/pic_295.jpg 7 -cartoon/person/pic_303.jpg 7 -cartoon/person/pic_315.jpg 7 -cartoon/person/pic_314.jpg 7 -cartoon/person/pic_310.jpg 7 -cartoon/person/pic_405.jpg 7 -cartoon/person/pic_404.jpg 7 -cartoon/person/pic_406.jpg 7 -cartoon/person/pic_413.jpg 7 -cartoon/person/pic_411.jpg 7 -cartoon/person/pic_410.jpg 7 -cartoon/person/pic_409.jpg 7 -cartoon/person/pic_412.jpg 7 -cartoon/person/pic_426.jpg 7 -cartoon/person/pic_428.jpg 7 -cartoon/person/pic_425.jpg 7 -cartoon/person/pic_424.jpg 7 -cartoon/person/pic_421.jpg 7 -cartoon/person/pic_417.jpg 7 -cartoon/person/pic_419.jpg 7 -cartoon/person/pic_418.jpg 7 -cartoon/person/pic_416.jpg 7 -cartoon/person/pic_351.jpg 7 -cartoon/person/pic_349.jpg 7 -cartoon/person/pic_363.jpg 7 -cartoon/person/pic_358.jpg 7 -cartoon/person/pic_357.jpg 7 -cartoon/person/pic_354.jpg 7 -cartoon/person/pic_353.jpg 7 -cartoon/person/pic_360.jpg 7 -cartoon/person/pic_362.jpg 7 -cartoon/person/pic_359.jpg 7 -cartoon/person/pic_366.jpg 7 -cartoon/person/pic_375.jpg 7 -cartoon/person/pic_376.jpg 7 -cartoon/person/pic_372.jpg 7 -cartoon/person/pic_371.jpg 7 -cartoon/person/pic_369.jpg 7 -cartoon/person/pic_368.jpg 7 -cartoon/person/pic_364.jpg 7 -cartoon/person/pic_251.jpg 7 -cartoon/person/pic_250.jpg 7 -cartoon/person/pic_252.jpg 7 -cartoon/person/pic_248.jpg 7 -cartoon/person/pic_247.jpg 7 -cartoon/person/pic_249.jpg 7 -cartoon/person/pic_257.jpg 7 -cartoon/person/pic_253.jpg 7 -cartoon/person/pic_259.jpg 7 -cartoon/person/pic_268.jpg 7 -cartoon/person/pic_264.jpg 7 -cartoon/person/pic_265.jpg 7 -cartoon/person/pic_262.jpg 7 -cartoon/person/pic_261.jpg 7 -cartoon/person/pic_255.jpg 7 diff --git a/data/pacs_split/cartoon_train_kfold.txt b/data/pacs_split/cartoon_train_kfold.txt deleted file mode 100644 index 48ceb2f88..000000000 --- a/data/pacs_split/cartoon_train_kfold.txt +++ /dev/null @@ -1,2107 +0,0 @@ -cartoon/dog/pic_056.jpg 1 -cartoon/dog/pic_052.jpg 1 -cartoon/dog/pic_049.jpg 1 -cartoon/dog/pic_019.jpg 1 -cartoon/dog/pic_023.jpg 1 -cartoon/dog/pic_048.jpg 1 -cartoon/dog/pic_044.jpg 1 -cartoon/dog/pic_042.jpg 1 -cartoon/dog/pic_038.jpg 1 -cartoon/dog/pic_033.jpg 1 -cartoon/dog/pic_040.jpg 1 -cartoon/dog/pic_055.jpg 1 -cartoon/dog/pic_053.jpg 1 -cartoon/dog/pic_041.jpg 1 -cartoon/dog/pic_039.jpg 1 -cartoon/dog/pic_111.jpg 1 -cartoon/dog/pic_109.jpg 1 -cartoon/dog/pic_114.jpg 1 -cartoon/dog/pic_140.jpg 1 -cartoon/dog/pic_142.jpg 1 -cartoon/dog/pic_138.jpg 1 -cartoon/dog/pic_135.jpg 1 -cartoon/dog/pic_129.jpg 1 -cartoon/dog/pic_125.jpg 1 -cartoon/dog/pic_122.jpg 1 -cartoon/dog/pic_121.jpg 1 -cartoon/dog/pic_117.jpg 1 -cartoon/dog/pic_115.jpg 1 -cartoon/dog/pic_112.jpg 1 -cartoon/dog/pic_120.jpg 1 -cartoon/dog/pic_143.jpg 1 -cartoon/dog/pic_346.jpg 1 -cartoon/dog/pic_349.jpg 1 -cartoon/dog/pic_347.jpg 1 -cartoon/dog/pic_340.jpg 1 -cartoon/dog/pic_332.jpg 1 -cartoon/dog/pic_358.jpg 1 -cartoon/dog/pic_351.jpg 1 -cartoon/dog/pic_361.jpg 1 -cartoon/dog/pic_360.jpg 1 -cartoon/dog/pic_446.jpg 1 -cartoon/dog/pic_430.jpg 1 -cartoon/dog/pic_427.jpg 1 -cartoon/dog/pic_381.jpg 1 -cartoon/dog/pic_379.jpg 1 -cartoon/dog/pic_373.jpg 1 -cartoon/dog/pic_400.jpg 1 -cartoon/dog/pic_429.jpg 1 -cartoon/dog/pic_442.jpg 1 -cartoon/dog/pic_134.jpg 1 -cartoon/dog/pic_137.jpg 1 -cartoon/dog/pic_136.jpg 1 -cartoon/dog/pic_118.jpg 1 -cartoon/dog/pic_126.jpg 1 -cartoon/dog/pic_133.jpg 1 -cartoon/dog/pic_124.jpg 1 -cartoon/dog/pic_127.jpg 1 -cartoon/dog/pic_139.jpg 1 -cartoon/dog/pic_145.jpg 1 -cartoon/dog/pic_132.jpg 1 -cartoon/dog/pic_141.jpg 1 -cartoon/dog/pic_152.jpg 1 -cartoon/dog/pic_151.jpg 1 -cartoon/dog/pic_153.jpg 1 -cartoon/dog/pic_155.jpg 1 -cartoon/dog/pic_217.jpg 1 -cartoon/dog/pic_218.jpg 1 -cartoon/dog/pic_244.jpg 1 -cartoon/dog/pic_246.jpg 1 -cartoon/dog/pic_245.jpg 1 -cartoon/dog/pic_243.jpg 1 -cartoon/dog/pic_241.jpg 1 -cartoon/dog/pic_296.jpg 1 -cartoon/dog/pic_300.jpg 1 -cartoon/dog/pic_277.jpg 1 -cartoon/dog/pic_290.jpg 1 -cartoon/dog/pic_284.jpg 1 -cartoon/dog/pic_256.jpg 1 -cartoon/dog/pic_255.jpg 1 -cartoon/dog/pic_261.jpg 1 -cartoon/dog/pic_294.jpg 1 -cartoon/dog/pic_247.jpg 1 -cartoon/dog/pic_267.jpg 1 -cartoon/dog/pic_265.jpg 1 -cartoon/dog/pic_208.jpg 1 -cartoon/dog/pic_205.jpg 1 -cartoon/dog/pic_207.jpg 1 -cartoon/dog/pic_206.jpg 1 -cartoon/dog/pic_209.jpg 1 -cartoon/dog/pic_224.jpg 1 -cartoon/dog/pic_223.jpg 1 -cartoon/dog/pic_222.jpg 1 -cartoon/dog/pic_215.jpg 1 -cartoon/dog/pic_221.jpg 1 -cartoon/dog/pic_214.jpg 1 -cartoon/dog/pic_212.jpg 1 -cartoon/dog/pic_211.jpg 1 -cartoon/dog/pic_210.jpg 1 -cartoon/dog/pic_213.jpg 1 -cartoon/dog/pic_239.jpg 1 -cartoon/dog/pic_237.jpg 1 -cartoon/dog/pic_234.jpg 1 -cartoon/dog/pic_235.jpg 1 -cartoon/dog/pic_007.jpg 1 -cartoon/dog/pic_008.jpg 1 -cartoon/dog/pic_009.jpg 1 -cartoon/dog/pic_010.jpg 1 -cartoon/dog/pic_011.jpg 1 -cartoon/dog/pic_012.jpg 1 -cartoon/dog/pic_013.jpg 1 -cartoon/dog/pic_014.jpg 1 -cartoon/dog/pic_015.jpg 1 -cartoon/dog/pic_016.jpg 1 -cartoon/dog/pic_017.jpg 1 -cartoon/dog/pic_018.jpg 1 -cartoon/dog/pic_032.jpg 1 -cartoon/dog/pic_030.jpg 1 -cartoon/dog/pic_021.jpg 1 -cartoon/dog/pic_024.jpg 1 -cartoon/dog/pic_028.jpg 1 -cartoon/dog/pic_026.jpg 1 -cartoon/dog/pic_022.jpg 1 -cartoon/dog/pic_447.jpg 1 -cartoon/dog/pic_449.jpg 1 -cartoon/dog/pic_450.jpg 1 -cartoon/dog/pic_166.jpg 1 -cartoon/dog/pic_171.jpg 1 -cartoon/dog/pic_167.jpg 1 -cartoon/dog/pic_168.jpg 1 -cartoon/dog/pic_172.jpg 1 -cartoon/dog/pic_170.jpg 1 -cartoon/dog/pic_169.jpg 1 -cartoon/dog/pic_173.jpg 1 -cartoon/dog/pic_176.jpg 1 -cartoon/dog/pic_175.jpg 1 -cartoon/dog/pic_180.jpg 1 -cartoon/dog/pic_179.jpg 1 -cartoon/dog/pic_178.jpg 1 -cartoon/dog/pic_177.jpg 1 -cartoon/dog/pic_183.jpg 1 -cartoon/dog/pic_184.jpg 1 -cartoon/dog/pic_182.jpg 1 -cartoon/dog/pic_220.jpg 1 -cartoon/dog/pic_219.jpg 1 -cartoon/dog/pic_216.jpg 1 -cartoon/dog/pic_273.jpg 1 -cartoon/dog/pic_272.jpg 1 -cartoon/dog/pic_275.jpg 1 -cartoon/dog/pic_274.jpg 1 -cartoon/dog/pic_280.jpg 1 -cartoon/dog/pic_279.jpg 1 -cartoon/dog/pic_281.jpg 1 -cartoon/dog/pic_282.jpg 1 -cartoon/dog/pic_327.jpg 1 -cartoon/dog/pic_329.jpg 1 -cartoon/dog/pic_326.jpg 1 -cartoon/dog/pic_328.jpg 1 -cartoon/dog/pic_335.jpg 1 -cartoon/dog/pic_338.jpg 1 -cartoon/dog/pic_339.jpg 1 -cartoon/dog/pic_337.jpg 1 -cartoon/dog/pic_374.jpg 1 -cartoon/dog/pic_372.jpg 1 -cartoon/dog/pic_371.jpg 1 -cartoon/dog/pic_369.jpg 1 -cartoon/dog/pic_368.jpg 1 -cartoon/dog/pic_367.jpg 1 -cartoon/dog/pic_366.jpg 1 -cartoon/dog/pic_365.jpg 1 -cartoon/dog/pic_364.jpg 1 -cartoon/dog/pic_437.jpg 1 -cartoon/dog/pic_431.jpg 1 -cartoon/dog/pic_413.jpg 1 -cartoon/dog/pic_394.jpg 1 -cartoon/dog/pic_428.jpg 1 -cartoon/dog/pic_387.jpg 1 -cartoon/dog/pic_380.jpg 1 -cartoon/dog/pic_376.jpg 1 -cartoon/dog/pic_425.jpg 1 -cartoon/dog/pic_414.jpg 1 -cartoon/dog/pic_398.jpg 1 -cartoon/dog/pic_317.jpg 1 -cartoon/dog/pic_318.jpg 1 -cartoon/dog/pic_323.jpg 1 -cartoon/dog/pic_363.jpg 1 -cartoon/dog/pic_357.jpg 1 -cartoon/dog/pic_356.jpg 1 -cartoon/dog/pic_354.jpg 1 -cartoon/dog/pic_352.jpg 1 -cartoon/dog/pic_353.jpg 1 -cartoon/dog/pic_348.jpg 1 -cartoon/dog/pic_345.jpg 1 -cartoon/dog/pic_344.jpg 1 -cartoon/dog/pic_343.jpg 1 -cartoon/dog/pic_341.jpg 1 -cartoon/dog/pic_333.jpg 1 -cartoon/dog/pic_334.jpg 1 -cartoon/dog/pic_331.jpg 1 -cartoon/dog/pic_350.jpg 1 -cartoon/dog/pic_181.jpg 1 -cartoon/dog/pic_188.jpg 1 -cartoon/dog/pic_190.jpg 1 -cartoon/dog/pic_186.jpg 1 -cartoon/dog/pic_185.jpg 1 -cartoon/dog/pic_189.jpg 1 -cartoon/dog/pic_192.jpg 1 -cartoon/dog/pic_191.jpg 1 -cartoon/dog/pic_193.jpg 1 -cartoon/dog/pic_195.jpg 1 -cartoon/dog/pic_201.jpg 1 -cartoon/dog/pic_200.jpg 1 -cartoon/dog/pic_197.jpg 1 -cartoon/dog/pic_198.jpg 1 -cartoon/dog/pic_196.jpg 1 -cartoon/dog/pic_202.jpg 1 -cartoon/dog/pic_204.jpg 1 -cartoon/dog/pic_203.jpg 1 -cartoon/dog/pic_034.jpg 1 -cartoon/dog/pic_027.jpg 1 -cartoon/dog/pic_029.jpg 1 -cartoon/dog/pic_050.jpg 1 -cartoon/dog/pic_035.jpg 1 -cartoon/dog/pic_037.jpg 1 -cartoon/dog/pic_051.jpg 1 -cartoon/dog/pic_045.jpg 1 -cartoon/dog/pic_058.jpg 1 -cartoon/dog/pic_057.jpg 1 -cartoon/dog/pic_059.jpg 1 -cartoon/dog/pic_062.jpg 1 -cartoon/dog/pic_063.jpg 1 -cartoon/dog/pic_060.jpg 1 -cartoon/dog/pic_061.jpg 1 -cartoon/dog/pic_065.jpg 1 -cartoon/dog/pic_064.jpg 1 -cartoon/dog/pic_068.jpg 1 -cartoon/dog/pic_067.jpg 1 -cartoon/dog/pic_432.jpg 1 -cartoon/dog/pic_424.jpg 1 -cartoon/dog/pic_445.jpg 1 -cartoon/dog/pic_397.jpg 1 -cartoon/dog/pic_389.jpg 1 -cartoon/dog/pic_395.jpg 1 -cartoon/dog/pic_435.jpg 1 -cartoon/dog/pic_399.jpg 1 -cartoon/dog/pic_411.jpg 1 -cartoon/dog/pic_434.jpg 1 -cartoon/dog/pic_444.jpg 1 -cartoon/dog/pic_401.jpg 1 -cartoon/dog/pic_396.jpg 1 -cartoon/dog/pic_426.jpg 1 -cartoon/dog/pic_433.jpg 1 -cartoon/dog/pic_443.jpg 1 -cartoon/dog/pic_412.jpg 1 -cartoon/dog/pic_148.jpg 1 -cartoon/dog/pic_146.jpg 1 -cartoon/dog/pic_418.jpg 1 -cartoon/dog/pic_156.jpg 1 -cartoon/dog/pic_149.jpg 1 -cartoon/dog/pic_160.jpg 1 -cartoon/dog/pic_161.jpg 1 -cartoon/dog/pic_163.jpg 1 -cartoon/dog/pic_165.jpg 1 -cartoon/dog/pic_164.jpg 1 -cartoon/dog/pic_419.jpg 1 -cartoon/dog/pic_422.jpg 1 -cartoon/dog/pic_420.jpg 1 -cartoon/dog/pic_421.jpg 1 -cartoon/dog/pic_423.jpg 1 -cartoon/dog/pic_439.jpg 1 -cartoon/dog/pic_438.jpg 1 -cartoon/dog/pic_441.jpg 1 -cartoon/dog/pic_440.jpg 1 -cartoon/dog/pic_242.jpg 1 -cartoon/dog/pic_260.jpg 1 -cartoon/dog/pic_293.jpg 1 -cartoon/dog/pic_278.jpg 1 -cartoon/dog/pic_269.jpg 1 -cartoon/dog/pic_292.jpg 1 -cartoon/dog/pic_268.jpg 1 -cartoon/dog/pic_291.jpg 1 -cartoon/dog/pic_289.jpg 1 -cartoon/dog/pic_266.jpg 1 -cartoon/dog/pic_258.jpg 1 -cartoon/dog/pic_264.jpg 1 -cartoon/dog/pic_287.jpg 1 -cartoon/dog/pic_298.jpg 1 -cartoon/dog/pic_288.jpg 1 -cartoon/dog/pic_295.jpg 1 -cartoon/dog/pic_299.jpg 1 -cartoon/dog/pic_306.jpg 1 -cartoon/dog/pic_305.jpg 1 -cartoon/dog/pic_304.jpg 1 -cartoon/dog/pic_302.jpg 1 -cartoon/dog/pic_303.jpg 1 -cartoon/dog/pic_308.jpg 1 -cartoon/dog/pic_309.jpg 1 -cartoon/dog/pic_330.jpg 1 -cartoon/dog/pic_324.jpg 1 -cartoon/dog/pic_322.jpg 1 -cartoon/dog/pic_319.jpg 1 -cartoon/dog/pic_320.jpg 1 -cartoon/dog/pic_315.jpg 1 -cartoon/dog/pic_313.jpg 1 -cartoon/dog/pic_314.jpg 1 -cartoon/dog/pic_310.jpg 1 -cartoon/dog/pic_325.jpg 1 -cartoon/dog/pic_316.jpg 1 -cartoon/dog/pic_321.jpg 1 -cartoon/dog/pic_312.jpg 1 -cartoon/dog/pic_069.jpg 1 -cartoon/dog/pic_066.jpg 1 -cartoon/dog/pic_082.jpg 1 -cartoon/dog/pic_078.jpg 1 -cartoon/dog/pic_076.jpg 1 -cartoon/dog/pic_077.jpg 1 -cartoon/dog/pic_074.jpg 1 -cartoon/dog/pic_073.jpg 1 -cartoon/dog/pic_072.jpg 1 -cartoon/dog/pic_071.jpg 1 -cartoon/dog/pic_079.jpg 1 -cartoon/dog/pic_080.jpg 1 -cartoon/dog/pic_083.jpg 1 -cartoon/dog/pic_081.jpg 1 -cartoon/dog/pic_084.jpg 1 -cartoon/dog/pic_085.jpg 1 -cartoon/dog/pic_086.jpg 1 -cartoon/dog/pic_087.jpg 1 -cartoon/dog/pic_088.jpg 1 -cartoon/dog/pic_089.jpg 1 -cartoon/dog/pic_090.jpg 1 -cartoon/dog/pic_094.jpg 1 -cartoon/dog/pic_093.jpg 1 -cartoon/dog/pic_091.jpg 1 -cartoon/dog/pic_092.jpg 1 -cartoon/dog/pic_108.jpg 1 -cartoon/dog/pic_105.jpg 1 -cartoon/dog/pic_104.jpg 1 -cartoon/dog/pic_103.jpg 1 -cartoon/dog/pic_099.jpg 1 -cartoon/dog/pic_101.jpg 1 -cartoon/dog/pic_098.jpg 1 -cartoon/dog/pic_097.jpg 1 -cartoon/dog/pic_096.jpg 1 -cartoon/dog/pic_095.jpg 1 -cartoon/dog/pic_102.jpg 1 -cartoon/dog/pic_106.jpg 1 -cartoon/dog/pic_107.jpg 1 -cartoon/dog/pic_100.jpg 1 -cartoon/dog/pic_113.jpg 1 -cartoon/dog/pic_110.jpg 1 -cartoon/elephant/pic_421.jpg 2 -cartoon/elephant/pic_419.jpg 2 -cartoon/elephant/pic_418.jpg 2 -cartoon/elephant/pic_026.jpg 2 -cartoon/elephant/pic_028.jpg 2 -cartoon/elephant/pic_024.jpg 2 -cartoon/elephant/pic_027.jpg 2 -cartoon/elephant/pic_021.jpg 2 -cartoon/elephant/pic_030.jpg 2 -cartoon/elephant/pic_036.jpg 2 -cartoon/elephant/pic_037.jpg 2 -cartoon/elephant/pic_033.jpg 2 -cartoon/elephant/pic_056.jpg 2 -cartoon/elephant/pic_052.jpg 2 -cartoon/elephant/pic_048.jpg 2 -cartoon/elephant/pic_040.jpg 2 -cartoon/elephant/pic_046.jpg 2 -cartoon/elephant/pic_045.jpg 2 -cartoon/elephant/pic_043.jpg 2 -cartoon/elephant/pic_044.jpg 2 -cartoon/elephant/pic_042.jpg 2 -cartoon/elephant/pic_034.jpg 2 -cartoon/elephant/pic_025.jpg 2 -cartoon/elephant/pic_325.jpg 2 -cartoon/elephant/pic_328.jpg 2 -cartoon/elephant/pic_329.jpg 2 -cartoon/elephant/pic_330.jpg 2 -cartoon/elephant/pic_331.jpg 2 -cartoon/elephant/pic_332.jpg 2 -cartoon/elephant/pic_333.jpg 2 -cartoon/elephant/pic_338.jpg 2 -cartoon/elephant/pic_336.jpg 2 -cartoon/elephant/pic_337.jpg 2 -cartoon/elephant/pic_335.jpg 2 -cartoon/elephant/pic_334.jpg 2 -cartoon/elephant/pic_342.jpg 2 -cartoon/elephant/pic_339.jpg 2 -cartoon/elephant/pic_340.jpg 2 -cartoon/elephant/pic_341.jpg 2 -cartoon/elephant/pic_343.jpg 2 -cartoon/elephant/pic_351.jpg 2 -cartoon/elephant/pic_345.jpg 2 -cartoon/elephant/pic_350.jpg 2 -cartoon/elephant/pic_280.jpg 2 -cartoon/elephant/pic_203.jpg 2 -cartoon/elephant/pic_204.jpg 2 -cartoon/elephant/pic_215.jpg 2 -cartoon/elephant/pic_207.jpg 2 -cartoon/elephant/pic_208.jpg 2 -cartoon/elephant/pic_206.jpg 2 -cartoon/elephant/pic_205.jpg 2 -cartoon/elephant/pic_216.jpg 2 -cartoon/elephant/pic_223.jpg 2 -cartoon/elephant/pic_222.jpg 2 -cartoon/elephant/pic_221.jpg 2 -cartoon/elephant/pic_285.jpg 2 -cartoon/elephant/pic_282.jpg 2 -cartoon/elephant/pic_218.jpg 2 -cartoon/elephant/pic_217.jpg 2 -cartoon/elephant/pic_224.jpg 2 -cartoon/elephant/pic_286.jpg 2 -cartoon/elephant/pic_392.jpg 2 -cartoon/elephant/pic_390.jpg 2 -cartoon/elephant/pic_395.jpg 2 -cartoon/elephant/pic_393.jpg 2 -cartoon/elephant/pic_391.jpg 2 -cartoon/elephant/pic_394.jpg 2 -cartoon/elephant/pic_403.jpg 2 -cartoon/elephant/pic_401.jpg 2 -cartoon/elephant/pic_400.jpg 2 -cartoon/elephant/pic_399.jpg 2 -cartoon/elephant/pic_396.jpg 2 -cartoon/elephant/pic_397.jpg 2 -cartoon/elephant/pic_398.jpg 2 -cartoon/elephant/pic_402.jpg 2 -cartoon/elephant/pic_407.jpg 2 -cartoon/elephant/pic_406.jpg 2 -cartoon/elephant/pic_405.jpg 2 -cartoon/elephant/pic_404.jpg 2 -cartoon/elephant/pic_415.jpg 2 -cartoon/elephant/pic_416.jpg 2 -cartoon/elephant/pic_349.jpg 2 -cartoon/elephant/pic_348.jpg 2 -cartoon/elephant/pic_347.jpg 2 -cartoon/elephant/pic_346.jpg 2 -cartoon/elephant/pic_344.jpg 2 -cartoon/elephant/pic_356.jpg 2 -cartoon/elephant/pic_355.jpg 2 -cartoon/elephant/pic_354.jpg 2 -cartoon/elephant/pic_352.jpg 2 -cartoon/elephant/pic_359.jpg 2 -cartoon/elephant/pic_357.jpg 2 -cartoon/elephant/pic_362.jpg 2 -cartoon/elephant/pic_360.jpg 2 -cartoon/elephant/pic_366.jpg 2 -cartoon/elephant/pic_365.jpg 2 -cartoon/elephant/pic_364.jpg 2 -cartoon/elephant/pic_363.jpg 2 -cartoon/elephant/pic_367.jpg 2 -cartoon/elephant/pic_064.jpg 2 -cartoon/elephant/pic_063.jpg 2 -cartoon/elephant/pic_062.jpg 2 -cartoon/elephant/pic_061.jpg 2 -cartoon/elephant/pic_118.jpg 2 -cartoon/elephant/pic_111.jpg 2 -cartoon/elephant/pic_100.jpg 2 -cartoon/elephant/pic_098.jpg 2 -cartoon/elephant/pic_096.jpg 2 -cartoon/elephant/pic_092.jpg 2 -cartoon/elephant/pic_088.jpg 2 -cartoon/elephant/pic_086.jpg 2 -cartoon/elephant/pic_083.jpg 2 -cartoon/elephant/pic_080.jpg 2 -cartoon/elephant/pic_079.jpg 2 -cartoon/elephant/pic_078.jpg 2 -cartoon/elephant/pic_076.jpg 2 -cartoon/elephant/pic_068.jpg 2 -cartoon/elephant/pic_072.jpg 2 -cartoon/elephant/pic_074.jpg 2 -cartoon/elephant/pic_071.jpg 2 -cartoon/elephant/pic_001.jpg 2 -cartoon/elephant/pic_002.jpg 2 -cartoon/elephant/pic_003.jpg 2 -cartoon/elephant/pic_004.jpg 2 -cartoon/elephant/pic_005.jpg 2 -cartoon/elephant/pic_007.jpg 2 -cartoon/elephant/pic_008.jpg 2 -cartoon/elephant/pic_009.jpg 2 -cartoon/elephant/pic_010.jpg 2 -cartoon/elephant/pic_011.jpg 2 -cartoon/elephant/pic_012.jpg 2 -cartoon/elephant/pic_013.jpg 2 -cartoon/elephant/pic_014.jpg 2 -cartoon/elephant/pic_015.jpg 2 -cartoon/elephant/pic_016.jpg 2 -cartoon/elephant/pic_017.jpg 2 -cartoon/elephant/pic_019.jpg 2 -cartoon/elephant/pic_020.jpg 2 -cartoon/elephant/pic_038.jpg 2 -cartoon/elephant/pic_220.jpg 2 -cartoon/elephant/pic_219.jpg 2 -cartoon/elephant/pic_284.jpg 2 -cartoon/elephant/pic_233.jpg 2 -cartoon/elephant/pic_232.jpg 2 -cartoon/elephant/pic_290.jpg 2 -cartoon/elephant/pic_292.jpg 2 -cartoon/elephant/pic_231.jpg 2 -cartoon/elephant/pic_228.jpg 2 -cartoon/elephant/pic_230.jpg 2 -cartoon/elephant/pic_229.jpg 2 -cartoon/elephant/pic_289.jpg 2 -cartoon/elephant/pic_291.jpg 2 -cartoon/elephant/pic_236.jpg 2 -cartoon/elephant/pic_235.jpg 2 -cartoon/elephant/pic_294.jpg 2 -cartoon/elephant/pic_239.jpg 2 -cartoon/elephant/pic_238.jpg 2 -cartoon/elephant/pic_295.jpg 2 -cartoon/elephant/pic_296.jpg 2 -cartoon/elephant/pic_183.jpg 2 -cartoon/elephant/pic_182.jpg 2 -cartoon/elephant/pic_190.jpg 2 -cartoon/elephant/pic_198.jpg 2 -cartoon/elephant/pic_197.jpg 2 -cartoon/elephant/pic_196.jpg 2 -cartoon/elephant/pic_273.jpg 2 -cartoon/elephant/pic_194.jpg 2 -cartoon/elephant/pic_272.jpg 2 -cartoon/elephant/pic_195.jpg 2 -cartoon/elephant/pic_192.jpg 2 -cartoon/elephant/pic_276.jpg 2 -cartoon/elephant/pic_279.jpg 2 -cartoon/elephant/pic_202.jpg 2 -cartoon/elephant/pic_275.jpg 2 -cartoon/elephant/pic_274.jpg 2 -cartoon/elephant/pic_200.jpg 2 -cartoon/elephant/pic_201.jpg 2 -cartoon/elephant/pic_199.jpg 2 -cartoon/elephant/pic_433.jpg 2 -cartoon/elephant/pic_434.jpg 2 -cartoon/elephant/pic_435.jpg 2 -cartoon/elephant/pic_432.jpg 2 -cartoon/elephant/pic_439.jpg 2 -cartoon/elephant/pic_427.jpg 2 -cartoon/elephant/pic_440.jpg 2 -cartoon/elephant/pic_438.jpg 2 -cartoon/elephant/pic_426.jpg 2 -cartoon/elephant/pic_449.jpg 2 -cartoon/elephant/pic_447.jpg 2 -cartoon/elephant/pic_448.jpg 2 -cartoon/elephant/pic_444.jpg 2 -cartoon/elephant/pic_443.jpg 2 -cartoon/elephant/pic_442.jpg 2 -cartoon/elephant/pic_446.jpg 2 -cartoon/elephant/pic_464.jpg 2 -cartoon/elephant/pic_368.jpg 2 -cartoon/elephant/pic_370.jpg 2 -cartoon/elephant/pic_372.jpg 2 -cartoon/elephant/pic_373.jpg 2 -cartoon/elephant/pic_374.jpg 2 -cartoon/elephant/pic_376.jpg 2 -cartoon/elephant/pic_375.jpg 2 -cartoon/elephant/pic_378.jpg 2 -cartoon/elephant/pic_377.jpg 2 -cartoon/elephant/pic_381.jpg 2 -cartoon/elephant/pic_382.jpg 2 -cartoon/elephant/pic_383.jpg 2 -cartoon/elephant/pic_384.jpg 2 -cartoon/elephant/pic_385.jpg 2 -cartoon/elephant/pic_389.jpg 2 -cartoon/elephant/pic_388.jpg 2 -cartoon/elephant/pic_387.jpg 2 -cartoon/elephant/pic_023.jpg 2 -cartoon/elephant/pic_022.jpg 2 -cartoon/elephant/pic_039.jpg 2 -cartoon/elephant/pic_053.jpg 2 -cartoon/elephant/pic_049.jpg 2 -cartoon/elephant/pic_047.jpg 2 -cartoon/elephant/pic_041.jpg 2 -cartoon/elephant/pic_050.jpg 2 -cartoon/elephant/pic_035.jpg 2 -cartoon/elephant/pic_057.jpg 2 -cartoon/elephant/pic_032.jpg 2 -cartoon/elephant/pic_055.jpg 2 -cartoon/elephant/pic_058.jpg 2 -cartoon/elephant/pic_029.jpg 2 -cartoon/elephant/pic_051.jpg 2 -cartoon/elephant/pic_054.jpg 2 -cartoon/elephant/pic_059.jpg 2 -cartoon/elephant/pic_060.jpg 2 -cartoon/elephant/pic_066.jpg 2 -cartoon/elephant/pic_065.jpg 2 -cartoon/elephant/pic_085.jpg 2 -cartoon/elephant/pic_094.jpg 2 -cartoon/elephant/pic_091.jpg 2 -cartoon/elephant/pic_110.jpg 2 -cartoon/elephant/pic_147.jpg 2 -cartoon/elephant/pic_149.jpg 2 -cartoon/elephant/pic_140.jpg 2 -cartoon/elephant/pic_135.jpg 2 -cartoon/elephant/pic_115.jpg 2 -cartoon/elephant/pic_089.jpg 2 -cartoon/elephant/pic_107.jpg 2 -cartoon/elephant/pic_104.jpg 2 -cartoon/elephant/pic_095.jpg 2 -cartoon/elephant/pic_142.jpg 2 -cartoon/elephant/pic_081.jpg 2 -cartoon/elephant/pic_090.jpg 2 -cartoon/elephant/pic_097.jpg 2 -cartoon/elephant/pic_106.jpg 2 -cartoon/elephant/pic_151.jpg 2 -cartoon/elephant/pic_129.jpg 2 -cartoon/elephant/pic_121.jpg 2 -cartoon/elephant/pic_259.jpg 2 -cartoon/elephant/pic_174.jpg 2 -cartoon/elephant/pic_260.jpg 2 -cartoon/elephant/pic_180.jpg 2 -cartoon/elephant/pic_178.jpg 2 -cartoon/elephant/pic_177.jpg 2 -cartoon/elephant/pic_176.jpg 2 -cartoon/elephant/pic_264.jpg 2 -cartoon/elephant/pic_175.jpg 2 -cartoon/elephant/pic_263.jpg 2 -cartoon/elephant/pic_262.jpg 2 -cartoon/elephant/pic_261.jpg 2 -cartoon/elephant/pic_181.jpg 2 -cartoon/elephant/pic_268.jpg 2 -cartoon/elephant/pic_179.jpg 2 -cartoon/elephant/pic_269.jpg 2 -cartoon/elephant/pic_191.jpg 2 -cartoon/elephant/pic_271.jpg 2 -cartoon/elephant/pic_184.jpg 2 -cartoon/elephant/pic_185.jpg 2 -cartoon/elephant/pic_270.jpg 2 -cartoon/elephant/pic_070.jpg 2 -cartoon/elephant/pic_067.jpg 2 -cartoon/elephant/pic_069.jpg 2 -cartoon/elephant/pic_137.jpg 2 -cartoon/elephant/pic_136.jpg 2 -cartoon/elephant/pic_108.jpg 2 -cartoon/elephant/pic_116.jpg 2 -cartoon/elephant/pic_117.jpg 2 -cartoon/elephant/pic_103.jpg 2 -cartoon/elephant/pic_093.jpg 2 -cartoon/elephant/pic_099.jpg 2 -cartoon/elephant/pic_084.jpg 2 -cartoon/elephant/pic_102.jpg 2 -cartoon/elephant/pic_087.jpg 2 -cartoon/elephant/pic_082.jpg 2 -cartoon/elephant/pic_073.jpg 2 -cartoon/elephant/pic_075.jpg 2 -cartoon/elephant/pic_077.jpg 2 -cartoon/elephant/pic_473.jpg 2 -cartoon/elephant/pic_475.jpg 2 -cartoon/elephant/pic_474.jpg 2 -cartoon/elephant/pic_476.jpg 2 -cartoon/elephant/pic_481.jpg 2 -cartoon/elephant/pic_480.jpg 2 -cartoon/elephant/pic_478.jpg 2 -cartoon/elephant/pic_479.jpg 2 -cartoon/elephant/pic_477.jpg 2 -cartoon/elephant/pic_482.jpg 2 -cartoon/elephant/pic_485.jpg 2 -cartoon/elephant/pic_484.jpg 2 -cartoon/elephant/pic_483.jpg 2 -cartoon/elephant/pic_486.jpg 2 -cartoon/elephant/pic_487.jpg 2 -cartoon/elephant/pic_491.jpg 2 -cartoon/elephant/pic_493.jpg 2 -cartoon/elephant/pic_305.jpg 2 -cartoon/elephant/pic_307.jpg 2 -cartoon/elephant/pic_311.jpg 2 -cartoon/elephant/pic_308.jpg 2 -cartoon/elephant/pic_312.jpg 2 -cartoon/elephant/pic_310.jpg 2 -cartoon/elephant/pic_313.jpg 2 -cartoon/elephant/pic_309.jpg 2 -cartoon/elephant/pic_314.jpg 2 -cartoon/elephant/pic_316.jpg 2 -cartoon/elephant/pic_319.jpg 2 -cartoon/elephant/pic_318.jpg 2 -cartoon/elephant/pic_322.jpg 2 -cartoon/elephant/pic_320.jpg 2 -cartoon/elephant/pic_324.jpg 2 -cartoon/elephant/pic_323.jpg 2 -cartoon/elephant/pic_327.jpg 2 -cartoon/elephant/pic_326.jpg 2 -cartoon/elephant/pic_114.jpg 2 -cartoon/elephant/pic_146.jpg 2 -cartoon/elephant/pic_131.jpg 2 -cartoon/elephant/pic_132.jpg 2 -cartoon/elephant/pic_213.jpg 2 -cartoon/elephant/pic_210.jpg 2 -cartoon/elephant/pic_186.jpg 2 -cartoon/elephant/pic_188.jpg 2 -cartoon/elephant/pic_214.jpg 2 -cartoon/elephant/pic_152.jpg 2 -cartoon/elephant/pic_119.jpg 2 -cartoon/elephant/pic_133.jpg 2 -cartoon/elephant/pic_139.jpg 2 -cartoon/elephant/pic_212.jpg 2 -cartoon/elephant/pic_209.jpg 2 -cartoon/elephant/pic_126.jpg 2 -cartoon/elephant/pic_130.jpg 2 -cartoon/elephant/pic_187.jpg 2 -cartoon/elephant/pic_159.jpg 2 -cartoon/elephant/pic_462.jpg 2 -cartoon/elephant/pic_463.jpg 2 -cartoon/elephant/pic_460.jpg 2 -cartoon/elephant/pic_461.jpg 2 -cartoon/elephant/pic_458.jpg 2 -cartoon/elephant/pic_456.jpg 2 -cartoon/elephant/pic_454.jpg 2 -cartoon/elephant/pic_453.jpg 2 -cartoon/elephant/pic_452.jpg 2 -cartoon/elephant/pic_450.jpg 2 -cartoon/elephant/pic_468.jpg 2 -cartoon/elephant/pic_459.jpg 2 -cartoon/elephant/pic_455.jpg 2 -cartoon/elephant/pic_457.jpg 2 -cartoon/elephant/pic_466.jpg 2 -cartoon/elephant/pic_465.jpg 2 -cartoon/elephant/pic_471.jpg 2 -cartoon/elephant/pic_469.jpg 2 -cartoon/elephant/pic_496.jpg 2 -cartoon/elephant/pic_495.jpg 2 -cartoon/elephant/pic_497.jpg 2 -cartoon/elephant/pic_498.jpg 2 -cartoon/elephant/pic_499.jpg 2 -cartoon/elephant/pic_502.jpg 2 -cartoon/elephant/pic_504.jpg 2 -cartoon/elephant/pic_501.jpg 2 -cartoon/elephant/pic_505.jpg 2 -cartoon/elephant/pic_245.jpg 2 -cartoon/elephant/pic_246.jpg 2 -cartoon/elephant/pic_253.jpg 2 -cartoon/elephant/pic_299.jpg 2 -cartoon/elephant/pic_278.jpg 2 -cartoon/elephant/pic_288.jpg 2 -cartoon/elephant/pic_304.jpg 2 -cartoon/elephant/pic_303.jpg 2 -cartoon/elephant/pic_266.jpg 2 -cartoon/elephant/pic_265.jpg 2 -cartoon/elephant/pic_256.jpg 2 -cartoon/elephant/pic_254.jpg 2 -cartoon/elephant/pic_255.jpg 2 -cartoon/elephant/pic_306.jpg 2 -cartoon/elephant/pic_293.jpg 2 -cartoon/elephant/pic_302.jpg 2 -cartoon/elephant/pic_301.jpg 2 -cartoon/elephant/pic_300.jpg 2 -cartoon/elephant/pic_138.jpg 2 -cartoon/elephant/pic_125.jpg 2 -cartoon/elephant/pic_112.jpg 2 -cartoon/elephant/pic_144.jpg 2 -cartoon/elephant/pic_101.jpg 2 -cartoon/elephant/pic_122.jpg 2 -cartoon/elephant/pic_120.jpg 2 -cartoon/elephant/pic_105.jpg 2 -cartoon/elephant/pic_189.jpg 2 -cartoon/elephant/pic_141.jpg 2 -cartoon/elephant/pic_143.jpg 2 -cartoon/elephant/pic_160.jpg 2 -cartoon/elephant/pic_113.jpg 2 -cartoon/elephant/pic_145.jpg 2 -cartoon/elephant/pic_109.jpg 2 -cartoon/elephant/pic_148.jpg 2 -cartoon/elephant/pic_128.jpg 2 -cartoon/elephant/pic_127.jpg 2 -cartoon/elephant/pic_150.jpg 2 -cartoon/elephant/pic_124.jpg 2 -cartoon/giraffe/pic_098.jpg 3 -cartoon/giraffe/pic_097.jpg 3 -cartoon/giraffe/pic_107.jpg 3 -cartoon/giraffe/pic_109.jpg 3 -cartoon/giraffe/pic_285.jpg 3 -cartoon/giraffe/pic_282.jpg 3 -cartoon/giraffe/pic_284.jpg 3 -cartoon/giraffe/pic_287.jpg 3 -cartoon/giraffe/pic_286.jpg 3 -cartoon/giraffe/pic_298.jpg 3 -cartoon/giraffe/pic_296.jpg 3 -cartoon/giraffe/pic_294.jpg 3 -cartoon/giraffe/pic_293.jpg 3 -cartoon/giraffe/pic_292.jpg 3 -cartoon/giraffe/pic_290.jpg 3 -cartoon/giraffe/pic_288.jpg 3 -cartoon/giraffe/pic_291.jpg 3 -cartoon/giraffe/pic_320.jpg 3 -cartoon/giraffe/pic_313.jpg 3 -cartoon/giraffe/pic_305.jpg 3 -cartoon/giraffe/pic_307.jpg 3 -cartoon/giraffe/pic_306.jpg 3 -cartoon/giraffe/pic_303.jpg 3 -cartoon/giraffe/pic_152.jpg 3 -cartoon/giraffe/pic_153.jpg 3 -cartoon/giraffe/pic_151.jpg 3 -cartoon/giraffe/pic_155.jpg 3 -cartoon/giraffe/pic_156.jpg 3 -cartoon/giraffe/pic_157.jpg 3 -cartoon/giraffe/pic_159.jpg 3 -cartoon/giraffe/pic_160.jpg 3 -cartoon/giraffe/pic_161.jpg 3 -cartoon/giraffe/pic_162.jpg 3 -cartoon/giraffe/pic_158.jpg 3 -cartoon/giraffe/pic_163.jpg 3 -cartoon/giraffe/pic_164.jpg 3 -cartoon/giraffe/pic_165.jpg 3 -cartoon/giraffe/pic_166.jpg 3 -cartoon/giraffe/pic_167.jpg 3 -cartoon/giraffe/pic_168.jpg 3 -cartoon/giraffe/pic_170.jpg 3 -cartoon/giraffe/pic_369.jpg 3 -cartoon/giraffe/pic_368.jpg 3 -cartoon/giraffe/pic_367.jpg 3 -cartoon/giraffe/pic_365.jpg 3 -cartoon/giraffe/pic_364.jpg 3 -cartoon/giraffe/pic_363.jpg 3 -cartoon/giraffe/pic_373.jpg 3 -cartoon/giraffe/pic_370.jpg 3 -cartoon/giraffe/pic_376.jpg 3 -cartoon/giraffe/pic_375.jpg 3 -cartoon/giraffe/pic_377.jpg 3 -cartoon/giraffe/pic_379.jpg 3 -cartoon/giraffe/pic_381.jpg 3 -cartoon/giraffe/pic_382.jpg 3 -cartoon/giraffe/pic_380.jpg 3 -cartoon/giraffe/pic_383.jpg 3 -cartoon/giraffe/pic_385.jpg 3 -cartoon/giraffe/pic_384.jpg 3 -cartoon/giraffe/pic_386.jpg 3 -cartoon/giraffe/pic_031.jpg 3 -cartoon/giraffe/pic_030.jpg 3 -cartoon/giraffe/pic_029.jpg 3 -cartoon/giraffe/pic_027.jpg 3 -cartoon/giraffe/pic_023.jpg 3 -cartoon/giraffe/pic_026.jpg 3 -cartoon/giraffe/pic_033.jpg 3 -cartoon/giraffe/pic_028.jpg 3 -cartoon/giraffe/pic_032.jpg 3 -cartoon/giraffe/pic_043.jpg 3 -cartoon/giraffe/pic_042.jpg 3 -cartoon/giraffe/pic_041.jpg 3 -cartoon/giraffe/pic_039.jpg 3 -cartoon/giraffe/pic_038.jpg 3 -cartoon/giraffe/pic_036.jpg 3 -cartoon/giraffe/pic_035.jpg 3 -cartoon/giraffe/pic_037.jpg 3 -cartoon/giraffe/pic_040.jpg 3 -cartoon/giraffe/pic_051.jpg 3 -cartoon/giraffe/pic_050.jpg 3 -cartoon/giraffe/pic_048.jpg 3 -cartoon/giraffe/pic_047.jpg 3 -cartoon/giraffe/pic_045.jpg 3 -cartoon/giraffe/pic_044.jpg 3 -cartoon/giraffe/pic_053.jpg 3 -cartoon/giraffe/pic_052.jpg 3 -cartoon/giraffe/pic_054.jpg 3 -cartoon/giraffe/pic_056.jpg 3 -cartoon/giraffe/pic_055.jpg 3 -cartoon/giraffe/pic_057.jpg 3 -cartoon/giraffe/pic_059.jpg 3 -cartoon/giraffe/pic_060.jpg 3 -cartoon/giraffe/pic_058.jpg 3 -cartoon/giraffe/pic_062.jpg 3 -cartoon/giraffe/pic_061.jpg 3 -cartoon/giraffe/pic_067.jpg 3 -cartoon/giraffe/pic_064.jpg 3 -cartoon/giraffe/pic_065.jpg 3 -cartoon/giraffe/pic_066.jpg 3 -cartoon/giraffe/pic_233.jpg 3 -cartoon/giraffe/pic_235.jpg 3 -cartoon/giraffe/pic_236.jpg 3 -cartoon/giraffe/pic_238.jpg 3 -cartoon/giraffe/pic_237.jpg 3 -cartoon/giraffe/pic_239.jpg 3 -cartoon/giraffe/pic_130.jpg 3 -cartoon/giraffe/pic_131.jpg 3 -cartoon/giraffe/pic_134.jpg 3 -cartoon/giraffe/pic_133.jpg 3 -cartoon/giraffe/pic_132.jpg 3 -cartoon/giraffe/pic_136.jpg 3 -cartoon/giraffe/pic_138.jpg 3 -cartoon/giraffe/pic_139.jpg 3 -cartoon/giraffe/pic_141.jpg 3 -cartoon/giraffe/pic_143.jpg 3 -cartoon/giraffe/pic_145.jpg 3 -cartoon/giraffe/pic_147.jpg 3 -cartoon/giraffe/pic_144.jpg 3 -cartoon/giraffe/pic_146.jpg 3 -cartoon/giraffe/pic_149.jpg 3 -cartoon/giraffe/pic_148.jpg 3 -cartoon/giraffe/pic_343.jpg 3 -cartoon/giraffe/pic_346.jpg 3 -cartoon/giraffe/pic_352.jpg 3 -cartoon/giraffe/pic_355.jpg 3 -cartoon/giraffe/pic_354.jpg 3 -cartoon/giraffe/pic_351.jpg 3 -cartoon/giraffe/pic_350.jpg 3 -cartoon/giraffe/pic_353.jpg 3 -cartoon/giraffe/pic_349.jpg 3 -cartoon/giraffe/pic_359.jpg 3 -cartoon/giraffe/pic_360.jpg 3 -cartoon/giraffe/pic_361.jpg 3 -cartoon/giraffe/pic_358.jpg 3 -cartoon/giraffe/pic_356.jpg 3 -cartoon/giraffe/pic_374.jpg 3 -cartoon/giraffe/pic_372.jpg 3 -cartoon/giraffe/pic_371.jpg 3 -cartoon/giraffe/pic_174.jpg 3 -cartoon/giraffe/pic_172.jpg 3 -cartoon/giraffe/pic_173.jpg 3 -cartoon/giraffe/pic_177.jpg 3 -cartoon/giraffe/pic_175.jpg 3 -cartoon/giraffe/pic_176.jpg 3 -cartoon/giraffe/pic_178.jpg 3 -cartoon/giraffe/pic_179.jpg 3 -cartoon/giraffe/pic_180.jpg 3 -cartoon/giraffe/pic_181.jpg 3 -cartoon/giraffe/pic_182.jpg 3 -cartoon/giraffe/pic_185.jpg 3 -cartoon/giraffe/pic_183.jpg 3 -cartoon/giraffe/pic_186.jpg 3 -cartoon/giraffe/pic_187.jpg 3 -cartoon/giraffe/pic_188.jpg 3 -cartoon/giraffe/pic_189.jpg 3 -cartoon/giraffe/pic_190.jpg 3 -cartoon/giraffe/pic_192.jpg 3 -cartoon/giraffe/pic_262.jpg 3 -cartoon/giraffe/pic_265.jpg 3 -cartoon/giraffe/pic_266.jpg 3 -cartoon/giraffe/pic_264.jpg 3 -cartoon/giraffe/pic_267.jpg 3 -cartoon/giraffe/pic_268.jpg 3 -cartoon/giraffe/pic_269.jpg 3 -cartoon/giraffe/pic_270.jpg 3 -cartoon/giraffe/pic_272.jpg 3 -cartoon/giraffe/pic_271.jpg 3 -cartoon/giraffe/pic_275.jpg 3 -cartoon/giraffe/pic_274.jpg 3 -cartoon/giraffe/pic_273.jpg 3 -cartoon/giraffe/pic_276.jpg 3 -cartoon/giraffe/pic_279.jpg 3 -cartoon/giraffe/pic_277.jpg 3 -cartoon/giraffe/pic_278.jpg 3 -cartoon/giraffe/pic_280.jpg 3 -cartoon/giraffe/pic_063.jpg 3 -cartoon/giraffe/pic_068.jpg 3 -cartoon/giraffe/pic_080.jpg 3 -cartoon/giraffe/pic_082.jpg 3 -cartoon/giraffe/pic_079.jpg 3 -cartoon/giraffe/pic_077.jpg 3 -cartoon/giraffe/pic_078.jpg 3 -cartoon/giraffe/pic_074.jpg 3 -cartoon/giraffe/pic_075.jpg 3 -cartoon/giraffe/pic_073.jpg 3 -cartoon/giraffe/pic_072.jpg 3 -cartoon/giraffe/pic_071.jpg 3 -cartoon/giraffe/pic_069.jpg 3 -cartoon/giraffe/pic_083.jpg 3 -cartoon/giraffe/pic_084.jpg 3 -cartoon/giraffe/pic_076.jpg 3 -cartoon/giraffe/pic_089.jpg 3 -cartoon/giraffe/pic_088.jpg 3 -cartoon/giraffe/pic_194.jpg 3 -cartoon/giraffe/pic_193.jpg 3 -cartoon/giraffe/pic_195.jpg 3 -cartoon/giraffe/pic_196.jpg 3 -cartoon/giraffe/pic_197.jpg 3 -cartoon/giraffe/pic_198.jpg 3 -cartoon/giraffe/pic_199.jpg 3 -cartoon/giraffe/pic_200.jpg 3 -cartoon/giraffe/pic_201.jpg 3 -cartoon/giraffe/pic_202.jpg 3 -cartoon/giraffe/pic_203.jpg 3 -cartoon/giraffe/pic_204.jpg 3 -cartoon/giraffe/pic_205.jpg 3 -cartoon/giraffe/pic_206.jpg 3 -cartoon/giraffe/pic_209.jpg 3 -cartoon/giraffe/pic_208.jpg 3 -cartoon/giraffe/pic_210.jpg 3 -cartoon/giraffe/pic_212.jpg 3 -cartoon/giraffe/pic_211.jpg 3 -cartoon/giraffe/pic_216.jpg 3 -cartoon/giraffe/pic_102.jpg 3 -cartoon/giraffe/pic_105.jpg 3 -cartoon/giraffe/pic_121.jpg 3 -cartoon/giraffe/pic_124.jpg 3 -cartoon/giraffe/pic_122.jpg 3 -cartoon/giraffe/pic_119.jpg 3 -cartoon/giraffe/pic_118.jpg 3 -cartoon/giraffe/pic_117.jpg 3 -cartoon/giraffe/pic_115.jpg 3 -cartoon/giraffe/pic_116.jpg 3 -cartoon/giraffe/pic_114.jpg 3 -cartoon/giraffe/pic_112.jpg 3 -cartoon/giraffe/pic_111.jpg 3 -cartoon/giraffe/pic_123.jpg 3 -cartoon/giraffe/pic_113.jpg 3 -cartoon/giraffe/pic_120.jpg 3 -cartoon/giraffe/pic_127.jpg 3 -cartoon/giraffe/pic_126.jpg 3 -cartoon/giraffe/pic_125.jpg 3 -cartoon/giraffe/pic_129.jpg 3 -cartoon/giraffe/pic_128.jpg 3 -cartoon/giraffe/pic_001.jpg 3 -cartoon/giraffe/pic_002.jpg 3 -cartoon/giraffe/pic_003.jpg 3 -cartoon/giraffe/pic_004.jpg 3 -cartoon/giraffe/pic_215.jpg 3 -cartoon/giraffe/pic_214.jpg 3 -cartoon/giraffe/pic_213.jpg 3 -cartoon/giraffe/pic_218.jpg 3 -cartoon/giraffe/pic_219.jpg 3 -cartoon/giraffe/pic_217.jpg 3 -cartoon/giraffe/pic_220.jpg 3 -cartoon/giraffe/pic_221.jpg 3 -cartoon/giraffe/pic_222.jpg 3 -cartoon/giraffe/pic_224.jpg 3 -cartoon/giraffe/pic_225.jpg 3 -cartoon/giraffe/pic_226.jpg 3 -cartoon/giraffe/pic_227.jpg 3 -cartoon/giraffe/pic_228.jpg 3 -cartoon/giraffe/pic_229.jpg 3 -cartoon/giraffe/pic_230.jpg 3 -cartoon/giraffe/pic_231.jpg 3 -cartoon/giraffe/pic_232.jpg 3 -cartoon/giraffe/pic_344.jpg 3 -cartoon/giraffe/pic_345.jpg 3 -cartoon/giraffe/pic_342.jpg 3 -cartoon/giraffe/pic_334.jpg 3 -cartoon/giraffe/pic_335.jpg 3 -cartoon/giraffe/pic_327.jpg 3 -cartoon/giraffe/pic_330.jpg 3 -cartoon/giraffe/pic_333.jpg 3 -cartoon/giraffe/pic_328.jpg 3 -cartoon/giraffe/pic_331.jpg 3 -cartoon/giraffe/pic_326.jpg 3 -cartoon/giraffe/pic_324.jpg 3 -cartoon/giraffe/pic_323.jpg 3 -cartoon/giraffe/pic_347.jpg 3 -cartoon/giraffe/pic_341.jpg 3 -cartoon/giraffe/pic_336.jpg 3 -cartoon/giraffe/pic_339.jpg 3 -cartoon/giraffe/pic_337.jpg 3 -cartoon/giraffe/pic_304.jpg 3 -cartoon/giraffe/pic_302.jpg 3 -cartoon/giraffe/pic_297.jpg 3 -cartoon/giraffe/pic_295.jpg 3 -cartoon/giraffe/pic_299.jpg 3 -cartoon/giraffe/pic_316.jpg 3 -cartoon/giraffe/pic_312.jpg 3 -cartoon/giraffe/pic_318.jpg 3 -cartoon/giraffe/pic_319.jpg 3 -cartoon/giraffe/pic_308.jpg 3 -cartoon/giraffe/pic_310.jpg 3 -cartoon/giraffe/pic_309.jpg 3 -cartoon/giraffe/pic_301.jpg 3 -cartoon/giraffe/pic_311.jpg 3 -cartoon/giraffe/pic_322.jpg 3 -cartoon/giraffe/pic_321.jpg 3 -cartoon/giraffe/pic_300.jpg 3 -cartoon/giraffe/pic_317.jpg 3 -cartoon/giraffe/pic_340.jpg 3 -cartoon/giraffe/pic_242.jpg 3 -cartoon/giraffe/pic_241.jpg 3 -cartoon/giraffe/pic_243.jpg 3 -cartoon/giraffe/pic_244.jpg 3 -cartoon/giraffe/pic_245.jpg 3 -cartoon/giraffe/pic_246.jpg 3 -cartoon/giraffe/pic_247.jpg 3 -cartoon/giraffe/pic_249.jpg 3 -cartoon/giraffe/pic_248.jpg 3 -cartoon/giraffe/pic_251.jpg 3 -cartoon/giraffe/pic_252.jpg 3 -cartoon/giraffe/pic_253.jpg 3 -cartoon/giraffe/pic_254.jpg 3 -cartoon/giraffe/pic_256.jpg 3 -cartoon/giraffe/pic_257.jpg 3 -cartoon/giraffe/pic_259.jpg 3 -cartoon/giraffe/pic_260.jpg 3 -cartoon/giraffe/pic_261.jpg 3 -cartoon/guitar/pic_019.jpg 4 -cartoon/guitar/pic_022.jpg 4 -cartoon/guitar/pic_028.jpg 4 -cartoon/guitar/pic_025.jpg 4 -cartoon/guitar/pic_069.jpg 4 -cartoon/guitar/pic_067.jpg 4 -cartoon/guitar/pic_068.jpg 4 -cartoon/guitar/pic_063.jpg 4 -cartoon/guitar/pic_066.jpg 4 -cartoon/guitar/pic_064.jpg 4 -cartoon/guitar/pic_071.jpg 4 -cartoon/guitar/pic_070.jpg 4 -cartoon/guitar/pic_076.jpg 4 -cartoon/guitar/pic_074.jpg 4 -cartoon/guitar/pic_077.jpg 4 -cartoon/guitar/pic_075.jpg 4 -cartoon/guitar/pic_079.jpg 4 -cartoon/guitar/pic_078.jpg 4 -cartoon/guitar/pic_112.jpg 4 -cartoon/guitar/pic_135.jpg 4 -cartoon/guitar/pic_151.jpg 4 -cartoon/guitar/pic_133.jpg 4 -cartoon/guitar/pic_128.jpg 4 -cartoon/guitar/pic_122.jpg 4 -cartoon/guitar/pic_024.jpg 4 -cartoon/guitar/pic_023.jpg 4 -cartoon/guitar/pic_027.jpg 4 -cartoon/guitar/pic_034.jpg 4 -cartoon/guitar/pic_032.jpg 4 -cartoon/guitar/pic_031.jpg 4 -cartoon/guitar/pic_030.jpg 4 -cartoon/guitar/pic_029.jpg 4 -cartoon/guitar/pic_037.jpg 4 -cartoon/guitar/pic_036.jpg 4 -cartoon/guitar/pic_038.jpg 4 -cartoon/guitar/pic_040.jpg 4 -cartoon/guitar/pic_048.jpg 4 -cartoon/guitar/pic_045.jpg 4 -cartoon/guitar/pic_044.jpg 4 -cartoon/guitar/pic_043.jpg 4 -cartoon/guitar/pic_042.jpg 4 -cartoon/guitar/pic_021.jpg 4 -cartoon/guitar/pic_018.jpg 4 -cartoon/guitar/pic_039.jpg 4 -cartoon/guitar/pic_026.jpg 4 -cartoon/guitar/pic_104.jpg 4 -cartoon/guitar/pic_098.jpg 4 -cartoon/guitar/pic_146.jpg 4 -cartoon/guitar/pic_131.jpg 4 -cartoon/guitar/pic_106.jpg 4 -cartoon/guitar/pic_124.jpg 4 -cartoon/guitar/pic_137.jpg 4 -cartoon/guitar/pic_092.jpg 4 -cartoon/guitar/pic_096.jpg 4 -cartoon/guitar/pic_086.jpg 4 -cartoon/guitar/pic_145.jpg 4 -cartoon/guitar/pic_123.jpg 4 -cartoon/guitar/pic_111.jpg 4 -cartoon/guitar/pic_116.jpg 4 -cartoon/guitar/pic_150.jpg 4 -cartoon/guitar/pic_113.jpg 4 -cartoon/guitar/pic_107.jpg 4 -cartoon/guitar/pic_103.jpg 4 -cartoon/guitar/pic_097.jpg 4 -cartoon/guitar/pic_090.jpg 4 -cartoon/guitar/pic_088.jpg 4 -cartoon/guitar/pic_085.jpg 4 -cartoon/guitar/pic_083.jpg 4 -cartoon/guitar/pic_084.jpg 4 -cartoon/guitar/pic_082.jpg 4 -cartoon/guitar/pic_081.jpg 4 -cartoon/guitar/pic_080.jpg 4 -cartoon/guitar/pic_139.jpg 4 -cartoon/guitar/pic_140.jpg 4 -cartoon/guitar/pic_125.jpg 4 -cartoon/guitar/pic_117.jpg 4 -cartoon/guitar/pic_033.jpg 4 -cartoon/guitar/pic_035.jpg 4 -cartoon/guitar/pic_047.jpg 4 -cartoon/guitar/pic_046.jpg 4 -cartoon/guitar/pic_049.jpg 4 -cartoon/guitar/pic_052.jpg 4 -cartoon/guitar/pic_051.jpg 4 -cartoon/guitar/pic_053.jpg 4 -cartoon/guitar/pic_050.jpg 4 -cartoon/guitar/pic_054.jpg 4 -cartoon/guitar/pic_056.jpg 4 -cartoon/guitar/pic_055.jpg 4 -cartoon/guitar/pic_057.jpg 4 -cartoon/guitar/pic_060.jpg 4 -cartoon/guitar/pic_058.jpg 4 -cartoon/guitar/pic_059.jpg 4 -cartoon/guitar/pic_061.jpg 4 -cartoon/guitar/pic_065.jpg 4 -cartoon/guitar/pic_062.jpg 4 -cartoon/guitar/pic_073.jpg 4 -cartoon/guitar/pic_105.jpg 4 -cartoon/guitar/pic_136.jpg 4 -cartoon/guitar/pic_129.jpg 4 -cartoon/guitar/pic_110.jpg 4 -cartoon/guitar/pic_142.jpg 4 -cartoon/guitar/pic_089.jpg 4 -cartoon/guitar/pic_127.jpg 4 -cartoon/guitar/pic_148.jpg 4 -cartoon/guitar/pic_093.jpg 4 -cartoon/guitar/pic_100.jpg 4 -cartoon/guitar/pic_144.jpg 4 -cartoon/guitar/pic_149.jpg 4 -cartoon/guitar/pic_119.jpg 4 -cartoon/guitar/pic_121.jpg 4 -cartoon/guitar/pic_130.jpg 4 -cartoon/guitar/pic_094.jpg 4 -cartoon/guitar/pic_147.jpg 4 -cartoon/guitar/pic_099.jpg 4 -cartoon/guitar/pic_101.jpg 4 -cartoon/guitar/pic_132.jpg 4 -cartoon/guitar/pic_152.jpg 4 -cartoon/guitar/pic_134.jpg 4 -cartoon/guitar/pic_118.jpg 4 -cartoon/guitar/pic_001.jpg 4 -cartoon/guitar/pic_002.jpg 4 -cartoon/horse/pic_153.jpg 5 -cartoon/horse/pic_158.jpg 5 -cartoon/horse/pic_157.jpg 5 -cartoon/horse/pic_010.jpg 5 -cartoon/horse/pic_011.jpg 5 -cartoon/horse/pic_012.jpg 5 -cartoon/horse/pic_013.jpg 5 -cartoon/horse/pic_014.jpg 5 -cartoon/horse/pic_015.jpg 5 -cartoon/horse/pic_016.jpg 5 -cartoon/horse/pic_017.jpg 5 -cartoon/horse/pic_018.jpg 5 -cartoon/horse/pic_019.jpg 5 -cartoon/horse/pic_020.jpg 5 -cartoon/horse/pic_022.jpg 5 -cartoon/horse/pic_021.jpg 5 -cartoon/horse/pic_023.jpg 5 -cartoon/horse/pic_024.jpg 5 -cartoon/horse/pic_025.jpg 5 -cartoon/horse/pic_026.jpg 5 -cartoon/horse/pic_027.jpg 5 -cartoon/horse/pic_028.jpg 5 -cartoon/horse/pic_029.jpg 5 -cartoon/horse/pic_030.jpg 5 -cartoon/horse/pic_267.jpg 5 -cartoon/horse/pic_266.jpg 5 -cartoon/horse/pic_271.jpg 5 -cartoon/horse/pic_270.jpg 5 -cartoon/horse/pic_261.jpg 5 -cartoon/horse/pic_273.jpg 5 -cartoon/horse/pic_272.jpg 5 -cartoon/horse/pic_274.jpg 5 -cartoon/horse/pic_275.jpg 5 -cartoon/horse/pic_277.jpg 5 -cartoon/horse/pic_276.jpg 5 -cartoon/horse/pic_278.jpg 5 -cartoon/horse/pic_279.jpg 5 -cartoon/horse/pic_283.jpg 5 -cartoon/horse/pic_284.jpg 5 -cartoon/horse/pic_287.jpg 5 -cartoon/horse/pic_286.jpg 5 -cartoon/horse/pic_288.jpg 5 -cartoon/horse/pic_289.jpg 5 -cartoon/horse/pic_062.jpg 5 -cartoon/horse/pic_067.jpg 5 -cartoon/horse/pic_064.jpg 5 -cartoon/horse/pic_059.jpg 5 -cartoon/horse/pic_057.jpg 5 -cartoon/horse/pic_056.jpg 5 -cartoon/horse/pic_031.jpg 5 -cartoon/horse/pic_032.jpg 5 -cartoon/horse/pic_033.jpg 5 -cartoon/horse/pic_307.jpg 5 -cartoon/horse/pic_309.jpg 5 -cartoon/horse/pic_299.jpg 5 -cartoon/horse/pic_311.jpg 5 -cartoon/horse/pic_312.jpg 5 -cartoon/horse/pic_313.jpg 5 -cartoon/horse/pic_314.jpg 5 -cartoon/horse/pic_315.jpg 5 -cartoon/horse/pic_316.jpg 5 -cartoon/horse/pic_319.jpg 5 -cartoon/horse/pic_310.jpg 5 -cartoon/horse/pic_323.jpg 5 -cartoon/horse/pic_322.jpg 5 -cartoon/horse/pic_320.jpg 5 -cartoon/horse/pic_328.jpg 5 -cartoon/horse/pic_327.jpg 5 -cartoon/horse/pic_330.jpg 5 -cartoon/horse/pic_089.jpg 5 -cartoon/horse/pic_118.jpg 5 -cartoon/horse/pic_114.jpg 5 -cartoon/horse/pic_113.jpg 5 -cartoon/horse/pic_112.jpg 5 -cartoon/horse/pic_103.jpg 5 -cartoon/horse/pic_105.jpg 5 -cartoon/horse/pic_104.jpg 5 -cartoon/horse/pic_100.jpg 5 -cartoon/horse/pic_101.jpg 5 -cartoon/horse/pic_119.jpg 5 -cartoon/horse/pic_115.jpg 5 -cartoon/horse/pic_110.jpg 5 -cartoon/horse/pic_126.jpg 5 -cartoon/horse/pic_106.jpg 5 -cartoon/horse/pic_120.jpg 5 -cartoon/horse/pic_054.jpg 5 -cartoon/horse/pic_055.jpg 5 -cartoon/horse/pic_053.jpg 5 -cartoon/horse/pic_052.jpg 5 -cartoon/horse/pic_051.jpg 5 -cartoon/horse/pic_050.jpg 5 -cartoon/horse/pic_049.jpg 5 -cartoon/horse/pic_076.jpg 5 -cartoon/horse/pic_066.jpg 5 -cartoon/horse/pic_081.jpg 5 -cartoon/horse/pic_079.jpg 5 -cartoon/horse/pic_060.jpg 5 -cartoon/horse/pic_058.jpg 5 -cartoon/horse/pic_069.jpg 5 -cartoon/horse/pic_074.jpg 5 -cartoon/horse/pic_065.jpg 5 -cartoon/horse/pic_075.jpg 5 -cartoon/horse/pic_078.jpg 5 -cartoon/horse/pic_070.jpg 5 -cartoon/horse/pic_072.jpg 5 -cartoon/horse/pic_291.jpg 5 -cartoon/horse/pic_282.jpg 5 -cartoon/horse/pic_293.jpg 5 -cartoon/horse/pic_294.jpg 5 -cartoon/horse/pic_295.jpg 5 -cartoon/horse/pic_297.jpg 5 -cartoon/horse/pic_268.jpg 5 -cartoon/horse/pic_296.jpg 5 -cartoon/horse/pic_298.jpg 5 -cartoon/horse/pic_300.jpg 5 -cartoon/horse/pic_302.jpg 5 -cartoon/horse/pic_280.jpg 5 -cartoon/horse/pic_304.jpg 5 -cartoon/horse/pic_303.jpg 5 -cartoon/horse/pic_305.jpg 5 -cartoon/horse/pic_308.jpg 5 -cartoon/horse/pic_183.jpg 5 -cartoon/horse/pic_184.jpg 5 -cartoon/horse/pic_185.jpg 5 -cartoon/horse/pic_188.jpg 5 -cartoon/horse/pic_186.jpg 5 -cartoon/horse/pic_187.jpg 5 -cartoon/horse/pic_189.jpg 5 -cartoon/horse/pic_178.jpg 5 -cartoon/horse/pic_191.jpg 5 -cartoon/horse/pic_193.jpg 5 -cartoon/horse/pic_190.jpg 5 -cartoon/horse/pic_200.jpg 5 -cartoon/horse/pic_196.jpg 5 -cartoon/horse/pic_195.jpg 5 -cartoon/horse/pic_201.jpg 5 -cartoon/horse/pic_198.jpg 5 -cartoon/horse/pic_204.jpg 5 -cartoon/horse/pic_245.jpg 5 -cartoon/horse/pic_250.jpg 5 -cartoon/horse/pic_252.jpg 5 -cartoon/horse/pic_255.jpg 5 -cartoon/horse/pic_254.jpg 5 -cartoon/horse/pic_235.jpg 5 -cartoon/horse/pic_256.jpg 5 -cartoon/horse/pic_258.jpg 5 -cartoon/horse/pic_257.jpg 5 -cartoon/horse/pic_253.jpg 5 -cartoon/horse/pic_240.jpg 5 -cartoon/horse/pic_243.jpg 5 -cartoon/horse/pic_260.jpg 5 -cartoon/horse/pic_246.jpg 5 -cartoon/horse/pic_262.jpg 5 -cartoon/horse/pic_251.jpg 5 -cartoon/horse/pic_264.jpg 5 -cartoon/horse/pic_263.jpg 5 -cartoon/horse/pic_265.jpg 5 -cartoon/horse/pic_259.jpg 5 -cartoon/horse/pic_269.jpg 5 -cartoon/horse/pic_001.jpg 5 -cartoon/horse/pic_002.jpg 5 -cartoon/horse/pic_003.jpg 5 -cartoon/horse/pic_004.jpg 5 -cartoon/horse/pic_005.jpg 5 -cartoon/horse/pic_006.jpg 5 -cartoon/horse/pic_007.jpg 5 -cartoon/horse/pic_008.jpg 5 -cartoon/horse/pic_009.jpg 5 -cartoon/horse/pic_116.jpg 5 -cartoon/horse/pic_108.jpg 5 -cartoon/horse/pic_111.jpg 5 -cartoon/horse/pic_128.jpg 5 -cartoon/horse/pic_124.jpg 5 -cartoon/horse/pic_130.jpg 5 -cartoon/horse/pic_131.jpg 5 -cartoon/horse/pic_129.jpg 5 -cartoon/horse/pic_125.jpg 5 -cartoon/horse/pic_121.jpg 5 -cartoon/horse/pic_127.jpg 5 -cartoon/horse/pic_123.jpg 5 -cartoon/horse/pic_143.jpg 5 -cartoon/horse/pic_135.jpg 5 -cartoon/horse/pic_134.jpg 5 -cartoon/horse/pic_140.jpg 5 -cartoon/horse/pic_145.jpg 5 -cartoon/horse/pic_146.jpg 5 -cartoon/horse/pic_142.jpg 5 -cartoon/horse/pic_137.jpg 5 -cartoon/horse/pic_350.jpg 5 -cartoon/horse/pic_351.jpg 5 -cartoon/horse/pic_352.jpg 5 -cartoon/horse/pic_353.jpg 5 -cartoon/horse/pic_354.jpg 5 -cartoon/horse/pic_355.jpg 5 -cartoon/horse/pic_345.jpg 5 -cartoon/horse/pic_357.jpg 5 -cartoon/horse/pic_359.jpg 5 -cartoon/horse/pic_358.jpg 5 -cartoon/horse/pic_361.jpg 5 -cartoon/horse/pic_362.jpg 5 -cartoon/horse/pic_364.jpg 5 -cartoon/horse/pic_356.jpg 5 -cartoon/horse/pic_363.jpg 5 -cartoon/horse/pic_160.jpg 5 -cartoon/horse/pic_173.jpg 5 -cartoon/horse/pic_172.jpg 5 -cartoon/horse/pic_169.jpg 5 -cartoon/horse/pic_167.jpg 5 -cartoon/horse/pic_166.jpg 5 -cartoon/horse/pic_164.jpg 5 -cartoon/horse/pic_163.jpg 5 -cartoon/horse/pic_152.jpg 5 -cartoon/horse/pic_174.jpg 5 -cartoon/horse/pic_171.jpg 5 -cartoon/horse/pic_177.jpg 5 -cartoon/horse/pic_176.jpg 5 -cartoon/horse/pic_181.jpg 5 -cartoon/horse/pic_180.jpg 5 -cartoon/horse/pic_179.jpg 5 -cartoon/horse/pic_084.jpg 5 -cartoon/horse/pic_083.jpg 5 -cartoon/horse/pic_071.jpg 5 -cartoon/horse/pic_096.jpg 5 -cartoon/horse/pic_094.jpg 5 -cartoon/horse/pic_098.jpg 5 -cartoon/horse/pic_095.jpg 5 -cartoon/horse/pic_093.jpg 5 -cartoon/horse/pic_092.jpg 5 -cartoon/horse/pic_091.jpg 5 -cartoon/horse/pic_090.jpg 5 -cartoon/horse/pic_088.jpg 5 -cartoon/horse/pic_086.jpg 5 -cartoon/horse/pic_097.jpg 5 -cartoon/horse/pic_087.jpg 5 -cartoon/horse/pic_203.jpg 5 -cartoon/horse/pic_205.jpg 5 -cartoon/horse/pic_209.jpg 5 -cartoon/horse/pic_212.jpg 5 -cartoon/horse/pic_213.jpg 5 -cartoon/horse/pic_192.jpg 5 -cartoon/horse/pic_211.jpg 5 -cartoon/horse/pic_214.jpg 5 -cartoon/horse/pic_218.jpg 5 -cartoon/horse/pic_215.jpg 5 -cartoon/horse/pic_217.jpg 5 -cartoon/horse/pic_220.jpg 5 -cartoon/horse/pic_219.jpg 5 -cartoon/horse/pic_221.jpg 5 -cartoon/horse/pic_223.jpg 5 -cartoon/horse/pic_224.jpg 5 -cartoon/horse/pic_208.jpg 5 -cartoon/horse/pic_035.jpg 5 -cartoon/horse/pic_034.jpg 5 -cartoon/horse/pic_037.jpg 5 -cartoon/horse/pic_036.jpg 5 -cartoon/horse/pic_044.jpg 5 -cartoon/horse/pic_047.jpg 5 -cartoon/horse/pic_045.jpg 5 -cartoon/horse/pic_043.jpg 5 -cartoon/horse/pic_042.jpg 5 -cartoon/horse/pic_040.jpg 5 -cartoon/horse/pic_041.jpg 5 -cartoon/horse/pic_038.jpg 5 -cartoon/horse/pic_039.jpg 5 -cartoon/horse/pic_048.jpg 5 -cartoon/horse/pic_046.jpg 5 -cartoon/horse/pic_061.jpg 5 -cartoon/horse/pic_073.jpg 5 -cartoon/horse/pic_077.jpg 5 -cartoon/horse/pic_080.jpg 5 -cartoon/horse/pic_082.jpg 5 -cartoon/horse/pic_225.jpg 5 -cartoon/horse/pic_228.jpg 5 -cartoon/horse/pic_207.jpg 5 -cartoon/horse/pic_227.jpg 5 -cartoon/horse/pic_226.jpg 5 -cartoon/horse/pic_231.jpg 5 -cartoon/horse/pic_232.jpg 5 -cartoon/horse/pic_234.jpg 5 -cartoon/horse/pic_236.jpg 5 -cartoon/horse/pic_237.jpg 5 -cartoon/horse/pic_239.jpg 5 -cartoon/horse/pic_238.jpg 5 -cartoon/horse/pic_229.jpg 5 -cartoon/horse/pic_241.jpg 5 -cartoon/horse/pic_242.jpg 5 -cartoon/horse/pic_244.jpg 5 -cartoon/horse/pic_233.jpg 5 -cartoon/horse/pic_249.jpg 5 -cartoon/horse/pic_248.jpg 5 -cartoon/horse/pic_247.jpg 5 -cartoon/house/pic_071.jpg 6 -cartoon/house/pic_072.jpg 6 -cartoon/house/pic_074.jpg 6 -cartoon/house/pic_077.jpg 6 -cartoon/house/pic_081.jpg 6 -cartoon/house/pic_088.jpg 6 -cartoon/house/pic_082.jpg 6 -cartoon/house/pic_080.jpg 6 -cartoon/house/pic_090.jpg 6 -cartoon/house/pic_100.jpg 6 -cartoon/house/pic_084.jpg 6 -cartoon/house/pic_085.jpg 6 -cartoon/house/pic_083.jpg 6 -cartoon/house/pic_087.jpg 6 -cartoon/house/pic_094.jpg 6 -cartoon/house/pic_157.jpg 6 -cartoon/house/pic_169.jpg 6 -cartoon/house/pic_172.jpg 6 -cartoon/house/pic_173.jpg 6 -cartoon/house/pic_171.jpg 6 -cartoon/house/pic_176.jpg 6 -cartoon/house/pic_180.jpg 6 -cartoon/house/pic_182.jpg 6 -cartoon/house/pic_185.jpg 6 -cartoon/house/pic_184.jpg 6 -cartoon/house/pic_187.jpg 6 -cartoon/house/pic_188.jpg 6 -cartoon/house/pic_189.jpg 6 -cartoon/house/pic_191.jpg 6 -cartoon/house/pic_174.jpg 6 -cartoon/house/pic_179.jpg 6 -cartoon/house/pic_237.jpg 6 -cartoon/house/pic_258.jpg 6 -cartoon/house/pic_260.jpg 6 -cartoon/house/pic_242.jpg 6 -cartoon/house/pic_262.jpg 6 -cartoon/house/pic_263.jpg 6 -cartoon/house/pic_249.jpg 6 -cartoon/house/pic_253.jpg 6 -cartoon/house/pic_257.jpg 6 -cartoon/house/pic_265.jpg 6 -cartoon/house/pic_267.jpg 6 -cartoon/house/pic_268.jpg 6 -cartoon/house/pic_269.jpg 6 -cartoon/house/pic_272.jpg 6 -cartoon/house/pic_264.jpg 6 -cartoon/house/pic_274.jpg 6 -cartoon/house/pic_270.jpg 6 -cartoon/house/pic_177.jpg 6 -cartoon/house/pic_192.jpg 6 -cartoon/house/pic_193.jpg 6 -cartoon/house/pic_178.jpg 6 -cartoon/house/pic_181.jpg 6 -cartoon/house/pic_194.jpg 6 -cartoon/house/pic_196.jpg 6 -cartoon/house/pic_197.jpg 6 -cartoon/house/pic_198.jpg 6 -cartoon/house/pic_199.jpg 6 -cartoon/house/pic_200.jpg 6 -cartoon/house/pic_201.jpg 6 -cartoon/house/pic_202.jpg 6 -cartoon/house/pic_203.jpg 6 -cartoon/house/pic_205.jpg 6 -cartoon/house/pic_195.jpg 6 -cartoon/house/pic_207.jpg 6 -cartoon/house/pic_206.jpg 6 -cartoon/house/pic_204.jpg 6 -cartoon/house/pic_209.jpg 6 -cartoon/house/pic_234.jpg 6 -cartoon/house/pic_239.jpg 6 -cartoon/house/pic_241.jpg 6 -cartoon/house/pic_240.jpg 6 -cartoon/house/pic_224.jpg 6 -cartoon/house/pic_243.jpg 6 -cartoon/house/pic_246.jpg 6 -cartoon/house/pic_245.jpg 6 -cartoon/house/pic_244.jpg 6 -cartoon/house/pic_250.jpg 6 -cartoon/house/pic_230.jpg 6 -cartoon/house/pic_238.jpg 6 -cartoon/house/pic_252.jpg 6 -cartoon/house/pic_254.jpg 6 -cartoon/house/pic_255.jpg 6 -cartoon/house/pic_256.jpg 6 -cartoon/house/pic_008.jpg 6 -cartoon/house/pic_009.jpg 6 -cartoon/house/pic_010.jpg 6 -cartoon/house/pic_011.jpg 6 -cartoon/house/pic_012.jpg 6 -cartoon/house/pic_013.jpg 6 -cartoon/house/pic_014.jpg 6 -cartoon/house/pic_016.jpg 6 -cartoon/house/pic_017.jpg 6 -cartoon/house/pic_020.jpg 6 -cartoon/house/pic_022.jpg 6 -cartoon/house/pic_026.jpg 6 -cartoon/house/pic_024.jpg 6 -cartoon/house/pic_027.jpg 6 -cartoon/house/pic_028.jpg 6 -cartoon/house/pic_032.jpg 6 -cartoon/house/pic_029.jpg 6 -cartoon/house/pic_001.jpg 6 -cartoon/house/pic_002.jpg 6 -cartoon/house/pic_003.jpg 6 -cartoon/house/pic_004.jpg 6 -cartoon/house/pic_005.jpg 6 -cartoon/house/pic_006.jpg 6 -cartoon/house/pic_007.jpg 6 -cartoon/house/pic_158.jpg 6 -cartoon/house/pic_160.jpg 6 -cartoon/house/pic_161.jpg 6 -cartoon/house/pic_162.jpg 6 -cartoon/house/pic_151.jpg 6 -cartoon/house/pic_164.jpg 6 -cartoon/house/pic_165.jpg 6 -cartoon/house/pic_156.jpg 6 -cartoon/house/pic_166.jpg 6 -cartoon/house/pic_167.jpg 6 -cartoon/house/pic_168.jpg 6 -cartoon/house/pic_163.jpg 6 -cartoon/house/pic_318.jpg 6 -cartoon/house/pic_331.jpg 6 -cartoon/house/pic_333.jpg 6 -cartoon/house/pic_334.jpg 6 -cartoon/house/pic_337.jpg 6 -cartoon/house/pic_335.jpg 6 -cartoon/house/pic_338.jpg 6 -cartoon/house/pic_341.jpg 6 -cartoon/house/pic_343.jpg 6 -cartoon/house/pic_344.jpg 6 -cartoon/house/pic_330.jpg 6 -cartoon/house/pic_346.jpg 6 -cartoon/house/pic_348.jpg 6 -cartoon/house/pic_340.jpg 6 -cartoon/house/pic_349.jpg 6 -cartoon/house/pic_347.jpg 6 -cartoon/house/pic_336.jpg 6 -cartoon/house/pic_355.jpg 6 -cartoon/house/pic_356.jpg 6 -cartoon/house/pic_357.jpg 6 -cartoon/house/pic_358.jpg 6 -cartoon/house/pic_360.jpg 6 -cartoon/house/pic_345.jpg 6 -cartoon/house/pic_354.jpg 6 -cartoon/house/pic_353.jpg 6 -cartoon/house/pic_359.jpg 6 -cartoon/house/pic_212.jpg 6 -cartoon/house/pic_211.jpg 6 -cartoon/house/pic_221.jpg 6 -cartoon/house/pic_219.jpg 6 -cartoon/house/pic_218.jpg 6 -cartoon/house/pic_215.jpg 6 -cartoon/house/pic_217.jpg 6 -cartoon/house/pic_220.jpg 6 -cartoon/house/pic_222.jpg 6 -cartoon/house/pic_223.jpg 6 -cartoon/house/pic_216.jpg 6 -cartoon/house/pic_208.jpg 6 -cartoon/house/pic_225.jpg 6 -cartoon/house/pic_226.jpg 6 -cartoon/house/pic_214.jpg 6 -cartoon/house/pic_231.jpg 6 -cartoon/house/pic_233.jpg 6 -cartoon/house/pic_228.jpg 6 -cartoon/house/pic_235.jpg 6 -cartoon/house/pic_273.jpg 6 -cartoon/house/pic_279.jpg 6 -cartoon/house/pic_278.jpg 6 -cartoon/house/pic_283.jpg 6 -cartoon/house/pic_280.jpg 6 -cartoon/house/pic_266.jpg 6 -cartoon/house/pic_281.jpg 6 -cartoon/house/pic_286.jpg 6 -cartoon/house/pic_276.jpg 6 -cartoon/house/pic_277.jpg 6 -cartoon/house/pic_288.jpg 6 -cartoon/house/pic_289.jpg 6 -cartoon/house/pic_282.jpg 6 -cartoon/house/pic_290.jpg 6 -cartoon/house/pic_292.jpg 6 -cartoon/house/pic_285.jpg 6 -cartoon/house/pic_295.jpg 6 -cartoon/house/pic_047.jpg 6 -cartoon/house/pic_049.jpg 6 -cartoon/house/pic_048.jpg 6 -cartoon/house/pic_050.jpg 6 -cartoon/house/pic_053.jpg 6 -cartoon/house/pic_056.jpg 6 -cartoon/house/pic_054.jpg 6 -cartoon/house/pic_059.jpg 6 -cartoon/house/pic_057.jpg 6 -cartoon/house/pic_067.jpg 6 -cartoon/house/pic_062.jpg 6 -cartoon/house/pic_060.jpg 6 -cartoon/house/pic_063.jpg 6 -cartoon/house/pic_066.jpg 6 -cartoon/house/pic_064.jpg 6 -cartoon/house/pic_065.jpg 6 -cartoon/house/pic_284.jpg 6 -cartoon/house/pic_297.jpg 6 -cartoon/house/pic_296.jpg 6 -cartoon/house/pic_298.jpg 6 -cartoon/house/pic_301.jpg 6 -cartoon/house/pic_302.jpg 6 -cartoon/house/pic_304.jpg 6 -cartoon/house/pic_305.jpg 6 -cartoon/house/pic_306.jpg 6 -cartoon/house/pic_291.jpg 6 -cartoon/house/pic_309.jpg 6 -cartoon/house/pic_308.jpg 6 -cartoon/house/pic_310.jpg 6 -cartoon/house/pic_299.jpg 6 -cartoon/house/pic_300.jpg 6 -cartoon/house/pic_303.jpg 6 -cartoon/house/pic_316.jpg 6 -cartoon/house/pic_317.jpg 6 -cartoon/house/pic_319.jpg 6 -cartoon/house/pic_039.jpg 6 -cartoon/house/pic_030.jpg 6 -cartoon/house/pic_034.jpg 6 -cartoon/house/pic_031.jpg 6 -cartoon/house/pic_038.jpg 6 -cartoon/house/pic_025.jpg 6 -cartoon/house/pic_051.jpg 6 -cartoon/house/pic_036.jpg 6 -cartoon/house/pic_041.jpg 6 -cartoon/house/pic_023.jpg 6 -cartoon/house/pic_046.jpg 6 -cartoon/house/pic_052.jpg 6 -cartoon/house/pic_040.jpg 6 -cartoon/house/pic_045.jpg 6 -cartoon/house/pic_044.jpg 6 -cartoon/house/pic_043.jpg 6 -cartoon/house/pic_042.jpg 6 -cartoon/house/pic_138.jpg 6 -cartoon/house/pic_140.jpg 6 -cartoon/house/pic_130.jpg 6 -cartoon/house/pic_143.jpg 6 -cartoon/house/pic_145.jpg 6 -cartoon/house/pic_146.jpg 6 -cartoon/house/pic_148.jpg 6 -cartoon/house/pic_147.jpg 6 -cartoon/house/pic_149.jpg 6 -cartoon/house/pic_152.jpg 6 -cartoon/house/pic_139.jpg 6 -cartoon/house/pic_153.jpg 6 -cartoon/house/pic_113.jpg 6 -cartoon/house/pic_116.jpg 6 -cartoon/house/pic_110.jpg 6 -cartoon/house/pic_122.jpg 6 -cartoon/house/pic_121.jpg 6 -cartoon/house/pic_120.jpg 6 -cartoon/house/pic_119.jpg 6 -cartoon/house/pic_118.jpg 6 -cartoon/house/pic_126.jpg 6 -cartoon/house/pic_123.jpg 6 -cartoon/house/pic_131.jpg 6 -cartoon/house/pic_132.jpg 6 -cartoon/house/pic_134.jpg 6 -cartoon/person/pic_074.jpg 7 -cartoon/person/pic_072.jpg 7 -cartoon/person/pic_077.jpg 7 -cartoon/person/pic_094.jpg 7 -cartoon/person/pic_123.jpg 7 -cartoon/person/pic_110.jpg 7 -cartoon/person/pic_109.jpg 7 -cartoon/person/pic_100.jpg 7 -cartoon/person/pic_095.jpg 7 -cartoon/person/pic_087.jpg 7 -cartoon/person/pic_089.jpg 7 -cartoon/person/pic_365.jpg 7 -cartoon/person/pic_373.jpg 7 -cartoon/person/pic_381.jpg 7 -cartoon/person/pic_379.jpg 7 -cartoon/person/pic_370.jpg 7 -cartoon/person/pic_374.jpg 7 -cartoon/person/pic_377.jpg 7 -cartoon/person/pic_380.jpg 7 -cartoon/person/pic_393.jpg 7 -cartoon/person/pic_392.jpg 7 -cartoon/person/pic_391.jpg 7 -cartoon/person/pic_389.jpg 7 -cartoon/person/pic_390.jpg 7 -cartoon/person/pic_387.jpg 7 -cartoon/person/pic_386.jpg 7 -cartoon/person/pic_385.jpg 7 -cartoon/person/pic_384.jpg 7 -cartoon/person/pic_383.jpg 7 -cartoon/person/pic_382.jpg 7 -cartoon/person/pic_001.jpg 7 -cartoon/person/pic_002.jpg 7 -cartoon/person/pic_003.jpg 7 -cartoon/person/pic_004.jpg 7 -cartoon/person/pic_085.jpg 7 -cartoon/person/pic_084.jpg 7 -cartoon/person/pic_083.jpg 7 -cartoon/person/pic_082.jpg 7 -cartoon/person/pic_081.jpg 7 -cartoon/person/pic_079.jpg 7 -cartoon/person/pic_078.jpg 7 -cartoon/person/pic_121.jpg 7 -cartoon/person/pic_117.jpg 7 -cartoon/person/pic_120.jpg 7 -cartoon/person/pic_105.jpg 7 -cartoon/person/pic_027.jpg 7 -cartoon/person/pic_025.jpg 7 -cartoon/person/pic_026.jpg 7 -cartoon/person/pic_022.jpg 7 -cartoon/person/pic_019.jpg 7 -cartoon/person/pic_030.jpg 7 -cartoon/person/pic_037.jpg 7 -cartoon/person/pic_036.jpg 7 -cartoon/person/pic_035.jpg 7 -cartoon/person/pic_032.jpg 7 -cartoon/person/pic_033.jpg 7 -cartoon/person/pic_031.jpg 7 -cartoon/person/pic_034.jpg 7 -cartoon/person/pic_038.jpg 7 -cartoon/person/pic_039.jpg 7 -cartoon/person/pic_040.jpg 7 -cartoon/person/pic_042.jpg 7 -cartoon/person/pic_043.jpg 7 -cartoon/person/pic_041.jpg 7 -cartoon/person/pic_049.jpg 7 -cartoon/person/pic_048.jpg 7 -cartoon/person/pic_415.jpg 7 -cartoon/person/pic_427.jpg 7 -cartoon/person/pic_429.jpg 7 -cartoon/person/pic_420.jpg 7 -cartoon/person/pic_423.jpg 7 -cartoon/person/pic_438.jpg 7 -cartoon/person/pic_434.jpg 7 -cartoon/person/pic_436.jpg 7 -cartoon/person/pic_432.jpg 7 -cartoon/person/pic_433.jpg 7 -cartoon/person/pic_431.jpg 7 -cartoon/person/pic_430.jpg 7 -cartoon/person/pic_439.jpg 7 -cartoon/person/pic_435.jpg 7 -cartoon/person/pic_445.jpg 7 -cartoon/person/pic_444.jpg 7 -cartoon/person/pic_441.jpg 7 -cartoon/person/pic_442.jpg 7 -cartoon/person/pic_443.jpg 7 -cartoon/person/pic_440.jpg 7 -cartoon/person/pic_005.jpg 7 -cartoon/person/pic_007.jpg 7 -cartoon/person/pic_008.jpg 7 -cartoon/person/pic_009.jpg 7 -cartoon/person/pic_010.jpg 7 -cartoon/person/pic_011.jpg 7 -cartoon/person/pic_012.jpg 7 -cartoon/person/pic_013.jpg 7 -cartoon/person/pic_014.jpg 7 -cartoon/person/pic_015.jpg 7 -cartoon/person/pic_021.jpg 7 -cartoon/person/pic_024.jpg 7 -cartoon/person/pic_023.jpg 7 -cartoon/person/pic_020.jpg 7 -cartoon/person/pic_018.jpg 7 -cartoon/person/pic_016.jpg 7 -cartoon/person/pic_017.jpg 7 -cartoon/person/pic_029.jpg 7 -cartoon/person/pic_028.jpg 7 -cartoon/person/pic_165.jpg 7 -cartoon/person/pic_164.jpg 7 -cartoon/person/pic_162.jpg 7 -cartoon/person/pic_158.jpg 7 -cartoon/person/pic_160.jpg 7 -cartoon/person/pic_172.jpg 7 -cartoon/person/pic_173.jpg 7 -cartoon/person/pic_170.jpg 7 -cartoon/person/pic_174.jpg 7 -cartoon/person/pic_161.jpg 7 -cartoon/person/pic_163.jpg 7 -cartoon/person/pic_175.jpg 7 -cartoon/person/pic_177.jpg 7 -cartoon/person/pic_180.jpg 7 -cartoon/person/pic_179.jpg 7 -cartoon/person/pic_181.jpg 7 -cartoon/person/pic_184.jpg 7 -cartoon/person/pic_185.jpg 7 -cartoon/person/pic_127.jpg 7 -cartoon/person/pic_113.jpg 7 -cartoon/person/pic_106.jpg 7 -cartoon/person/pic_129.jpg 7 -cartoon/person/pic_119.jpg 7 -cartoon/person/pic_125.jpg 7 -cartoon/person/pic_124.jpg 7 -cartoon/person/pic_147.jpg 7 -cartoon/person/pic_141.jpg 7 -cartoon/person/pic_140.jpg 7 -cartoon/person/pic_136.jpg 7 -cartoon/person/pic_137.jpg 7 -cartoon/person/pic_135.jpg 7 -cartoon/person/pic_133.jpg 7 -cartoon/person/pic_134.jpg 7 -cartoon/person/pic_132.jpg 7 -cartoon/person/pic_131.jpg 7 -cartoon/person/pic_146.jpg 7 -cartoon/person/pic_388.jpg 7 -cartoon/person/pic_400.jpg 7 -cartoon/person/pic_399.jpg 7 -cartoon/person/pic_402.jpg 7 -cartoon/person/pic_401.jpg 7 -cartoon/person/pic_394.jpg 7 -cartoon/person/pic_396.jpg 7 -cartoon/person/pic_395.jpg 7 -cartoon/person/pic_397.jpg 7 -cartoon/person/pic_398.jpg 7 -cartoon/person/pic_408.jpg 7 -cartoon/person/pic_403.jpg 7 -cartoon/person/pic_206.jpg 7 -cartoon/person/pic_209.jpg 7 -cartoon/person/pic_208.jpg 7 -cartoon/person/pic_207.jpg 7 -cartoon/person/pic_204.jpg 7 -cartoon/person/pic_216.jpg 7 -cartoon/person/pic_212.jpg 7 -cartoon/person/pic_210.jpg 7 -cartoon/person/pic_218.jpg 7 -cartoon/person/pic_221.jpg 7 -cartoon/person/pic_220.jpg 7 -cartoon/person/pic_222.jpg 7 -cartoon/person/pic_224.jpg 7 -cartoon/person/pic_225.jpg 7 -cartoon/person/pic_219.jpg 7 -cartoon/person/pic_226.jpg 7 -cartoon/person/pic_227.jpg 7 -cartoon/person/pic_451.jpg 7 -cartoon/person/pic_449.jpg 7 -cartoon/person/pic_450.jpg 7 -cartoon/person/pic_447.jpg 7 -cartoon/person/pic_448.jpg 7 -cartoon/person/pic_446.jpg 7 -cartoon/person/pic_453.jpg 7 -cartoon/person/pic_454.jpg 7 -cartoon/person/pic_452.jpg 7 -cartoon/person/pic_456.jpg 7 -cartoon/person/pic_458.jpg 7 -cartoon/person/pic_455.jpg 7 -cartoon/person/pic_457.jpg 7 -cartoon/person/pic_329.jpg 7 -cartoon/person/pic_330.jpg 7 -cartoon/person/pic_326.jpg 7 -cartoon/person/pic_327.jpg 7 -cartoon/person/pic_325.jpg 7 -cartoon/person/pic_328.jpg 7 -cartoon/person/pic_336.jpg 7 -cartoon/person/pic_338.jpg 7 -cartoon/person/pic_337.jpg 7 -cartoon/person/pic_340.jpg 7 -cartoon/person/pic_339.jpg 7 -cartoon/person/pic_342.jpg 7 -cartoon/person/pic_341.jpg 7 -cartoon/person/pic_343.jpg 7 -cartoon/person/pic_344.jpg 7 -cartoon/person/pic_347.jpg 7 -cartoon/person/pic_348.jpg 7 -cartoon/person/pic_350.jpg 7 -cartoon/person/pic_352.jpg 7 -cartoon/person/pic_047.jpg 7 -cartoon/person/pic_044.jpg 7 -cartoon/person/pic_045.jpg 7 -cartoon/person/pic_046.jpg 7 -cartoon/person/pic_052.jpg 7 -cartoon/person/pic_050.jpg 7 -cartoon/person/pic_053.jpg 7 -cartoon/person/pic_051.jpg 7 -cartoon/person/pic_067.jpg 7 -cartoon/person/pic_064.jpg 7 -cartoon/person/pic_063.jpg 7 -cartoon/person/pic_065.jpg 7 -cartoon/person/pic_060.jpg 7 -cartoon/person/pic_061.jpg 7 -cartoon/person/pic_059.jpg 7 -cartoon/person/pic_062.jpg 7 -cartoon/person/pic_055.jpg 7 -cartoon/person/pic_058.jpg 7 -cartoon/person/pic_054.jpg 7 -cartoon/person/pic_057.jpg 7 -cartoon/person/pic_093.jpg 7 -cartoon/person/pic_103.jpg 7 -cartoon/person/pic_104.jpg 7 -cartoon/person/pic_092.jpg 7 -cartoon/person/pic_090.jpg 7 -cartoon/person/pic_097.jpg 7 -cartoon/person/pic_080.jpg 7 -cartoon/person/pic_091.jpg 7 -cartoon/person/pic_122.jpg 7 -cartoon/person/pic_126.jpg 7 -cartoon/person/pic_112.jpg 7 -cartoon/person/pic_111.jpg 7 -cartoon/person/pic_101.jpg 7 -cartoon/person/pic_096.jpg 7 -cartoon/person/pic_130.jpg 7 -cartoon/person/pic_098.jpg 7 -cartoon/person/pic_102.jpg 7 -cartoon/person/pic_108.jpg 7 -cartoon/person/pic_114.jpg 7 -cartoon/person/pic_183.jpg 7 -cartoon/person/pic_186.jpg 7 -cartoon/person/pic_194.jpg 7 -cartoon/person/pic_188.jpg 7 -cartoon/person/pic_190.jpg 7 -cartoon/person/pic_193.jpg 7 -cartoon/person/pic_195.jpg 7 -cartoon/person/pic_199.jpg 7 -cartoon/person/pic_197.jpg 7 -cartoon/person/pic_200.jpg 7 -cartoon/person/pic_201.jpg 7 -cartoon/person/pic_203.jpg 7 -cartoon/person/pic_202.jpg 7 -cartoon/person/pic_217.jpg 7 -cartoon/person/pic_214.jpg 7 -cartoon/person/pic_215.jpg 7 -cartoon/person/pic_229.jpg 7 -cartoon/person/pic_228.jpg 7 -cartoon/person/pic_230.jpg 7 -cartoon/person/pic_236.jpg 7 -cartoon/person/pic_233.jpg 7 -cartoon/person/pic_232.jpg 7 -cartoon/person/pic_234.jpg 7 -cartoon/person/pic_231.jpg 7 -cartoon/person/pic_235.jpg 7 -cartoon/person/pic_240.jpg 7 -cartoon/person/pic_239.jpg 7 -cartoon/person/pic_237.jpg 7 -cartoon/person/pic_243.jpg 7 -cartoon/person/pic_242.jpg 7 -cartoon/person/pic_241.jpg 7 -cartoon/person/pic_244.jpg 7 -cartoon/person/pic_245.jpg 7 -cartoon/person/pic_246.jpg 7 -cartoon/person/pic_256.jpg 7 -cartoon/person/pic_254.jpg 7 -cartoon/person/pic_260.jpg 7 -cartoon/person/pic_270.jpg 7 -cartoon/person/pic_271.jpg 7 -cartoon/person/pic_273.jpg 7 -cartoon/person/pic_274.jpg 7 -cartoon/person/pic_275.jpg 7 -cartoon/person/pic_272.jpg 7 -cartoon/person/pic_276.jpg 7 -cartoon/person/pic_278.jpg 7 -cartoon/person/pic_297.jpg 7 -cartoon/person/pic_291.jpg 7 -cartoon/person/pic_293.jpg 7 -cartoon/person/pic_292.jpg 7 -cartoon/person/pic_289.jpg 7 -cartoon/person/pic_285.jpg 7 -cartoon/person/pic_283.jpg 7 -cartoon/person/pic_282.jpg 7 -cartoon/person/pic_286.jpg 7 -cartoon/person/pic_281.jpg 7 -cartoon/person/pic_280.jpg 7 -cartoon/person/pic_279.jpg 7 -cartoon/person/pic_277.jpg 7 -cartoon/person/pic_301.jpg 7 -cartoon/person/pic_298.jpg 7 -cartoon/person/pic_302.jpg 7 -cartoon/person/pic_294.jpg 7 -cartoon/person/pic_299.jpg 7 -cartoon/person/pic_284.jpg 7 -cartoon/person/pic_287.jpg 7 -cartoon/person/pic_305.jpg 7 -cartoon/person/pic_296.jpg 7 -cartoon/person/pic_300.jpg 7 -cartoon/person/pic_295.jpg 7 -cartoon/person/pic_303.jpg 7 -cartoon/person/pic_315.jpg 7 -cartoon/person/pic_314.jpg 7 -cartoon/person/pic_310.jpg 7 -cartoon/person/pic_405.jpg 7 -cartoon/person/pic_404.jpg 7 -cartoon/person/pic_406.jpg 7 -cartoon/person/pic_413.jpg 7 -cartoon/person/pic_411.jpg 7 -cartoon/person/pic_410.jpg 7 -cartoon/person/pic_409.jpg 7 -cartoon/person/pic_412.jpg 7 -cartoon/person/pic_426.jpg 7 -cartoon/person/pic_428.jpg 7 -cartoon/person/pic_425.jpg 7 -cartoon/person/pic_424.jpg 7 -cartoon/person/pic_421.jpg 7 -cartoon/person/pic_417.jpg 7 -cartoon/person/pic_419.jpg 7 -cartoon/person/pic_418.jpg 7 -cartoon/person/pic_416.jpg 7 -cartoon/person/pic_351.jpg 7 -cartoon/person/pic_349.jpg 7 -cartoon/person/pic_363.jpg 7 -cartoon/person/pic_358.jpg 7 -cartoon/person/pic_357.jpg 7 -cartoon/person/pic_354.jpg 7 -cartoon/person/pic_353.jpg 7 -cartoon/person/pic_360.jpg 7 -cartoon/person/pic_362.jpg 7 -cartoon/person/pic_359.jpg 7 -cartoon/person/pic_366.jpg 7 -cartoon/person/pic_375.jpg 7 -cartoon/person/pic_376.jpg 7 -cartoon/person/pic_372.jpg 7 -cartoon/person/pic_371.jpg 7 -cartoon/person/pic_369.jpg 7 -cartoon/person/pic_368.jpg 7 -cartoon/person/pic_364.jpg 7 -cartoon/person/pic_251.jpg 7 -cartoon/person/pic_250.jpg 7 -cartoon/person/pic_252.jpg 7 -cartoon/person/pic_248.jpg 7 -cartoon/person/pic_247.jpg 7 -cartoon/person/pic_249.jpg 7 -cartoon/person/pic_257.jpg 7 -cartoon/person/pic_253.jpg 7 -cartoon/person/pic_259.jpg 7 -cartoon/person/pic_268.jpg 7 -cartoon/person/pic_264.jpg 7 -cartoon/person/pic_265.jpg 7 -cartoon/person/pic_262.jpg 7 -cartoon/person/pic_261.jpg 7 -cartoon/person/pic_255.jpg 7 diff --git a/data/pacs_split/photo_10.txt b/data/pacs_split/photo_10.txt deleted file mode 100644 index 59ba86d76..000000000 --- a/data/pacs_split/photo_10.txt +++ /dev/null @@ -1,10 +0,0 @@ -photo/house/pic_218.jpg 6 -photo/horse/105_0223.jpg 5 -photo/house/pic_046.jpg 6 -photo/house/pic_110.jpg 6 -photo/elephant/n02503517_6232.jpg 2 -photo/dog/n02103406_1011.jpg 1 -photo/house/pic_146.jpg 6 -photo/guitar/n02676566_7830.jpg 4 -photo/person/253_0221.jpg 7 -photo/person/253_0297.jpg 7 diff --git a/data/pacs_split/photo_100.txt b/data/pacs_split/photo_100.txt deleted file mode 100644 index 9a0951918..000000000 --- a/data/pacs_split/photo_100.txt +++ /dev/null @@ -1,100 +0,0 @@ -photo/horse/105_0120.jpg 5 -photo/giraffe/084_0074.jpg 3 -photo/person/253_0089.jpg 7 -photo/dog/056_0041.jpg 1 -photo/horse/n02374451_12254.jpg 5 -photo/horse/n02374451_18909.jpg 5 -photo/person/253_0366.jpg 7 -photo/guitar/n03467517_11020.jpg 4 -photo/dog/n02103406_3056.jpg 1 -photo/elephant/064_0065.jpg 2 -photo/guitar/063_0067.jpg 4 -photo/giraffe/n02439033_221.jpg 3 -photo/person/253_0166.jpg 7 -photo/guitar/063_0071.jpg 4 -photo/elephant/n02503517_1292.jpg 2 -photo/house/pic_043.jpg 6 -photo/elephant/n02503517_5527.jpg 2 -photo/person/253_0098.jpg 7 -photo/horse/105_0185.jpg 5 -photo/guitar/n02676566_12344.jpg 4 -photo/person/253_0108.jpg 7 -photo/elephant/n02503517_6396.jpg 2 -photo/person/253_0349.jpg 7 -photo/guitar/063_0050.jpg 4 -photo/house/pic_111.jpg 6 -photo/dog/056_0085.jpg 1 -photo/horse/105_0066.jpg 5 -photo/house/pic_044.jpg 6 -photo/house/pic_113.jpg 6 -photo/person/253_0258.jpg 7 -photo/elephant/n02503517_10275.jpg 2 -photo/horse/n02374451_4553.jpg 5 -photo/person/253_0186.jpg 7 -photo/elephant/064_0055.jpg 2 -photo/person/253_0266.jpg 7 -photo/person/253_0205.jpg 7 -photo/person/253_0246.jpg 7 -photo/house/pic_181.jpg 6 -photo/elephant/064_0080.jpg 2 -photo/person/253_0236.jpg 7 -photo/elephant/n02503517_3879.jpg 2 -photo/person/253_0331.jpg 7 -photo/house/pic_071.jpg 6 -photo/house/pic_061.jpg 6 -photo/dog/056_0050.jpg 1 -photo/house/pic_067.jpg 6 -photo/person/253_0057.jpg 7 -photo/elephant/064_0022.jpg 2 -photo/person/253_0175.jpg 7 -photo/person/253_0143.jpg 7 -photo/house/pic_193.jpg 6 -photo/elephant/n02503517_86.jpg 2 -photo/elephant/064_0049.jpg 2 -photo/house/pic_099.jpg 6 -photo/house/pic_229.jpg 6 -photo/person/253_0323.jpg 7 -photo/giraffe/084_0075.jpg 3 -photo/guitar/063_0092.jpg 4 -photo/dog/056_0064.jpg 1 -photo/giraffe/n02439033_11487.jpg 3 -photo/house/pic_006.jpg 6 -photo/guitar/n03467517_24525.jpg 4 -photo/house/pic_265.jpg 6 -photo/person/253_0097.jpg 7 -photo/guitar/n03272010_6809.jpg 4 -photo/elephant/n02503517_5909.jpg 2 -photo/guitar/n02676566_659.jpg 4 -photo/elephant/064_0125.jpg 2 -photo/house/pic_263.jpg 6 -photo/house/pic_073.jpg 6 -photo/person/253_0383.jpg 7 -photo/giraffe/084_0064.jpg 3 -photo/person/253_0421.jpg 7 -photo/guitar/063_0052.jpg 4 -photo/house/pic_030.jpg 6 -photo/person/253_0156.jpg 7 -photo/person/253_0053.jpg 7 -photo/giraffe/n02439033_10453.jpg 3 -photo/house/pic_096.jpg 6 -photo/giraffe/n02439033_13384.jpg 3 -photo/house/pic_233.jpg 6 -photo/horse/105_0059.jpg 5 -photo/person/253_0219.jpg 7 -photo/person/253_0283.jpg 7 -photo/horse/n02374451_13159.jpg 5 -photo/guitar/n03272010_6799.jpg 4 -photo/elephant/n02503517_7393.jpg 2 -photo/horse/n02374451_777.jpg 5 -photo/giraffe/084_0072.jpg 3 -photo/person/253_0427.jpg 7 -photo/person/253_0405.jpg 7 -photo/horse/105_0056.jpg 5 -photo/guitar/063_0085.jpg 4 -photo/horse/n02374451_2248.jpg 5 -photo/person/253_0377.jpg 7 -photo/horse/n02374451_1443.jpg 5 -photo/guitar/063_0121.jpg 4 -photo/elephant/064_0038.jpg 2 -photo/elephant/064_0078.jpg 2 -photo/elephant/064_0079.jpg 2 diff --git a/data/pacs_split/photo_crossval_kfold.txt b/data/pacs_split/photo_crossval_kfold.txt deleted file mode 100644 index e001ac79e..000000000 --- a/data/pacs_split/photo_crossval_kfold.txt +++ /dev/null @@ -1,171 +0,0 @@ -photo/dog/056_0001.jpg 1 -photo/dog/056_0002.jpg 1 -photo/dog/056_0003.jpg 1 -photo/dog/056_0004.jpg 1 -photo/dog/056_0005.jpg 1 -photo/dog/056_0006.jpg 1 -photo/dog/056_0007.jpg 1 -photo/dog/056_0009.jpg 1 -photo/dog/056_0010.jpg 1 -photo/dog/056_0011.jpg 1 -photo/dog/056_0012.jpg 1 -photo/dog/056_0013.jpg 1 -photo/dog/056_0014.jpg 1 -photo/dog/056_0015.jpg 1 -photo/dog/056_0016.jpg 1 -photo/dog/056_0017.jpg 1 -photo/dog/056_0018.jpg 1 -photo/dog/056_0020.jpg 1 -photo/dog/056_0021.jpg 1 -photo/elephant/064_0001.jpg 2 -photo/elephant/064_0002.jpg 2 -photo/elephant/064_0003.jpg 2 -photo/elephant/064_0004.jpg 2 -photo/elephant/064_0005.jpg 2 -photo/elephant/064_0006.jpg 2 -photo/elephant/064_0007.jpg 2 -photo/elephant/064_0008.jpg 2 -photo/elephant/064_0009.jpg 2 -photo/elephant/064_0010.jpg 2 -photo/elephant/064_0011.jpg 2 -photo/elephant/064_0012.jpg 2 -photo/elephant/064_0013.jpg 2 -photo/elephant/064_0014.jpg 2 -photo/elephant/064_0015.jpg 2 -photo/elephant/064_0016.jpg 2 -photo/elephant/064_0017.jpg 2 -photo/elephant/064_0018.jpg 2 -photo/elephant/064_0019.jpg 2 -photo/elephant/064_0020.jpg 2 -photo/elephant/064_0021.jpg 2 -photo/giraffe/084_0001.jpg 3 -photo/giraffe/084_0002.jpg 3 -photo/giraffe/084_0003.jpg 3 -photo/giraffe/084_0004.jpg 3 -photo/giraffe/084_0005.jpg 3 -photo/giraffe/084_0006.jpg 3 -photo/giraffe/084_0007.jpg 3 -photo/giraffe/084_0008.jpg 3 -photo/giraffe/084_0009.jpg 3 -photo/giraffe/084_0010.jpg 3 -photo/giraffe/084_0011.jpg 3 -photo/giraffe/084_0012.jpg 3 -photo/giraffe/084_0013.jpg 3 -photo/giraffe/084_0014.jpg 3 -photo/giraffe/084_0015.jpg 3 -photo/giraffe/084_0016.jpg 3 -photo/giraffe/084_0017.jpg 3 -photo/giraffe/084_0018.jpg 3 -photo/giraffe/084_0019.jpg 3 -photo/guitar/063_0001.jpg 4 -photo/guitar/063_0002.jpg 4 -photo/guitar/063_0003.jpg 4 -photo/guitar/063_0004.jpg 4 -photo/guitar/063_0005.jpg 4 -photo/guitar/063_0006.jpg 4 -photo/guitar/063_0007.jpg 4 -photo/guitar/063_0008.jpg 4 -photo/guitar/063_0009.jpg 4 -photo/guitar/063_0010.jpg 4 -photo/guitar/063_0012.jpg 4 -photo/guitar/063_0013.jpg 4 -photo/guitar/063_0016.jpg 4 -photo/guitar/063_0018.jpg 4 -photo/guitar/063_0019.jpg 4 -photo/guitar/063_0020.jpg 4 -photo/guitar/063_0021.jpg 4 -photo/guitar/063_0022.jpg 4 -photo/guitar/063_0023.jpg 4 -photo/horse/105_0002.jpg 5 -photo/horse/105_0003.jpg 5 -photo/horse/105_0007.jpg 5 -photo/horse/105_0008.jpg 5 -photo/horse/105_0009.jpg 5 -photo/horse/105_0010.jpg 5 -photo/horse/105_0012.jpg 5 -photo/horse/105_0013.jpg 5 -photo/horse/105_0022.jpg 5 -photo/horse/105_0025.jpg 5 -photo/horse/105_0028.jpg 5 -photo/horse/105_0029.jpg 5 -photo/horse/105_0030.jpg 5 -photo/horse/105_0033.jpg 5 -photo/horse/105_0037.jpg 5 -photo/horse/105_0038.jpg 5 -photo/horse/105_0041.jpg 5 -photo/horse/105_0042.jpg 5 -photo/horse/105_0047.jpg 5 -photo/horse/105_0048.jpg 5 -photo/house/pic_010.jpg 6 -photo/house/pic_011.jpg 6 -photo/house/pic_012.jpg 6 -photo/house/pic_013.jpg 6 -photo/house/pic_014.jpg 6 -photo/house/pic_015.jpg 6 -photo/house/pic_016.jpg 6 -photo/house/pic_017.jpg 6 -photo/house/pic_018.jpg 6 -photo/house/pic_021.jpg 6 -photo/house/pic_019.jpg 6 -photo/house/pic_022.jpg 6 -photo/house/pic_020.jpg 6 -photo/house/pic_023.jpg 6 -photo/house/pic_024.jpg 6 -photo/house/pic_026.jpg 6 -photo/house/pic_025.jpg 6 -photo/house/pic_027.jpg 6 -photo/house/pic_028.jpg 6 -photo/house/pic_029.jpg 6 -photo/house/pic_031.jpg 6 -photo/house/pic_239.jpg 6 -photo/house/pic_240.jpg 6 -photo/house/pic_241.jpg 6 -photo/house/pic_242.jpg 6 -photo/house/pic_248.jpg 6 -photo/house/pic_246.jpg 6 -photo/house/pic_247.jpg 6 -photo/house/pic_244.jpg 6 -photo/person/253_0001.jpg 7 -photo/person/253_0002.jpg 7 -photo/person/253_0003.jpg 7 -photo/person/253_0004.jpg 7 -photo/person/253_0005.jpg 7 -photo/person/253_0006.jpg 7 -photo/person/253_0007.jpg 7 -photo/person/253_0008.jpg 7 -photo/person/253_0009.jpg 7 -photo/person/253_0010.jpg 7 -photo/person/253_0011.jpg 7 -photo/person/253_0012.jpg 7 -photo/person/253_0013.jpg 7 -photo/person/253_0014.jpg 7 -photo/person/253_0015.jpg 7 -photo/person/253_0016.jpg 7 -photo/person/253_0017.jpg 7 -photo/person/253_0018.jpg 7 -photo/person/253_0019.jpg 7 -photo/person/253_0020.jpg 7 -photo/person/253_0021.jpg 7 -photo/person/253_0022.jpg 7 -photo/person/253_0023.jpg 7 -photo/person/253_0024.jpg 7 -photo/person/253_0025.jpg 7 -photo/person/253_0026.jpg 7 -photo/person/253_0027.jpg 7 -photo/person/253_0028.jpg 7 -photo/person/253_0029.jpg 7 -photo/person/253_0030.jpg 7 -photo/person/253_0031.jpg 7 -photo/person/253_0032.jpg 7 -photo/person/253_0033.jpg 7 -photo/person/253_0034.jpg 7 -photo/person/253_0035.jpg 7 -photo/person/253_0036.jpg 7 -photo/person/253_0037.jpg 7 -photo/person/253_0038.jpg 7 -photo/person/253_0039.jpg 7 -photo/person/253_0040.jpg 7 -photo/person/253_0041.jpg 7 -photo/person/253_0042.jpg 7 -photo/person/253_0043.jpg 7 -photo/person/253_0044.jpg 7 diff --git a/data/pacs_split/photo_test_kfold.txt b/data/pacs_split/photo_test_kfold.txt deleted file mode 100644 index 643ed4aa8..000000000 --- a/data/pacs_split/photo_test_kfold.txt +++ /dev/null @@ -1,1670 +0,0 @@ -photo/dog/056_0001.jpg 1 -photo/dog/056_0002.jpg 1 -photo/dog/056_0003.jpg 1 -photo/dog/056_0004.jpg 1 -photo/dog/056_0005.jpg 1 -photo/dog/056_0006.jpg 1 -photo/dog/056_0007.jpg 1 -photo/dog/056_0009.jpg 1 -photo/dog/056_0010.jpg 1 -photo/dog/056_0011.jpg 1 -photo/dog/056_0012.jpg 1 -photo/dog/056_0013.jpg 1 -photo/dog/056_0014.jpg 1 -photo/dog/056_0015.jpg 1 -photo/dog/056_0016.jpg 1 -photo/dog/056_0017.jpg 1 -photo/dog/056_0018.jpg 1 -photo/dog/056_0020.jpg 1 -photo/dog/056_0021.jpg 1 -photo/dog/056_0022.jpg 1 -photo/dog/056_0023.jpg 1 -photo/dog/056_0024.jpg 1 -photo/dog/056_0026.jpg 1 -photo/dog/056_0027.jpg 1 -photo/dog/056_0028.jpg 1 -photo/dog/056_0029.jpg 1 -photo/dog/056_0030.jpg 1 -photo/dog/056_0031.jpg 1 -photo/dog/056_0032.jpg 1 -photo/dog/056_0033.jpg 1 -photo/dog/056_0034.jpg 1 -photo/dog/056_0035.jpg 1 -photo/dog/056_0036.jpg 1 -photo/dog/056_0037.jpg 1 -photo/dog/056_0038.jpg 1 -photo/dog/056_0039.jpg 1 -photo/dog/056_0040.jpg 1 -photo/dog/056_0041.jpg 1 -photo/dog/056_0042.jpg 1 -photo/dog/056_0043.jpg 1 -photo/dog/056_0045.jpg 1 -photo/dog/056_0046.jpg 1 -photo/dog/056_0047.jpg 1 -photo/dog/056_0048.jpg 1 -photo/dog/056_0049.jpg 1 -photo/dog/056_0050.jpg 1 -photo/dog/056_0051.jpg 1 -photo/dog/056_0052.jpg 1 -photo/dog/056_0053.jpg 1 -photo/dog/056_0054.jpg 1 -photo/dog/056_0055.jpg 1 -photo/dog/056_0056.jpg 1 -photo/dog/056_0057.jpg 1 -photo/dog/056_0058.jpg 1 -photo/dog/056_0059.jpg 1 -photo/dog/056_0060.jpg 1 -photo/dog/056_0062.jpg 1 -photo/dog/056_0063.jpg 1 -photo/dog/056_0064.jpg 1 -photo/dog/056_0065.jpg 1 -photo/dog/056_0066.jpg 1 -photo/dog/056_0067.jpg 1 -photo/dog/056_0068.jpg 1 -photo/dog/056_0069.jpg 1 -photo/dog/056_0070.jpg 1 -photo/dog/056_0071.jpg 1 -photo/dog/056_0072.jpg 1 -photo/dog/056_0073.jpg 1 -photo/dog/056_0074.jpg 1 -photo/dog/056_0075.jpg 1 -photo/dog/056_0076.jpg 1 -photo/dog/056_0077.jpg 1 -photo/dog/056_0078.jpg 1 -photo/dog/056_0079.jpg 1 -photo/dog/056_0080.jpg 1 -photo/dog/056_0081.jpg 1 -photo/dog/056_0082.jpg 1 -photo/dog/056_0083.jpg 1 -photo/dog/056_0084.jpg 1 -photo/dog/056_0085.jpg 1 -photo/dog/056_0086.jpg 1 -photo/dog/056_0087.jpg 1 -photo/dog/056_0088.jpg 1 -photo/dog/056_0089.jpg 1 -photo/dog/056_0090.jpg 1 -photo/dog/056_0091.jpg 1 -photo/dog/056_0092.jpg 1 -photo/dog/056_0093.jpg 1 -photo/dog/056_0095.jpg 1 -photo/dog/056_0097.jpg 1 -photo/dog/056_0098.jpg 1 -photo/dog/056_0099.jpg 1 -photo/dog/056_0101.jpg 1 -photo/dog/056_0102.jpg 1 -photo/dog/n02103406_343.jpg 1 -photo/dog/n02103406_346.jpg 1 -photo/dog/n02103406_371.jpg 1 -photo/dog/n02103406_865.jpg 1 -photo/dog/n02103406_936.jpg 1 -photo/dog/n02103406_995.jpg 1 -photo/dog/n02103406_1011.jpg 1 -photo/dog/n02103406_1138.jpg 1 -photo/dog/n02103406_1170.jpg 1 -photo/dog/n02103406_1247.jpg 1 -photo/dog/n02103406_1599.jpg 1 -photo/dog/n02103406_1754.jpg 1 -photo/dog/n02103406_2209.jpg 1 -photo/dog/n02103406_2706.jpg 1 -photo/dog/n02103406_2954.jpg 1 -photo/dog/n02103406_3056.jpg 1 -photo/dog/n02103406_3108.jpg 1 -photo/dog/n02103406_3132.jpg 1 -photo/dog/n02103406_3255.jpg 1 -photo/dog/n02103406_3299.jpg 1 -photo/dog/n02103406_3326.jpg 1 -photo/dog/n02103406_3401.jpg 1 -photo/dog/n02103406_3538.jpg 1 -photo/dog/n02103406_3743.jpg 1 -photo/dog/n02103406_3750.jpg 1 -photo/dog/n02103406_3964.jpg 1 -photo/dog/n02103406_4068.jpg 1 -photo/dog/n02103406_4849.jpg 1 -photo/dog/n02103406_4916.jpg 1 -photo/dog/n02103406_5035.jpg 1 -photo/dog/n02103406_5216.jpg 1 -photo/dog/n02103406_5224.jpg 1 -photo/dog/n02103406_5456.jpg 1 -photo/dog/n02103406_5505.jpg 1 -photo/dog/n02103406_5563.jpg 1 -photo/dog/n02103406_5601.jpg 1 -photo/dog/n02103406_6274.jpg 1 -photo/dog/n02103406_6461.jpg 1 -photo/dog/n02103406_6530.jpg 1 -photo/dog/n02103406_6857.jpg 1 -photo/dog/n02103406_7201.jpg 1 -photo/dog/n02103406_7368.jpg 1 -photo/dog/n02103406_7521.jpg 1 -photo/dog/n02103406_7708.jpg 1 -photo/dog/n02103406_8004.jpg 1 -photo/dog/n02103406_8280.jpg 1 -photo/dog/n02103406_8362.jpg 1 -photo/dog/n02103406_8421.jpg 1 -photo/dog/n02103406_13049.jpg 1 -photo/dog/n02106662_466.jpg 1 -photo/dog/n02106662_928.jpg 1 -photo/dog/n02106662_1874.jpg 1 -photo/dog/n02106662_1922.jpg 1 -photo/dog/n02106662_2101.jpg 1 -photo/dog/n02106662_2157.jpg 1 -photo/dog/n02106662_2377.jpg 1 -photo/dog/n02106662_2740.jpg 1 -photo/dog/n02106662_5001.jpg 1 -photo/dog/n02106662_7885.jpg 1 -photo/dog/n02106662_7960.jpg 1 -photo/dog/n02106662_8511.jpg 1 -photo/dog/n02106662_8870.jpg 1 -photo/dog/n02106662_10406.jpg 1 -photo/dog/n02106662_11133.jpg 1 -photo/dog/n02106662_13178.jpg 1 -photo/dog/n02106662_13912.jpg 1 -photo/dog/n02106662_15858.jpg 1 -photo/dog/n02106662_18402.jpg 1 -photo/dog/n02106662_18405.jpg 1 -photo/dog/n02106662_18922.jpg 1 -photo/dog/n02106662_18953.jpg 1 -photo/dog/n02106662_24019.jpg 1 -photo/dog/n02106662_24577.jpg 1 -photo/dog/n02106662_24786.jpg 1 -photo/dog/n02106662_25917.jpg 1 -photo/dog/n02106662_26549.jpg 1 -photo/dog/n02106662_27393.jpg 1 -photo/dog/n02109525_704.jpg 1 -photo/dog/n02109525_1893.jpg 1 -photo/dog/n02109525_3202.jpg 1 -photo/dog/n02109525_3782.jpg 1 -photo/dog/n02109525_5013.jpg 1 -photo/dog/n02109525_5583.jpg 1 -photo/dog/n02109525_5966.jpg 1 -photo/dog/n02109525_6693.jpg 1 -photo/dog/n02109525_7874.jpg 1 -photo/dog/n02109525_8211.jpg 1 -photo/dog/n02109525_8457.jpg 1 -photo/dog/n02109525_9037.jpg 1 -photo/dog/n02109525_10297.jpg 1 -photo/dog/n02109525_11444.jpg 1 -photo/dog/n02109525_12875.jpg 1 -photo/dog/n02109525_13700.jpg 1 -photo/dog/n02109525_16346.jpg 1 -photo/dog/n02109525_18347.jpg 1 -photo/elephant/064_0001.jpg 2 -photo/elephant/064_0002.jpg 2 -photo/elephant/064_0003.jpg 2 -photo/elephant/064_0004.jpg 2 -photo/elephant/064_0005.jpg 2 -photo/elephant/064_0006.jpg 2 -photo/elephant/064_0007.jpg 2 -photo/elephant/064_0008.jpg 2 -photo/elephant/064_0009.jpg 2 -photo/elephant/064_0010.jpg 2 -photo/elephant/064_0011.jpg 2 -photo/elephant/064_0012.jpg 2 -photo/elephant/064_0013.jpg 2 -photo/elephant/064_0014.jpg 2 -photo/elephant/064_0015.jpg 2 -photo/elephant/064_0016.jpg 2 -photo/elephant/064_0017.jpg 2 -photo/elephant/064_0018.jpg 2 -photo/elephant/064_0019.jpg 2 -photo/elephant/064_0020.jpg 2 -photo/elephant/064_0021.jpg 2 -photo/elephant/064_0022.jpg 2 -photo/elephant/064_0023.jpg 2 -photo/elephant/064_0024.jpg 2 -photo/elephant/064_0025.jpg 2 -photo/elephant/064_0030.jpg 2 -photo/elephant/064_0031.jpg 2 -photo/elephant/064_0032.jpg 2 -photo/elephant/064_0033.jpg 2 -photo/elephant/064_0034.jpg 2 -photo/elephant/064_0035.jpg 2 -photo/elephant/064_0036.jpg 2 -photo/elephant/064_0037.jpg 2 -photo/elephant/064_0038.jpg 2 -photo/elephant/064_0039.jpg 2 -photo/elephant/064_0040.jpg 2 -photo/elephant/064_0041.jpg 2 -photo/elephant/064_0042.jpg 2 -photo/elephant/064_0043.jpg 2 -photo/elephant/064_0044.jpg 2 -photo/elephant/064_0045.jpg 2 -photo/elephant/064_0047.jpg 2 -photo/elephant/064_0048.jpg 2 -photo/elephant/064_0049.jpg 2 -photo/elephant/064_0051.jpg 2 -photo/elephant/064_0052.jpg 2 -photo/elephant/064_0053.jpg 2 -photo/elephant/064_0054.jpg 2 -photo/elephant/064_0055.jpg 2 -photo/elephant/064_0056.jpg 2 -photo/elephant/064_0057.jpg 2 -photo/elephant/064_0058.jpg 2 -photo/elephant/064_0059.jpg 2 -photo/elephant/064_0060.jpg 2 -photo/elephant/064_0061.jpg 2 -photo/elephant/064_0062.jpg 2 -photo/elephant/064_0063.jpg 2 -photo/elephant/064_0064.jpg 2 -photo/elephant/064_0065.jpg 2 -photo/elephant/064_0066.jpg 2 -photo/elephant/064_0067.jpg 2 -photo/elephant/064_0068.jpg 2 -photo/elephant/064_0070.jpg 2 -photo/elephant/064_0071.jpg 2 -photo/elephant/064_0072.jpg 2 -photo/elephant/064_0073.jpg 2 -photo/elephant/064_0074.jpg 2 -photo/elephant/064_0075.jpg 2 -photo/elephant/064_0076.jpg 2 -photo/elephant/064_0077.jpg 2 -photo/elephant/064_0078.jpg 2 -photo/elephant/064_0079.jpg 2 -photo/elephant/064_0080.jpg 2 -photo/elephant/064_0081.jpg 2 -photo/elephant/064_0084.jpg 2 -photo/elephant/064_0085.jpg 2 -photo/elephant/064_0086.jpg 2 -photo/elephant/064_0087.jpg 2 -photo/elephant/064_0088.jpg 2 -photo/elephant/064_0089.jpg 2 -photo/elephant/064_0090.jpg 2 -photo/elephant/064_0092.jpg 2 -photo/elephant/064_0093.jpg 2 -photo/elephant/064_0094.jpg 2 -photo/elephant/064_0095.jpg 2 -photo/elephant/064_0096.jpg 2 -photo/elephant/064_0097.jpg 2 -photo/elephant/064_0098.jpg 2 -photo/elephant/064_0099.jpg 2 -photo/elephant/064_0100.jpg 2 -photo/elephant/064_0101.jpg 2 -photo/elephant/064_0102.jpg 2 -photo/elephant/064_0105.jpg 2 -photo/elephant/064_0106.jpg 2 -photo/elephant/064_0107.jpg 2 -photo/elephant/064_0108.jpg 2 -photo/elephant/064_0109.jpg 2 -photo/elephant/064_0110.jpg 2 -photo/elephant/064_0111.jpg 2 -photo/elephant/064_0112.jpg 2 -photo/elephant/064_0113.jpg 2 -photo/elephant/064_0114.jpg 2 -photo/elephant/064_0115.jpg 2 -photo/elephant/064_0116.jpg 2 -photo/elephant/064_0117.jpg 2 -photo/elephant/064_0118.jpg 2 -photo/elephant/064_0119.jpg 2 -photo/elephant/064_0120.jpg 2 -photo/elephant/064_0121.jpg 2 -photo/elephant/064_0122.jpg 2 -photo/elephant/064_0123.jpg 2 -photo/elephant/064_0124.jpg 2 -photo/elephant/064_0125.jpg 2 -photo/elephant/064_0126.jpg 2 -photo/elephant/064_0127.jpg 2 -photo/elephant/064_0129.jpg 2 -photo/elephant/064_0130.jpg 2 -photo/elephant/064_0131.jpg 2 -photo/elephant/n02503517_79.jpg 2 -photo/elephant/n02503517_86.jpg 2 -photo/elephant/n02503517_184.jpg 2 -photo/elephant/n02503517_194.jpg 2 -photo/elephant/n02503517_564.jpg 2 -photo/elephant/n02503517_753.jpg 2 -photo/elephant/n02503517_759.jpg 2 -photo/elephant/n02503517_792.jpg 2 -photo/elephant/n02503517_1292.jpg 2 -photo/elephant/n02503517_1359.jpg 2 -photo/elephant/n02503517_1383.jpg 2 -photo/elephant/n02503517_1415.jpg 2 -photo/elephant/n02503517_1453.jpg 2 -photo/elephant/n02503517_1583.jpg 2 -photo/elephant/n02503517_1829.jpg 2 -photo/elephant/n02503517_2061.jpg 2 -photo/elephant/n02503517_2444.jpg 2 -photo/elephant/n02503517_2547.jpg 2 -photo/elephant/n02503517_2802.jpg 2 -photo/elephant/n02503517_2804.jpg 2 -photo/elephant/n02503517_2925.jpg 2 -photo/elephant/n02503517_2993.jpg 2 -photo/elephant/n02503517_3037.jpg 2 -photo/elephant/n02503517_3072.jpg 2 -photo/elephant/n02503517_3108.jpg 2 -photo/elephant/n02503517_3799.jpg 2 -photo/elephant/n02503517_3803.jpg 2 -photo/elephant/n02503517_3808.jpg 2 -photo/elephant/n02503517_3879.jpg 2 -photo/elephant/n02503517_4221.jpg 2 -photo/elephant/n02503517_4247.jpg 2 -photo/elephant/n02503517_4253.jpg 2 -photo/elephant/n02503517_4413.jpg 2 -photo/elephant/n02503517_4605.jpg 2 -photo/elephant/n02503517_5117.jpg 2 -photo/elephant/n02503517_5287.jpg 2 -photo/elephant/n02503517_5418.jpg 2 -photo/elephant/n02503517_5420.jpg 2 -photo/elephant/n02503517_5527.jpg 2 -photo/elephant/n02503517_5892.jpg 2 -photo/elephant/n02503517_5909.jpg 2 -photo/elephant/n02503517_6032.jpg 2 -photo/elephant/n02503517_6232.jpg 2 -photo/elephant/n02503517_6396.jpg 2 -photo/elephant/n02503517_6479.jpg 2 -photo/elephant/n02503517_6611.jpg 2 -photo/elephant/n02503517_6624.jpg 2 -photo/elephant/n02503517_6661.jpg 2 -photo/elephant/n02503517_6784.jpg 2 -photo/elephant/n02503517_6880.jpg 2 -photo/elephant/n02503517_7020.jpg 2 -photo/elephant/n02503517_7031.jpg 2 -photo/elephant/n02503517_7083.jpg 2 -photo/elephant/n02503517_7173.jpg 2 -photo/elephant/n02503517_7211.jpg 2 -photo/elephant/n02503517_7393.jpg 2 -photo/elephant/n02503517_8137.jpg 2 -photo/elephant/n02503517_8205.jpg 2 -photo/elephant/n02503517_8222.jpg 2 -photo/elephant/n02503517_8265.jpg 2 -photo/elephant/n02503517_8292.jpg 2 -photo/elephant/n02503517_8518.jpg 2 -photo/elephant/n02503517_8571.jpg 2 -photo/elephant/n02503517_8757.jpg 2 -photo/elephant/n02503517_8901.jpg 2 -photo/elephant/n02503517_8904.jpg 2 -photo/elephant/n02503517_8938.jpg 2 -photo/elephant/n02503517_9043.jpg 2 -photo/elephant/n02503517_9154.jpg 2 -photo/elephant/n02503517_9241.jpg 2 -photo/elephant/n02503517_9270.jpg 2 -photo/elephant/n02503517_9827.jpg 2 -photo/elephant/n02503517_10036.jpg 2 -photo/elephant/n02503517_10075.jpg 2 -photo/elephant/n02503517_10193.jpg 2 -photo/elephant/n02503517_10275.jpg 2 -photo/elephant/n02503517_10300.jpg 2 -photo/elephant/n02503517_10439.jpg 2 -photo/elephant/n02503517_10440.jpg 2 -photo/elephant/n02503517_10528.jpg 2 -photo/elephant/n02503517_10558.jpg 2 -photo/elephant/n02503517_10778.jpg 2 -photo/elephant/n02503517_11873.jpg 2 -photo/elephant/n02503517_12688.jpg 2 -photo/giraffe/084_0001.jpg 3 -photo/giraffe/084_0002.jpg 3 -photo/giraffe/084_0003.jpg 3 -photo/giraffe/084_0004.jpg 3 -photo/giraffe/084_0005.jpg 3 -photo/giraffe/084_0006.jpg 3 -photo/giraffe/084_0007.jpg 3 -photo/giraffe/084_0008.jpg 3 -photo/giraffe/084_0009.jpg 3 -photo/giraffe/084_0010.jpg 3 -photo/giraffe/084_0011.jpg 3 -photo/giraffe/084_0012.jpg 3 -photo/giraffe/084_0013.jpg 3 -photo/giraffe/084_0014.jpg 3 -photo/giraffe/084_0015.jpg 3 -photo/giraffe/084_0016.jpg 3 -photo/giraffe/084_0017.jpg 3 -photo/giraffe/084_0018.jpg 3 -photo/giraffe/084_0019.jpg 3 -photo/giraffe/084_0020.jpg 3 -photo/giraffe/084_0021.jpg 3 -photo/giraffe/084_0022.jpg 3 -photo/giraffe/084_0023.jpg 3 -photo/giraffe/084_0024.jpg 3 -photo/giraffe/084_0025.jpg 3 -photo/giraffe/084_0026.jpg 3 -photo/giraffe/084_0027.jpg 3 -photo/giraffe/084_0028.jpg 3 -photo/giraffe/084_0029.jpg 3 -photo/giraffe/084_0030.jpg 3 -photo/giraffe/084_0031.jpg 3 -photo/giraffe/084_0032.jpg 3 -photo/giraffe/084_0033.jpg 3 -photo/giraffe/084_0034.jpg 3 -photo/giraffe/084_0035.jpg 3 -photo/giraffe/084_0036.jpg 3 -photo/giraffe/084_0038.jpg 3 -photo/giraffe/084_0039.jpg 3 -photo/giraffe/084_0040.jpg 3 -photo/giraffe/084_0041.jpg 3 -photo/giraffe/084_0042.jpg 3 -photo/giraffe/084_0043.jpg 3 -photo/giraffe/084_0044.jpg 3 -photo/giraffe/084_0045.jpg 3 -photo/giraffe/084_0046.jpg 3 -photo/giraffe/084_0047.jpg 3 -photo/giraffe/084_0048.jpg 3 -photo/giraffe/084_0049.jpg 3 -photo/giraffe/084_0050.jpg 3 -photo/giraffe/084_0051.jpg 3 -photo/giraffe/084_0052.jpg 3 -photo/giraffe/084_0053.jpg 3 -photo/giraffe/084_0054.jpg 3 -photo/giraffe/084_0055.jpg 3 -photo/giraffe/084_0056.jpg 3 -photo/giraffe/084_0057.jpg 3 -photo/giraffe/084_0058.jpg 3 -photo/giraffe/084_0059.jpg 3 -photo/giraffe/084_0060.jpg 3 -photo/giraffe/084_0061.jpg 3 -photo/giraffe/084_0062.jpg 3 -photo/giraffe/084_0063.jpg 3 -photo/giraffe/084_0064.jpg 3 -photo/giraffe/084_0065.jpg 3 -photo/giraffe/084_0066.jpg 3 -photo/giraffe/084_0067.jpg 3 -photo/giraffe/084_0068.jpg 3 -photo/giraffe/084_0069.jpg 3 -photo/giraffe/084_0070.jpg 3 -photo/giraffe/084_0071.jpg 3 -photo/giraffe/084_0072.jpg 3 -photo/giraffe/084_0073.jpg 3 -photo/giraffe/084_0074.jpg 3 -photo/giraffe/084_0075.jpg 3 -photo/giraffe/084_0076.jpg 3 -photo/giraffe/084_0077.jpg 3 -photo/giraffe/084_0078.jpg 3 -photo/giraffe/084_0079.jpg 3 -photo/giraffe/084_0080.jpg 3 -photo/giraffe/084_0081.jpg 3 -photo/giraffe/084_0082.jpg 3 -photo/giraffe/084_0083.jpg 3 -photo/giraffe/084_0084.jpg 3 -photo/giraffe/n02439033_67.jpg 3 -photo/giraffe/n02439033_221.jpg 3 -photo/giraffe/n02439033_376.jpg 3 -photo/giraffe/n02439033_569.jpg 3 -photo/giraffe/n02439033_628.jpg 3 -photo/giraffe/n02439033_866.jpg 3 -photo/giraffe/n02439033_991.jpg 3 -photo/giraffe/n02439033_1327.jpg 3 -photo/giraffe/n02439033_1508.jpg 3 -photo/giraffe/n02439033_2486.jpg 3 -photo/giraffe/n02439033_2500.jpg 3 -photo/giraffe/n02439033_2677.jpg 3 -photo/giraffe/n02439033_3944.jpg 3 -photo/giraffe/n02439033_4601.jpg 3 -photo/giraffe/n02439033_5004.jpg 3 -photo/giraffe/n02439033_5652.jpg 3 -photo/giraffe/n02439033_6552.jpg 3 -photo/giraffe/n02439033_8789.jpg 3 -photo/giraffe/n02439033_8846.jpg 3 -photo/giraffe/n02439033_8875.jpg 3 -photo/giraffe/n02439033_9257.jpg 3 -photo/giraffe/n02439033_9261.jpg 3 -photo/giraffe/n02439033_9398.jpg 3 -photo/giraffe/n02439033_9472.jpg 3 -photo/giraffe/n02439033_9598.jpg 3 -photo/giraffe/n02439033_9604.jpg 3 -photo/giraffe/n02439033_9679.jpg 3 -photo/giraffe/n02439033_9719.jpg 3 -photo/giraffe/n02439033_10130.jpg 3 -photo/giraffe/n02439033_10164.jpg 3 -photo/giraffe/n02439033_10279.jpg 3 -photo/giraffe/n02439033_10295.jpg 3 -photo/giraffe/n02439033_10453.jpg 3 -photo/giraffe/n02439033_10491.jpg 3 -photo/giraffe/n02439033_10541.jpg 3 -photo/giraffe/n02439033_10616.jpg 3 -photo/giraffe/n02439033_10802.jpg 3 -photo/giraffe/n02439033_10803.jpg 3 -photo/giraffe/n02439033_10811.jpg 3 -photo/giraffe/n02439033_10839.jpg 3 -photo/giraffe/n02439033_10919.jpg 3 -photo/giraffe/n02439033_11059.jpg 3 -photo/giraffe/n02439033_11114.jpg 3 -photo/giraffe/n02439033_11130.jpg 3 -photo/giraffe/n02439033_11215.jpg 3 -photo/giraffe/n02439033_11273.jpg 3 -photo/giraffe/n02439033_11328.jpg 3 -photo/giraffe/n02439033_11458.jpg 3 -photo/giraffe/n02439033_11486.jpg 3 -photo/giraffe/n02439033_11487.jpg 3 -photo/giraffe/n02439033_11504.jpg 3 -photo/giraffe/n02439033_11599.jpg 3 -photo/giraffe/n02439033_11627.jpg 3 -photo/giraffe/n02439033_11666.jpg 3 -photo/giraffe/n02439033_11683.jpg 3 -photo/giraffe/n02439033_11715.jpg 3 -photo/giraffe/n02439033_11845.jpg 3 -photo/giraffe/n02439033_11894.jpg 3 -photo/giraffe/n02439033_12059.jpg 3 -photo/giraffe/n02439033_12413.jpg 3 -photo/giraffe/n02439033_12485.jpg 3 -photo/giraffe/n02439033_12680.jpg 3 -photo/giraffe/n02439033_12930.jpg 3 -photo/giraffe/n02439033_12939.jpg 3 -photo/giraffe/n02439033_12987.jpg 3 -photo/giraffe/n02439033_13236.jpg 3 -photo/giraffe/n02439033_13384.jpg 3 -photo/giraffe/n02439033_13430.jpg 3 -photo/giraffe/n02439033_13602.jpg 3 -photo/giraffe/n02439033_13868.jpg 3 -photo/giraffe/n02439033_14040.jpg 3 -photo/giraffe/n02439033_14060.jpg 3 -photo/giraffe/n02439033_14121.jpg 3 -photo/giraffe/n02439033_14148.jpg 3 -photo/giraffe/n02439033_14184.jpg 3 -photo/giraffe/n02439033_14322.jpg 3 -photo/giraffe/n02439033_14497.jpg 3 -photo/giraffe/n02439033_14554.jpg 3 -photo/giraffe/n02439033_14580.jpg 3 -photo/giraffe/n02439033_14600.jpg 3 -photo/giraffe/n02439033_14609.jpg 3 -photo/giraffe/n02439033_14724.jpg 3 -photo/giraffe/n02439033_14764.jpg 3 -photo/giraffe/n02439033_14781.jpg 3 -photo/giraffe/n02439033_14784.jpg 3 -photo/giraffe/n02439033_14846.jpg 3 -photo/giraffe/n02439033_14872.jpg 3 -photo/giraffe/n02439033_14962.jpg 3 -photo/giraffe/n02439033_15005.jpg 3 -photo/giraffe/n02439033_15384.jpg 3 -photo/giraffe/n02439033_15401.jpg 3 -photo/giraffe/n02439033_15453.jpg 3 -photo/giraffe/n02439033_15479.jpg 3 -photo/giraffe/n02439033_15540.jpg 3 -photo/giraffe/n02439033_15555.jpg 3 -photo/giraffe/n02439033_15936.jpg 3 -photo/giraffe/n02439033_16085.jpg 3 -photo/giraffe/n02439033_16356.jpg 3 -photo/giraffe/n02439033_16483.jpg 3 -photo/guitar/063_0001.jpg 4 -photo/guitar/063_0002.jpg 4 -photo/guitar/063_0003.jpg 4 -photo/guitar/063_0004.jpg 4 -photo/guitar/063_0005.jpg 4 -photo/guitar/063_0006.jpg 4 -photo/guitar/063_0007.jpg 4 -photo/guitar/063_0008.jpg 4 -photo/guitar/063_0009.jpg 4 -photo/guitar/063_0010.jpg 4 -photo/guitar/063_0012.jpg 4 -photo/guitar/063_0013.jpg 4 -photo/guitar/063_0016.jpg 4 -photo/guitar/063_0018.jpg 4 -photo/guitar/063_0019.jpg 4 -photo/guitar/063_0020.jpg 4 -photo/guitar/063_0021.jpg 4 -photo/guitar/063_0022.jpg 4 -photo/guitar/063_0023.jpg 4 -photo/guitar/063_0024.jpg 4 -photo/guitar/063_0025.jpg 4 -photo/guitar/063_0026.jpg 4 -photo/guitar/063_0027.jpg 4 -photo/guitar/063_0028.jpg 4 -photo/guitar/063_0029.jpg 4 -photo/guitar/063_0030.jpg 4 -photo/guitar/063_0031.jpg 4 -photo/guitar/063_0032.jpg 4 -photo/guitar/063_0035.jpg 4 -photo/guitar/063_0036.jpg 4 -photo/guitar/063_0037.jpg 4 -photo/guitar/063_0038.jpg 4 -photo/guitar/063_0039.jpg 4 -photo/guitar/063_0040.jpg 4 -photo/guitar/063_0041.jpg 4 -photo/guitar/063_0042.jpg 4 -photo/guitar/063_0043.jpg 4 -photo/guitar/063_0045.jpg 4 -photo/guitar/063_0046.jpg 4 -photo/guitar/063_0047.jpg 4 -photo/guitar/063_0048.jpg 4 -photo/guitar/063_0049.jpg 4 -photo/guitar/063_0050.jpg 4 -photo/guitar/063_0051.jpg 4 -photo/guitar/063_0052.jpg 4 -photo/guitar/063_0053.jpg 4 -photo/guitar/063_0054.jpg 4 -photo/guitar/063_0055.jpg 4 -photo/guitar/063_0056.jpg 4 -photo/guitar/063_0059.jpg 4 -photo/guitar/063_0061.jpg 4 -photo/guitar/063_0062.jpg 4 -photo/guitar/063_0065.jpg 4 -photo/guitar/063_0067.jpg 4 -photo/guitar/063_0068.jpg 4 -photo/guitar/063_0069.jpg 4 -photo/guitar/063_0071.jpg 4 -photo/guitar/063_0072.jpg 4 -photo/guitar/063_0073.jpg 4 -photo/guitar/063_0074.jpg 4 -photo/guitar/063_0075.jpg 4 -photo/guitar/063_0076.jpg 4 -photo/guitar/063_0077.jpg 4 -photo/guitar/063_0078.jpg 4 -photo/guitar/063_0079.jpg 4 -photo/guitar/063_0080.jpg 4 -photo/guitar/063_0081.jpg 4 -photo/guitar/063_0082.jpg 4 -photo/guitar/063_0084.jpg 4 -photo/guitar/063_0085.jpg 4 -photo/guitar/063_0086.jpg 4 -photo/guitar/063_0087.jpg 4 -photo/guitar/063_0088.jpg 4 -photo/guitar/063_0089.jpg 4 -photo/guitar/063_0090.jpg 4 -photo/guitar/063_0091.jpg 4 -photo/guitar/063_0092.jpg 4 -photo/guitar/063_0093.jpg 4 -photo/guitar/063_0094.jpg 4 -photo/guitar/063_0095.jpg 4 -photo/guitar/063_0096.jpg 4 -photo/guitar/063_0097.jpg 4 -photo/guitar/063_0098.jpg 4 -photo/guitar/063_0099.jpg 4 -photo/guitar/063_0100.jpg 4 -photo/guitar/063_0101.jpg 4 -photo/guitar/063_0102.jpg 4 -photo/guitar/063_0103.jpg 4 -photo/guitar/063_0104.jpg 4 -photo/guitar/063_0105.jpg 4 -photo/guitar/063_0106.jpg 4 -photo/guitar/063_0107.jpg 4 -photo/guitar/063_0108.jpg 4 -photo/guitar/063_0109.jpg 4 -photo/guitar/063_0110.jpg 4 -photo/guitar/063_0111.jpg 4 -photo/guitar/063_0112.jpg 4 -photo/guitar/063_0113.jpg 4 -photo/guitar/063_0114.jpg 4 -photo/guitar/063_0115.jpg 4 -photo/guitar/063_0116.jpg 4 -photo/guitar/063_0117.jpg 4 -photo/guitar/063_0118.jpg 4 -photo/guitar/063_0119.jpg 4 -photo/guitar/063_0120.jpg 4 -photo/guitar/063_0121.jpg 4 -photo/guitar/063_0122.jpg 4 -photo/guitar/n02676566_307.jpg 4 -photo/guitar/n02676566_330.jpg 4 -photo/guitar/n02676566_659.jpg 4 -photo/guitar/n02676566_1324.jpg 4 -photo/guitar/n02676566_2380.jpg 4 -photo/guitar/n02676566_3360.jpg 4 -photo/guitar/n02676566_4058.jpg 4 -photo/guitar/n02676566_4189.jpg 4 -photo/guitar/n02676566_4469.jpg 4 -photo/guitar/n02676566_4605.jpg 4 -photo/guitar/n02676566_4699.jpg 4 -photo/guitar/n02676566_5489.jpg 4 -photo/guitar/n02676566_5735.jpg 4 -photo/guitar/n02676566_6150.jpg 4 -photo/guitar/n02676566_6402.jpg 4 -photo/guitar/n02676566_6430.jpg 4 -photo/guitar/n02676566_6560.jpg 4 -photo/guitar/n02676566_6631.jpg 4 -photo/guitar/n02676566_6704.jpg 4 -photo/guitar/n02676566_6914.jpg 4 -photo/guitar/n02676566_6948.jpg 4 -photo/guitar/n02676566_7385.jpg 4 -photo/guitar/n02676566_7770.jpg 4 -photo/guitar/n02676566_7830.jpg 4 -photo/guitar/n02676566_7844.jpg 4 -photo/guitar/n02676566_7927.jpg 4 -photo/guitar/n02676566_8268.jpg 4 -photo/guitar/n02676566_8309.jpg 4 -photo/guitar/n02676566_8467.jpg 4 -photo/guitar/n02676566_8618.jpg 4 -photo/guitar/n02676566_8820.jpg 4 -photo/guitar/n02676566_8859.jpg 4 -photo/guitar/n02676566_8997.jpg 4 -photo/guitar/n02676566_9062.jpg 4 -photo/guitar/n02676566_9243.jpg 4 -photo/guitar/n02676566_9254.jpg 4 -photo/guitar/n02676566_9451.jpg 4 -photo/guitar/n02676566_9577.jpg 4 -photo/guitar/n02676566_9661.jpg 4 -photo/guitar/n02676566_9936.jpg 4 -photo/guitar/n02676566_11573.jpg 4 -photo/guitar/n02676566_12344.jpg 4 -photo/guitar/n03272010_392.jpg 4 -photo/guitar/n03272010_446.jpg 4 -photo/guitar/n03272010_1708.jpg 4 -photo/guitar/n03272010_3732.jpg 4 -photo/guitar/n03272010_5483.jpg 4 -photo/guitar/n03272010_5887.jpg 4 -photo/guitar/n03272010_6255.jpg 4 -photo/guitar/n03272010_6291.jpg 4 -photo/guitar/n03272010_6662.jpg 4 -photo/guitar/n03272010_6727.jpg 4 -photo/guitar/n03272010_6737.jpg 4 -photo/guitar/n03272010_6799.jpg 4 -photo/guitar/n03272010_6809.jpg 4 -photo/guitar/n03272010_6820.jpg 4 -photo/guitar/n03272010_6926.jpg 4 -photo/guitar/n03272010_7092.jpg 4 -photo/guitar/n03272010_7390.jpg 4 -photo/guitar/n03272010_7729.jpg 4 -photo/guitar/n03272010_9557.jpg 4 -photo/guitar/n03272010_9858.jpg 4 -photo/guitar/n03272010_9899.jpg 4 -photo/guitar/n03272010_10441.jpg 4 -photo/guitar/n03272010_10795.jpg 4 -photo/guitar/n03272010_12151.jpg 4 -photo/guitar/n03272010_12468.jpg 4 -photo/guitar/n03467517_6423.jpg 4 -photo/guitar/n03467517_7007.jpg 4 -photo/guitar/n03467517_8929.jpg 4 -photo/guitar/n03467517_11020.jpg 4 -photo/guitar/n03467517_12925.jpg 4 -photo/guitar/n03467517_17233.jpg 4 -photo/guitar/n03467517_19701.jpg 4 -photo/guitar/n03467517_21884.jpg 4 -photo/guitar/n03467517_22246.jpg 4 -photo/guitar/n03467517_22785.jpg 4 -photo/guitar/n03467517_23229.jpg 4 -photo/guitar/n03467517_24525.jpg 4 -photo/horse/105_0002.jpg 5 -photo/horse/105_0003.jpg 5 -photo/horse/105_0007.jpg 5 -photo/horse/105_0008.jpg 5 -photo/horse/105_0009.jpg 5 -photo/horse/105_0010.jpg 5 -photo/horse/105_0012.jpg 5 -photo/horse/105_0013.jpg 5 -photo/horse/105_0018.jpg 5 -photo/horse/105_0022.jpg 5 -photo/horse/105_0025.jpg 5 -photo/horse/105_0028.jpg 5 -photo/horse/105_0029.jpg 5 -photo/horse/105_0030.jpg 5 -photo/horse/105_0033.jpg 5 -photo/horse/105_0037.jpg 5 -photo/horse/105_0038.jpg 5 -photo/horse/105_0041.jpg 5 -photo/horse/105_0042.jpg 5 -photo/horse/105_0047.jpg 5 -photo/horse/105_0048.jpg 5 -photo/horse/105_0050.jpg 5 -photo/horse/105_0053.jpg 5 -photo/horse/105_0056.jpg 5 -photo/horse/105_0058.jpg 5 -photo/horse/105_0059.jpg 5 -photo/horse/105_0063.jpg 5 -photo/horse/105_0066.jpg 5 -photo/horse/105_0067.jpg 5 -photo/horse/105_0070.jpg 5 -photo/horse/105_0071.jpg 5 -photo/horse/105_0072.jpg 5 -photo/horse/105_0073.jpg 5 -photo/horse/105_0074.jpg 5 -photo/horse/105_0075.jpg 5 -photo/horse/105_0076.jpg 5 -photo/horse/105_0077.jpg 5 -photo/horse/105_0081.jpg 5 -photo/horse/105_0083.jpg 5 -photo/horse/105_0084.jpg 5 -photo/horse/105_0086.jpg 5 -photo/horse/105_0088.jpg 5 -photo/horse/105_0089.jpg 5 -photo/horse/105_0090.jpg 5 -photo/horse/105_0091.jpg 5 -photo/horse/105_0092.jpg 5 -photo/horse/105_0099.jpg 5 -photo/horse/105_0101.jpg 5 -photo/horse/105_0103.jpg 5 -photo/horse/105_0104.jpg 5 -photo/horse/105_0105.jpg 5 -photo/horse/105_0106.jpg 5 -photo/horse/105_0108.jpg 5 -photo/horse/105_0109.jpg 5 -photo/horse/105_0111.jpg 5 -photo/horse/105_0115.jpg 5 -photo/horse/105_0116.jpg 5 -photo/horse/105_0118.jpg 5 -photo/horse/105_0120.jpg 5 -photo/horse/105_0121.jpg 5 -photo/horse/105_0123.jpg 5 -photo/horse/105_0124.jpg 5 -photo/horse/105_0125.jpg 5 -photo/horse/105_0130.jpg 5 -photo/horse/105_0131.jpg 5 -photo/horse/105_0134.jpg 5 -photo/horse/105_0135.jpg 5 -photo/horse/105_0137.jpg 5 -photo/horse/105_0138.jpg 5 -photo/horse/105_0139.jpg 5 -photo/horse/105_0140.jpg 5 -photo/horse/105_0143.jpg 5 -photo/horse/105_0146.jpg 5 -photo/horse/105_0147.jpg 5 -photo/horse/105_0149.jpg 5 -photo/horse/105_0150.jpg 5 -photo/horse/105_0154.jpg 5 -photo/horse/105_0156.jpg 5 -photo/horse/105_0157.jpg 5 -photo/horse/105_0161.jpg 5 -photo/horse/105_0164.jpg 5 -photo/horse/105_0165.jpg 5 -photo/horse/105_0172.jpg 5 -photo/horse/105_0173.jpg 5 -photo/horse/105_0174.jpg 5 -photo/horse/105_0175.jpg 5 -photo/horse/105_0176.jpg 5 -photo/horse/105_0177.jpg 5 -photo/horse/105_0180.jpg 5 -photo/horse/105_0181.jpg 5 -photo/horse/105_0182.jpg 5 -photo/horse/105_0183.jpg 5 -photo/horse/105_0184.jpg 5 -photo/horse/105_0185.jpg 5 -photo/horse/105_0193.jpg 5 -photo/horse/105_0194.jpg 5 -photo/horse/105_0196.jpg 5 -photo/horse/105_0199.jpg 5 -photo/horse/105_0203.jpg 5 -photo/horse/105_0205.jpg 5 -photo/horse/105_0206.jpg 5 -photo/horse/105_0207.jpg 5 -photo/horse/105_0208.jpg 5 -photo/horse/105_0210.jpg 5 -photo/horse/105_0215.jpg 5 -photo/horse/105_0223.jpg 5 -photo/horse/105_0229.jpg 5 -photo/horse/105_0230.jpg 5 -photo/horse/105_0232.jpg 5 -photo/horse/105_0236.jpg 5 -photo/horse/105_0240.jpg 5 -photo/horse/105_0241.jpg 5 -photo/horse/105_0249.jpg 5 -photo/horse/105_0253.jpg 5 -photo/horse/105_0255.jpg 5 -photo/horse/105_0257.jpg 5 -photo/horse/105_0260.jpg 5 -photo/horse/105_0264.jpg 5 -photo/horse/105_0265.jpg 5 -photo/horse/105_0266.jpg 5 -photo/horse/105_0269.jpg 5 -photo/horse/105_0270.jpg 5 -photo/horse/n02374451_54.jpg 5 -photo/horse/n02374451_245.jpg 5 -photo/horse/n02374451_257.jpg 5 -photo/horse/n02374451_262.jpg 5 -photo/horse/n02374451_388.jpg 5 -photo/horse/n02374451_468.jpg 5 -photo/horse/n02374451_490.jpg 5 -photo/horse/n02374451_503.jpg 5 -photo/horse/n02374451_597.jpg 5 -photo/horse/n02374451_777.jpg 5 -photo/horse/n02374451_779.jpg 5 -photo/horse/n02374451_916.jpg 5 -photo/horse/n02374451_925.jpg 5 -photo/horse/n02374451_929.jpg 5 -photo/horse/n02374451_1189.jpg 5 -photo/horse/n02374451_1234.jpg 5 -photo/horse/n02374451_1443.jpg 5 -photo/horse/n02374451_2248.jpg 5 -photo/horse/n02374451_2372.jpg 5 -photo/horse/n02374451_2478.jpg 5 -photo/horse/n02374451_2616.jpg 5 -photo/horse/n02374451_2733.jpg 5 -photo/horse/n02374451_2743.jpg 5 -photo/horse/n02374451_2825.jpg 5 -photo/horse/n02374451_3388.jpg 5 -photo/horse/n02374451_4538.jpg 5 -photo/horse/n02374451_4553.jpg 5 -photo/horse/n02374451_4795.jpg 5 -photo/horse/n02374451_4818.jpg 5 -photo/horse/n02374451_4963.jpg 5 -photo/horse/n02374451_6192.jpg 5 -photo/horse/n02374451_7631.jpg 5 -photo/horse/n02374451_8065.jpg 5 -photo/horse/n02374451_8526.jpg 5 -photo/horse/n02374451_8718.jpg 5 -photo/horse/n02374451_8744.jpg 5 -photo/horse/n02374451_9064.jpg 5 -photo/horse/n02374451_9443.jpg 5 -photo/horse/n02374451_9892.jpg 5 -photo/horse/n02374451_10081.jpg 5 -photo/horse/n02374451_10098.jpg 5 -photo/horse/n02374451_10331.jpg 5 -photo/horse/n02374451_10669.jpg 5 -photo/horse/n02374451_10761.jpg 5 -photo/horse/n02374451_10809.jpg 5 -photo/horse/n02374451_11479.jpg 5 -photo/horse/n02374451_11483.jpg 5 -photo/horse/n02374451_11492.jpg 5 -photo/horse/n02374451_11894.jpg 5 -photo/horse/n02374451_12128.jpg 5 -photo/horse/n02374451_12174.jpg 5 -photo/horse/n02374451_12225.jpg 5 -photo/horse/n02374451_12230.jpg 5 -photo/horse/n02374451_12250.jpg 5 -photo/horse/n02374451_12254.jpg 5 -photo/horse/n02374451_12418.jpg 5 -photo/horse/n02374451_12792.jpg 5 -photo/horse/n02374451_12847.jpg 5 -photo/horse/n02374451_13159.jpg 5 -photo/horse/n02374451_13718.jpg 5 -photo/horse/n02374451_14119.jpg 5 -photo/horse/n02374451_14233.jpg 5 -photo/horse/n02374451_14399.jpg 5 -photo/horse/n02374451_14425.jpg 5 -photo/horse/n02374451_14738.jpg 5 -photo/horse/n02374451_14846.jpg 5 -photo/horse/n02374451_15307.jpg 5 -photo/horse/n02374451_15440.jpg 5 -photo/horse/n02374451_15453.jpg 5 -photo/horse/n02374451_15669.jpg 5 -photo/horse/n02374451_16358.jpg 5 -photo/horse/n02374451_17384.jpg 5 -photo/horse/n02374451_17474.jpg 5 -photo/horse/n02374451_17634.jpg 5 -photo/horse/n02374451_18192.jpg 5 -photo/horse/n02374451_18570.jpg 5 -photo/horse/n02374451_18909.jpg 5 -photo/house/pic_010.jpg 6 -photo/house/pic_011.jpg 6 -photo/house/pic_012.jpg 6 -photo/house/pic_013.jpg 6 -photo/house/pic_014.jpg 6 -photo/house/pic_015.jpg 6 -photo/house/pic_016.jpg 6 -photo/house/pic_017.jpg 6 -photo/house/pic_018.jpg 6 -photo/house/pic_021.jpg 6 -photo/house/pic_019.jpg 6 -photo/house/pic_022.jpg 6 -photo/house/pic_020.jpg 6 -photo/house/pic_023.jpg 6 -photo/house/pic_024.jpg 6 -photo/house/pic_026.jpg 6 -photo/house/pic_025.jpg 6 -photo/house/pic_027.jpg 6 -photo/house/pic_028.jpg 6 -photo/house/pic_029.jpg 6 -photo/house/pic_031.jpg 6 -photo/house/pic_239.jpg 6 -photo/house/pic_240.jpg 6 -photo/house/pic_241.jpg 6 -photo/house/pic_242.jpg 6 -photo/house/pic_248.jpg 6 -photo/house/pic_246.jpg 6 -photo/house/pic_247.jpg 6 -photo/house/pic_244.jpg 6 -photo/house/pic_243.jpg 6 -photo/house/pic_250.jpg 6 -photo/house/pic_249.jpg 6 -photo/house/pic_251.jpg 6 -photo/house/pic_252.jpg 6 -photo/house/pic_253.jpg 6 -photo/house/pic_256.jpg 6 -photo/house/pic_255.jpg 6 -photo/house/pic_257.jpg 6 -photo/house/pic_260.jpg 6 -photo/house/pic_032.jpg 6 -photo/house/pic_030.jpg 6 -photo/house/pic_033.jpg 6 -photo/house/pic_034.jpg 6 -photo/house/pic_035.jpg 6 -photo/house/pic_036.jpg 6 -photo/house/pic_037.jpg 6 -photo/house/pic_038.jpg 6 -photo/house/pic_039.jpg 6 -photo/house/pic_042.jpg 6 -photo/house/pic_041.jpg 6 -photo/house/pic_040.jpg 6 -photo/house/pic_045.jpg 6 -photo/house/pic_046.jpg 6 -photo/house/pic_044.jpg 6 -photo/house/pic_043.jpg 6 -photo/house/pic_047.jpg 6 -photo/house/pic_048.jpg 6 -photo/house/pic_049.jpg 6 -photo/house/pic_050.jpg 6 -photo/house/pic_058.jpg 6 -photo/house/pic_216.jpg 6 -photo/house/pic_217.jpg 6 -photo/house/pic_220.jpg 6 -photo/house/pic_221.jpg 6 -photo/house/pic_222.jpg 6 -photo/house/pic_223.jpg 6 -photo/house/pic_224.jpg 6 -photo/house/pic_225.jpg 6 -photo/house/pic_226.jpg 6 -photo/house/pic_228.jpg 6 -photo/house/pic_229.jpg 6 -photo/house/pic_230.jpg 6 -photo/house/pic_231.jpg 6 -photo/house/pic_232.jpg 6 -photo/house/pic_233.jpg 6 -photo/house/pic_234.jpg 6 -photo/house/pic_235.jpg 6 -photo/house/pic_236.jpg 6 -photo/house/pic_238.jpg 6 -photo/house/pic_237.jpg 6 -photo/house/pic_067.jpg 6 -photo/house/pic_062.jpg 6 -photo/house/pic_075.jpg 6 -photo/house/pic_078.jpg 6 -photo/house/pic_079.jpg 6 -photo/house/pic_070.jpg 6 -photo/house/pic_066.jpg 6 -photo/house/pic_088.jpg 6 -photo/house/pic_081.jpg 6 -photo/house/pic_091.jpg 6 -photo/house/pic_072.jpg 6 -photo/house/pic_093.jpg 6 -photo/house/pic_086.jpg 6 -photo/house/pic_098.jpg 6 -photo/house/pic_096.jpg 6 -photo/house/pic_095.jpg 6 -photo/house/pic_094.jpg 6 -photo/house/pic_092.jpg 6 -photo/house/pic_090.jpg 6 -photo/house/pic_097.jpg 6 -photo/house/pic_061.jpg 6 -photo/house/pic_060.jpg 6 -photo/house/pic_057.jpg 6 -photo/house/pic_051.jpg 6 -photo/house/pic_054.jpg 6 -photo/house/pic_053.jpg 6 -photo/house/pic_052.jpg 6 -photo/house/pic_063.jpg 6 -photo/house/pic_059.jpg 6 -photo/house/pic_055.jpg 6 -photo/house/pic_056.jpg 6 -photo/house/pic_082.jpg 6 -photo/house/pic_080.jpg 6 -photo/house/pic_077.jpg 6 -photo/house/pic_076.jpg 6 -photo/house/pic_074.jpg 6 -photo/house/pic_073.jpg 6 -photo/house/pic_071.jpg 6 -photo/house/pic_069.jpg 6 -photo/house/pic_068.jpg 6 -photo/house/pic_065.jpg 6 -photo/house/pic_153.jpg 6 -photo/house/pic_156.jpg 6 -photo/house/pic_157.jpg 6 -photo/house/pic_158.jpg 6 -photo/house/pic_159.jpg 6 -photo/house/pic_160.jpg 6 -photo/house/pic_162.jpg 6 -photo/house/pic_161.jpg 6 -photo/house/pic_166.jpg 6 -photo/house/pic_165.jpg 6 -photo/house/pic_163.jpg 6 -photo/house/pic_164.jpg 6 -photo/house/pic_167.jpg 6 -photo/house/pic_168.jpg 6 -photo/house/pic_170.jpg 6 -photo/house/pic_169.jpg 6 -photo/house/pic_171.jpg 6 -photo/house/pic_172.jpg 6 -photo/house/pic_174.jpg 6 -photo/house/pic_175.jpg 6 -photo/house/pic_173.jpg 6 -photo/house/pic_134.jpg 6 -photo/house/pic_135.jpg 6 -photo/house/pic_136.jpg 6 -photo/house/pic_138.jpg 6 -photo/house/pic_139.jpg 6 -photo/house/pic_137.jpg 6 -photo/house/pic_140.jpg 6 -photo/house/pic_141.jpg 6 -photo/house/pic_143.jpg 6 -photo/house/pic_142.jpg 6 -photo/house/pic_144.jpg 6 -photo/house/pic_146.jpg 6 -photo/house/pic_145.jpg 6 -photo/house/pic_147.jpg 6 -photo/house/pic_148.jpg 6 -photo/house/pic_149.jpg 6 -photo/house/pic_150.jpg 6 -photo/house/pic_151.jpg 6 -photo/house/pic_154.jpg 6 -photo/house/pic_155.jpg 6 -photo/house/pic_197.jpg 6 -photo/house/pic_199.jpg 6 -photo/house/pic_200.jpg 6 -photo/house/pic_198.jpg 6 -photo/house/pic_202.jpg 6 -photo/house/pic_201.jpg 6 -photo/house/pic_204.jpg 6 -photo/house/pic_205.jpg 6 -photo/house/pic_203.jpg 6 -photo/house/pic_207.jpg 6 -photo/house/pic_206.jpg 6 -photo/house/pic_209.jpg 6 -photo/house/pic_208.jpg 6 -photo/house/pic_210.jpg 6 -photo/house/pic_211.jpg 6 -photo/house/pic_214.jpg 6 -photo/house/pic_213.jpg 6 -photo/house/pic_215.jpg 6 -photo/house/pic_219.jpg 6 -photo/house/pic_218.jpg 6 -photo/house/pic_280.jpg 6 -photo/house/pic_276.jpg 6 -photo/house/pic_287.jpg 6 -photo/house/pic_282.jpg 6 -photo/house/pic_283.jpg 6 -photo/house/pic_288.jpg 6 -photo/house/pic_289.jpg 6 -photo/house/pic_290.jpg 6 -photo/house/pic_281.jpg 6 -photo/house/pic_284.jpg 6 -photo/house/pic_089.jpg 6 -photo/house/pic_084.jpg 6 -photo/house/pic_085.jpg 6 -photo/house/pic_083.jpg 6 -photo/house/pic_099.jpg 6 -photo/house/pic_087.jpg 6 -photo/house/pic_106.jpg 6 -photo/house/pic_104.jpg 6 -photo/house/pic_103.jpg 6 -photo/house/pic_102.jpg 6 -photo/house/pic_101.jpg 6 -photo/house/pic_100.jpg 6 -photo/house/pic_110.jpg 6 -photo/house/pic_109.jpg 6 -photo/house/pic_108.jpg 6 -photo/house/pic_107.jpg 6 -photo/house/pic_111.jpg 6 -photo/house/pic_112.jpg 6 -photo/house/pic_113.jpg 6 -photo/house/pic_114.jpg 6 -photo/house/pic_262.jpg 6 -photo/house/pic_259.jpg 6 -photo/house/pic_264.jpg 6 -photo/house/pic_263.jpg 6 -photo/house/pic_265.jpg 6 -photo/house/pic_261.jpg 6 -photo/house/pic_266.jpg 6 -photo/house/pic_267.jpg 6 -photo/house/pic_269.jpg 6 -photo/house/pic_270.jpg 6 -photo/house/pic_268.jpg 6 -photo/house/pic_279.jpg 6 -photo/house/pic_278.jpg 6 -photo/house/pic_277.jpg 6 -photo/house/pic_275.jpg 6 -photo/house/pic_272.jpg 6 -photo/house/pic_274.jpg 6 -photo/house/pic_273.jpg 6 -photo/house/pic_271.jpg 6 -photo/house/pic_286.jpg 6 -photo/house/pic_285.jpg 6 -photo/house/pic_116.jpg 6 -photo/house/pic_115.jpg 6 -photo/house/pic_117.jpg 6 -photo/house/pic_118.jpg 6 -photo/house/pic_120.jpg 6 -photo/house/pic_119.jpg 6 -photo/house/pic_121.jpg 6 -photo/house/pic_122.jpg 6 -photo/house/pic_124.jpg 6 -photo/house/pic_123.jpg 6 -photo/house/pic_125.jpg 6 -photo/house/pic_126.jpg 6 -photo/house/pic_127.jpg 6 -photo/house/pic_128.jpg 6 -photo/house/pic_129.jpg 6 -photo/house/pic_130.jpg 6 -photo/house/pic_131.jpg 6 -photo/house/pic_132.jpg 6 -photo/house/pic_133.jpg 6 -photo/house/pic_001.jpg 6 -photo/house/pic_002.jpg 6 -photo/house/pic_003.jpg 6 -photo/house/pic_004.jpg 6 -photo/house/pic_005.jpg 6 -photo/house/pic_006.jpg 6 -photo/house/pic_007.jpg 6 -photo/house/pic_008.jpg 6 -photo/house/pic_178.jpg 6 -photo/house/pic_177.jpg 6 -photo/house/pic_176.jpg 6 -photo/house/pic_179.jpg 6 -photo/house/pic_181.jpg 6 -photo/house/pic_180.jpg 6 -photo/house/pic_185.jpg 6 -photo/house/pic_183.jpg 6 -photo/house/pic_184.jpg 6 -photo/house/pic_190.jpg 6 -photo/house/pic_188.jpg 6 -photo/house/pic_189.jpg 6 -photo/house/pic_186.jpg 6 -photo/house/pic_187.jpg 6 -photo/house/pic_191.jpg 6 -photo/house/pic_192.jpg 6 -photo/house/pic_194.jpg 6 -photo/house/pic_193.jpg 6 -photo/house/pic_195.jpg 6 -photo/house/pic_196.jpg 6 -photo/person/253_0001.jpg 7 -photo/person/253_0002.jpg 7 -photo/person/253_0003.jpg 7 -photo/person/253_0004.jpg 7 -photo/person/253_0005.jpg 7 -photo/person/253_0006.jpg 7 -photo/person/253_0007.jpg 7 -photo/person/253_0008.jpg 7 -photo/person/253_0009.jpg 7 -photo/person/253_0010.jpg 7 -photo/person/253_0011.jpg 7 -photo/person/253_0012.jpg 7 -photo/person/253_0013.jpg 7 -photo/person/253_0014.jpg 7 -photo/person/253_0015.jpg 7 -photo/person/253_0016.jpg 7 -photo/person/253_0017.jpg 7 -photo/person/253_0018.jpg 7 -photo/person/253_0019.jpg 7 -photo/person/253_0020.jpg 7 -photo/person/253_0021.jpg 7 -photo/person/253_0022.jpg 7 -photo/person/253_0023.jpg 7 -photo/person/253_0024.jpg 7 -photo/person/253_0025.jpg 7 -photo/person/253_0026.jpg 7 -photo/person/253_0027.jpg 7 -photo/person/253_0028.jpg 7 -photo/person/253_0029.jpg 7 -photo/person/253_0030.jpg 7 -photo/person/253_0031.jpg 7 -photo/person/253_0032.jpg 7 -photo/person/253_0033.jpg 7 -photo/person/253_0034.jpg 7 -photo/person/253_0035.jpg 7 -photo/person/253_0036.jpg 7 -photo/person/253_0037.jpg 7 -photo/person/253_0038.jpg 7 -photo/person/253_0039.jpg 7 -photo/person/253_0040.jpg 7 -photo/person/253_0041.jpg 7 -photo/person/253_0042.jpg 7 -photo/person/253_0043.jpg 7 -photo/person/253_0044.jpg 7 -photo/person/253_0045.jpg 7 -photo/person/253_0046.jpg 7 -photo/person/253_0047.jpg 7 -photo/person/253_0048.jpg 7 -photo/person/253_0049.jpg 7 -photo/person/253_0050.jpg 7 -photo/person/253_0051.jpg 7 -photo/person/253_0052.jpg 7 -photo/person/253_0053.jpg 7 -photo/person/253_0054.jpg 7 -photo/person/253_0055.jpg 7 -photo/person/253_0056.jpg 7 -photo/person/253_0057.jpg 7 -photo/person/253_0058.jpg 7 -photo/person/253_0059.jpg 7 -photo/person/253_0060.jpg 7 -photo/person/253_0061.jpg 7 -photo/person/253_0062.jpg 7 -photo/person/253_0063.jpg 7 -photo/person/253_0064.jpg 7 -photo/person/253_0065.jpg 7 -photo/person/253_0066.jpg 7 -photo/person/253_0067.jpg 7 -photo/person/253_0068.jpg 7 -photo/person/253_0069.jpg 7 -photo/person/253_0070.jpg 7 -photo/person/253_0071.jpg 7 -photo/person/253_0072.jpg 7 -photo/person/253_0073.jpg 7 -photo/person/253_0074.jpg 7 -photo/person/253_0075.jpg 7 -photo/person/253_0076.jpg 7 -photo/person/253_0077.jpg 7 -photo/person/253_0078.jpg 7 -photo/person/253_0079.jpg 7 -photo/person/253_0080.jpg 7 -photo/person/253_0081.jpg 7 -photo/person/253_0082.jpg 7 -photo/person/253_0083.jpg 7 -photo/person/253_0084.jpg 7 -photo/person/253_0085.jpg 7 -photo/person/253_0086.jpg 7 -photo/person/253_0087.jpg 7 -photo/person/253_0088.jpg 7 -photo/person/253_0089.jpg 7 -photo/person/253_0090.jpg 7 -photo/person/253_0091.jpg 7 -photo/person/253_0092.jpg 7 -photo/person/253_0093.jpg 7 -photo/person/253_0094.jpg 7 -photo/person/253_0095.jpg 7 -photo/person/253_0096.jpg 7 -photo/person/253_0097.jpg 7 -photo/person/253_0098.jpg 7 -photo/person/253_0099.jpg 7 -photo/person/253_0100.jpg 7 -photo/person/253_0101.jpg 7 -photo/person/253_0102.jpg 7 -photo/person/253_0103.jpg 7 -photo/person/253_0104.jpg 7 -photo/person/253_0105.jpg 7 -photo/person/253_0106.jpg 7 -photo/person/253_0107.jpg 7 -photo/person/253_0108.jpg 7 -photo/person/253_0109.jpg 7 -photo/person/253_0110.jpg 7 -photo/person/253_0111.jpg 7 -photo/person/253_0112.jpg 7 -photo/person/253_0113.jpg 7 -photo/person/253_0114.jpg 7 -photo/person/253_0115.jpg 7 -photo/person/253_0116.jpg 7 -photo/person/253_0117.jpg 7 -photo/person/253_0118.jpg 7 -photo/person/253_0119.jpg 7 -photo/person/253_0120.jpg 7 -photo/person/253_0121.jpg 7 -photo/person/253_0122.jpg 7 -photo/person/253_0123.jpg 7 -photo/person/253_0124.jpg 7 -photo/person/253_0125.jpg 7 -photo/person/253_0126.jpg 7 -photo/person/253_0127.jpg 7 -photo/person/253_0128.jpg 7 -photo/person/253_0129.jpg 7 -photo/person/253_0130.jpg 7 -photo/person/253_0131.jpg 7 -photo/person/253_0132.jpg 7 -photo/person/253_0133.jpg 7 -photo/person/253_0134.jpg 7 -photo/person/253_0135.jpg 7 -photo/person/253_0136.jpg 7 -photo/person/253_0137.jpg 7 -photo/person/253_0138.jpg 7 -photo/person/253_0139.jpg 7 -photo/person/253_0140.jpg 7 -photo/person/253_0141.jpg 7 -photo/person/253_0142.jpg 7 -photo/person/253_0143.jpg 7 -photo/person/253_0144.jpg 7 -photo/person/253_0145.jpg 7 -photo/person/253_0146.jpg 7 -photo/person/253_0147.jpg 7 -photo/person/253_0148.jpg 7 -photo/person/253_0149.jpg 7 -photo/person/253_0150.jpg 7 -photo/person/253_0151.jpg 7 -photo/person/253_0152.jpg 7 -photo/person/253_0153.jpg 7 -photo/person/253_0154.jpg 7 -photo/person/253_0155.jpg 7 -photo/person/253_0156.jpg 7 -photo/person/253_0157.jpg 7 -photo/person/253_0158.jpg 7 -photo/person/253_0159.jpg 7 -photo/person/253_0160.jpg 7 -photo/person/253_0161.jpg 7 -photo/person/253_0162.jpg 7 -photo/person/253_0163.jpg 7 -photo/person/253_0164.jpg 7 -photo/person/253_0165.jpg 7 -photo/person/253_0166.jpg 7 -photo/person/253_0167.jpg 7 -photo/person/253_0168.jpg 7 -photo/person/253_0169.jpg 7 -photo/person/253_0170.jpg 7 -photo/person/253_0171.jpg 7 -photo/person/253_0172.jpg 7 -photo/person/253_0173.jpg 7 -photo/person/253_0174.jpg 7 -photo/person/253_0175.jpg 7 -photo/person/253_0176.jpg 7 -photo/person/253_0177.jpg 7 -photo/person/253_0178.jpg 7 -photo/person/253_0179.jpg 7 -photo/person/253_0180.jpg 7 -photo/person/253_0181.jpg 7 -photo/person/253_0182.jpg 7 -photo/person/253_0183.jpg 7 -photo/person/253_0184.jpg 7 -photo/person/253_0185.jpg 7 -photo/person/253_0186.jpg 7 -photo/person/253_0187.jpg 7 -photo/person/253_0188.jpg 7 -photo/person/253_0189.jpg 7 -photo/person/253_0190.jpg 7 -photo/person/253_0191.jpg 7 -photo/person/253_0192.jpg 7 -photo/person/253_0193.jpg 7 -photo/person/253_0194.jpg 7 -photo/person/253_0195.jpg 7 -photo/person/253_0196.jpg 7 -photo/person/253_0197.jpg 7 -photo/person/253_0198.jpg 7 -photo/person/253_0199.jpg 7 -photo/person/253_0200.jpg 7 -photo/person/253_0201.jpg 7 -photo/person/253_0202.jpg 7 -photo/person/253_0203.jpg 7 -photo/person/253_0204.jpg 7 -photo/person/253_0205.jpg 7 -photo/person/253_0206.jpg 7 -photo/person/253_0207.jpg 7 -photo/person/253_0208.jpg 7 -photo/person/253_0209.jpg 7 -photo/person/253_0210.jpg 7 -photo/person/253_0211.jpg 7 -photo/person/253_0212.jpg 7 -photo/person/253_0213.jpg 7 -photo/person/253_0214.jpg 7 -photo/person/253_0215.jpg 7 -photo/person/253_0216.jpg 7 -photo/person/253_0217.jpg 7 -photo/person/253_0218.jpg 7 -photo/person/253_0219.jpg 7 -photo/person/253_0220.jpg 7 -photo/person/253_0221.jpg 7 -photo/person/253_0222.jpg 7 -photo/person/253_0223.jpg 7 -photo/person/253_0224.jpg 7 -photo/person/253_0225.jpg 7 -photo/person/253_0226.jpg 7 -photo/person/253_0227.jpg 7 -photo/person/253_0228.jpg 7 -photo/person/253_0229.jpg 7 -photo/person/253_0230.jpg 7 -photo/person/253_0231.jpg 7 -photo/person/253_0232.jpg 7 -photo/person/253_0233.jpg 7 -photo/person/253_0234.jpg 7 -photo/person/253_0235.jpg 7 -photo/person/253_0236.jpg 7 -photo/person/253_0237.jpg 7 -photo/person/253_0238.jpg 7 -photo/person/253_0239.jpg 7 -photo/person/253_0240.jpg 7 -photo/person/253_0241.jpg 7 -photo/person/253_0242.jpg 7 -photo/person/253_0243.jpg 7 -photo/person/253_0244.jpg 7 -photo/person/253_0245.jpg 7 -photo/person/253_0246.jpg 7 -photo/person/253_0247.jpg 7 -photo/person/253_0248.jpg 7 -photo/person/253_0249.jpg 7 -photo/person/253_0250.jpg 7 -photo/person/253_0251.jpg 7 -photo/person/253_0252.jpg 7 -photo/person/253_0253.jpg 7 -photo/person/253_0254.jpg 7 -photo/person/253_0255.jpg 7 -photo/person/253_0256.jpg 7 -photo/person/253_0257.jpg 7 -photo/person/253_0258.jpg 7 -photo/person/253_0259.jpg 7 -photo/person/253_0260.jpg 7 -photo/person/253_0261.jpg 7 -photo/person/253_0262.jpg 7 -photo/person/253_0263.jpg 7 -photo/person/253_0264.jpg 7 -photo/person/253_0265.jpg 7 -photo/person/253_0266.jpg 7 -photo/person/253_0267.jpg 7 -photo/person/253_0268.jpg 7 -photo/person/253_0269.jpg 7 -photo/person/253_0270.jpg 7 -photo/person/253_0271.jpg 7 -photo/person/253_0272.jpg 7 -photo/person/253_0273.jpg 7 -photo/person/253_0274.jpg 7 -photo/person/253_0275.jpg 7 -photo/person/253_0276.jpg 7 -photo/person/253_0277.jpg 7 -photo/person/253_0278.jpg 7 -photo/person/253_0279.jpg 7 -photo/person/253_0280.jpg 7 -photo/person/253_0281.jpg 7 -photo/person/253_0282.jpg 7 -photo/person/253_0283.jpg 7 -photo/person/253_0284.jpg 7 -photo/person/253_0285.jpg 7 -photo/person/253_0286.jpg 7 -photo/person/253_0287.jpg 7 -photo/person/253_0288.jpg 7 -photo/person/253_0289.jpg 7 -photo/person/253_0290.jpg 7 -photo/person/253_0291.jpg 7 -photo/person/253_0292.jpg 7 -photo/person/253_0293.jpg 7 -photo/person/253_0294.jpg 7 -photo/person/253_0295.jpg 7 -photo/person/253_0296.jpg 7 -photo/person/253_0297.jpg 7 -photo/person/253_0298.jpg 7 -photo/person/253_0299.jpg 7 -photo/person/253_0300.jpg 7 -photo/person/253_0301.jpg 7 -photo/person/253_0302.jpg 7 -photo/person/253_0303.jpg 7 -photo/person/253_0304.jpg 7 -photo/person/253_0305.jpg 7 -photo/person/253_0306.jpg 7 -photo/person/253_0307.jpg 7 -photo/person/253_0308.jpg 7 -photo/person/253_0309.jpg 7 -photo/person/253_0310.jpg 7 -photo/person/253_0311.jpg 7 -photo/person/253_0312.jpg 7 -photo/person/253_0313.jpg 7 -photo/person/253_0314.jpg 7 -photo/person/253_0315.jpg 7 -photo/person/253_0316.jpg 7 -photo/person/253_0317.jpg 7 -photo/person/253_0318.jpg 7 -photo/person/253_0319.jpg 7 -photo/person/253_0320.jpg 7 -photo/person/253_0321.jpg 7 -photo/person/253_0322.jpg 7 -photo/person/253_0323.jpg 7 -photo/person/253_0324.jpg 7 -photo/person/253_0325.jpg 7 -photo/person/253_0326.jpg 7 -photo/person/253_0327.jpg 7 -photo/person/253_0328.jpg 7 -photo/person/253_0329.jpg 7 -photo/person/253_0330.jpg 7 -photo/person/253_0331.jpg 7 -photo/person/253_0332.jpg 7 -photo/person/253_0333.jpg 7 -photo/person/253_0334.jpg 7 -photo/person/253_0335.jpg 7 -photo/person/253_0336.jpg 7 -photo/person/253_0337.jpg 7 -photo/person/253_0338.jpg 7 -photo/person/253_0339.jpg 7 -photo/person/253_0340.jpg 7 -photo/person/253_0341.jpg 7 -photo/person/253_0342.jpg 7 -photo/person/253_0343.jpg 7 -photo/person/253_0344.jpg 7 -photo/person/253_0345.jpg 7 -photo/person/253_0346.jpg 7 -photo/person/253_0347.jpg 7 -photo/person/253_0348.jpg 7 -photo/person/253_0349.jpg 7 -photo/person/253_0350.jpg 7 -photo/person/253_0351.jpg 7 -photo/person/253_0352.jpg 7 -photo/person/253_0353.jpg 7 -photo/person/253_0354.jpg 7 -photo/person/253_0355.jpg 7 -photo/person/253_0356.jpg 7 -photo/person/253_0357.jpg 7 -photo/person/253_0358.jpg 7 -photo/person/253_0359.jpg 7 -photo/person/253_0360.jpg 7 -photo/person/253_0361.jpg 7 -photo/person/253_0362.jpg 7 -photo/person/253_0363.jpg 7 -photo/person/253_0364.jpg 7 -photo/person/253_0365.jpg 7 -photo/person/253_0366.jpg 7 -photo/person/253_0367.jpg 7 -photo/person/253_0368.jpg 7 -photo/person/253_0369.jpg 7 -photo/person/253_0370.jpg 7 -photo/person/253_0371.jpg 7 -photo/person/253_0372.jpg 7 -photo/person/253_0373.jpg 7 -photo/person/253_0374.jpg 7 -photo/person/253_0375.jpg 7 -photo/person/253_0376.jpg 7 -photo/person/253_0377.jpg 7 -photo/person/253_0378.jpg 7 -photo/person/253_0379.jpg 7 -photo/person/253_0380.jpg 7 -photo/person/253_0381.jpg 7 -photo/person/253_0382.jpg 7 -photo/person/253_0383.jpg 7 -photo/person/253_0384.jpg 7 -photo/person/253_0385.jpg 7 -photo/person/253_0386.jpg 7 -photo/person/253_0387.jpg 7 -photo/person/253_0388.jpg 7 -photo/person/253_0390.jpg 7 -photo/person/253_0393.jpg 7 -photo/person/253_0394.jpg 7 -photo/person/253_0395.jpg 7 -photo/person/253_0396.jpg 7 -photo/person/253_0397.jpg 7 -photo/person/253_0398.jpg 7 -photo/person/253_0399.jpg 7 -photo/person/253_0400.jpg 7 -photo/person/253_0401.jpg 7 -photo/person/253_0402.jpg 7 -photo/person/253_0403.jpg 7 -photo/person/253_0404.jpg 7 -photo/person/253_0405.jpg 7 -photo/person/253_0406.jpg 7 -photo/person/253_0407.jpg 7 -photo/person/253_0408.jpg 7 -photo/person/253_0409.jpg 7 -photo/person/253_0410.jpg 7 -photo/person/253_0411.jpg 7 -photo/person/253_0412.jpg 7 -photo/person/253_0413.jpg 7 -photo/person/253_0414.jpg 7 -photo/person/253_0415.jpg 7 -photo/person/253_0416.jpg 7 -photo/person/253_0417.jpg 7 -photo/person/253_0418.jpg 7 -photo/person/253_0419.jpg 7 -photo/person/253_0420.jpg 7 -photo/person/253_0421.jpg 7 -photo/person/253_0422.jpg 7 -photo/person/253_0423.jpg 7 -photo/person/253_0424.jpg 7 -photo/person/253_0425.jpg 7 -photo/person/253_0426.jpg 7 -photo/person/253_0427.jpg 7 -photo/person/253_0428.jpg 7 -photo/person/253_0429.jpg 7 -photo/person/253_0430.jpg 7 -photo/person/253_0431.jpg 7 -photo/person/253_0432.jpg 7 -photo/person/253_0433.jpg 7 -photo/person/253_0434.jpg 7 -photo/person/253_0435.jpg 7 diff --git a/data/pacs_split/photo_train_kfold.txt b/data/pacs_split/photo_train_kfold.txt deleted file mode 100644 index 5edd1d10a..000000000 --- a/data/pacs_split/photo_train_kfold.txt +++ /dev/null @@ -1,1499 +0,0 @@ -photo/dog/056_0022.jpg 1 -photo/dog/056_0023.jpg 1 -photo/dog/056_0024.jpg 1 -photo/dog/056_0026.jpg 1 -photo/dog/056_0027.jpg 1 -photo/dog/056_0028.jpg 1 -photo/dog/056_0029.jpg 1 -photo/dog/056_0030.jpg 1 -photo/dog/056_0031.jpg 1 -photo/dog/056_0032.jpg 1 -photo/dog/056_0033.jpg 1 -photo/dog/056_0034.jpg 1 -photo/dog/056_0035.jpg 1 -photo/dog/056_0036.jpg 1 -photo/dog/056_0037.jpg 1 -photo/dog/056_0038.jpg 1 -photo/dog/056_0039.jpg 1 -photo/dog/056_0040.jpg 1 -photo/dog/056_0041.jpg 1 -photo/dog/056_0042.jpg 1 -photo/dog/056_0043.jpg 1 -photo/dog/056_0045.jpg 1 -photo/dog/056_0046.jpg 1 -photo/dog/056_0047.jpg 1 -photo/dog/056_0048.jpg 1 -photo/dog/056_0049.jpg 1 -photo/dog/056_0050.jpg 1 -photo/dog/056_0051.jpg 1 -photo/dog/056_0052.jpg 1 -photo/dog/056_0053.jpg 1 -photo/dog/056_0054.jpg 1 -photo/dog/056_0055.jpg 1 -photo/dog/056_0056.jpg 1 -photo/dog/056_0057.jpg 1 -photo/dog/056_0058.jpg 1 -photo/dog/056_0059.jpg 1 -photo/dog/056_0060.jpg 1 -photo/dog/056_0062.jpg 1 -photo/dog/056_0063.jpg 1 -photo/dog/056_0064.jpg 1 -photo/dog/056_0065.jpg 1 -photo/dog/056_0066.jpg 1 -photo/dog/056_0067.jpg 1 -photo/dog/056_0068.jpg 1 -photo/dog/056_0069.jpg 1 -photo/dog/056_0070.jpg 1 -photo/dog/056_0071.jpg 1 -photo/dog/056_0072.jpg 1 -photo/dog/056_0073.jpg 1 -photo/dog/056_0074.jpg 1 -photo/dog/056_0075.jpg 1 -photo/dog/056_0076.jpg 1 -photo/dog/056_0077.jpg 1 -photo/dog/056_0078.jpg 1 -photo/dog/056_0079.jpg 1 -photo/dog/056_0080.jpg 1 -photo/dog/056_0081.jpg 1 -photo/dog/056_0082.jpg 1 -photo/dog/056_0083.jpg 1 -photo/dog/056_0084.jpg 1 -photo/dog/056_0085.jpg 1 -photo/dog/056_0086.jpg 1 -photo/dog/056_0087.jpg 1 -photo/dog/056_0088.jpg 1 -photo/dog/056_0089.jpg 1 -photo/dog/056_0090.jpg 1 -photo/dog/056_0091.jpg 1 -photo/dog/056_0092.jpg 1 -photo/dog/056_0093.jpg 1 -photo/dog/056_0095.jpg 1 -photo/dog/056_0097.jpg 1 -photo/dog/056_0098.jpg 1 -photo/dog/056_0099.jpg 1 -photo/dog/056_0101.jpg 1 -photo/dog/056_0102.jpg 1 -photo/dog/n02103406_343.jpg 1 -photo/dog/n02103406_346.jpg 1 -photo/dog/n02103406_371.jpg 1 -photo/dog/n02103406_865.jpg 1 -photo/dog/n02103406_936.jpg 1 -photo/dog/n02103406_995.jpg 1 -photo/dog/n02103406_1011.jpg 1 -photo/dog/n02103406_1138.jpg 1 -photo/dog/n02103406_1170.jpg 1 -photo/dog/n02103406_1247.jpg 1 -photo/dog/n02103406_1599.jpg 1 -photo/dog/n02103406_1754.jpg 1 -photo/dog/n02103406_2209.jpg 1 -photo/dog/n02103406_2706.jpg 1 -photo/dog/n02103406_2954.jpg 1 -photo/dog/n02103406_3056.jpg 1 -photo/dog/n02103406_3108.jpg 1 -photo/dog/n02103406_3132.jpg 1 -photo/dog/n02103406_3255.jpg 1 -photo/dog/n02103406_3299.jpg 1 -photo/dog/n02103406_3326.jpg 1 -photo/dog/n02103406_3401.jpg 1 -photo/dog/n02103406_3538.jpg 1 -photo/dog/n02103406_3743.jpg 1 -photo/dog/n02103406_3750.jpg 1 -photo/dog/n02103406_3964.jpg 1 -photo/dog/n02103406_4068.jpg 1 -photo/dog/n02103406_4849.jpg 1 -photo/dog/n02103406_4916.jpg 1 -photo/dog/n02103406_5035.jpg 1 -photo/dog/n02103406_5216.jpg 1 -photo/dog/n02103406_5224.jpg 1 -photo/dog/n02103406_5456.jpg 1 -photo/dog/n02103406_5505.jpg 1 -photo/dog/n02103406_5563.jpg 1 -photo/dog/n02103406_5601.jpg 1 -photo/dog/n02103406_6274.jpg 1 -photo/dog/n02103406_6461.jpg 1 -photo/dog/n02103406_6530.jpg 1 -photo/dog/n02103406_6857.jpg 1 -photo/dog/n02103406_7201.jpg 1 -photo/dog/n02103406_7368.jpg 1 -photo/dog/n02103406_7521.jpg 1 -photo/dog/n02103406_7708.jpg 1 -photo/dog/n02103406_8004.jpg 1 -photo/dog/n02103406_8280.jpg 1 -photo/dog/n02103406_8362.jpg 1 -photo/dog/n02103406_8421.jpg 1 -photo/dog/n02103406_13049.jpg 1 -photo/dog/n02106662_466.jpg 1 -photo/dog/n02106662_928.jpg 1 -photo/dog/n02106662_1874.jpg 1 -photo/dog/n02106662_1922.jpg 1 -photo/dog/n02106662_2101.jpg 1 -photo/dog/n02106662_2157.jpg 1 -photo/dog/n02106662_2377.jpg 1 -photo/dog/n02106662_2740.jpg 1 -photo/dog/n02106662_5001.jpg 1 -photo/dog/n02106662_7885.jpg 1 -photo/dog/n02106662_7960.jpg 1 -photo/dog/n02106662_8511.jpg 1 -photo/dog/n02106662_8870.jpg 1 -photo/dog/n02106662_10406.jpg 1 -photo/dog/n02106662_11133.jpg 1 -photo/dog/n02106662_13178.jpg 1 -photo/dog/n02106662_13912.jpg 1 -photo/dog/n02106662_15858.jpg 1 -photo/dog/n02106662_18402.jpg 1 -photo/dog/n02106662_18405.jpg 1 -photo/dog/n02106662_18922.jpg 1 -photo/dog/n02106662_18953.jpg 1 -photo/dog/n02106662_24019.jpg 1 -photo/dog/n02106662_24577.jpg 1 -photo/dog/n02106662_24786.jpg 1 -photo/dog/n02106662_25917.jpg 1 -photo/dog/n02106662_26549.jpg 1 -photo/dog/n02106662_27393.jpg 1 -photo/dog/n02109525_704.jpg 1 -photo/dog/n02109525_1893.jpg 1 -photo/dog/n02109525_3202.jpg 1 -photo/dog/n02109525_3782.jpg 1 -photo/dog/n02109525_5013.jpg 1 -photo/dog/n02109525_5583.jpg 1 -photo/dog/n02109525_5966.jpg 1 -photo/dog/n02109525_6693.jpg 1 -photo/dog/n02109525_7874.jpg 1 -photo/dog/n02109525_8211.jpg 1 -photo/dog/n02109525_8457.jpg 1 -photo/dog/n02109525_9037.jpg 1 -photo/dog/n02109525_10297.jpg 1 -photo/dog/n02109525_11444.jpg 1 -photo/dog/n02109525_12875.jpg 1 -photo/dog/n02109525_13700.jpg 1 -photo/dog/n02109525_16346.jpg 1 -photo/dog/n02109525_18347.jpg 1 -photo/elephant/064_0022.jpg 2 -photo/elephant/064_0023.jpg 2 -photo/elephant/064_0024.jpg 2 -photo/elephant/064_0025.jpg 2 -photo/elephant/064_0030.jpg 2 -photo/elephant/064_0031.jpg 2 -photo/elephant/064_0032.jpg 2 -photo/elephant/064_0033.jpg 2 -photo/elephant/064_0034.jpg 2 -photo/elephant/064_0035.jpg 2 -photo/elephant/064_0036.jpg 2 -photo/elephant/064_0037.jpg 2 -photo/elephant/064_0038.jpg 2 -photo/elephant/064_0039.jpg 2 -photo/elephant/064_0040.jpg 2 -photo/elephant/064_0041.jpg 2 -photo/elephant/064_0042.jpg 2 -photo/elephant/064_0043.jpg 2 -photo/elephant/064_0044.jpg 2 -photo/elephant/064_0045.jpg 2 -photo/elephant/064_0047.jpg 2 -photo/elephant/064_0048.jpg 2 -photo/elephant/064_0049.jpg 2 -photo/elephant/064_0051.jpg 2 -photo/elephant/064_0052.jpg 2 -photo/elephant/064_0053.jpg 2 -photo/elephant/064_0054.jpg 2 -photo/elephant/064_0055.jpg 2 -photo/elephant/064_0056.jpg 2 -photo/elephant/064_0057.jpg 2 -photo/elephant/064_0058.jpg 2 -photo/elephant/064_0059.jpg 2 -photo/elephant/064_0060.jpg 2 -photo/elephant/064_0061.jpg 2 -photo/elephant/064_0062.jpg 2 -photo/elephant/064_0063.jpg 2 -photo/elephant/064_0064.jpg 2 -photo/elephant/064_0065.jpg 2 -photo/elephant/064_0066.jpg 2 -photo/elephant/064_0067.jpg 2 -photo/elephant/064_0068.jpg 2 -photo/elephant/064_0070.jpg 2 -photo/elephant/064_0071.jpg 2 -photo/elephant/064_0072.jpg 2 -photo/elephant/064_0073.jpg 2 -photo/elephant/064_0074.jpg 2 -photo/elephant/064_0075.jpg 2 -photo/elephant/064_0076.jpg 2 -photo/elephant/064_0077.jpg 2 -photo/elephant/064_0078.jpg 2 -photo/elephant/064_0079.jpg 2 -photo/elephant/064_0080.jpg 2 -photo/elephant/064_0081.jpg 2 -photo/elephant/064_0084.jpg 2 -photo/elephant/064_0085.jpg 2 -photo/elephant/064_0086.jpg 2 -photo/elephant/064_0087.jpg 2 -photo/elephant/064_0088.jpg 2 -photo/elephant/064_0089.jpg 2 -photo/elephant/064_0090.jpg 2 -photo/elephant/064_0092.jpg 2 -photo/elephant/064_0093.jpg 2 -photo/elephant/064_0094.jpg 2 -photo/elephant/064_0095.jpg 2 -photo/elephant/064_0096.jpg 2 -photo/elephant/064_0097.jpg 2 -photo/elephant/064_0098.jpg 2 -photo/elephant/064_0099.jpg 2 -photo/elephant/064_0100.jpg 2 -photo/elephant/064_0101.jpg 2 -photo/elephant/064_0102.jpg 2 -photo/elephant/064_0105.jpg 2 -photo/elephant/064_0106.jpg 2 -photo/elephant/064_0107.jpg 2 -photo/elephant/064_0108.jpg 2 -photo/elephant/064_0109.jpg 2 -photo/elephant/064_0110.jpg 2 -photo/elephant/064_0111.jpg 2 -photo/elephant/064_0112.jpg 2 -photo/elephant/064_0113.jpg 2 -photo/elephant/064_0114.jpg 2 -photo/elephant/064_0115.jpg 2 -photo/elephant/064_0116.jpg 2 -photo/elephant/064_0117.jpg 2 -photo/elephant/064_0118.jpg 2 -photo/elephant/064_0119.jpg 2 -photo/elephant/064_0120.jpg 2 -photo/elephant/064_0121.jpg 2 -photo/elephant/064_0122.jpg 2 -photo/elephant/064_0123.jpg 2 -photo/elephant/064_0124.jpg 2 -photo/elephant/064_0125.jpg 2 -photo/elephant/064_0126.jpg 2 -photo/elephant/064_0127.jpg 2 -photo/elephant/064_0129.jpg 2 -photo/elephant/064_0130.jpg 2 -photo/elephant/064_0131.jpg 2 -photo/elephant/n02503517_79.jpg 2 -photo/elephant/n02503517_86.jpg 2 -photo/elephant/n02503517_184.jpg 2 -photo/elephant/n02503517_194.jpg 2 -photo/elephant/n02503517_564.jpg 2 -photo/elephant/n02503517_753.jpg 2 -photo/elephant/n02503517_759.jpg 2 -photo/elephant/n02503517_792.jpg 2 -photo/elephant/n02503517_1292.jpg 2 -photo/elephant/n02503517_1359.jpg 2 -photo/elephant/n02503517_1383.jpg 2 -photo/elephant/n02503517_1415.jpg 2 -photo/elephant/n02503517_1453.jpg 2 -photo/elephant/n02503517_1583.jpg 2 -photo/elephant/n02503517_1829.jpg 2 -photo/elephant/n02503517_2061.jpg 2 -photo/elephant/n02503517_2444.jpg 2 -photo/elephant/n02503517_2547.jpg 2 -photo/elephant/n02503517_2802.jpg 2 -photo/elephant/n02503517_2804.jpg 2 -photo/elephant/n02503517_2925.jpg 2 -photo/elephant/n02503517_2993.jpg 2 -photo/elephant/n02503517_3037.jpg 2 -photo/elephant/n02503517_3072.jpg 2 -photo/elephant/n02503517_3108.jpg 2 -photo/elephant/n02503517_3799.jpg 2 -photo/elephant/n02503517_3803.jpg 2 -photo/elephant/n02503517_3808.jpg 2 -photo/elephant/n02503517_3879.jpg 2 -photo/elephant/n02503517_4221.jpg 2 -photo/elephant/n02503517_4247.jpg 2 -photo/elephant/n02503517_4253.jpg 2 -photo/elephant/n02503517_4413.jpg 2 -photo/elephant/n02503517_4605.jpg 2 -photo/elephant/n02503517_5117.jpg 2 -photo/elephant/n02503517_5287.jpg 2 -photo/elephant/n02503517_5418.jpg 2 -photo/elephant/n02503517_5420.jpg 2 -photo/elephant/n02503517_5527.jpg 2 -photo/elephant/n02503517_5892.jpg 2 -photo/elephant/n02503517_5909.jpg 2 -photo/elephant/n02503517_6032.jpg 2 -photo/elephant/n02503517_6232.jpg 2 -photo/elephant/n02503517_6396.jpg 2 -photo/elephant/n02503517_6479.jpg 2 -photo/elephant/n02503517_6611.jpg 2 -photo/elephant/n02503517_6624.jpg 2 -photo/elephant/n02503517_6661.jpg 2 -photo/elephant/n02503517_6784.jpg 2 -photo/elephant/n02503517_6880.jpg 2 -photo/elephant/n02503517_7020.jpg 2 -photo/elephant/n02503517_7031.jpg 2 -photo/elephant/n02503517_7083.jpg 2 -photo/elephant/n02503517_7173.jpg 2 -photo/elephant/n02503517_7211.jpg 2 -photo/elephant/n02503517_7393.jpg 2 -photo/elephant/n02503517_8137.jpg 2 -photo/elephant/n02503517_8205.jpg 2 -photo/elephant/n02503517_8222.jpg 2 -photo/elephant/n02503517_8265.jpg 2 -photo/elephant/n02503517_8292.jpg 2 -photo/elephant/n02503517_8518.jpg 2 -photo/elephant/n02503517_8571.jpg 2 -photo/elephant/n02503517_8757.jpg 2 -photo/elephant/n02503517_8901.jpg 2 -photo/elephant/n02503517_8904.jpg 2 -photo/elephant/n02503517_8938.jpg 2 -photo/elephant/n02503517_9043.jpg 2 -photo/elephant/n02503517_9154.jpg 2 -photo/elephant/n02503517_9241.jpg 2 -photo/elephant/n02503517_9270.jpg 2 -photo/elephant/n02503517_9827.jpg 2 -photo/elephant/n02503517_10036.jpg 2 -photo/elephant/n02503517_10075.jpg 2 -photo/elephant/n02503517_10193.jpg 2 -photo/elephant/n02503517_10275.jpg 2 -photo/elephant/n02503517_10300.jpg 2 -photo/elephant/n02503517_10439.jpg 2 -photo/elephant/n02503517_10440.jpg 2 -photo/elephant/n02503517_10528.jpg 2 -photo/elephant/n02503517_10558.jpg 2 -photo/elephant/n02503517_10778.jpg 2 -photo/elephant/n02503517_11873.jpg 2 -photo/elephant/n02503517_12688.jpg 2 -photo/giraffe/084_0020.jpg 3 -photo/giraffe/084_0021.jpg 3 -photo/giraffe/084_0022.jpg 3 -photo/giraffe/084_0023.jpg 3 -photo/giraffe/084_0024.jpg 3 -photo/giraffe/084_0025.jpg 3 -photo/giraffe/084_0026.jpg 3 -photo/giraffe/084_0027.jpg 3 -photo/giraffe/084_0028.jpg 3 -photo/giraffe/084_0029.jpg 3 -photo/giraffe/084_0030.jpg 3 -photo/giraffe/084_0031.jpg 3 -photo/giraffe/084_0032.jpg 3 -photo/giraffe/084_0033.jpg 3 -photo/giraffe/084_0034.jpg 3 -photo/giraffe/084_0035.jpg 3 -photo/giraffe/084_0036.jpg 3 -photo/giraffe/084_0038.jpg 3 -photo/giraffe/084_0039.jpg 3 -photo/giraffe/084_0040.jpg 3 -photo/giraffe/084_0041.jpg 3 -photo/giraffe/084_0042.jpg 3 -photo/giraffe/084_0043.jpg 3 -photo/giraffe/084_0044.jpg 3 -photo/giraffe/084_0045.jpg 3 -photo/giraffe/084_0046.jpg 3 -photo/giraffe/084_0047.jpg 3 -photo/giraffe/084_0048.jpg 3 -photo/giraffe/084_0049.jpg 3 -photo/giraffe/084_0050.jpg 3 -photo/giraffe/084_0051.jpg 3 -photo/giraffe/084_0052.jpg 3 -photo/giraffe/084_0053.jpg 3 -photo/giraffe/084_0054.jpg 3 -photo/giraffe/084_0055.jpg 3 -photo/giraffe/084_0056.jpg 3 -photo/giraffe/084_0057.jpg 3 -photo/giraffe/084_0058.jpg 3 -photo/giraffe/084_0059.jpg 3 -photo/giraffe/084_0060.jpg 3 -photo/giraffe/084_0061.jpg 3 -photo/giraffe/084_0062.jpg 3 -photo/giraffe/084_0063.jpg 3 -photo/giraffe/084_0064.jpg 3 -photo/giraffe/084_0065.jpg 3 -photo/giraffe/084_0066.jpg 3 -photo/giraffe/084_0067.jpg 3 -photo/giraffe/084_0068.jpg 3 -photo/giraffe/084_0069.jpg 3 -photo/giraffe/084_0070.jpg 3 -photo/giraffe/084_0071.jpg 3 -photo/giraffe/084_0072.jpg 3 -photo/giraffe/084_0073.jpg 3 -photo/giraffe/084_0074.jpg 3 -photo/giraffe/084_0075.jpg 3 -photo/giraffe/084_0076.jpg 3 -photo/giraffe/084_0077.jpg 3 -photo/giraffe/084_0078.jpg 3 -photo/giraffe/084_0079.jpg 3 -photo/giraffe/084_0080.jpg 3 -photo/giraffe/084_0081.jpg 3 -photo/giraffe/084_0082.jpg 3 -photo/giraffe/084_0083.jpg 3 -photo/giraffe/084_0084.jpg 3 -photo/giraffe/n02439033_67.jpg 3 -photo/giraffe/n02439033_221.jpg 3 -photo/giraffe/n02439033_376.jpg 3 -photo/giraffe/n02439033_569.jpg 3 -photo/giraffe/n02439033_628.jpg 3 -photo/giraffe/n02439033_866.jpg 3 -photo/giraffe/n02439033_991.jpg 3 -photo/giraffe/n02439033_1327.jpg 3 -photo/giraffe/n02439033_1508.jpg 3 -photo/giraffe/n02439033_2486.jpg 3 -photo/giraffe/n02439033_2500.jpg 3 -photo/giraffe/n02439033_2677.jpg 3 -photo/giraffe/n02439033_3944.jpg 3 -photo/giraffe/n02439033_4601.jpg 3 -photo/giraffe/n02439033_5004.jpg 3 -photo/giraffe/n02439033_5652.jpg 3 -photo/giraffe/n02439033_6552.jpg 3 -photo/giraffe/n02439033_8789.jpg 3 -photo/giraffe/n02439033_8846.jpg 3 -photo/giraffe/n02439033_8875.jpg 3 -photo/giraffe/n02439033_9257.jpg 3 -photo/giraffe/n02439033_9261.jpg 3 -photo/giraffe/n02439033_9398.jpg 3 -photo/giraffe/n02439033_9472.jpg 3 -photo/giraffe/n02439033_9598.jpg 3 -photo/giraffe/n02439033_9604.jpg 3 -photo/giraffe/n02439033_9679.jpg 3 -photo/giraffe/n02439033_9719.jpg 3 -photo/giraffe/n02439033_10130.jpg 3 -photo/giraffe/n02439033_10164.jpg 3 -photo/giraffe/n02439033_10279.jpg 3 -photo/giraffe/n02439033_10295.jpg 3 -photo/giraffe/n02439033_10453.jpg 3 -photo/giraffe/n02439033_10491.jpg 3 -photo/giraffe/n02439033_10541.jpg 3 -photo/giraffe/n02439033_10616.jpg 3 -photo/giraffe/n02439033_10802.jpg 3 -photo/giraffe/n02439033_10803.jpg 3 -photo/giraffe/n02439033_10811.jpg 3 -photo/giraffe/n02439033_10839.jpg 3 -photo/giraffe/n02439033_10919.jpg 3 -photo/giraffe/n02439033_11059.jpg 3 -photo/giraffe/n02439033_11114.jpg 3 -photo/giraffe/n02439033_11130.jpg 3 -photo/giraffe/n02439033_11215.jpg 3 -photo/giraffe/n02439033_11273.jpg 3 -photo/giraffe/n02439033_11328.jpg 3 -photo/giraffe/n02439033_11458.jpg 3 -photo/giraffe/n02439033_11486.jpg 3 -photo/giraffe/n02439033_11487.jpg 3 -photo/giraffe/n02439033_11504.jpg 3 -photo/giraffe/n02439033_11599.jpg 3 -photo/giraffe/n02439033_11627.jpg 3 -photo/giraffe/n02439033_11666.jpg 3 -photo/giraffe/n02439033_11683.jpg 3 -photo/giraffe/n02439033_11715.jpg 3 -photo/giraffe/n02439033_11845.jpg 3 -photo/giraffe/n02439033_11894.jpg 3 -photo/giraffe/n02439033_12059.jpg 3 -photo/giraffe/n02439033_12413.jpg 3 -photo/giraffe/n02439033_12485.jpg 3 -photo/giraffe/n02439033_12680.jpg 3 -photo/giraffe/n02439033_12930.jpg 3 -photo/giraffe/n02439033_12939.jpg 3 -photo/giraffe/n02439033_12987.jpg 3 -photo/giraffe/n02439033_13236.jpg 3 -photo/giraffe/n02439033_13384.jpg 3 -photo/giraffe/n02439033_13430.jpg 3 -photo/giraffe/n02439033_13602.jpg 3 -photo/giraffe/n02439033_13868.jpg 3 -photo/giraffe/n02439033_14040.jpg 3 -photo/giraffe/n02439033_14060.jpg 3 -photo/giraffe/n02439033_14121.jpg 3 -photo/giraffe/n02439033_14148.jpg 3 -photo/giraffe/n02439033_14184.jpg 3 -photo/giraffe/n02439033_14322.jpg 3 -photo/giraffe/n02439033_14497.jpg 3 -photo/giraffe/n02439033_14554.jpg 3 -photo/giraffe/n02439033_14580.jpg 3 -photo/giraffe/n02439033_14600.jpg 3 -photo/giraffe/n02439033_14609.jpg 3 -photo/giraffe/n02439033_14724.jpg 3 -photo/giraffe/n02439033_14764.jpg 3 -photo/giraffe/n02439033_14781.jpg 3 -photo/giraffe/n02439033_14784.jpg 3 -photo/giraffe/n02439033_14846.jpg 3 -photo/giraffe/n02439033_14872.jpg 3 -photo/giraffe/n02439033_14962.jpg 3 -photo/giraffe/n02439033_15005.jpg 3 -photo/giraffe/n02439033_15384.jpg 3 -photo/giraffe/n02439033_15401.jpg 3 -photo/giraffe/n02439033_15453.jpg 3 -photo/giraffe/n02439033_15479.jpg 3 -photo/giraffe/n02439033_15540.jpg 3 -photo/giraffe/n02439033_15555.jpg 3 -photo/giraffe/n02439033_15936.jpg 3 -photo/giraffe/n02439033_16085.jpg 3 -photo/giraffe/n02439033_16356.jpg 3 -photo/giraffe/n02439033_16483.jpg 3 -photo/guitar/063_0024.jpg 4 -photo/guitar/063_0025.jpg 4 -photo/guitar/063_0026.jpg 4 -photo/guitar/063_0027.jpg 4 -photo/guitar/063_0028.jpg 4 -photo/guitar/063_0029.jpg 4 -photo/guitar/063_0030.jpg 4 -photo/guitar/063_0031.jpg 4 -photo/guitar/063_0032.jpg 4 -photo/guitar/063_0035.jpg 4 -photo/guitar/063_0036.jpg 4 -photo/guitar/063_0037.jpg 4 -photo/guitar/063_0038.jpg 4 -photo/guitar/063_0039.jpg 4 -photo/guitar/063_0040.jpg 4 -photo/guitar/063_0041.jpg 4 -photo/guitar/063_0042.jpg 4 -photo/guitar/063_0043.jpg 4 -photo/guitar/063_0045.jpg 4 -photo/guitar/063_0046.jpg 4 -photo/guitar/063_0047.jpg 4 -photo/guitar/063_0048.jpg 4 -photo/guitar/063_0049.jpg 4 -photo/guitar/063_0050.jpg 4 -photo/guitar/063_0051.jpg 4 -photo/guitar/063_0052.jpg 4 -photo/guitar/063_0053.jpg 4 -photo/guitar/063_0054.jpg 4 -photo/guitar/063_0055.jpg 4 -photo/guitar/063_0056.jpg 4 -photo/guitar/063_0059.jpg 4 -photo/guitar/063_0061.jpg 4 -photo/guitar/063_0062.jpg 4 -photo/guitar/063_0065.jpg 4 -photo/guitar/063_0067.jpg 4 -photo/guitar/063_0068.jpg 4 -photo/guitar/063_0069.jpg 4 -photo/guitar/063_0071.jpg 4 -photo/guitar/063_0072.jpg 4 -photo/guitar/063_0073.jpg 4 -photo/guitar/063_0074.jpg 4 -photo/guitar/063_0075.jpg 4 -photo/guitar/063_0076.jpg 4 -photo/guitar/063_0077.jpg 4 -photo/guitar/063_0078.jpg 4 -photo/guitar/063_0079.jpg 4 -photo/guitar/063_0080.jpg 4 -photo/guitar/063_0081.jpg 4 -photo/guitar/063_0082.jpg 4 -photo/guitar/063_0084.jpg 4 -photo/guitar/063_0085.jpg 4 -photo/guitar/063_0086.jpg 4 -photo/guitar/063_0087.jpg 4 -photo/guitar/063_0088.jpg 4 -photo/guitar/063_0089.jpg 4 -photo/guitar/063_0090.jpg 4 -photo/guitar/063_0091.jpg 4 -photo/guitar/063_0092.jpg 4 -photo/guitar/063_0093.jpg 4 -photo/guitar/063_0094.jpg 4 -photo/guitar/063_0095.jpg 4 -photo/guitar/063_0096.jpg 4 -photo/guitar/063_0097.jpg 4 -photo/guitar/063_0098.jpg 4 -photo/guitar/063_0099.jpg 4 -photo/guitar/063_0100.jpg 4 -photo/guitar/063_0101.jpg 4 -photo/guitar/063_0102.jpg 4 -photo/guitar/063_0103.jpg 4 -photo/guitar/063_0104.jpg 4 -photo/guitar/063_0105.jpg 4 -photo/guitar/063_0106.jpg 4 -photo/guitar/063_0107.jpg 4 -photo/guitar/063_0108.jpg 4 -photo/guitar/063_0109.jpg 4 -photo/guitar/063_0110.jpg 4 -photo/guitar/063_0111.jpg 4 -photo/guitar/063_0112.jpg 4 -photo/guitar/063_0113.jpg 4 -photo/guitar/063_0114.jpg 4 -photo/guitar/063_0115.jpg 4 -photo/guitar/063_0116.jpg 4 -photo/guitar/063_0117.jpg 4 -photo/guitar/063_0118.jpg 4 -photo/guitar/063_0119.jpg 4 -photo/guitar/063_0120.jpg 4 -photo/guitar/063_0121.jpg 4 -photo/guitar/063_0122.jpg 4 -photo/guitar/n02676566_307.jpg 4 -photo/guitar/n02676566_330.jpg 4 -photo/guitar/n02676566_659.jpg 4 -photo/guitar/n02676566_1324.jpg 4 -photo/guitar/n02676566_2380.jpg 4 -photo/guitar/n02676566_3360.jpg 4 -photo/guitar/n02676566_4058.jpg 4 -photo/guitar/n02676566_4189.jpg 4 -photo/guitar/n02676566_4469.jpg 4 -photo/guitar/n02676566_4605.jpg 4 -photo/guitar/n02676566_4699.jpg 4 -photo/guitar/n02676566_5489.jpg 4 -photo/guitar/n02676566_5735.jpg 4 -photo/guitar/n02676566_6150.jpg 4 -photo/guitar/n02676566_6402.jpg 4 -photo/guitar/n02676566_6430.jpg 4 -photo/guitar/n02676566_6560.jpg 4 -photo/guitar/n02676566_6631.jpg 4 -photo/guitar/n02676566_6704.jpg 4 -photo/guitar/n02676566_6914.jpg 4 -photo/guitar/n02676566_6948.jpg 4 -photo/guitar/n02676566_7385.jpg 4 -photo/guitar/n02676566_7770.jpg 4 -photo/guitar/n02676566_7830.jpg 4 -photo/guitar/n02676566_7844.jpg 4 -photo/guitar/n02676566_7927.jpg 4 -photo/guitar/n02676566_8268.jpg 4 -photo/guitar/n02676566_8309.jpg 4 -photo/guitar/n02676566_8467.jpg 4 -photo/guitar/n02676566_8618.jpg 4 -photo/guitar/n02676566_8820.jpg 4 -photo/guitar/n02676566_8859.jpg 4 -photo/guitar/n02676566_8997.jpg 4 -photo/guitar/n02676566_9062.jpg 4 -photo/guitar/n02676566_9243.jpg 4 -photo/guitar/n02676566_9254.jpg 4 -photo/guitar/n02676566_9451.jpg 4 -photo/guitar/n02676566_9577.jpg 4 -photo/guitar/n02676566_9661.jpg 4 -photo/guitar/n02676566_9936.jpg 4 -photo/guitar/n02676566_11573.jpg 4 -photo/guitar/n02676566_12344.jpg 4 -photo/guitar/n03272010_392.jpg 4 -photo/guitar/n03272010_446.jpg 4 -photo/guitar/n03272010_1708.jpg 4 -photo/guitar/n03272010_3732.jpg 4 -photo/guitar/n03272010_5483.jpg 4 -photo/guitar/n03272010_5887.jpg 4 -photo/guitar/n03272010_6255.jpg 4 -photo/guitar/n03272010_6291.jpg 4 -photo/guitar/n03272010_6662.jpg 4 -photo/guitar/n03272010_6727.jpg 4 -photo/guitar/n03272010_6737.jpg 4 -photo/guitar/n03272010_6799.jpg 4 -photo/guitar/n03272010_6809.jpg 4 -photo/guitar/n03272010_6820.jpg 4 -photo/guitar/n03272010_6926.jpg 4 -photo/guitar/n03272010_7092.jpg 4 -photo/guitar/n03272010_7390.jpg 4 -photo/guitar/n03272010_7729.jpg 4 -photo/guitar/n03272010_9557.jpg 4 -photo/guitar/n03272010_9858.jpg 4 -photo/guitar/n03272010_9899.jpg 4 -photo/guitar/n03272010_10441.jpg 4 -photo/guitar/n03272010_10795.jpg 4 -photo/guitar/n03272010_12151.jpg 4 -photo/guitar/n03272010_12468.jpg 4 -photo/guitar/n03467517_6423.jpg 4 -photo/guitar/n03467517_7007.jpg 4 -photo/guitar/n03467517_8929.jpg 4 -photo/guitar/n03467517_11020.jpg 4 -photo/guitar/n03467517_12925.jpg 4 -photo/guitar/n03467517_17233.jpg 4 -photo/guitar/n03467517_19701.jpg 4 -photo/guitar/n03467517_21884.jpg 4 -photo/guitar/n03467517_22246.jpg 4 -photo/guitar/n03467517_22785.jpg 4 -photo/guitar/n03467517_23229.jpg 4 -photo/guitar/n03467517_24525.jpg 4 -photo/horse/105_0018.jpg 5 -photo/horse/105_0050.jpg 5 -photo/horse/105_0053.jpg 5 -photo/horse/105_0056.jpg 5 -photo/horse/105_0058.jpg 5 -photo/horse/105_0059.jpg 5 -photo/horse/105_0063.jpg 5 -photo/horse/105_0066.jpg 5 -photo/horse/105_0067.jpg 5 -photo/horse/105_0070.jpg 5 -photo/horse/105_0071.jpg 5 -photo/horse/105_0072.jpg 5 -photo/horse/105_0073.jpg 5 -photo/horse/105_0074.jpg 5 -photo/horse/105_0075.jpg 5 -photo/horse/105_0076.jpg 5 -photo/horse/105_0077.jpg 5 -photo/horse/105_0081.jpg 5 -photo/horse/105_0083.jpg 5 -photo/horse/105_0084.jpg 5 -photo/horse/105_0086.jpg 5 -photo/horse/105_0088.jpg 5 -photo/horse/105_0089.jpg 5 -photo/horse/105_0090.jpg 5 -photo/horse/105_0091.jpg 5 -photo/horse/105_0092.jpg 5 -photo/horse/105_0099.jpg 5 -photo/horse/105_0101.jpg 5 -photo/horse/105_0103.jpg 5 -photo/horse/105_0104.jpg 5 -photo/horse/105_0105.jpg 5 -photo/horse/105_0106.jpg 5 -photo/horse/105_0108.jpg 5 -photo/horse/105_0109.jpg 5 -photo/horse/105_0111.jpg 5 -photo/horse/105_0115.jpg 5 -photo/horse/105_0116.jpg 5 -photo/horse/105_0118.jpg 5 -photo/horse/105_0120.jpg 5 -photo/horse/105_0121.jpg 5 -photo/horse/105_0123.jpg 5 -photo/horse/105_0124.jpg 5 -photo/horse/105_0125.jpg 5 -photo/horse/105_0130.jpg 5 -photo/horse/105_0131.jpg 5 -photo/horse/105_0134.jpg 5 -photo/horse/105_0135.jpg 5 -photo/horse/105_0137.jpg 5 -photo/horse/105_0138.jpg 5 -photo/horse/105_0139.jpg 5 -photo/horse/105_0140.jpg 5 -photo/horse/105_0143.jpg 5 -photo/horse/105_0146.jpg 5 -photo/horse/105_0147.jpg 5 -photo/horse/105_0149.jpg 5 -photo/horse/105_0150.jpg 5 -photo/horse/105_0154.jpg 5 -photo/horse/105_0156.jpg 5 -photo/horse/105_0157.jpg 5 -photo/horse/105_0161.jpg 5 -photo/horse/105_0164.jpg 5 -photo/horse/105_0165.jpg 5 -photo/horse/105_0172.jpg 5 -photo/horse/105_0173.jpg 5 -photo/horse/105_0174.jpg 5 -photo/horse/105_0175.jpg 5 -photo/horse/105_0176.jpg 5 -photo/horse/105_0177.jpg 5 -photo/horse/105_0180.jpg 5 -photo/horse/105_0181.jpg 5 -photo/horse/105_0182.jpg 5 -photo/horse/105_0183.jpg 5 -photo/horse/105_0184.jpg 5 -photo/horse/105_0185.jpg 5 -photo/horse/105_0193.jpg 5 -photo/horse/105_0194.jpg 5 -photo/horse/105_0196.jpg 5 -photo/horse/105_0199.jpg 5 -photo/horse/105_0203.jpg 5 -photo/horse/105_0205.jpg 5 -photo/horse/105_0206.jpg 5 -photo/horse/105_0207.jpg 5 -photo/horse/105_0208.jpg 5 -photo/horse/105_0210.jpg 5 -photo/horse/105_0215.jpg 5 -photo/horse/105_0223.jpg 5 -photo/horse/105_0229.jpg 5 -photo/horse/105_0230.jpg 5 -photo/horse/105_0232.jpg 5 -photo/horse/105_0236.jpg 5 -photo/horse/105_0240.jpg 5 -photo/horse/105_0241.jpg 5 -photo/horse/105_0249.jpg 5 -photo/horse/105_0253.jpg 5 -photo/horse/105_0255.jpg 5 -photo/horse/105_0257.jpg 5 -photo/horse/105_0260.jpg 5 -photo/horse/105_0264.jpg 5 -photo/horse/105_0265.jpg 5 -photo/horse/105_0266.jpg 5 -photo/horse/105_0269.jpg 5 -photo/horse/105_0270.jpg 5 -photo/horse/n02374451_54.jpg 5 -photo/horse/n02374451_245.jpg 5 -photo/horse/n02374451_257.jpg 5 -photo/horse/n02374451_262.jpg 5 -photo/horse/n02374451_388.jpg 5 -photo/horse/n02374451_468.jpg 5 -photo/horse/n02374451_490.jpg 5 -photo/horse/n02374451_503.jpg 5 -photo/horse/n02374451_597.jpg 5 -photo/horse/n02374451_777.jpg 5 -photo/horse/n02374451_779.jpg 5 -photo/horse/n02374451_916.jpg 5 -photo/horse/n02374451_925.jpg 5 -photo/horse/n02374451_929.jpg 5 -photo/horse/n02374451_1189.jpg 5 -photo/horse/n02374451_1234.jpg 5 -photo/horse/n02374451_1443.jpg 5 -photo/horse/n02374451_2248.jpg 5 -photo/horse/n02374451_2372.jpg 5 -photo/horse/n02374451_2478.jpg 5 -photo/horse/n02374451_2616.jpg 5 -photo/horse/n02374451_2733.jpg 5 -photo/horse/n02374451_2743.jpg 5 -photo/horse/n02374451_2825.jpg 5 -photo/horse/n02374451_3388.jpg 5 -photo/horse/n02374451_4538.jpg 5 -photo/horse/n02374451_4553.jpg 5 -photo/horse/n02374451_4795.jpg 5 -photo/horse/n02374451_4818.jpg 5 -photo/horse/n02374451_4963.jpg 5 -photo/horse/n02374451_6192.jpg 5 -photo/horse/n02374451_7631.jpg 5 -photo/horse/n02374451_8065.jpg 5 -photo/horse/n02374451_8526.jpg 5 -photo/horse/n02374451_8718.jpg 5 -photo/horse/n02374451_8744.jpg 5 -photo/horse/n02374451_9064.jpg 5 -photo/horse/n02374451_9443.jpg 5 -photo/horse/n02374451_9892.jpg 5 -photo/horse/n02374451_10081.jpg 5 -photo/horse/n02374451_10098.jpg 5 -photo/horse/n02374451_10331.jpg 5 -photo/horse/n02374451_10669.jpg 5 -photo/horse/n02374451_10761.jpg 5 -photo/horse/n02374451_10809.jpg 5 -photo/horse/n02374451_11479.jpg 5 -photo/horse/n02374451_11483.jpg 5 -photo/horse/n02374451_11492.jpg 5 -photo/horse/n02374451_11894.jpg 5 -photo/horse/n02374451_12128.jpg 5 -photo/horse/n02374451_12174.jpg 5 -photo/horse/n02374451_12225.jpg 5 -photo/horse/n02374451_12230.jpg 5 -photo/horse/n02374451_12250.jpg 5 -photo/horse/n02374451_12254.jpg 5 -photo/horse/n02374451_12418.jpg 5 -photo/horse/n02374451_12792.jpg 5 -photo/horse/n02374451_12847.jpg 5 -photo/horse/n02374451_13159.jpg 5 -photo/horse/n02374451_13718.jpg 5 -photo/horse/n02374451_14119.jpg 5 -photo/horse/n02374451_14233.jpg 5 -photo/horse/n02374451_14399.jpg 5 -photo/horse/n02374451_14425.jpg 5 -photo/horse/n02374451_14738.jpg 5 -photo/horse/n02374451_14846.jpg 5 -photo/horse/n02374451_15307.jpg 5 -photo/horse/n02374451_15440.jpg 5 -photo/horse/n02374451_15453.jpg 5 -photo/horse/n02374451_15669.jpg 5 -photo/horse/n02374451_16358.jpg 5 -photo/horse/n02374451_17384.jpg 5 -photo/horse/n02374451_17474.jpg 5 -photo/horse/n02374451_17634.jpg 5 -photo/horse/n02374451_18192.jpg 5 -photo/horse/n02374451_18570.jpg 5 -photo/horse/n02374451_18909.jpg 5 -photo/house/pic_243.jpg 6 -photo/house/pic_250.jpg 6 -photo/house/pic_249.jpg 6 -photo/house/pic_251.jpg 6 -photo/house/pic_252.jpg 6 -photo/house/pic_253.jpg 6 -photo/house/pic_256.jpg 6 -photo/house/pic_255.jpg 6 -photo/house/pic_257.jpg 6 -photo/house/pic_260.jpg 6 -photo/house/pic_032.jpg 6 -photo/house/pic_030.jpg 6 -photo/house/pic_033.jpg 6 -photo/house/pic_034.jpg 6 -photo/house/pic_035.jpg 6 -photo/house/pic_036.jpg 6 -photo/house/pic_037.jpg 6 -photo/house/pic_038.jpg 6 -photo/house/pic_039.jpg 6 -photo/house/pic_042.jpg 6 -photo/house/pic_041.jpg 6 -photo/house/pic_040.jpg 6 -photo/house/pic_045.jpg 6 -photo/house/pic_046.jpg 6 -photo/house/pic_044.jpg 6 -photo/house/pic_043.jpg 6 -photo/house/pic_047.jpg 6 -photo/house/pic_048.jpg 6 -photo/house/pic_049.jpg 6 -photo/house/pic_050.jpg 6 -photo/house/pic_058.jpg 6 -photo/house/pic_216.jpg 6 -photo/house/pic_217.jpg 6 -photo/house/pic_220.jpg 6 -photo/house/pic_221.jpg 6 -photo/house/pic_222.jpg 6 -photo/house/pic_223.jpg 6 -photo/house/pic_224.jpg 6 -photo/house/pic_225.jpg 6 -photo/house/pic_226.jpg 6 -photo/house/pic_228.jpg 6 -photo/house/pic_229.jpg 6 -photo/house/pic_230.jpg 6 -photo/house/pic_231.jpg 6 -photo/house/pic_232.jpg 6 -photo/house/pic_233.jpg 6 -photo/house/pic_234.jpg 6 -photo/house/pic_235.jpg 6 -photo/house/pic_236.jpg 6 -photo/house/pic_238.jpg 6 -photo/house/pic_237.jpg 6 -photo/house/pic_067.jpg 6 -photo/house/pic_062.jpg 6 -photo/house/pic_075.jpg 6 -photo/house/pic_078.jpg 6 -photo/house/pic_079.jpg 6 -photo/house/pic_070.jpg 6 -photo/house/pic_066.jpg 6 -photo/house/pic_088.jpg 6 -photo/house/pic_081.jpg 6 -photo/house/pic_091.jpg 6 -photo/house/pic_072.jpg 6 -photo/house/pic_093.jpg 6 -photo/house/pic_086.jpg 6 -photo/house/pic_098.jpg 6 -photo/house/pic_096.jpg 6 -photo/house/pic_095.jpg 6 -photo/house/pic_094.jpg 6 -photo/house/pic_092.jpg 6 -photo/house/pic_090.jpg 6 -photo/house/pic_097.jpg 6 -photo/house/pic_061.jpg 6 -photo/house/pic_060.jpg 6 -photo/house/pic_057.jpg 6 -photo/house/pic_051.jpg 6 -photo/house/pic_054.jpg 6 -photo/house/pic_053.jpg 6 -photo/house/pic_052.jpg 6 -photo/house/pic_063.jpg 6 -photo/house/pic_059.jpg 6 -photo/house/pic_055.jpg 6 -photo/house/pic_056.jpg 6 -photo/house/pic_082.jpg 6 -photo/house/pic_080.jpg 6 -photo/house/pic_077.jpg 6 -photo/house/pic_076.jpg 6 -photo/house/pic_074.jpg 6 -photo/house/pic_073.jpg 6 -photo/house/pic_071.jpg 6 -photo/house/pic_069.jpg 6 -photo/house/pic_068.jpg 6 -photo/house/pic_065.jpg 6 -photo/house/pic_153.jpg 6 -photo/house/pic_156.jpg 6 -photo/house/pic_157.jpg 6 -photo/house/pic_158.jpg 6 -photo/house/pic_159.jpg 6 -photo/house/pic_160.jpg 6 -photo/house/pic_162.jpg 6 -photo/house/pic_161.jpg 6 -photo/house/pic_166.jpg 6 -photo/house/pic_165.jpg 6 -photo/house/pic_163.jpg 6 -photo/house/pic_164.jpg 6 -photo/house/pic_167.jpg 6 -photo/house/pic_168.jpg 6 -photo/house/pic_170.jpg 6 -photo/house/pic_169.jpg 6 -photo/house/pic_171.jpg 6 -photo/house/pic_172.jpg 6 -photo/house/pic_174.jpg 6 -photo/house/pic_175.jpg 6 -photo/house/pic_173.jpg 6 -photo/house/pic_134.jpg 6 -photo/house/pic_135.jpg 6 -photo/house/pic_136.jpg 6 -photo/house/pic_138.jpg 6 -photo/house/pic_139.jpg 6 -photo/house/pic_137.jpg 6 -photo/house/pic_140.jpg 6 -photo/house/pic_141.jpg 6 -photo/house/pic_143.jpg 6 -photo/house/pic_142.jpg 6 -photo/house/pic_144.jpg 6 -photo/house/pic_146.jpg 6 -photo/house/pic_145.jpg 6 -photo/house/pic_147.jpg 6 -photo/house/pic_148.jpg 6 -photo/house/pic_149.jpg 6 -photo/house/pic_150.jpg 6 -photo/house/pic_151.jpg 6 -photo/house/pic_154.jpg 6 -photo/house/pic_155.jpg 6 -photo/house/pic_197.jpg 6 -photo/house/pic_199.jpg 6 -photo/house/pic_200.jpg 6 -photo/house/pic_198.jpg 6 -photo/house/pic_202.jpg 6 -photo/house/pic_201.jpg 6 -photo/house/pic_204.jpg 6 -photo/house/pic_205.jpg 6 -photo/house/pic_203.jpg 6 -photo/house/pic_207.jpg 6 -photo/house/pic_206.jpg 6 -photo/house/pic_209.jpg 6 -photo/house/pic_208.jpg 6 -photo/house/pic_210.jpg 6 -photo/house/pic_211.jpg 6 -photo/house/pic_214.jpg 6 -photo/house/pic_213.jpg 6 -photo/house/pic_215.jpg 6 -photo/house/pic_219.jpg 6 -photo/house/pic_218.jpg 6 -photo/house/pic_280.jpg 6 -photo/house/pic_276.jpg 6 -photo/house/pic_287.jpg 6 -photo/house/pic_282.jpg 6 -photo/house/pic_283.jpg 6 -photo/house/pic_288.jpg 6 -photo/house/pic_289.jpg 6 -photo/house/pic_290.jpg 6 -photo/house/pic_281.jpg 6 -photo/house/pic_284.jpg 6 -photo/house/pic_089.jpg 6 -photo/house/pic_084.jpg 6 -photo/house/pic_085.jpg 6 -photo/house/pic_083.jpg 6 -photo/house/pic_099.jpg 6 -photo/house/pic_087.jpg 6 -photo/house/pic_106.jpg 6 -photo/house/pic_104.jpg 6 -photo/house/pic_103.jpg 6 -photo/house/pic_102.jpg 6 -photo/house/pic_101.jpg 6 -photo/house/pic_100.jpg 6 -photo/house/pic_110.jpg 6 -photo/house/pic_109.jpg 6 -photo/house/pic_108.jpg 6 -photo/house/pic_107.jpg 6 -photo/house/pic_111.jpg 6 -photo/house/pic_112.jpg 6 -photo/house/pic_113.jpg 6 -photo/house/pic_114.jpg 6 -photo/house/pic_262.jpg 6 -photo/house/pic_259.jpg 6 -photo/house/pic_264.jpg 6 -photo/house/pic_263.jpg 6 -photo/house/pic_265.jpg 6 -photo/house/pic_261.jpg 6 -photo/house/pic_266.jpg 6 -photo/house/pic_267.jpg 6 -photo/house/pic_269.jpg 6 -photo/house/pic_270.jpg 6 -photo/house/pic_268.jpg 6 -photo/house/pic_279.jpg 6 -photo/house/pic_278.jpg 6 -photo/house/pic_277.jpg 6 -photo/house/pic_275.jpg 6 -photo/house/pic_272.jpg 6 -photo/house/pic_274.jpg 6 -photo/house/pic_273.jpg 6 -photo/house/pic_271.jpg 6 -photo/house/pic_286.jpg 6 -photo/house/pic_285.jpg 6 -photo/house/pic_116.jpg 6 -photo/house/pic_115.jpg 6 -photo/house/pic_117.jpg 6 -photo/house/pic_118.jpg 6 -photo/house/pic_120.jpg 6 -photo/house/pic_119.jpg 6 -photo/house/pic_121.jpg 6 -photo/house/pic_122.jpg 6 -photo/house/pic_124.jpg 6 -photo/house/pic_123.jpg 6 -photo/house/pic_125.jpg 6 -photo/house/pic_126.jpg 6 -photo/house/pic_127.jpg 6 -photo/house/pic_128.jpg 6 -photo/house/pic_129.jpg 6 -photo/house/pic_130.jpg 6 -photo/house/pic_131.jpg 6 -photo/house/pic_132.jpg 6 -photo/house/pic_133.jpg 6 -photo/house/pic_001.jpg 6 -photo/house/pic_002.jpg 6 -photo/house/pic_003.jpg 6 -photo/house/pic_004.jpg 6 -photo/house/pic_005.jpg 6 -photo/house/pic_006.jpg 6 -photo/house/pic_007.jpg 6 -photo/house/pic_008.jpg 6 -photo/house/pic_178.jpg 6 -photo/house/pic_177.jpg 6 -photo/house/pic_176.jpg 6 -photo/house/pic_179.jpg 6 -photo/house/pic_181.jpg 6 -photo/house/pic_180.jpg 6 -photo/house/pic_185.jpg 6 -photo/house/pic_183.jpg 6 -photo/house/pic_184.jpg 6 -photo/house/pic_190.jpg 6 -photo/house/pic_188.jpg 6 -photo/house/pic_189.jpg 6 -photo/house/pic_186.jpg 6 -photo/house/pic_187.jpg 6 -photo/house/pic_191.jpg 6 -photo/house/pic_192.jpg 6 -photo/house/pic_194.jpg 6 -photo/house/pic_193.jpg 6 -photo/house/pic_195.jpg 6 -photo/house/pic_196.jpg 6 -photo/person/253_0045.jpg 7 -photo/person/253_0046.jpg 7 -photo/person/253_0047.jpg 7 -photo/person/253_0048.jpg 7 -photo/person/253_0049.jpg 7 -photo/person/253_0050.jpg 7 -photo/person/253_0051.jpg 7 -photo/person/253_0052.jpg 7 -photo/person/253_0053.jpg 7 -photo/person/253_0054.jpg 7 -photo/person/253_0055.jpg 7 -photo/person/253_0056.jpg 7 -photo/person/253_0057.jpg 7 -photo/person/253_0058.jpg 7 -photo/person/253_0059.jpg 7 -photo/person/253_0060.jpg 7 -photo/person/253_0061.jpg 7 -photo/person/253_0062.jpg 7 -photo/person/253_0063.jpg 7 -photo/person/253_0064.jpg 7 -photo/person/253_0065.jpg 7 -photo/person/253_0066.jpg 7 -photo/person/253_0067.jpg 7 -photo/person/253_0068.jpg 7 -photo/person/253_0069.jpg 7 -photo/person/253_0070.jpg 7 -photo/person/253_0071.jpg 7 -photo/person/253_0072.jpg 7 -photo/person/253_0073.jpg 7 -photo/person/253_0074.jpg 7 -photo/person/253_0075.jpg 7 -photo/person/253_0076.jpg 7 -photo/person/253_0077.jpg 7 -photo/person/253_0078.jpg 7 -photo/person/253_0079.jpg 7 -photo/person/253_0080.jpg 7 -photo/person/253_0081.jpg 7 -photo/person/253_0082.jpg 7 -photo/person/253_0083.jpg 7 -photo/person/253_0084.jpg 7 -photo/person/253_0085.jpg 7 -photo/person/253_0086.jpg 7 -photo/person/253_0087.jpg 7 -photo/person/253_0088.jpg 7 -photo/person/253_0089.jpg 7 -photo/person/253_0090.jpg 7 -photo/person/253_0091.jpg 7 -photo/person/253_0092.jpg 7 -photo/person/253_0093.jpg 7 -photo/person/253_0094.jpg 7 -photo/person/253_0095.jpg 7 -photo/person/253_0096.jpg 7 -photo/person/253_0097.jpg 7 -photo/person/253_0098.jpg 7 -photo/person/253_0099.jpg 7 -photo/person/253_0100.jpg 7 -photo/person/253_0101.jpg 7 -photo/person/253_0102.jpg 7 -photo/person/253_0103.jpg 7 -photo/person/253_0104.jpg 7 -photo/person/253_0105.jpg 7 -photo/person/253_0106.jpg 7 -photo/person/253_0107.jpg 7 -photo/person/253_0108.jpg 7 -photo/person/253_0109.jpg 7 -photo/person/253_0110.jpg 7 -photo/person/253_0111.jpg 7 -photo/person/253_0112.jpg 7 -photo/person/253_0113.jpg 7 -photo/person/253_0114.jpg 7 -photo/person/253_0115.jpg 7 -photo/person/253_0116.jpg 7 -photo/person/253_0117.jpg 7 -photo/person/253_0118.jpg 7 -photo/person/253_0119.jpg 7 -photo/person/253_0120.jpg 7 -photo/person/253_0121.jpg 7 -photo/person/253_0122.jpg 7 -photo/person/253_0123.jpg 7 -photo/person/253_0124.jpg 7 -photo/person/253_0125.jpg 7 -photo/person/253_0126.jpg 7 -photo/person/253_0127.jpg 7 -photo/person/253_0128.jpg 7 -photo/person/253_0129.jpg 7 -photo/person/253_0130.jpg 7 -photo/person/253_0131.jpg 7 -photo/person/253_0132.jpg 7 -photo/person/253_0133.jpg 7 -photo/person/253_0134.jpg 7 -photo/person/253_0135.jpg 7 -photo/person/253_0136.jpg 7 -photo/person/253_0137.jpg 7 -photo/person/253_0138.jpg 7 -photo/person/253_0139.jpg 7 -photo/person/253_0140.jpg 7 -photo/person/253_0141.jpg 7 -photo/person/253_0142.jpg 7 -photo/person/253_0143.jpg 7 -photo/person/253_0144.jpg 7 -photo/person/253_0145.jpg 7 -photo/person/253_0146.jpg 7 -photo/person/253_0147.jpg 7 -photo/person/253_0148.jpg 7 -photo/person/253_0149.jpg 7 -photo/person/253_0150.jpg 7 -photo/person/253_0151.jpg 7 -photo/person/253_0152.jpg 7 -photo/person/253_0153.jpg 7 -photo/person/253_0154.jpg 7 -photo/person/253_0155.jpg 7 -photo/person/253_0156.jpg 7 -photo/person/253_0157.jpg 7 -photo/person/253_0158.jpg 7 -photo/person/253_0159.jpg 7 -photo/person/253_0160.jpg 7 -photo/person/253_0161.jpg 7 -photo/person/253_0162.jpg 7 -photo/person/253_0163.jpg 7 -photo/person/253_0164.jpg 7 -photo/person/253_0165.jpg 7 -photo/person/253_0166.jpg 7 -photo/person/253_0167.jpg 7 -photo/person/253_0168.jpg 7 -photo/person/253_0169.jpg 7 -photo/person/253_0170.jpg 7 -photo/person/253_0171.jpg 7 -photo/person/253_0172.jpg 7 -photo/person/253_0173.jpg 7 -photo/person/253_0174.jpg 7 -photo/person/253_0175.jpg 7 -photo/person/253_0176.jpg 7 -photo/person/253_0177.jpg 7 -photo/person/253_0178.jpg 7 -photo/person/253_0179.jpg 7 -photo/person/253_0180.jpg 7 -photo/person/253_0181.jpg 7 -photo/person/253_0182.jpg 7 -photo/person/253_0183.jpg 7 -photo/person/253_0184.jpg 7 -photo/person/253_0185.jpg 7 -photo/person/253_0186.jpg 7 -photo/person/253_0187.jpg 7 -photo/person/253_0188.jpg 7 -photo/person/253_0189.jpg 7 -photo/person/253_0190.jpg 7 -photo/person/253_0191.jpg 7 -photo/person/253_0192.jpg 7 -photo/person/253_0193.jpg 7 -photo/person/253_0194.jpg 7 -photo/person/253_0195.jpg 7 -photo/person/253_0196.jpg 7 -photo/person/253_0197.jpg 7 -photo/person/253_0198.jpg 7 -photo/person/253_0199.jpg 7 -photo/person/253_0200.jpg 7 -photo/person/253_0201.jpg 7 -photo/person/253_0202.jpg 7 -photo/person/253_0203.jpg 7 -photo/person/253_0204.jpg 7 -photo/person/253_0205.jpg 7 -photo/person/253_0206.jpg 7 -photo/person/253_0207.jpg 7 -photo/person/253_0208.jpg 7 -photo/person/253_0209.jpg 7 -photo/person/253_0210.jpg 7 -photo/person/253_0211.jpg 7 -photo/person/253_0212.jpg 7 -photo/person/253_0213.jpg 7 -photo/person/253_0214.jpg 7 -photo/person/253_0215.jpg 7 -photo/person/253_0216.jpg 7 -photo/person/253_0217.jpg 7 -photo/person/253_0218.jpg 7 -photo/person/253_0219.jpg 7 -photo/person/253_0220.jpg 7 -photo/person/253_0221.jpg 7 -photo/person/253_0222.jpg 7 -photo/person/253_0223.jpg 7 -photo/person/253_0224.jpg 7 -photo/person/253_0225.jpg 7 -photo/person/253_0226.jpg 7 -photo/person/253_0227.jpg 7 -photo/person/253_0228.jpg 7 -photo/person/253_0229.jpg 7 -photo/person/253_0230.jpg 7 -photo/person/253_0231.jpg 7 -photo/person/253_0232.jpg 7 -photo/person/253_0233.jpg 7 -photo/person/253_0234.jpg 7 -photo/person/253_0235.jpg 7 -photo/person/253_0236.jpg 7 -photo/person/253_0237.jpg 7 -photo/person/253_0238.jpg 7 -photo/person/253_0239.jpg 7 -photo/person/253_0240.jpg 7 -photo/person/253_0241.jpg 7 -photo/person/253_0242.jpg 7 -photo/person/253_0243.jpg 7 -photo/person/253_0244.jpg 7 -photo/person/253_0245.jpg 7 -photo/person/253_0246.jpg 7 -photo/person/253_0247.jpg 7 -photo/person/253_0248.jpg 7 -photo/person/253_0249.jpg 7 -photo/person/253_0250.jpg 7 -photo/person/253_0251.jpg 7 -photo/person/253_0252.jpg 7 -photo/person/253_0253.jpg 7 -photo/person/253_0254.jpg 7 -photo/person/253_0255.jpg 7 -photo/person/253_0256.jpg 7 -photo/person/253_0257.jpg 7 -photo/person/253_0258.jpg 7 -photo/person/253_0259.jpg 7 -photo/person/253_0260.jpg 7 -photo/person/253_0261.jpg 7 -photo/person/253_0262.jpg 7 -photo/person/253_0263.jpg 7 -photo/person/253_0264.jpg 7 -photo/person/253_0265.jpg 7 -photo/person/253_0266.jpg 7 -photo/person/253_0267.jpg 7 -photo/person/253_0268.jpg 7 -photo/person/253_0269.jpg 7 -photo/person/253_0270.jpg 7 -photo/person/253_0271.jpg 7 -photo/person/253_0272.jpg 7 -photo/person/253_0273.jpg 7 -photo/person/253_0274.jpg 7 -photo/person/253_0275.jpg 7 -photo/person/253_0276.jpg 7 -photo/person/253_0277.jpg 7 -photo/person/253_0278.jpg 7 -photo/person/253_0279.jpg 7 -photo/person/253_0280.jpg 7 -photo/person/253_0281.jpg 7 -photo/person/253_0282.jpg 7 -photo/person/253_0283.jpg 7 -photo/person/253_0284.jpg 7 -photo/person/253_0285.jpg 7 -photo/person/253_0286.jpg 7 -photo/person/253_0287.jpg 7 -photo/person/253_0288.jpg 7 -photo/person/253_0289.jpg 7 -photo/person/253_0290.jpg 7 -photo/person/253_0291.jpg 7 -photo/person/253_0292.jpg 7 -photo/person/253_0293.jpg 7 -photo/person/253_0294.jpg 7 -photo/person/253_0295.jpg 7 -photo/person/253_0296.jpg 7 -photo/person/253_0297.jpg 7 -photo/person/253_0298.jpg 7 -photo/person/253_0299.jpg 7 -photo/person/253_0300.jpg 7 -photo/person/253_0301.jpg 7 -photo/person/253_0302.jpg 7 -photo/person/253_0303.jpg 7 -photo/person/253_0304.jpg 7 -photo/person/253_0305.jpg 7 -photo/person/253_0306.jpg 7 -photo/person/253_0307.jpg 7 -photo/person/253_0308.jpg 7 -photo/person/253_0309.jpg 7 -photo/person/253_0310.jpg 7 -photo/person/253_0311.jpg 7 -photo/person/253_0312.jpg 7 -photo/person/253_0313.jpg 7 -photo/person/253_0314.jpg 7 -photo/person/253_0315.jpg 7 -photo/person/253_0316.jpg 7 -photo/person/253_0317.jpg 7 -photo/person/253_0318.jpg 7 -photo/person/253_0319.jpg 7 -photo/person/253_0320.jpg 7 -photo/person/253_0321.jpg 7 -photo/person/253_0322.jpg 7 -photo/person/253_0323.jpg 7 -photo/person/253_0324.jpg 7 -photo/person/253_0325.jpg 7 -photo/person/253_0326.jpg 7 -photo/person/253_0327.jpg 7 -photo/person/253_0328.jpg 7 -photo/person/253_0329.jpg 7 -photo/person/253_0330.jpg 7 -photo/person/253_0331.jpg 7 -photo/person/253_0332.jpg 7 -photo/person/253_0333.jpg 7 -photo/person/253_0334.jpg 7 -photo/person/253_0335.jpg 7 -photo/person/253_0336.jpg 7 -photo/person/253_0337.jpg 7 -photo/person/253_0338.jpg 7 -photo/person/253_0339.jpg 7 -photo/person/253_0340.jpg 7 -photo/person/253_0341.jpg 7 -photo/person/253_0342.jpg 7 -photo/person/253_0343.jpg 7 -photo/person/253_0344.jpg 7 -photo/person/253_0345.jpg 7 -photo/person/253_0346.jpg 7 -photo/person/253_0347.jpg 7 -photo/person/253_0348.jpg 7 -photo/person/253_0349.jpg 7 -photo/person/253_0350.jpg 7 -photo/person/253_0351.jpg 7 -photo/person/253_0352.jpg 7 -photo/person/253_0353.jpg 7 -photo/person/253_0354.jpg 7 -photo/person/253_0355.jpg 7 -photo/person/253_0356.jpg 7 -photo/person/253_0357.jpg 7 -photo/person/253_0358.jpg 7 -photo/person/253_0359.jpg 7 -photo/person/253_0360.jpg 7 -photo/person/253_0361.jpg 7 -photo/person/253_0362.jpg 7 -photo/person/253_0363.jpg 7 -photo/person/253_0364.jpg 7 -photo/person/253_0365.jpg 7 -photo/person/253_0366.jpg 7 -photo/person/253_0367.jpg 7 -photo/person/253_0368.jpg 7 -photo/person/253_0369.jpg 7 -photo/person/253_0370.jpg 7 -photo/person/253_0371.jpg 7 -photo/person/253_0372.jpg 7 -photo/person/253_0373.jpg 7 -photo/person/253_0374.jpg 7 -photo/person/253_0375.jpg 7 -photo/person/253_0376.jpg 7 -photo/person/253_0377.jpg 7 -photo/person/253_0378.jpg 7 -photo/person/253_0379.jpg 7 -photo/person/253_0380.jpg 7 -photo/person/253_0381.jpg 7 -photo/person/253_0382.jpg 7 -photo/person/253_0383.jpg 7 -photo/person/253_0384.jpg 7 -photo/person/253_0385.jpg 7 -photo/person/253_0386.jpg 7 -photo/person/253_0387.jpg 7 -photo/person/253_0388.jpg 7 -photo/person/253_0390.jpg 7 -photo/person/253_0393.jpg 7 -photo/person/253_0394.jpg 7 -photo/person/253_0395.jpg 7 -photo/person/253_0396.jpg 7 -photo/person/253_0397.jpg 7 -photo/person/253_0398.jpg 7 -photo/person/253_0399.jpg 7 -photo/person/253_0400.jpg 7 -photo/person/253_0401.jpg 7 -photo/person/253_0402.jpg 7 -photo/person/253_0403.jpg 7 -photo/person/253_0404.jpg 7 -photo/person/253_0405.jpg 7 -photo/person/253_0406.jpg 7 -photo/person/253_0407.jpg 7 -photo/person/253_0408.jpg 7 -photo/person/253_0409.jpg 7 -photo/person/253_0410.jpg 7 -photo/person/253_0411.jpg 7 -photo/person/253_0412.jpg 7 -photo/person/253_0413.jpg 7 -photo/person/253_0414.jpg 7 -photo/person/253_0415.jpg 7 -photo/person/253_0416.jpg 7 -photo/person/253_0417.jpg 7 -photo/person/253_0418.jpg 7 -photo/person/253_0419.jpg 7 -photo/person/253_0420.jpg 7 -photo/person/253_0421.jpg 7 -photo/person/253_0422.jpg 7 -photo/person/253_0423.jpg 7 -photo/person/253_0424.jpg 7 -photo/person/253_0425.jpg 7 -photo/person/253_0426.jpg 7 -photo/person/253_0427.jpg 7 -photo/person/253_0428.jpg 7 -photo/person/253_0429.jpg 7 -photo/person/253_0430.jpg 7 -photo/person/253_0431.jpg 7 -photo/person/253_0432.jpg 7 -photo/person/253_0433.jpg 7 -photo/person/253_0434.jpg 7 -photo/person/253_0435.jpg 7 diff --git a/data/pacs_split/readme.txt b/data/pacs_split/readme.txt deleted file mode 100644 index 36a00efc7..000000000 --- a/data/pacs_split/readme.txt +++ /dev/null @@ -1,10 +0,0 @@ - -1. The h5py files was pre-read using cv2, so it is BGR channel order. -2. This benckmark is sensitive to the different train val splits, so please use this train val splits for the fair comparisons. - -https://drive.google.com/uc?id=1JFr8f805nMUelQWWmfnJR3y4_SYoN5Pd - -[https://drive.google.com/uc?id=1JFr8f805nMUelQWWmfnJR3y4_SYoN5Pd](https://drive.google.com/uc?id=1JFr8f805nMUelQWWmfnJR3y4_SYoN5Pd) - - -https://github.com/facebookresearch/DomainBed/blob/4294ec699df761b46a1505734f6be16ef009cad9/domainbed/scripts/download.py#L29 diff --git a/data/pacs_split/sketch_10.txt b/data/pacs_split/sketch_10.txt deleted file mode 100644 index 79f855d52..000000000 --- a/data/pacs_split/sketch_10.txt +++ /dev/null @@ -1,10 +0,0 @@ -sketch/house/8873.png 6 -sketch/guitar/n03467517_6423-3.png 4 -sketch/elephant/5981.png 2 -sketch/dog/n02103406_3255-6.png 1 -sketch/horse/n02374451_779-1.png 5 -sketch/guitar/n02676566_8618-2.png 4 -sketch/elephant/n02503517_12688-4.png 2 -sketch/dog/5302.png 1 -sketch/giraffe/n02439033_13384-2.png 3 -sketch/dog/5317.png 1 diff --git a/data/pacs_split/sketch_100.txt b/data/pacs_split/sketch_100.txt deleted file mode 100644 index 2856e053f..000000000 --- a/data/pacs_split/sketch_100.txt +++ /dev/null @@ -1,100 +0,0 @@ -sketch/guitar/n02676566_6704-1.png 4 -sketch/dog/5356.png 1 -sketch/dog/n02103406_3743-4.png 1 -sketch/person/12197.png 7 -sketch/person/12198.png 7 -sketch/person/12133.png 7 -sketch/elephant/n02503517_6937-1.png 2 -sketch/horse/8537.png 5 -sketch/horse/8527.png 5 -sketch/horse/n02374451_14425-8.png 5 -sketch/giraffe/n02439033_8875-1.png 3 -sketch/dog/n02106662_466-2.png 1 -sketch/guitar/n03272010_1708-4.png 4 -sketch/dog/n02103406_6688-9.png 1 -sketch/horse/n02374451_3388-8.png 5 -sketch/elephant/n02503517_4253-3.png 2 -sketch/giraffe/n02439033_14600-1.png 3 -sketch/elephant/n02503517_9241-3.png 2 -sketch/giraffe/n02439033_11215-2.png 3 -sketch/elephant/n02503517_1415-2.png 2 -sketch/dog/n02106662_2157-2.png 1 -sketch/elephant/n02503517_4253-5.png 2 -sketch/giraffe/n02439033_14040-4.png 3 -sketch/elephant/n02503517_5905-8.png 2 -sketch/guitar/n03272010_6255-5.png 4 -sketch/horse/n02374451_10809-5.png 5 -sketch/giraffe/n02439033_8846-4.png 3 -sketch/person/12171.png 7 -sketch/elephant/n02503517_5267-3.png 2 -sketch/giraffe/n02439033_11504-4.png 3 -sketch/person/12131.png 7 -sketch/dog/n02109525_18347-4.png 1 -sketch/horse/n02374451_17634-1.png 5 -sketch/elephant/n02503517_8757-1.png 2 -sketch/guitar/n03467517_19701-2.png 4 -sketch/dog/n02106662_27393-2.png 1 -sketch/horse/n02374451_8065-4.png 5 -sketch/guitar/n02676566_6864-1.png 4 -sketch/elephant/n02503517_8901-2.png 2 -sketch/horse/n02374451_9892-3.png 5 -sketch/dog/n02106662_7960-1.png 1 -sketch/guitar/n03272010_9858-1.png 4 -sketch/guitar/n02676566_8467-1.png 4 -sketch/dog/n02103406_3108-6.png 1 -sketch/giraffe/n02439033_14781-3.png 3 -sketch/horse/8499.png 5 -sketch/guitar/n02676566_4469-2.png 4 -sketch/dog/n02109525_704-6.png 1 -sketch/dog/n02106662_24786-5.png 1 -sketch/guitar/n03467517_8929-1.png 4 -sketch/guitar/n03272010_6725-1.png 4 -sketch/giraffe/n02439033_11683-7.png 3 -sketch/elephant/n02503517_5117-1.png 2 -sketch/dog/n02106662_2101-9.png 1 -sketch/elephant/n02503517_10193-9.png 2 -sketch/horse/n02374451_18909-6.png 5 -sketch/guitar/n02676566_9254-1.png 4 -sketch/elephant/n02503517_2993-2.png 2 -sketch/horse/n02374451_1443-4.png 5 -sketch/elephant/n02503517_4413-3.png 2 -sketch/horse/n02374451_16948-1.png 5 -sketch/dog/n02106662_10406-3.png 1 -sketch/giraffe/n02439033_10164-2.png 3 -sketch/person/12210.png 7 -sketch/dog/n02106662_26549-6.png 1 -sketch/elephant/n02503517_10259-6.png 2 -sketch/elephant/n02503517_10558-4.png 2 -sketch/elephant/n02503517_3108-3.png 2 -sketch/giraffe/n02439033_13602-6.png 3 -sketch/elephant/n02503517_6429-3.png 2 -sketch/guitar/n02676566_2866-3.png 4 -sketch/horse/n02374451_12174-3.png 5 -sketch/dog/n02103406_3056-1.png 1 -sketch/giraffe/7410.png 3 -sketch/guitar/n02676566_6914-1.png 4 -sketch/giraffe/n02439033_11130-5.png 3 -sketch/giraffe/7425.png 3 -sketch/horse/n02374451_12418-10.png 5 -sketch/horse/n02374451_12847-5.png 5 -sketch/dog/n02106662_15858-1.png 1 -sketch/elephant/n02503517_8571-6.png 2 -sketch/giraffe/n02439033_14580-1.png 3 -sketch/giraffe/n02439033_11666-5.png 3 -sketch/guitar/n03272010_7383-4.png 4 -sketch/guitar/n02676566_3360-2.png 4 -sketch/guitar/n03272010_5483-1.png 4 -sketch/elephant/n02503517_10193-1.png 2 -sketch/giraffe/7440.png 3 -sketch/guitar/n03272010_7390-4.png 4 -sketch/dog/n02103406_2209-6.png 1 -sketch/elephant/n02503517_5892-4.png 2 -sketch/guitar/n02676566_6430-1.png 4 -sketch/giraffe/n02439033_9472-7.png 3 -sketch/guitar/n02676566_8618-6.png 4 -sketch/person/12134.png 7 -sketch/giraffe/n02439033_11627-5.png 3 -sketch/giraffe/n02439033_11059-8.png 3 -sketch/giraffe/n02439033_3944-10.png 3 -sketch/dog/n02103406_1754-3.png 1 -sketch/house/8812.png 6 diff --git a/data/pacs_split/sketch_crossval_kfold.txt b/data/pacs_split/sketch_crossval_kfold.txt deleted file mode 100644 index 63c0f2050..000000000 --- a/data/pacs_split/sketch_crossval_kfold.txt +++ /dev/null @@ -1,398 +0,0 @@ -sketch/dog/n02103406_343-1.png 1 -sketch/dog/n02103406_343-2.png 1 -sketch/dog/n02103406_343-3.png 1 -sketch/dog/n02103406_343-4.png 1 -sketch/dog/n02103406_343-5.png 1 -sketch/dog/n02103406_343-6.png 1 -sketch/dog/n02103406_343-7.png 1 -sketch/dog/n02103406_343-8.png 1 -sketch/dog/n02103406_343-9.png 1 -sketch/dog/n02103406_346-1.png 1 -sketch/dog/n02103406_346-2.png 1 -sketch/dog/n02103406_346-3.png 1 -sketch/dog/n02103406_346-4.png 1 -sketch/dog/n02103406_346-5.png 1 -sketch/dog/n02103406_346-6.png 1 -sketch/dog/n02103406_346-7.png 1 -sketch/dog/n02103406_371-1.png 1 -sketch/dog/n02103406_371-2.png 1 -sketch/dog/n02103406_371-3.png 1 -sketch/dog/n02103406_371-4.png 1 -sketch/dog/n02103406_371-5.png 1 -sketch/dog/n02103406_371-6.png 1 -sketch/dog/n02103406_371-7.png 1 -sketch/dog/n02103406_371-8.png 1 -sketch/dog/n02103406_371-9.png 1 -sketch/dog/n02103406_371-10.png 1 -sketch/dog/n02103406_371-11.png 1 -sketch/dog/n02103406_651-1.png 1 -sketch/dog/n02103406_651-2.png 1 -sketch/dog/n02103406_651-3.png 1 -sketch/dog/n02103406_651-4.png 1 -sketch/dog/n02103406_651-5.png 1 -sketch/dog/n02103406_651-6.png 1 -sketch/dog/n02103406_651-7.png 1 -sketch/dog/n02103406_865-1.png 1 -sketch/dog/n02103406_865-2.png 1 -sketch/dog/n02103406_865-3.png 1 -sketch/dog/n02103406_865-4.png 1 -sketch/dog/n02103406_865-5.png 1 -sketch/dog/n02103406_865-6.png 1 -sketch/dog/n02103406_865-7.png 1 -sketch/dog/n02103406_865-8.png 1 -sketch/dog/n02103406_865-9.png 1 -sketch/dog/n02103406_865-10.png 1 -sketch/dog/n02103406_865-11.png 1 -sketch/dog/n02103406_936-1.png 1 -sketch/dog/n02103406_936-2.png 1 -sketch/dog/n02103406_936-3.png 1 -sketch/dog/n02103406_936-4.png 1 -sketch/dog/n02103406_936-5.png 1 -sketch/dog/n02103406_936-6.png 1 -sketch/dog/n02103406_936-7.png 1 -sketch/dog/n02103406_936-8.png 1 -sketch/dog/n02103406_936-9.png 1 -sketch/dog/n02103406_995-1.png 1 -sketch/dog/n02103406_995-2.png 1 -sketch/dog/n02103406_995-3.png 1 -sketch/dog/n02103406_995-4.png 1 -sketch/dog/n02103406_995-5.png 1 -sketch/dog/n02103406_995-6.png 1 -sketch/dog/n02103406_1011-1.png 1 -sketch/dog/n02103406_1011-2.png 1 -sketch/dog/n02103406_1011-3.png 1 -sketch/dog/n02103406_1011-4.png 1 -sketch/dog/n02103406_1011-5.png 1 -sketch/dog/n02103406_1138-1.png 1 -sketch/dog/n02103406_1138-2.png 1 -sketch/dog/n02103406_1138-3.png 1 -sketch/dog/n02103406_1138-4.png 1 -sketch/dog/n02103406_1138-5.png 1 -sketch/dog/n02103406_1138-6.png 1 -sketch/dog/n02103406_1138-7.png 1 -sketch/dog/n02103406_1138-8.png 1 -sketch/dog/n02103406_1170-1.png 1 -sketch/dog/n02103406_1170-2.png 1 -sketch/dog/n02103406_1170-3.png 1 -sketch/dog/n02103406_1170-4.png 1 -sketch/dog/n02103406_1170-5.png 1 -sketch/elephant/n02503517_79-1.png 2 -sketch/elephant/n02503517_79-2.png 2 -sketch/elephant/n02503517_79-3.png 2 -sketch/elephant/n02503517_79-4.png 2 -sketch/elephant/n02503517_79-5.png 2 -sketch/elephant/n02503517_86-1.png 2 -sketch/elephant/n02503517_86-2.png 2 -sketch/elephant/n02503517_86-3.png 2 -sketch/elephant/n02503517_86-4.png 2 -sketch/elephant/n02503517_86-5.png 2 -sketch/elephant/n02503517_86-6.png 2 -sketch/elephant/n02503517_184-1.png 2 -sketch/elephant/n02503517_184-2.png 2 -sketch/elephant/n02503517_184-3.png 2 -sketch/elephant/n02503517_184-4.png 2 -sketch/elephant/n02503517_184-5.png 2 -sketch/elephant/n02503517_184-6.png 2 -sketch/elephant/n02503517_184-7.png 2 -sketch/elephant/n02503517_184-8.png 2 -sketch/elephant/n02503517_184-9.png 2 -sketch/elephant/n02503517_194-1.png 2 -sketch/elephant/n02503517_194-2.png 2 -sketch/elephant/n02503517_194-3.png 2 -sketch/elephant/n02503517_194-4.png 2 -sketch/elephant/n02503517_194-5.png 2 -sketch/elephant/n02503517_194-6.png 2 -sketch/elephant/n02503517_311-1.png 2 -sketch/elephant/n02503517_311-2.png 2 -sketch/elephant/n02503517_311-3.png 2 -sketch/elephant/n02503517_311-4.png 2 -sketch/elephant/n02503517_311-5.png 2 -sketch/elephant/n02503517_311-6.png 2 -sketch/elephant/n02503517_564-1.png 2 -sketch/elephant/n02503517_564-2.png 2 -sketch/elephant/n02503517_564-3.png 2 -sketch/elephant/n02503517_564-4.png 2 -sketch/elephant/n02503517_564-5.png 2 -sketch/elephant/n02503517_753-1.png 2 -sketch/elephant/n02503517_753-2.png 2 -sketch/elephant/n02503517_753-3.png 2 -sketch/elephant/n02503517_753-4.png 2 -sketch/elephant/n02503517_753-5.png 2 -sketch/elephant/n02503517_753-6.png 2 -sketch/elephant/n02503517_759-1.png 2 -sketch/elephant/n02503517_759-2.png 2 -sketch/elephant/n02503517_759-3.png 2 -sketch/elephant/n02503517_759-4.png 2 -sketch/elephant/n02503517_759-5.png 2 -sketch/elephant/n02503517_759-6.png 2 -sketch/elephant/n02503517_759-7.png 2 -sketch/elephant/n02503517_759-8.png 2 -sketch/elephant/n02503517_792-1.png 2 -sketch/elephant/n02503517_792-2.png 2 -sketch/elephant/n02503517_792-3.png 2 -sketch/elephant/n02503517_792-4.png 2 -sketch/elephant/n02503517_792-5.png 2 -sketch/elephant/n02503517_1292-1.png 2 -sketch/elephant/n02503517_1292-2.png 2 -sketch/elephant/n02503517_1292-3.png 2 -sketch/elephant/n02503517_1292-4.png 2 -sketch/elephant/n02503517_1292-5.png 2 -sketch/elephant/n02503517_1292-6.png 2 -sketch/elephant/n02503517_1292-7.png 2 -sketch/elephant/n02503517_1359-1.png 2 -sketch/elephant/n02503517_1359-2.png 2 -sketch/elephant/n02503517_1359-3.png 2 -sketch/elephant/n02503517_1359-4.png 2 -sketch/elephant/n02503517_1359-5.png 2 -sketch/elephant/n02503517_1359-6.png 2 -sketch/elephant/n02503517_1383-1.png 2 -sketch/elephant/n02503517_1383-2.png 2 -sketch/elephant/n02503517_1383-3.png 2 -sketch/elephant/n02503517_1383-4.png 2 -sketch/elephant/n02503517_1383-5.png 2 -sketch/elephant/n02503517_1383-6.png 2 -sketch/giraffe/n02439033_67-1.png 3 -sketch/giraffe/n02439033_67-2.png 3 -sketch/giraffe/n02439033_67-3.png 3 -sketch/giraffe/n02439033_67-4.png 3 -sketch/giraffe/n02439033_67-5.png 3 -sketch/giraffe/n02439033_67-6.png 3 -sketch/giraffe/n02439033_67-7.png 3 -sketch/giraffe/n02439033_221-1.png 3 -sketch/giraffe/n02439033_221-2.png 3 -sketch/giraffe/n02439033_221-3.png 3 -sketch/giraffe/n02439033_221-4.png 3 -sketch/giraffe/n02439033_221-5.png 3 -sketch/giraffe/n02439033_221-6.png 3 -sketch/giraffe/n02439033_376-1.png 3 -sketch/giraffe/n02439033_376-2.png 3 -sketch/giraffe/n02439033_376-3.png 3 -sketch/giraffe/n02439033_376-4.png 3 -sketch/giraffe/n02439033_376-5.png 3 -sketch/giraffe/n02439033_569-1.png 3 -sketch/giraffe/n02439033_569-2.png 3 -sketch/giraffe/n02439033_569-3.png 3 -sketch/giraffe/n02439033_569-4.png 3 -sketch/giraffe/n02439033_569-5.png 3 -sketch/giraffe/n02439033_628-1.png 3 -sketch/giraffe/n02439033_628-2.png 3 -sketch/giraffe/n02439033_628-3.png 3 -sketch/giraffe/n02439033_628-4.png 3 -sketch/giraffe/n02439033_628-5.png 3 -sketch/giraffe/n02439033_628-6.png 3 -sketch/giraffe/n02439033_628-7.png 3 -sketch/giraffe/n02439033_628-8.png 3 -sketch/giraffe/n02439033_628-9.png 3 -sketch/giraffe/n02439033_628-10.png 3 -sketch/giraffe/n02439033_866-1.png 3 -sketch/giraffe/n02439033_866-2.png 3 -sketch/giraffe/n02439033_866-3.png 3 -sketch/giraffe/n02439033_866-4.png 3 -sketch/giraffe/n02439033_866-5.png 3 -sketch/giraffe/n02439033_866-6.png 3 -sketch/giraffe/n02439033_991-1.png 3 -sketch/giraffe/n02439033_991-2.png 3 -sketch/giraffe/n02439033_991-3.png 3 -sketch/giraffe/n02439033_991-4.png 3 -sketch/giraffe/n02439033_991-5.png 3 -sketch/giraffe/n02439033_991-6.png 3 -sketch/giraffe/n02439033_991-7.png 3 -sketch/giraffe/n02439033_991-8.png 3 -sketch/giraffe/n02439033_991-9.png 3 -sketch/giraffe/n02439033_1327-1.png 3 -sketch/giraffe/n02439033_1327-2.png 3 -sketch/giraffe/n02439033_1327-3.png 3 -sketch/giraffe/n02439033_1327-4.png 3 -sketch/giraffe/n02439033_1327-5.png 3 -sketch/giraffe/n02439033_1508-1.png 3 -sketch/giraffe/n02439033_1508-2.png 3 -sketch/giraffe/n02439033_1508-3.png 3 -sketch/giraffe/n02439033_1508-4.png 3 -sketch/giraffe/n02439033_1508-5.png 3 -sketch/giraffe/n02439033_1508-6.png 3 -sketch/giraffe/n02439033_1508-7.png 3 -sketch/giraffe/n02439033_1508-8.png 3 -sketch/giraffe/n02439033_1508-9.png 3 -sketch/giraffe/n02439033_2486-1.png 3 -sketch/giraffe/n02439033_2486-2.png 3 -sketch/giraffe/n02439033_2486-3.png 3 -sketch/giraffe/n02439033_2486-4.png 3 -sketch/giraffe/n02439033_2486-5.png 3 -sketch/giraffe/n02439033_2486-6.png 3 -sketch/giraffe/n02439033_2500-1.png 3 -sketch/giraffe/n02439033_2500-2.png 3 -sketch/giraffe/n02439033_2500-3.png 3 -sketch/giraffe/n02439033_2500-4.png 3 -sketch/giraffe/n02439033_2500-5.png 3 -sketch/giraffe/n02439033_2500-6.png 3 -sketch/giraffe/n02439033_2677-1.png 3 -sketch/giraffe/n02439033_2677-2.png 3 -sketch/guitar/7601.png 4 -sketch/guitar/7602.png 4 -sketch/guitar/7603.png 4 -sketch/guitar/7604.png 4 -sketch/guitar/7605.png 4 -sketch/guitar/7606.png 4 -sketch/guitar/7607.png 4 -sketch/guitar/7608.png 4 -sketch/guitar/7609.png 4 -sketch/guitar/7610.png 4 -sketch/guitar/7611.png 4 -sketch/guitar/7612.png 4 -sketch/guitar/7613.png 4 -sketch/guitar/7614.png 4 -sketch/guitar/7615.png 4 -sketch/guitar/7616.png 4 -sketch/guitar/7617.png 4 -sketch/guitar/7618.png 4 -sketch/guitar/7619.png 4 -sketch/guitar/7620.png 4 -sketch/guitar/7621.png 4 -sketch/guitar/7622.png 4 -sketch/guitar/7623.png 4 -sketch/guitar/7624.png 4 -sketch/guitar/7625.png 4 -sketch/guitar/7626.png 4 -sketch/guitar/7627.png 4 -sketch/guitar/7628.png 4 -sketch/guitar/7629.png 4 -sketch/guitar/7630.png 4 -sketch/guitar/7631.png 4 -sketch/guitar/7632.png 4 -sketch/guitar/7633.png 4 -sketch/guitar/7634.png 4 -sketch/guitar/7635.png 4 -sketch/guitar/7636.png 4 -sketch/guitar/7637.png 4 -sketch/guitar/7638.png 4 -sketch/guitar/7639.png 4 -sketch/guitar/7640.png 4 -sketch/guitar/7641.png 4 -sketch/guitar/7642.png 4 -sketch/guitar/7643.png 4 -sketch/guitar/7644.png 4 -sketch/guitar/7645.png 4 -sketch/guitar/7646.png 4 -sketch/guitar/7647.png 4 -sketch/guitar/7648.png 4 -sketch/guitar/7649.png 4 -sketch/guitar/7650.png 4 -sketch/guitar/7651.png 4 -sketch/guitar/7652.png 4 -sketch/guitar/7653.png 4 -sketch/guitar/7654.png 4 -sketch/guitar/7655.png 4 -sketch/guitar/7656.png 4 -sketch/guitar/7657.png 4 -sketch/guitar/7658.png 4 -sketch/guitar/7659.png 4 -sketch/guitar/7660.png 4 -sketch/guitar/7661.png 4 -sketch/horse/n02374451_54-1.png 5 -sketch/horse/n02374451_54-2.png 5 -sketch/horse/n02374451_54-3.png 5 -sketch/horse/n02374451_54-4.png 5 -sketch/horse/n02374451_54-5.png 5 -sketch/horse/n02374451_54-6.png 5 -sketch/horse/n02374451_54-7.png 5 -sketch/horse/n02374451_54-8.png 5 -sketch/horse/n02374451_54-9.png 5 -sketch/horse/n02374451_54-10.png 5 -sketch/horse/n02374451_245-1.png 5 -sketch/horse/n02374451_245-2.png 5 -sketch/horse/n02374451_245-3.png 5 -sketch/horse/n02374451_245-4.png 5 -sketch/horse/n02374451_245-5.png 5 -sketch/horse/n02374451_245-6.png 5 -sketch/horse/n02374451_257-1.png 5 -sketch/horse/n02374451_257-2.png 5 -sketch/horse/n02374451_257-3.png 5 -sketch/horse/n02374451_257-4.png 5 -sketch/horse/n02374451_257-5.png 5 -sketch/horse/n02374451_257-6.png 5 -sketch/horse/n02374451_257-7.png 5 -sketch/horse/n02374451_262-1.png 5 -sketch/horse/n02374451_262-2.png 5 -sketch/horse/n02374451_262-3.png 5 -sketch/horse/n02374451_262-4.png 5 -sketch/horse/n02374451_262-5.png 5 -sketch/horse/n02374451_262-6.png 5 -sketch/horse/n02374451_262-7.png 5 -sketch/horse/n02374451_262-8.png 5 -sketch/horse/n02374451_262-9.png 5 -sketch/horse/n02374451_262-10.png 5 -sketch/horse/n02374451_262-11.png 5 -sketch/horse/n02374451_262-12.png 5 -sketch/horse/n02374451_276-1.png 5 -sketch/horse/n02374451_276-2.png 5 -sketch/horse/n02374451_276-3.png 5 -sketch/horse/n02374451_276-4.png 5 -sketch/horse/n02374451_276-5.png 5 -sketch/horse/n02374451_276-6.png 5 -sketch/horse/n02374451_276-7.png 5 -sketch/horse/n02374451_276-8.png 5 -sketch/horse/n02374451_276-9.png 5 -sketch/horse/n02374451_276-10.png 5 -sketch/horse/n02374451_388-2.png 5 -sketch/horse/n02374451_388-3.png 5 -sketch/horse/n02374451_388-4.png 5 -sketch/horse/n02374451_388-5.png 5 -sketch/horse/n02374451_388-6.png 5 -sketch/horse/n02374451_388-7.png 5 -sketch/horse/n02374451_388-8.png 5 -sketch/horse/n02374451_388-9.png 5 -sketch/horse/n02374451_388-10.png 5 -sketch/horse/n02374451_468-1.png 5 -sketch/horse/n02374451_468-2.png 5 -sketch/horse/n02374451_468-3.png 5 -sketch/horse/n02374451_468-4.png 5 -sketch/horse/n02374451_468-5.png 5 -sketch/horse/n02374451_468-6.png 5 -sketch/horse/n02374451_468-7.png 5 -sketch/horse/n02374451_468-8.png 5 -sketch/horse/n02374451_468-9.png 5 -sketch/horse/n02374451_468-10.png 5 -sketch/horse/n02374451_490-1.png 5 -sketch/horse/n02374451_490-2.png 5 -sketch/horse/n02374451_490-3.png 5 -sketch/horse/n02374451_490-4.png 5 -sketch/horse/n02374451_490-5.png 5 -sketch/horse/n02374451_490-6.png 5 -sketch/horse/n02374451_490-7.png 5 -sketch/horse/n02374451_503-1.png 5 -sketch/horse/n02374451_503-2.png 5 -sketch/horse/n02374451_503-3.png 5 -sketch/horse/n02374451_503-4.png 5 -sketch/horse/n02374451_503-5.png 5 -sketch/horse/n02374451_503-6.png 5 -sketch/horse/n02374451_557-1.png 5 -sketch/horse/n02374451_557-2.png 5 -sketch/horse/n02374451_557-3.png 5 -sketch/horse/n02374451_557-4.png 5 -sketch/horse/n02374451_557-5.png 5 -sketch/house/8801.png 6 -sketch/house/8802.png 6 -sketch/house/8803.png 6 -sketch/house/8804.png 6 -sketch/house/8805.png 6 -sketch/house/8806.png 6 -sketch/house/8807.png 6 -sketch/house/8808.png 6 -sketch/house/8809.png 6 -sketch/person/12081.png 7 -sketch/person/12082.png 7 -sketch/person/12083.png 7 -sketch/person/12084.png 7 -sketch/person/12085.png 7 -sketch/person/12086.png 7 -sketch/person/12087.png 7 -sketch/person/12088.png 7 -sketch/person/12089.png 7 -sketch/person/12090.png 7 -sketch/person/12091.png 7 -sketch/person/12092.png 7 -sketch/person/12093.png 7 -sketch/person/12094.png 7 -sketch/person/12095.png 7 -sketch/person/12096.png 7 -sketch/person/12097.png 7 diff --git a/data/pacs_split/sketch_test_kfold.txt b/data/pacs_split/sketch_test_kfold.txt deleted file mode 100644 index c27970b06..000000000 --- a/data/pacs_split/sketch_test_kfold.txt +++ /dev/null @@ -1,3929 +0,0 @@ -sketch/dog/n02103406_343-1.png 1 -sketch/dog/n02103406_343-2.png 1 -sketch/dog/n02103406_343-3.png 1 -sketch/dog/n02103406_343-4.png 1 -sketch/dog/n02103406_343-5.png 1 -sketch/dog/n02103406_343-6.png 1 -sketch/dog/n02103406_343-7.png 1 -sketch/dog/n02103406_343-8.png 1 -sketch/dog/n02103406_343-9.png 1 -sketch/dog/n02103406_346-1.png 1 -sketch/dog/n02103406_346-2.png 1 -sketch/dog/n02103406_346-3.png 1 -sketch/dog/n02103406_346-4.png 1 -sketch/dog/n02103406_346-5.png 1 -sketch/dog/n02103406_346-6.png 1 -sketch/dog/n02103406_346-7.png 1 -sketch/dog/n02103406_371-1.png 1 -sketch/dog/n02103406_371-2.png 1 -sketch/dog/n02103406_371-3.png 1 -sketch/dog/n02103406_371-4.png 1 -sketch/dog/n02103406_371-5.png 1 -sketch/dog/n02103406_371-6.png 1 -sketch/dog/n02103406_371-7.png 1 -sketch/dog/n02103406_371-8.png 1 -sketch/dog/n02103406_371-9.png 1 -sketch/dog/n02103406_371-10.png 1 -sketch/dog/n02103406_371-11.png 1 -sketch/dog/n02103406_651-1.png 1 -sketch/dog/n02103406_651-2.png 1 -sketch/dog/n02103406_651-3.png 1 -sketch/dog/n02103406_651-4.png 1 -sketch/dog/n02103406_651-5.png 1 -sketch/dog/n02103406_651-6.png 1 -sketch/dog/n02103406_651-7.png 1 -sketch/dog/n02103406_865-1.png 1 -sketch/dog/n02103406_865-2.png 1 -sketch/dog/n02103406_865-3.png 1 -sketch/dog/n02103406_865-4.png 1 -sketch/dog/n02103406_865-5.png 1 -sketch/dog/n02103406_865-6.png 1 -sketch/dog/n02103406_865-7.png 1 -sketch/dog/n02103406_865-8.png 1 -sketch/dog/n02103406_865-9.png 1 -sketch/dog/n02103406_865-10.png 1 -sketch/dog/n02103406_865-11.png 1 -sketch/dog/n02103406_936-1.png 1 -sketch/dog/n02103406_936-2.png 1 -sketch/dog/n02103406_936-3.png 1 -sketch/dog/n02103406_936-4.png 1 -sketch/dog/n02103406_936-5.png 1 -sketch/dog/n02103406_936-6.png 1 -sketch/dog/n02103406_936-7.png 1 -sketch/dog/n02103406_936-8.png 1 -sketch/dog/n02103406_936-9.png 1 -sketch/dog/n02103406_995-1.png 1 -sketch/dog/n02103406_995-2.png 1 -sketch/dog/n02103406_995-3.png 1 -sketch/dog/n02103406_995-4.png 1 -sketch/dog/n02103406_995-5.png 1 -sketch/dog/n02103406_995-6.png 1 -sketch/dog/n02103406_1011-1.png 1 -sketch/dog/n02103406_1011-2.png 1 -sketch/dog/n02103406_1011-3.png 1 -sketch/dog/n02103406_1011-4.png 1 -sketch/dog/n02103406_1011-5.png 1 -sketch/dog/n02103406_1138-1.png 1 -sketch/dog/n02103406_1138-2.png 1 -sketch/dog/n02103406_1138-3.png 1 -sketch/dog/n02103406_1138-4.png 1 -sketch/dog/n02103406_1138-5.png 1 -sketch/dog/n02103406_1138-6.png 1 -sketch/dog/n02103406_1138-7.png 1 -sketch/dog/n02103406_1138-8.png 1 -sketch/dog/n02103406_1170-1.png 1 -sketch/dog/n02103406_1170-2.png 1 -sketch/dog/n02103406_1170-3.png 1 -sketch/dog/n02103406_1170-4.png 1 -sketch/dog/n02103406_1170-5.png 1 -sketch/dog/n02103406_1170-6.png 1 -sketch/dog/n02103406_1247-1.png 1 -sketch/dog/n02103406_1247-2.png 1 -sketch/dog/n02103406_1247-3.png 1 -sketch/dog/n02103406_1247-4.png 1 -sketch/dog/n02103406_1247-5.png 1 -sketch/dog/n02103406_1247-6.png 1 -sketch/dog/n02103406_1247-7.png 1 -sketch/dog/n02103406_1599-1.png 1 -sketch/dog/n02103406_1599-2.png 1 -sketch/dog/n02103406_1599-3.png 1 -sketch/dog/n02103406_1599-4.png 1 -sketch/dog/n02103406_1599-5.png 1 -sketch/dog/n02103406_1754-1.png 1 -sketch/dog/n02103406_1754-2.png 1 -sketch/dog/n02103406_1754-3.png 1 -sketch/dog/n02103406_1754-4.png 1 -sketch/dog/n02103406_1754-5.png 1 -sketch/dog/n02103406_2209-1.png 1 -sketch/dog/n02103406_2209-2.png 1 -sketch/dog/n02103406_2209-3.png 1 -sketch/dog/n02103406_2209-4.png 1 -sketch/dog/n02103406_2209-5.png 1 -sketch/dog/n02103406_2209-6.png 1 -sketch/dog/n02103406_2209-7.png 1 -sketch/dog/n02103406_2209-8.png 1 -sketch/dog/n02103406_2706-1.png 1 -sketch/dog/n02103406_2706-2.png 1 -sketch/dog/n02103406_2706-3.png 1 -sketch/dog/n02103406_2706-4.png 1 -sketch/dog/n02103406_2706-5.png 1 -sketch/dog/n02103406_2706-6.png 1 -sketch/dog/n02103406_2706-7.png 1 -sketch/dog/n02103406_2706-8.png 1 -sketch/dog/n02103406_2706-9.png 1 -sketch/dog/n02103406_2954-1.png 1 -sketch/dog/n02103406_2954-2.png 1 -sketch/dog/n02103406_2954-3.png 1 -sketch/dog/n02103406_2954-4.png 1 -sketch/dog/n02103406_2954-5.png 1 -sketch/dog/n02103406_2954-6.png 1 -sketch/dog/n02103406_2976-1.png 1 -sketch/dog/n02103406_2976-2.png 1 -sketch/dog/n02103406_2976-3.png 1 -sketch/dog/n02103406_2976-4.png 1 -sketch/dog/n02103406_2976-5.png 1 -sketch/dog/n02103406_2976-6.png 1 -sketch/dog/n02103406_2976-7.png 1 -sketch/dog/n02103406_3056-1.png 1 -sketch/dog/n02103406_3056-2.png 1 -sketch/dog/n02103406_3056-3.png 1 -sketch/dog/n02103406_3056-4.png 1 -sketch/dog/n02103406_3056-5.png 1 -sketch/dog/n02103406_3108-1.png 1 -sketch/dog/n02103406_3108-2.png 1 -sketch/dog/n02103406_3108-3.png 1 -sketch/dog/n02103406_3108-4.png 1 -sketch/dog/n02103406_3108-5.png 1 -sketch/dog/n02103406_3108-6.png 1 -sketch/dog/n02103406_3132-1.png 1 -sketch/dog/n02103406_3132-2.png 1 -sketch/dog/n02103406_3132-3.png 1 -sketch/dog/n02103406_3132-4.png 1 -sketch/dog/n02103406_3132-5.png 1 -sketch/dog/n02103406_3132-6.png 1 -sketch/dog/n02103406_3132-7.png 1 -sketch/dog/n02103406_3255-1.png 1 -sketch/dog/n02103406_3255-2.png 1 -sketch/dog/n02103406_3255-3.png 1 -sketch/dog/n02103406_3255-4.png 1 -sketch/dog/n02103406_3255-5.png 1 -sketch/dog/n02103406_3255-6.png 1 -sketch/dog/n02103406_3255-7.png 1 -sketch/dog/n02103406_3255-8.png 1 -sketch/dog/n02103406_3255-9.png 1 -sketch/dog/n02103406_3255-10.png 1 -sketch/dog/n02103406_3255-11.png 1 -sketch/dog/n02103406_3299-1.png 1 -sketch/dog/n02103406_3299-2.png 1 -sketch/dog/n02103406_3299-3.png 1 -sketch/dog/n02103406_3299-4.png 1 -sketch/dog/n02103406_3299-5.png 1 -sketch/dog/n02103406_3299-6.png 1 -sketch/dog/n02103406_3299-7.png 1 -sketch/dog/n02103406_3299-8.png 1 -sketch/dog/n02103406_3299-9.png 1 -sketch/dog/n02103406_3326-1.png 1 -sketch/dog/n02103406_3326-2.png 1 -sketch/dog/n02103406_3326-3.png 1 -sketch/dog/n02103406_3326-4.png 1 -sketch/dog/n02103406_3326-5.png 1 -sketch/dog/n02103406_3326-6.png 1 -sketch/dog/n02103406_3326-7.png 1 -sketch/dog/n02103406_3326-8.png 1 -sketch/dog/n02103406_3326-9.png 1 -sketch/dog/n02103406_3326-10.png 1 -sketch/dog/n02103406_3326-11.png 1 -sketch/dog/n02103406_3326-12.png 1 -sketch/dog/n02103406_3326-13.png 1 -sketch/dog/n02103406_3401-1.png 1 -sketch/dog/n02103406_3401-2.png 1 -sketch/dog/n02103406_3401-3.png 1 -sketch/dog/n02103406_3401-4.png 1 -sketch/dog/n02103406_3401-5.png 1 -sketch/dog/n02103406_3401-6.png 1 -sketch/dog/n02103406_3538-1.png 1 -sketch/dog/n02103406_3538-2.png 1 -sketch/dog/n02103406_3538-3.png 1 -sketch/dog/n02103406_3538-4.png 1 -sketch/dog/n02103406_3538-5.png 1 -sketch/dog/n02103406_3538-6.png 1 -sketch/dog/n02103406_3538-7.png 1 -sketch/dog/n02103406_3743-1.png 1 -sketch/dog/n02103406_3743-2.png 1 -sketch/dog/n02103406_3743-3.png 1 -sketch/dog/n02103406_3743-4.png 1 -sketch/dog/n02103406_3743-5.png 1 -sketch/dog/n02103406_3743-6.png 1 -sketch/dog/n02103406_3743-7.png 1 -sketch/dog/n02103406_3743-8.png 1 -sketch/dog/n02103406_3743-9.png 1 -sketch/dog/n02103406_3743-10.png 1 -sketch/dog/n02103406_3750-1.png 1 -sketch/dog/n02103406_3750-2.png 1 -sketch/dog/n02103406_3750-3.png 1 -sketch/dog/n02103406_3750-4.png 1 -sketch/dog/n02103406_3750-5.png 1 -sketch/dog/n02103406_3750-6.png 1 -sketch/dog/n02103406_3964-1.png 1 -sketch/dog/n02103406_3964-2.png 1 -sketch/dog/n02103406_3964-3.png 1 -sketch/dog/n02103406_3964-4.png 1 -sketch/dog/n02103406_3964-5.png 1 -sketch/dog/n02103406_4068-1.png 1 -sketch/dog/n02103406_4068-2.png 1 -sketch/dog/n02103406_4068-3.png 1 -sketch/dog/n02103406_4068-4.png 1 -sketch/dog/n02103406_4068-5.png 1 -sketch/dog/n02103406_4068-6.png 1 -sketch/dog/n02103406_4068-7.png 1 -sketch/dog/n02103406_4068-8.png 1 -sketch/dog/n02103406_4068-9.png 1 -sketch/dog/n02103406_4068-10.png 1 -sketch/dog/n02103406_4068-11.png 1 -sketch/dog/n02103406_4068-12.png 1 -sketch/dog/n02103406_4582-1.png 1 -sketch/dog/n02103406_4582-2.png 1 -sketch/dog/n02103406_4582-3.png 1 -sketch/dog/n02103406_4582-4.png 1 -sketch/dog/n02103406_4582-5.png 1 -sketch/dog/n02103406_4849-1.png 1 -sketch/dog/n02103406_4849-2.png 1 -sketch/dog/n02103406_4849-3.png 1 -sketch/dog/n02103406_4849-4.png 1 -sketch/dog/n02103406_4849-5.png 1 -sketch/dog/n02103406_4849-6.png 1 -sketch/dog/n02103406_4849-7.png 1 -sketch/dog/n02103406_4849-8.png 1 -sketch/dog/n02103406_4849-9.png 1 -sketch/dog/n02103406_4916-1.png 1 -sketch/dog/n02103406_4916-2.png 1 -sketch/dog/n02103406_4916-3.png 1 -sketch/dog/n02103406_4916-4.png 1 -sketch/dog/n02103406_4916-5.png 1 -sketch/dog/n02103406_5035-1.png 1 -sketch/dog/n02103406_5035-2.png 1 -sketch/dog/n02103406_5035-3.png 1 -sketch/dog/n02103406_5035-4.png 1 -sketch/dog/n02103406_5035-5.png 1 -sketch/dog/n02103406_5035-6.png 1 -sketch/dog/n02103406_5216-1.png 1 -sketch/dog/n02103406_5216-2.png 1 -sketch/dog/n02103406_5216-3.png 1 -sketch/dog/n02103406_5216-4.png 1 -sketch/dog/n02103406_5216-5.png 1 -sketch/dog/n02103406_5224-1.png 1 -sketch/dog/n02103406_5224-2.png 1 -sketch/dog/n02103406_5224-3.png 1 -sketch/dog/n02103406_5224-4.png 1 -sketch/dog/n02103406_5224-5.png 1 -sketch/dog/n02103406_5224-6.png 1 -sketch/dog/n02103406_5456-1.png 1 -sketch/dog/n02103406_5456-2.png 1 -sketch/dog/n02103406_5456-3.png 1 -sketch/dog/n02103406_5456-4.png 1 -sketch/dog/n02103406_5456-5.png 1 -sketch/dog/n02103406_5456-6.png 1 -sketch/dog/n02103406_5456-7.png 1 -sketch/dog/n02103406_5456-8.png 1 -sketch/dog/n02103406_5456-9.png 1 -sketch/dog/n02103406_5505-1.png 1 -sketch/dog/n02103406_5505-2.png 1 -sketch/dog/n02103406_5505-3.png 1 -sketch/dog/n02103406_5505-4.png 1 -sketch/dog/n02103406_5505-5.png 1 -sketch/dog/n02103406_5505-6.png 1 -sketch/dog/n02103406_5563-1.png 1 -sketch/dog/n02103406_5563-2.png 1 -sketch/dog/n02103406_5563-3.png 1 -sketch/dog/n02103406_5563-4.png 1 -sketch/dog/n02103406_5563-5.png 1 -sketch/dog/n02103406_5563-6.png 1 -sketch/dog/n02103406_5563-7.png 1 -sketch/dog/n02103406_5601-1.png 1 -sketch/dog/n02103406_5601-2.png 1 -sketch/dog/n02103406_5601-3.png 1 -sketch/dog/n02103406_5601-4.png 1 -sketch/dog/n02103406_5601-5.png 1 -sketch/dog/n02103406_5601-6.png 1 -sketch/dog/n02103406_6274-1.png 1 -sketch/dog/n02103406_6274-2.png 1 -sketch/dog/n02103406_6274-3.png 1 -sketch/dog/n02103406_6274-4.png 1 -sketch/dog/n02103406_6274-5.png 1 -sketch/dog/n02103406_6461-1.png 1 -sketch/dog/n02103406_6461-2.png 1 -sketch/dog/n02103406_6461-3.png 1 -sketch/dog/n02103406_6461-4.png 1 -sketch/dog/n02103406_6461-5.png 1 -sketch/dog/n02103406_6461-6.png 1 -sketch/dog/n02103406_6461-7.png 1 -sketch/dog/n02103406_6530-1.png 1 -sketch/dog/n02103406_6530-2.png 1 -sketch/dog/n02103406_6530-3.png 1 -sketch/dog/n02103406_6530-4.png 1 -sketch/dog/n02103406_6530-5.png 1 -sketch/dog/n02103406_6530-6.png 1 -sketch/dog/n02103406_6530-7.png 1 -sketch/dog/n02103406_6688-1.png 1 -sketch/dog/n02103406_6688-2.png 1 -sketch/dog/n02103406_6688-3.png 1 -sketch/dog/n02103406_6688-4.png 1 -sketch/dog/n02103406_6688-5.png 1 -sketch/dog/n02103406_6688-6.png 1 -sketch/dog/n02103406_6688-7.png 1 -sketch/dog/n02103406_6688-8.png 1 -sketch/dog/n02103406_6688-9.png 1 -sketch/dog/n02103406_6852-1.png 1 -sketch/dog/n02103406_6852-2.png 1 -sketch/dog/n02103406_6852-3.png 1 -sketch/dog/n02103406_6852-4.png 1 -sketch/dog/n02103406_6852-5.png 1 -sketch/dog/n02103406_6852-6.png 1 -sketch/dog/n02103406_6852-7.png 1 -sketch/dog/n02103406_6852-8.png 1 -sketch/dog/n02103406_6852-9.png 1 -sketch/dog/n02103406_6857-1.png 1 -sketch/dog/n02103406_6857-2.png 1 -sketch/dog/n02103406_6857-3.png 1 -sketch/dog/n02103406_6857-4.png 1 -sketch/dog/n02103406_6857-5.png 1 -sketch/dog/n02103406_6857-6.png 1 -sketch/dog/n02103406_6857-7.png 1 -sketch/dog/n02103406_6857-8.png 1 -sketch/dog/n02103406_7201-1.png 1 -sketch/dog/n02103406_7201-2.png 1 -sketch/dog/n02103406_7201-3.png 1 -sketch/dog/n02103406_7201-4.png 1 -sketch/dog/n02103406_7201-5.png 1 -sketch/dog/n02103406_7201-6.png 1 -sketch/dog/n02103406_7368-1.png 1 -sketch/dog/n02103406_7368-2.png 1 -sketch/dog/n02103406_7368-3.png 1 -sketch/dog/n02103406_7368-4.png 1 -sketch/dog/n02103406_7368-5.png 1 -sketch/dog/n02103406_7368-6.png 1 -sketch/dog/n02103406_7368-7.png 1 -sketch/dog/n02103406_7368-8.png 1 -sketch/dog/n02103406_7368-9.png 1 -sketch/dog/n02103406_7368-10.png 1 -sketch/dog/n02103406_7521-1.png 1 -sketch/dog/n02103406_7521-2.png 1 -sketch/dog/n02103406_7521-3.png 1 -sketch/dog/n02103406_7521-4.png 1 -sketch/dog/n02103406_7521-5.png 1 -sketch/dog/n02103406_7521-6.png 1 -sketch/dog/n02103406_7521-7.png 1 -sketch/dog/n02103406_7521-8.png 1 -sketch/dog/n02103406_7708-1.png 1 -sketch/dog/n02103406_7708-2.png 1 -sketch/dog/n02103406_7708-3.png 1 -sketch/dog/n02103406_7708-4.png 1 -sketch/dog/n02103406_7708-5.png 1 -sketch/dog/n02103406_7708-6.png 1 -sketch/dog/n02103406_7708-7.png 1 -sketch/dog/n02103406_7708-8.png 1 -sketch/dog/n02103406_7708-9.png 1 -sketch/dog/n02103406_7708-10.png 1 -sketch/dog/n02103406_8004-1.png 1 -sketch/dog/n02103406_8004-2.png 1 -sketch/dog/n02103406_8004-3.png 1 -sketch/dog/n02103406_8004-4.png 1 -sketch/dog/n02103406_8004-5.png 1 -sketch/dog/n02103406_8004-6.png 1 -sketch/dog/n02103406_8004-7.png 1 -sketch/dog/n02103406_8004-8.png 1 -sketch/dog/n02103406_8004-9.png 1 -sketch/dog/n02103406_8280-1.png 1 -sketch/dog/n02103406_8280-2.png 1 -sketch/dog/n02103406_8280-3.png 1 -sketch/dog/n02103406_8280-4.png 1 -sketch/dog/n02103406_8280-5.png 1 -sketch/dog/n02103406_8280-6.png 1 -sketch/dog/n02103406_8362-1.png 1 -sketch/dog/n02103406_8362-2.png 1 -sketch/dog/n02103406_8362-3.png 1 -sketch/dog/n02103406_8362-4.png 1 -sketch/dog/n02103406_8362-5.png 1 -sketch/dog/n02103406_8362-6.png 1 -sketch/dog/n02103406_8362-7.png 1 -sketch/dog/n02103406_8362-8.png 1 -sketch/dog/n02103406_8362-9.png 1 -sketch/dog/n02103406_8362-10.png 1 -sketch/dog/n02103406_8421-1.png 1 -sketch/dog/n02103406_8421-2.png 1 -sketch/dog/n02103406_8421-3.png 1 -sketch/dog/n02103406_8421-4.png 1 -sketch/dog/n02103406_8421-5.png 1 -sketch/dog/n02103406_8421-6.png 1 -sketch/dog/n02103406_13049-1.png 1 -sketch/dog/n02103406_13049-2.png 1 -sketch/dog/n02103406_13049-3.png 1 -sketch/dog/n02103406_13049-4.png 1 -sketch/dog/n02103406_13049-5.png 1 -sketch/dog/n02103406_13049-6.png 1 -sketch/dog/n02106662_466-1.png 1 -sketch/dog/n02106662_466-2.png 1 -sketch/dog/n02106662_466-3.png 1 -sketch/dog/n02106662_466-4.png 1 -sketch/dog/n02106662_466-5.png 1 -sketch/dog/n02106662_466-6.png 1 -sketch/dog/n02106662_466-7.png 1 -sketch/dog/n02106662_928-1.png 1 -sketch/dog/n02106662_928-2.png 1 -sketch/dog/n02106662_928-3.png 1 -sketch/dog/n02106662_928-4.png 1 -sketch/dog/n02106662_928-5.png 1 -sketch/dog/n02106662_928-6.png 1 -sketch/dog/n02106662_928-7.png 1 -sketch/dog/n02106662_928-8.png 1 -sketch/dog/n02106662_928-9.png 1 -sketch/dog/n02106662_928-10.png 1 -sketch/dog/n02106662_928-11.png 1 -sketch/dog/n02106662_1874-1.png 1 -sketch/dog/n02106662_1874-2.png 1 -sketch/dog/n02106662_1874-3.png 1 -sketch/dog/n02106662_1874-4.png 1 -sketch/dog/n02106662_1874-5.png 1 -sketch/dog/n02106662_1922-1.png 1 -sketch/dog/n02106662_1922-2.png 1 -sketch/dog/n02106662_1922-3.png 1 -sketch/dog/n02106662_1922-4.png 1 -sketch/dog/n02106662_1922-5.png 1 -sketch/dog/n02106662_2101-1.png 1 -sketch/dog/n02106662_2101-2.png 1 -sketch/dog/n02106662_2101-3.png 1 -sketch/dog/n02106662_2101-4.png 1 -sketch/dog/n02106662_2101-5.png 1 -sketch/dog/n02106662_2101-6.png 1 -sketch/dog/n02106662_2101-7.png 1 -sketch/dog/n02106662_2101-8.png 1 -sketch/dog/n02106662_2101-9.png 1 -sketch/dog/n02106662_2157-1.png 1 -sketch/dog/n02106662_2157-2.png 1 -sketch/dog/n02106662_2157-3.png 1 -sketch/dog/n02106662_2157-4.png 1 -sketch/dog/n02106662_2157-5.png 1 -sketch/dog/n02106662_2157-6.png 1 -sketch/dog/n02106662_2377-1.png 1 -sketch/dog/n02106662_2377-2.png 1 -sketch/dog/n02106662_2377-3.png 1 -sketch/dog/n02106662_2377-4.png 1 -sketch/dog/n02106662_2377-5.png 1 -sketch/dog/n02106662_2377-6.png 1 -sketch/dog/n02106662_2740-1.png 1 -sketch/dog/n02106662_2740-2.png 1 -sketch/dog/n02106662_2740-3.png 1 -sketch/dog/n02106662_2740-4.png 1 -sketch/dog/n02106662_2740-5.png 1 -sketch/dog/n02106662_5001-1.png 1 -sketch/dog/n02106662_5001-2.png 1 -sketch/dog/n02106662_5001-3.png 1 -sketch/dog/n02106662_5001-4.png 1 -sketch/dog/n02106662_5001-5.png 1 -sketch/dog/n02106662_5001-6.png 1 -sketch/dog/n02106662_5001-7.png 1 -sketch/dog/n02106662_7885-1.png 1 -sketch/dog/n02106662_7885-2.png 1 -sketch/dog/n02106662_7885-3.png 1 -sketch/dog/n02106662_7885-4.png 1 -sketch/dog/n02106662_7885-5.png 1 -sketch/dog/n02106662_7960-1.png 1 -sketch/dog/n02106662_7960-2.png 1 -sketch/dog/n02106662_7960-3.png 1 -sketch/dog/n02106662_7960-4.png 1 -sketch/dog/n02106662_7960-5.png 1 -sketch/dog/n02106662_7960-6.png 1 -sketch/dog/n02106662_8511-1.png 1 -sketch/dog/n02106662_8511-2.png 1 -sketch/dog/n02106662_8511-3.png 1 -sketch/dog/n02106662_8511-4.png 1 -sketch/dog/n02106662_8511-5.png 1 -sketch/dog/n02106662_8511-6.png 1 -sketch/dog/n02106662_8870-1.png 1 -sketch/dog/n02106662_8870-2.png 1 -sketch/dog/n02106662_8870-3.png 1 -sketch/dog/n02106662_8870-4.png 1 -sketch/dog/n02106662_8870-5.png 1 -sketch/dog/n02106662_8870-6.png 1 -sketch/dog/n02106662_8870-7.png 1 -sketch/dog/n02106662_10406-1.png 1 -sketch/dog/n02106662_10406-2.png 1 -sketch/dog/n02106662_10406-3.png 1 -sketch/dog/n02106662_10406-4.png 1 -sketch/dog/n02106662_10406-5.png 1 -sketch/dog/n02106662_10406-6.png 1 -sketch/dog/n02106662_11133-1.png 1 -sketch/dog/n02106662_11133-2.png 1 -sketch/dog/n02106662_11133-3.png 1 -sketch/dog/n02106662_11133-4.png 1 -sketch/dog/n02106662_11133-5.png 1 -sketch/dog/n02106662_13178-1.png 1 -sketch/dog/n02106662_13178-2.png 1 -sketch/dog/n02106662_13178-3.png 1 -sketch/dog/n02106662_13178-4.png 1 -sketch/dog/n02106662_13178-5.png 1 -sketch/dog/n02106662_13912-1.png 1 -sketch/dog/n02106662_13912-2.png 1 -sketch/dog/n02106662_13912-3.png 1 -sketch/dog/n02106662_13912-4.png 1 -sketch/dog/n02106662_13912-5.png 1 -sketch/dog/n02106662_15858-1.png 1 -sketch/dog/n02106662_15858-2.png 1 -sketch/dog/n02106662_15858-3.png 1 -sketch/dog/n02106662_15858-4.png 1 -sketch/dog/n02106662_15858-5.png 1 -sketch/dog/n02106662_15858-6.png 1 -sketch/dog/n02106662_18402-1.png 1 -sketch/dog/n02106662_18402-2.png 1 -sketch/dog/n02106662_18402-3.png 1 -sketch/dog/n02106662_18402-4.png 1 -sketch/dog/n02106662_18402-5.png 1 -sketch/dog/n02106662_18405-1.png 1 -sketch/dog/n02106662_18405-2.png 1 -sketch/dog/n02106662_18405-3.png 1 -sketch/dog/n02106662_18405-4.png 1 -sketch/dog/n02106662_18405-5.png 1 -sketch/dog/n02106662_18922-1.png 1 -sketch/dog/n02106662_18922-2.png 1 -sketch/dog/n02106662_18922-3.png 1 -sketch/dog/n02106662_18922-4.png 1 -sketch/dog/n02106662_18922-5.png 1 -sketch/dog/n02106662_18922-6.png 1 -sketch/dog/n02106662_18922-7.png 1 -sketch/dog/n02106662_18922-8.png 1 -sketch/dog/n02106662_18922-9.png 1 -sketch/dog/n02106662_18922-10.png 1 -sketch/dog/n02106662_18922-11.png 1 -sketch/dog/n02106662_18953-1.png 1 -sketch/dog/n02106662_18953-2.png 1 -sketch/dog/n02106662_18953-3.png 1 -sketch/dog/n02106662_18953-4.png 1 -sketch/dog/n02106662_18953-5.png 1 -sketch/dog/n02106662_18953-6.png 1 -sketch/dog/n02106662_18953-7.png 1 -sketch/dog/n02106662_24019-1.png 1 -sketch/dog/n02106662_24019-2.png 1 -sketch/dog/n02106662_24019-3.png 1 -sketch/dog/n02106662_24019-4.png 1 -sketch/dog/n02106662_24019-5.png 1 -sketch/dog/n02106662_24019-6.png 1 -sketch/dog/n02106662_24019-7.png 1 -sketch/dog/n02106662_24019-8.png 1 -sketch/dog/n02106662_24577-1.png 1 -sketch/dog/n02106662_24577-2.png 1 -sketch/dog/n02106662_24577-3.png 1 -sketch/dog/n02106662_24577-4.png 1 -sketch/dog/n02106662_24577-5.png 1 -sketch/dog/n02106662_24786-1.png 1 -sketch/dog/n02106662_24786-2.png 1 -sketch/dog/n02106662_24786-3.png 1 -sketch/dog/n02106662_24786-4.png 1 -sketch/dog/n02106662_24786-5.png 1 -sketch/dog/n02106662_24786-6.png 1 -sketch/dog/n02106662_24786-7.png 1 -sketch/dog/n02106662_25917-1.png 1 -sketch/dog/n02106662_25917-2.png 1 -sketch/dog/n02106662_25917-3.png 1 -sketch/dog/n02106662_25917-4.png 1 -sketch/dog/n02106662_25917-5.png 1 -sketch/dog/n02106662_25917-6.png 1 -sketch/dog/n02106662_25917-7.png 1 -sketch/dog/n02106662_26549-1.png 1 -sketch/dog/n02106662_26549-2.png 1 -sketch/dog/n02106662_26549-3.png 1 -sketch/dog/n02106662_26549-4.png 1 -sketch/dog/n02106662_26549-5.png 1 -sketch/dog/n02106662_26549-6.png 1 -sketch/dog/n02106662_27393-1.png 1 -sketch/dog/n02106662_27393-2.png 1 -sketch/dog/n02106662_27393-3.png 1 -sketch/dog/n02106662_27393-4.png 1 -sketch/dog/n02106662_27393-5.png 1 -sketch/dog/n02109525_704-1.png 1 -sketch/dog/n02109525_704-2.png 1 -sketch/dog/n02109525_704-3.png 1 -sketch/dog/n02109525_704-4.png 1 -sketch/dog/n02109525_704-5.png 1 -sketch/dog/n02109525_704-6.png 1 -sketch/dog/n02109525_1893-1.png 1 -sketch/dog/n02109525_1893-2.png 1 -sketch/dog/n02109525_1893-3.png 1 -sketch/dog/n02109525_1893-4.png 1 -sketch/dog/n02109525_1893-5.png 1 -sketch/dog/n02109525_1893-6.png 1 -sketch/dog/n02109525_1893-7.png 1 -sketch/dog/n02109525_3202-1.png 1 -sketch/dog/n02109525_3202-2.png 1 -sketch/dog/n02109525_3202-3.png 1 -sketch/dog/n02109525_3202-4.png 1 -sketch/dog/n02109525_3202-5.png 1 -sketch/dog/n02109525_3202-6.png 1 -sketch/dog/n02109525_3782-1.png 1 -sketch/dog/n02109525_3782-2.png 1 -sketch/dog/n02109525_3782-3.png 1 -sketch/dog/n02109525_3782-4.png 1 -sketch/dog/n02109525_3782-5.png 1 -sketch/dog/n02109525_3782-6.png 1 -sketch/dog/n02109525_3782-7.png 1 -sketch/dog/n02109525_3782-8.png 1 -sketch/dog/n02109525_3782-9.png 1 -sketch/dog/n02109525_3782-10.png 1 -sketch/dog/n02109525_5013-1.png 1 -sketch/dog/n02109525_5013-2.png 1 -sketch/dog/n02109525_5013-3.png 1 -sketch/dog/n02109525_5013-4.png 1 -sketch/dog/n02109525_5013-5.png 1 -sketch/dog/n02109525_5013-6.png 1 -sketch/dog/n02109525_5583-1.png 1 -sketch/dog/n02109525_5583-2.png 1 -sketch/dog/n02109525_5583-3.png 1 -sketch/dog/n02109525_5583-4.png 1 -sketch/dog/n02109525_5583-5.png 1 -sketch/dog/n02109525_5583-6.png 1 -sketch/dog/n02109525_5583-7.png 1 -sketch/dog/n02109525_5966-1.png 1 -sketch/dog/n02109525_5966-2.png 1 -sketch/dog/n02109525_5966-3.png 1 -sketch/dog/n02109525_5966-4.png 1 -sketch/dog/n02109525_5966-5.png 1 -sketch/dog/n02109525_6693-1.png 1 -sketch/dog/n02109525_6693-2.png 1 -sketch/dog/n02109525_6693-3.png 1 -sketch/dog/n02109525_6693-4.png 1 -sketch/dog/n02109525_6693-5.png 1 -sketch/dog/n02109525_7874-1.png 1 -sketch/dog/n02109525_7874-2.png 1 -sketch/dog/n02109525_7874-3.png 1 -sketch/dog/n02109525_7874-4.png 1 -sketch/dog/n02109525_7874-5.png 1 -sketch/dog/n02109525_7874-6.png 1 -sketch/dog/n02109525_8211-1.png 1 -sketch/dog/n02109525_8211-2.png 1 -sketch/dog/n02109525_8211-3.png 1 -sketch/dog/n02109525_8211-4.png 1 -sketch/dog/n02109525_8211-5.png 1 -sketch/dog/n02109525_8457-1.png 1 -sketch/dog/n02109525_8457-2.png 1 -sketch/dog/n02109525_8457-3.png 1 -sketch/dog/n02109525_8457-4.png 1 -sketch/dog/n02109525_8457-5.png 1 -sketch/dog/n02109525_9037-1.png 1 -sketch/dog/n02109525_9037-2.png 1 -sketch/dog/n02109525_9037-3.png 1 -sketch/dog/n02109525_9037-4.png 1 -sketch/dog/n02109525_9037-5.png 1 -sketch/dog/n02109525_9037-6.png 1 -sketch/dog/n02109525_9037-7.png 1 -sketch/dog/n02109525_10297-1.png 1 -sketch/dog/n02109525_10297-2.png 1 -sketch/dog/n02109525_10297-3.png 1 -sketch/dog/n02109525_10297-4.png 1 -sketch/dog/n02109525_10297-5.png 1 -sketch/dog/n02109525_11444-1.png 1 -sketch/dog/n02109525_11444-2.png 1 -sketch/dog/n02109525_11444-3.png 1 -sketch/dog/n02109525_11444-4.png 1 -sketch/dog/n02109525_11444-5.png 1 -sketch/dog/n02109525_12875-1.png 1 -sketch/dog/n02109525_12875-2.png 1 -sketch/dog/n02109525_12875-3.png 1 -sketch/dog/n02109525_12875-4.png 1 -sketch/dog/n02109525_12875-5.png 1 -sketch/dog/n02109525_12875-6.png 1 -sketch/dog/n02109525_13700-1.png 1 -sketch/dog/n02109525_13700-2.png 1 -sketch/dog/n02109525_13700-3.png 1 -sketch/dog/n02109525_13700-4.png 1 -sketch/dog/n02109525_13700-5.png 1 -sketch/dog/n02109525_16346-1.png 1 -sketch/dog/n02109525_16346-2.png 1 -sketch/dog/n02109525_16346-3.png 1 -sketch/dog/n02109525_16346-4.png 1 -sketch/dog/n02109525_16346-5.png 1 -sketch/dog/n02109525_16346-6.png 1 -sketch/dog/n02109525_16346-7.png 1 -sketch/dog/n02109525_16346-8.png 1 -sketch/dog/n02109525_18347-1.png 1 -sketch/dog/n02109525_18347-2.png 1 -sketch/dog/n02109525_18347-3.png 1 -sketch/dog/n02109525_18347-4.png 1 -sketch/dog/n02109525_18347-5.png 1 -sketch/dog/n02109525_18347-6.png 1 -sketch/dog/n02109525_18347-7.png 1 -sketch/dog/5281.png 1 -sketch/dog/5282.png 1 -sketch/dog/5283.png 1 -sketch/dog/5284.png 1 -sketch/dog/5285.png 1 -sketch/dog/5286.png 1 -sketch/dog/5287.png 1 -sketch/dog/5288.png 1 -sketch/dog/5289.png 1 -sketch/dog/5290.png 1 -sketch/dog/5291.png 1 -sketch/dog/5292.png 1 -sketch/dog/5293.png 1 -sketch/dog/5294.png 1 -sketch/dog/5295.png 1 -sketch/dog/5296.png 1 -sketch/dog/5297.png 1 -sketch/dog/5298.png 1 -sketch/dog/5299.png 1 -sketch/dog/5300.png 1 -sketch/dog/5301.png 1 -sketch/dog/5302.png 1 -sketch/dog/5303.png 1 -sketch/dog/5304.png 1 -sketch/dog/5305.png 1 -sketch/dog/5306.png 1 -sketch/dog/5307.png 1 -sketch/dog/5308.png 1 -sketch/dog/5309.png 1 -sketch/dog/5310.png 1 -sketch/dog/5311.png 1 -sketch/dog/5312.png 1 -sketch/dog/5313.png 1 -sketch/dog/5314.png 1 -sketch/dog/5315.png 1 -sketch/dog/5316.png 1 -sketch/dog/5317.png 1 -sketch/dog/5318.png 1 -sketch/dog/5319.png 1 -sketch/dog/5320.png 1 -sketch/dog/5321.png 1 -sketch/dog/5322.png 1 -sketch/dog/5323.png 1 -sketch/dog/5324.png 1 -sketch/dog/5325.png 1 -sketch/dog/5326.png 1 -sketch/dog/5327.png 1 -sketch/dog/5328.png 1 -sketch/dog/5329.png 1 -sketch/dog/5330.png 1 -sketch/dog/5331.png 1 -sketch/dog/5332.png 1 -sketch/dog/5333.png 1 -sketch/dog/5334.png 1 -sketch/dog/5335.png 1 -sketch/dog/5336.png 1 -sketch/dog/5337.png 1 -sketch/dog/5338.png 1 -sketch/dog/5339.png 1 -sketch/dog/5340.png 1 -sketch/dog/5341.png 1 -sketch/dog/5342.png 1 -sketch/dog/5343.png 1 -sketch/dog/5344.png 1 -sketch/dog/5345.png 1 -sketch/dog/5346.png 1 -sketch/dog/5347.png 1 -sketch/dog/5348.png 1 -sketch/dog/5349.png 1 -sketch/dog/5350.png 1 -sketch/dog/5351.png 1 -sketch/dog/5352.png 1 -sketch/dog/5353.png 1 -sketch/dog/5354.png 1 -sketch/dog/5355.png 1 -sketch/dog/5356.png 1 -sketch/dog/5357.png 1 -sketch/dog/5358.png 1 -sketch/dog/5359.png 1 -sketch/dog/5360.png 1 -sketch/elephant/n02503517_79-1.png 2 -sketch/elephant/n02503517_79-2.png 2 -sketch/elephant/n02503517_79-3.png 2 -sketch/elephant/n02503517_79-4.png 2 -sketch/elephant/n02503517_79-5.png 2 -sketch/elephant/n02503517_86-1.png 2 -sketch/elephant/n02503517_86-2.png 2 -sketch/elephant/n02503517_86-3.png 2 -sketch/elephant/n02503517_86-4.png 2 -sketch/elephant/n02503517_86-5.png 2 -sketch/elephant/n02503517_86-6.png 2 -sketch/elephant/n02503517_184-1.png 2 -sketch/elephant/n02503517_184-2.png 2 -sketch/elephant/n02503517_184-3.png 2 -sketch/elephant/n02503517_184-4.png 2 -sketch/elephant/n02503517_184-5.png 2 -sketch/elephant/n02503517_184-6.png 2 -sketch/elephant/n02503517_184-7.png 2 -sketch/elephant/n02503517_184-8.png 2 -sketch/elephant/n02503517_184-9.png 2 -sketch/elephant/n02503517_194-1.png 2 -sketch/elephant/n02503517_194-2.png 2 -sketch/elephant/n02503517_194-3.png 2 -sketch/elephant/n02503517_194-4.png 2 -sketch/elephant/n02503517_194-5.png 2 -sketch/elephant/n02503517_194-6.png 2 -sketch/elephant/n02503517_311-1.png 2 -sketch/elephant/n02503517_311-2.png 2 -sketch/elephant/n02503517_311-3.png 2 -sketch/elephant/n02503517_311-4.png 2 -sketch/elephant/n02503517_311-5.png 2 -sketch/elephant/n02503517_311-6.png 2 -sketch/elephant/n02503517_564-1.png 2 -sketch/elephant/n02503517_564-2.png 2 -sketch/elephant/n02503517_564-3.png 2 -sketch/elephant/n02503517_564-4.png 2 -sketch/elephant/n02503517_564-5.png 2 -sketch/elephant/n02503517_753-1.png 2 -sketch/elephant/n02503517_753-2.png 2 -sketch/elephant/n02503517_753-3.png 2 -sketch/elephant/n02503517_753-4.png 2 -sketch/elephant/n02503517_753-5.png 2 -sketch/elephant/n02503517_753-6.png 2 -sketch/elephant/n02503517_759-1.png 2 -sketch/elephant/n02503517_759-2.png 2 -sketch/elephant/n02503517_759-3.png 2 -sketch/elephant/n02503517_759-4.png 2 -sketch/elephant/n02503517_759-5.png 2 -sketch/elephant/n02503517_759-6.png 2 -sketch/elephant/n02503517_759-7.png 2 -sketch/elephant/n02503517_759-8.png 2 -sketch/elephant/n02503517_792-1.png 2 -sketch/elephant/n02503517_792-2.png 2 -sketch/elephant/n02503517_792-3.png 2 -sketch/elephant/n02503517_792-4.png 2 -sketch/elephant/n02503517_792-5.png 2 -sketch/elephant/n02503517_1292-1.png 2 -sketch/elephant/n02503517_1292-2.png 2 -sketch/elephant/n02503517_1292-3.png 2 -sketch/elephant/n02503517_1292-4.png 2 -sketch/elephant/n02503517_1292-5.png 2 -sketch/elephant/n02503517_1292-6.png 2 -sketch/elephant/n02503517_1292-7.png 2 -sketch/elephant/n02503517_1359-1.png 2 -sketch/elephant/n02503517_1359-2.png 2 -sketch/elephant/n02503517_1359-3.png 2 -sketch/elephant/n02503517_1359-4.png 2 -sketch/elephant/n02503517_1359-5.png 2 -sketch/elephant/n02503517_1359-6.png 2 -sketch/elephant/n02503517_1383-1.png 2 -sketch/elephant/n02503517_1383-2.png 2 -sketch/elephant/n02503517_1383-3.png 2 -sketch/elephant/n02503517_1383-4.png 2 -sketch/elephant/n02503517_1383-5.png 2 -sketch/elephant/n02503517_1383-6.png 2 -sketch/elephant/n02503517_1415-1.png 2 -sketch/elephant/n02503517_1415-2.png 2 -sketch/elephant/n02503517_1415-3.png 2 -sketch/elephant/n02503517_1415-4.png 2 -sketch/elephant/n02503517_1415-5.png 2 -sketch/elephant/n02503517_1453-1.png 2 -sketch/elephant/n02503517_1453-2.png 2 -sketch/elephant/n02503517_1453-3.png 2 -sketch/elephant/n02503517_1453-4.png 2 -sketch/elephant/n02503517_1453-5.png 2 -sketch/elephant/n02503517_1453-6.png 2 -sketch/elephant/n02503517_1583-1.png 2 -sketch/elephant/n02503517_1583-2.png 2 -sketch/elephant/n02503517_1583-3.png 2 -sketch/elephant/n02503517_1583-4.png 2 -sketch/elephant/n02503517_1583-5.png 2 -sketch/elephant/n02503517_1583-6.png 2 -sketch/elephant/n02503517_1829-1.png 2 -sketch/elephant/n02503517_1829-2.png 2 -sketch/elephant/n02503517_1829-3.png 2 -sketch/elephant/n02503517_1829-4.png 2 -sketch/elephant/n02503517_1829-5.png 2 -sketch/elephant/n02503517_1852-1.png 2 -sketch/elephant/n02503517_1852-2.png 2 -sketch/elephant/n02503517_1852-3.png 2 -sketch/elephant/n02503517_1852-4.png 2 -sketch/elephant/n02503517_1852-5.png 2 -sketch/elephant/n02503517_1963-1.png 2 -sketch/elephant/n02503517_1963-2.png 2 -sketch/elephant/n02503517_1963-3.png 2 -sketch/elephant/n02503517_1963-4.png 2 -sketch/elephant/n02503517_1963-5.png 2 -sketch/elephant/n02503517_1984-1.png 2 -sketch/elephant/n02503517_1984-2.png 2 -sketch/elephant/n02503517_1984-3.png 2 -sketch/elephant/n02503517_1984-4.png 2 -sketch/elephant/n02503517_1984-5.png 2 -sketch/elephant/n02503517_2061-1.png 2 -sketch/elephant/n02503517_2061-2.png 2 -sketch/elephant/n02503517_2061-3.png 2 -sketch/elephant/n02503517_2061-4.png 2 -sketch/elephant/n02503517_2061-5.png 2 -sketch/elephant/n02503517_2444-1.png 2 -sketch/elephant/n02503517_2444-2.png 2 -sketch/elephant/n02503517_2444-3.png 2 -sketch/elephant/n02503517_2444-4.png 2 -sketch/elephant/n02503517_2444-5.png 2 -sketch/elephant/n02503517_2547-1.png 2 -sketch/elephant/n02503517_2547-2.png 2 -sketch/elephant/n02503517_2547-3.png 2 -sketch/elephant/n02503517_2547-4.png 2 -sketch/elephant/n02503517_2547-5.png 2 -sketch/elephant/n02503517_2547-6.png 2 -sketch/elephant/n02503517_2547-7.png 2 -sketch/elephant/n02503517_2547-8.png 2 -sketch/elephant/n02503517_2547-9.png 2 -sketch/elephant/n02503517_2547-10.png 2 -sketch/elephant/n02503517_2802-1.png 2 -sketch/elephant/n02503517_2802-2.png 2 -sketch/elephant/n02503517_2802-3.png 2 -sketch/elephant/n02503517_2802-4.png 2 -sketch/elephant/n02503517_2802-5.png 2 -sketch/elephant/n02503517_2802-6.png 2 -sketch/elephant/n02503517_2804-1.png 2 -sketch/elephant/n02503517_2804-2.png 2 -sketch/elephant/n02503517_2804-3.png 2 -sketch/elephant/n02503517_2804-4.png 2 -sketch/elephant/n02503517_2804-5.png 2 -sketch/elephant/n02503517_2925-1.png 2 -sketch/elephant/n02503517_2925-2.png 2 -sketch/elephant/n02503517_2925-3.png 2 -sketch/elephant/n02503517_2925-4.png 2 -sketch/elephant/n02503517_2925-5.png 2 -sketch/elephant/n02503517_2925-6.png 2 -sketch/elephant/n02503517_2925-7.png 2 -sketch/elephant/n02503517_2925-8.png 2 -sketch/elephant/n02503517_2925-9.png 2 -sketch/elephant/n02503517_2925-10.png 2 -sketch/elephant/n02503517_2993-1.png 2 -sketch/elephant/n02503517_2993-2.png 2 -sketch/elephant/n02503517_2993-3.png 2 -sketch/elephant/n02503517_2993-4.png 2 -sketch/elephant/n02503517_2993-5.png 2 -sketch/elephant/n02503517_2993-6.png 2 -sketch/elephant/n02503517_2993-7.png 2 -sketch/elephant/n02503517_2993-8.png 2 -sketch/elephant/n02503517_2993-9.png 2 -sketch/elephant/n02503517_2993-10.png 2 -sketch/elephant/n02503517_3037-1.png 2 -sketch/elephant/n02503517_3037-2.png 2 -sketch/elephant/n02503517_3037-3.png 2 -sketch/elephant/n02503517_3037-4.png 2 -sketch/elephant/n02503517_3037-5.png 2 -sketch/elephant/n02503517_3037-6.png 2 -sketch/elephant/n02503517_3037-7.png 2 -sketch/elephant/n02503517_3037-8.png 2 -sketch/elephant/n02503517_3072-1.png 2 -sketch/elephant/n02503517_3072-2.png 2 -sketch/elephant/n02503517_3072-3.png 2 -sketch/elephant/n02503517_3072-4.png 2 -sketch/elephant/n02503517_3072-5.png 2 -sketch/elephant/n02503517_3072-6.png 2 -sketch/elephant/n02503517_3108-1.png 2 -sketch/elephant/n02503517_3108-2.png 2 -sketch/elephant/n02503517_3108-3.png 2 -sketch/elephant/n02503517_3108-4.png 2 -sketch/elephant/n02503517_3108-5.png 2 -sketch/elephant/n02503517_3108-6.png 2 -sketch/elephant/n02503517_3108-7.png 2 -sketch/elephant/n02503517_3108-8.png 2 -sketch/elephant/n02503517_3108-9.png 2 -sketch/elephant/n02503517_3799-1.png 2 -sketch/elephant/n02503517_3799-2.png 2 -sketch/elephant/n02503517_3799-3.png 2 -sketch/elephant/n02503517_3799-4.png 2 -sketch/elephant/n02503517_3799-5.png 2 -sketch/elephant/n02503517_3803-1.png 2 -sketch/elephant/n02503517_3803-2.png 2 -sketch/elephant/n02503517_3803-3.png 2 -sketch/elephant/n02503517_3803-4.png 2 -sketch/elephant/n02503517_3803-5.png 2 -sketch/elephant/n02503517_3803-6.png 2 -sketch/elephant/n02503517_3808-1.png 2 -sketch/elephant/n02503517_3808-2.png 2 -sketch/elephant/n02503517_3808-3.png 2 -sketch/elephant/n02503517_3808-4.png 2 -sketch/elephant/n02503517_3808-5.png 2 -sketch/elephant/n02503517_3808-6.png 2 -sketch/elephant/n02503517_3808-7.png 2 -sketch/elephant/n02503517_3808-8.png 2 -sketch/elephant/n02503517_3808-9.png 2 -sketch/elephant/n02503517_3808-10.png 2 -sketch/elephant/n02503517_3879-1.png 2 -sketch/elephant/n02503517_3879-2.png 2 -sketch/elephant/n02503517_3879-3.png 2 -sketch/elephant/n02503517_3879-4.png 2 -sketch/elephant/n02503517_3879-5.png 2 -sketch/elephant/n02503517_3879-6.png 2 -sketch/elephant/n02503517_3879-7.png 2 -sketch/elephant/n02503517_4221-1.png 2 -sketch/elephant/n02503517_4221-2.png 2 -sketch/elephant/n02503517_4221-3.png 2 -sketch/elephant/n02503517_4221-4.png 2 -sketch/elephant/n02503517_4221-5.png 2 -sketch/elephant/n02503517_4221-6.png 2 -sketch/elephant/n02503517_4221-7.png 2 -sketch/elephant/n02503517_4247-1.png 2 -sketch/elephant/n02503517_4247-2.png 2 -sketch/elephant/n02503517_4247-3.png 2 -sketch/elephant/n02503517_4247-4.png 2 -sketch/elephant/n02503517_4247-5.png 2 -sketch/elephant/n02503517_4247-6.png 2 -sketch/elephant/n02503517_4247-7.png 2 -sketch/elephant/n02503517_4247-8.png 2 -sketch/elephant/n02503517_4247-9.png 2 -sketch/elephant/n02503517_4247-10.png 2 -sketch/elephant/n02503517_4253-1.png 2 -sketch/elephant/n02503517_4253-2.png 2 -sketch/elephant/n02503517_4253-3.png 2 -sketch/elephant/n02503517_4253-4.png 2 -sketch/elephant/n02503517_4253-5.png 2 -sketch/elephant/n02503517_4413-1.png 2 -sketch/elephant/n02503517_4413-2.png 2 -sketch/elephant/n02503517_4413-3.png 2 -sketch/elephant/n02503517_4413-4.png 2 -sketch/elephant/n02503517_4413-5.png 2 -sketch/elephant/n02503517_4413-6.png 2 -sketch/elephant/n02503517_4413-7.png 2 -sketch/elephant/n02503517_4413-8.png 2 -sketch/elephant/n02503517_4413-9.png 2 -sketch/elephant/n02503517_4413-10.png 2 -sketch/elephant/n02503517_4605-1.png 2 -sketch/elephant/n02503517_4605-2.png 2 -sketch/elephant/n02503517_4605-3.png 2 -sketch/elephant/n02503517_4605-4.png 2 -sketch/elephant/n02503517_4605-5.png 2 -sketch/elephant/n02503517_4687-1.png 2 -sketch/elephant/n02503517_4687-2.png 2 -sketch/elephant/n02503517_4687-3.png 2 -sketch/elephant/n02503517_4687-4.png 2 -sketch/elephant/n02503517_4687-5.png 2 -sketch/elephant/n02503517_4687-6.png 2 -sketch/elephant/n02503517_5117-1.png 2 -sketch/elephant/n02503517_5117-2.png 2 -sketch/elephant/n02503517_5117-3.png 2 -sketch/elephant/n02503517_5117-4.png 2 -sketch/elephant/n02503517_5117-5.png 2 -sketch/elephant/n02503517_5117-6.png 2 -sketch/elephant/n02503517_5267-1.png 2 -sketch/elephant/n02503517_5267-2.png 2 -sketch/elephant/n02503517_5267-3.png 2 -sketch/elephant/n02503517_5267-4.png 2 -sketch/elephant/n02503517_5267-5.png 2 -sketch/elephant/n02503517_5267-6.png 2 -sketch/elephant/n02503517_5267-7.png 2 -sketch/elephant/n02503517_5287-1.png 2 -sketch/elephant/n02503517_5287-2.png 2 -sketch/elephant/n02503517_5287-3.png 2 -sketch/elephant/n02503517_5287-4.png 2 -sketch/elephant/n02503517_5287-5.png 2 -sketch/elephant/n02503517_5418-1.png 2 -sketch/elephant/n02503517_5418-2.png 2 -sketch/elephant/n02503517_5418-3.png 2 -sketch/elephant/n02503517_5418-4.png 2 -sketch/elephant/n02503517_5418-5.png 2 -sketch/elephant/n02503517_5418-6.png 2 -sketch/elephant/n02503517_5418-7.png 2 -sketch/elephant/n02503517_5418-8.png 2 -sketch/elephant/n02503517_5418-9.png 2 -sketch/elephant/n02503517_5418-10.png 2 -sketch/elephant/n02503517_5420-1.png 2 -sketch/elephant/n02503517_5420-2.png 2 -sketch/elephant/n02503517_5420-3.png 2 -sketch/elephant/n02503517_5420-4.png 2 -sketch/elephant/n02503517_5420-5.png 2 -sketch/elephant/n02503517_5420-6.png 2 -sketch/elephant/n02503517_5420-7.png 2 -sketch/elephant/n02503517_5527-1.png 2 -sketch/elephant/n02503517_5527-2.png 2 -sketch/elephant/n02503517_5527-3.png 2 -sketch/elephant/n02503517_5527-4.png 2 -sketch/elephant/n02503517_5527-5.png 2 -sketch/elephant/n02503517_5527-6.png 2 -sketch/elephant/n02503517_5892-1.png 2 -sketch/elephant/n02503517_5892-2.png 2 -sketch/elephant/n02503517_5892-3.png 2 -sketch/elephant/n02503517_5892-4.png 2 -sketch/elephant/n02503517_5892-5.png 2 -sketch/elephant/n02503517_5892-6.png 2 -sketch/elephant/n02503517_5892-7.png 2 -sketch/elephant/n02503517_5905-2.png 2 -sketch/elephant/n02503517_5905-3.png 2 -sketch/elephant/n02503517_5905-4.png 2 -sketch/elephant/n02503517_5905-5.png 2 -sketch/elephant/n02503517_5905-6.png 2 -sketch/elephant/n02503517_5905-7.png 2 -sketch/elephant/n02503517_5905-8.png 2 -sketch/elephant/n02503517_5905-9.png 2 -sketch/elephant/n02503517_5905-10.png 2 -sketch/elephant/n02503517_5905-11.png 2 -sketch/elephant/n02503517_5909-1.png 2 -sketch/elephant/n02503517_5909-2.png 2 -sketch/elephant/n02503517_5909-3.png 2 -sketch/elephant/n02503517_5909-4.png 2 -sketch/elephant/n02503517_5909-5.png 2 -sketch/elephant/n02503517_6032-1.png 2 -sketch/elephant/n02503517_6032-2.png 2 -sketch/elephant/n02503517_6032-3.png 2 -sketch/elephant/n02503517_6032-4.png 2 -sketch/elephant/n02503517_6032-5.png 2 -sketch/elephant/n02503517_6032-6.png 2 -sketch/elephant/n02503517_6043-1.png 2 -sketch/elephant/n02503517_6043-2.png 2 -sketch/elephant/n02503517_6043-3.png 2 -sketch/elephant/n02503517_6043-4.png 2 -sketch/elephant/n02503517_6043-5.png 2 -sketch/elephant/n02503517_6043-6.png 2 -sketch/elephant/n02503517_6232-1.png 2 -sketch/elephant/n02503517_6232-2.png 2 -sketch/elephant/n02503517_6232-3.png 2 -sketch/elephant/n02503517_6232-4.png 2 -sketch/elephant/n02503517_6232-5.png 2 -sketch/elephant/n02503517_6232-6.png 2 -sketch/elephant/n02503517_6232-7.png 2 -sketch/elephant/n02503517_6396-1.png 2 -sketch/elephant/n02503517_6396-2.png 2 -sketch/elephant/n02503517_6396-3.png 2 -sketch/elephant/n02503517_6396-4.png 2 -sketch/elephant/n02503517_6396-5.png 2 -sketch/elephant/n02503517_6429-1.png 2 -sketch/elephant/n02503517_6429-2.png 2 -sketch/elephant/n02503517_6429-3.png 2 -sketch/elephant/n02503517_6429-4.png 2 -sketch/elephant/n02503517_6429-5.png 2 -sketch/elephant/n02503517_6479-1.png 2 -sketch/elephant/n02503517_6479-2.png 2 -sketch/elephant/n02503517_6479-3.png 2 -sketch/elephant/n02503517_6479-4.png 2 -sketch/elephant/n02503517_6479-5.png 2 -sketch/elephant/n02503517_6479-6.png 2 -sketch/elephant/n02503517_6479-7.png 2 -sketch/elephant/n02503517_6479-8.png 2 -sketch/elephant/n02503517_6511-1.png 2 -sketch/elephant/n02503517_6511-2.png 2 -sketch/elephant/n02503517_6511-3.png 2 -sketch/elephant/n02503517_6511-4.png 2 -sketch/elephant/n02503517_6511-5.png 2 -sketch/elephant/n02503517_6611-1.png 2 -sketch/elephant/n02503517_6611-2.png 2 -sketch/elephant/n02503517_6611-3.png 2 -sketch/elephant/n02503517_6611-4.png 2 -sketch/elephant/n02503517_6611-5.png 2 -sketch/elephant/n02503517_6611-6.png 2 -sketch/elephant/n02503517_6611-7.png 2 -sketch/elephant/n02503517_6611-8.png 2 -sketch/elephant/n02503517_6611-9.png 2 -sketch/elephant/n02503517_6611-10.png 2 -sketch/elephant/n02503517_6613-1.png 2 -sketch/elephant/n02503517_6613-2.png 2 -sketch/elephant/n02503517_6613-3.png 2 -sketch/elephant/n02503517_6613-4.png 2 -sketch/elephant/n02503517_6613-5.png 2 -sketch/elephant/n02503517_6624-1.png 2 -sketch/elephant/n02503517_6624-2.png 2 -sketch/elephant/n02503517_6624-3.png 2 -sketch/elephant/n02503517_6624-4.png 2 -sketch/elephant/n02503517_6624-5.png 2 -sketch/elephant/n02503517_6624-6.png 2 -sketch/elephant/n02503517_6661-1.png 2 -sketch/elephant/n02503517_6661-2.png 2 -sketch/elephant/n02503517_6661-3.png 2 -sketch/elephant/n02503517_6661-4.png 2 -sketch/elephant/n02503517_6661-5.png 2 -sketch/elephant/n02503517_6784-1.png 2 -sketch/elephant/n02503517_6784-2.png 2 -sketch/elephant/n02503517_6784-3.png 2 -sketch/elephant/n02503517_6784-4.png 2 -sketch/elephant/n02503517_6784-5.png 2 -sketch/elephant/n02503517_6880-1.png 2 -sketch/elephant/n02503517_6880-2.png 2 -sketch/elephant/n02503517_6880-3.png 2 -sketch/elephant/n02503517_6880-4.png 2 -sketch/elephant/n02503517_6880-5.png 2 -sketch/elephant/n02503517_6937-1.png 2 -sketch/elephant/n02503517_6937-2.png 2 -sketch/elephant/n02503517_6937-3.png 2 -sketch/elephant/n02503517_6937-4.png 2 -sketch/elephant/n02503517_6937-5.png 2 -sketch/elephant/n02503517_6937-6.png 2 -sketch/elephant/n02503517_7020-1.png 2 -sketch/elephant/n02503517_7020-2.png 2 -sketch/elephant/n02503517_7020-3.png 2 -sketch/elephant/n02503517_7020-4.png 2 -sketch/elephant/n02503517_7020-5.png 2 -sketch/elephant/n02503517_7020-6.png 2 -sketch/elephant/n02503517_7031-1.png 2 -sketch/elephant/n02503517_7031-2.png 2 -sketch/elephant/n02503517_7031-3.png 2 -sketch/elephant/n02503517_7031-4.png 2 -sketch/elephant/n02503517_7031-5.png 2 -sketch/elephant/n02503517_7031-6.png 2 -sketch/elephant/n02503517_7031-7.png 2 -sketch/elephant/n02503517_7031-8.png 2 -sketch/elephant/n02503517_7031-9.png 2 -sketch/elephant/n02503517_7031-10.png 2 -sketch/elephant/n02503517_7083-1.png 2 -sketch/elephant/n02503517_7083-2.png 2 -sketch/elephant/n02503517_7083-3.png 2 -sketch/elephant/n02503517_7083-4.png 2 -sketch/elephant/n02503517_7083-5.png 2 -sketch/elephant/n02503517_7173-1.png 2 -sketch/elephant/n02503517_7173-2.png 2 -sketch/elephant/n02503517_7173-3.png 2 -sketch/elephant/n02503517_7173-4.png 2 -sketch/elephant/n02503517_7173-5.png 2 -sketch/elephant/n02503517_7211-1.png 2 -sketch/elephant/n02503517_7211-2.png 2 -sketch/elephant/n02503517_7211-3.png 2 -sketch/elephant/n02503517_7211-4.png 2 -sketch/elephant/n02503517_7211-5.png 2 -sketch/elephant/n02503517_7393-1.png 2 -sketch/elephant/n02503517_7393-2.png 2 -sketch/elephant/n02503517_7393-3.png 2 -sketch/elephant/n02503517_7393-4.png 2 -sketch/elephant/n02503517_7393-5.png 2 -sketch/elephant/n02503517_7393-6.png 2 -sketch/elephant/n02503517_7393-7.png 2 -sketch/elephant/n02503517_7592-1.png 2 -sketch/elephant/n02503517_7592-2.png 2 -sketch/elephant/n02503517_7592-3.png 2 -sketch/elephant/n02503517_7592-4.png 2 -sketch/elephant/n02503517_7592-5.png 2 -sketch/elephant/n02503517_7592-6.png 2 -sketch/elephant/n02503517_7592-7.png 2 -sketch/elephant/n02503517_7592-8.png 2 -sketch/elephant/n02503517_8137-1.png 2 -sketch/elephant/n02503517_8137-2.png 2 -sketch/elephant/n02503517_8137-3.png 2 -sketch/elephant/n02503517_8137-4.png 2 -sketch/elephant/n02503517_8137-5.png 2 -sketch/elephant/n02503517_8205-1.png 2 -sketch/elephant/n02503517_8205-2.png 2 -sketch/elephant/n02503517_8205-3.png 2 -sketch/elephant/n02503517_8205-4.png 2 -sketch/elephant/n02503517_8205-5.png 2 -sketch/elephant/n02503517_8222-1.png 2 -sketch/elephant/n02503517_8222-2.png 2 -sketch/elephant/n02503517_8222-3.png 2 -sketch/elephant/n02503517_8222-4.png 2 -sketch/elephant/n02503517_8222-5.png 2 -sketch/elephant/n02503517_8265-1.png 2 -sketch/elephant/n02503517_8265-2.png 2 -sketch/elephant/n02503517_8265-3.png 2 -sketch/elephant/n02503517_8265-4.png 2 -sketch/elephant/n02503517_8265-5.png 2 -sketch/elephant/n02503517_8292-1.png 2 -sketch/elephant/n02503517_8292-2.png 2 -sketch/elephant/n02503517_8292-3.png 2 -sketch/elephant/n02503517_8292-4.png 2 -sketch/elephant/n02503517_8292-5.png 2 -sketch/elephant/n02503517_8292-6.png 2 -sketch/elephant/n02503517_8518-1.png 2 -sketch/elephant/n02503517_8518-2.png 2 -sketch/elephant/n02503517_8518-3.png 2 -sketch/elephant/n02503517_8518-4.png 2 -sketch/elephant/n02503517_8518-5.png 2 -sketch/elephant/n02503517_8518-6.png 2 -sketch/elephant/n02503517_8571-1.png 2 -sketch/elephant/n02503517_8571-2.png 2 -sketch/elephant/n02503517_8571-3.png 2 -sketch/elephant/n02503517_8571-4.png 2 -sketch/elephant/n02503517_8571-5.png 2 -sketch/elephant/n02503517_8571-6.png 2 -sketch/elephant/n02503517_8757-1.png 2 -sketch/elephant/n02503517_8757-2.png 2 -sketch/elephant/n02503517_8757-3.png 2 -sketch/elephant/n02503517_8757-4.png 2 -sketch/elephant/n02503517_8757-5.png 2 -sketch/elephant/n02503517_8757-6.png 2 -sketch/elephant/n02503517_8901-1.png 2 -sketch/elephant/n02503517_8901-2.png 2 -sketch/elephant/n02503517_8901-3.png 2 -sketch/elephant/n02503517_8901-4.png 2 -sketch/elephant/n02503517_8901-5.png 2 -sketch/elephant/n02503517_8901-6.png 2 -sketch/elephant/n02503517_8901-7.png 2 -sketch/elephant/n02503517_8904-1.png 2 -sketch/elephant/n02503517_8904-2.png 2 -sketch/elephant/n02503517_8904-3.png 2 -sketch/elephant/n02503517_8904-4.png 2 -sketch/elephant/n02503517_8904-5.png 2 -sketch/elephant/n02503517_8904-6.png 2 -sketch/elephant/n02503517_8938-1.png 2 -sketch/elephant/n02503517_8938-2.png 2 -sketch/elephant/n02503517_8938-3.png 2 -sketch/elephant/n02503517_8938-4.png 2 -sketch/elephant/n02503517_8938-5.png 2 -sketch/elephant/n02503517_8938-6.png 2 -sketch/elephant/n02503517_9043-1.png 2 -sketch/elephant/n02503517_9043-2.png 2 -sketch/elephant/n02503517_9043-3.png 2 -sketch/elephant/n02503517_9043-4.png 2 -sketch/elephant/n02503517_9043-5.png 2 -sketch/elephant/n02503517_9043-6.png 2 -sketch/elephant/n02503517_9043-7.png 2 -sketch/elephant/n02503517_9043-8.png 2 -sketch/elephant/n02503517_9043-9.png 2 -sketch/elephant/n02503517_9043-10.png 2 -sketch/elephant/n02503517_9154-1.png 2 -sketch/elephant/n02503517_9154-2.png 2 -sketch/elephant/n02503517_9154-3.png 2 -sketch/elephant/n02503517_9154-4.png 2 -sketch/elephant/n02503517_9154-5.png 2 -sketch/elephant/n02503517_9154-6.png 2 -sketch/elephant/n02503517_9237-1.png 2 -sketch/elephant/n02503517_9237-2.png 2 -sketch/elephant/n02503517_9237-3.png 2 -sketch/elephant/n02503517_9237-4.png 2 -sketch/elephant/n02503517_9237-5.png 2 -sketch/elephant/n02503517_9237-6.png 2 -sketch/elephant/n02503517_9237-7.png 2 -sketch/elephant/n02503517_9241-1.png 2 -sketch/elephant/n02503517_9241-2.png 2 -sketch/elephant/n02503517_9241-3.png 2 -sketch/elephant/n02503517_9241-4.png 2 -sketch/elephant/n02503517_9241-5.png 2 -sketch/elephant/n02503517_9270-1.png 2 -sketch/elephant/n02503517_9270-2.png 2 -sketch/elephant/n02503517_9270-3.png 2 -sketch/elephant/n02503517_9270-4.png 2 -sketch/elephant/n02503517_9270-5.png 2 -sketch/elephant/n02503517_9270-6.png 2 -sketch/elephant/n02503517_9270-7.png 2 -sketch/elephant/n02503517_9270-8.png 2 -sketch/elephant/n02503517_9270-9.png 2 -sketch/elephant/n02503517_9270-10.png 2 -sketch/elephant/n02503517_9421-1.png 2 -sketch/elephant/n02503517_9421-2.png 2 -sketch/elephant/n02503517_9421-3.png 2 -sketch/elephant/n02503517_9421-4.png 2 -sketch/elephant/n02503517_9421-5.png 2 -sketch/elephant/n02503517_9421-6.png 2 -sketch/elephant/n02503517_9421-7.png 2 -sketch/elephant/n02503517_9421-8.png 2 -sketch/elephant/n02503517_9421-9.png 2 -sketch/elephant/n02503517_9827-1.png 2 -sketch/elephant/n02503517_9827-2.png 2 -sketch/elephant/n02503517_9827-3.png 2 -sketch/elephant/n02503517_9827-4.png 2 -sketch/elephant/n02503517_9827-5.png 2 -sketch/elephant/n02503517_9827-6.png 2 -sketch/elephant/n02503517_9827-7.png 2 -sketch/elephant/n02503517_9827-8.png 2 -sketch/elephant/n02503517_10036-1.png 2 -sketch/elephant/n02503517_10036-2.png 2 -sketch/elephant/n02503517_10036-3.png 2 -sketch/elephant/n02503517_10036-4.png 2 -sketch/elephant/n02503517_10036-5.png 2 -sketch/elephant/n02503517_10036-6.png 2 -sketch/elephant/n02503517_10036-7.png 2 -sketch/elephant/n02503517_10036-8.png 2 -sketch/elephant/n02503517_10036-9.png 2 -sketch/elephant/n02503517_10036-10.png 2 -sketch/elephant/n02503517_10075-1.png 2 -sketch/elephant/n02503517_10075-2.png 2 -sketch/elephant/n02503517_10075-3.png 2 -sketch/elephant/n02503517_10075-4.png 2 -sketch/elephant/n02503517_10075-5.png 2 -sketch/elephant/n02503517_10193-1.png 2 -sketch/elephant/n02503517_10193-2.png 2 -sketch/elephant/n02503517_10193-3.png 2 -sketch/elephant/n02503517_10193-4.png 2 -sketch/elephant/n02503517_10193-5.png 2 -sketch/elephant/n02503517_10193-6.png 2 -sketch/elephant/n02503517_10193-7.png 2 -sketch/elephant/n02503517_10193-8.png 2 -sketch/elephant/n02503517_10193-9.png 2 -sketch/elephant/n02503517_10193-10.png 2 -sketch/elephant/n02503517_10259-1.png 2 -sketch/elephant/n02503517_10259-2.png 2 -sketch/elephant/n02503517_10259-3.png 2 -sketch/elephant/n02503517_10259-4.png 2 -sketch/elephant/n02503517_10259-5.png 2 -sketch/elephant/n02503517_10259-6.png 2 -sketch/elephant/n02503517_10259-7.png 2 -sketch/elephant/n02503517_10259-8.png 2 -sketch/elephant/n02503517_10259-9.png 2 -sketch/elephant/n02503517_10275-1.png 2 -sketch/elephant/n02503517_10275-2.png 2 -sketch/elephant/n02503517_10275-3.png 2 -sketch/elephant/n02503517_10275-4.png 2 -sketch/elephant/n02503517_10275-5.png 2 -sketch/elephant/n02503517_10275-6.png 2 -sketch/elephant/n02503517_10300-1.png 2 -sketch/elephant/n02503517_10300-2.png 2 -sketch/elephant/n02503517_10300-3.png 2 -sketch/elephant/n02503517_10300-4.png 2 -sketch/elephant/n02503517_10300-5.png 2 -sketch/elephant/n02503517_10439-1.png 2 -sketch/elephant/n02503517_10439-2.png 2 -sketch/elephant/n02503517_10439-3.png 2 -sketch/elephant/n02503517_10439-4.png 2 -sketch/elephant/n02503517_10439-5.png 2 -sketch/elephant/n02503517_10439-6.png 2 -sketch/elephant/n02503517_10439-7.png 2 -sketch/elephant/n02503517_10439-8.png 2 -sketch/elephant/n02503517_10440-1.png 2 -sketch/elephant/n02503517_10440-2.png 2 -sketch/elephant/n02503517_10440-3.png 2 -sketch/elephant/n02503517_10440-4.png 2 -sketch/elephant/n02503517_10440-5.png 2 -sketch/elephant/n02503517_10440-6.png 2 -sketch/elephant/n02503517_10440-7.png 2 -sketch/elephant/n02503517_10440-8.png 2 -sketch/elephant/n02503517_10440-9.png 2 -sketch/elephant/n02503517_10528-1.png 2 -sketch/elephant/n02503517_10528-2.png 2 -sketch/elephant/n02503517_10528-3.png 2 -sketch/elephant/n02503517_10528-4.png 2 -sketch/elephant/n02503517_10528-5.png 2 -sketch/elephant/n02503517_10558-1.png 2 -sketch/elephant/n02503517_10558-2.png 2 -sketch/elephant/n02503517_10558-3.png 2 -sketch/elephant/n02503517_10558-4.png 2 -sketch/elephant/n02503517_10558-5.png 2 -sketch/elephant/n02503517_10778-1.png 2 -sketch/elephant/n02503517_10778-2.png 2 -sketch/elephant/n02503517_10778-3.png 2 -sketch/elephant/n02503517_10778-4.png 2 -sketch/elephant/n02503517_10778-5.png 2 -sketch/elephant/n02503517_10778-6.png 2 -sketch/elephant/n02503517_11873-1.png 2 -sketch/elephant/n02503517_11873-2.png 2 -sketch/elephant/n02503517_11873-3.png 2 -sketch/elephant/n02503517_11873-4.png 2 -sketch/elephant/n02503517_11873-5.png 2 -sketch/elephant/n02503517_11873-6.png 2 -sketch/elephant/n02503517_11873-7.png 2 -sketch/elephant/n02503517_11873-8.png 2 -sketch/elephant/n02503517_11873-9.png 2 -sketch/elephant/n02503517_12688-1.png 2 -sketch/elephant/n02503517_12688-2.png 2 -sketch/elephant/n02503517_12688-3.png 2 -sketch/elephant/n02503517_12688-4.png 2 -sketch/elephant/n02503517_12688-5.png 2 -sketch/elephant/5921.png 2 -sketch/elephant/5922.png 2 -sketch/elephant/5923.png 2 -sketch/elephant/5924.png 2 -sketch/elephant/5925.png 2 -sketch/elephant/5926.png 2 -sketch/elephant/5927.png 2 -sketch/elephant/5928.png 2 -sketch/elephant/5929.png 2 -sketch/elephant/5930.png 2 -sketch/elephant/5931.png 2 -sketch/elephant/5932.png 2 -sketch/elephant/5933.png 2 -sketch/elephant/5934.png 2 -sketch/elephant/5935.png 2 -sketch/elephant/5936.png 2 -sketch/elephant/5937.png 2 -sketch/elephant/5938.png 2 -sketch/elephant/5939.png 2 -sketch/elephant/5940.png 2 -sketch/elephant/5941.png 2 -sketch/elephant/5942.png 2 -sketch/elephant/5943.png 2 -sketch/elephant/5944.png 2 -sketch/elephant/5945.png 2 -sketch/elephant/5946.png 2 -sketch/elephant/5947.png 2 -sketch/elephant/5948.png 2 -sketch/elephant/5949.png 2 -sketch/elephant/5950.png 2 -sketch/elephant/5951.png 2 -sketch/elephant/5952.png 2 -sketch/elephant/5953.png 2 -sketch/elephant/5954.png 2 -sketch/elephant/5955.png 2 -sketch/elephant/5956.png 2 -sketch/elephant/5957.png 2 -sketch/elephant/5958.png 2 -sketch/elephant/5959.png 2 -sketch/elephant/5960.png 2 -sketch/elephant/5961.png 2 -sketch/elephant/5962.png 2 -sketch/elephant/5963.png 2 -sketch/elephant/5964.png 2 -sketch/elephant/5965.png 2 -sketch/elephant/5966.png 2 -sketch/elephant/5967.png 2 -sketch/elephant/5968.png 2 -sketch/elephant/5969.png 2 -sketch/elephant/5970.png 2 -sketch/elephant/5971.png 2 -sketch/elephant/5972.png 2 -sketch/elephant/5973.png 2 -sketch/elephant/5974.png 2 -sketch/elephant/5975.png 2 -sketch/elephant/5976.png 2 -sketch/elephant/5977.png 2 -sketch/elephant/5978.png 2 -sketch/elephant/5979.png 2 -sketch/elephant/5980.png 2 -sketch/elephant/5981.png 2 -sketch/elephant/5982.png 2 -sketch/elephant/5983.png 2 -sketch/elephant/5984.png 2 -sketch/elephant/5985.png 2 -sketch/elephant/5986.png 2 -sketch/elephant/5987.png 2 -sketch/elephant/5988.png 2 -sketch/elephant/5989.png 2 -sketch/elephant/5990.png 2 -sketch/elephant/5991.png 2 -sketch/elephant/5992.png 2 -sketch/elephant/5993.png 2 -sketch/elephant/5994.png 2 -sketch/elephant/5995.png 2 -sketch/elephant/5996.png 2 -sketch/elephant/5997.png 2 -sketch/elephant/5998.png 2 -sketch/elephant/5999.png 2 -sketch/elephant/6000.png 2 -sketch/giraffe/n02439033_67-1.png 3 -sketch/giraffe/n02439033_67-2.png 3 -sketch/giraffe/n02439033_67-3.png 3 -sketch/giraffe/n02439033_67-4.png 3 -sketch/giraffe/n02439033_67-5.png 3 -sketch/giraffe/n02439033_67-6.png 3 -sketch/giraffe/n02439033_67-7.png 3 -sketch/giraffe/n02439033_221-1.png 3 -sketch/giraffe/n02439033_221-2.png 3 -sketch/giraffe/n02439033_221-3.png 3 -sketch/giraffe/n02439033_221-4.png 3 -sketch/giraffe/n02439033_221-5.png 3 -sketch/giraffe/n02439033_221-6.png 3 -sketch/giraffe/n02439033_376-1.png 3 -sketch/giraffe/n02439033_376-2.png 3 -sketch/giraffe/n02439033_376-3.png 3 -sketch/giraffe/n02439033_376-4.png 3 -sketch/giraffe/n02439033_376-5.png 3 -sketch/giraffe/n02439033_569-1.png 3 -sketch/giraffe/n02439033_569-2.png 3 -sketch/giraffe/n02439033_569-3.png 3 -sketch/giraffe/n02439033_569-4.png 3 -sketch/giraffe/n02439033_569-5.png 3 -sketch/giraffe/n02439033_628-1.png 3 -sketch/giraffe/n02439033_628-2.png 3 -sketch/giraffe/n02439033_628-3.png 3 -sketch/giraffe/n02439033_628-4.png 3 -sketch/giraffe/n02439033_628-5.png 3 -sketch/giraffe/n02439033_628-6.png 3 -sketch/giraffe/n02439033_628-7.png 3 -sketch/giraffe/n02439033_628-8.png 3 -sketch/giraffe/n02439033_628-9.png 3 -sketch/giraffe/n02439033_628-10.png 3 -sketch/giraffe/n02439033_866-1.png 3 -sketch/giraffe/n02439033_866-2.png 3 -sketch/giraffe/n02439033_866-3.png 3 -sketch/giraffe/n02439033_866-4.png 3 -sketch/giraffe/n02439033_866-5.png 3 -sketch/giraffe/n02439033_866-6.png 3 -sketch/giraffe/n02439033_991-1.png 3 -sketch/giraffe/n02439033_991-2.png 3 -sketch/giraffe/n02439033_991-3.png 3 -sketch/giraffe/n02439033_991-4.png 3 -sketch/giraffe/n02439033_991-5.png 3 -sketch/giraffe/n02439033_991-6.png 3 -sketch/giraffe/n02439033_991-7.png 3 -sketch/giraffe/n02439033_991-8.png 3 -sketch/giraffe/n02439033_991-9.png 3 -sketch/giraffe/n02439033_1327-1.png 3 -sketch/giraffe/n02439033_1327-2.png 3 -sketch/giraffe/n02439033_1327-3.png 3 -sketch/giraffe/n02439033_1327-4.png 3 -sketch/giraffe/n02439033_1327-5.png 3 -sketch/giraffe/n02439033_1508-1.png 3 -sketch/giraffe/n02439033_1508-2.png 3 -sketch/giraffe/n02439033_1508-3.png 3 -sketch/giraffe/n02439033_1508-4.png 3 -sketch/giraffe/n02439033_1508-5.png 3 -sketch/giraffe/n02439033_1508-6.png 3 -sketch/giraffe/n02439033_1508-7.png 3 -sketch/giraffe/n02439033_1508-8.png 3 -sketch/giraffe/n02439033_1508-9.png 3 -sketch/giraffe/n02439033_2486-1.png 3 -sketch/giraffe/n02439033_2486-2.png 3 -sketch/giraffe/n02439033_2486-3.png 3 -sketch/giraffe/n02439033_2486-4.png 3 -sketch/giraffe/n02439033_2486-5.png 3 -sketch/giraffe/n02439033_2486-6.png 3 -sketch/giraffe/n02439033_2500-1.png 3 -sketch/giraffe/n02439033_2500-2.png 3 -sketch/giraffe/n02439033_2500-3.png 3 -sketch/giraffe/n02439033_2500-4.png 3 -sketch/giraffe/n02439033_2500-5.png 3 -sketch/giraffe/n02439033_2500-6.png 3 -sketch/giraffe/n02439033_2677-1.png 3 -sketch/giraffe/n02439033_2677-2.png 3 -sketch/giraffe/n02439033_2677-3.png 3 -sketch/giraffe/n02439033_2677-4.png 3 -sketch/giraffe/n02439033_2677-5.png 3 -sketch/giraffe/n02439033_2677-6.png 3 -sketch/giraffe/n02439033_2677-7.png 3 -sketch/giraffe/n02439033_3944-1.png 3 -sketch/giraffe/n02439033_3944-2.png 3 -sketch/giraffe/n02439033_3944-3.png 3 -sketch/giraffe/n02439033_3944-4.png 3 -sketch/giraffe/n02439033_3944-5.png 3 -sketch/giraffe/n02439033_3944-6.png 3 -sketch/giraffe/n02439033_3944-7.png 3 -sketch/giraffe/n02439033_3944-8.png 3 -sketch/giraffe/n02439033_3944-9.png 3 -sketch/giraffe/n02439033_3944-10.png 3 -sketch/giraffe/n02439033_4601-1.png 3 -sketch/giraffe/n02439033_4601-2.png 3 -sketch/giraffe/n02439033_4601-3.png 3 -sketch/giraffe/n02439033_4601-4.png 3 -sketch/giraffe/n02439033_4601-5.png 3 -sketch/giraffe/n02439033_5004-1.png 3 -sketch/giraffe/n02439033_5004-2.png 3 -sketch/giraffe/n02439033_5004-3.png 3 -sketch/giraffe/n02439033_5004-4.png 3 -sketch/giraffe/n02439033_5004-5.png 3 -sketch/giraffe/n02439033_5004-6.png 3 -sketch/giraffe/n02439033_5004-7.png 3 -sketch/giraffe/n02439033_5004-8.png 3 -sketch/giraffe/n02439033_5652-1.png 3 -sketch/giraffe/n02439033_5652-2.png 3 -sketch/giraffe/n02439033_5652-3.png 3 -sketch/giraffe/n02439033_5652-4.png 3 -sketch/giraffe/n02439033_5652-5.png 3 -sketch/giraffe/n02439033_6552-1.png 3 -sketch/giraffe/n02439033_6552-2.png 3 -sketch/giraffe/n02439033_6552-3.png 3 -sketch/giraffe/n02439033_6552-4.png 3 -sketch/giraffe/n02439033_6552-5.png 3 -sketch/giraffe/n02439033_8789-1.png 3 -sketch/giraffe/n02439033_8789-2.png 3 -sketch/giraffe/n02439033_8789-3.png 3 -sketch/giraffe/n02439033_8789-4.png 3 -sketch/giraffe/n02439033_8789-5.png 3 -sketch/giraffe/n02439033_8846-1.png 3 -sketch/giraffe/n02439033_8846-2.png 3 -sketch/giraffe/n02439033_8846-3.png 3 -sketch/giraffe/n02439033_8846-4.png 3 -sketch/giraffe/n02439033_8846-5.png 3 -sketch/giraffe/n02439033_8846-6.png 3 -sketch/giraffe/n02439033_8846-7.png 3 -sketch/giraffe/n02439033_8846-8.png 3 -sketch/giraffe/n02439033_8846-9.png 3 -sketch/giraffe/n02439033_8846-10.png 3 -sketch/giraffe/n02439033_8846-11.png 3 -sketch/giraffe/n02439033_8846-12.png 3 -sketch/giraffe/n02439033_8846-13.png 3 -sketch/giraffe/n02439033_8875-1.png 3 -sketch/giraffe/n02439033_8875-2.png 3 -sketch/giraffe/n02439033_8875-3.png 3 -sketch/giraffe/n02439033_8875-4.png 3 -sketch/giraffe/n02439033_8875-5.png 3 -sketch/giraffe/n02439033_8875-6.png 3 -sketch/giraffe/n02439033_8875-7.png 3 -sketch/giraffe/n02439033_8875-8.png 3 -sketch/giraffe/n02439033_9257-1.png 3 -sketch/giraffe/n02439033_9257-2.png 3 -sketch/giraffe/n02439033_9257-3.png 3 -sketch/giraffe/n02439033_9257-4.png 3 -sketch/giraffe/n02439033_9257-5.png 3 -sketch/giraffe/n02439033_9257-6.png 3 -sketch/giraffe/n02439033_9261-1.png 3 -sketch/giraffe/n02439033_9261-2.png 3 -sketch/giraffe/n02439033_9261-3.png 3 -sketch/giraffe/n02439033_9261-4.png 3 -sketch/giraffe/n02439033_9261-5.png 3 -sketch/giraffe/n02439033_9398-1.png 3 -sketch/giraffe/n02439033_9398-2.png 3 -sketch/giraffe/n02439033_9398-3.png 3 -sketch/giraffe/n02439033_9398-4.png 3 -sketch/giraffe/n02439033_9398-5.png 3 -sketch/giraffe/n02439033_9398-6.png 3 -sketch/giraffe/n02439033_9472-1.png 3 -sketch/giraffe/n02439033_9472-2.png 3 -sketch/giraffe/n02439033_9472-3.png 3 -sketch/giraffe/n02439033_9472-4.png 3 -sketch/giraffe/n02439033_9472-5.png 3 -sketch/giraffe/n02439033_9472-6.png 3 -sketch/giraffe/n02439033_9472-7.png 3 -sketch/giraffe/n02439033_9472-8.png 3 -sketch/giraffe/n02439033_9472-9.png 3 -sketch/giraffe/n02439033_9472-10.png 3 -sketch/giraffe/n02439033_9598-1.png 3 -sketch/giraffe/n02439033_9598-2.png 3 -sketch/giraffe/n02439033_9598-3.png 3 -sketch/giraffe/n02439033_9598-4.png 3 -sketch/giraffe/n02439033_9598-5.png 3 -sketch/giraffe/n02439033_9598-6.png 3 -sketch/giraffe/n02439033_9598-7.png 3 -sketch/giraffe/n02439033_9598-8.png 3 -sketch/giraffe/n02439033_9598-9.png 3 -sketch/giraffe/n02439033_9598-10.png 3 -sketch/giraffe/n02439033_9604-1.png 3 -sketch/giraffe/n02439033_9604-2.png 3 -sketch/giraffe/n02439033_9604-3.png 3 -sketch/giraffe/n02439033_9604-4.png 3 -sketch/giraffe/n02439033_9604-5.png 3 -sketch/giraffe/n02439033_9679-1.png 3 -sketch/giraffe/n02439033_9679-2.png 3 -sketch/giraffe/n02439033_9679-3.png 3 -sketch/giraffe/n02439033_9679-4.png 3 -sketch/giraffe/n02439033_9679-5.png 3 -sketch/giraffe/n02439033_9719-1.png 3 -sketch/giraffe/n02439033_9719-2.png 3 -sketch/giraffe/n02439033_9719-3.png 3 -sketch/giraffe/n02439033_9719-4.png 3 -sketch/giraffe/n02439033_9719-5.png 3 -sketch/giraffe/n02439033_9719-6.png 3 -sketch/giraffe/n02439033_9719-7.png 3 -sketch/giraffe/n02439033_9719-8.png 3 -sketch/giraffe/n02439033_9719-9.png 3 -sketch/giraffe/n02439033_10130-1.png 3 -sketch/giraffe/n02439033_10130-2.png 3 -sketch/giraffe/n02439033_10130-3.png 3 -sketch/giraffe/n02439033_10130-4.png 3 -sketch/giraffe/n02439033_10130-5.png 3 -sketch/giraffe/n02439033_10130-6.png 3 -sketch/giraffe/n02439033_10130-7.png 3 -sketch/giraffe/n02439033_10164-1.png 3 -sketch/giraffe/n02439033_10164-2.png 3 -sketch/giraffe/n02439033_10164-3.png 3 -sketch/giraffe/n02439033_10164-4.png 3 -sketch/giraffe/n02439033_10164-5.png 3 -sketch/giraffe/n02439033_10164-6.png 3 -sketch/giraffe/n02439033_10164-7.png 3 -sketch/giraffe/n02439033_10164-8.png 3 -sketch/giraffe/n02439033_10164-9.png 3 -sketch/giraffe/n02439033_10164-10.png 3 -sketch/giraffe/n02439033_10279-1.png 3 -sketch/giraffe/n02439033_10279-2.png 3 -sketch/giraffe/n02439033_10279-3.png 3 -sketch/giraffe/n02439033_10279-4.png 3 -sketch/giraffe/n02439033_10279-5.png 3 -sketch/giraffe/n02439033_10279-6.png 3 -sketch/giraffe/n02439033_10295-1.png 3 -sketch/giraffe/n02439033_10295-2.png 3 -sketch/giraffe/n02439033_10295-3.png 3 -sketch/giraffe/n02439033_10295-4.png 3 -sketch/giraffe/n02439033_10295-5.png 3 -sketch/giraffe/n02439033_10453-1.png 3 -sketch/giraffe/n02439033_10453-2.png 3 -sketch/giraffe/n02439033_10453-3.png 3 -sketch/giraffe/n02439033_10453-4.png 3 -sketch/giraffe/n02439033_10453-5.png 3 -sketch/giraffe/n02439033_10453-6.png 3 -sketch/giraffe/n02439033_10491-1.png 3 -sketch/giraffe/n02439033_10491-2.png 3 -sketch/giraffe/n02439033_10491-3.png 3 -sketch/giraffe/n02439033_10491-4.png 3 -sketch/giraffe/n02439033_10491-5.png 3 -sketch/giraffe/n02439033_10491-6.png 3 -sketch/giraffe/n02439033_10541-1.png 3 -sketch/giraffe/n02439033_10541-2.png 3 -sketch/giraffe/n02439033_10541-3.png 3 -sketch/giraffe/n02439033_10541-4.png 3 -sketch/giraffe/n02439033_10541-5.png 3 -sketch/giraffe/n02439033_10541-6.png 3 -sketch/giraffe/n02439033_10616-1.png 3 -sketch/giraffe/n02439033_10616-2.png 3 -sketch/giraffe/n02439033_10616-3.png 3 -sketch/giraffe/n02439033_10616-4.png 3 -sketch/giraffe/n02439033_10616-5.png 3 -sketch/giraffe/n02439033_10802-1.png 3 -sketch/giraffe/n02439033_10802-2.png 3 -sketch/giraffe/n02439033_10802-3.png 3 -sketch/giraffe/n02439033_10802-4.png 3 -sketch/giraffe/n02439033_10802-5.png 3 -sketch/giraffe/n02439033_10802-6.png 3 -sketch/giraffe/n02439033_10802-7.png 3 -sketch/giraffe/n02439033_10802-8.png 3 -sketch/giraffe/n02439033_10803-1.png 3 -sketch/giraffe/n02439033_10803-2.png 3 -sketch/giraffe/n02439033_10803-3.png 3 -sketch/giraffe/n02439033_10803-4.png 3 -sketch/giraffe/n02439033_10803-5.png 3 -sketch/giraffe/n02439033_10811-1.png 3 -sketch/giraffe/n02439033_10811-2.png 3 -sketch/giraffe/n02439033_10811-3.png 3 -sketch/giraffe/n02439033_10811-4.png 3 -sketch/giraffe/n02439033_10811-5.png 3 -sketch/giraffe/n02439033_10811-6.png 3 -sketch/giraffe/n02439033_10811-7.png 3 -sketch/giraffe/n02439033_10839-1.png 3 -sketch/giraffe/n02439033_10839-2.png 3 -sketch/giraffe/n02439033_10839-3.png 3 -sketch/giraffe/n02439033_10839-4.png 3 -sketch/giraffe/n02439033_10839-5.png 3 -sketch/giraffe/n02439033_10839-6.png 3 -sketch/giraffe/n02439033_10839-7.png 3 -sketch/giraffe/n02439033_10919-1.png 3 -sketch/giraffe/n02439033_10919-2.png 3 -sketch/giraffe/n02439033_10919-3.png 3 -sketch/giraffe/n02439033_10919-4.png 3 -sketch/giraffe/n02439033_10919-5.png 3 -sketch/giraffe/n02439033_10919-6.png 3 -sketch/giraffe/n02439033_11059-1.png 3 -sketch/giraffe/n02439033_11059-2.png 3 -sketch/giraffe/n02439033_11059-3.png 3 -sketch/giraffe/n02439033_11059-4.png 3 -sketch/giraffe/n02439033_11059-5.png 3 -sketch/giraffe/n02439033_11059-6.png 3 -sketch/giraffe/n02439033_11059-7.png 3 -sketch/giraffe/n02439033_11059-8.png 3 -sketch/giraffe/n02439033_11059-9.png 3 -sketch/giraffe/n02439033_11114-1.png 3 -sketch/giraffe/n02439033_11114-2.png 3 -sketch/giraffe/n02439033_11114-3.png 3 -sketch/giraffe/n02439033_11114-4.png 3 -sketch/giraffe/n02439033_11114-5.png 3 -sketch/giraffe/n02439033_11130-1.png 3 -sketch/giraffe/n02439033_11130-2.png 3 -sketch/giraffe/n02439033_11130-3.png 3 -sketch/giraffe/n02439033_11130-4.png 3 -sketch/giraffe/n02439033_11130-5.png 3 -sketch/giraffe/n02439033_11130-6.png 3 -sketch/giraffe/n02439033_11215-1.png 3 -sketch/giraffe/n02439033_11215-2.png 3 -sketch/giraffe/n02439033_11215-3.png 3 -sketch/giraffe/n02439033_11215-4.png 3 -sketch/giraffe/n02439033_11215-5.png 3 -sketch/giraffe/n02439033_11273-1.png 3 -sketch/giraffe/n02439033_11273-2.png 3 -sketch/giraffe/n02439033_11273-3.png 3 -sketch/giraffe/n02439033_11273-4.png 3 -sketch/giraffe/n02439033_11273-5.png 3 -sketch/giraffe/n02439033_11273-6.png 3 -sketch/giraffe/n02439033_11328-1.png 3 -sketch/giraffe/n02439033_11328-2.png 3 -sketch/giraffe/n02439033_11328-3.png 3 -sketch/giraffe/n02439033_11328-4.png 3 -sketch/giraffe/n02439033_11328-5.png 3 -sketch/giraffe/n02439033_11328-6.png 3 -sketch/giraffe/n02439033_11458-1.png 3 -sketch/giraffe/n02439033_11458-2.png 3 -sketch/giraffe/n02439033_11458-3.png 3 -sketch/giraffe/n02439033_11458-4.png 3 -sketch/giraffe/n02439033_11458-5.png 3 -sketch/giraffe/n02439033_11458-6.png 3 -sketch/giraffe/n02439033_11486-1.png 3 -sketch/giraffe/n02439033_11486-2.png 3 -sketch/giraffe/n02439033_11486-3.png 3 -sketch/giraffe/n02439033_11486-4.png 3 -sketch/giraffe/n02439033_11486-5.png 3 -sketch/giraffe/n02439033_11487-1.png 3 -sketch/giraffe/n02439033_11487-2.png 3 -sketch/giraffe/n02439033_11487-3.png 3 -sketch/giraffe/n02439033_11487-4.png 3 -sketch/giraffe/n02439033_11487-5.png 3 -sketch/giraffe/n02439033_11487-6.png 3 -sketch/giraffe/n02439033_11487-7.png 3 -sketch/giraffe/n02439033_11504-1.png 3 -sketch/giraffe/n02439033_11504-2.png 3 -sketch/giraffe/n02439033_11504-3.png 3 -sketch/giraffe/n02439033_11504-4.png 3 -sketch/giraffe/n02439033_11504-5.png 3 -sketch/giraffe/n02439033_11504-6.png 3 -sketch/giraffe/n02439033_11504-7.png 3 -sketch/giraffe/n02439033_11599-1.png 3 -sketch/giraffe/n02439033_11599-2.png 3 -sketch/giraffe/n02439033_11599-3.png 3 -sketch/giraffe/n02439033_11599-4.png 3 -sketch/giraffe/n02439033_11599-5.png 3 -sketch/giraffe/n02439033_11599-6.png 3 -sketch/giraffe/n02439033_11599-7.png 3 -sketch/giraffe/n02439033_11599-8.png 3 -sketch/giraffe/n02439033_11627-1.png 3 -sketch/giraffe/n02439033_11627-2.png 3 -sketch/giraffe/n02439033_11627-3.png 3 -sketch/giraffe/n02439033_11627-4.png 3 -sketch/giraffe/n02439033_11627-5.png 3 -sketch/giraffe/n02439033_11627-6.png 3 -sketch/giraffe/n02439033_11627-7.png 3 -sketch/giraffe/n02439033_11666-1.png 3 -sketch/giraffe/n02439033_11666-2.png 3 -sketch/giraffe/n02439033_11666-3.png 3 -sketch/giraffe/n02439033_11666-4.png 3 -sketch/giraffe/n02439033_11666-5.png 3 -sketch/giraffe/n02439033_11666-6.png 3 -sketch/giraffe/n02439033_11666-7.png 3 -sketch/giraffe/n02439033_11683-1.png 3 -sketch/giraffe/n02439033_11683-2.png 3 -sketch/giraffe/n02439033_11683-3.png 3 -sketch/giraffe/n02439033_11683-4.png 3 -sketch/giraffe/n02439033_11683-5.png 3 -sketch/giraffe/n02439033_11683-6.png 3 -sketch/giraffe/n02439033_11683-7.png 3 -sketch/giraffe/n02439033_11715-1.png 3 -sketch/giraffe/n02439033_11715-2.png 3 -sketch/giraffe/n02439033_11715-3.png 3 -sketch/giraffe/n02439033_11715-4.png 3 -sketch/giraffe/n02439033_11715-5.png 3 -sketch/giraffe/n02439033_11715-6.png 3 -sketch/giraffe/n02439033_11845-1.png 3 -sketch/giraffe/n02439033_11845-2.png 3 -sketch/giraffe/n02439033_11845-3.png 3 -sketch/giraffe/n02439033_11845-4.png 3 -sketch/giraffe/n02439033_11845-5.png 3 -sketch/giraffe/n02439033_11845-6.png 3 -sketch/giraffe/n02439033_11845-7.png 3 -sketch/giraffe/n02439033_11845-8.png 3 -sketch/giraffe/n02439033_11845-9.png 3 -sketch/giraffe/n02439033_11845-10.png 3 -sketch/giraffe/n02439033_11894-1.png 3 -sketch/giraffe/n02439033_11894-2.png 3 -sketch/giraffe/n02439033_11894-3.png 3 -sketch/giraffe/n02439033_11894-4.png 3 -sketch/giraffe/n02439033_11894-5.png 3 -sketch/giraffe/n02439033_11894-6.png 3 -sketch/giraffe/n02439033_11894-7.png 3 -sketch/giraffe/n02439033_11894-8.png 3 -sketch/giraffe/n02439033_11894-9.png 3 -sketch/giraffe/n02439033_12059-1.png 3 -sketch/giraffe/n02439033_12059-2.png 3 -sketch/giraffe/n02439033_12059-3.png 3 -sketch/giraffe/n02439033_12059-4.png 3 -sketch/giraffe/n02439033_12059-5.png 3 -sketch/giraffe/n02439033_12413-1.png 3 -sketch/giraffe/n02439033_12413-2.png 3 -sketch/giraffe/n02439033_12413-3.png 3 -sketch/giraffe/n02439033_12413-4.png 3 -sketch/giraffe/n02439033_12413-5.png 3 -sketch/giraffe/n02439033_12413-6.png 3 -sketch/giraffe/n02439033_12413-7.png 3 -sketch/giraffe/n02439033_12485-1.png 3 -sketch/giraffe/n02439033_12485-2.png 3 -sketch/giraffe/n02439033_12485-3.png 3 -sketch/giraffe/n02439033_12485-4.png 3 -sketch/giraffe/n02439033_12485-5.png 3 -sketch/giraffe/n02439033_12485-6.png 3 -sketch/giraffe/n02439033_12680-1.png 3 -sketch/giraffe/n02439033_12680-2.png 3 -sketch/giraffe/n02439033_12680-3.png 3 -sketch/giraffe/n02439033_12680-4.png 3 -sketch/giraffe/n02439033_12680-5.png 3 -sketch/giraffe/n02439033_12930-1.png 3 -sketch/giraffe/n02439033_12930-2.png 3 -sketch/giraffe/n02439033_12930-3.png 3 -sketch/giraffe/n02439033_12930-4.png 3 -sketch/giraffe/n02439033_12930-5.png 3 -sketch/giraffe/n02439033_12939-1.png 3 -sketch/giraffe/n02439033_12939-2.png 3 -sketch/giraffe/n02439033_12939-3.png 3 -sketch/giraffe/n02439033_12939-4.png 3 -sketch/giraffe/n02439033_12939-5.png 3 -sketch/giraffe/n02439033_12939-6.png 3 -sketch/giraffe/n02439033_12939-7.png 3 -sketch/giraffe/n02439033_12939-8.png 3 -sketch/giraffe/n02439033_12987-1.png 3 -sketch/giraffe/n02439033_12987-2.png 3 -sketch/giraffe/n02439033_12987-3.png 3 -sketch/giraffe/n02439033_12987-4.png 3 -sketch/giraffe/n02439033_12987-5.png 3 -sketch/giraffe/n02439033_12987-6.png 3 -sketch/giraffe/n02439033_13236-1.png 3 -sketch/giraffe/n02439033_13236-2.png 3 -sketch/giraffe/n02439033_13236-3.png 3 -sketch/giraffe/n02439033_13236-4.png 3 -sketch/giraffe/n02439033_13236-5.png 3 -sketch/giraffe/n02439033_13236-6.png 3 -sketch/giraffe/n02439033_13384-1.png 3 -sketch/giraffe/n02439033_13384-2.png 3 -sketch/giraffe/n02439033_13384-3.png 3 -sketch/giraffe/n02439033_13384-4.png 3 -sketch/giraffe/n02439033_13384-5.png 3 -sketch/giraffe/n02439033_13384-6.png 3 -sketch/giraffe/n02439033_13430-1.png 3 -sketch/giraffe/n02439033_13430-2.png 3 -sketch/giraffe/n02439033_13430-3.png 3 -sketch/giraffe/n02439033_13430-4.png 3 -sketch/giraffe/n02439033_13430-5.png 3 -sketch/giraffe/n02439033_13602-1.png 3 -sketch/giraffe/n02439033_13602-2.png 3 -sketch/giraffe/n02439033_13602-3.png 3 -sketch/giraffe/n02439033_13602-4.png 3 -sketch/giraffe/n02439033_13602-5.png 3 -sketch/giraffe/n02439033_13602-6.png 3 -sketch/giraffe/n02439033_13602-7.png 3 -sketch/giraffe/n02439033_13868-1.png 3 -sketch/giraffe/n02439033_13868-2.png 3 -sketch/giraffe/n02439033_13868-3.png 3 -sketch/giraffe/n02439033_13868-4.png 3 -sketch/giraffe/n02439033_13868-5.png 3 -sketch/giraffe/n02439033_13868-6.png 3 -sketch/giraffe/n02439033_13868-7.png 3 -sketch/giraffe/n02439033_14040-1.png 3 -sketch/giraffe/n02439033_14040-2.png 3 -sketch/giraffe/n02439033_14040-3.png 3 -sketch/giraffe/n02439033_14040-4.png 3 -sketch/giraffe/n02439033_14040-5.png 3 -sketch/giraffe/n02439033_14040-6.png 3 -sketch/giraffe/n02439033_14060-1.png 3 -sketch/giraffe/n02439033_14060-2.png 3 -sketch/giraffe/n02439033_14060-3.png 3 -sketch/giraffe/n02439033_14060-4.png 3 -sketch/giraffe/n02439033_14060-5.png 3 -sketch/giraffe/n02439033_14060-6.png 3 -sketch/giraffe/n02439033_14060-7.png 3 -sketch/giraffe/n02439033_14060-8.png 3 -sketch/giraffe/n02439033_14121-1.png 3 -sketch/giraffe/n02439033_14121-2.png 3 -sketch/giraffe/n02439033_14121-3.png 3 -sketch/giraffe/n02439033_14121-4.png 3 -sketch/giraffe/n02439033_14121-5.png 3 -sketch/giraffe/n02439033_14121-6.png 3 -sketch/giraffe/n02439033_14121-7.png 3 -sketch/giraffe/n02439033_14121-8.png 3 -sketch/giraffe/n02439033_14121-9.png 3 -sketch/giraffe/n02439033_14121-10.png 3 -sketch/giraffe/n02439033_14148-1.png 3 -sketch/giraffe/n02439033_14148-2.png 3 -sketch/giraffe/n02439033_14148-3.png 3 -sketch/giraffe/n02439033_14148-4.png 3 -sketch/giraffe/n02439033_14148-5.png 3 -sketch/giraffe/n02439033_14148-6.png 3 -sketch/giraffe/n02439033_14148-7.png 3 -sketch/giraffe/n02439033_14148-8.png 3 -sketch/giraffe/n02439033_14148-9.png 3 -sketch/giraffe/n02439033_14148-10.png 3 -sketch/giraffe/n02439033_14184-1.png 3 -sketch/giraffe/n02439033_14184-2.png 3 -sketch/giraffe/n02439033_14184-3.png 3 -sketch/giraffe/7361.png 3 -sketch/giraffe/n02439033_14184-4.png 3 -sketch/giraffe/n02439033_14184-5.png 3 -sketch/giraffe/n02439033_14322-1.png 3 -sketch/giraffe/n02439033_14322-2.png 3 -sketch/giraffe/n02439033_14322-3.png 3 -sketch/giraffe/n02439033_14322-4.png 3 -sketch/giraffe/n02439033_14322-5.png 3 -sketch/giraffe/n02439033_14497-1.png 3 -sketch/giraffe/n02439033_14497-2.png 3 -sketch/giraffe/n02439033_14497-3.png 3 -sketch/giraffe/n02439033_14497-4.png 3 -sketch/giraffe/n02439033_14497-5.png 3 -sketch/giraffe/n02439033_14497-6.png 3 -sketch/giraffe/n02439033_14554-1.png 3 -sketch/giraffe/n02439033_14554-2.png 3 -sketch/giraffe/n02439033_14554-3.png 3 -sketch/giraffe/n02439033_14554-4.png 3 -sketch/giraffe/n02439033_14554-5.png 3 -sketch/giraffe/n02439033_14554-6.png 3 -sketch/giraffe/n02439033_14554-7.png 3 -sketch/giraffe/n02439033_14554-8.png 3 -sketch/giraffe/n02439033_14554-9.png 3 -sketch/giraffe/n02439033_14580-1.png 3 -sketch/giraffe/n02439033_14580-2.png 3 -sketch/giraffe/n02439033_14580-3.png 3 -sketch/giraffe/n02439033_14580-4.png 3 -sketch/giraffe/n02439033_14580-5.png 3 -sketch/giraffe/n02439033_14580-6.png 3 -sketch/giraffe/n02439033_14580-7.png 3 -sketch/giraffe/n02439033_14580-8.png 3 -sketch/giraffe/n02439033_14580-9.png 3 -sketch/giraffe/n02439033_14580-10.png 3 -sketch/giraffe/n02439033_14600-1.png 3 -sketch/giraffe/n02439033_14600-2.png 3 -sketch/giraffe/n02439033_14600-3.png 3 -sketch/giraffe/n02439033_14600-4.png 3 -sketch/giraffe/n02439033_14600-5.png 3 -sketch/giraffe/n02439033_14600-6.png 3 -sketch/giraffe/n02439033_14600-7.png 3 -sketch/giraffe/n02439033_14600-8.png 3 -sketch/giraffe/n02439033_14600-9.png 3 -sketch/giraffe/n02439033_14609-1.png 3 -sketch/giraffe/n02439033_14609-2.png 3 -sketch/giraffe/n02439033_14609-3.png 3 -sketch/giraffe/n02439033_14609-4.png 3 -sketch/giraffe/n02439033_14609-5.png 3 -sketch/giraffe/n02439033_14609-6.png 3 -sketch/giraffe/n02439033_14724-1.png 3 -sketch/giraffe/n02439033_14724-2.png 3 -sketch/giraffe/n02439033_14724-3.png 3 -sketch/giraffe/n02439033_14724-4.png 3 -sketch/giraffe/n02439033_14724-5.png 3 -sketch/giraffe/n02439033_14764-1.png 3 -sketch/giraffe/n02439033_14764-2.png 3 -sketch/giraffe/n02439033_14764-3.png 3 -sketch/giraffe/n02439033_14764-4.png 3 -sketch/giraffe/n02439033_14764-5.png 3 -sketch/giraffe/n02439033_14781-1.png 3 -sketch/giraffe/n02439033_14781-2.png 3 -sketch/giraffe/n02439033_14781-3.png 3 -sketch/giraffe/n02439033_14781-4.png 3 -sketch/giraffe/n02439033_14781-5.png 3 -sketch/giraffe/n02439033_14781-6.png 3 -sketch/giraffe/n02439033_14781-7.png 3 -sketch/giraffe/n02439033_14781-8.png 3 -sketch/giraffe/n02439033_14784-1.png 3 -sketch/giraffe/n02439033_14784-2.png 3 -sketch/giraffe/n02439033_14784-3.png 3 -sketch/giraffe/n02439033_14784-4.png 3 -sketch/giraffe/n02439033_14784-5.png 3 -sketch/giraffe/n02439033_14784-6.png 3 -sketch/giraffe/n02439033_14846-1.png 3 -sketch/giraffe/n02439033_14846-2.png 3 -sketch/giraffe/n02439033_14846-3.png 3 -sketch/giraffe/n02439033_14846-4.png 3 -sketch/giraffe/n02439033_14846-5.png 3 -sketch/giraffe/n02439033_14846-6.png 3 -sketch/giraffe/n02439033_14846-7.png 3 -sketch/giraffe/n02439033_14846-8.png 3 -sketch/giraffe/n02439033_14872-1.png 3 -sketch/giraffe/n02439033_14872-2.png 3 -sketch/giraffe/n02439033_14872-3.png 3 -sketch/giraffe/n02439033_14872-4.png 3 -sketch/giraffe/n02439033_14872-5.png 3 -sketch/giraffe/n02439033_14872-6.png 3 -sketch/giraffe/n02439033_14885-1.png 3 -sketch/giraffe/n02439033_14885-2.png 3 -sketch/giraffe/n02439033_14885-3.png 3 -sketch/giraffe/n02439033_14885-4.png 3 -sketch/giraffe/n02439033_14885-5.png 3 -sketch/giraffe/n02439033_14962-1.png 3 -sketch/giraffe/n02439033_14962-2.png 3 -sketch/giraffe/n02439033_14962-3.png 3 -sketch/giraffe/n02439033_14962-4.png 3 -sketch/giraffe/n02439033_14962-5.png 3 -sketch/giraffe/n02439033_14962-6.png 3 -sketch/giraffe/n02439033_14962-7.png 3 -sketch/giraffe/n02439033_15005-1.png 3 -sketch/giraffe/n02439033_15005-2.png 3 -sketch/giraffe/n02439033_15005-3.png 3 -sketch/giraffe/n02439033_15005-4.png 3 -sketch/giraffe/n02439033_15005-5.png 3 -sketch/giraffe/n02439033_15005-6.png 3 -sketch/giraffe/n02439033_15005-7.png 3 -sketch/giraffe/n02439033_15005-8.png 3 -sketch/giraffe/n02439033_15005-9.png 3 -sketch/giraffe/n02439033_15005-10.png 3 -sketch/giraffe/n02439033_15384-1.png 3 -sketch/giraffe/n02439033_15384-2.png 3 -sketch/giraffe/n02439033_15384-3.png 3 -sketch/giraffe/n02439033_15384-4.png 3 -sketch/giraffe/n02439033_15384-5.png 3 -sketch/giraffe/n02439033_15401-1.png 3 -sketch/giraffe/n02439033_15401-2.png 3 -sketch/giraffe/n02439033_15401-3.png 3 -sketch/giraffe/n02439033_15401-4.png 3 -sketch/giraffe/n02439033_15401-5.png 3 -sketch/giraffe/n02439033_15453-1.png 3 -sketch/giraffe/n02439033_15453-2.png 3 -sketch/giraffe/n02439033_15453-3.png 3 -sketch/giraffe/n02439033_15453-4.png 3 -sketch/giraffe/n02439033_15453-5.png 3 -sketch/giraffe/n02439033_15453-6.png 3 -sketch/giraffe/n02439033_15453-7.png 3 -sketch/giraffe/n02439033_15453-8.png 3 -sketch/giraffe/n02439033_15453-9.png 3 -sketch/giraffe/n02439033_15479-1.png 3 -sketch/giraffe/n02439033_15479-2.png 3 -sketch/giraffe/n02439033_15479-3.png 3 -sketch/giraffe/n02439033_15479-4.png 3 -sketch/giraffe/n02439033_15479-5.png 3 -sketch/giraffe/n02439033_15479-6.png 3 -sketch/giraffe/n02439033_15479-7.png 3 -sketch/giraffe/n02439033_15540-1.png 3 -sketch/giraffe/n02439033_15540-2.png 3 -sketch/giraffe/n02439033_15540-3.png 3 -sketch/giraffe/n02439033_15540-4.png 3 -sketch/giraffe/n02439033_15540-5.png 3 -sketch/giraffe/n02439033_15540-6.png 3 -sketch/giraffe/n02439033_15555-1.png 3 -sketch/giraffe/n02439033_15555-2.png 3 -sketch/giraffe/n02439033_15555-3.png 3 -sketch/giraffe/n02439033_15555-4.png 3 -sketch/giraffe/n02439033_15555-5.png 3 -sketch/giraffe/n02439033_15936-1.png 3 -sketch/giraffe/n02439033_15936-2.png 3 -sketch/giraffe/n02439033_15936-3.png 3 -sketch/giraffe/n02439033_15936-4.png 3 -sketch/giraffe/n02439033_15936-5.png 3 -sketch/giraffe/n02439033_15936-6.png 3 -sketch/giraffe/n02439033_15936-7.png 3 -sketch/giraffe/n02439033_16085-1.png 3 -sketch/giraffe/n02439033_16085-2.png 3 -sketch/giraffe/n02439033_16085-3.png 3 -sketch/giraffe/n02439033_16085-4.png 3 -sketch/giraffe/n02439033_16085-5.png 3 -sketch/giraffe/n02439033_16356-1.png 3 -sketch/giraffe/n02439033_16356-2.png 3 -sketch/giraffe/n02439033_16356-3.png 3 -sketch/giraffe/n02439033_16356-4.png 3 -sketch/giraffe/n02439033_16356-5.png 3 -sketch/giraffe/n02439033_16483-1.png 3 -sketch/giraffe/n02439033_16483-2.png 3 -sketch/giraffe/n02439033_16483-3.png 3 -sketch/giraffe/n02439033_16483-4.png 3 -sketch/giraffe/n02439033_16483-5.png 3 -sketch/giraffe/n02439033_16483-6.png 3 -sketch/giraffe/7362.png 3 -sketch/giraffe/7363.png 3 -sketch/giraffe/7364.png 3 -sketch/giraffe/7365.png 3 -sketch/giraffe/7366.png 3 -sketch/giraffe/7367.png 3 -sketch/giraffe/7368.png 3 -sketch/giraffe/7369.png 3 -sketch/giraffe/7370.png 3 -sketch/giraffe/7371.png 3 -sketch/giraffe/7372.png 3 -sketch/giraffe/7373.png 3 -sketch/giraffe/7374.png 3 -sketch/giraffe/7375.png 3 -sketch/giraffe/7376.png 3 -sketch/giraffe/7377.png 3 -sketch/giraffe/7378.png 3 -sketch/giraffe/7379.png 3 -sketch/giraffe/7380.png 3 -sketch/giraffe/7381.png 3 -sketch/giraffe/7382.png 3 -sketch/giraffe/7383.png 3 -sketch/giraffe/7384.png 3 -sketch/giraffe/7385.png 3 -sketch/giraffe/7386.png 3 -sketch/giraffe/7387.png 3 -sketch/giraffe/7388.png 3 -sketch/giraffe/7389.png 3 -sketch/giraffe/7390.png 3 -sketch/giraffe/7391.png 3 -sketch/giraffe/7392.png 3 -sketch/giraffe/7393.png 3 -sketch/giraffe/7394.png 3 -sketch/giraffe/7395.png 3 -sketch/giraffe/7396.png 3 -sketch/giraffe/7397.png 3 -sketch/giraffe/7398.png 3 -sketch/giraffe/7399.png 3 -sketch/giraffe/7400.png 3 -sketch/giraffe/7401.png 3 -sketch/giraffe/7402.png 3 -sketch/giraffe/7403.png 3 -sketch/giraffe/7404.png 3 -sketch/giraffe/7405.png 3 -sketch/giraffe/7406.png 3 -sketch/giraffe/7407.png 3 -sketch/giraffe/7408.png 3 -sketch/giraffe/7409.png 3 -sketch/giraffe/7410.png 3 -sketch/giraffe/7411.png 3 -sketch/giraffe/7412.png 3 -sketch/giraffe/7413.png 3 -sketch/giraffe/7414.png 3 -sketch/giraffe/7415.png 3 -sketch/giraffe/7416.png 3 -sketch/giraffe/7417.png 3 -sketch/giraffe/7418.png 3 -sketch/giraffe/7419.png 3 -sketch/giraffe/7420.png 3 -sketch/giraffe/7421.png 3 -sketch/giraffe/7422.png 3 -sketch/giraffe/7423.png 3 -sketch/giraffe/7424.png 3 -sketch/giraffe/7425.png 3 -sketch/giraffe/7426.png 3 -sketch/giraffe/7427.png 3 -sketch/giraffe/7428.png 3 -sketch/giraffe/7429.png 3 -sketch/giraffe/7430.png 3 -sketch/giraffe/7431.png 3 -sketch/giraffe/7432.png 3 -sketch/giraffe/7433.png 3 -sketch/giraffe/7434.png 3 -sketch/giraffe/7435.png 3 -sketch/giraffe/7436.png 3 -sketch/giraffe/7437.png 3 -sketch/giraffe/7438.png 3 -sketch/giraffe/7439.png 3 -sketch/giraffe/7440.png 3 -sketch/guitar/7601.png 4 -sketch/guitar/7602.png 4 -sketch/guitar/7603.png 4 -sketch/guitar/7604.png 4 -sketch/guitar/7605.png 4 -sketch/guitar/7606.png 4 -sketch/guitar/7607.png 4 -sketch/guitar/7608.png 4 -sketch/guitar/7609.png 4 -sketch/guitar/7610.png 4 -sketch/guitar/7611.png 4 -sketch/guitar/7612.png 4 -sketch/guitar/7613.png 4 -sketch/guitar/7614.png 4 -sketch/guitar/7615.png 4 -sketch/guitar/7616.png 4 -sketch/guitar/7617.png 4 -sketch/guitar/7618.png 4 -sketch/guitar/7619.png 4 -sketch/guitar/7620.png 4 -sketch/guitar/7621.png 4 -sketch/guitar/7622.png 4 -sketch/guitar/7623.png 4 -sketch/guitar/7624.png 4 -sketch/guitar/7625.png 4 -sketch/guitar/7626.png 4 -sketch/guitar/7627.png 4 -sketch/guitar/7628.png 4 -sketch/guitar/7629.png 4 -sketch/guitar/7630.png 4 -sketch/guitar/7631.png 4 -sketch/guitar/7632.png 4 -sketch/guitar/7633.png 4 -sketch/guitar/7634.png 4 -sketch/guitar/7635.png 4 -sketch/guitar/7636.png 4 -sketch/guitar/7637.png 4 -sketch/guitar/7638.png 4 -sketch/guitar/7639.png 4 -sketch/guitar/7640.png 4 -sketch/guitar/7641.png 4 -sketch/guitar/7642.png 4 -sketch/guitar/7643.png 4 -sketch/guitar/7644.png 4 -sketch/guitar/7645.png 4 -sketch/guitar/7646.png 4 -sketch/guitar/7647.png 4 -sketch/guitar/7648.png 4 -sketch/guitar/7649.png 4 -sketch/guitar/7650.png 4 -sketch/guitar/7651.png 4 -sketch/guitar/7652.png 4 -sketch/guitar/7653.png 4 -sketch/guitar/7654.png 4 -sketch/guitar/7655.png 4 -sketch/guitar/7656.png 4 -sketch/guitar/7657.png 4 -sketch/guitar/7658.png 4 -sketch/guitar/7659.png 4 -sketch/guitar/7660.png 4 -sketch/guitar/7661.png 4 -sketch/guitar/7662.png 4 -sketch/guitar/7663.png 4 -sketch/guitar/7664.png 4 -sketch/guitar/7665.png 4 -sketch/guitar/7666.png 4 -sketch/guitar/7667.png 4 -sketch/guitar/7668.png 4 -sketch/guitar/7669.png 4 -sketch/guitar/7670.png 4 -sketch/guitar/7671.png 4 -sketch/guitar/7672.png 4 -sketch/guitar/7673.png 4 -sketch/guitar/7674.png 4 -sketch/guitar/7675.png 4 -sketch/guitar/7676.png 4 -sketch/guitar/7677.png 4 -sketch/guitar/7678.png 4 -sketch/guitar/7679.png 4 -sketch/guitar/7680.png 4 -sketch/guitar/n02676566_307-1.png 4 -sketch/guitar/n02676566_307-2.png 4 -sketch/guitar/n02676566_307-3.png 4 -sketch/guitar/n02676566_307-4.png 4 -sketch/guitar/n02676566_307-5.png 4 -sketch/guitar/n02676566_330-1.png 4 -sketch/guitar/n02676566_330-2.png 4 -sketch/guitar/n02676566_330-3.png 4 -sketch/guitar/n02676566_330-4.png 4 -sketch/guitar/n02676566_330-5.png 4 -sketch/guitar/n02676566_330-6.png 4 -sketch/guitar/n02676566_659-1.png 4 -sketch/guitar/n02676566_659-2.png 4 -sketch/guitar/n02676566_659-3.png 4 -sketch/guitar/n02676566_659-4.png 4 -sketch/guitar/n02676566_659-5.png 4 -sketch/guitar/n02676566_970-1.png 4 -sketch/guitar/n02676566_970-2.png 4 -sketch/guitar/n02676566_970-3.png 4 -sketch/guitar/n02676566_970-4.png 4 -sketch/guitar/n02676566_970-5.png 4 -sketch/guitar/n02676566_970-6.png 4 -sketch/guitar/n02676566_1324-1.png 4 -sketch/guitar/n02676566_1324-2.png 4 -sketch/guitar/n02676566_1324-3.png 4 -sketch/guitar/n02676566_1324-4.png 4 -sketch/guitar/n02676566_1324-5.png 4 -sketch/guitar/n02676566_2380-1.png 4 -sketch/guitar/n02676566_2380-2.png 4 -sketch/guitar/n02676566_2380-3.png 4 -sketch/guitar/n02676566_2380-4.png 4 -sketch/guitar/n02676566_2380-5.png 4 -sketch/guitar/n02676566_2866-1.png 4 -sketch/guitar/n02676566_2866-2.png 4 -sketch/guitar/n02676566_2866-3.png 4 -sketch/guitar/n02676566_2866-4.png 4 -sketch/guitar/n02676566_2866-5.png 4 -sketch/guitar/n02676566_3360-1.png 4 -sketch/guitar/n02676566_3360-2.png 4 -sketch/guitar/n02676566_3360-3.png 4 -sketch/guitar/n02676566_3360-4.png 4 -sketch/guitar/n02676566_3360-5.png 4 -sketch/guitar/n02676566_3360-6.png 4 -sketch/guitar/n02676566_4058-1.png 4 -sketch/guitar/n02676566_4058-2.png 4 -sketch/guitar/n02676566_4058-3.png 4 -sketch/guitar/n02676566_4058-4.png 4 -sketch/guitar/n02676566_4058-5.png 4 -sketch/guitar/n02676566_4058-6.png 4 -sketch/guitar/n02676566_4189-1.png 4 -sketch/guitar/n02676566_4189-2.png 4 -sketch/guitar/n02676566_4189-3.png 4 -sketch/guitar/n02676566_4189-4.png 4 -sketch/guitar/n02676566_4189-5.png 4 -sketch/guitar/n02676566_4469-1.png 4 -sketch/guitar/n02676566_4469-2.png 4 -sketch/guitar/n02676566_4469-3.png 4 -sketch/guitar/n02676566_4469-4.png 4 -sketch/guitar/n02676566_4469-5.png 4 -sketch/guitar/n02676566_4605-1.png 4 -sketch/guitar/n02676566_4605-2.png 4 -sketch/guitar/n02676566_4605-3.png 4 -sketch/guitar/n02676566_4605-4.png 4 -sketch/guitar/n02676566_4605-5.png 4 -sketch/guitar/n02676566_4605-6.png 4 -sketch/guitar/n02676566_4699-1.png 4 -sketch/guitar/n02676566_4699-2.png 4 -sketch/guitar/n02676566_4699-3.png 4 -sketch/guitar/n02676566_4699-4.png 4 -sketch/guitar/n02676566_4699-5.png 4 -sketch/guitar/n02676566_5134-1.png 4 -sketch/guitar/n02676566_5134-2.png 4 -sketch/guitar/n02676566_5134-3.png 4 -sketch/guitar/n02676566_5134-4.png 4 -sketch/guitar/n02676566_5134-5.png 4 -sketch/guitar/n02676566_5489-1.png 4 -sketch/guitar/n02676566_5489-2.png 4 -sketch/guitar/n02676566_5489-3.png 4 -sketch/guitar/n02676566_5489-4.png 4 -sketch/guitar/n02676566_5489-5.png 4 -sketch/guitar/n02676566_5489-6.png 4 -sketch/guitar/n02676566_5489-7.png 4 -sketch/guitar/n02676566_5735-1.png 4 -sketch/guitar/n02676566_5735-2.png 4 -sketch/guitar/n02676566_5735-3.png 4 -sketch/guitar/n02676566_5735-4.png 4 -sketch/guitar/n02676566_5735-5.png 4 -sketch/guitar/n02676566_6150-1.png 4 -sketch/guitar/n02676566_6150-2.png 4 -sketch/guitar/n02676566_6150-3.png 4 -sketch/guitar/n02676566_6150-4.png 4 -sketch/guitar/n02676566_6150-5.png 4 -sketch/guitar/n02676566_6402-1.png 4 -sketch/guitar/n02676566_6402-2.png 4 -sketch/guitar/n02676566_6402-3.png 4 -sketch/guitar/n02676566_6402-4.png 4 -sketch/guitar/n02676566_6402-5.png 4 -sketch/guitar/n02676566_6430-1.png 4 -sketch/guitar/n02676566_6430-2.png 4 -sketch/guitar/n02676566_6430-3.png 4 -sketch/guitar/n02676566_6430-4.png 4 -sketch/guitar/n02676566_6430-5.png 4 -sketch/guitar/n02676566_6560-1.png 4 -sketch/guitar/n02676566_6560-2.png 4 -sketch/guitar/n02676566_6560-3.png 4 -sketch/guitar/n02676566_6560-4.png 4 -sketch/guitar/n02676566_6560-5.png 4 -sketch/guitar/n02676566_6631-1.png 4 -sketch/guitar/n02676566_6631-2.png 4 -sketch/guitar/n02676566_6631-3.png 4 -sketch/guitar/n02676566_6631-4.png 4 -sketch/guitar/n02676566_6631-5.png 4 -sketch/guitar/n02676566_6704-1.png 4 -sketch/guitar/n02676566_6704-2.png 4 -sketch/guitar/n02676566_6704-3.png 4 -sketch/guitar/n02676566_6704-4.png 4 -sketch/guitar/n02676566_6704-5.png 4 -sketch/guitar/n02676566_6864-1.png 4 -sketch/guitar/n02676566_6864-2.png 4 -sketch/guitar/n02676566_6864-3.png 4 -sketch/guitar/n02676566_6864-4.png 4 -sketch/guitar/n02676566_6864-5.png 4 -sketch/guitar/n02676566_6914-1.png 4 -sketch/guitar/n02676566_6914-2.png 4 -sketch/guitar/n02676566_6914-3.png 4 -sketch/guitar/n02676566_6914-4.png 4 -sketch/guitar/n02676566_6914-5.png 4 -sketch/guitar/n02676566_6948-1.png 4 -sketch/guitar/n02676566_6948-2.png 4 -sketch/guitar/n02676566_6948-3.png 4 -sketch/guitar/n02676566_6948-4.png 4 -sketch/guitar/n02676566_6948-5.png 4 -sketch/guitar/n02676566_6980-1.png 4 -sketch/guitar/n02676566_6980-2.png 4 -sketch/guitar/n02676566_6980-3.png 4 -sketch/guitar/n02676566_6980-4.png 4 -sketch/guitar/n02676566_6980-5.png 4 -sketch/guitar/n02676566_7385-1.png 4 -sketch/guitar/n02676566_7385-2.png 4 -sketch/guitar/n02676566_7385-3.png 4 -sketch/guitar/n02676566_7385-4.png 4 -sketch/guitar/n02676566_7385-5.png 4 -sketch/guitar/n02676566_7385-6.png 4 -sketch/guitar/n02676566_7770-1.png 4 -sketch/guitar/n02676566_7770-2.png 4 -sketch/guitar/n02676566_7770-3.png 4 -sketch/guitar/n02676566_7770-4.png 4 -sketch/guitar/n02676566_7770-5.png 4 -sketch/guitar/n02676566_7830-1.png 4 -sketch/guitar/n02676566_7830-2.png 4 -sketch/guitar/n02676566_7830-3.png 4 -sketch/guitar/n02676566_7830-4.png 4 -sketch/guitar/n02676566_7830-5.png 4 -sketch/guitar/n02676566_7844-1.png 4 -sketch/guitar/n02676566_7844-2.png 4 -sketch/guitar/n02676566_7844-3.png 4 -sketch/guitar/n02676566_7844-4.png 4 -sketch/guitar/n02676566_7844-5.png 4 -sketch/guitar/n02676566_7927-1.png 4 -sketch/guitar/n02676566_7927-2.png 4 -sketch/guitar/n02676566_7927-3.png 4 -sketch/guitar/n02676566_7927-4.png 4 -sketch/guitar/n02676566_7927-5.png 4 -sketch/guitar/n02676566_7927-6.png 4 -sketch/guitar/n02676566_8268-1.png 4 -sketch/guitar/n02676566_8268-2.png 4 -sketch/guitar/n02676566_8268-3.png 4 -sketch/guitar/n02676566_8268-4.png 4 -sketch/guitar/n02676566_8268-5.png 4 -sketch/guitar/n02676566_8309-1.png 4 -sketch/guitar/n02676566_8309-2.png 4 -sketch/guitar/n02676566_8309-3.png 4 -sketch/guitar/n02676566_8309-4.png 4 -sketch/guitar/n02676566_8309-5.png 4 -sketch/guitar/n02676566_8467-1.png 4 -sketch/guitar/n02676566_8467-2.png 4 -sketch/guitar/n02676566_8467-3.png 4 -sketch/guitar/n02676566_8467-4.png 4 -sketch/guitar/n02676566_8467-5.png 4 -sketch/guitar/n02676566_8618-1.png 4 -sketch/guitar/n02676566_8618-2.png 4 -sketch/guitar/n02676566_8618-3.png 4 -sketch/guitar/n02676566_8618-4.png 4 -sketch/guitar/n02676566_8618-5.png 4 -sketch/guitar/n02676566_8618-6.png 4 -sketch/guitar/n02676566_8820-1.png 4 -sketch/guitar/n02676566_8820-2.png 4 -sketch/guitar/n02676566_8820-3.png 4 -sketch/guitar/n02676566_8820-4.png 4 -sketch/guitar/n02676566_8820-5.png 4 -sketch/guitar/n02676566_8859-1.png 4 -sketch/guitar/n02676566_8859-2.png 4 -sketch/guitar/n02676566_8859-3.png 4 -sketch/guitar/n02676566_8859-4.png 4 -sketch/guitar/n02676566_8859-5.png 4 -sketch/guitar/n02676566_8859-6.png 4 -sketch/guitar/n02676566_8997-1.png 4 -sketch/guitar/n02676566_8997-2.png 4 -sketch/guitar/n02676566_8997-3.png 4 -sketch/guitar/n02676566_8997-4.png 4 -sketch/guitar/n02676566_8997-5.png 4 -sketch/guitar/n02676566_9062-1.png 4 -sketch/guitar/n02676566_9062-2.png 4 -sketch/guitar/n02676566_9062-3.png 4 -sketch/guitar/n02676566_9062-4.png 4 -sketch/guitar/n02676566_9062-5.png 4 -sketch/guitar/n02676566_9243-1.png 4 -sketch/guitar/n02676566_9243-2.png 4 -sketch/guitar/n02676566_9243-3.png 4 -sketch/guitar/n02676566_9243-4.png 4 -sketch/guitar/n02676566_9243-5.png 4 -sketch/guitar/n02676566_9243-6.png 4 -sketch/guitar/n02676566_9254-1.png 4 -sketch/guitar/n02676566_9254-2.png 4 -sketch/guitar/n02676566_9254-3.png 4 -sketch/guitar/n02676566_9254-4.png 4 -sketch/guitar/n02676566_9254-5.png 4 -sketch/guitar/n02676566_9451-1.png 4 -sketch/guitar/n02676566_9451-2.png 4 -sketch/guitar/n02676566_9451-3.png 4 -sketch/guitar/n02676566_9451-4.png 4 -sketch/guitar/n02676566_9451-5.png 4 -sketch/guitar/n02676566_9577-1.png 4 -sketch/guitar/n02676566_9577-2.png 4 -sketch/guitar/n02676566_9577-3.png 4 -sketch/guitar/n02676566_9577-4.png 4 -sketch/guitar/n02676566_9577-5.png 4 -sketch/guitar/n02676566_9577-6.png 4 -sketch/guitar/n02676566_9612-1.png 4 -sketch/guitar/n02676566_9612-2.png 4 -sketch/guitar/n02676566_9612-3.png 4 -sketch/guitar/n02676566_9612-4.png 4 -sketch/guitar/n02676566_9612-5.png 4 -sketch/guitar/n02676566_9661-1.png 4 -sketch/guitar/n02676566_9661-2.png 4 -sketch/guitar/n02676566_9661-3.png 4 -sketch/guitar/n02676566_9661-4.png 4 -sketch/guitar/n02676566_9661-5.png 4 -sketch/guitar/n02676566_9661-6.png 4 -sketch/guitar/n02676566_9936-1.png 4 -sketch/guitar/n02676566_9936-2.png 4 -sketch/guitar/n02676566_9936-3.png 4 -sketch/guitar/n02676566_9936-4.png 4 -sketch/guitar/n02676566_9936-5.png 4 -sketch/guitar/n02676566_11377-1.png 4 -sketch/guitar/n02676566_11377-2.png 4 -sketch/guitar/n02676566_11377-3.png 4 -sketch/guitar/n02676566_11377-4.png 4 -sketch/guitar/n02676566_11377-5.png 4 -sketch/guitar/n02676566_11573-1.png 4 -sketch/guitar/n02676566_11573-2.png 4 -sketch/guitar/n02676566_11573-3.png 4 -sketch/guitar/n02676566_11573-4.png 4 -sketch/guitar/n02676566_11573-5.png 4 -sketch/guitar/n02676566_12344-1.png 4 -sketch/guitar/n02676566_12344-2.png 4 -sketch/guitar/n02676566_12344-3.png 4 -sketch/guitar/n02676566_12344-4.png 4 -sketch/guitar/n02676566_12344-5.png 4 -sketch/guitar/n03272010_392-1.png 4 -sketch/guitar/n03272010_392-2.png 4 -sketch/guitar/n03272010_392-3.png 4 -sketch/guitar/n03272010_392-4.png 4 -sketch/guitar/n03272010_392-5.png 4 -sketch/guitar/n03272010_446-1.png 4 -sketch/guitar/n03272010_446-2.png 4 -sketch/guitar/n03272010_446-3.png 4 -sketch/guitar/n03272010_446-4.png 4 -sketch/guitar/n03272010_446-5.png 4 -sketch/guitar/n03272010_1708-1.png 4 -sketch/guitar/n03272010_1708-2.png 4 -sketch/guitar/n03272010_1708-3.png 4 -sketch/guitar/n03272010_1708-4.png 4 -sketch/guitar/n03272010_1708-5.png 4 -sketch/guitar/n03272010_1708-6.png 4 -sketch/guitar/n03272010_3732-1.png 4 -sketch/guitar/n03272010_3732-2.png 4 -sketch/guitar/n03272010_3732-3.png 4 -sketch/guitar/n03272010_3732-4.png 4 -sketch/guitar/n03272010_3732-5.png 4 -sketch/guitar/n03272010_3732-6.png 4 -sketch/guitar/n03272010_5483-1.png 4 -sketch/guitar/n03272010_5483-2.png 4 -sketch/guitar/n03272010_5483-3.png 4 -sketch/guitar/n03272010_5483-4.png 4 -sketch/guitar/n03272010_5483-5.png 4 -sketch/guitar/n03272010_5483-6.png 4 -sketch/guitar/n03272010_5875-1.png 4 -sketch/guitar/n03272010_5875-2.png 4 -sketch/guitar/n03272010_5875-3.png 4 -sketch/guitar/n03272010_5875-4.png 4 -sketch/guitar/n03272010_5875-5.png 4 -sketch/guitar/n03272010_5887-1.png 4 -sketch/guitar/n03272010_5887-2.png 4 -sketch/guitar/n03272010_5887-3.png 4 -sketch/guitar/n03272010_5887-4.png 4 -sketch/guitar/n03272010_5887-5.png 4 -sketch/guitar/n03272010_5887-6.png 4 -sketch/guitar/n03272010_5887-7.png 4 -sketch/guitar/n03272010_6152-1.png 4 -sketch/guitar/n03272010_6152-2.png 4 -sketch/guitar/n03272010_6152-3.png 4 -sketch/guitar/n03272010_6152-4.png 4 -sketch/guitar/n03272010_6152-5.png 4 -sketch/guitar/n03272010_6255-1.png 4 -sketch/guitar/n03272010_6255-2.png 4 -sketch/guitar/n03272010_6255-3.png 4 -sketch/guitar/n03272010_6255-4.png 4 -sketch/guitar/n03272010_6255-5.png 4 -sketch/guitar/n03272010_6291-1.png 4 -sketch/guitar/n03272010_6291-2.png 4 -sketch/guitar/n03272010_6291-3.png 4 -sketch/guitar/n03272010_6291-4.png 4 -sketch/guitar/n03272010_6291-5.png 4 -sketch/guitar/n03272010_6650-1.png 4 -sketch/guitar/n03272010_6650-2.png 4 -sketch/guitar/n03272010_6650-3.png 4 -sketch/guitar/n03272010_6650-4.png 4 -sketch/guitar/n03272010_6650-5.png 4 -sketch/guitar/n03272010_6650-6.png 4 -sketch/guitar/n03272010_6662-1.png 4 -sketch/guitar/n03272010_6662-2.png 4 -sketch/guitar/n03272010_6662-3.png 4 -sketch/guitar/n03272010_6662-4.png 4 -sketch/guitar/n03272010_6662-5.png 4 -sketch/guitar/n03272010_6662-6.png 4 -sketch/guitar/n03272010_6662-7.png 4 -sketch/guitar/n03272010_6718-1.png 4 -sketch/guitar/n03272010_6718-2.png 4 -sketch/guitar/n03272010_6718-3.png 4 -sketch/guitar/n03272010_6718-4.png 4 -sketch/guitar/n03272010_6718-5.png 4 -sketch/guitar/n03272010_6725-1.png 4 -sketch/guitar/n03272010_6725-2.png 4 -sketch/guitar/n03272010_6725-3.png 4 -sketch/guitar/n03272010_6725-4.png 4 -sketch/guitar/n03272010_6725-5.png 4 -sketch/guitar/n03272010_6727-1.png 4 -sketch/guitar/n03272010_6727-2.png 4 -sketch/guitar/n03272010_6727-3.png 4 -sketch/guitar/n03272010_6727-4.png 4 -sketch/guitar/n03272010_6727-5.png 4 -sketch/guitar/n03272010_6737-1.png 4 -sketch/guitar/n03272010_6737-2.png 4 -sketch/guitar/n03272010_6737-3.png 4 -sketch/guitar/n03272010_6737-4.png 4 -sketch/guitar/n03272010_6737-5.png 4 -sketch/guitar/n03272010_6737-6.png 4 -sketch/guitar/n03272010_6799-1.png 4 -sketch/guitar/n03272010_6799-2.png 4 -sketch/guitar/n03272010_6799-3.png 4 -sketch/guitar/n03272010_6799-4.png 4 -sketch/guitar/n03272010_6799-5.png 4 -sketch/guitar/n03272010_6809-1.png 4 -sketch/guitar/n03272010_6809-2.png 4 -sketch/guitar/n03272010_6809-3.png 4 -sketch/guitar/n03272010_6809-4.png 4 -sketch/guitar/n03272010_6809-5.png 4 -sketch/guitar/n03272010_6820-1.png 4 -sketch/guitar/n03272010_6820-2.png 4 -sketch/guitar/n03272010_6820-3.png 4 -sketch/guitar/n03272010_6820-4.png 4 -sketch/guitar/n03272010_6820-5.png 4 -sketch/guitar/n03272010_6926-1.png 4 -sketch/guitar/n03272010_6926-2.png 4 -sketch/guitar/n03272010_6926-3.png 4 -sketch/guitar/n03272010_6926-4.png 4 -sketch/guitar/n03272010_6926-5.png 4 -sketch/guitar/n03272010_7000-1.png 4 -sketch/guitar/n03272010_7000-2.png 4 -sketch/guitar/n03272010_7000-3.png 4 -sketch/guitar/n03272010_7000-4.png 4 -sketch/guitar/n03272010_7000-5.png 4 -sketch/guitar/n03272010_7092-1.png 4 -sketch/guitar/n03272010_7092-2.png 4 -sketch/guitar/n03272010_7092-3.png 4 -sketch/guitar/n03272010_7092-4.png 4 -sketch/guitar/n03272010_7092-5.png 4 -sketch/guitar/n03272010_7383-1.png 4 -sketch/guitar/n03272010_7383-2.png 4 -sketch/guitar/n03272010_7383-3.png 4 -sketch/guitar/n03272010_7383-4.png 4 -sketch/guitar/n03272010_7383-5.png 4 -sketch/guitar/n03272010_7390-1.png 4 -sketch/guitar/n03272010_7390-2.png 4 -sketch/guitar/n03272010_7390-3.png 4 -sketch/guitar/n03272010_7390-4.png 4 -sketch/guitar/n03272010_7390-5.png 4 -sketch/guitar/n03272010_7635-1.png 4 -sketch/guitar/n03272010_7635-2.png 4 -sketch/guitar/n03272010_7635-3.png 4 -sketch/guitar/n03272010_7635-4.png 4 -sketch/guitar/n03272010_7635-5.png 4 -sketch/guitar/n03272010_7729-1.png 4 -sketch/guitar/n03272010_7729-2.png 4 -sketch/guitar/n03272010_7729-3.png 4 -sketch/guitar/n03272010_7729-4.png 4 -sketch/guitar/n03272010_7729-5.png 4 -sketch/guitar/n03272010_9557-1.png 4 -sketch/guitar/n03272010_9557-2.png 4 -sketch/guitar/n03272010_9557-3.png 4 -sketch/guitar/n03272010_9557-4.png 4 -sketch/guitar/n03272010_9557-5.png 4 -sketch/guitar/n03272010_9557-6.png 4 -sketch/guitar/n03272010_9858-1.png 4 -sketch/guitar/n03272010_9858-2.png 4 -sketch/guitar/n03272010_9858-3.png 4 -sketch/guitar/n03272010_9858-4.png 4 -sketch/guitar/n03272010_9858-5.png 4 -sketch/guitar/n03272010_9899-1.png 4 -sketch/guitar/n03272010_9899-2.png 4 -sketch/guitar/n03272010_9899-3.png 4 -sketch/guitar/n03272010_9899-4.png 4 -sketch/guitar/n03272010_9899-5.png 4 -sketch/guitar/n03272010_10441-1.png 4 -sketch/guitar/n03272010_10441-2.png 4 -sketch/guitar/n03272010_10441-3.png 4 -sketch/guitar/n03272010_10441-4.png 4 -sketch/guitar/n03272010_10441-5.png 4 -sketch/guitar/n03272010_10795-1.png 4 -sketch/guitar/n03272010_10795-2.png 4 -sketch/guitar/n03272010_10795-3.png 4 -sketch/guitar/n03272010_10795-4.png 4 -sketch/guitar/n03272010_10795-5.png 4 -sketch/guitar/n03272010_11646-1.png 4 -sketch/guitar/n03272010_11646-2.png 4 -sketch/guitar/n03272010_11646-3.png 4 -sketch/guitar/n03272010_11646-4.png 4 -sketch/guitar/n03272010_11646-5.png 4 -sketch/guitar/n03272010_12151-1.png 4 -sketch/guitar/n03272010_12151-2.png 4 -sketch/guitar/n03272010_12151-3.png 4 -sketch/guitar/n03272010_12151-4.png 4 -sketch/guitar/n03272010_12151-5.png 4 -sketch/guitar/n03272010_12468-1.png 4 -sketch/guitar/n03272010_12468-2.png 4 -sketch/guitar/n03272010_12468-3.png 4 -sketch/guitar/n03272010_12468-4.png 4 -sketch/guitar/n03272010_12468-5.png 4 -sketch/guitar/n03467517_3203-1.png 4 -sketch/guitar/n03467517_3203-2.png 4 -sketch/guitar/n03467517_3203-3.png 4 -sketch/guitar/n03467517_3203-4.png 4 -sketch/guitar/n03467517_3203-5.png 4 -sketch/guitar/n03467517_6423-1.png 4 -sketch/guitar/n03467517_6423-2.png 4 -sketch/guitar/n03467517_6423-3.png 4 -sketch/guitar/n03467517_6423-4.png 4 -sketch/guitar/n03467517_6423-5.png 4 -sketch/guitar/n03467517_7007-1.png 4 -sketch/guitar/n03467517_7007-2.png 4 -sketch/guitar/n03467517_7007-3.png 4 -sketch/guitar/n03467517_7007-4.png 4 -sketch/guitar/n03467517_7007-5.png 4 -sketch/guitar/n03467517_7007-6.png 4 -sketch/guitar/n03467517_8929-1.png 4 -sketch/guitar/n03467517_8929-2.png 4 -sketch/guitar/n03467517_8929-3.png 4 -sketch/guitar/n03467517_8929-4.png 4 -sketch/guitar/n03467517_8929-5.png 4 -sketch/guitar/n03467517_11020-1.png 4 -sketch/guitar/n03467517_11020-2.png 4 -sketch/guitar/n03467517_11020-3.png 4 -sketch/guitar/n03467517_11020-4.png 4 -sketch/guitar/n03467517_11020-5.png 4 -sketch/guitar/n03467517_12925-1.png 4 -sketch/guitar/n03467517_12925-2.png 4 -sketch/guitar/n03467517_12925-3.png 4 -sketch/guitar/n03467517_12925-4.png 4 -sketch/guitar/n03467517_12925-5.png 4 -sketch/guitar/n03467517_16911-1.png 4 -sketch/guitar/n03467517_16911-2.png 4 -sketch/guitar/n03467517_16911-3.png 4 -sketch/guitar/n03467517_16911-4.png 4 -sketch/guitar/n03467517_16911-5.png 4 -sketch/guitar/n03467517_17233-1.png 4 -sketch/guitar/n03467517_17233-2.png 4 -sketch/guitar/n03467517_17233-3.png 4 -sketch/guitar/n03467517_17233-4.png 4 -sketch/guitar/n03467517_17233-5.png 4 -sketch/guitar/n03467517_19701-1.png 4 -sketch/guitar/n03467517_19701-2.png 4 -sketch/guitar/n03467517_19701-3.png 4 -sketch/guitar/n03467517_19701-4.png 4 -sketch/guitar/n03467517_19701-5.png 4 -sketch/guitar/n03467517_21782-1.png 4 -sketch/guitar/n03467517_21782-2.png 4 -sketch/guitar/n03467517_21782-3.png 4 -sketch/guitar/n03467517_21782-4.png 4 -sketch/guitar/n03467517_21782-5.png 4 -sketch/guitar/n03467517_21884-1.png 4 -sketch/guitar/n03467517_21884-2.png 4 -sketch/guitar/n03467517_21884-3.png 4 -sketch/guitar/n03467517_21884-4.png 4 -sketch/guitar/n03467517_21884-5.png 4 -sketch/guitar/n03467517_21884-6.png 4 -sketch/guitar/n03467517_22246-1.png 4 -sketch/guitar/n03467517_22246-2.png 4 -sketch/guitar/n03467517_22246-3.png 4 -sketch/guitar/n03467517_22246-4.png 4 -sketch/guitar/n03467517_22246-5.png 4 -sketch/guitar/n03467517_22246-6.png 4 -sketch/guitar/n03467517_22374-1.png 4 -sketch/guitar/n03467517_22374-2.png 4 -sketch/guitar/n03467517_22374-3.png 4 -sketch/guitar/n03467517_22374-4.png 4 -sketch/guitar/n03467517_22374-5.png 4 -sketch/guitar/n03467517_22785-1.png 4 -sketch/guitar/n03467517_22785-2.png 4 -sketch/guitar/n03467517_22785-3.png 4 -sketch/guitar/n03467517_22785-4.png 4 -sketch/guitar/n03467517_22785-5.png 4 -sketch/guitar/n03467517_22871-1.png 4 -sketch/guitar/n03467517_22871-2.png 4 -sketch/guitar/n03467517_22871-3.png 4 -sketch/guitar/n03467517_22871-4.png 4 -sketch/guitar/n03467517_22871-5.png 4 -sketch/guitar/n03467517_23229-1.png 4 -sketch/guitar/n03467517_23229-2.png 4 -sketch/guitar/n03467517_23229-3.png 4 -sketch/guitar/n03467517_23229-4.png 4 -sketch/guitar/n03467517_23229-5.png 4 -sketch/guitar/n03467517_24525-1.png 4 -sketch/guitar/n03467517_24525-2.png 4 -sketch/guitar/n03467517_24525-3.png 4 -sketch/guitar/n03467517_24525-4.png 4 -sketch/guitar/n03467517_24525-5.png 4 -sketch/guitar/n03467517_24525-6.png 4 -sketch/horse/n02374451_54-1.png 5 -sketch/horse/n02374451_54-2.png 5 -sketch/horse/n02374451_54-3.png 5 -sketch/horse/n02374451_54-4.png 5 -sketch/horse/n02374451_54-5.png 5 -sketch/horse/n02374451_54-6.png 5 -sketch/horse/n02374451_54-7.png 5 -sketch/horse/n02374451_54-8.png 5 -sketch/horse/n02374451_54-9.png 5 -sketch/horse/n02374451_54-10.png 5 -sketch/horse/n02374451_245-1.png 5 -sketch/horse/n02374451_245-2.png 5 -sketch/horse/n02374451_245-3.png 5 -sketch/horse/n02374451_245-4.png 5 -sketch/horse/n02374451_245-5.png 5 -sketch/horse/n02374451_245-6.png 5 -sketch/horse/n02374451_257-1.png 5 -sketch/horse/n02374451_257-2.png 5 -sketch/horse/n02374451_257-3.png 5 -sketch/horse/n02374451_257-4.png 5 -sketch/horse/n02374451_257-5.png 5 -sketch/horse/n02374451_257-6.png 5 -sketch/horse/n02374451_257-7.png 5 -sketch/horse/n02374451_262-1.png 5 -sketch/horse/n02374451_262-2.png 5 -sketch/horse/n02374451_262-3.png 5 -sketch/horse/n02374451_262-4.png 5 -sketch/horse/n02374451_262-5.png 5 -sketch/horse/n02374451_262-6.png 5 -sketch/horse/n02374451_262-7.png 5 -sketch/horse/n02374451_262-8.png 5 -sketch/horse/n02374451_262-9.png 5 -sketch/horse/n02374451_262-10.png 5 -sketch/horse/n02374451_262-11.png 5 -sketch/horse/n02374451_262-12.png 5 -sketch/horse/n02374451_276-1.png 5 -sketch/horse/n02374451_276-2.png 5 -sketch/horse/n02374451_276-3.png 5 -sketch/horse/n02374451_276-4.png 5 -sketch/horse/n02374451_276-5.png 5 -sketch/horse/n02374451_276-6.png 5 -sketch/horse/n02374451_276-7.png 5 -sketch/horse/n02374451_276-8.png 5 -sketch/horse/n02374451_276-9.png 5 -sketch/horse/n02374451_276-10.png 5 -sketch/horse/n02374451_388-2.png 5 -sketch/horse/n02374451_388-3.png 5 -sketch/horse/n02374451_388-4.png 5 -sketch/horse/n02374451_388-5.png 5 -sketch/horse/n02374451_388-6.png 5 -sketch/horse/n02374451_388-7.png 5 -sketch/horse/n02374451_388-8.png 5 -sketch/horse/n02374451_388-9.png 5 -sketch/horse/n02374451_388-10.png 5 -sketch/horse/n02374451_468-1.png 5 -sketch/horse/n02374451_468-2.png 5 -sketch/horse/n02374451_468-3.png 5 -sketch/horse/n02374451_468-4.png 5 -sketch/horse/n02374451_468-5.png 5 -sketch/horse/n02374451_468-6.png 5 -sketch/horse/n02374451_468-7.png 5 -sketch/horse/n02374451_468-8.png 5 -sketch/horse/n02374451_468-9.png 5 -sketch/horse/n02374451_468-10.png 5 -sketch/horse/n02374451_490-1.png 5 -sketch/horse/n02374451_490-2.png 5 -sketch/horse/n02374451_490-3.png 5 -sketch/horse/n02374451_490-4.png 5 -sketch/horse/n02374451_490-5.png 5 -sketch/horse/n02374451_490-6.png 5 -sketch/horse/n02374451_490-7.png 5 -sketch/horse/n02374451_503-1.png 5 -sketch/horse/n02374451_503-2.png 5 -sketch/horse/n02374451_503-3.png 5 -sketch/horse/n02374451_503-4.png 5 -sketch/horse/n02374451_503-5.png 5 -sketch/horse/n02374451_503-6.png 5 -sketch/horse/n02374451_557-1.png 5 -sketch/horse/n02374451_557-2.png 5 -sketch/horse/n02374451_557-3.png 5 -sketch/horse/n02374451_557-4.png 5 -sketch/horse/n02374451_557-5.png 5 -sketch/horse/n02374451_597-1.png 5 -sketch/horse/n02374451_597-2.png 5 -sketch/horse/n02374451_597-3.png 5 -sketch/horse/n02374451_597-4.png 5 -sketch/horse/n02374451_597-5.png 5 -sketch/horse/n02374451_597-6.png 5 -sketch/horse/n02374451_597-7.png 5 -sketch/horse/n02374451_777-1.png 5 -sketch/horse/n02374451_777-2.png 5 -sketch/horse/n02374451_777-3.png 5 -sketch/horse/n02374451_777-4.png 5 -sketch/horse/n02374451_777-5.png 5 -sketch/horse/n02374451_777-6.png 5 -sketch/horse/n02374451_779-1.png 5 -sketch/horse/n02374451_779-2.png 5 -sketch/horse/n02374451_779-3.png 5 -sketch/horse/n02374451_779-4.png 5 -sketch/horse/n02374451_779-5.png 5 -sketch/horse/n02374451_779-6.png 5 -sketch/horse/n02374451_779-7.png 5 -sketch/horse/n02374451_779-8.png 5 -sketch/horse/n02374451_779-9.png 5 -sketch/horse/n02374451_916-1.png 5 -sketch/horse/n02374451_916-2.png 5 -sketch/horse/n02374451_916-3.png 5 -sketch/horse/n02374451_916-4.png 5 -sketch/horse/n02374451_916-5.png 5 -sketch/horse/n02374451_916-6.png 5 -sketch/horse/n02374451_925-1.png 5 -sketch/horse/n02374451_925-2.png 5 -sketch/horse/n02374451_925-3.png 5 -sketch/horse/n02374451_925-4.png 5 -sketch/horse/n02374451_925-5.png 5 -sketch/horse/n02374451_925-6.png 5 -sketch/horse/n02374451_925-7.png 5 -sketch/horse/n02374451_929-1.png 5 -sketch/horse/n02374451_929-2.png 5 -sketch/horse/n02374451_929-3.png 5 -sketch/horse/n02374451_929-4.png 5 -sketch/horse/n02374451_929-5.png 5 -sketch/horse/n02374451_929-6.png 5 -sketch/horse/n02374451_1189-1.png 5 -sketch/horse/n02374451_1189-2.png 5 -sketch/horse/n02374451_1189-3.png 5 -sketch/horse/n02374451_1189-4.png 5 -sketch/horse/n02374451_1189-5.png 5 -sketch/horse/n02374451_1189-6.png 5 -sketch/horse/n02374451_1189-7.png 5 -sketch/horse/n02374451_1234-1.png 5 -sketch/horse/n02374451_1234-2.png 5 -sketch/horse/n02374451_1234-3.png 5 -sketch/horse/n02374451_1234-4.png 5 -sketch/horse/n02374451_1234-5.png 5 -sketch/horse/n02374451_1234-6.png 5 -sketch/horse/n02374451_1340-1.png 5 -sketch/horse/n02374451_1340-2.png 5 -sketch/horse/n02374451_1340-3.png 5 -sketch/horse/n02374451_1340-4.png 5 -sketch/horse/n02374451_1340-5.png 5 -sketch/horse/n02374451_1340-6.png 5 -sketch/horse/n02374451_1340-7.png 5 -sketch/horse/n02374451_1340-8.png 5 -sketch/horse/n02374451_1340-9.png 5 -sketch/horse/n02374451_1340-10.png 5 -sketch/horse/n02374451_1340-11.png 5 -sketch/horse/n02374451_1443-1.png 5 -sketch/horse/n02374451_1443-2.png 5 -sketch/horse/n02374451_1443-3.png 5 -sketch/horse/n02374451_1443-4.png 5 -sketch/horse/n02374451_1443-5.png 5 -sketch/horse/n02374451_1443-6.png 5 -sketch/horse/n02374451_1443-7.png 5 -sketch/horse/n02374451_1443-8.png 5 -sketch/horse/n02374451_1695-1.png 5 -sketch/horse/n02374451_1695-2.png 5 -sketch/horse/n02374451_1695-3.png 5 -sketch/horse/n02374451_1695-4.png 5 -sketch/horse/n02374451_1695-5.png 5 -sketch/horse/n02374451_1695-6.png 5 -sketch/horse/n02374451_1695-7.png 5 -sketch/horse/n02374451_2233-1.png 5 -sketch/horse/n02374451_2233-2.png 5 -sketch/horse/n02374451_2233-3.png 5 -sketch/horse/n02374451_2233-4.png 5 -sketch/horse/n02374451_2233-5.png 5 -sketch/horse/n02374451_2233-6.png 5 -sketch/horse/n02374451_2233-7.png 5 -sketch/horse/n02374451_2248-1.png 5 -sketch/horse/n02374451_2248-2.png 5 -sketch/horse/n02374451_2248-3.png 5 -sketch/horse/n02374451_2248-4.png 5 -sketch/horse/n02374451_2248-5.png 5 -sketch/horse/n02374451_2248-6.png 5 -sketch/horse/n02374451_2248-7.png 5 -sketch/horse/n02374451_2248-8.png 5 -sketch/horse/n02374451_2372-1.png 5 -sketch/horse/n02374451_2372-2.png 5 -sketch/horse/n02374451_2372-3.png 5 -sketch/horse/n02374451_2372-4.png 5 -sketch/horse/n02374451_2372-5.png 5 -sketch/horse/n02374451_2372-6.png 5 -sketch/horse/n02374451_2372-7.png 5 -sketch/horse/n02374451_2372-8.png 5 -sketch/horse/n02374451_2478-1.png 5 -sketch/horse/n02374451_2478-2.png 5 -sketch/horse/n02374451_2478-3.png 5 -sketch/horse/n02374451_2478-4.png 5 -sketch/horse/n02374451_2478-5.png 5 -sketch/horse/n02374451_2616-1.png 5 -sketch/horse/n02374451_2616-2.png 5 -sketch/horse/n02374451_2616-3.png 5 -sketch/horse/n02374451_2616-4.png 5 -sketch/horse/n02374451_2616-5.png 5 -sketch/horse/n02374451_2616-6.png 5 -sketch/horse/n02374451_2616-7.png 5 -sketch/horse/n02374451_2616-8.png 5 -sketch/horse/n02374451_2616-9.png 5 -sketch/horse/n02374451_2616-10.png 5 -sketch/horse/n02374451_2733-1.png 5 -sketch/horse/n02374451_2733-2.png 5 -sketch/horse/n02374451_2733-3.png 5 -sketch/horse/n02374451_2733-4.png 5 -sketch/horse/n02374451_2733-5.png 5 -sketch/horse/n02374451_2733-6.png 5 -sketch/horse/n02374451_2733-7.png 5 -sketch/horse/n02374451_2743-1.png 5 -sketch/horse/n02374451_2743-2.png 5 -sketch/horse/n02374451_2743-3.png 5 -sketch/horse/n02374451_2743-4.png 5 -sketch/horse/n02374451_2743-5.png 5 -sketch/horse/n02374451_2743-6.png 5 -sketch/horse/n02374451_2743-7.png 5 -sketch/horse/n02374451_2825-1.png 5 -sketch/horse/n02374451_2825-2.png 5 -sketch/horse/n02374451_2825-3.png 5 -sketch/horse/n02374451_2825-4.png 5 -sketch/horse/n02374451_2825-5.png 5 -sketch/horse/n02374451_2825-6.png 5 -sketch/horse/n02374451_2825-7.png 5 -sketch/horse/n02374451_2825-8.png 5 -sketch/horse/n02374451_2825-9.png 5 -sketch/horse/n02374451_2825-10.png 5 -sketch/horse/n02374451_2846-1.png 5 -sketch/horse/n02374451_2846-2.png 5 -sketch/horse/n02374451_2846-3.png 5 -sketch/horse/n02374451_2846-4.png 5 -sketch/horse/n02374451_2846-5.png 5 -sketch/horse/n02374451_2846-6.png 5 -sketch/horse/n02374451_2846-7.png 5 -sketch/horse/n02374451_2846-8.png 5 -sketch/horse/n02374451_2846-9.png 5 -sketch/horse/n02374451_3388-1.png 5 -sketch/horse/n02374451_3388-2.png 5 -sketch/horse/n02374451_3388-3.png 5 -sketch/horse/n02374451_3388-4.png 5 -sketch/horse/n02374451_3388-5.png 5 -sketch/horse/n02374451_3388-6.png 5 -sketch/horse/n02374451_3388-7.png 5 -sketch/horse/n02374451_3388-8.png 5 -sketch/horse/n02374451_3388-9.png 5 -sketch/horse/n02374451_3808-1.png 5 -sketch/horse/n02374451_3808-2.png 5 -sketch/horse/n02374451_3808-3.png 5 -sketch/horse/n02374451_3808-4.png 5 -sketch/horse/n02374451_3808-5.png 5 -sketch/horse/n02374451_3808-6.png 5 -sketch/horse/n02374451_3808-7.png 5 -sketch/horse/n02374451_3808-8.png 5 -sketch/horse/n02374451_3808-9.png 5 -sketch/horse/n02374451_4538-1.png 5 -sketch/horse/n02374451_4538-2.png 5 -sketch/horse/n02374451_4538-3.png 5 -sketch/horse/n02374451_4538-4.png 5 -sketch/horse/n02374451_4538-5.png 5 -sketch/horse/n02374451_4538-6.png 5 -sketch/horse/n02374451_4538-7.png 5 -sketch/horse/n02374451_4538-8.png 5 -sketch/horse/n02374451_4538-9.png 5 -sketch/horse/n02374451_4553-1.png 5 -sketch/horse/n02374451_4553-2.png 5 -sketch/horse/n02374451_4553-3.png 5 -sketch/horse/n02374451_4553-4.png 5 -sketch/horse/n02374451_4553-5.png 5 -sketch/horse/n02374451_4553-6.png 5 -sketch/horse/n02374451_4553-7.png 5 -sketch/horse/n02374451_4795-1.png 5 -sketch/horse/n02374451_4795-2.png 5 -sketch/horse/n02374451_4795-3.png 5 -sketch/horse/n02374451_4795-4.png 5 -sketch/horse/n02374451_4795-5.png 5 -sketch/horse/n02374451_4795-6.png 5 -sketch/horse/n02374451_4795-7.png 5 -sketch/horse/n02374451_4795-8.png 5 -sketch/horse/n02374451_4818-1.png 5 -sketch/horse/n02374451_4818-2.png 5 -sketch/horse/n02374451_4818-3.png 5 -sketch/horse/n02374451_4818-4.png 5 -sketch/horse/n02374451_4818-5.png 5 -sketch/horse/n02374451_4818-6.png 5 -sketch/horse/n02374451_4818-7.png 5 -sketch/horse/n02374451_4963-1.png 5 -sketch/horse/n02374451_4963-2.png 5 -sketch/horse/n02374451_4963-3.png 5 -sketch/horse/n02374451_4963-4.png 5 -sketch/horse/n02374451_4963-5.png 5 -sketch/horse/n02374451_4963-6.png 5 -sketch/horse/n02374451_5084-1.png 5 -sketch/horse/n02374451_5084-2.png 5 -sketch/horse/n02374451_5084-3.png 5 -sketch/horse/n02374451_5084-4.png 5 -sketch/horse/n02374451_5084-5.png 5 -sketch/horse/n02374451_5084-6.png 5 -sketch/horse/n02374451_6192-1.png 5 -sketch/horse/n02374451_6192-2.png 5 -sketch/horse/n02374451_6192-3.png 5 -sketch/horse/n02374451_6192-4.png 5 -sketch/horse/n02374451_6192-5.png 5 -sketch/horse/n02374451_6192-6.png 5 -sketch/horse/n02374451_6192-7.png 5 -sketch/horse/n02374451_6207-1.png 5 -sketch/horse/n02374451_6207-2.png 5 -sketch/horse/n02374451_6207-3.png 5 -sketch/horse/n02374451_6207-4.png 5 -sketch/horse/n02374451_6207-5.png 5 -sketch/horse/n02374451_6207-6.png 5 -sketch/horse/n02374451_7631-1.png 5 -sketch/horse/n02374451_7631-2.png 5 -sketch/horse/n02374451_7631-3.png 5 -sketch/horse/n02374451_7631-4.png 5 -sketch/horse/n02374451_7631-5.png 5 -sketch/horse/n02374451_7631-6.png 5 -sketch/horse/n02374451_7631-7.png 5 -sketch/horse/n02374451_8065-1.png 5 -sketch/horse/n02374451_8065-2.png 5 -sketch/horse/n02374451_8065-3.png 5 -sketch/horse/n02374451_8065-4.png 5 -sketch/horse/n02374451_8065-5.png 5 -sketch/horse/n02374451_8065-6.png 5 -sketch/horse/n02374451_8269-1.png 5 -sketch/horse/n02374451_8269-2.png 5 -sketch/horse/n02374451_8269-3.png 5 -sketch/horse/n02374451_8269-4.png 5 -sketch/horse/n02374451_8269-5.png 5 -sketch/horse/n02374451_8269-6.png 5 -sketch/horse/n02374451_8269-7.png 5 -sketch/horse/n02374451_8269-8.png 5 -sketch/horse/n02374451_8269-9.png 5 -sketch/horse/n02374451_8526-1.png 5 -sketch/horse/n02374451_8526-2.png 5 -sketch/horse/n02374451_8526-3.png 5 -sketch/horse/n02374451_8526-4.png 5 -sketch/horse/n02374451_8526-5.png 5 -sketch/horse/n02374451_8526-6.png 5 -sketch/horse/n02374451_8718-1.png 5 -sketch/horse/n02374451_8718-2.png 5 -sketch/horse/n02374451_8718-3.png 5 -sketch/horse/n02374451_8718-4.png 5 -sketch/horse/n02374451_8718-5.png 5 -sketch/horse/n02374451_8718-6.png 5 -sketch/horse/n02374451_8744-1.png 5 -sketch/horse/n02374451_8744-2.png 5 -sketch/horse/n02374451_8744-3.png 5 -sketch/horse/n02374451_8744-4.png 5 -sketch/horse/n02374451_8744-5.png 5 -sketch/horse/n02374451_8744-6.png 5 -sketch/horse/n02374451_8744-7.png 5 -sketch/horse/n02374451_8744-8.png 5 -sketch/horse/n02374451_8744-9.png 5 -sketch/horse/n02374451_8744-10.png 5 -sketch/horse/n02374451_8806-1.png 5 -sketch/horse/n02374451_8806-2.png 5 -sketch/horse/n02374451_8806-3.png 5 -sketch/horse/n02374451_8806-4.png 5 -sketch/horse/n02374451_8806-5.png 5 -sketch/horse/n02374451_8806-6.png 5 -sketch/horse/n02374451_8806-7.png 5 -sketch/horse/n02374451_8806-8.png 5 -sketch/horse/n02374451_9064-1.png 5 -sketch/horse/n02374451_9064-2.png 5 -sketch/horse/n02374451_9064-3.png 5 -sketch/horse/n02374451_9064-4.png 5 -sketch/horse/n02374451_9064-5.png 5 -sketch/horse/n02374451_9064-6.png 5 -sketch/horse/n02374451_9225-1.png 5 -sketch/horse/n02374451_9225-2.png 5 -sketch/horse/n02374451_9225-3.png 5 -sketch/horse/n02374451_9225-4.png 5 -sketch/horse/n02374451_9225-5.png 5 -sketch/horse/n02374451_9225-6.png 5 -sketch/horse/n02374451_9225-7.png 5 -sketch/horse/n02374451_9225-8.png 5 -sketch/horse/n02374451_9443-1.png 5 -sketch/horse/n02374451_9443-2.png 5 -sketch/horse/n02374451_9443-3.png 5 -sketch/horse/n02374451_9443-4.png 5 -sketch/horse/n02374451_9443-5.png 5 -sketch/horse/n02374451_9443-6.png 5 -sketch/horse/n02374451_9443-7.png 5 -sketch/horse/n02374451_9892-1.png 5 -sketch/horse/n02374451_9892-2.png 5 -sketch/horse/n02374451_9892-3.png 5 -sketch/horse/n02374451_9892-4.png 5 -sketch/horse/n02374451_9892-5.png 5 -sketch/horse/n02374451_9892-6.png 5 -sketch/horse/n02374451_9892-7.png 5 -sketch/horse/n02374451_10081-1.png 5 -sketch/horse/n02374451_10081-2.png 5 -sketch/horse/n02374451_10081-3.png 5 -sketch/horse/n02374451_10081-4.png 5 -sketch/horse/n02374451_10081-5.png 5 -sketch/horse/n02374451_10081-6.png 5 -sketch/horse/n02374451_10098-1.png 5 -sketch/horse/n02374451_10098-2.png 5 -sketch/horse/n02374451_10098-3.png 5 -sketch/horse/n02374451_10098-4.png 5 -sketch/horse/n02374451_10098-5.png 5 -sketch/horse/n02374451_10098-6.png 5 -sketch/horse/n02374451_10098-7.png 5 -sketch/horse/n02374451_10099-1.png 5 -sketch/horse/n02374451_10099-2.png 5 -sketch/horse/n02374451_10099-3.png 5 -sketch/horse/n02374451_10099-4.png 5 -sketch/horse/n02374451_10099-5.png 5 -sketch/horse/n02374451_10099-6.png 5 -sketch/horse/n02374451_10099-7.png 5 -sketch/horse/n02374451_10099-8.png 5 -sketch/horse/n02374451_10099-9.png 5 -sketch/horse/n02374451_10118-1.png 5 -sketch/horse/n02374451_10118-2.png 5 -sketch/horse/n02374451_10118-3.png 5 -sketch/horse/n02374451_10118-4.png 5 -sketch/horse/n02374451_10118-5.png 5 -sketch/horse/n02374451_10331-1.png 5 -sketch/horse/n02374451_10331-2.png 5 -sketch/horse/n02374451_10331-3.png 5 -sketch/horse/n02374451_10331-4.png 5 -sketch/horse/n02374451_10331-5.png 5 -sketch/horse/n02374451_10669-1.png 5 -sketch/horse/n02374451_10669-2.png 5 -sketch/horse/n02374451_10669-3.png 5 -sketch/horse/n02374451_10669-4.png 5 -sketch/horse/n02374451_10669-5.png 5 -sketch/horse/n02374451_10669-6.png 5 -sketch/horse/n02374451_10669-7.png 5 -sketch/horse/n02374451_10669-8.png 5 -sketch/horse/n02374451_10669-9.png 5 -sketch/horse/n02374451_10761-1.png 5 -sketch/horse/n02374451_10761-2.png 5 -sketch/horse/n02374451_10761-3.png 5 -sketch/horse/n02374451_10761-4.png 5 -sketch/horse/n02374451_10761-5.png 5 -sketch/horse/n02374451_10761-6.png 5 -sketch/horse/n02374451_10761-7.png 5 -sketch/horse/n02374451_10761-8.png 5 -sketch/horse/n02374451_10761-9.png 5 -sketch/horse/n02374451_10761-10.png 5 -sketch/horse/n02374451_10809-1.png 5 -sketch/horse/n02374451_10809-2.png 5 -sketch/horse/n02374451_10809-4.png 5 -sketch/horse/n02374451_10809-5.png 5 -sketch/horse/n02374451_10809-6.png 5 -sketch/horse/n02374451_10809-7.png 5 -sketch/horse/n02374451_10809-8.png 5 -sketch/horse/n02374451_11479-1.png 5 -sketch/horse/n02374451_11479-2.png 5 -sketch/horse/n02374451_11479-3.png 5 -sketch/horse/n02374451_11479-4.png 5 -sketch/horse/n02374451_11479-5.png 5 -sketch/horse/n02374451_11479-6.png 5 -sketch/horse/n02374451_11479-7.png 5 -sketch/horse/n02374451_11483-1.png 5 -sketch/horse/n02374451_11483-2.png 5 -sketch/horse/n02374451_11483-3.png 5 -sketch/horse/n02374451_11483-4.png 5 -sketch/horse/n02374451_11483-5.png 5 -sketch/horse/n02374451_11483-6.png 5 -sketch/horse/n02374451_11492-1.png 5 -sketch/horse/n02374451_11492-2.png 5 -sketch/horse/n02374451_11492-3.png 5 -sketch/horse/n02374451_11492-4.png 5 -sketch/horse/n02374451_11492-5.png 5 -sketch/horse/n02374451_11492-6.png 5 -sketch/horse/n02374451_11894-1.png 5 -sketch/horse/n02374451_11894-2.png 5 -sketch/horse/n02374451_11894-3.png 5 -sketch/horse/n02374451_11894-4.png 5 -sketch/horse/n02374451_11894-5.png 5 -sketch/horse/n02374451_11894-6.png 5 -sketch/horse/n02374451_11894-7.png 5 -sketch/horse/n02374451_11894-8.png 5 -sketch/horse/n02374451_11894-9.png 5 -sketch/horse/n02374451_12128-1.png 5 -sketch/horse/n02374451_12128-2.png 5 -sketch/horse/n02374451_12128-3.png 5 -sketch/horse/n02374451_12128-4.png 5 -sketch/horse/n02374451_12128-5.png 5 -sketch/horse/n02374451_12128-6.png 5 -sketch/horse/n02374451_12128-7.png 5 -sketch/horse/n02374451_12128-8.png 5 -sketch/horse/n02374451_12174-1.png 5 -sketch/horse/n02374451_12174-2.png 5 -sketch/horse/n02374451_12174-3.png 5 -sketch/horse/n02374451_12174-4.png 5 -sketch/horse/n02374451_12174-5.png 5 -sketch/horse/n02374451_12174-6.png 5 -sketch/horse/n02374451_12200-1.png 5 -sketch/horse/n02374451_12200-2.png 5 -sketch/horse/n02374451_12200-3.png 5 -sketch/horse/n02374451_12200-4.png 5 -sketch/horse/n02374451_12200-5.png 5 -sketch/horse/n02374451_12200-6.png 5 -sketch/horse/n02374451_12200-7.png 5 -sketch/horse/n02374451_12225-1.png 5 -sketch/horse/n02374451_12225-2.png 5 -sketch/horse/n02374451_12225-3.png 5 -sketch/horse/n02374451_12225-4.png 5 -sketch/horse/n02374451_12225-5.png 5 -sketch/horse/n02374451_12225-6.png 5 -sketch/horse/n02374451_12230-1.png 5 -sketch/horse/n02374451_12230-2.png 5 -sketch/horse/n02374451_12230-3.png 5 -sketch/horse/n02374451_12230-4.png 5 -sketch/horse/n02374451_12230-5.png 5 -sketch/horse/n02374451_12230-6.png 5 -sketch/horse/n02374451_12230-7.png 5 -sketch/horse/n02374451_12239-1.png 5 -sketch/horse/n02374451_12239-2.png 5 -sketch/horse/n02374451_12239-3.png 5 -sketch/horse/n02374451_12239-4.png 5 -sketch/horse/n02374451_12239-5.png 5 -sketch/horse/n02374451_12239-6.png 5 -sketch/horse/n02374451_12239-7.png 5 -sketch/horse/n02374451_12250-1.png 5 -sketch/horse/n02374451_12250-2.png 5 -sketch/horse/n02374451_12250-3.png 5 -sketch/horse/n02374451_12250-4.png 5 -sketch/horse/n02374451_12250-5.png 5 -sketch/horse/n02374451_12250-6.png 5 -sketch/horse/n02374451_12250-7.png 5 -sketch/horse/n02374451_12254-1.png 5 -sketch/horse/n02374451_12254-2.png 5 -sketch/horse/n02374451_12254-3.png 5 -sketch/horse/n02374451_12254-4.png 5 -sketch/horse/n02374451_12254-5.png 5 -sketch/horse/n02374451_12254-6.png 5 -sketch/horse/n02374451_12254-7.png 5 -sketch/horse/n02374451_12328-1.png 5 -sketch/horse/n02374451_12328-2.png 5 -sketch/horse/n02374451_12328-3.png 5 -sketch/horse/n02374451_12328-4.png 5 -sketch/horse/n02374451_12328-5.png 5 -sketch/horse/n02374451_12328-6.png 5 -sketch/horse/n02374451_12328-7.png 5 -sketch/horse/n02374451_12328-8.png 5 -sketch/horse/n02374451_12328-9.png 5 -sketch/horse/n02374451_12328-10.png 5 -sketch/horse/n02374451_12418-1.png 5 -sketch/horse/n02374451_12418-2.png 5 -sketch/horse/n02374451_12418-3.png 5 -sketch/horse/n02374451_12418-4.png 5 -sketch/horse/n02374451_12418-5.png 5 -sketch/horse/n02374451_12418-6.png 5 -sketch/horse/n02374451_12418-7.png 5 -sketch/horse/n02374451_12418-8.png 5 -sketch/horse/n02374451_12418-9.png 5 -sketch/horse/n02374451_12418-10.png 5 -sketch/horse/n02374451_12792-1.png 5 -sketch/horse/n02374451_12792-2.png 5 -sketch/horse/n02374451_12792-3.png 5 -sketch/horse/n02374451_12792-4.png 5 -sketch/horse/n02374451_12792-5.png 5 -sketch/horse/n02374451_12792-6.png 5 -sketch/horse/n02374451_12792-7.png 5 -sketch/horse/n02374451_12792-8.png 5 -sketch/horse/n02374451_12792-9.png 5 -sketch/horse/n02374451_12792-10.png 5 -sketch/horse/n02374451_12847-1.png 5 -sketch/horse/n02374451_12847-2.png 5 -sketch/horse/n02374451_12847-3.png 5 -sketch/horse/n02374451_12847-4.png 5 -sketch/horse/n02374451_12847-5.png 5 -sketch/horse/n02374451_12847-6.png 5 -sketch/horse/n02374451_12847-7.png 5 -sketch/horse/n02374451_12847-8.png 5 -sketch/horse/n02374451_13132-1.png 5 -sketch/horse/n02374451_13132-2.png 5 -sketch/horse/n02374451_13132-3.png 5 -sketch/horse/n02374451_13132-4.png 5 -sketch/horse/n02374451_13132-5.png 5 -sketch/horse/n02374451_13132-6.png 5 -sketch/horse/n02374451_13132-7.png 5 -sketch/horse/n02374451_13136-1.png 5 -sketch/horse/n02374451_13136-2.png 5 -sketch/horse/n02374451_13136-3.png 5 -sketch/horse/n02374451_13136-4.png 5 -sketch/horse/n02374451_13136-5.png 5 -sketch/horse/n02374451_13159-1.png 5 -sketch/horse/n02374451_13159-2.png 5 -sketch/horse/n02374451_13159-3.png 5 -sketch/horse/n02374451_13159-4.png 5 -sketch/horse/n02374451_13159-5.png 5 -sketch/horse/n02374451_13159-6.png 5 -sketch/horse/n02374451_13159-7.png 5 -sketch/horse/n02374451_13159-8.png 5 -sketch/horse/n02374451_13171-1.png 5 -sketch/horse/n02374451_13171-2.png 5 -sketch/horse/n02374451_13171-3.png 5 -sketch/horse/n02374451_13171-4.png 5 -sketch/horse/n02374451_13171-5.png 5 -sketch/horse/n02374451_13171-6.png 5 -sketch/horse/n02374451_13718-1.png 5 -sketch/horse/n02374451_13718-2.png 5 -sketch/horse/n02374451_13718-3.png 5 -sketch/horse/n02374451_13718-4.png 5 -sketch/horse/n02374451_13718-5.png 5 -sketch/horse/n02374451_13718-6.png 5 -sketch/horse/n02374451_14119-1.png 5 -sketch/horse/n02374451_14119-2.png 5 -sketch/horse/n02374451_14119-3.png 5 -sketch/horse/n02374451_14119-4.png 5 -sketch/horse/n02374451_14119-5.png 5 -sketch/horse/n02374451_14119-6.png 5 -sketch/horse/n02374451_14119-7.png 5 -sketch/horse/n02374451_14119-8.png 5 -sketch/horse/n02374451_14119-9.png 5 -sketch/horse/n02374451_14233-1.png 5 -sketch/horse/n02374451_14233-2.png 5 -sketch/horse/n02374451_14233-3.png 5 -sketch/horse/n02374451_14233-4.png 5 -sketch/horse/n02374451_14233-5.png 5 -sketch/horse/n02374451_14399-1.png 5 -sketch/horse/n02374451_14399-2.png 5 -sketch/horse/n02374451_14399-3.png 5 -sketch/horse/n02374451_14399-4.png 5 -sketch/horse/n02374451_14399-5.png 5 -sketch/horse/n02374451_14399-6.png 5 -sketch/horse/n02374451_14399-7.png 5 -sketch/horse/n02374451_14425-10.png 5 -sketch/horse/n02374451_14425-1.png 5 -sketch/horse/n02374451_14425-2.png 5 -sketch/horse/n02374451_14425-3.png 5 -sketch/horse/n02374451_14425-4.png 5 -sketch/horse/n02374451_14425-5.png 5 -sketch/horse/n02374451_14425-6.png 5 -sketch/horse/n02374451_14425-7.png 5 -sketch/horse/n02374451_14425-8.png 5 -sketch/horse/n02374451_14425-9.png 5 -sketch/horse/n02374451_14738-1.png 5 -sketch/horse/n02374451_14738-2.png 5 -sketch/horse/n02374451_14738-3.png 5 -sketch/horse/n02374451_14738-4.png 5 -sketch/horse/n02374451_14738-5.png 5 -sketch/horse/n02374451_14738-6.png 5 -sketch/horse/n02374451_14738-7.png 5 -sketch/horse/n02374451_14846-1.png 5 -sketch/horse/n02374451_14846-2.png 5 -sketch/horse/n02374451_14846-3.png 5 -sketch/horse/n02374451_14846-4.png 5 -sketch/horse/n02374451_14846-5.png 5 -sketch/horse/n02374451_14846-6.png 5 -sketch/horse/n02374451_14846-7.png 5 -sketch/horse/n02374451_15307-1.png 5 -sketch/horse/n02374451_15307-2.png 5 -sketch/horse/n02374451_15307-3.png 5 -sketch/horse/n02374451_15307-4.png 5 -sketch/horse/n02374451_15307-5.png 5 -sketch/horse/n02374451_15307-6.png 5 -sketch/horse/n02374451_15440-1.png 5 -sketch/horse/n02374451_15440-2.png 5 -sketch/horse/n02374451_15440-3.png 5 -sketch/horse/n02374451_15440-4.png 5 -sketch/horse/n02374451_15440-5.png 5 -sketch/horse/n02374451_15440-6.png 5 -sketch/horse/n02374451_15453-1.png 5 -sketch/horse/n02374451_15453-2.png 5 -sketch/horse/n02374451_15453-3.png 5 -sketch/horse/n02374451_15453-4.png 5 -sketch/horse/n02374451_15453-5.png 5 -sketch/horse/n02374451_15453-6.png 5 -sketch/horse/n02374451_15453-7.png 5 -sketch/horse/n02374451_15669-1.png 5 -sketch/horse/n02374451_15669-2.png 5 -sketch/horse/n02374451_15669-3.png 5 -sketch/horse/n02374451_15669-4.png 5 -sketch/horse/n02374451_15669-5.png 5 -sketch/horse/n02374451_15669-6.png 5 -sketch/horse/n02374451_16194-1.png 5 -sketch/horse/n02374451_16194-2.png 5 -sketch/horse/n02374451_16194-3.png 5 -sketch/horse/n02374451_16194-4.png 5 -sketch/horse/n02374451_16194-5.png 5 -sketch/horse/n02374451_16194-6.png 5 -sketch/horse/n02374451_16358-1.png 5 -sketch/horse/n02374451_16358-2.png 5 -sketch/horse/n02374451_16358-3.png 5 -sketch/horse/n02374451_16358-4.png 5 -sketch/horse/n02374451_16358-5.png 5 -sketch/horse/n02374451_16358-6.png 5 -sketch/horse/n02374451_16948-1.png 5 -sketch/horse/n02374451_16948-2.png 5 -sketch/horse/n02374451_16948-3.png 5 -sketch/horse/n02374451_16948-4.png 5 -sketch/horse/n02374451_16948-5.png 5 -sketch/horse/n02374451_16948-6.png 5 -sketch/horse/n02374451_16948-7.png 5 -sketch/horse/n02374451_16948-8.png 5 -sketch/horse/n02374451_16948-9.png 5 -sketch/horse/n02374451_17043-1.png 5 -sketch/horse/n02374451_17043-2.png 5 -sketch/horse/n02374451_17043-3.png 5 -sketch/horse/n02374451_17043-4.png 5 -sketch/horse/n02374451_17043-5.png 5 -sketch/horse/n02374451_17043-6.png 5 -sketch/horse/n02374451_17384-1.png 5 -sketch/horse/n02374451_17384-2.png 5 -sketch/horse/n02374451_17384-3.png 5 -sketch/horse/n02374451_17384-4.png 5 -sketch/horse/n02374451_17384-5.png 5 -sketch/horse/n02374451_17384-6.png 5 -sketch/horse/n02374451_17384-7.png 5 -sketch/horse/n02374451_17384-8.png 5 -sketch/horse/n02374451_17474-1.png 5 -sketch/horse/n02374451_17474-2.png 5 -sketch/horse/n02374451_17474-3.png 5 -sketch/horse/n02374451_17474-4.png 5 -sketch/horse/n02374451_17474-5.png 5 -sketch/horse/n02374451_17474-6.png 5 -sketch/horse/n02374451_17474-7.png 5 -sketch/horse/n02374451_17474-8.png 5 -sketch/horse/n02374451_17634-1.png 5 -sketch/horse/n02374451_17634-2.png 5 -sketch/horse/n02374451_17634-3.png 5 -sketch/horse/n02374451_17634-4.png 5 -sketch/horse/n02374451_17634-5.png 5 -sketch/horse/n02374451_17634-6.png 5 -sketch/horse/n02374451_18192-1.png 5 -sketch/horse/n02374451_18192-2.png 5 -sketch/horse/n02374451_18192-3.png 5 -sketch/horse/n02374451_18192-4.png 5 -sketch/horse/n02374451_18192-5.png 5 -sketch/horse/n02374451_18192-6.png 5 -sketch/horse/n02374451_18570-1.png 5 -sketch/horse/n02374451_18570-2.png 5 -sketch/horse/n02374451_18570-3.png 5 -sketch/horse/n02374451_18570-4.png 5 -sketch/horse/n02374451_18570-5.png 5 -sketch/horse/n02374451_18570-6.png 5 -sketch/horse/n02374451_18570-7.png 5 -sketch/horse/n02374451_18909-1.png 5 -sketch/horse/n02374451_18909-2.png 5 -sketch/horse/n02374451_18909-3.png 5 -sketch/horse/n02374451_18909-4.png 5 -sketch/horse/n02374451_18909-5.png 5 -sketch/horse/n02374451_18909-6.png 5 -sketch/horse/8481.png 5 -sketch/horse/8482.png 5 -sketch/horse/8483.png 5 -sketch/horse/8484.png 5 -sketch/horse/8485.png 5 -sketch/horse/8486.png 5 -sketch/horse/8487.png 5 -sketch/horse/8488.png 5 -sketch/horse/8489.png 5 -sketch/horse/8490.png 5 -sketch/horse/8491.png 5 -sketch/horse/8492.png 5 -sketch/horse/8493.png 5 -sketch/horse/8494.png 5 -sketch/horse/8495.png 5 -sketch/horse/8496.png 5 -sketch/horse/8497.png 5 -sketch/horse/8498.png 5 -sketch/horse/8499.png 5 -sketch/horse/8500.png 5 -sketch/horse/8501.png 5 -sketch/horse/8502.png 5 -sketch/horse/8503.png 5 -sketch/horse/8504.png 5 -sketch/horse/8505.png 5 -sketch/horse/8506.png 5 -sketch/horse/8507.png 5 -sketch/horse/8508.png 5 -sketch/horse/8509.png 5 -sketch/horse/8510.png 5 -sketch/horse/8511.png 5 -sketch/horse/8512.png 5 -sketch/horse/8513.png 5 -sketch/horse/8514.png 5 -sketch/horse/8515.png 5 -sketch/horse/8516.png 5 -sketch/horse/8517.png 5 -sketch/horse/8518.png 5 -sketch/horse/8519.png 5 -sketch/horse/8520.png 5 -sketch/horse/8521.png 5 -sketch/horse/8522.png 5 -sketch/horse/8523.png 5 -sketch/horse/8524.png 5 -sketch/horse/8525.png 5 -sketch/horse/8526.png 5 -sketch/horse/8527.png 5 -sketch/horse/8528.png 5 -sketch/horse/8529.png 5 -sketch/horse/8530.png 5 -sketch/horse/8531.png 5 -sketch/horse/8532.png 5 -sketch/horse/8533.png 5 -sketch/horse/8534.png 5 -sketch/horse/8535.png 5 -sketch/horse/8536.png 5 -sketch/horse/8537.png 5 -sketch/horse/8538.png 5 -sketch/horse/8539.png 5 -sketch/horse/8540.png 5 -sketch/horse/8541.png 5 -sketch/horse/8542.png 5 -sketch/horse/8543.png 5 -sketch/horse/8544.png 5 -sketch/horse/8545.png 5 -sketch/horse/8546.png 5 -sketch/horse/8547.png 5 -sketch/horse/8548.png 5 -sketch/horse/8549.png 5 -sketch/horse/8550.png 5 -sketch/horse/8551.png 5 -sketch/horse/8552.png 5 -sketch/horse/8553.png 5 -sketch/horse/8554.png 5 -sketch/horse/8555.png 5 -sketch/horse/8556.png 5 -sketch/horse/8557.png 5 -sketch/horse/8558.png 5 -sketch/horse/8559.png 5 -sketch/horse/8560.png 5 -sketch/house/8801.png 6 -sketch/house/8802.png 6 -sketch/house/8803.png 6 -sketch/house/8804.png 6 -sketch/house/8805.png 6 -sketch/house/8806.png 6 -sketch/house/8807.png 6 -sketch/house/8808.png 6 -sketch/house/8809.png 6 -sketch/house/8810.png 6 -sketch/house/8811.png 6 -sketch/house/8812.png 6 -sketch/house/8813.png 6 -sketch/house/8814.png 6 -sketch/house/8815.png 6 -sketch/house/8816.png 6 -sketch/house/8817.png 6 -sketch/house/8818.png 6 -sketch/house/8819.png 6 -sketch/house/8820.png 6 -sketch/house/8821.png 6 -sketch/house/8822.png 6 -sketch/house/8823.png 6 -sketch/house/8824.png 6 -sketch/house/8825.png 6 -sketch/house/8826.png 6 -sketch/house/8827.png 6 -sketch/house/8828.png 6 -sketch/house/8829.png 6 -sketch/house/8830.png 6 -sketch/house/8831.png 6 -sketch/house/8832.png 6 -sketch/house/8833.png 6 -sketch/house/8834.png 6 -sketch/house/8835.png 6 -sketch/house/8836.png 6 -sketch/house/8837.png 6 -sketch/house/8838.png 6 -sketch/house/8839.png 6 -sketch/house/8840.png 6 -sketch/house/8841.png 6 -sketch/house/8842.png 6 -sketch/house/8843.png 6 -sketch/house/8844.png 6 -sketch/house/8845.png 6 -sketch/house/8846.png 6 -sketch/house/8847.png 6 -sketch/house/8848.png 6 -sketch/house/8849.png 6 -sketch/house/8850.png 6 -sketch/house/8851.png 6 -sketch/house/8852.png 6 -sketch/house/8853.png 6 -sketch/house/8854.png 6 -sketch/house/8855.png 6 -sketch/house/8856.png 6 -sketch/house/8857.png 6 -sketch/house/8858.png 6 -sketch/house/8859.png 6 -sketch/house/8860.png 6 -sketch/house/8861.png 6 -sketch/house/8862.png 6 -sketch/house/8863.png 6 -sketch/house/8864.png 6 -sketch/house/8865.png 6 -sketch/house/8866.png 6 -sketch/house/8867.png 6 -sketch/house/8868.png 6 -sketch/house/8869.png 6 -sketch/house/8870.png 6 -sketch/house/8871.png 6 -sketch/house/8872.png 6 -sketch/house/8873.png 6 -sketch/house/8874.png 6 -sketch/house/8875.png 6 -sketch/house/8876.png 6 -sketch/house/8877.png 6 -sketch/house/8878.png 6 -sketch/house/8879.png 6 -sketch/house/8880.png 6 -sketch/person/12081.png 7 -sketch/person/12082.png 7 -sketch/person/12083.png 7 -sketch/person/12084.png 7 -sketch/person/12085.png 7 -sketch/person/12086.png 7 -sketch/person/12087.png 7 -sketch/person/12088.png 7 -sketch/person/12089.png 7 -sketch/person/12090.png 7 -sketch/person/12091.png 7 -sketch/person/12092.png 7 -sketch/person/12093.png 7 -sketch/person/12094.png 7 -sketch/person/12095.png 7 -sketch/person/12096.png 7 -sketch/person/12097.png 7 -sketch/person/12098.png 7 -sketch/person/12099.png 7 -sketch/person/12100.png 7 -sketch/person/12101.png 7 -sketch/person/12102.png 7 -sketch/person/12103.png 7 -sketch/person/12104.png 7 -sketch/person/12105.png 7 -sketch/person/12106.png 7 -sketch/person/12107.png 7 -sketch/person/12108.png 7 -sketch/person/12109.png 7 -sketch/person/12110.png 7 -sketch/person/12111.png 7 -sketch/person/12112.png 7 -sketch/person/12113.png 7 -sketch/person/12114.png 7 -sketch/person/12115.png 7 -sketch/person/12116.png 7 -sketch/person/12117.png 7 -sketch/person/12118.png 7 -sketch/person/12119.png 7 -sketch/person/12120.png 7 -sketch/person/12121.png 7 -sketch/person/12122.png 7 -sketch/person/12123.png 7 -sketch/person/12124.png 7 -sketch/person/12125.png 7 -sketch/person/12126.png 7 -sketch/person/12127.png 7 -sketch/person/12128.png 7 -sketch/person/12129.png 7 -sketch/person/12130.png 7 -sketch/person/12131.png 7 -sketch/person/12132.png 7 -sketch/person/12133.png 7 -sketch/person/12134.png 7 -sketch/person/12135.png 7 -sketch/person/12136.png 7 -sketch/person/12137.png 7 -sketch/person/12138.png 7 -sketch/person/12139.png 7 -sketch/person/12140.png 7 -sketch/person/12141.png 7 -sketch/person/12142.png 7 -sketch/person/12143.png 7 -sketch/person/12144.png 7 -sketch/person/12145.png 7 -sketch/person/12146.png 7 -sketch/person/12147.png 7 -sketch/person/12148.png 7 -sketch/person/12149.png 7 -sketch/person/12150.png 7 -sketch/person/12151.png 7 -sketch/person/12152.png 7 -sketch/person/12153.png 7 -sketch/person/12154.png 7 -sketch/person/12155.png 7 -sketch/person/12156.png 7 -sketch/person/12157.png 7 -sketch/person/12158.png 7 -sketch/person/12159.png 7 -sketch/person/12160.png 7 -sketch/person/12161.png 7 -sketch/person/12162.png 7 -sketch/person/12163.png 7 -sketch/person/12164.png 7 -sketch/person/12165.png 7 -sketch/person/12166.png 7 -sketch/person/12167.png 7 -sketch/person/12168.png 7 -sketch/person/12169.png 7 -sketch/person/12170.png 7 -sketch/person/12171.png 7 -sketch/person/12172.png 7 -sketch/person/12173.png 7 -sketch/person/12174.png 7 -sketch/person/12175.png 7 -sketch/person/12176.png 7 -sketch/person/12177.png 7 -sketch/person/12178.png 7 -sketch/person/12179.png 7 -sketch/person/12180.png 7 -sketch/person/12181.png 7 -sketch/person/12182.png 7 -sketch/person/12183.png 7 -sketch/person/12184.png 7 -sketch/person/12185.png 7 -sketch/person/12186.png 7 -sketch/person/12187.png 7 -sketch/person/12188.png 7 -sketch/person/12189.png 7 -sketch/person/12190.png 7 -sketch/person/12191.png 7 -sketch/person/12192.png 7 -sketch/person/12193.png 7 -sketch/person/12194.png 7 -sketch/person/12195.png 7 -sketch/person/12196.png 7 -sketch/person/12197.png 7 -sketch/person/12198.png 7 -sketch/person/12199.png 7 -sketch/person/12200.png 7 -sketch/person/12201.png 7 -sketch/person/12202.png 7 -sketch/person/12203.png 7 -sketch/person/12204.png 7 -sketch/person/12205.png 7 -sketch/person/12206.png 7 -sketch/person/12207.png 7 -sketch/person/12208.png 7 -sketch/person/12209.png 7 -sketch/person/12210.png 7 -sketch/person/12211.png 7 -sketch/person/12212.png 7 -sketch/person/12213.png 7 -sketch/person/12214.png 7 -sketch/person/12215.png 7 -sketch/person/12216.png 7 -sketch/person/12217.png 7 -sketch/person/12218.png 7 -sketch/person/12219.png 7 -sketch/person/12220.png 7 -sketch/person/12221.png 7 -sketch/person/12222.png 7 -sketch/person/12223.png 7 -sketch/person/12224.png 7 -sketch/person/12225.png 7 -sketch/person/12226.png 7 -sketch/person/12227.png 7 -sketch/person/12228.png 7 -sketch/person/12229.png 7 -sketch/person/12230.png 7 -sketch/person/12231.png 7 -sketch/person/12232.png 7 -sketch/person/12233.png 7 -sketch/person/12234.png 7 -sketch/person/12235.png 7 -sketch/person/12236.png 7 -sketch/person/12237.png 7 -sketch/person/12238.png 7 -sketch/person/12239.png 7 -sketch/person/12240.png 7 diff --git a/data/pacs_split/sketch_train_kfold.txt b/data/pacs_split/sketch_train_kfold.txt deleted file mode 100644 index a5088dca0..000000000 --- a/data/pacs_split/sketch_train_kfold.txt +++ /dev/null @@ -1,3531 +0,0 @@ -sketch/dog/n02103406_1170-6.png 1 -sketch/dog/n02103406_1247-1.png 1 -sketch/dog/n02103406_1247-2.png 1 -sketch/dog/n02103406_1247-3.png 1 -sketch/dog/n02103406_1247-4.png 1 -sketch/dog/n02103406_1247-5.png 1 -sketch/dog/n02103406_1247-6.png 1 -sketch/dog/n02103406_1247-7.png 1 -sketch/dog/n02103406_1599-1.png 1 -sketch/dog/n02103406_1599-2.png 1 -sketch/dog/n02103406_1599-3.png 1 -sketch/dog/n02103406_1599-4.png 1 -sketch/dog/n02103406_1599-5.png 1 -sketch/dog/n02103406_1754-1.png 1 -sketch/dog/n02103406_1754-2.png 1 -sketch/dog/n02103406_1754-3.png 1 -sketch/dog/n02103406_1754-4.png 1 -sketch/dog/n02103406_1754-5.png 1 -sketch/dog/n02103406_2209-1.png 1 -sketch/dog/n02103406_2209-2.png 1 -sketch/dog/n02103406_2209-3.png 1 -sketch/dog/n02103406_2209-4.png 1 -sketch/dog/n02103406_2209-5.png 1 -sketch/dog/n02103406_2209-6.png 1 -sketch/dog/n02103406_2209-7.png 1 -sketch/dog/n02103406_2209-8.png 1 -sketch/dog/n02103406_2706-1.png 1 -sketch/dog/n02103406_2706-2.png 1 -sketch/dog/n02103406_2706-3.png 1 -sketch/dog/n02103406_2706-4.png 1 -sketch/dog/n02103406_2706-5.png 1 -sketch/dog/n02103406_2706-6.png 1 -sketch/dog/n02103406_2706-7.png 1 -sketch/dog/n02103406_2706-8.png 1 -sketch/dog/n02103406_2706-9.png 1 -sketch/dog/n02103406_2954-1.png 1 -sketch/dog/n02103406_2954-2.png 1 -sketch/dog/n02103406_2954-3.png 1 -sketch/dog/n02103406_2954-4.png 1 -sketch/dog/n02103406_2954-5.png 1 -sketch/dog/n02103406_2954-6.png 1 -sketch/dog/n02103406_2976-1.png 1 -sketch/dog/n02103406_2976-2.png 1 -sketch/dog/n02103406_2976-3.png 1 -sketch/dog/n02103406_2976-4.png 1 -sketch/dog/n02103406_2976-5.png 1 -sketch/dog/n02103406_2976-6.png 1 -sketch/dog/n02103406_2976-7.png 1 -sketch/dog/n02103406_3056-1.png 1 -sketch/dog/n02103406_3056-2.png 1 -sketch/dog/n02103406_3056-3.png 1 -sketch/dog/n02103406_3056-4.png 1 -sketch/dog/n02103406_3056-5.png 1 -sketch/dog/n02103406_3108-1.png 1 -sketch/dog/n02103406_3108-2.png 1 -sketch/dog/n02103406_3108-3.png 1 -sketch/dog/n02103406_3108-4.png 1 -sketch/dog/n02103406_3108-5.png 1 -sketch/dog/n02103406_3108-6.png 1 -sketch/dog/n02103406_3132-1.png 1 -sketch/dog/n02103406_3132-2.png 1 -sketch/dog/n02103406_3132-3.png 1 -sketch/dog/n02103406_3132-4.png 1 -sketch/dog/n02103406_3132-5.png 1 -sketch/dog/n02103406_3132-6.png 1 -sketch/dog/n02103406_3132-7.png 1 -sketch/dog/n02103406_3255-1.png 1 -sketch/dog/n02103406_3255-2.png 1 -sketch/dog/n02103406_3255-3.png 1 -sketch/dog/n02103406_3255-4.png 1 -sketch/dog/n02103406_3255-5.png 1 -sketch/dog/n02103406_3255-6.png 1 -sketch/dog/n02103406_3255-7.png 1 -sketch/dog/n02103406_3255-8.png 1 -sketch/dog/n02103406_3255-9.png 1 -sketch/dog/n02103406_3255-10.png 1 -sketch/dog/n02103406_3255-11.png 1 -sketch/dog/n02103406_3299-1.png 1 -sketch/dog/n02103406_3299-2.png 1 -sketch/dog/n02103406_3299-3.png 1 -sketch/dog/n02103406_3299-4.png 1 -sketch/dog/n02103406_3299-5.png 1 -sketch/dog/n02103406_3299-6.png 1 -sketch/dog/n02103406_3299-7.png 1 -sketch/dog/n02103406_3299-8.png 1 -sketch/dog/n02103406_3299-9.png 1 -sketch/dog/n02103406_3326-1.png 1 -sketch/dog/n02103406_3326-2.png 1 -sketch/dog/n02103406_3326-3.png 1 -sketch/dog/n02103406_3326-4.png 1 -sketch/dog/n02103406_3326-5.png 1 -sketch/dog/n02103406_3326-6.png 1 -sketch/dog/n02103406_3326-7.png 1 -sketch/dog/n02103406_3326-8.png 1 -sketch/dog/n02103406_3326-9.png 1 -sketch/dog/n02103406_3326-10.png 1 -sketch/dog/n02103406_3326-11.png 1 -sketch/dog/n02103406_3326-12.png 1 -sketch/dog/n02103406_3326-13.png 1 -sketch/dog/n02103406_3401-1.png 1 -sketch/dog/n02103406_3401-2.png 1 -sketch/dog/n02103406_3401-3.png 1 -sketch/dog/n02103406_3401-4.png 1 -sketch/dog/n02103406_3401-5.png 1 -sketch/dog/n02103406_3401-6.png 1 -sketch/dog/n02103406_3538-1.png 1 -sketch/dog/n02103406_3538-2.png 1 -sketch/dog/n02103406_3538-3.png 1 -sketch/dog/n02103406_3538-4.png 1 -sketch/dog/n02103406_3538-5.png 1 -sketch/dog/n02103406_3538-6.png 1 -sketch/dog/n02103406_3538-7.png 1 -sketch/dog/n02103406_3743-1.png 1 -sketch/dog/n02103406_3743-2.png 1 -sketch/dog/n02103406_3743-3.png 1 -sketch/dog/n02103406_3743-4.png 1 -sketch/dog/n02103406_3743-5.png 1 -sketch/dog/n02103406_3743-6.png 1 -sketch/dog/n02103406_3743-7.png 1 -sketch/dog/n02103406_3743-8.png 1 -sketch/dog/n02103406_3743-9.png 1 -sketch/dog/n02103406_3743-10.png 1 -sketch/dog/n02103406_3750-1.png 1 -sketch/dog/n02103406_3750-2.png 1 -sketch/dog/n02103406_3750-3.png 1 -sketch/dog/n02103406_3750-4.png 1 -sketch/dog/n02103406_3750-5.png 1 -sketch/dog/n02103406_3750-6.png 1 -sketch/dog/n02103406_3964-1.png 1 -sketch/dog/n02103406_3964-2.png 1 -sketch/dog/n02103406_3964-3.png 1 -sketch/dog/n02103406_3964-4.png 1 -sketch/dog/n02103406_3964-5.png 1 -sketch/dog/n02103406_4068-1.png 1 -sketch/dog/n02103406_4068-2.png 1 -sketch/dog/n02103406_4068-3.png 1 -sketch/dog/n02103406_4068-4.png 1 -sketch/dog/n02103406_4068-5.png 1 -sketch/dog/n02103406_4068-6.png 1 -sketch/dog/n02103406_4068-7.png 1 -sketch/dog/n02103406_4068-8.png 1 -sketch/dog/n02103406_4068-9.png 1 -sketch/dog/n02103406_4068-10.png 1 -sketch/dog/n02103406_4068-11.png 1 -sketch/dog/n02103406_4068-12.png 1 -sketch/dog/n02103406_4582-1.png 1 -sketch/dog/n02103406_4582-2.png 1 -sketch/dog/n02103406_4582-3.png 1 -sketch/dog/n02103406_4582-4.png 1 -sketch/dog/n02103406_4582-5.png 1 -sketch/dog/n02103406_4849-1.png 1 -sketch/dog/n02103406_4849-2.png 1 -sketch/dog/n02103406_4849-3.png 1 -sketch/dog/n02103406_4849-4.png 1 -sketch/dog/n02103406_4849-5.png 1 -sketch/dog/n02103406_4849-6.png 1 -sketch/dog/n02103406_4849-7.png 1 -sketch/dog/n02103406_4849-8.png 1 -sketch/dog/n02103406_4849-9.png 1 -sketch/dog/n02103406_4916-1.png 1 -sketch/dog/n02103406_4916-2.png 1 -sketch/dog/n02103406_4916-3.png 1 -sketch/dog/n02103406_4916-4.png 1 -sketch/dog/n02103406_4916-5.png 1 -sketch/dog/n02103406_5035-1.png 1 -sketch/dog/n02103406_5035-2.png 1 -sketch/dog/n02103406_5035-3.png 1 -sketch/dog/n02103406_5035-4.png 1 -sketch/dog/n02103406_5035-5.png 1 -sketch/dog/n02103406_5035-6.png 1 -sketch/dog/n02103406_5216-1.png 1 -sketch/dog/n02103406_5216-2.png 1 -sketch/dog/n02103406_5216-3.png 1 -sketch/dog/n02103406_5216-4.png 1 -sketch/dog/n02103406_5216-5.png 1 -sketch/dog/n02103406_5224-1.png 1 -sketch/dog/n02103406_5224-2.png 1 -sketch/dog/n02103406_5224-3.png 1 -sketch/dog/n02103406_5224-4.png 1 -sketch/dog/n02103406_5224-5.png 1 -sketch/dog/n02103406_5224-6.png 1 -sketch/dog/n02103406_5456-1.png 1 -sketch/dog/n02103406_5456-2.png 1 -sketch/dog/n02103406_5456-3.png 1 -sketch/dog/n02103406_5456-4.png 1 -sketch/dog/n02103406_5456-5.png 1 -sketch/dog/n02103406_5456-6.png 1 -sketch/dog/n02103406_5456-7.png 1 -sketch/dog/n02103406_5456-8.png 1 -sketch/dog/n02103406_5456-9.png 1 -sketch/dog/n02103406_5505-1.png 1 -sketch/dog/n02103406_5505-2.png 1 -sketch/dog/n02103406_5505-3.png 1 -sketch/dog/n02103406_5505-4.png 1 -sketch/dog/n02103406_5505-5.png 1 -sketch/dog/n02103406_5505-6.png 1 -sketch/dog/n02103406_5563-1.png 1 -sketch/dog/n02103406_5563-2.png 1 -sketch/dog/n02103406_5563-3.png 1 -sketch/dog/n02103406_5563-4.png 1 -sketch/dog/n02103406_5563-5.png 1 -sketch/dog/n02103406_5563-6.png 1 -sketch/dog/n02103406_5563-7.png 1 -sketch/dog/n02103406_5601-1.png 1 -sketch/dog/n02103406_5601-2.png 1 -sketch/dog/n02103406_5601-3.png 1 -sketch/dog/n02103406_5601-4.png 1 -sketch/dog/n02103406_5601-5.png 1 -sketch/dog/n02103406_5601-6.png 1 -sketch/dog/n02103406_6274-1.png 1 -sketch/dog/n02103406_6274-2.png 1 -sketch/dog/n02103406_6274-3.png 1 -sketch/dog/n02103406_6274-4.png 1 -sketch/dog/n02103406_6274-5.png 1 -sketch/dog/n02103406_6461-1.png 1 -sketch/dog/n02103406_6461-2.png 1 -sketch/dog/n02103406_6461-3.png 1 -sketch/dog/n02103406_6461-4.png 1 -sketch/dog/n02103406_6461-5.png 1 -sketch/dog/n02103406_6461-6.png 1 -sketch/dog/n02103406_6461-7.png 1 -sketch/dog/n02103406_6530-1.png 1 -sketch/dog/n02103406_6530-2.png 1 -sketch/dog/n02103406_6530-3.png 1 -sketch/dog/n02103406_6530-4.png 1 -sketch/dog/n02103406_6530-5.png 1 -sketch/dog/n02103406_6530-6.png 1 -sketch/dog/n02103406_6530-7.png 1 -sketch/dog/n02103406_6688-1.png 1 -sketch/dog/n02103406_6688-2.png 1 -sketch/dog/n02103406_6688-3.png 1 -sketch/dog/n02103406_6688-4.png 1 -sketch/dog/n02103406_6688-5.png 1 -sketch/dog/n02103406_6688-6.png 1 -sketch/dog/n02103406_6688-7.png 1 -sketch/dog/n02103406_6688-8.png 1 -sketch/dog/n02103406_6688-9.png 1 -sketch/dog/n02103406_6852-1.png 1 -sketch/dog/n02103406_6852-2.png 1 -sketch/dog/n02103406_6852-3.png 1 -sketch/dog/n02103406_6852-4.png 1 -sketch/dog/n02103406_6852-5.png 1 -sketch/dog/n02103406_6852-6.png 1 -sketch/dog/n02103406_6852-7.png 1 -sketch/dog/n02103406_6852-8.png 1 -sketch/dog/n02103406_6852-9.png 1 -sketch/dog/n02103406_6857-1.png 1 -sketch/dog/n02103406_6857-2.png 1 -sketch/dog/n02103406_6857-3.png 1 -sketch/dog/n02103406_6857-4.png 1 -sketch/dog/n02103406_6857-5.png 1 -sketch/dog/n02103406_6857-6.png 1 -sketch/dog/n02103406_6857-7.png 1 -sketch/dog/n02103406_6857-8.png 1 -sketch/dog/n02103406_7201-1.png 1 -sketch/dog/n02103406_7201-2.png 1 -sketch/dog/n02103406_7201-3.png 1 -sketch/dog/n02103406_7201-4.png 1 -sketch/dog/n02103406_7201-5.png 1 -sketch/dog/n02103406_7201-6.png 1 -sketch/dog/n02103406_7368-1.png 1 -sketch/dog/n02103406_7368-2.png 1 -sketch/dog/n02103406_7368-3.png 1 -sketch/dog/n02103406_7368-4.png 1 -sketch/dog/n02103406_7368-5.png 1 -sketch/dog/n02103406_7368-6.png 1 -sketch/dog/n02103406_7368-7.png 1 -sketch/dog/n02103406_7368-8.png 1 -sketch/dog/n02103406_7368-9.png 1 -sketch/dog/n02103406_7368-10.png 1 -sketch/dog/n02103406_7521-1.png 1 -sketch/dog/n02103406_7521-2.png 1 -sketch/dog/n02103406_7521-3.png 1 -sketch/dog/n02103406_7521-4.png 1 -sketch/dog/n02103406_7521-5.png 1 -sketch/dog/n02103406_7521-6.png 1 -sketch/dog/n02103406_7521-7.png 1 -sketch/dog/n02103406_7521-8.png 1 -sketch/dog/n02103406_7708-1.png 1 -sketch/dog/n02103406_7708-2.png 1 -sketch/dog/n02103406_7708-3.png 1 -sketch/dog/n02103406_7708-4.png 1 -sketch/dog/n02103406_7708-5.png 1 -sketch/dog/n02103406_7708-6.png 1 -sketch/dog/n02103406_7708-7.png 1 -sketch/dog/n02103406_7708-8.png 1 -sketch/dog/n02103406_7708-9.png 1 -sketch/dog/n02103406_7708-10.png 1 -sketch/dog/n02103406_8004-1.png 1 -sketch/dog/n02103406_8004-2.png 1 -sketch/dog/n02103406_8004-3.png 1 -sketch/dog/n02103406_8004-4.png 1 -sketch/dog/n02103406_8004-5.png 1 -sketch/dog/n02103406_8004-6.png 1 -sketch/dog/n02103406_8004-7.png 1 -sketch/dog/n02103406_8004-8.png 1 -sketch/dog/n02103406_8004-9.png 1 -sketch/dog/n02103406_8280-1.png 1 -sketch/dog/n02103406_8280-2.png 1 -sketch/dog/n02103406_8280-3.png 1 -sketch/dog/n02103406_8280-4.png 1 -sketch/dog/n02103406_8280-5.png 1 -sketch/dog/n02103406_8280-6.png 1 -sketch/dog/n02103406_8362-1.png 1 -sketch/dog/n02103406_8362-2.png 1 -sketch/dog/n02103406_8362-3.png 1 -sketch/dog/n02103406_8362-4.png 1 -sketch/dog/n02103406_8362-5.png 1 -sketch/dog/n02103406_8362-6.png 1 -sketch/dog/n02103406_8362-7.png 1 -sketch/dog/n02103406_8362-8.png 1 -sketch/dog/n02103406_8362-9.png 1 -sketch/dog/n02103406_8362-10.png 1 -sketch/dog/n02103406_8421-1.png 1 -sketch/dog/n02103406_8421-2.png 1 -sketch/dog/n02103406_8421-3.png 1 -sketch/dog/n02103406_8421-4.png 1 -sketch/dog/n02103406_8421-5.png 1 -sketch/dog/n02103406_8421-6.png 1 -sketch/dog/n02103406_13049-1.png 1 -sketch/dog/n02103406_13049-2.png 1 -sketch/dog/n02103406_13049-3.png 1 -sketch/dog/n02103406_13049-4.png 1 -sketch/dog/n02103406_13049-5.png 1 -sketch/dog/n02103406_13049-6.png 1 -sketch/dog/n02106662_466-1.png 1 -sketch/dog/n02106662_466-2.png 1 -sketch/dog/n02106662_466-3.png 1 -sketch/dog/n02106662_466-4.png 1 -sketch/dog/n02106662_466-5.png 1 -sketch/dog/n02106662_466-6.png 1 -sketch/dog/n02106662_466-7.png 1 -sketch/dog/n02106662_928-1.png 1 -sketch/dog/n02106662_928-2.png 1 -sketch/dog/n02106662_928-3.png 1 -sketch/dog/n02106662_928-4.png 1 -sketch/dog/n02106662_928-5.png 1 -sketch/dog/n02106662_928-6.png 1 -sketch/dog/n02106662_928-7.png 1 -sketch/dog/n02106662_928-8.png 1 -sketch/dog/n02106662_928-9.png 1 -sketch/dog/n02106662_928-10.png 1 -sketch/dog/n02106662_928-11.png 1 -sketch/dog/n02106662_1874-1.png 1 -sketch/dog/n02106662_1874-2.png 1 -sketch/dog/n02106662_1874-3.png 1 -sketch/dog/n02106662_1874-4.png 1 -sketch/dog/n02106662_1874-5.png 1 -sketch/dog/n02106662_1922-1.png 1 -sketch/dog/n02106662_1922-2.png 1 -sketch/dog/n02106662_1922-3.png 1 -sketch/dog/n02106662_1922-4.png 1 -sketch/dog/n02106662_1922-5.png 1 -sketch/dog/n02106662_2101-1.png 1 -sketch/dog/n02106662_2101-2.png 1 -sketch/dog/n02106662_2101-3.png 1 -sketch/dog/n02106662_2101-4.png 1 -sketch/dog/n02106662_2101-5.png 1 -sketch/dog/n02106662_2101-6.png 1 -sketch/dog/n02106662_2101-7.png 1 -sketch/dog/n02106662_2101-8.png 1 -sketch/dog/n02106662_2101-9.png 1 -sketch/dog/n02106662_2157-1.png 1 -sketch/dog/n02106662_2157-2.png 1 -sketch/dog/n02106662_2157-3.png 1 -sketch/dog/n02106662_2157-4.png 1 -sketch/dog/n02106662_2157-5.png 1 -sketch/dog/n02106662_2157-6.png 1 -sketch/dog/n02106662_2377-1.png 1 -sketch/dog/n02106662_2377-2.png 1 -sketch/dog/n02106662_2377-3.png 1 -sketch/dog/n02106662_2377-4.png 1 -sketch/dog/n02106662_2377-5.png 1 -sketch/dog/n02106662_2377-6.png 1 -sketch/dog/n02106662_2740-1.png 1 -sketch/dog/n02106662_2740-2.png 1 -sketch/dog/n02106662_2740-3.png 1 -sketch/dog/n02106662_2740-4.png 1 -sketch/dog/n02106662_2740-5.png 1 -sketch/dog/n02106662_5001-1.png 1 -sketch/dog/n02106662_5001-2.png 1 -sketch/dog/n02106662_5001-3.png 1 -sketch/dog/n02106662_5001-4.png 1 -sketch/dog/n02106662_5001-5.png 1 -sketch/dog/n02106662_5001-6.png 1 -sketch/dog/n02106662_5001-7.png 1 -sketch/dog/n02106662_7885-1.png 1 -sketch/dog/n02106662_7885-2.png 1 -sketch/dog/n02106662_7885-3.png 1 -sketch/dog/n02106662_7885-4.png 1 -sketch/dog/n02106662_7885-5.png 1 -sketch/dog/n02106662_7960-1.png 1 -sketch/dog/n02106662_7960-2.png 1 -sketch/dog/n02106662_7960-3.png 1 -sketch/dog/n02106662_7960-4.png 1 -sketch/dog/n02106662_7960-5.png 1 -sketch/dog/n02106662_7960-6.png 1 -sketch/dog/n02106662_8511-1.png 1 -sketch/dog/n02106662_8511-2.png 1 -sketch/dog/n02106662_8511-3.png 1 -sketch/dog/n02106662_8511-4.png 1 -sketch/dog/n02106662_8511-5.png 1 -sketch/dog/n02106662_8511-6.png 1 -sketch/dog/n02106662_8870-1.png 1 -sketch/dog/n02106662_8870-2.png 1 -sketch/dog/n02106662_8870-3.png 1 -sketch/dog/n02106662_8870-4.png 1 -sketch/dog/n02106662_8870-5.png 1 -sketch/dog/n02106662_8870-6.png 1 -sketch/dog/n02106662_8870-7.png 1 -sketch/dog/n02106662_10406-1.png 1 -sketch/dog/n02106662_10406-2.png 1 -sketch/dog/n02106662_10406-3.png 1 -sketch/dog/n02106662_10406-4.png 1 -sketch/dog/n02106662_10406-5.png 1 -sketch/dog/n02106662_10406-6.png 1 -sketch/dog/n02106662_11133-1.png 1 -sketch/dog/n02106662_11133-2.png 1 -sketch/dog/n02106662_11133-3.png 1 -sketch/dog/n02106662_11133-4.png 1 -sketch/dog/n02106662_11133-5.png 1 -sketch/dog/n02106662_13178-1.png 1 -sketch/dog/n02106662_13178-2.png 1 -sketch/dog/n02106662_13178-3.png 1 -sketch/dog/n02106662_13178-4.png 1 -sketch/dog/n02106662_13178-5.png 1 -sketch/dog/n02106662_13912-1.png 1 -sketch/dog/n02106662_13912-2.png 1 -sketch/dog/n02106662_13912-3.png 1 -sketch/dog/n02106662_13912-4.png 1 -sketch/dog/n02106662_13912-5.png 1 -sketch/dog/n02106662_15858-1.png 1 -sketch/dog/n02106662_15858-2.png 1 -sketch/dog/n02106662_15858-3.png 1 -sketch/dog/n02106662_15858-4.png 1 -sketch/dog/n02106662_15858-5.png 1 -sketch/dog/n02106662_15858-6.png 1 -sketch/dog/n02106662_18402-1.png 1 -sketch/dog/n02106662_18402-2.png 1 -sketch/dog/n02106662_18402-3.png 1 -sketch/dog/n02106662_18402-4.png 1 -sketch/dog/n02106662_18402-5.png 1 -sketch/dog/n02106662_18405-1.png 1 -sketch/dog/n02106662_18405-2.png 1 -sketch/dog/n02106662_18405-3.png 1 -sketch/dog/n02106662_18405-4.png 1 -sketch/dog/n02106662_18405-5.png 1 -sketch/dog/n02106662_18922-1.png 1 -sketch/dog/n02106662_18922-2.png 1 -sketch/dog/n02106662_18922-3.png 1 -sketch/dog/n02106662_18922-4.png 1 -sketch/dog/n02106662_18922-5.png 1 -sketch/dog/n02106662_18922-6.png 1 -sketch/dog/n02106662_18922-7.png 1 -sketch/dog/n02106662_18922-8.png 1 -sketch/dog/n02106662_18922-9.png 1 -sketch/dog/n02106662_18922-10.png 1 -sketch/dog/n02106662_18922-11.png 1 -sketch/dog/n02106662_18953-1.png 1 -sketch/dog/n02106662_18953-2.png 1 -sketch/dog/n02106662_18953-3.png 1 -sketch/dog/n02106662_18953-4.png 1 -sketch/dog/n02106662_18953-5.png 1 -sketch/dog/n02106662_18953-6.png 1 -sketch/dog/n02106662_18953-7.png 1 -sketch/dog/n02106662_24019-1.png 1 -sketch/dog/n02106662_24019-2.png 1 -sketch/dog/n02106662_24019-3.png 1 -sketch/dog/n02106662_24019-4.png 1 -sketch/dog/n02106662_24019-5.png 1 -sketch/dog/n02106662_24019-6.png 1 -sketch/dog/n02106662_24019-7.png 1 -sketch/dog/n02106662_24019-8.png 1 -sketch/dog/n02106662_24577-1.png 1 -sketch/dog/n02106662_24577-2.png 1 -sketch/dog/n02106662_24577-3.png 1 -sketch/dog/n02106662_24577-4.png 1 -sketch/dog/n02106662_24577-5.png 1 -sketch/dog/n02106662_24786-1.png 1 -sketch/dog/n02106662_24786-2.png 1 -sketch/dog/n02106662_24786-3.png 1 -sketch/dog/n02106662_24786-4.png 1 -sketch/dog/n02106662_24786-5.png 1 -sketch/dog/n02106662_24786-6.png 1 -sketch/dog/n02106662_24786-7.png 1 -sketch/dog/n02106662_25917-1.png 1 -sketch/dog/n02106662_25917-2.png 1 -sketch/dog/n02106662_25917-3.png 1 -sketch/dog/n02106662_25917-4.png 1 -sketch/dog/n02106662_25917-5.png 1 -sketch/dog/n02106662_25917-6.png 1 -sketch/dog/n02106662_25917-7.png 1 -sketch/dog/n02106662_26549-1.png 1 -sketch/dog/n02106662_26549-2.png 1 -sketch/dog/n02106662_26549-3.png 1 -sketch/dog/n02106662_26549-4.png 1 -sketch/dog/n02106662_26549-5.png 1 -sketch/dog/n02106662_26549-6.png 1 -sketch/dog/n02106662_27393-1.png 1 -sketch/dog/n02106662_27393-2.png 1 -sketch/dog/n02106662_27393-3.png 1 -sketch/dog/n02106662_27393-4.png 1 -sketch/dog/n02106662_27393-5.png 1 -sketch/dog/n02109525_704-1.png 1 -sketch/dog/n02109525_704-2.png 1 -sketch/dog/n02109525_704-3.png 1 -sketch/dog/n02109525_704-4.png 1 -sketch/dog/n02109525_704-5.png 1 -sketch/dog/n02109525_704-6.png 1 -sketch/dog/n02109525_1893-1.png 1 -sketch/dog/n02109525_1893-2.png 1 -sketch/dog/n02109525_1893-3.png 1 -sketch/dog/n02109525_1893-4.png 1 -sketch/dog/n02109525_1893-5.png 1 -sketch/dog/n02109525_1893-6.png 1 -sketch/dog/n02109525_1893-7.png 1 -sketch/dog/n02109525_3202-1.png 1 -sketch/dog/n02109525_3202-2.png 1 -sketch/dog/n02109525_3202-3.png 1 -sketch/dog/n02109525_3202-4.png 1 -sketch/dog/n02109525_3202-5.png 1 -sketch/dog/n02109525_3202-6.png 1 -sketch/dog/n02109525_3782-1.png 1 -sketch/dog/n02109525_3782-2.png 1 -sketch/dog/n02109525_3782-3.png 1 -sketch/dog/n02109525_3782-4.png 1 -sketch/dog/n02109525_3782-5.png 1 -sketch/dog/n02109525_3782-6.png 1 -sketch/dog/n02109525_3782-7.png 1 -sketch/dog/n02109525_3782-8.png 1 -sketch/dog/n02109525_3782-9.png 1 -sketch/dog/n02109525_3782-10.png 1 -sketch/dog/n02109525_5013-1.png 1 -sketch/dog/n02109525_5013-2.png 1 -sketch/dog/n02109525_5013-3.png 1 -sketch/dog/n02109525_5013-4.png 1 -sketch/dog/n02109525_5013-5.png 1 -sketch/dog/n02109525_5013-6.png 1 -sketch/dog/n02109525_5583-1.png 1 -sketch/dog/n02109525_5583-2.png 1 -sketch/dog/n02109525_5583-3.png 1 -sketch/dog/n02109525_5583-4.png 1 -sketch/dog/n02109525_5583-5.png 1 -sketch/dog/n02109525_5583-6.png 1 -sketch/dog/n02109525_5583-7.png 1 -sketch/dog/n02109525_5966-1.png 1 -sketch/dog/n02109525_5966-2.png 1 -sketch/dog/n02109525_5966-3.png 1 -sketch/dog/n02109525_5966-4.png 1 -sketch/dog/n02109525_5966-5.png 1 -sketch/dog/n02109525_6693-1.png 1 -sketch/dog/n02109525_6693-2.png 1 -sketch/dog/n02109525_6693-3.png 1 -sketch/dog/n02109525_6693-4.png 1 -sketch/dog/n02109525_6693-5.png 1 -sketch/dog/n02109525_7874-1.png 1 -sketch/dog/n02109525_7874-2.png 1 -sketch/dog/n02109525_7874-3.png 1 -sketch/dog/n02109525_7874-4.png 1 -sketch/dog/n02109525_7874-5.png 1 -sketch/dog/n02109525_7874-6.png 1 -sketch/dog/n02109525_8211-1.png 1 -sketch/dog/n02109525_8211-2.png 1 -sketch/dog/n02109525_8211-3.png 1 -sketch/dog/n02109525_8211-4.png 1 -sketch/dog/n02109525_8211-5.png 1 -sketch/dog/n02109525_8457-1.png 1 -sketch/dog/n02109525_8457-2.png 1 -sketch/dog/n02109525_8457-3.png 1 -sketch/dog/n02109525_8457-4.png 1 -sketch/dog/n02109525_8457-5.png 1 -sketch/dog/n02109525_9037-1.png 1 -sketch/dog/n02109525_9037-2.png 1 -sketch/dog/n02109525_9037-3.png 1 -sketch/dog/n02109525_9037-4.png 1 -sketch/dog/n02109525_9037-5.png 1 -sketch/dog/n02109525_9037-6.png 1 -sketch/dog/n02109525_9037-7.png 1 -sketch/dog/n02109525_10297-1.png 1 -sketch/dog/n02109525_10297-2.png 1 -sketch/dog/n02109525_10297-3.png 1 -sketch/dog/n02109525_10297-4.png 1 -sketch/dog/n02109525_10297-5.png 1 -sketch/dog/n02109525_11444-1.png 1 -sketch/dog/n02109525_11444-2.png 1 -sketch/dog/n02109525_11444-3.png 1 -sketch/dog/n02109525_11444-4.png 1 -sketch/dog/n02109525_11444-5.png 1 -sketch/dog/n02109525_12875-1.png 1 -sketch/dog/n02109525_12875-2.png 1 -sketch/dog/n02109525_12875-3.png 1 -sketch/dog/n02109525_12875-4.png 1 -sketch/dog/n02109525_12875-5.png 1 -sketch/dog/n02109525_12875-6.png 1 -sketch/dog/n02109525_13700-1.png 1 -sketch/dog/n02109525_13700-2.png 1 -sketch/dog/n02109525_13700-3.png 1 -sketch/dog/n02109525_13700-4.png 1 -sketch/dog/n02109525_13700-5.png 1 -sketch/dog/n02109525_16346-1.png 1 -sketch/dog/n02109525_16346-2.png 1 -sketch/dog/n02109525_16346-3.png 1 -sketch/dog/n02109525_16346-4.png 1 -sketch/dog/n02109525_16346-5.png 1 -sketch/dog/n02109525_16346-6.png 1 -sketch/dog/n02109525_16346-7.png 1 -sketch/dog/n02109525_16346-8.png 1 -sketch/dog/n02109525_18347-1.png 1 -sketch/dog/n02109525_18347-2.png 1 -sketch/dog/n02109525_18347-3.png 1 -sketch/dog/n02109525_18347-4.png 1 -sketch/dog/n02109525_18347-5.png 1 -sketch/dog/n02109525_18347-6.png 1 -sketch/dog/n02109525_18347-7.png 1 -sketch/dog/5281.png 1 -sketch/dog/5282.png 1 -sketch/dog/5283.png 1 -sketch/dog/5284.png 1 -sketch/dog/5285.png 1 -sketch/dog/5286.png 1 -sketch/dog/5287.png 1 -sketch/dog/5288.png 1 -sketch/dog/5289.png 1 -sketch/dog/5290.png 1 -sketch/dog/5291.png 1 -sketch/dog/5292.png 1 -sketch/dog/5293.png 1 -sketch/dog/5294.png 1 -sketch/dog/5295.png 1 -sketch/dog/5296.png 1 -sketch/dog/5297.png 1 -sketch/dog/5298.png 1 -sketch/dog/5299.png 1 -sketch/dog/5300.png 1 -sketch/dog/5301.png 1 -sketch/dog/5302.png 1 -sketch/dog/5303.png 1 -sketch/dog/5304.png 1 -sketch/dog/5305.png 1 -sketch/dog/5306.png 1 -sketch/dog/5307.png 1 -sketch/dog/5308.png 1 -sketch/dog/5309.png 1 -sketch/dog/5310.png 1 -sketch/dog/5311.png 1 -sketch/dog/5312.png 1 -sketch/dog/5313.png 1 -sketch/dog/5314.png 1 -sketch/dog/5315.png 1 -sketch/dog/5316.png 1 -sketch/dog/5317.png 1 -sketch/dog/5318.png 1 -sketch/dog/5319.png 1 -sketch/dog/5320.png 1 -sketch/dog/5321.png 1 -sketch/dog/5322.png 1 -sketch/dog/5323.png 1 -sketch/dog/5324.png 1 -sketch/dog/5325.png 1 -sketch/dog/5326.png 1 -sketch/dog/5327.png 1 -sketch/dog/5328.png 1 -sketch/dog/5329.png 1 -sketch/dog/5330.png 1 -sketch/dog/5331.png 1 -sketch/dog/5332.png 1 -sketch/dog/5333.png 1 -sketch/dog/5334.png 1 -sketch/dog/5335.png 1 -sketch/dog/5336.png 1 -sketch/dog/5337.png 1 -sketch/dog/5338.png 1 -sketch/dog/5339.png 1 -sketch/dog/5340.png 1 -sketch/dog/5341.png 1 -sketch/dog/5342.png 1 -sketch/dog/5343.png 1 -sketch/dog/5344.png 1 -sketch/dog/5345.png 1 -sketch/dog/5346.png 1 -sketch/dog/5347.png 1 -sketch/dog/5348.png 1 -sketch/dog/5349.png 1 -sketch/dog/5350.png 1 -sketch/dog/5351.png 1 -sketch/dog/5352.png 1 -sketch/dog/5353.png 1 -sketch/dog/5354.png 1 -sketch/dog/5355.png 1 -sketch/dog/5356.png 1 -sketch/dog/5357.png 1 -sketch/dog/5358.png 1 -sketch/dog/5359.png 1 -sketch/dog/5360.png 1 -sketch/elephant/n02503517_1415-1.png 2 -sketch/elephant/n02503517_1415-2.png 2 -sketch/elephant/n02503517_1415-3.png 2 -sketch/elephant/n02503517_1415-4.png 2 -sketch/elephant/n02503517_1415-5.png 2 -sketch/elephant/n02503517_1453-1.png 2 -sketch/elephant/n02503517_1453-2.png 2 -sketch/elephant/n02503517_1453-3.png 2 -sketch/elephant/n02503517_1453-4.png 2 -sketch/elephant/n02503517_1453-5.png 2 -sketch/elephant/n02503517_1453-6.png 2 -sketch/elephant/n02503517_1583-1.png 2 -sketch/elephant/n02503517_1583-2.png 2 -sketch/elephant/n02503517_1583-3.png 2 -sketch/elephant/n02503517_1583-4.png 2 -sketch/elephant/n02503517_1583-5.png 2 -sketch/elephant/n02503517_1583-6.png 2 -sketch/elephant/n02503517_1829-1.png 2 -sketch/elephant/n02503517_1829-2.png 2 -sketch/elephant/n02503517_1829-3.png 2 -sketch/elephant/n02503517_1829-4.png 2 -sketch/elephant/n02503517_1829-5.png 2 -sketch/elephant/n02503517_1852-1.png 2 -sketch/elephant/n02503517_1852-2.png 2 -sketch/elephant/n02503517_1852-3.png 2 -sketch/elephant/n02503517_1852-4.png 2 -sketch/elephant/n02503517_1852-5.png 2 -sketch/elephant/n02503517_1963-1.png 2 -sketch/elephant/n02503517_1963-2.png 2 -sketch/elephant/n02503517_1963-3.png 2 -sketch/elephant/n02503517_1963-4.png 2 -sketch/elephant/n02503517_1963-5.png 2 -sketch/elephant/n02503517_1984-1.png 2 -sketch/elephant/n02503517_1984-2.png 2 -sketch/elephant/n02503517_1984-3.png 2 -sketch/elephant/n02503517_1984-4.png 2 -sketch/elephant/n02503517_1984-5.png 2 -sketch/elephant/n02503517_2061-1.png 2 -sketch/elephant/n02503517_2061-2.png 2 -sketch/elephant/n02503517_2061-3.png 2 -sketch/elephant/n02503517_2061-4.png 2 -sketch/elephant/n02503517_2061-5.png 2 -sketch/elephant/n02503517_2444-1.png 2 -sketch/elephant/n02503517_2444-2.png 2 -sketch/elephant/n02503517_2444-3.png 2 -sketch/elephant/n02503517_2444-4.png 2 -sketch/elephant/n02503517_2444-5.png 2 -sketch/elephant/n02503517_2547-1.png 2 -sketch/elephant/n02503517_2547-2.png 2 -sketch/elephant/n02503517_2547-3.png 2 -sketch/elephant/n02503517_2547-4.png 2 -sketch/elephant/n02503517_2547-5.png 2 -sketch/elephant/n02503517_2547-6.png 2 -sketch/elephant/n02503517_2547-7.png 2 -sketch/elephant/n02503517_2547-8.png 2 -sketch/elephant/n02503517_2547-9.png 2 -sketch/elephant/n02503517_2547-10.png 2 -sketch/elephant/n02503517_2802-1.png 2 -sketch/elephant/n02503517_2802-2.png 2 -sketch/elephant/n02503517_2802-3.png 2 -sketch/elephant/n02503517_2802-4.png 2 -sketch/elephant/n02503517_2802-5.png 2 -sketch/elephant/n02503517_2802-6.png 2 -sketch/elephant/n02503517_2804-1.png 2 -sketch/elephant/n02503517_2804-2.png 2 -sketch/elephant/n02503517_2804-3.png 2 -sketch/elephant/n02503517_2804-4.png 2 -sketch/elephant/n02503517_2804-5.png 2 -sketch/elephant/n02503517_2925-1.png 2 -sketch/elephant/n02503517_2925-2.png 2 -sketch/elephant/n02503517_2925-3.png 2 -sketch/elephant/n02503517_2925-4.png 2 -sketch/elephant/n02503517_2925-5.png 2 -sketch/elephant/n02503517_2925-6.png 2 -sketch/elephant/n02503517_2925-7.png 2 -sketch/elephant/n02503517_2925-8.png 2 -sketch/elephant/n02503517_2925-9.png 2 -sketch/elephant/n02503517_2925-10.png 2 -sketch/elephant/n02503517_2993-1.png 2 -sketch/elephant/n02503517_2993-2.png 2 -sketch/elephant/n02503517_2993-3.png 2 -sketch/elephant/n02503517_2993-4.png 2 -sketch/elephant/n02503517_2993-5.png 2 -sketch/elephant/n02503517_2993-6.png 2 -sketch/elephant/n02503517_2993-7.png 2 -sketch/elephant/n02503517_2993-8.png 2 -sketch/elephant/n02503517_2993-9.png 2 -sketch/elephant/n02503517_2993-10.png 2 -sketch/elephant/n02503517_3037-1.png 2 -sketch/elephant/n02503517_3037-2.png 2 -sketch/elephant/n02503517_3037-3.png 2 -sketch/elephant/n02503517_3037-4.png 2 -sketch/elephant/n02503517_3037-5.png 2 -sketch/elephant/n02503517_3037-6.png 2 -sketch/elephant/n02503517_3037-7.png 2 -sketch/elephant/n02503517_3037-8.png 2 -sketch/elephant/n02503517_3072-1.png 2 -sketch/elephant/n02503517_3072-2.png 2 -sketch/elephant/n02503517_3072-3.png 2 -sketch/elephant/n02503517_3072-4.png 2 -sketch/elephant/n02503517_3072-5.png 2 -sketch/elephant/n02503517_3072-6.png 2 -sketch/elephant/n02503517_3108-1.png 2 -sketch/elephant/n02503517_3108-2.png 2 -sketch/elephant/n02503517_3108-3.png 2 -sketch/elephant/n02503517_3108-4.png 2 -sketch/elephant/n02503517_3108-5.png 2 -sketch/elephant/n02503517_3108-6.png 2 -sketch/elephant/n02503517_3108-7.png 2 -sketch/elephant/n02503517_3108-8.png 2 -sketch/elephant/n02503517_3108-9.png 2 -sketch/elephant/n02503517_3799-1.png 2 -sketch/elephant/n02503517_3799-2.png 2 -sketch/elephant/n02503517_3799-3.png 2 -sketch/elephant/n02503517_3799-4.png 2 -sketch/elephant/n02503517_3799-5.png 2 -sketch/elephant/n02503517_3803-1.png 2 -sketch/elephant/n02503517_3803-2.png 2 -sketch/elephant/n02503517_3803-3.png 2 -sketch/elephant/n02503517_3803-4.png 2 -sketch/elephant/n02503517_3803-5.png 2 -sketch/elephant/n02503517_3803-6.png 2 -sketch/elephant/n02503517_3808-1.png 2 -sketch/elephant/n02503517_3808-2.png 2 -sketch/elephant/n02503517_3808-3.png 2 -sketch/elephant/n02503517_3808-4.png 2 -sketch/elephant/n02503517_3808-5.png 2 -sketch/elephant/n02503517_3808-6.png 2 -sketch/elephant/n02503517_3808-7.png 2 -sketch/elephant/n02503517_3808-8.png 2 -sketch/elephant/n02503517_3808-9.png 2 -sketch/elephant/n02503517_3808-10.png 2 -sketch/elephant/n02503517_3879-1.png 2 -sketch/elephant/n02503517_3879-2.png 2 -sketch/elephant/n02503517_3879-3.png 2 -sketch/elephant/n02503517_3879-4.png 2 -sketch/elephant/n02503517_3879-5.png 2 -sketch/elephant/n02503517_3879-6.png 2 -sketch/elephant/n02503517_3879-7.png 2 -sketch/elephant/n02503517_4221-1.png 2 -sketch/elephant/n02503517_4221-2.png 2 -sketch/elephant/n02503517_4221-3.png 2 -sketch/elephant/n02503517_4221-4.png 2 -sketch/elephant/n02503517_4221-5.png 2 -sketch/elephant/n02503517_4221-6.png 2 -sketch/elephant/n02503517_4221-7.png 2 -sketch/elephant/n02503517_4247-1.png 2 -sketch/elephant/n02503517_4247-2.png 2 -sketch/elephant/n02503517_4247-3.png 2 -sketch/elephant/n02503517_4247-4.png 2 -sketch/elephant/n02503517_4247-5.png 2 -sketch/elephant/n02503517_4247-6.png 2 -sketch/elephant/n02503517_4247-7.png 2 -sketch/elephant/n02503517_4247-8.png 2 -sketch/elephant/n02503517_4247-9.png 2 -sketch/elephant/n02503517_4247-10.png 2 -sketch/elephant/n02503517_4253-1.png 2 -sketch/elephant/n02503517_4253-2.png 2 -sketch/elephant/n02503517_4253-3.png 2 -sketch/elephant/n02503517_4253-4.png 2 -sketch/elephant/n02503517_4253-5.png 2 -sketch/elephant/n02503517_4413-1.png 2 -sketch/elephant/n02503517_4413-2.png 2 -sketch/elephant/n02503517_4413-3.png 2 -sketch/elephant/n02503517_4413-4.png 2 -sketch/elephant/n02503517_4413-5.png 2 -sketch/elephant/n02503517_4413-6.png 2 -sketch/elephant/n02503517_4413-7.png 2 -sketch/elephant/n02503517_4413-8.png 2 -sketch/elephant/n02503517_4413-9.png 2 -sketch/elephant/n02503517_4413-10.png 2 -sketch/elephant/n02503517_4605-1.png 2 -sketch/elephant/n02503517_4605-2.png 2 -sketch/elephant/n02503517_4605-3.png 2 -sketch/elephant/n02503517_4605-4.png 2 -sketch/elephant/n02503517_4605-5.png 2 -sketch/elephant/n02503517_4687-1.png 2 -sketch/elephant/n02503517_4687-2.png 2 -sketch/elephant/n02503517_4687-3.png 2 -sketch/elephant/n02503517_4687-4.png 2 -sketch/elephant/n02503517_4687-5.png 2 -sketch/elephant/n02503517_4687-6.png 2 -sketch/elephant/n02503517_5117-1.png 2 -sketch/elephant/n02503517_5117-2.png 2 -sketch/elephant/n02503517_5117-3.png 2 -sketch/elephant/n02503517_5117-4.png 2 -sketch/elephant/n02503517_5117-5.png 2 -sketch/elephant/n02503517_5117-6.png 2 -sketch/elephant/n02503517_5267-1.png 2 -sketch/elephant/n02503517_5267-2.png 2 -sketch/elephant/n02503517_5267-3.png 2 -sketch/elephant/n02503517_5267-4.png 2 -sketch/elephant/n02503517_5267-5.png 2 -sketch/elephant/n02503517_5267-6.png 2 -sketch/elephant/n02503517_5267-7.png 2 -sketch/elephant/n02503517_5287-1.png 2 -sketch/elephant/n02503517_5287-2.png 2 -sketch/elephant/n02503517_5287-3.png 2 -sketch/elephant/n02503517_5287-4.png 2 -sketch/elephant/n02503517_5287-5.png 2 -sketch/elephant/n02503517_5418-1.png 2 -sketch/elephant/n02503517_5418-2.png 2 -sketch/elephant/n02503517_5418-3.png 2 -sketch/elephant/n02503517_5418-4.png 2 -sketch/elephant/n02503517_5418-5.png 2 -sketch/elephant/n02503517_5418-6.png 2 -sketch/elephant/n02503517_5418-7.png 2 -sketch/elephant/n02503517_5418-8.png 2 -sketch/elephant/n02503517_5418-9.png 2 -sketch/elephant/n02503517_5418-10.png 2 -sketch/elephant/n02503517_5420-1.png 2 -sketch/elephant/n02503517_5420-2.png 2 -sketch/elephant/n02503517_5420-3.png 2 -sketch/elephant/n02503517_5420-4.png 2 -sketch/elephant/n02503517_5420-5.png 2 -sketch/elephant/n02503517_5420-6.png 2 -sketch/elephant/n02503517_5420-7.png 2 -sketch/elephant/n02503517_5527-1.png 2 -sketch/elephant/n02503517_5527-2.png 2 -sketch/elephant/n02503517_5527-3.png 2 -sketch/elephant/n02503517_5527-4.png 2 -sketch/elephant/n02503517_5527-5.png 2 -sketch/elephant/n02503517_5527-6.png 2 -sketch/elephant/n02503517_5892-1.png 2 -sketch/elephant/n02503517_5892-2.png 2 -sketch/elephant/n02503517_5892-3.png 2 -sketch/elephant/n02503517_5892-4.png 2 -sketch/elephant/n02503517_5892-5.png 2 -sketch/elephant/n02503517_5892-6.png 2 -sketch/elephant/n02503517_5892-7.png 2 -sketch/elephant/n02503517_5905-2.png 2 -sketch/elephant/n02503517_5905-3.png 2 -sketch/elephant/n02503517_5905-4.png 2 -sketch/elephant/n02503517_5905-5.png 2 -sketch/elephant/n02503517_5905-6.png 2 -sketch/elephant/n02503517_5905-7.png 2 -sketch/elephant/n02503517_5905-8.png 2 -sketch/elephant/n02503517_5905-9.png 2 -sketch/elephant/n02503517_5905-10.png 2 -sketch/elephant/n02503517_5905-11.png 2 -sketch/elephant/n02503517_5909-1.png 2 -sketch/elephant/n02503517_5909-2.png 2 -sketch/elephant/n02503517_5909-3.png 2 -sketch/elephant/n02503517_5909-4.png 2 -sketch/elephant/n02503517_5909-5.png 2 -sketch/elephant/n02503517_6032-1.png 2 -sketch/elephant/n02503517_6032-2.png 2 -sketch/elephant/n02503517_6032-3.png 2 -sketch/elephant/n02503517_6032-4.png 2 -sketch/elephant/n02503517_6032-5.png 2 -sketch/elephant/n02503517_6032-6.png 2 -sketch/elephant/n02503517_6043-1.png 2 -sketch/elephant/n02503517_6043-2.png 2 -sketch/elephant/n02503517_6043-3.png 2 -sketch/elephant/n02503517_6043-4.png 2 -sketch/elephant/n02503517_6043-5.png 2 -sketch/elephant/n02503517_6043-6.png 2 -sketch/elephant/n02503517_6232-1.png 2 -sketch/elephant/n02503517_6232-2.png 2 -sketch/elephant/n02503517_6232-3.png 2 -sketch/elephant/n02503517_6232-4.png 2 -sketch/elephant/n02503517_6232-5.png 2 -sketch/elephant/n02503517_6232-6.png 2 -sketch/elephant/n02503517_6232-7.png 2 -sketch/elephant/n02503517_6396-1.png 2 -sketch/elephant/n02503517_6396-2.png 2 -sketch/elephant/n02503517_6396-3.png 2 -sketch/elephant/n02503517_6396-4.png 2 -sketch/elephant/n02503517_6396-5.png 2 -sketch/elephant/n02503517_6429-1.png 2 -sketch/elephant/n02503517_6429-2.png 2 -sketch/elephant/n02503517_6429-3.png 2 -sketch/elephant/n02503517_6429-4.png 2 -sketch/elephant/n02503517_6429-5.png 2 -sketch/elephant/n02503517_6479-1.png 2 -sketch/elephant/n02503517_6479-2.png 2 -sketch/elephant/n02503517_6479-3.png 2 -sketch/elephant/n02503517_6479-4.png 2 -sketch/elephant/n02503517_6479-5.png 2 -sketch/elephant/n02503517_6479-6.png 2 -sketch/elephant/n02503517_6479-7.png 2 -sketch/elephant/n02503517_6479-8.png 2 -sketch/elephant/n02503517_6511-1.png 2 -sketch/elephant/n02503517_6511-2.png 2 -sketch/elephant/n02503517_6511-3.png 2 -sketch/elephant/n02503517_6511-4.png 2 -sketch/elephant/n02503517_6511-5.png 2 -sketch/elephant/n02503517_6611-1.png 2 -sketch/elephant/n02503517_6611-2.png 2 -sketch/elephant/n02503517_6611-3.png 2 -sketch/elephant/n02503517_6611-4.png 2 -sketch/elephant/n02503517_6611-5.png 2 -sketch/elephant/n02503517_6611-6.png 2 -sketch/elephant/n02503517_6611-7.png 2 -sketch/elephant/n02503517_6611-8.png 2 -sketch/elephant/n02503517_6611-9.png 2 -sketch/elephant/n02503517_6611-10.png 2 -sketch/elephant/n02503517_6613-1.png 2 -sketch/elephant/n02503517_6613-2.png 2 -sketch/elephant/n02503517_6613-3.png 2 -sketch/elephant/n02503517_6613-4.png 2 -sketch/elephant/n02503517_6613-5.png 2 -sketch/elephant/n02503517_6624-1.png 2 -sketch/elephant/n02503517_6624-2.png 2 -sketch/elephant/n02503517_6624-3.png 2 -sketch/elephant/n02503517_6624-4.png 2 -sketch/elephant/n02503517_6624-5.png 2 -sketch/elephant/n02503517_6624-6.png 2 -sketch/elephant/n02503517_6661-1.png 2 -sketch/elephant/n02503517_6661-2.png 2 -sketch/elephant/n02503517_6661-3.png 2 -sketch/elephant/n02503517_6661-4.png 2 -sketch/elephant/n02503517_6661-5.png 2 -sketch/elephant/n02503517_6784-1.png 2 -sketch/elephant/n02503517_6784-2.png 2 -sketch/elephant/n02503517_6784-3.png 2 -sketch/elephant/n02503517_6784-4.png 2 -sketch/elephant/n02503517_6784-5.png 2 -sketch/elephant/n02503517_6880-1.png 2 -sketch/elephant/n02503517_6880-2.png 2 -sketch/elephant/n02503517_6880-3.png 2 -sketch/elephant/n02503517_6880-4.png 2 -sketch/elephant/n02503517_6880-5.png 2 -sketch/elephant/n02503517_6937-1.png 2 -sketch/elephant/n02503517_6937-2.png 2 -sketch/elephant/n02503517_6937-3.png 2 -sketch/elephant/n02503517_6937-4.png 2 -sketch/elephant/n02503517_6937-5.png 2 -sketch/elephant/n02503517_6937-6.png 2 -sketch/elephant/n02503517_7020-1.png 2 -sketch/elephant/n02503517_7020-2.png 2 -sketch/elephant/n02503517_7020-3.png 2 -sketch/elephant/n02503517_7020-4.png 2 -sketch/elephant/n02503517_7020-5.png 2 -sketch/elephant/n02503517_7020-6.png 2 -sketch/elephant/n02503517_7031-1.png 2 -sketch/elephant/n02503517_7031-2.png 2 -sketch/elephant/n02503517_7031-3.png 2 -sketch/elephant/n02503517_7031-4.png 2 -sketch/elephant/n02503517_7031-5.png 2 -sketch/elephant/n02503517_7031-6.png 2 -sketch/elephant/n02503517_7031-7.png 2 -sketch/elephant/n02503517_7031-8.png 2 -sketch/elephant/n02503517_7031-9.png 2 -sketch/elephant/n02503517_7031-10.png 2 -sketch/elephant/n02503517_7083-1.png 2 -sketch/elephant/n02503517_7083-2.png 2 -sketch/elephant/n02503517_7083-3.png 2 -sketch/elephant/n02503517_7083-4.png 2 -sketch/elephant/n02503517_7083-5.png 2 -sketch/elephant/n02503517_7173-1.png 2 -sketch/elephant/n02503517_7173-2.png 2 -sketch/elephant/n02503517_7173-3.png 2 -sketch/elephant/n02503517_7173-4.png 2 -sketch/elephant/n02503517_7173-5.png 2 -sketch/elephant/n02503517_7211-1.png 2 -sketch/elephant/n02503517_7211-2.png 2 -sketch/elephant/n02503517_7211-3.png 2 -sketch/elephant/n02503517_7211-4.png 2 -sketch/elephant/n02503517_7211-5.png 2 -sketch/elephant/n02503517_7393-1.png 2 -sketch/elephant/n02503517_7393-2.png 2 -sketch/elephant/n02503517_7393-3.png 2 -sketch/elephant/n02503517_7393-4.png 2 -sketch/elephant/n02503517_7393-5.png 2 -sketch/elephant/n02503517_7393-6.png 2 -sketch/elephant/n02503517_7393-7.png 2 -sketch/elephant/n02503517_7592-1.png 2 -sketch/elephant/n02503517_7592-2.png 2 -sketch/elephant/n02503517_7592-3.png 2 -sketch/elephant/n02503517_7592-4.png 2 -sketch/elephant/n02503517_7592-5.png 2 -sketch/elephant/n02503517_7592-6.png 2 -sketch/elephant/n02503517_7592-7.png 2 -sketch/elephant/n02503517_7592-8.png 2 -sketch/elephant/n02503517_8137-1.png 2 -sketch/elephant/n02503517_8137-2.png 2 -sketch/elephant/n02503517_8137-3.png 2 -sketch/elephant/n02503517_8137-4.png 2 -sketch/elephant/n02503517_8137-5.png 2 -sketch/elephant/n02503517_8205-1.png 2 -sketch/elephant/n02503517_8205-2.png 2 -sketch/elephant/n02503517_8205-3.png 2 -sketch/elephant/n02503517_8205-4.png 2 -sketch/elephant/n02503517_8205-5.png 2 -sketch/elephant/n02503517_8222-1.png 2 -sketch/elephant/n02503517_8222-2.png 2 -sketch/elephant/n02503517_8222-3.png 2 -sketch/elephant/n02503517_8222-4.png 2 -sketch/elephant/n02503517_8222-5.png 2 -sketch/elephant/n02503517_8265-1.png 2 -sketch/elephant/n02503517_8265-2.png 2 -sketch/elephant/n02503517_8265-3.png 2 -sketch/elephant/n02503517_8265-4.png 2 -sketch/elephant/n02503517_8265-5.png 2 -sketch/elephant/n02503517_8292-1.png 2 -sketch/elephant/n02503517_8292-2.png 2 -sketch/elephant/n02503517_8292-3.png 2 -sketch/elephant/n02503517_8292-4.png 2 -sketch/elephant/n02503517_8292-5.png 2 -sketch/elephant/n02503517_8292-6.png 2 -sketch/elephant/n02503517_8518-1.png 2 -sketch/elephant/n02503517_8518-2.png 2 -sketch/elephant/n02503517_8518-3.png 2 -sketch/elephant/n02503517_8518-4.png 2 -sketch/elephant/n02503517_8518-5.png 2 -sketch/elephant/n02503517_8518-6.png 2 -sketch/elephant/n02503517_8571-1.png 2 -sketch/elephant/n02503517_8571-2.png 2 -sketch/elephant/n02503517_8571-3.png 2 -sketch/elephant/n02503517_8571-4.png 2 -sketch/elephant/n02503517_8571-5.png 2 -sketch/elephant/n02503517_8571-6.png 2 -sketch/elephant/n02503517_8757-1.png 2 -sketch/elephant/n02503517_8757-2.png 2 -sketch/elephant/n02503517_8757-3.png 2 -sketch/elephant/n02503517_8757-4.png 2 -sketch/elephant/n02503517_8757-5.png 2 -sketch/elephant/n02503517_8757-6.png 2 -sketch/elephant/n02503517_8901-1.png 2 -sketch/elephant/n02503517_8901-2.png 2 -sketch/elephant/n02503517_8901-3.png 2 -sketch/elephant/n02503517_8901-4.png 2 -sketch/elephant/n02503517_8901-5.png 2 -sketch/elephant/n02503517_8901-6.png 2 -sketch/elephant/n02503517_8901-7.png 2 -sketch/elephant/n02503517_8904-1.png 2 -sketch/elephant/n02503517_8904-2.png 2 -sketch/elephant/n02503517_8904-3.png 2 -sketch/elephant/n02503517_8904-4.png 2 -sketch/elephant/n02503517_8904-5.png 2 -sketch/elephant/n02503517_8904-6.png 2 -sketch/elephant/n02503517_8938-1.png 2 -sketch/elephant/n02503517_8938-2.png 2 -sketch/elephant/n02503517_8938-3.png 2 -sketch/elephant/n02503517_8938-4.png 2 -sketch/elephant/n02503517_8938-5.png 2 -sketch/elephant/n02503517_8938-6.png 2 -sketch/elephant/n02503517_9043-1.png 2 -sketch/elephant/n02503517_9043-2.png 2 -sketch/elephant/n02503517_9043-3.png 2 -sketch/elephant/n02503517_9043-4.png 2 -sketch/elephant/n02503517_9043-5.png 2 -sketch/elephant/n02503517_9043-6.png 2 -sketch/elephant/n02503517_9043-7.png 2 -sketch/elephant/n02503517_9043-8.png 2 -sketch/elephant/n02503517_9043-9.png 2 -sketch/elephant/n02503517_9043-10.png 2 -sketch/elephant/n02503517_9154-1.png 2 -sketch/elephant/n02503517_9154-2.png 2 -sketch/elephant/n02503517_9154-3.png 2 -sketch/elephant/n02503517_9154-4.png 2 -sketch/elephant/n02503517_9154-5.png 2 -sketch/elephant/n02503517_9154-6.png 2 -sketch/elephant/n02503517_9237-1.png 2 -sketch/elephant/n02503517_9237-2.png 2 -sketch/elephant/n02503517_9237-3.png 2 -sketch/elephant/n02503517_9237-4.png 2 -sketch/elephant/n02503517_9237-5.png 2 -sketch/elephant/n02503517_9237-6.png 2 -sketch/elephant/n02503517_9237-7.png 2 -sketch/elephant/n02503517_9241-1.png 2 -sketch/elephant/n02503517_9241-2.png 2 -sketch/elephant/n02503517_9241-3.png 2 -sketch/elephant/n02503517_9241-4.png 2 -sketch/elephant/n02503517_9241-5.png 2 -sketch/elephant/n02503517_9270-1.png 2 -sketch/elephant/n02503517_9270-2.png 2 -sketch/elephant/n02503517_9270-3.png 2 -sketch/elephant/n02503517_9270-4.png 2 -sketch/elephant/n02503517_9270-5.png 2 -sketch/elephant/n02503517_9270-6.png 2 -sketch/elephant/n02503517_9270-7.png 2 -sketch/elephant/n02503517_9270-8.png 2 -sketch/elephant/n02503517_9270-9.png 2 -sketch/elephant/n02503517_9270-10.png 2 -sketch/elephant/n02503517_9421-1.png 2 -sketch/elephant/n02503517_9421-2.png 2 -sketch/elephant/n02503517_9421-3.png 2 -sketch/elephant/n02503517_9421-4.png 2 -sketch/elephant/n02503517_9421-5.png 2 -sketch/elephant/n02503517_9421-6.png 2 -sketch/elephant/n02503517_9421-7.png 2 -sketch/elephant/n02503517_9421-8.png 2 -sketch/elephant/n02503517_9421-9.png 2 -sketch/elephant/n02503517_9827-1.png 2 -sketch/elephant/n02503517_9827-2.png 2 -sketch/elephant/n02503517_9827-3.png 2 -sketch/elephant/n02503517_9827-4.png 2 -sketch/elephant/n02503517_9827-5.png 2 -sketch/elephant/n02503517_9827-6.png 2 -sketch/elephant/n02503517_9827-7.png 2 -sketch/elephant/n02503517_9827-8.png 2 -sketch/elephant/n02503517_10036-1.png 2 -sketch/elephant/n02503517_10036-2.png 2 -sketch/elephant/n02503517_10036-3.png 2 -sketch/elephant/n02503517_10036-4.png 2 -sketch/elephant/n02503517_10036-5.png 2 -sketch/elephant/n02503517_10036-6.png 2 -sketch/elephant/n02503517_10036-7.png 2 -sketch/elephant/n02503517_10036-8.png 2 -sketch/elephant/n02503517_10036-9.png 2 -sketch/elephant/n02503517_10036-10.png 2 -sketch/elephant/n02503517_10075-1.png 2 -sketch/elephant/n02503517_10075-2.png 2 -sketch/elephant/n02503517_10075-3.png 2 -sketch/elephant/n02503517_10075-4.png 2 -sketch/elephant/n02503517_10075-5.png 2 -sketch/elephant/n02503517_10193-1.png 2 -sketch/elephant/n02503517_10193-2.png 2 -sketch/elephant/n02503517_10193-3.png 2 -sketch/elephant/n02503517_10193-4.png 2 -sketch/elephant/n02503517_10193-5.png 2 -sketch/elephant/n02503517_10193-6.png 2 -sketch/elephant/n02503517_10193-7.png 2 -sketch/elephant/n02503517_10193-8.png 2 -sketch/elephant/n02503517_10193-9.png 2 -sketch/elephant/n02503517_10193-10.png 2 -sketch/elephant/n02503517_10259-1.png 2 -sketch/elephant/n02503517_10259-2.png 2 -sketch/elephant/n02503517_10259-3.png 2 -sketch/elephant/n02503517_10259-4.png 2 -sketch/elephant/n02503517_10259-5.png 2 -sketch/elephant/n02503517_10259-6.png 2 -sketch/elephant/n02503517_10259-7.png 2 -sketch/elephant/n02503517_10259-8.png 2 -sketch/elephant/n02503517_10259-9.png 2 -sketch/elephant/n02503517_10275-1.png 2 -sketch/elephant/n02503517_10275-2.png 2 -sketch/elephant/n02503517_10275-3.png 2 -sketch/elephant/n02503517_10275-4.png 2 -sketch/elephant/n02503517_10275-5.png 2 -sketch/elephant/n02503517_10275-6.png 2 -sketch/elephant/n02503517_10300-1.png 2 -sketch/elephant/n02503517_10300-2.png 2 -sketch/elephant/n02503517_10300-3.png 2 -sketch/elephant/n02503517_10300-4.png 2 -sketch/elephant/n02503517_10300-5.png 2 -sketch/elephant/n02503517_10439-1.png 2 -sketch/elephant/n02503517_10439-2.png 2 -sketch/elephant/n02503517_10439-3.png 2 -sketch/elephant/n02503517_10439-4.png 2 -sketch/elephant/n02503517_10439-5.png 2 -sketch/elephant/n02503517_10439-6.png 2 -sketch/elephant/n02503517_10439-7.png 2 -sketch/elephant/n02503517_10439-8.png 2 -sketch/elephant/n02503517_10440-1.png 2 -sketch/elephant/n02503517_10440-2.png 2 -sketch/elephant/n02503517_10440-3.png 2 -sketch/elephant/n02503517_10440-4.png 2 -sketch/elephant/n02503517_10440-5.png 2 -sketch/elephant/n02503517_10440-6.png 2 -sketch/elephant/n02503517_10440-7.png 2 -sketch/elephant/n02503517_10440-8.png 2 -sketch/elephant/n02503517_10440-9.png 2 -sketch/elephant/n02503517_10528-1.png 2 -sketch/elephant/n02503517_10528-2.png 2 -sketch/elephant/n02503517_10528-3.png 2 -sketch/elephant/n02503517_10528-4.png 2 -sketch/elephant/n02503517_10528-5.png 2 -sketch/elephant/n02503517_10558-1.png 2 -sketch/elephant/n02503517_10558-2.png 2 -sketch/elephant/n02503517_10558-3.png 2 -sketch/elephant/n02503517_10558-4.png 2 -sketch/elephant/n02503517_10558-5.png 2 -sketch/elephant/n02503517_10778-1.png 2 -sketch/elephant/n02503517_10778-2.png 2 -sketch/elephant/n02503517_10778-3.png 2 -sketch/elephant/n02503517_10778-4.png 2 -sketch/elephant/n02503517_10778-5.png 2 -sketch/elephant/n02503517_10778-6.png 2 -sketch/elephant/n02503517_11873-1.png 2 -sketch/elephant/n02503517_11873-2.png 2 -sketch/elephant/n02503517_11873-3.png 2 -sketch/elephant/n02503517_11873-4.png 2 -sketch/elephant/n02503517_11873-5.png 2 -sketch/elephant/n02503517_11873-6.png 2 -sketch/elephant/n02503517_11873-7.png 2 -sketch/elephant/n02503517_11873-8.png 2 -sketch/elephant/n02503517_11873-9.png 2 -sketch/elephant/n02503517_12688-1.png 2 -sketch/elephant/n02503517_12688-2.png 2 -sketch/elephant/n02503517_12688-3.png 2 -sketch/elephant/n02503517_12688-4.png 2 -sketch/elephant/n02503517_12688-5.png 2 -sketch/elephant/5921.png 2 -sketch/elephant/5922.png 2 -sketch/elephant/5923.png 2 -sketch/elephant/5924.png 2 -sketch/elephant/5925.png 2 -sketch/elephant/5926.png 2 -sketch/elephant/5927.png 2 -sketch/elephant/5928.png 2 -sketch/elephant/5929.png 2 -sketch/elephant/5930.png 2 -sketch/elephant/5931.png 2 -sketch/elephant/5932.png 2 -sketch/elephant/5933.png 2 -sketch/elephant/5934.png 2 -sketch/elephant/5935.png 2 -sketch/elephant/5936.png 2 -sketch/elephant/5937.png 2 -sketch/elephant/5938.png 2 -sketch/elephant/5939.png 2 -sketch/elephant/5940.png 2 -sketch/elephant/5941.png 2 -sketch/elephant/5942.png 2 -sketch/elephant/5943.png 2 -sketch/elephant/5944.png 2 -sketch/elephant/5945.png 2 -sketch/elephant/5946.png 2 -sketch/elephant/5947.png 2 -sketch/elephant/5948.png 2 -sketch/elephant/5949.png 2 -sketch/elephant/5950.png 2 -sketch/elephant/5951.png 2 -sketch/elephant/5952.png 2 -sketch/elephant/5953.png 2 -sketch/elephant/5954.png 2 -sketch/elephant/5955.png 2 -sketch/elephant/5956.png 2 -sketch/elephant/5957.png 2 -sketch/elephant/5958.png 2 -sketch/elephant/5959.png 2 -sketch/elephant/5960.png 2 -sketch/elephant/5961.png 2 -sketch/elephant/5962.png 2 -sketch/elephant/5963.png 2 -sketch/elephant/5964.png 2 -sketch/elephant/5965.png 2 -sketch/elephant/5966.png 2 -sketch/elephant/5967.png 2 -sketch/elephant/5968.png 2 -sketch/elephant/5969.png 2 -sketch/elephant/5970.png 2 -sketch/elephant/5971.png 2 -sketch/elephant/5972.png 2 -sketch/elephant/5973.png 2 -sketch/elephant/5974.png 2 -sketch/elephant/5975.png 2 -sketch/elephant/5976.png 2 -sketch/elephant/5977.png 2 -sketch/elephant/5978.png 2 -sketch/elephant/5979.png 2 -sketch/elephant/5980.png 2 -sketch/elephant/5981.png 2 -sketch/elephant/5982.png 2 -sketch/elephant/5983.png 2 -sketch/elephant/5984.png 2 -sketch/elephant/5985.png 2 -sketch/elephant/5986.png 2 -sketch/elephant/5987.png 2 -sketch/elephant/5988.png 2 -sketch/elephant/5989.png 2 -sketch/elephant/5990.png 2 -sketch/elephant/5991.png 2 -sketch/elephant/5992.png 2 -sketch/elephant/5993.png 2 -sketch/elephant/5994.png 2 -sketch/elephant/5995.png 2 -sketch/elephant/5996.png 2 -sketch/elephant/5997.png 2 -sketch/elephant/5998.png 2 -sketch/elephant/5999.png 2 -sketch/elephant/6000.png 2 -sketch/giraffe/n02439033_2677-3.png 3 -sketch/giraffe/n02439033_2677-4.png 3 -sketch/giraffe/n02439033_2677-5.png 3 -sketch/giraffe/n02439033_2677-6.png 3 -sketch/giraffe/n02439033_2677-7.png 3 -sketch/giraffe/n02439033_3944-1.png 3 -sketch/giraffe/n02439033_3944-2.png 3 -sketch/giraffe/n02439033_3944-3.png 3 -sketch/giraffe/n02439033_3944-4.png 3 -sketch/giraffe/n02439033_3944-5.png 3 -sketch/giraffe/n02439033_3944-6.png 3 -sketch/giraffe/n02439033_3944-7.png 3 -sketch/giraffe/n02439033_3944-8.png 3 -sketch/giraffe/n02439033_3944-9.png 3 -sketch/giraffe/n02439033_3944-10.png 3 -sketch/giraffe/n02439033_4601-1.png 3 -sketch/giraffe/n02439033_4601-2.png 3 -sketch/giraffe/n02439033_4601-3.png 3 -sketch/giraffe/n02439033_4601-4.png 3 -sketch/giraffe/n02439033_4601-5.png 3 -sketch/giraffe/n02439033_5004-1.png 3 -sketch/giraffe/n02439033_5004-2.png 3 -sketch/giraffe/n02439033_5004-3.png 3 -sketch/giraffe/n02439033_5004-4.png 3 -sketch/giraffe/n02439033_5004-5.png 3 -sketch/giraffe/n02439033_5004-6.png 3 -sketch/giraffe/n02439033_5004-7.png 3 -sketch/giraffe/n02439033_5004-8.png 3 -sketch/giraffe/n02439033_5652-1.png 3 -sketch/giraffe/n02439033_5652-2.png 3 -sketch/giraffe/n02439033_5652-3.png 3 -sketch/giraffe/n02439033_5652-4.png 3 -sketch/giraffe/n02439033_5652-5.png 3 -sketch/giraffe/n02439033_6552-1.png 3 -sketch/giraffe/n02439033_6552-2.png 3 -sketch/giraffe/n02439033_6552-3.png 3 -sketch/giraffe/n02439033_6552-4.png 3 -sketch/giraffe/n02439033_6552-5.png 3 -sketch/giraffe/n02439033_8789-1.png 3 -sketch/giraffe/n02439033_8789-2.png 3 -sketch/giraffe/n02439033_8789-3.png 3 -sketch/giraffe/n02439033_8789-4.png 3 -sketch/giraffe/n02439033_8789-5.png 3 -sketch/giraffe/n02439033_8846-1.png 3 -sketch/giraffe/n02439033_8846-2.png 3 -sketch/giraffe/n02439033_8846-3.png 3 -sketch/giraffe/n02439033_8846-4.png 3 -sketch/giraffe/n02439033_8846-5.png 3 -sketch/giraffe/n02439033_8846-6.png 3 -sketch/giraffe/n02439033_8846-7.png 3 -sketch/giraffe/n02439033_8846-8.png 3 -sketch/giraffe/n02439033_8846-9.png 3 -sketch/giraffe/n02439033_8846-10.png 3 -sketch/giraffe/n02439033_8846-11.png 3 -sketch/giraffe/n02439033_8846-12.png 3 -sketch/giraffe/n02439033_8846-13.png 3 -sketch/giraffe/n02439033_8875-1.png 3 -sketch/giraffe/n02439033_8875-2.png 3 -sketch/giraffe/n02439033_8875-3.png 3 -sketch/giraffe/n02439033_8875-4.png 3 -sketch/giraffe/n02439033_8875-5.png 3 -sketch/giraffe/n02439033_8875-6.png 3 -sketch/giraffe/n02439033_8875-7.png 3 -sketch/giraffe/n02439033_8875-8.png 3 -sketch/giraffe/n02439033_9257-1.png 3 -sketch/giraffe/n02439033_9257-2.png 3 -sketch/giraffe/n02439033_9257-3.png 3 -sketch/giraffe/n02439033_9257-4.png 3 -sketch/giraffe/n02439033_9257-5.png 3 -sketch/giraffe/n02439033_9257-6.png 3 -sketch/giraffe/n02439033_9261-1.png 3 -sketch/giraffe/n02439033_9261-2.png 3 -sketch/giraffe/n02439033_9261-3.png 3 -sketch/giraffe/n02439033_9261-4.png 3 -sketch/giraffe/n02439033_9261-5.png 3 -sketch/giraffe/n02439033_9398-1.png 3 -sketch/giraffe/n02439033_9398-2.png 3 -sketch/giraffe/n02439033_9398-3.png 3 -sketch/giraffe/n02439033_9398-4.png 3 -sketch/giraffe/n02439033_9398-5.png 3 -sketch/giraffe/n02439033_9398-6.png 3 -sketch/giraffe/n02439033_9472-1.png 3 -sketch/giraffe/n02439033_9472-2.png 3 -sketch/giraffe/n02439033_9472-3.png 3 -sketch/giraffe/n02439033_9472-4.png 3 -sketch/giraffe/n02439033_9472-5.png 3 -sketch/giraffe/n02439033_9472-6.png 3 -sketch/giraffe/n02439033_9472-7.png 3 -sketch/giraffe/n02439033_9472-8.png 3 -sketch/giraffe/n02439033_9472-9.png 3 -sketch/giraffe/n02439033_9472-10.png 3 -sketch/giraffe/n02439033_9598-1.png 3 -sketch/giraffe/n02439033_9598-2.png 3 -sketch/giraffe/n02439033_9598-3.png 3 -sketch/giraffe/n02439033_9598-4.png 3 -sketch/giraffe/n02439033_9598-5.png 3 -sketch/giraffe/n02439033_9598-6.png 3 -sketch/giraffe/n02439033_9598-7.png 3 -sketch/giraffe/n02439033_9598-8.png 3 -sketch/giraffe/n02439033_9598-9.png 3 -sketch/giraffe/n02439033_9598-10.png 3 -sketch/giraffe/n02439033_9604-1.png 3 -sketch/giraffe/n02439033_9604-2.png 3 -sketch/giraffe/n02439033_9604-3.png 3 -sketch/giraffe/n02439033_9604-4.png 3 -sketch/giraffe/n02439033_9604-5.png 3 -sketch/giraffe/n02439033_9679-1.png 3 -sketch/giraffe/n02439033_9679-2.png 3 -sketch/giraffe/n02439033_9679-3.png 3 -sketch/giraffe/n02439033_9679-4.png 3 -sketch/giraffe/n02439033_9679-5.png 3 -sketch/giraffe/n02439033_9719-1.png 3 -sketch/giraffe/n02439033_9719-2.png 3 -sketch/giraffe/n02439033_9719-3.png 3 -sketch/giraffe/n02439033_9719-4.png 3 -sketch/giraffe/n02439033_9719-5.png 3 -sketch/giraffe/n02439033_9719-6.png 3 -sketch/giraffe/n02439033_9719-7.png 3 -sketch/giraffe/n02439033_9719-8.png 3 -sketch/giraffe/n02439033_9719-9.png 3 -sketch/giraffe/n02439033_10130-1.png 3 -sketch/giraffe/n02439033_10130-2.png 3 -sketch/giraffe/n02439033_10130-3.png 3 -sketch/giraffe/n02439033_10130-4.png 3 -sketch/giraffe/n02439033_10130-5.png 3 -sketch/giraffe/n02439033_10130-6.png 3 -sketch/giraffe/n02439033_10130-7.png 3 -sketch/giraffe/n02439033_10164-1.png 3 -sketch/giraffe/n02439033_10164-2.png 3 -sketch/giraffe/n02439033_10164-3.png 3 -sketch/giraffe/n02439033_10164-4.png 3 -sketch/giraffe/n02439033_10164-5.png 3 -sketch/giraffe/n02439033_10164-6.png 3 -sketch/giraffe/n02439033_10164-7.png 3 -sketch/giraffe/n02439033_10164-8.png 3 -sketch/giraffe/n02439033_10164-9.png 3 -sketch/giraffe/n02439033_10164-10.png 3 -sketch/giraffe/n02439033_10279-1.png 3 -sketch/giraffe/n02439033_10279-2.png 3 -sketch/giraffe/n02439033_10279-3.png 3 -sketch/giraffe/n02439033_10279-4.png 3 -sketch/giraffe/n02439033_10279-5.png 3 -sketch/giraffe/n02439033_10279-6.png 3 -sketch/giraffe/n02439033_10295-1.png 3 -sketch/giraffe/n02439033_10295-2.png 3 -sketch/giraffe/n02439033_10295-3.png 3 -sketch/giraffe/n02439033_10295-4.png 3 -sketch/giraffe/n02439033_10295-5.png 3 -sketch/giraffe/n02439033_10453-1.png 3 -sketch/giraffe/n02439033_10453-2.png 3 -sketch/giraffe/n02439033_10453-3.png 3 -sketch/giraffe/n02439033_10453-4.png 3 -sketch/giraffe/n02439033_10453-5.png 3 -sketch/giraffe/n02439033_10453-6.png 3 -sketch/giraffe/n02439033_10491-1.png 3 -sketch/giraffe/n02439033_10491-2.png 3 -sketch/giraffe/n02439033_10491-3.png 3 -sketch/giraffe/n02439033_10491-4.png 3 -sketch/giraffe/n02439033_10491-5.png 3 -sketch/giraffe/n02439033_10491-6.png 3 -sketch/giraffe/n02439033_10541-1.png 3 -sketch/giraffe/n02439033_10541-2.png 3 -sketch/giraffe/n02439033_10541-3.png 3 -sketch/giraffe/n02439033_10541-4.png 3 -sketch/giraffe/n02439033_10541-5.png 3 -sketch/giraffe/n02439033_10541-6.png 3 -sketch/giraffe/n02439033_10616-1.png 3 -sketch/giraffe/n02439033_10616-2.png 3 -sketch/giraffe/n02439033_10616-3.png 3 -sketch/giraffe/n02439033_10616-4.png 3 -sketch/giraffe/n02439033_10616-5.png 3 -sketch/giraffe/n02439033_10802-1.png 3 -sketch/giraffe/n02439033_10802-2.png 3 -sketch/giraffe/n02439033_10802-3.png 3 -sketch/giraffe/n02439033_10802-4.png 3 -sketch/giraffe/n02439033_10802-5.png 3 -sketch/giraffe/n02439033_10802-6.png 3 -sketch/giraffe/n02439033_10802-7.png 3 -sketch/giraffe/n02439033_10802-8.png 3 -sketch/giraffe/n02439033_10803-1.png 3 -sketch/giraffe/n02439033_10803-2.png 3 -sketch/giraffe/n02439033_10803-3.png 3 -sketch/giraffe/n02439033_10803-4.png 3 -sketch/giraffe/n02439033_10803-5.png 3 -sketch/giraffe/n02439033_10811-1.png 3 -sketch/giraffe/n02439033_10811-2.png 3 -sketch/giraffe/n02439033_10811-3.png 3 -sketch/giraffe/n02439033_10811-4.png 3 -sketch/giraffe/n02439033_10811-5.png 3 -sketch/giraffe/n02439033_10811-6.png 3 -sketch/giraffe/n02439033_10811-7.png 3 -sketch/giraffe/n02439033_10839-1.png 3 -sketch/giraffe/n02439033_10839-2.png 3 -sketch/giraffe/n02439033_10839-3.png 3 -sketch/giraffe/n02439033_10839-4.png 3 -sketch/giraffe/n02439033_10839-5.png 3 -sketch/giraffe/n02439033_10839-6.png 3 -sketch/giraffe/n02439033_10839-7.png 3 -sketch/giraffe/n02439033_10919-1.png 3 -sketch/giraffe/n02439033_10919-2.png 3 -sketch/giraffe/n02439033_10919-3.png 3 -sketch/giraffe/n02439033_10919-4.png 3 -sketch/giraffe/n02439033_10919-5.png 3 -sketch/giraffe/n02439033_10919-6.png 3 -sketch/giraffe/n02439033_11059-1.png 3 -sketch/giraffe/n02439033_11059-2.png 3 -sketch/giraffe/n02439033_11059-3.png 3 -sketch/giraffe/n02439033_11059-4.png 3 -sketch/giraffe/n02439033_11059-5.png 3 -sketch/giraffe/n02439033_11059-6.png 3 -sketch/giraffe/n02439033_11059-7.png 3 -sketch/giraffe/n02439033_11059-8.png 3 -sketch/giraffe/n02439033_11059-9.png 3 -sketch/giraffe/n02439033_11114-1.png 3 -sketch/giraffe/n02439033_11114-2.png 3 -sketch/giraffe/n02439033_11114-3.png 3 -sketch/giraffe/n02439033_11114-4.png 3 -sketch/giraffe/n02439033_11114-5.png 3 -sketch/giraffe/n02439033_11130-1.png 3 -sketch/giraffe/n02439033_11130-2.png 3 -sketch/giraffe/n02439033_11130-3.png 3 -sketch/giraffe/n02439033_11130-4.png 3 -sketch/giraffe/n02439033_11130-5.png 3 -sketch/giraffe/n02439033_11130-6.png 3 -sketch/giraffe/n02439033_11215-1.png 3 -sketch/giraffe/n02439033_11215-2.png 3 -sketch/giraffe/n02439033_11215-3.png 3 -sketch/giraffe/n02439033_11215-4.png 3 -sketch/giraffe/n02439033_11215-5.png 3 -sketch/giraffe/n02439033_11273-1.png 3 -sketch/giraffe/n02439033_11273-2.png 3 -sketch/giraffe/n02439033_11273-3.png 3 -sketch/giraffe/n02439033_11273-4.png 3 -sketch/giraffe/n02439033_11273-5.png 3 -sketch/giraffe/n02439033_11273-6.png 3 -sketch/giraffe/n02439033_11328-1.png 3 -sketch/giraffe/n02439033_11328-2.png 3 -sketch/giraffe/n02439033_11328-3.png 3 -sketch/giraffe/n02439033_11328-4.png 3 -sketch/giraffe/n02439033_11328-5.png 3 -sketch/giraffe/n02439033_11328-6.png 3 -sketch/giraffe/n02439033_11458-1.png 3 -sketch/giraffe/n02439033_11458-2.png 3 -sketch/giraffe/n02439033_11458-3.png 3 -sketch/giraffe/n02439033_11458-4.png 3 -sketch/giraffe/n02439033_11458-5.png 3 -sketch/giraffe/n02439033_11458-6.png 3 -sketch/giraffe/n02439033_11486-1.png 3 -sketch/giraffe/n02439033_11486-2.png 3 -sketch/giraffe/n02439033_11486-3.png 3 -sketch/giraffe/n02439033_11486-4.png 3 -sketch/giraffe/n02439033_11486-5.png 3 -sketch/giraffe/n02439033_11487-1.png 3 -sketch/giraffe/n02439033_11487-2.png 3 -sketch/giraffe/n02439033_11487-3.png 3 -sketch/giraffe/n02439033_11487-4.png 3 -sketch/giraffe/n02439033_11487-5.png 3 -sketch/giraffe/n02439033_11487-6.png 3 -sketch/giraffe/n02439033_11487-7.png 3 -sketch/giraffe/n02439033_11504-1.png 3 -sketch/giraffe/n02439033_11504-2.png 3 -sketch/giraffe/n02439033_11504-3.png 3 -sketch/giraffe/n02439033_11504-4.png 3 -sketch/giraffe/n02439033_11504-5.png 3 -sketch/giraffe/n02439033_11504-6.png 3 -sketch/giraffe/n02439033_11504-7.png 3 -sketch/giraffe/n02439033_11599-1.png 3 -sketch/giraffe/n02439033_11599-2.png 3 -sketch/giraffe/n02439033_11599-3.png 3 -sketch/giraffe/n02439033_11599-4.png 3 -sketch/giraffe/n02439033_11599-5.png 3 -sketch/giraffe/n02439033_11599-6.png 3 -sketch/giraffe/n02439033_11599-7.png 3 -sketch/giraffe/n02439033_11599-8.png 3 -sketch/giraffe/n02439033_11627-1.png 3 -sketch/giraffe/n02439033_11627-2.png 3 -sketch/giraffe/n02439033_11627-3.png 3 -sketch/giraffe/n02439033_11627-4.png 3 -sketch/giraffe/n02439033_11627-5.png 3 -sketch/giraffe/n02439033_11627-6.png 3 -sketch/giraffe/n02439033_11627-7.png 3 -sketch/giraffe/n02439033_11666-1.png 3 -sketch/giraffe/n02439033_11666-2.png 3 -sketch/giraffe/n02439033_11666-3.png 3 -sketch/giraffe/n02439033_11666-4.png 3 -sketch/giraffe/n02439033_11666-5.png 3 -sketch/giraffe/n02439033_11666-6.png 3 -sketch/giraffe/n02439033_11666-7.png 3 -sketch/giraffe/n02439033_11683-1.png 3 -sketch/giraffe/n02439033_11683-2.png 3 -sketch/giraffe/n02439033_11683-3.png 3 -sketch/giraffe/n02439033_11683-4.png 3 -sketch/giraffe/n02439033_11683-5.png 3 -sketch/giraffe/n02439033_11683-6.png 3 -sketch/giraffe/n02439033_11683-7.png 3 -sketch/giraffe/n02439033_11715-1.png 3 -sketch/giraffe/n02439033_11715-2.png 3 -sketch/giraffe/n02439033_11715-3.png 3 -sketch/giraffe/n02439033_11715-4.png 3 -sketch/giraffe/n02439033_11715-5.png 3 -sketch/giraffe/n02439033_11715-6.png 3 -sketch/giraffe/n02439033_11845-1.png 3 -sketch/giraffe/n02439033_11845-2.png 3 -sketch/giraffe/n02439033_11845-3.png 3 -sketch/giraffe/n02439033_11845-4.png 3 -sketch/giraffe/n02439033_11845-5.png 3 -sketch/giraffe/n02439033_11845-6.png 3 -sketch/giraffe/n02439033_11845-7.png 3 -sketch/giraffe/n02439033_11845-8.png 3 -sketch/giraffe/n02439033_11845-9.png 3 -sketch/giraffe/n02439033_11845-10.png 3 -sketch/giraffe/n02439033_11894-1.png 3 -sketch/giraffe/n02439033_11894-2.png 3 -sketch/giraffe/n02439033_11894-3.png 3 -sketch/giraffe/n02439033_11894-4.png 3 -sketch/giraffe/n02439033_11894-5.png 3 -sketch/giraffe/n02439033_11894-6.png 3 -sketch/giraffe/n02439033_11894-7.png 3 -sketch/giraffe/n02439033_11894-8.png 3 -sketch/giraffe/n02439033_11894-9.png 3 -sketch/giraffe/n02439033_12059-1.png 3 -sketch/giraffe/n02439033_12059-2.png 3 -sketch/giraffe/n02439033_12059-3.png 3 -sketch/giraffe/n02439033_12059-4.png 3 -sketch/giraffe/n02439033_12059-5.png 3 -sketch/giraffe/n02439033_12413-1.png 3 -sketch/giraffe/n02439033_12413-2.png 3 -sketch/giraffe/n02439033_12413-3.png 3 -sketch/giraffe/n02439033_12413-4.png 3 -sketch/giraffe/n02439033_12413-5.png 3 -sketch/giraffe/n02439033_12413-6.png 3 -sketch/giraffe/n02439033_12413-7.png 3 -sketch/giraffe/n02439033_12485-1.png 3 -sketch/giraffe/n02439033_12485-2.png 3 -sketch/giraffe/n02439033_12485-3.png 3 -sketch/giraffe/n02439033_12485-4.png 3 -sketch/giraffe/n02439033_12485-5.png 3 -sketch/giraffe/n02439033_12485-6.png 3 -sketch/giraffe/n02439033_12680-1.png 3 -sketch/giraffe/n02439033_12680-2.png 3 -sketch/giraffe/n02439033_12680-3.png 3 -sketch/giraffe/n02439033_12680-4.png 3 -sketch/giraffe/n02439033_12680-5.png 3 -sketch/giraffe/n02439033_12930-1.png 3 -sketch/giraffe/n02439033_12930-2.png 3 -sketch/giraffe/n02439033_12930-3.png 3 -sketch/giraffe/n02439033_12930-4.png 3 -sketch/giraffe/n02439033_12930-5.png 3 -sketch/giraffe/n02439033_12939-1.png 3 -sketch/giraffe/n02439033_12939-2.png 3 -sketch/giraffe/n02439033_12939-3.png 3 -sketch/giraffe/n02439033_12939-4.png 3 -sketch/giraffe/n02439033_12939-5.png 3 -sketch/giraffe/n02439033_12939-6.png 3 -sketch/giraffe/n02439033_12939-7.png 3 -sketch/giraffe/n02439033_12939-8.png 3 -sketch/giraffe/n02439033_12987-1.png 3 -sketch/giraffe/n02439033_12987-2.png 3 -sketch/giraffe/n02439033_12987-3.png 3 -sketch/giraffe/n02439033_12987-4.png 3 -sketch/giraffe/n02439033_12987-5.png 3 -sketch/giraffe/n02439033_12987-6.png 3 -sketch/giraffe/n02439033_13236-1.png 3 -sketch/giraffe/n02439033_13236-2.png 3 -sketch/giraffe/n02439033_13236-3.png 3 -sketch/giraffe/n02439033_13236-4.png 3 -sketch/giraffe/n02439033_13236-5.png 3 -sketch/giraffe/n02439033_13236-6.png 3 -sketch/giraffe/n02439033_13384-1.png 3 -sketch/giraffe/n02439033_13384-2.png 3 -sketch/giraffe/n02439033_13384-3.png 3 -sketch/giraffe/n02439033_13384-4.png 3 -sketch/giraffe/n02439033_13384-5.png 3 -sketch/giraffe/n02439033_13384-6.png 3 -sketch/giraffe/n02439033_13430-1.png 3 -sketch/giraffe/n02439033_13430-2.png 3 -sketch/giraffe/n02439033_13430-3.png 3 -sketch/giraffe/n02439033_13430-4.png 3 -sketch/giraffe/n02439033_13430-5.png 3 -sketch/giraffe/n02439033_13602-1.png 3 -sketch/giraffe/n02439033_13602-2.png 3 -sketch/giraffe/n02439033_13602-3.png 3 -sketch/giraffe/n02439033_13602-4.png 3 -sketch/giraffe/n02439033_13602-5.png 3 -sketch/giraffe/n02439033_13602-6.png 3 -sketch/giraffe/n02439033_13602-7.png 3 -sketch/giraffe/n02439033_13868-1.png 3 -sketch/giraffe/n02439033_13868-2.png 3 -sketch/giraffe/n02439033_13868-3.png 3 -sketch/giraffe/n02439033_13868-4.png 3 -sketch/giraffe/n02439033_13868-5.png 3 -sketch/giraffe/n02439033_13868-6.png 3 -sketch/giraffe/n02439033_13868-7.png 3 -sketch/giraffe/n02439033_14040-1.png 3 -sketch/giraffe/n02439033_14040-2.png 3 -sketch/giraffe/n02439033_14040-3.png 3 -sketch/giraffe/n02439033_14040-4.png 3 -sketch/giraffe/n02439033_14040-5.png 3 -sketch/giraffe/n02439033_14040-6.png 3 -sketch/giraffe/n02439033_14060-1.png 3 -sketch/giraffe/n02439033_14060-2.png 3 -sketch/giraffe/n02439033_14060-3.png 3 -sketch/giraffe/n02439033_14060-4.png 3 -sketch/giraffe/n02439033_14060-5.png 3 -sketch/giraffe/n02439033_14060-6.png 3 -sketch/giraffe/n02439033_14060-7.png 3 -sketch/giraffe/n02439033_14060-8.png 3 -sketch/giraffe/n02439033_14121-1.png 3 -sketch/giraffe/n02439033_14121-2.png 3 -sketch/giraffe/n02439033_14121-3.png 3 -sketch/giraffe/n02439033_14121-4.png 3 -sketch/giraffe/n02439033_14121-5.png 3 -sketch/giraffe/n02439033_14121-6.png 3 -sketch/giraffe/n02439033_14121-7.png 3 -sketch/giraffe/n02439033_14121-8.png 3 -sketch/giraffe/n02439033_14121-9.png 3 -sketch/giraffe/n02439033_14121-10.png 3 -sketch/giraffe/n02439033_14148-1.png 3 -sketch/giraffe/n02439033_14148-2.png 3 -sketch/giraffe/n02439033_14148-3.png 3 -sketch/giraffe/n02439033_14148-4.png 3 -sketch/giraffe/n02439033_14148-5.png 3 -sketch/giraffe/n02439033_14148-6.png 3 -sketch/giraffe/n02439033_14148-7.png 3 -sketch/giraffe/n02439033_14148-8.png 3 -sketch/giraffe/n02439033_14148-9.png 3 -sketch/giraffe/n02439033_14148-10.png 3 -sketch/giraffe/n02439033_14184-1.png 3 -sketch/giraffe/n02439033_14184-2.png 3 -sketch/giraffe/n02439033_14184-3.png 3 -sketch/giraffe/7361.png 3 -sketch/giraffe/n02439033_14184-4.png 3 -sketch/giraffe/n02439033_14184-5.png 3 -sketch/giraffe/n02439033_14322-1.png 3 -sketch/giraffe/n02439033_14322-2.png 3 -sketch/giraffe/n02439033_14322-3.png 3 -sketch/giraffe/n02439033_14322-4.png 3 -sketch/giraffe/n02439033_14322-5.png 3 -sketch/giraffe/n02439033_14497-1.png 3 -sketch/giraffe/n02439033_14497-2.png 3 -sketch/giraffe/n02439033_14497-3.png 3 -sketch/giraffe/n02439033_14497-4.png 3 -sketch/giraffe/n02439033_14497-5.png 3 -sketch/giraffe/n02439033_14497-6.png 3 -sketch/giraffe/n02439033_14554-1.png 3 -sketch/giraffe/n02439033_14554-2.png 3 -sketch/giraffe/n02439033_14554-3.png 3 -sketch/giraffe/n02439033_14554-4.png 3 -sketch/giraffe/n02439033_14554-5.png 3 -sketch/giraffe/n02439033_14554-6.png 3 -sketch/giraffe/n02439033_14554-7.png 3 -sketch/giraffe/n02439033_14554-8.png 3 -sketch/giraffe/n02439033_14554-9.png 3 -sketch/giraffe/n02439033_14580-1.png 3 -sketch/giraffe/n02439033_14580-2.png 3 -sketch/giraffe/n02439033_14580-3.png 3 -sketch/giraffe/n02439033_14580-4.png 3 -sketch/giraffe/n02439033_14580-5.png 3 -sketch/giraffe/n02439033_14580-6.png 3 -sketch/giraffe/n02439033_14580-7.png 3 -sketch/giraffe/n02439033_14580-8.png 3 -sketch/giraffe/n02439033_14580-9.png 3 -sketch/giraffe/n02439033_14580-10.png 3 -sketch/giraffe/n02439033_14600-1.png 3 -sketch/giraffe/n02439033_14600-2.png 3 -sketch/giraffe/n02439033_14600-3.png 3 -sketch/giraffe/n02439033_14600-4.png 3 -sketch/giraffe/n02439033_14600-5.png 3 -sketch/giraffe/n02439033_14600-6.png 3 -sketch/giraffe/n02439033_14600-7.png 3 -sketch/giraffe/n02439033_14600-8.png 3 -sketch/giraffe/n02439033_14600-9.png 3 -sketch/giraffe/n02439033_14609-1.png 3 -sketch/giraffe/n02439033_14609-2.png 3 -sketch/giraffe/n02439033_14609-3.png 3 -sketch/giraffe/n02439033_14609-4.png 3 -sketch/giraffe/n02439033_14609-5.png 3 -sketch/giraffe/n02439033_14609-6.png 3 -sketch/giraffe/n02439033_14724-1.png 3 -sketch/giraffe/n02439033_14724-2.png 3 -sketch/giraffe/n02439033_14724-3.png 3 -sketch/giraffe/n02439033_14724-4.png 3 -sketch/giraffe/n02439033_14724-5.png 3 -sketch/giraffe/n02439033_14764-1.png 3 -sketch/giraffe/n02439033_14764-2.png 3 -sketch/giraffe/n02439033_14764-3.png 3 -sketch/giraffe/n02439033_14764-4.png 3 -sketch/giraffe/n02439033_14764-5.png 3 -sketch/giraffe/n02439033_14781-1.png 3 -sketch/giraffe/n02439033_14781-2.png 3 -sketch/giraffe/n02439033_14781-3.png 3 -sketch/giraffe/n02439033_14781-4.png 3 -sketch/giraffe/n02439033_14781-5.png 3 -sketch/giraffe/n02439033_14781-6.png 3 -sketch/giraffe/n02439033_14781-7.png 3 -sketch/giraffe/n02439033_14781-8.png 3 -sketch/giraffe/n02439033_14784-1.png 3 -sketch/giraffe/n02439033_14784-2.png 3 -sketch/giraffe/n02439033_14784-3.png 3 -sketch/giraffe/n02439033_14784-4.png 3 -sketch/giraffe/n02439033_14784-5.png 3 -sketch/giraffe/n02439033_14784-6.png 3 -sketch/giraffe/n02439033_14846-1.png 3 -sketch/giraffe/n02439033_14846-2.png 3 -sketch/giraffe/n02439033_14846-3.png 3 -sketch/giraffe/n02439033_14846-4.png 3 -sketch/giraffe/n02439033_14846-5.png 3 -sketch/giraffe/n02439033_14846-6.png 3 -sketch/giraffe/n02439033_14846-7.png 3 -sketch/giraffe/n02439033_14846-8.png 3 -sketch/giraffe/n02439033_14872-1.png 3 -sketch/giraffe/n02439033_14872-2.png 3 -sketch/giraffe/n02439033_14872-3.png 3 -sketch/giraffe/n02439033_14872-4.png 3 -sketch/giraffe/n02439033_14872-5.png 3 -sketch/giraffe/n02439033_14872-6.png 3 -sketch/giraffe/n02439033_14885-1.png 3 -sketch/giraffe/n02439033_14885-2.png 3 -sketch/giraffe/n02439033_14885-3.png 3 -sketch/giraffe/n02439033_14885-4.png 3 -sketch/giraffe/n02439033_14885-5.png 3 -sketch/giraffe/n02439033_14962-1.png 3 -sketch/giraffe/n02439033_14962-2.png 3 -sketch/giraffe/n02439033_14962-3.png 3 -sketch/giraffe/n02439033_14962-4.png 3 -sketch/giraffe/n02439033_14962-5.png 3 -sketch/giraffe/n02439033_14962-6.png 3 -sketch/giraffe/n02439033_14962-7.png 3 -sketch/giraffe/n02439033_15005-1.png 3 -sketch/giraffe/n02439033_15005-2.png 3 -sketch/giraffe/n02439033_15005-3.png 3 -sketch/giraffe/n02439033_15005-4.png 3 -sketch/giraffe/n02439033_15005-5.png 3 -sketch/giraffe/n02439033_15005-6.png 3 -sketch/giraffe/n02439033_15005-7.png 3 -sketch/giraffe/n02439033_15005-8.png 3 -sketch/giraffe/n02439033_15005-9.png 3 -sketch/giraffe/n02439033_15005-10.png 3 -sketch/giraffe/n02439033_15384-1.png 3 -sketch/giraffe/n02439033_15384-2.png 3 -sketch/giraffe/n02439033_15384-3.png 3 -sketch/giraffe/n02439033_15384-4.png 3 -sketch/giraffe/n02439033_15384-5.png 3 -sketch/giraffe/n02439033_15401-1.png 3 -sketch/giraffe/n02439033_15401-2.png 3 -sketch/giraffe/n02439033_15401-3.png 3 -sketch/giraffe/n02439033_15401-4.png 3 -sketch/giraffe/n02439033_15401-5.png 3 -sketch/giraffe/n02439033_15453-1.png 3 -sketch/giraffe/n02439033_15453-2.png 3 -sketch/giraffe/n02439033_15453-3.png 3 -sketch/giraffe/n02439033_15453-4.png 3 -sketch/giraffe/n02439033_15453-5.png 3 -sketch/giraffe/n02439033_15453-6.png 3 -sketch/giraffe/n02439033_15453-7.png 3 -sketch/giraffe/n02439033_15453-8.png 3 -sketch/giraffe/n02439033_15453-9.png 3 -sketch/giraffe/n02439033_15479-1.png 3 -sketch/giraffe/n02439033_15479-2.png 3 -sketch/giraffe/n02439033_15479-3.png 3 -sketch/giraffe/n02439033_15479-4.png 3 -sketch/giraffe/n02439033_15479-5.png 3 -sketch/giraffe/n02439033_15479-6.png 3 -sketch/giraffe/n02439033_15479-7.png 3 -sketch/giraffe/n02439033_15540-1.png 3 -sketch/giraffe/n02439033_15540-2.png 3 -sketch/giraffe/n02439033_15540-3.png 3 -sketch/giraffe/n02439033_15540-4.png 3 -sketch/giraffe/n02439033_15540-5.png 3 -sketch/giraffe/n02439033_15540-6.png 3 -sketch/giraffe/n02439033_15555-1.png 3 -sketch/giraffe/n02439033_15555-2.png 3 -sketch/giraffe/n02439033_15555-3.png 3 -sketch/giraffe/n02439033_15555-4.png 3 -sketch/giraffe/n02439033_15555-5.png 3 -sketch/giraffe/n02439033_15936-1.png 3 -sketch/giraffe/n02439033_15936-2.png 3 -sketch/giraffe/n02439033_15936-3.png 3 -sketch/giraffe/n02439033_15936-4.png 3 -sketch/giraffe/n02439033_15936-5.png 3 -sketch/giraffe/n02439033_15936-6.png 3 -sketch/giraffe/n02439033_15936-7.png 3 -sketch/giraffe/n02439033_16085-1.png 3 -sketch/giraffe/n02439033_16085-2.png 3 -sketch/giraffe/n02439033_16085-3.png 3 -sketch/giraffe/n02439033_16085-4.png 3 -sketch/giraffe/n02439033_16085-5.png 3 -sketch/giraffe/n02439033_16356-1.png 3 -sketch/giraffe/n02439033_16356-2.png 3 -sketch/giraffe/n02439033_16356-3.png 3 -sketch/giraffe/n02439033_16356-4.png 3 -sketch/giraffe/n02439033_16356-5.png 3 -sketch/giraffe/n02439033_16483-1.png 3 -sketch/giraffe/n02439033_16483-2.png 3 -sketch/giraffe/n02439033_16483-3.png 3 -sketch/giraffe/n02439033_16483-4.png 3 -sketch/giraffe/n02439033_16483-5.png 3 -sketch/giraffe/n02439033_16483-6.png 3 -sketch/giraffe/7362.png 3 -sketch/giraffe/7363.png 3 -sketch/giraffe/7364.png 3 -sketch/giraffe/7365.png 3 -sketch/giraffe/7366.png 3 -sketch/giraffe/7367.png 3 -sketch/giraffe/7368.png 3 -sketch/giraffe/7369.png 3 -sketch/giraffe/7370.png 3 -sketch/giraffe/7371.png 3 -sketch/giraffe/7372.png 3 -sketch/giraffe/7373.png 3 -sketch/giraffe/7374.png 3 -sketch/giraffe/7375.png 3 -sketch/giraffe/7376.png 3 -sketch/giraffe/7377.png 3 -sketch/giraffe/7378.png 3 -sketch/giraffe/7379.png 3 -sketch/giraffe/7380.png 3 -sketch/giraffe/7381.png 3 -sketch/giraffe/7382.png 3 -sketch/giraffe/7383.png 3 -sketch/giraffe/7384.png 3 -sketch/giraffe/7385.png 3 -sketch/giraffe/7386.png 3 -sketch/giraffe/7387.png 3 -sketch/giraffe/7388.png 3 -sketch/giraffe/7389.png 3 -sketch/giraffe/7390.png 3 -sketch/giraffe/7391.png 3 -sketch/giraffe/7392.png 3 -sketch/giraffe/7393.png 3 -sketch/giraffe/7394.png 3 -sketch/giraffe/7395.png 3 -sketch/giraffe/7396.png 3 -sketch/giraffe/7397.png 3 -sketch/giraffe/7398.png 3 -sketch/giraffe/7399.png 3 -sketch/giraffe/7400.png 3 -sketch/giraffe/7401.png 3 -sketch/giraffe/7402.png 3 -sketch/giraffe/7403.png 3 -sketch/giraffe/7404.png 3 -sketch/giraffe/7405.png 3 -sketch/giraffe/7406.png 3 -sketch/giraffe/7407.png 3 -sketch/giraffe/7408.png 3 -sketch/giraffe/7409.png 3 -sketch/giraffe/7410.png 3 -sketch/giraffe/7411.png 3 -sketch/giraffe/7412.png 3 -sketch/giraffe/7413.png 3 -sketch/giraffe/7414.png 3 -sketch/giraffe/7415.png 3 -sketch/giraffe/7416.png 3 -sketch/giraffe/7417.png 3 -sketch/giraffe/7418.png 3 -sketch/giraffe/7419.png 3 -sketch/giraffe/7420.png 3 -sketch/giraffe/7421.png 3 -sketch/giraffe/7422.png 3 -sketch/giraffe/7423.png 3 -sketch/giraffe/7424.png 3 -sketch/giraffe/7425.png 3 -sketch/giraffe/7426.png 3 -sketch/giraffe/7427.png 3 -sketch/giraffe/7428.png 3 -sketch/giraffe/7429.png 3 -sketch/giraffe/7430.png 3 -sketch/giraffe/7431.png 3 -sketch/giraffe/7432.png 3 -sketch/giraffe/7433.png 3 -sketch/giraffe/7434.png 3 -sketch/giraffe/7435.png 3 -sketch/giraffe/7436.png 3 -sketch/giraffe/7437.png 3 -sketch/giraffe/7438.png 3 -sketch/giraffe/7439.png 3 -sketch/giraffe/7440.png 3 -sketch/guitar/7662.png 4 -sketch/guitar/7663.png 4 -sketch/guitar/7664.png 4 -sketch/guitar/7665.png 4 -sketch/guitar/7666.png 4 -sketch/guitar/7667.png 4 -sketch/guitar/7668.png 4 -sketch/guitar/7669.png 4 -sketch/guitar/7670.png 4 -sketch/guitar/7671.png 4 -sketch/guitar/7672.png 4 -sketch/guitar/7673.png 4 -sketch/guitar/7674.png 4 -sketch/guitar/7675.png 4 -sketch/guitar/7676.png 4 -sketch/guitar/7677.png 4 -sketch/guitar/7678.png 4 -sketch/guitar/7679.png 4 -sketch/guitar/7680.png 4 -sketch/guitar/n02676566_307-1.png 4 -sketch/guitar/n02676566_307-2.png 4 -sketch/guitar/n02676566_307-3.png 4 -sketch/guitar/n02676566_307-4.png 4 -sketch/guitar/n02676566_307-5.png 4 -sketch/guitar/n02676566_330-1.png 4 -sketch/guitar/n02676566_330-2.png 4 -sketch/guitar/n02676566_330-3.png 4 -sketch/guitar/n02676566_330-4.png 4 -sketch/guitar/n02676566_330-5.png 4 -sketch/guitar/n02676566_330-6.png 4 -sketch/guitar/n02676566_659-1.png 4 -sketch/guitar/n02676566_659-2.png 4 -sketch/guitar/n02676566_659-3.png 4 -sketch/guitar/n02676566_659-4.png 4 -sketch/guitar/n02676566_659-5.png 4 -sketch/guitar/n02676566_970-1.png 4 -sketch/guitar/n02676566_970-2.png 4 -sketch/guitar/n02676566_970-3.png 4 -sketch/guitar/n02676566_970-4.png 4 -sketch/guitar/n02676566_970-5.png 4 -sketch/guitar/n02676566_970-6.png 4 -sketch/guitar/n02676566_1324-1.png 4 -sketch/guitar/n02676566_1324-2.png 4 -sketch/guitar/n02676566_1324-3.png 4 -sketch/guitar/n02676566_1324-4.png 4 -sketch/guitar/n02676566_1324-5.png 4 -sketch/guitar/n02676566_2380-1.png 4 -sketch/guitar/n02676566_2380-2.png 4 -sketch/guitar/n02676566_2380-3.png 4 -sketch/guitar/n02676566_2380-4.png 4 -sketch/guitar/n02676566_2380-5.png 4 -sketch/guitar/n02676566_2866-1.png 4 -sketch/guitar/n02676566_2866-2.png 4 -sketch/guitar/n02676566_2866-3.png 4 -sketch/guitar/n02676566_2866-4.png 4 -sketch/guitar/n02676566_2866-5.png 4 -sketch/guitar/n02676566_3360-1.png 4 -sketch/guitar/n02676566_3360-2.png 4 -sketch/guitar/n02676566_3360-3.png 4 -sketch/guitar/n02676566_3360-4.png 4 -sketch/guitar/n02676566_3360-5.png 4 -sketch/guitar/n02676566_3360-6.png 4 -sketch/guitar/n02676566_4058-1.png 4 -sketch/guitar/n02676566_4058-2.png 4 -sketch/guitar/n02676566_4058-3.png 4 -sketch/guitar/n02676566_4058-4.png 4 -sketch/guitar/n02676566_4058-5.png 4 -sketch/guitar/n02676566_4058-6.png 4 -sketch/guitar/n02676566_4189-1.png 4 -sketch/guitar/n02676566_4189-2.png 4 -sketch/guitar/n02676566_4189-3.png 4 -sketch/guitar/n02676566_4189-4.png 4 -sketch/guitar/n02676566_4189-5.png 4 -sketch/guitar/n02676566_4469-1.png 4 -sketch/guitar/n02676566_4469-2.png 4 -sketch/guitar/n02676566_4469-3.png 4 -sketch/guitar/n02676566_4469-4.png 4 -sketch/guitar/n02676566_4469-5.png 4 -sketch/guitar/n02676566_4605-1.png 4 -sketch/guitar/n02676566_4605-2.png 4 -sketch/guitar/n02676566_4605-3.png 4 -sketch/guitar/n02676566_4605-4.png 4 -sketch/guitar/n02676566_4605-5.png 4 -sketch/guitar/n02676566_4605-6.png 4 -sketch/guitar/n02676566_4699-1.png 4 -sketch/guitar/n02676566_4699-2.png 4 -sketch/guitar/n02676566_4699-3.png 4 -sketch/guitar/n02676566_4699-4.png 4 -sketch/guitar/n02676566_4699-5.png 4 -sketch/guitar/n02676566_5134-1.png 4 -sketch/guitar/n02676566_5134-2.png 4 -sketch/guitar/n02676566_5134-3.png 4 -sketch/guitar/n02676566_5134-4.png 4 -sketch/guitar/n02676566_5134-5.png 4 -sketch/guitar/n02676566_5489-1.png 4 -sketch/guitar/n02676566_5489-2.png 4 -sketch/guitar/n02676566_5489-3.png 4 -sketch/guitar/n02676566_5489-4.png 4 -sketch/guitar/n02676566_5489-5.png 4 -sketch/guitar/n02676566_5489-6.png 4 -sketch/guitar/n02676566_5489-7.png 4 -sketch/guitar/n02676566_5735-1.png 4 -sketch/guitar/n02676566_5735-2.png 4 -sketch/guitar/n02676566_5735-3.png 4 -sketch/guitar/n02676566_5735-4.png 4 -sketch/guitar/n02676566_5735-5.png 4 -sketch/guitar/n02676566_6150-1.png 4 -sketch/guitar/n02676566_6150-2.png 4 -sketch/guitar/n02676566_6150-3.png 4 -sketch/guitar/n02676566_6150-4.png 4 -sketch/guitar/n02676566_6150-5.png 4 -sketch/guitar/n02676566_6402-1.png 4 -sketch/guitar/n02676566_6402-2.png 4 -sketch/guitar/n02676566_6402-3.png 4 -sketch/guitar/n02676566_6402-4.png 4 -sketch/guitar/n02676566_6402-5.png 4 -sketch/guitar/n02676566_6430-1.png 4 -sketch/guitar/n02676566_6430-2.png 4 -sketch/guitar/n02676566_6430-3.png 4 -sketch/guitar/n02676566_6430-4.png 4 -sketch/guitar/n02676566_6430-5.png 4 -sketch/guitar/n02676566_6560-1.png 4 -sketch/guitar/n02676566_6560-2.png 4 -sketch/guitar/n02676566_6560-3.png 4 -sketch/guitar/n02676566_6560-4.png 4 -sketch/guitar/n02676566_6560-5.png 4 -sketch/guitar/n02676566_6631-1.png 4 -sketch/guitar/n02676566_6631-2.png 4 -sketch/guitar/n02676566_6631-3.png 4 -sketch/guitar/n02676566_6631-4.png 4 -sketch/guitar/n02676566_6631-5.png 4 -sketch/guitar/n02676566_6704-1.png 4 -sketch/guitar/n02676566_6704-2.png 4 -sketch/guitar/n02676566_6704-3.png 4 -sketch/guitar/n02676566_6704-4.png 4 -sketch/guitar/n02676566_6704-5.png 4 -sketch/guitar/n02676566_6864-1.png 4 -sketch/guitar/n02676566_6864-2.png 4 -sketch/guitar/n02676566_6864-3.png 4 -sketch/guitar/n02676566_6864-4.png 4 -sketch/guitar/n02676566_6864-5.png 4 -sketch/guitar/n02676566_6914-1.png 4 -sketch/guitar/n02676566_6914-2.png 4 -sketch/guitar/n02676566_6914-3.png 4 -sketch/guitar/n02676566_6914-4.png 4 -sketch/guitar/n02676566_6914-5.png 4 -sketch/guitar/n02676566_6948-1.png 4 -sketch/guitar/n02676566_6948-2.png 4 -sketch/guitar/n02676566_6948-3.png 4 -sketch/guitar/n02676566_6948-4.png 4 -sketch/guitar/n02676566_6948-5.png 4 -sketch/guitar/n02676566_6980-1.png 4 -sketch/guitar/n02676566_6980-2.png 4 -sketch/guitar/n02676566_6980-3.png 4 -sketch/guitar/n02676566_6980-4.png 4 -sketch/guitar/n02676566_6980-5.png 4 -sketch/guitar/n02676566_7385-1.png 4 -sketch/guitar/n02676566_7385-2.png 4 -sketch/guitar/n02676566_7385-3.png 4 -sketch/guitar/n02676566_7385-4.png 4 -sketch/guitar/n02676566_7385-5.png 4 -sketch/guitar/n02676566_7385-6.png 4 -sketch/guitar/n02676566_7770-1.png 4 -sketch/guitar/n02676566_7770-2.png 4 -sketch/guitar/n02676566_7770-3.png 4 -sketch/guitar/n02676566_7770-4.png 4 -sketch/guitar/n02676566_7770-5.png 4 -sketch/guitar/n02676566_7830-1.png 4 -sketch/guitar/n02676566_7830-2.png 4 -sketch/guitar/n02676566_7830-3.png 4 -sketch/guitar/n02676566_7830-4.png 4 -sketch/guitar/n02676566_7830-5.png 4 -sketch/guitar/n02676566_7844-1.png 4 -sketch/guitar/n02676566_7844-2.png 4 -sketch/guitar/n02676566_7844-3.png 4 -sketch/guitar/n02676566_7844-4.png 4 -sketch/guitar/n02676566_7844-5.png 4 -sketch/guitar/n02676566_7927-1.png 4 -sketch/guitar/n02676566_7927-2.png 4 -sketch/guitar/n02676566_7927-3.png 4 -sketch/guitar/n02676566_7927-4.png 4 -sketch/guitar/n02676566_7927-5.png 4 -sketch/guitar/n02676566_7927-6.png 4 -sketch/guitar/n02676566_8268-1.png 4 -sketch/guitar/n02676566_8268-2.png 4 -sketch/guitar/n02676566_8268-3.png 4 -sketch/guitar/n02676566_8268-4.png 4 -sketch/guitar/n02676566_8268-5.png 4 -sketch/guitar/n02676566_8309-1.png 4 -sketch/guitar/n02676566_8309-2.png 4 -sketch/guitar/n02676566_8309-3.png 4 -sketch/guitar/n02676566_8309-4.png 4 -sketch/guitar/n02676566_8309-5.png 4 -sketch/guitar/n02676566_8467-1.png 4 -sketch/guitar/n02676566_8467-2.png 4 -sketch/guitar/n02676566_8467-3.png 4 -sketch/guitar/n02676566_8467-4.png 4 -sketch/guitar/n02676566_8467-5.png 4 -sketch/guitar/n02676566_8618-1.png 4 -sketch/guitar/n02676566_8618-2.png 4 -sketch/guitar/n02676566_8618-3.png 4 -sketch/guitar/n02676566_8618-4.png 4 -sketch/guitar/n02676566_8618-5.png 4 -sketch/guitar/n02676566_8618-6.png 4 -sketch/guitar/n02676566_8820-1.png 4 -sketch/guitar/n02676566_8820-2.png 4 -sketch/guitar/n02676566_8820-3.png 4 -sketch/guitar/n02676566_8820-4.png 4 -sketch/guitar/n02676566_8820-5.png 4 -sketch/guitar/n02676566_8859-1.png 4 -sketch/guitar/n02676566_8859-2.png 4 -sketch/guitar/n02676566_8859-3.png 4 -sketch/guitar/n02676566_8859-4.png 4 -sketch/guitar/n02676566_8859-5.png 4 -sketch/guitar/n02676566_8859-6.png 4 -sketch/guitar/n02676566_8997-1.png 4 -sketch/guitar/n02676566_8997-2.png 4 -sketch/guitar/n02676566_8997-3.png 4 -sketch/guitar/n02676566_8997-4.png 4 -sketch/guitar/n02676566_8997-5.png 4 -sketch/guitar/n02676566_9062-1.png 4 -sketch/guitar/n02676566_9062-2.png 4 -sketch/guitar/n02676566_9062-3.png 4 -sketch/guitar/n02676566_9062-4.png 4 -sketch/guitar/n02676566_9062-5.png 4 -sketch/guitar/n02676566_9243-1.png 4 -sketch/guitar/n02676566_9243-2.png 4 -sketch/guitar/n02676566_9243-3.png 4 -sketch/guitar/n02676566_9243-4.png 4 -sketch/guitar/n02676566_9243-5.png 4 -sketch/guitar/n02676566_9243-6.png 4 -sketch/guitar/n02676566_9254-1.png 4 -sketch/guitar/n02676566_9254-2.png 4 -sketch/guitar/n02676566_9254-3.png 4 -sketch/guitar/n02676566_9254-4.png 4 -sketch/guitar/n02676566_9254-5.png 4 -sketch/guitar/n02676566_9451-1.png 4 -sketch/guitar/n02676566_9451-2.png 4 -sketch/guitar/n02676566_9451-3.png 4 -sketch/guitar/n02676566_9451-4.png 4 -sketch/guitar/n02676566_9451-5.png 4 -sketch/guitar/n02676566_9577-1.png 4 -sketch/guitar/n02676566_9577-2.png 4 -sketch/guitar/n02676566_9577-3.png 4 -sketch/guitar/n02676566_9577-4.png 4 -sketch/guitar/n02676566_9577-5.png 4 -sketch/guitar/n02676566_9577-6.png 4 -sketch/guitar/n02676566_9612-1.png 4 -sketch/guitar/n02676566_9612-2.png 4 -sketch/guitar/n02676566_9612-3.png 4 -sketch/guitar/n02676566_9612-4.png 4 -sketch/guitar/n02676566_9612-5.png 4 -sketch/guitar/n02676566_9661-1.png 4 -sketch/guitar/n02676566_9661-2.png 4 -sketch/guitar/n02676566_9661-3.png 4 -sketch/guitar/n02676566_9661-4.png 4 -sketch/guitar/n02676566_9661-5.png 4 -sketch/guitar/n02676566_9661-6.png 4 -sketch/guitar/n02676566_9936-1.png 4 -sketch/guitar/n02676566_9936-2.png 4 -sketch/guitar/n02676566_9936-3.png 4 -sketch/guitar/n02676566_9936-4.png 4 -sketch/guitar/n02676566_9936-5.png 4 -sketch/guitar/n02676566_11377-1.png 4 -sketch/guitar/n02676566_11377-2.png 4 -sketch/guitar/n02676566_11377-3.png 4 -sketch/guitar/n02676566_11377-4.png 4 -sketch/guitar/n02676566_11377-5.png 4 -sketch/guitar/n02676566_11573-1.png 4 -sketch/guitar/n02676566_11573-2.png 4 -sketch/guitar/n02676566_11573-3.png 4 -sketch/guitar/n02676566_11573-4.png 4 -sketch/guitar/n02676566_11573-5.png 4 -sketch/guitar/n02676566_12344-1.png 4 -sketch/guitar/n02676566_12344-2.png 4 -sketch/guitar/n02676566_12344-3.png 4 -sketch/guitar/n02676566_12344-4.png 4 -sketch/guitar/n02676566_12344-5.png 4 -sketch/guitar/n03272010_392-1.png 4 -sketch/guitar/n03272010_392-2.png 4 -sketch/guitar/n03272010_392-3.png 4 -sketch/guitar/n03272010_392-4.png 4 -sketch/guitar/n03272010_392-5.png 4 -sketch/guitar/n03272010_446-1.png 4 -sketch/guitar/n03272010_446-2.png 4 -sketch/guitar/n03272010_446-3.png 4 -sketch/guitar/n03272010_446-4.png 4 -sketch/guitar/n03272010_446-5.png 4 -sketch/guitar/n03272010_1708-1.png 4 -sketch/guitar/n03272010_1708-2.png 4 -sketch/guitar/n03272010_1708-3.png 4 -sketch/guitar/n03272010_1708-4.png 4 -sketch/guitar/n03272010_1708-5.png 4 -sketch/guitar/n03272010_1708-6.png 4 -sketch/guitar/n03272010_3732-1.png 4 -sketch/guitar/n03272010_3732-2.png 4 -sketch/guitar/n03272010_3732-3.png 4 -sketch/guitar/n03272010_3732-4.png 4 -sketch/guitar/n03272010_3732-5.png 4 -sketch/guitar/n03272010_3732-6.png 4 -sketch/guitar/n03272010_5483-1.png 4 -sketch/guitar/n03272010_5483-2.png 4 -sketch/guitar/n03272010_5483-3.png 4 -sketch/guitar/n03272010_5483-4.png 4 -sketch/guitar/n03272010_5483-5.png 4 -sketch/guitar/n03272010_5483-6.png 4 -sketch/guitar/n03272010_5875-1.png 4 -sketch/guitar/n03272010_5875-2.png 4 -sketch/guitar/n03272010_5875-3.png 4 -sketch/guitar/n03272010_5875-4.png 4 -sketch/guitar/n03272010_5875-5.png 4 -sketch/guitar/n03272010_5887-1.png 4 -sketch/guitar/n03272010_5887-2.png 4 -sketch/guitar/n03272010_5887-3.png 4 -sketch/guitar/n03272010_5887-4.png 4 -sketch/guitar/n03272010_5887-5.png 4 -sketch/guitar/n03272010_5887-6.png 4 -sketch/guitar/n03272010_5887-7.png 4 -sketch/guitar/n03272010_6152-1.png 4 -sketch/guitar/n03272010_6152-2.png 4 -sketch/guitar/n03272010_6152-3.png 4 -sketch/guitar/n03272010_6152-4.png 4 -sketch/guitar/n03272010_6152-5.png 4 -sketch/guitar/n03272010_6255-1.png 4 -sketch/guitar/n03272010_6255-2.png 4 -sketch/guitar/n03272010_6255-3.png 4 -sketch/guitar/n03272010_6255-4.png 4 -sketch/guitar/n03272010_6255-5.png 4 -sketch/guitar/n03272010_6291-1.png 4 -sketch/guitar/n03272010_6291-2.png 4 -sketch/guitar/n03272010_6291-3.png 4 -sketch/guitar/n03272010_6291-4.png 4 -sketch/guitar/n03272010_6291-5.png 4 -sketch/guitar/n03272010_6650-1.png 4 -sketch/guitar/n03272010_6650-2.png 4 -sketch/guitar/n03272010_6650-3.png 4 -sketch/guitar/n03272010_6650-4.png 4 -sketch/guitar/n03272010_6650-5.png 4 -sketch/guitar/n03272010_6650-6.png 4 -sketch/guitar/n03272010_6662-1.png 4 -sketch/guitar/n03272010_6662-2.png 4 -sketch/guitar/n03272010_6662-3.png 4 -sketch/guitar/n03272010_6662-4.png 4 -sketch/guitar/n03272010_6662-5.png 4 -sketch/guitar/n03272010_6662-6.png 4 -sketch/guitar/n03272010_6662-7.png 4 -sketch/guitar/n03272010_6718-1.png 4 -sketch/guitar/n03272010_6718-2.png 4 -sketch/guitar/n03272010_6718-3.png 4 -sketch/guitar/n03272010_6718-4.png 4 -sketch/guitar/n03272010_6718-5.png 4 -sketch/guitar/n03272010_6725-1.png 4 -sketch/guitar/n03272010_6725-2.png 4 -sketch/guitar/n03272010_6725-3.png 4 -sketch/guitar/n03272010_6725-4.png 4 -sketch/guitar/n03272010_6725-5.png 4 -sketch/guitar/n03272010_6727-1.png 4 -sketch/guitar/n03272010_6727-2.png 4 -sketch/guitar/n03272010_6727-3.png 4 -sketch/guitar/n03272010_6727-4.png 4 -sketch/guitar/n03272010_6727-5.png 4 -sketch/guitar/n03272010_6737-1.png 4 -sketch/guitar/n03272010_6737-2.png 4 -sketch/guitar/n03272010_6737-3.png 4 -sketch/guitar/n03272010_6737-4.png 4 -sketch/guitar/n03272010_6737-5.png 4 -sketch/guitar/n03272010_6737-6.png 4 -sketch/guitar/n03272010_6799-1.png 4 -sketch/guitar/n03272010_6799-2.png 4 -sketch/guitar/n03272010_6799-3.png 4 -sketch/guitar/n03272010_6799-4.png 4 -sketch/guitar/n03272010_6799-5.png 4 -sketch/guitar/n03272010_6809-1.png 4 -sketch/guitar/n03272010_6809-2.png 4 -sketch/guitar/n03272010_6809-3.png 4 -sketch/guitar/n03272010_6809-4.png 4 -sketch/guitar/n03272010_6809-5.png 4 -sketch/guitar/n03272010_6820-1.png 4 -sketch/guitar/n03272010_6820-2.png 4 -sketch/guitar/n03272010_6820-3.png 4 -sketch/guitar/n03272010_6820-4.png 4 -sketch/guitar/n03272010_6820-5.png 4 -sketch/guitar/n03272010_6926-1.png 4 -sketch/guitar/n03272010_6926-2.png 4 -sketch/guitar/n03272010_6926-3.png 4 -sketch/guitar/n03272010_6926-4.png 4 -sketch/guitar/n03272010_6926-5.png 4 -sketch/guitar/n03272010_7000-1.png 4 -sketch/guitar/n03272010_7000-2.png 4 -sketch/guitar/n03272010_7000-3.png 4 -sketch/guitar/n03272010_7000-4.png 4 -sketch/guitar/n03272010_7000-5.png 4 -sketch/guitar/n03272010_7092-1.png 4 -sketch/guitar/n03272010_7092-2.png 4 -sketch/guitar/n03272010_7092-3.png 4 -sketch/guitar/n03272010_7092-4.png 4 -sketch/guitar/n03272010_7092-5.png 4 -sketch/guitar/n03272010_7383-1.png 4 -sketch/guitar/n03272010_7383-2.png 4 -sketch/guitar/n03272010_7383-3.png 4 -sketch/guitar/n03272010_7383-4.png 4 -sketch/guitar/n03272010_7383-5.png 4 -sketch/guitar/n03272010_7390-1.png 4 -sketch/guitar/n03272010_7390-2.png 4 -sketch/guitar/n03272010_7390-3.png 4 -sketch/guitar/n03272010_7390-4.png 4 -sketch/guitar/n03272010_7390-5.png 4 -sketch/guitar/n03272010_7635-1.png 4 -sketch/guitar/n03272010_7635-2.png 4 -sketch/guitar/n03272010_7635-3.png 4 -sketch/guitar/n03272010_7635-4.png 4 -sketch/guitar/n03272010_7635-5.png 4 -sketch/guitar/n03272010_7729-1.png 4 -sketch/guitar/n03272010_7729-2.png 4 -sketch/guitar/n03272010_7729-3.png 4 -sketch/guitar/n03272010_7729-4.png 4 -sketch/guitar/n03272010_7729-5.png 4 -sketch/guitar/n03272010_9557-1.png 4 -sketch/guitar/n03272010_9557-2.png 4 -sketch/guitar/n03272010_9557-3.png 4 -sketch/guitar/n03272010_9557-4.png 4 -sketch/guitar/n03272010_9557-5.png 4 -sketch/guitar/n03272010_9557-6.png 4 -sketch/guitar/n03272010_9858-1.png 4 -sketch/guitar/n03272010_9858-2.png 4 -sketch/guitar/n03272010_9858-3.png 4 -sketch/guitar/n03272010_9858-4.png 4 -sketch/guitar/n03272010_9858-5.png 4 -sketch/guitar/n03272010_9899-1.png 4 -sketch/guitar/n03272010_9899-2.png 4 -sketch/guitar/n03272010_9899-3.png 4 -sketch/guitar/n03272010_9899-4.png 4 -sketch/guitar/n03272010_9899-5.png 4 -sketch/guitar/n03272010_10441-1.png 4 -sketch/guitar/n03272010_10441-2.png 4 -sketch/guitar/n03272010_10441-3.png 4 -sketch/guitar/n03272010_10441-4.png 4 -sketch/guitar/n03272010_10441-5.png 4 -sketch/guitar/n03272010_10795-1.png 4 -sketch/guitar/n03272010_10795-2.png 4 -sketch/guitar/n03272010_10795-3.png 4 -sketch/guitar/n03272010_10795-4.png 4 -sketch/guitar/n03272010_10795-5.png 4 -sketch/guitar/n03272010_11646-1.png 4 -sketch/guitar/n03272010_11646-2.png 4 -sketch/guitar/n03272010_11646-3.png 4 -sketch/guitar/n03272010_11646-4.png 4 -sketch/guitar/n03272010_11646-5.png 4 -sketch/guitar/n03272010_12151-1.png 4 -sketch/guitar/n03272010_12151-2.png 4 -sketch/guitar/n03272010_12151-3.png 4 -sketch/guitar/n03272010_12151-4.png 4 -sketch/guitar/n03272010_12151-5.png 4 -sketch/guitar/n03272010_12468-1.png 4 -sketch/guitar/n03272010_12468-2.png 4 -sketch/guitar/n03272010_12468-3.png 4 -sketch/guitar/n03272010_12468-4.png 4 -sketch/guitar/n03272010_12468-5.png 4 -sketch/guitar/n03467517_3203-1.png 4 -sketch/guitar/n03467517_3203-2.png 4 -sketch/guitar/n03467517_3203-3.png 4 -sketch/guitar/n03467517_3203-4.png 4 -sketch/guitar/n03467517_3203-5.png 4 -sketch/guitar/n03467517_6423-1.png 4 -sketch/guitar/n03467517_6423-2.png 4 -sketch/guitar/n03467517_6423-3.png 4 -sketch/guitar/n03467517_6423-4.png 4 -sketch/guitar/n03467517_6423-5.png 4 -sketch/guitar/n03467517_7007-1.png 4 -sketch/guitar/n03467517_7007-2.png 4 -sketch/guitar/n03467517_7007-3.png 4 -sketch/guitar/n03467517_7007-4.png 4 -sketch/guitar/n03467517_7007-5.png 4 -sketch/guitar/n03467517_7007-6.png 4 -sketch/guitar/n03467517_8929-1.png 4 -sketch/guitar/n03467517_8929-2.png 4 -sketch/guitar/n03467517_8929-3.png 4 -sketch/guitar/n03467517_8929-4.png 4 -sketch/guitar/n03467517_8929-5.png 4 -sketch/guitar/n03467517_11020-1.png 4 -sketch/guitar/n03467517_11020-2.png 4 -sketch/guitar/n03467517_11020-3.png 4 -sketch/guitar/n03467517_11020-4.png 4 -sketch/guitar/n03467517_11020-5.png 4 -sketch/guitar/n03467517_12925-1.png 4 -sketch/guitar/n03467517_12925-2.png 4 -sketch/guitar/n03467517_12925-3.png 4 -sketch/guitar/n03467517_12925-4.png 4 -sketch/guitar/n03467517_12925-5.png 4 -sketch/guitar/n03467517_16911-1.png 4 -sketch/guitar/n03467517_16911-2.png 4 -sketch/guitar/n03467517_16911-3.png 4 -sketch/guitar/n03467517_16911-4.png 4 -sketch/guitar/n03467517_16911-5.png 4 -sketch/guitar/n03467517_17233-1.png 4 -sketch/guitar/n03467517_17233-2.png 4 -sketch/guitar/n03467517_17233-3.png 4 -sketch/guitar/n03467517_17233-4.png 4 -sketch/guitar/n03467517_17233-5.png 4 -sketch/guitar/n03467517_19701-1.png 4 -sketch/guitar/n03467517_19701-2.png 4 -sketch/guitar/n03467517_19701-3.png 4 -sketch/guitar/n03467517_19701-4.png 4 -sketch/guitar/n03467517_19701-5.png 4 -sketch/guitar/n03467517_21782-1.png 4 -sketch/guitar/n03467517_21782-2.png 4 -sketch/guitar/n03467517_21782-3.png 4 -sketch/guitar/n03467517_21782-4.png 4 -sketch/guitar/n03467517_21782-5.png 4 -sketch/guitar/n03467517_21884-1.png 4 -sketch/guitar/n03467517_21884-2.png 4 -sketch/guitar/n03467517_21884-3.png 4 -sketch/guitar/n03467517_21884-4.png 4 -sketch/guitar/n03467517_21884-5.png 4 -sketch/guitar/n03467517_21884-6.png 4 -sketch/guitar/n03467517_22246-1.png 4 -sketch/guitar/n03467517_22246-2.png 4 -sketch/guitar/n03467517_22246-3.png 4 -sketch/guitar/n03467517_22246-4.png 4 -sketch/guitar/n03467517_22246-5.png 4 -sketch/guitar/n03467517_22246-6.png 4 -sketch/guitar/n03467517_22374-1.png 4 -sketch/guitar/n03467517_22374-2.png 4 -sketch/guitar/n03467517_22374-3.png 4 -sketch/guitar/n03467517_22374-4.png 4 -sketch/guitar/n03467517_22374-5.png 4 -sketch/guitar/n03467517_22785-1.png 4 -sketch/guitar/n03467517_22785-2.png 4 -sketch/guitar/n03467517_22785-3.png 4 -sketch/guitar/n03467517_22785-4.png 4 -sketch/guitar/n03467517_22785-5.png 4 -sketch/guitar/n03467517_22871-1.png 4 -sketch/guitar/n03467517_22871-2.png 4 -sketch/guitar/n03467517_22871-3.png 4 -sketch/guitar/n03467517_22871-4.png 4 -sketch/guitar/n03467517_22871-5.png 4 -sketch/guitar/n03467517_23229-1.png 4 -sketch/guitar/n03467517_23229-2.png 4 -sketch/guitar/n03467517_23229-3.png 4 -sketch/guitar/n03467517_23229-4.png 4 -sketch/guitar/n03467517_23229-5.png 4 -sketch/guitar/n03467517_24525-1.png 4 -sketch/guitar/n03467517_24525-2.png 4 -sketch/guitar/n03467517_24525-3.png 4 -sketch/guitar/n03467517_24525-4.png 4 -sketch/guitar/n03467517_24525-5.png 4 -sketch/guitar/n03467517_24525-6.png 4 -sketch/horse/n02374451_597-1.png 5 -sketch/horse/n02374451_597-2.png 5 -sketch/horse/n02374451_597-3.png 5 -sketch/horse/n02374451_597-4.png 5 -sketch/horse/n02374451_597-5.png 5 -sketch/horse/n02374451_597-6.png 5 -sketch/horse/n02374451_597-7.png 5 -sketch/horse/n02374451_777-1.png 5 -sketch/horse/n02374451_777-2.png 5 -sketch/horse/n02374451_777-3.png 5 -sketch/horse/n02374451_777-4.png 5 -sketch/horse/n02374451_777-5.png 5 -sketch/horse/n02374451_777-6.png 5 -sketch/horse/n02374451_779-1.png 5 -sketch/horse/n02374451_779-2.png 5 -sketch/horse/n02374451_779-3.png 5 -sketch/horse/n02374451_779-4.png 5 -sketch/horse/n02374451_779-5.png 5 -sketch/horse/n02374451_779-6.png 5 -sketch/horse/n02374451_779-7.png 5 -sketch/horse/n02374451_779-8.png 5 -sketch/horse/n02374451_779-9.png 5 -sketch/horse/n02374451_916-1.png 5 -sketch/horse/n02374451_916-2.png 5 -sketch/horse/n02374451_916-3.png 5 -sketch/horse/n02374451_916-4.png 5 -sketch/horse/n02374451_916-5.png 5 -sketch/horse/n02374451_916-6.png 5 -sketch/horse/n02374451_925-1.png 5 -sketch/horse/n02374451_925-2.png 5 -sketch/horse/n02374451_925-3.png 5 -sketch/horse/n02374451_925-4.png 5 -sketch/horse/n02374451_925-5.png 5 -sketch/horse/n02374451_925-6.png 5 -sketch/horse/n02374451_925-7.png 5 -sketch/horse/n02374451_929-1.png 5 -sketch/horse/n02374451_929-2.png 5 -sketch/horse/n02374451_929-3.png 5 -sketch/horse/n02374451_929-4.png 5 -sketch/horse/n02374451_929-5.png 5 -sketch/horse/n02374451_929-6.png 5 -sketch/horse/n02374451_1189-1.png 5 -sketch/horse/n02374451_1189-2.png 5 -sketch/horse/n02374451_1189-3.png 5 -sketch/horse/n02374451_1189-4.png 5 -sketch/horse/n02374451_1189-5.png 5 -sketch/horse/n02374451_1189-6.png 5 -sketch/horse/n02374451_1189-7.png 5 -sketch/horse/n02374451_1234-1.png 5 -sketch/horse/n02374451_1234-2.png 5 -sketch/horse/n02374451_1234-3.png 5 -sketch/horse/n02374451_1234-4.png 5 -sketch/horse/n02374451_1234-5.png 5 -sketch/horse/n02374451_1234-6.png 5 -sketch/horse/n02374451_1340-1.png 5 -sketch/horse/n02374451_1340-2.png 5 -sketch/horse/n02374451_1340-3.png 5 -sketch/horse/n02374451_1340-4.png 5 -sketch/horse/n02374451_1340-5.png 5 -sketch/horse/n02374451_1340-6.png 5 -sketch/horse/n02374451_1340-7.png 5 -sketch/horse/n02374451_1340-8.png 5 -sketch/horse/n02374451_1340-9.png 5 -sketch/horse/n02374451_1340-10.png 5 -sketch/horse/n02374451_1340-11.png 5 -sketch/horse/n02374451_1443-1.png 5 -sketch/horse/n02374451_1443-2.png 5 -sketch/horse/n02374451_1443-3.png 5 -sketch/horse/n02374451_1443-4.png 5 -sketch/horse/n02374451_1443-5.png 5 -sketch/horse/n02374451_1443-6.png 5 -sketch/horse/n02374451_1443-7.png 5 -sketch/horse/n02374451_1443-8.png 5 -sketch/horse/n02374451_1695-1.png 5 -sketch/horse/n02374451_1695-2.png 5 -sketch/horse/n02374451_1695-3.png 5 -sketch/horse/n02374451_1695-4.png 5 -sketch/horse/n02374451_1695-5.png 5 -sketch/horse/n02374451_1695-6.png 5 -sketch/horse/n02374451_1695-7.png 5 -sketch/horse/n02374451_2233-1.png 5 -sketch/horse/n02374451_2233-2.png 5 -sketch/horse/n02374451_2233-3.png 5 -sketch/horse/n02374451_2233-4.png 5 -sketch/horse/n02374451_2233-5.png 5 -sketch/horse/n02374451_2233-6.png 5 -sketch/horse/n02374451_2233-7.png 5 -sketch/horse/n02374451_2248-1.png 5 -sketch/horse/n02374451_2248-2.png 5 -sketch/horse/n02374451_2248-3.png 5 -sketch/horse/n02374451_2248-4.png 5 -sketch/horse/n02374451_2248-5.png 5 -sketch/horse/n02374451_2248-6.png 5 -sketch/horse/n02374451_2248-7.png 5 -sketch/horse/n02374451_2248-8.png 5 -sketch/horse/n02374451_2372-1.png 5 -sketch/horse/n02374451_2372-2.png 5 -sketch/horse/n02374451_2372-3.png 5 -sketch/horse/n02374451_2372-4.png 5 -sketch/horse/n02374451_2372-5.png 5 -sketch/horse/n02374451_2372-6.png 5 -sketch/horse/n02374451_2372-7.png 5 -sketch/horse/n02374451_2372-8.png 5 -sketch/horse/n02374451_2478-1.png 5 -sketch/horse/n02374451_2478-2.png 5 -sketch/horse/n02374451_2478-3.png 5 -sketch/horse/n02374451_2478-4.png 5 -sketch/horse/n02374451_2478-5.png 5 -sketch/horse/n02374451_2616-1.png 5 -sketch/horse/n02374451_2616-2.png 5 -sketch/horse/n02374451_2616-3.png 5 -sketch/horse/n02374451_2616-4.png 5 -sketch/horse/n02374451_2616-5.png 5 -sketch/horse/n02374451_2616-6.png 5 -sketch/horse/n02374451_2616-7.png 5 -sketch/horse/n02374451_2616-8.png 5 -sketch/horse/n02374451_2616-9.png 5 -sketch/horse/n02374451_2616-10.png 5 -sketch/horse/n02374451_2733-1.png 5 -sketch/horse/n02374451_2733-2.png 5 -sketch/horse/n02374451_2733-3.png 5 -sketch/horse/n02374451_2733-4.png 5 -sketch/horse/n02374451_2733-5.png 5 -sketch/horse/n02374451_2733-6.png 5 -sketch/horse/n02374451_2733-7.png 5 -sketch/horse/n02374451_2743-1.png 5 -sketch/horse/n02374451_2743-2.png 5 -sketch/horse/n02374451_2743-3.png 5 -sketch/horse/n02374451_2743-4.png 5 -sketch/horse/n02374451_2743-5.png 5 -sketch/horse/n02374451_2743-6.png 5 -sketch/horse/n02374451_2743-7.png 5 -sketch/horse/n02374451_2825-1.png 5 -sketch/horse/n02374451_2825-2.png 5 -sketch/horse/n02374451_2825-3.png 5 -sketch/horse/n02374451_2825-4.png 5 -sketch/horse/n02374451_2825-5.png 5 -sketch/horse/n02374451_2825-6.png 5 -sketch/horse/n02374451_2825-7.png 5 -sketch/horse/n02374451_2825-8.png 5 -sketch/horse/n02374451_2825-9.png 5 -sketch/horse/n02374451_2825-10.png 5 -sketch/horse/n02374451_2846-1.png 5 -sketch/horse/n02374451_2846-2.png 5 -sketch/horse/n02374451_2846-3.png 5 -sketch/horse/n02374451_2846-4.png 5 -sketch/horse/n02374451_2846-5.png 5 -sketch/horse/n02374451_2846-6.png 5 -sketch/horse/n02374451_2846-7.png 5 -sketch/horse/n02374451_2846-8.png 5 -sketch/horse/n02374451_2846-9.png 5 -sketch/horse/n02374451_3388-1.png 5 -sketch/horse/n02374451_3388-2.png 5 -sketch/horse/n02374451_3388-3.png 5 -sketch/horse/n02374451_3388-4.png 5 -sketch/horse/n02374451_3388-5.png 5 -sketch/horse/n02374451_3388-6.png 5 -sketch/horse/n02374451_3388-7.png 5 -sketch/horse/n02374451_3388-8.png 5 -sketch/horse/n02374451_3388-9.png 5 -sketch/horse/n02374451_3808-1.png 5 -sketch/horse/n02374451_3808-2.png 5 -sketch/horse/n02374451_3808-3.png 5 -sketch/horse/n02374451_3808-4.png 5 -sketch/horse/n02374451_3808-5.png 5 -sketch/horse/n02374451_3808-6.png 5 -sketch/horse/n02374451_3808-7.png 5 -sketch/horse/n02374451_3808-8.png 5 -sketch/horse/n02374451_3808-9.png 5 -sketch/horse/n02374451_4538-1.png 5 -sketch/horse/n02374451_4538-2.png 5 -sketch/horse/n02374451_4538-3.png 5 -sketch/horse/n02374451_4538-4.png 5 -sketch/horse/n02374451_4538-5.png 5 -sketch/horse/n02374451_4538-6.png 5 -sketch/horse/n02374451_4538-7.png 5 -sketch/horse/n02374451_4538-8.png 5 -sketch/horse/n02374451_4538-9.png 5 -sketch/horse/n02374451_4553-1.png 5 -sketch/horse/n02374451_4553-2.png 5 -sketch/horse/n02374451_4553-3.png 5 -sketch/horse/n02374451_4553-4.png 5 -sketch/horse/n02374451_4553-5.png 5 -sketch/horse/n02374451_4553-6.png 5 -sketch/horse/n02374451_4553-7.png 5 -sketch/horse/n02374451_4795-1.png 5 -sketch/horse/n02374451_4795-2.png 5 -sketch/horse/n02374451_4795-3.png 5 -sketch/horse/n02374451_4795-4.png 5 -sketch/horse/n02374451_4795-5.png 5 -sketch/horse/n02374451_4795-6.png 5 -sketch/horse/n02374451_4795-7.png 5 -sketch/horse/n02374451_4795-8.png 5 -sketch/horse/n02374451_4818-1.png 5 -sketch/horse/n02374451_4818-2.png 5 -sketch/horse/n02374451_4818-3.png 5 -sketch/horse/n02374451_4818-4.png 5 -sketch/horse/n02374451_4818-5.png 5 -sketch/horse/n02374451_4818-6.png 5 -sketch/horse/n02374451_4818-7.png 5 -sketch/horse/n02374451_4963-1.png 5 -sketch/horse/n02374451_4963-2.png 5 -sketch/horse/n02374451_4963-3.png 5 -sketch/horse/n02374451_4963-4.png 5 -sketch/horse/n02374451_4963-5.png 5 -sketch/horse/n02374451_4963-6.png 5 -sketch/horse/n02374451_5084-1.png 5 -sketch/horse/n02374451_5084-2.png 5 -sketch/horse/n02374451_5084-3.png 5 -sketch/horse/n02374451_5084-4.png 5 -sketch/horse/n02374451_5084-5.png 5 -sketch/horse/n02374451_5084-6.png 5 -sketch/horse/n02374451_6192-1.png 5 -sketch/horse/n02374451_6192-2.png 5 -sketch/horse/n02374451_6192-3.png 5 -sketch/horse/n02374451_6192-4.png 5 -sketch/horse/n02374451_6192-5.png 5 -sketch/horse/n02374451_6192-6.png 5 -sketch/horse/n02374451_6192-7.png 5 -sketch/horse/n02374451_6207-1.png 5 -sketch/horse/n02374451_6207-2.png 5 -sketch/horse/n02374451_6207-3.png 5 -sketch/horse/n02374451_6207-4.png 5 -sketch/horse/n02374451_6207-5.png 5 -sketch/horse/n02374451_6207-6.png 5 -sketch/horse/n02374451_7631-1.png 5 -sketch/horse/n02374451_7631-2.png 5 -sketch/horse/n02374451_7631-3.png 5 -sketch/horse/n02374451_7631-4.png 5 -sketch/horse/n02374451_7631-5.png 5 -sketch/horse/n02374451_7631-6.png 5 -sketch/horse/n02374451_7631-7.png 5 -sketch/horse/n02374451_8065-1.png 5 -sketch/horse/n02374451_8065-2.png 5 -sketch/horse/n02374451_8065-3.png 5 -sketch/horse/n02374451_8065-4.png 5 -sketch/horse/n02374451_8065-5.png 5 -sketch/horse/n02374451_8065-6.png 5 -sketch/horse/n02374451_8269-1.png 5 -sketch/horse/n02374451_8269-2.png 5 -sketch/horse/n02374451_8269-3.png 5 -sketch/horse/n02374451_8269-4.png 5 -sketch/horse/n02374451_8269-5.png 5 -sketch/horse/n02374451_8269-6.png 5 -sketch/horse/n02374451_8269-7.png 5 -sketch/horse/n02374451_8269-8.png 5 -sketch/horse/n02374451_8269-9.png 5 -sketch/horse/n02374451_8526-1.png 5 -sketch/horse/n02374451_8526-2.png 5 -sketch/horse/n02374451_8526-3.png 5 -sketch/horse/n02374451_8526-4.png 5 -sketch/horse/n02374451_8526-5.png 5 -sketch/horse/n02374451_8526-6.png 5 -sketch/horse/n02374451_8718-1.png 5 -sketch/horse/n02374451_8718-2.png 5 -sketch/horse/n02374451_8718-3.png 5 -sketch/horse/n02374451_8718-4.png 5 -sketch/horse/n02374451_8718-5.png 5 -sketch/horse/n02374451_8718-6.png 5 -sketch/horse/n02374451_8744-1.png 5 -sketch/horse/n02374451_8744-2.png 5 -sketch/horse/n02374451_8744-3.png 5 -sketch/horse/n02374451_8744-4.png 5 -sketch/horse/n02374451_8744-5.png 5 -sketch/horse/n02374451_8744-6.png 5 -sketch/horse/n02374451_8744-7.png 5 -sketch/horse/n02374451_8744-8.png 5 -sketch/horse/n02374451_8744-9.png 5 -sketch/horse/n02374451_8744-10.png 5 -sketch/horse/n02374451_8806-1.png 5 -sketch/horse/n02374451_8806-2.png 5 -sketch/horse/n02374451_8806-3.png 5 -sketch/horse/n02374451_8806-4.png 5 -sketch/horse/n02374451_8806-5.png 5 -sketch/horse/n02374451_8806-6.png 5 -sketch/horse/n02374451_8806-7.png 5 -sketch/horse/n02374451_8806-8.png 5 -sketch/horse/n02374451_9064-1.png 5 -sketch/horse/n02374451_9064-2.png 5 -sketch/horse/n02374451_9064-3.png 5 -sketch/horse/n02374451_9064-4.png 5 -sketch/horse/n02374451_9064-5.png 5 -sketch/horse/n02374451_9064-6.png 5 -sketch/horse/n02374451_9225-1.png 5 -sketch/horse/n02374451_9225-2.png 5 -sketch/horse/n02374451_9225-3.png 5 -sketch/horse/n02374451_9225-4.png 5 -sketch/horse/n02374451_9225-5.png 5 -sketch/horse/n02374451_9225-6.png 5 -sketch/horse/n02374451_9225-7.png 5 -sketch/horse/n02374451_9225-8.png 5 -sketch/horse/n02374451_9443-1.png 5 -sketch/horse/n02374451_9443-2.png 5 -sketch/horse/n02374451_9443-3.png 5 -sketch/horse/n02374451_9443-4.png 5 -sketch/horse/n02374451_9443-5.png 5 -sketch/horse/n02374451_9443-6.png 5 -sketch/horse/n02374451_9443-7.png 5 -sketch/horse/n02374451_9892-1.png 5 -sketch/horse/n02374451_9892-2.png 5 -sketch/horse/n02374451_9892-3.png 5 -sketch/horse/n02374451_9892-4.png 5 -sketch/horse/n02374451_9892-5.png 5 -sketch/horse/n02374451_9892-6.png 5 -sketch/horse/n02374451_9892-7.png 5 -sketch/horse/n02374451_10081-1.png 5 -sketch/horse/n02374451_10081-2.png 5 -sketch/horse/n02374451_10081-3.png 5 -sketch/horse/n02374451_10081-4.png 5 -sketch/horse/n02374451_10081-5.png 5 -sketch/horse/n02374451_10081-6.png 5 -sketch/horse/n02374451_10098-1.png 5 -sketch/horse/n02374451_10098-2.png 5 -sketch/horse/n02374451_10098-3.png 5 -sketch/horse/n02374451_10098-4.png 5 -sketch/horse/n02374451_10098-5.png 5 -sketch/horse/n02374451_10098-6.png 5 -sketch/horse/n02374451_10098-7.png 5 -sketch/horse/n02374451_10099-1.png 5 -sketch/horse/n02374451_10099-2.png 5 -sketch/horse/n02374451_10099-3.png 5 -sketch/horse/n02374451_10099-4.png 5 -sketch/horse/n02374451_10099-5.png 5 -sketch/horse/n02374451_10099-6.png 5 -sketch/horse/n02374451_10099-7.png 5 -sketch/horse/n02374451_10099-8.png 5 -sketch/horse/n02374451_10099-9.png 5 -sketch/horse/n02374451_10118-1.png 5 -sketch/horse/n02374451_10118-2.png 5 -sketch/horse/n02374451_10118-3.png 5 -sketch/horse/n02374451_10118-4.png 5 -sketch/horse/n02374451_10118-5.png 5 -sketch/horse/n02374451_10331-1.png 5 -sketch/horse/n02374451_10331-2.png 5 -sketch/horse/n02374451_10331-3.png 5 -sketch/horse/n02374451_10331-4.png 5 -sketch/horse/n02374451_10331-5.png 5 -sketch/horse/n02374451_10669-1.png 5 -sketch/horse/n02374451_10669-2.png 5 -sketch/horse/n02374451_10669-3.png 5 -sketch/horse/n02374451_10669-4.png 5 -sketch/horse/n02374451_10669-5.png 5 -sketch/horse/n02374451_10669-6.png 5 -sketch/horse/n02374451_10669-7.png 5 -sketch/horse/n02374451_10669-8.png 5 -sketch/horse/n02374451_10669-9.png 5 -sketch/horse/n02374451_10761-1.png 5 -sketch/horse/n02374451_10761-2.png 5 -sketch/horse/n02374451_10761-3.png 5 -sketch/horse/n02374451_10761-4.png 5 -sketch/horse/n02374451_10761-5.png 5 -sketch/horse/n02374451_10761-6.png 5 -sketch/horse/n02374451_10761-7.png 5 -sketch/horse/n02374451_10761-8.png 5 -sketch/horse/n02374451_10761-9.png 5 -sketch/horse/n02374451_10761-10.png 5 -sketch/horse/n02374451_10809-1.png 5 -sketch/horse/n02374451_10809-2.png 5 -sketch/horse/n02374451_10809-4.png 5 -sketch/horse/n02374451_10809-5.png 5 -sketch/horse/n02374451_10809-6.png 5 -sketch/horse/n02374451_10809-7.png 5 -sketch/horse/n02374451_10809-8.png 5 -sketch/horse/n02374451_11479-1.png 5 -sketch/horse/n02374451_11479-2.png 5 -sketch/horse/n02374451_11479-3.png 5 -sketch/horse/n02374451_11479-4.png 5 -sketch/horse/n02374451_11479-5.png 5 -sketch/horse/n02374451_11479-6.png 5 -sketch/horse/n02374451_11479-7.png 5 -sketch/horse/n02374451_11483-1.png 5 -sketch/horse/n02374451_11483-2.png 5 -sketch/horse/n02374451_11483-3.png 5 -sketch/horse/n02374451_11483-4.png 5 -sketch/horse/n02374451_11483-5.png 5 -sketch/horse/n02374451_11483-6.png 5 -sketch/horse/n02374451_11492-1.png 5 -sketch/horse/n02374451_11492-2.png 5 -sketch/horse/n02374451_11492-3.png 5 -sketch/horse/n02374451_11492-4.png 5 -sketch/horse/n02374451_11492-5.png 5 -sketch/horse/n02374451_11492-6.png 5 -sketch/horse/n02374451_11894-1.png 5 -sketch/horse/n02374451_11894-2.png 5 -sketch/horse/n02374451_11894-3.png 5 -sketch/horse/n02374451_11894-4.png 5 -sketch/horse/n02374451_11894-5.png 5 -sketch/horse/n02374451_11894-6.png 5 -sketch/horse/n02374451_11894-7.png 5 -sketch/horse/n02374451_11894-8.png 5 -sketch/horse/n02374451_11894-9.png 5 -sketch/horse/n02374451_12128-1.png 5 -sketch/horse/n02374451_12128-2.png 5 -sketch/horse/n02374451_12128-3.png 5 -sketch/horse/n02374451_12128-4.png 5 -sketch/horse/n02374451_12128-5.png 5 -sketch/horse/n02374451_12128-6.png 5 -sketch/horse/n02374451_12128-7.png 5 -sketch/horse/n02374451_12128-8.png 5 -sketch/horse/n02374451_12174-1.png 5 -sketch/horse/n02374451_12174-2.png 5 -sketch/horse/n02374451_12174-3.png 5 -sketch/horse/n02374451_12174-4.png 5 -sketch/horse/n02374451_12174-5.png 5 -sketch/horse/n02374451_12174-6.png 5 -sketch/horse/n02374451_12200-1.png 5 -sketch/horse/n02374451_12200-2.png 5 -sketch/horse/n02374451_12200-3.png 5 -sketch/horse/n02374451_12200-4.png 5 -sketch/horse/n02374451_12200-5.png 5 -sketch/horse/n02374451_12200-6.png 5 -sketch/horse/n02374451_12200-7.png 5 -sketch/horse/n02374451_12225-1.png 5 -sketch/horse/n02374451_12225-2.png 5 -sketch/horse/n02374451_12225-3.png 5 -sketch/horse/n02374451_12225-4.png 5 -sketch/horse/n02374451_12225-5.png 5 -sketch/horse/n02374451_12225-6.png 5 -sketch/horse/n02374451_12230-1.png 5 -sketch/horse/n02374451_12230-2.png 5 -sketch/horse/n02374451_12230-3.png 5 -sketch/horse/n02374451_12230-4.png 5 -sketch/horse/n02374451_12230-5.png 5 -sketch/horse/n02374451_12230-6.png 5 -sketch/horse/n02374451_12230-7.png 5 -sketch/horse/n02374451_12239-1.png 5 -sketch/horse/n02374451_12239-2.png 5 -sketch/horse/n02374451_12239-3.png 5 -sketch/horse/n02374451_12239-4.png 5 -sketch/horse/n02374451_12239-5.png 5 -sketch/horse/n02374451_12239-6.png 5 -sketch/horse/n02374451_12239-7.png 5 -sketch/horse/n02374451_12250-1.png 5 -sketch/horse/n02374451_12250-2.png 5 -sketch/horse/n02374451_12250-3.png 5 -sketch/horse/n02374451_12250-4.png 5 -sketch/horse/n02374451_12250-5.png 5 -sketch/horse/n02374451_12250-6.png 5 -sketch/horse/n02374451_12250-7.png 5 -sketch/horse/n02374451_12254-1.png 5 -sketch/horse/n02374451_12254-2.png 5 -sketch/horse/n02374451_12254-3.png 5 -sketch/horse/n02374451_12254-4.png 5 -sketch/horse/n02374451_12254-5.png 5 -sketch/horse/n02374451_12254-6.png 5 -sketch/horse/n02374451_12254-7.png 5 -sketch/horse/n02374451_12328-1.png 5 -sketch/horse/n02374451_12328-2.png 5 -sketch/horse/n02374451_12328-3.png 5 -sketch/horse/n02374451_12328-4.png 5 -sketch/horse/n02374451_12328-5.png 5 -sketch/horse/n02374451_12328-6.png 5 -sketch/horse/n02374451_12328-7.png 5 -sketch/horse/n02374451_12328-8.png 5 -sketch/horse/n02374451_12328-9.png 5 -sketch/horse/n02374451_12328-10.png 5 -sketch/horse/n02374451_12418-1.png 5 -sketch/horse/n02374451_12418-2.png 5 -sketch/horse/n02374451_12418-3.png 5 -sketch/horse/n02374451_12418-4.png 5 -sketch/horse/n02374451_12418-5.png 5 -sketch/horse/n02374451_12418-6.png 5 -sketch/horse/n02374451_12418-7.png 5 -sketch/horse/n02374451_12418-8.png 5 -sketch/horse/n02374451_12418-9.png 5 -sketch/horse/n02374451_12418-10.png 5 -sketch/horse/n02374451_12792-1.png 5 -sketch/horse/n02374451_12792-2.png 5 -sketch/horse/n02374451_12792-3.png 5 -sketch/horse/n02374451_12792-4.png 5 -sketch/horse/n02374451_12792-5.png 5 -sketch/horse/n02374451_12792-6.png 5 -sketch/horse/n02374451_12792-7.png 5 -sketch/horse/n02374451_12792-8.png 5 -sketch/horse/n02374451_12792-9.png 5 -sketch/horse/n02374451_12792-10.png 5 -sketch/horse/n02374451_12847-1.png 5 -sketch/horse/n02374451_12847-2.png 5 -sketch/horse/n02374451_12847-3.png 5 -sketch/horse/n02374451_12847-4.png 5 -sketch/horse/n02374451_12847-5.png 5 -sketch/horse/n02374451_12847-6.png 5 -sketch/horse/n02374451_12847-7.png 5 -sketch/horse/n02374451_12847-8.png 5 -sketch/horse/n02374451_13132-1.png 5 -sketch/horse/n02374451_13132-2.png 5 -sketch/horse/n02374451_13132-3.png 5 -sketch/horse/n02374451_13132-4.png 5 -sketch/horse/n02374451_13132-5.png 5 -sketch/horse/n02374451_13132-6.png 5 -sketch/horse/n02374451_13132-7.png 5 -sketch/horse/n02374451_13136-1.png 5 -sketch/horse/n02374451_13136-2.png 5 -sketch/horse/n02374451_13136-3.png 5 -sketch/horse/n02374451_13136-4.png 5 -sketch/horse/n02374451_13136-5.png 5 -sketch/horse/n02374451_13159-1.png 5 -sketch/horse/n02374451_13159-2.png 5 -sketch/horse/n02374451_13159-3.png 5 -sketch/horse/n02374451_13159-4.png 5 -sketch/horse/n02374451_13159-5.png 5 -sketch/horse/n02374451_13159-6.png 5 -sketch/horse/n02374451_13159-7.png 5 -sketch/horse/n02374451_13159-8.png 5 -sketch/horse/n02374451_13171-1.png 5 -sketch/horse/n02374451_13171-2.png 5 -sketch/horse/n02374451_13171-3.png 5 -sketch/horse/n02374451_13171-4.png 5 -sketch/horse/n02374451_13171-5.png 5 -sketch/horse/n02374451_13171-6.png 5 -sketch/horse/n02374451_13718-1.png 5 -sketch/horse/n02374451_13718-2.png 5 -sketch/horse/n02374451_13718-3.png 5 -sketch/horse/n02374451_13718-4.png 5 -sketch/horse/n02374451_13718-5.png 5 -sketch/horse/n02374451_13718-6.png 5 -sketch/horse/n02374451_14119-1.png 5 -sketch/horse/n02374451_14119-2.png 5 -sketch/horse/n02374451_14119-3.png 5 -sketch/horse/n02374451_14119-4.png 5 -sketch/horse/n02374451_14119-5.png 5 -sketch/horse/n02374451_14119-6.png 5 -sketch/horse/n02374451_14119-7.png 5 -sketch/horse/n02374451_14119-8.png 5 -sketch/horse/n02374451_14119-9.png 5 -sketch/horse/n02374451_14233-1.png 5 -sketch/horse/n02374451_14233-2.png 5 -sketch/horse/n02374451_14233-3.png 5 -sketch/horse/n02374451_14233-4.png 5 -sketch/horse/n02374451_14233-5.png 5 -sketch/horse/n02374451_14399-1.png 5 -sketch/horse/n02374451_14399-2.png 5 -sketch/horse/n02374451_14399-3.png 5 -sketch/horse/n02374451_14399-4.png 5 -sketch/horse/n02374451_14399-5.png 5 -sketch/horse/n02374451_14399-6.png 5 -sketch/horse/n02374451_14399-7.png 5 -sketch/horse/n02374451_14425-10.png 5 -sketch/horse/n02374451_14425-1.png 5 -sketch/horse/n02374451_14425-2.png 5 -sketch/horse/n02374451_14425-3.png 5 -sketch/horse/n02374451_14425-4.png 5 -sketch/horse/n02374451_14425-5.png 5 -sketch/horse/n02374451_14425-6.png 5 -sketch/horse/n02374451_14425-7.png 5 -sketch/horse/n02374451_14425-8.png 5 -sketch/horse/n02374451_14425-9.png 5 -sketch/horse/n02374451_14738-1.png 5 -sketch/horse/n02374451_14738-2.png 5 -sketch/horse/n02374451_14738-3.png 5 -sketch/horse/n02374451_14738-4.png 5 -sketch/horse/n02374451_14738-5.png 5 -sketch/horse/n02374451_14738-6.png 5 -sketch/horse/n02374451_14738-7.png 5 -sketch/horse/n02374451_14846-1.png 5 -sketch/horse/n02374451_14846-2.png 5 -sketch/horse/n02374451_14846-3.png 5 -sketch/horse/n02374451_14846-4.png 5 -sketch/horse/n02374451_14846-5.png 5 -sketch/horse/n02374451_14846-6.png 5 -sketch/horse/n02374451_14846-7.png 5 -sketch/horse/n02374451_15307-1.png 5 -sketch/horse/n02374451_15307-2.png 5 -sketch/horse/n02374451_15307-3.png 5 -sketch/horse/n02374451_15307-4.png 5 -sketch/horse/n02374451_15307-5.png 5 -sketch/horse/n02374451_15307-6.png 5 -sketch/horse/n02374451_15440-1.png 5 -sketch/horse/n02374451_15440-2.png 5 -sketch/horse/n02374451_15440-3.png 5 -sketch/horse/n02374451_15440-4.png 5 -sketch/horse/n02374451_15440-5.png 5 -sketch/horse/n02374451_15440-6.png 5 -sketch/horse/n02374451_15453-1.png 5 -sketch/horse/n02374451_15453-2.png 5 -sketch/horse/n02374451_15453-3.png 5 -sketch/horse/n02374451_15453-4.png 5 -sketch/horse/n02374451_15453-5.png 5 -sketch/horse/n02374451_15453-6.png 5 -sketch/horse/n02374451_15453-7.png 5 -sketch/horse/n02374451_15669-1.png 5 -sketch/horse/n02374451_15669-2.png 5 -sketch/horse/n02374451_15669-3.png 5 -sketch/horse/n02374451_15669-4.png 5 -sketch/horse/n02374451_15669-5.png 5 -sketch/horse/n02374451_15669-6.png 5 -sketch/horse/n02374451_16194-1.png 5 -sketch/horse/n02374451_16194-2.png 5 -sketch/horse/n02374451_16194-3.png 5 -sketch/horse/n02374451_16194-4.png 5 -sketch/horse/n02374451_16194-5.png 5 -sketch/horse/n02374451_16194-6.png 5 -sketch/horse/n02374451_16358-1.png 5 -sketch/horse/n02374451_16358-2.png 5 -sketch/horse/n02374451_16358-3.png 5 -sketch/horse/n02374451_16358-4.png 5 -sketch/horse/n02374451_16358-5.png 5 -sketch/horse/n02374451_16358-6.png 5 -sketch/horse/n02374451_16948-1.png 5 -sketch/horse/n02374451_16948-2.png 5 -sketch/horse/n02374451_16948-3.png 5 -sketch/horse/n02374451_16948-4.png 5 -sketch/horse/n02374451_16948-5.png 5 -sketch/horse/n02374451_16948-6.png 5 -sketch/horse/n02374451_16948-7.png 5 -sketch/horse/n02374451_16948-8.png 5 -sketch/horse/n02374451_16948-9.png 5 -sketch/horse/n02374451_17043-1.png 5 -sketch/horse/n02374451_17043-2.png 5 -sketch/horse/n02374451_17043-3.png 5 -sketch/horse/n02374451_17043-4.png 5 -sketch/horse/n02374451_17043-5.png 5 -sketch/horse/n02374451_17043-6.png 5 -sketch/horse/n02374451_17384-1.png 5 -sketch/horse/n02374451_17384-2.png 5 -sketch/horse/n02374451_17384-3.png 5 -sketch/horse/n02374451_17384-4.png 5 -sketch/horse/n02374451_17384-5.png 5 -sketch/horse/n02374451_17384-6.png 5 -sketch/horse/n02374451_17384-7.png 5 -sketch/horse/n02374451_17384-8.png 5 -sketch/horse/n02374451_17474-1.png 5 -sketch/horse/n02374451_17474-2.png 5 -sketch/horse/n02374451_17474-3.png 5 -sketch/horse/n02374451_17474-4.png 5 -sketch/horse/n02374451_17474-5.png 5 -sketch/horse/n02374451_17474-6.png 5 -sketch/horse/n02374451_17474-7.png 5 -sketch/horse/n02374451_17474-8.png 5 -sketch/horse/n02374451_17634-1.png 5 -sketch/horse/n02374451_17634-2.png 5 -sketch/horse/n02374451_17634-3.png 5 -sketch/horse/n02374451_17634-4.png 5 -sketch/horse/n02374451_17634-5.png 5 -sketch/horse/n02374451_17634-6.png 5 -sketch/horse/n02374451_18192-1.png 5 -sketch/horse/n02374451_18192-2.png 5 -sketch/horse/n02374451_18192-3.png 5 -sketch/horse/n02374451_18192-4.png 5 -sketch/horse/n02374451_18192-5.png 5 -sketch/horse/n02374451_18192-6.png 5 -sketch/horse/n02374451_18570-1.png 5 -sketch/horse/n02374451_18570-2.png 5 -sketch/horse/n02374451_18570-3.png 5 -sketch/horse/n02374451_18570-4.png 5 -sketch/horse/n02374451_18570-5.png 5 -sketch/horse/n02374451_18570-6.png 5 -sketch/horse/n02374451_18570-7.png 5 -sketch/horse/n02374451_18909-1.png 5 -sketch/horse/n02374451_18909-2.png 5 -sketch/horse/n02374451_18909-3.png 5 -sketch/horse/n02374451_18909-4.png 5 -sketch/horse/n02374451_18909-5.png 5 -sketch/horse/n02374451_18909-6.png 5 -sketch/horse/8481.png 5 -sketch/horse/8482.png 5 -sketch/horse/8483.png 5 -sketch/horse/8484.png 5 -sketch/horse/8485.png 5 -sketch/horse/8486.png 5 -sketch/horse/8487.png 5 -sketch/horse/8488.png 5 -sketch/horse/8489.png 5 -sketch/horse/8490.png 5 -sketch/horse/8491.png 5 -sketch/horse/8492.png 5 -sketch/horse/8493.png 5 -sketch/horse/8494.png 5 -sketch/horse/8495.png 5 -sketch/horse/8496.png 5 -sketch/horse/8497.png 5 -sketch/horse/8498.png 5 -sketch/horse/8499.png 5 -sketch/horse/8500.png 5 -sketch/horse/8501.png 5 -sketch/horse/8502.png 5 -sketch/horse/8503.png 5 -sketch/horse/8504.png 5 -sketch/horse/8505.png 5 -sketch/horse/8506.png 5 -sketch/horse/8507.png 5 -sketch/horse/8508.png 5 -sketch/horse/8509.png 5 -sketch/horse/8510.png 5 -sketch/horse/8511.png 5 -sketch/horse/8512.png 5 -sketch/horse/8513.png 5 -sketch/horse/8514.png 5 -sketch/horse/8515.png 5 -sketch/horse/8516.png 5 -sketch/horse/8517.png 5 -sketch/horse/8518.png 5 -sketch/horse/8519.png 5 -sketch/horse/8520.png 5 -sketch/horse/8521.png 5 -sketch/horse/8522.png 5 -sketch/horse/8523.png 5 -sketch/horse/8524.png 5 -sketch/horse/8525.png 5 -sketch/horse/8526.png 5 -sketch/horse/8527.png 5 -sketch/horse/8528.png 5 -sketch/horse/8529.png 5 -sketch/horse/8530.png 5 -sketch/horse/8531.png 5 -sketch/horse/8532.png 5 -sketch/horse/8533.png 5 -sketch/horse/8534.png 5 -sketch/horse/8535.png 5 -sketch/horse/8536.png 5 -sketch/horse/8537.png 5 -sketch/horse/8538.png 5 -sketch/horse/8539.png 5 -sketch/horse/8540.png 5 -sketch/horse/8541.png 5 -sketch/horse/8542.png 5 -sketch/horse/8543.png 5 -sketch/horse/8544.png 5 -sketch/horse/8545.png 5 -sketch/horse/8546.png 5 -sketch/horse/8547.png 5 -sketch/horse/8548.png 5 -sketch/horse/8549.png 5 -sketch/horse/8550.png 5 -sketch/horse/8551.png 5 -sketch/horse/8552.png 5 -sketch/horse/8553.png 5 -sketch/horse/8554.png 5 -sketch/horse/8555.png 5 -sketch/horse/8556.png 5 -sketch/horse/8557.png 5 -sketch/horse/8558.png 5 -sketch/horse/8559.png 5 -sketch/horse/8560.png 5 -sketch/house/8810.png 6 -sketch/house/8811.png 6 -sketch/house/8812.png 6 -sketch/house/8813.png 6 -sketch/house/8814.png 6 -sketch/house/8815.png 6 -sketch/house/8816.png 6 -sketch/house/8817.png 6 -sketch/house/8818.png 6 -sketch/house/8819.png 6 -sketch/house/8820.png 6 -sketch/house/8821.png 6 -sketch/house/8822.png 6 -sketch/house/8823.png 6 -sketch/house/8824.png 6 -sketch/house/8825.png 6 -sketch/house/8826.png 6 -sketch/house/8827.png 6 -sketch/house/8828.png 6 -sketch/house/8829.png 6 -sketch/house/8830.png 6 -sketch/house/8831.png 6 -sketch/house/8832.png 6 -sketch/house/8833.png 6 -sketch/house/8834.png 6 -sketch/house/8835.png 6 -sketch/house/8836.png 6 -sketch/house/8837.png 6 -sketch/house/8838.png 6 -sketch/house/8839.png 6 -sketch/house/8840.png 6 -sketch/house/8841.png 6 -sketch/house/8842.png 6 -sketch/house/8843.png 6 -sketch/house/8844.png 6 -sketch/house/8845.png 6 -sketch/house/8846.png 6 -sketch/house/8847.png 6 -sketch/house/8848.png 6 -sketch/house/8849.png 6 -sketch/house/8850.png 6 -sketch/house/8851.png 6 -sketch/house/8852.png 6 -sketch/house/8853.png 6 -sketch/house/8854.png 6 -sketch/house/8855.png 6 -sketch/house/8856.png 6 -sketch/house/8857.png 6 -sketch/house/8858.png 6 -sketch/house/8859.png 6 -sketch/house/8860.png 6 -sketch/house/8861.png 6 -sketch/house/8862.png 6 -sketch/house/8863.png 6 -sketch/house/8864.png 6 -sketch/house/8865.png 6 -sketch/house/8866.png 6 -sketch/house/8867.png 6 -sketch/house/8868.png 6 -sketch/house/8869.png 6 -sketch/house/8870.png 6 -sketch/house/8871.png 6 -sketch/house/8872.png 6 -sketch/house/8873.png 6 -sketch/house/8874.png 6 -sketch/house/8875.png 6 -sketch/house/8876.png 6 -sketch/house/8877.png 6 -sketch/house/8878.png 6 -sketch/house/8879.png 6 -sketch/house/8880.png 6 -sketch/person/12098.png 7 -sketch/person/12099.png 7 -sketch/person/12100.png 7 -sketch/person/12101.png 7 -sketch/person/12102.png 7 -sketch/person/12103.png 7 -sketch/person/12104.png 7 -sketch/person/12105.png 7 -sketch/person/12106.png 7 -sketch/person/12107.png 7 -sketch/person/12108.png 7 -sketch/person/12109.png 7 -sketch/person/12110.png 7 -sketch/person/12111.png 7 -sketch/person/12112.png 7 -sketch/person/12113.png 7 -sketch/person/12114.png 7 -sketch/person/12115.png 7 -sketch/person/12116.png 7 -sketch/person/12117.png 7 -sketch/person/12118.png 7 -sketch/person/12119.png 7 -sketch/person/12120.png 7 -sketch/person/12121.png 7 -sketch/person/12122.png 7 -sketch/person/12123.png 7 -sketch/person/12124.png 7 -sketch/person/12125.png 7 -sketch/person/12126.png 7 -sketch/person/12127.png 7 -sketch/person/12128.png 7 -sketch/person/12129.png 7 -sketch/person/12130.png 7 -sketch/person/12131.png 7 -sketch/person/12132.png 7 -sketch/person/12133.png 7 -sketch/person/12134.png 7 -sketch/person/12135.png 7 -sketch/person/12136.png 7 -sketch/person/12137.png 7 -sketch/person/12138.png 7 -sketch/person/12139.png 7 -sketch/person/12140.png 7 -sketch/person/12141.png 7 -sketch/person/12142.png 7 -sketch/person/12143.png 7 -sketch/person/12144.png 7 -sketch/person/12145.png 7 -sketch/person/12146.png 7 -sketch/person/12147.png 7 -sketch/person/12148.png 7 -sketch/person/12149.png 7 -sketch/person/12150.png 7 -sketch/person/12151.png 7 -sketch/person/12152.png 7 -sketch/person/12153.png 7 -sketch/person/12154.png 7 -sketch/person/12155.png 7 -sketch/person/12156.png 7 -sketch/person/12157.png 7 -sketch/person/12158.png 7 -sketch/person/12159.png 7 -sketch/person/12160.png 7 -sketch/person/12161.png 7 -sketch/person/12162.png 7 -sketch/person/12163.png 7 -sketch/person/12164.png 7 -sketch/person/12165.png 7 -sketch/person/12166.png 7 -sketch/person/12167.png 7 -sketch/person/12168.png 7 -sketch/person/12169.png 7 -sketch/person/12170.png 7 -sketch/person/12171.png 7 -sketch/person/12172.png 7 -sketch/person/12173.png 7 -sketch/person/12174.png 7 -sketch/person/12175.png 7 -sketch/person/12176.png 7 -sketch/person/12177.png 7 -sketch/person/12178.png 7 -sketch/person/12179.png 7 -sketch/person/12180.png 7 -sketch/person/12181.png 7 -sketch/person/12182.png 7 -sketch/person/12183.png 7 -sketch/person/12184.png 7 -sketch/person/12185.png 7 -sketch/person/12186.png 7 -sketch/person/12187.png 7 -sketch/person/12188.png 7 -sketch/person/12189.png 7 -sketch/person/12190.png 7 -sketch/person/12191.png 7 -sketch/person/12192.png 7 -sketch/person/12193.png 7 -sketch/person/12194.png 7 -sketch/person/12195.png 7 -sketch/person/12196.png 7 -sketch/person/12197.png 7 -sketch/person/12198.png 7 -sketch/person/12199.png 7 -sketch/person/12200.png 7 -sketch/person/12201.png 7 -sketch/person/12202.png 7 -sketch/person/12203.png 7 -sketch/person/12204.png 7 -sketch/person/12205.png 7 -sketch/person/12206.png 7 -sketch/person/12207.png 7 -sketch/person/12208.png 7 -sketch/person/12209.png 7 -sketch/person/12210.png 7 -sketch/person/12211.png 7 -sketch/person/12212.png 7 -sketch/person/12213.png 7 -sketch/person/12214.png 7 -sketch/person/12215.png 7 -sketch/person/12216.png 7 -sketch/person/12217.png 7 -sketch/person/12218.png 7 -sketch/person/12219.png 7 -sketch/person/12220.png 7 -sketch/person/12221.png 7 -sketch/person/12222.png 7 -sketch/person/12223.png 7 -sketch/person/12224.png 7 -sketch/person/12225.png 7 -sketch/person/12226.png 7 -sketch/person/12227.png 7 -sketch/person/12228.png 7 -sketch/person/12229.png 7 -sketch/person/12230.png 7 -sketch/person/12231.png 7 -sketch/person/12232.png 7 -sketch/person/12233.png 7 -sketch/person/12234.png 7 -sketch/person/12235.png 7 -sketch/person/12236.png 7 -sketch/person/12237.png 7 -sketch/person/12238.png 7 -sketch/person/12239.png 7 -sketch/person/12240.png 7 diff --git a/data/patches_permutation4jigsaw/permutations_100.npy b/data/patches_permutation4jigsaw/permutations_100.npy deleted file mode 100644 index e97dac647..000000000 Binary files a/data/patches_permutation4jigsaw/permutations_100.npy and /dev/null differ diff --git a/data/patches_permutation4jigsaw/permutations_30.npy b/data/patches_permutation4jigsaw/permutations_30.npy deleted file mode 100644 index d9e4fd8b3..000000000 Binary files a/data/patches_permutation4jigsaw/permutations_30.npy and /dev/null differ diff --git a/data/patches_permutation4jigsaw/permutations_31.npy b/data/patches_permutation4jigsaw/permutations_31.npy deleted file mode 100644 index 196351ca0..000000000 Binary files a/data/patches_permutation4jigsaw/permutations_31.npy and /dev/null differ diff --git a/data/script/download_pacs.py b/data/script/download_pacs.py deleted file mode 100644 index 51c346f24..000000000 --- a/data/script/download_pacs.py +++ /dev/null @@ -1,64 +0,0 @@ -"this script can be used to download the pacs dataset" -import os -import tarfile -from zipfile import ZipFile - -import gdown - - -def stage_path(data_dir, name): - """ - creates the path to data_dir/name - if it does not exist already - """ - full_path = os.path.join(data_dir, name) - - if not os.path.exists(full_path): - os.makedirs(full_path) - - return full_path - - -def download_and_extract(url, dst, remove=True): - """ - downloads and extracts the data behind the url - and saves it at dst - """ - gdown.download(url, dst, quiet=False) - - if dst.endswith(".tar.gz"): - with open(dst, "r:gz") as tar: - tar.extractall(os.path.dirname(dst)) - tar.close() - - if dst.endswith(".tar"): - with open(dst, "r:") as tar: - tar.extractall(os.path.dirname(dst)) - tar.close() - - if dst.endswith(".zip"): - zfile = ZipFile(dst, "r") - zfile.extractall(os.path.dirname(dst)) - zfile.close() - - if remove: - os.remove(dst) - - -def download_pacs(data_dir): - """ - download and extract dataset pacs. - Dataset is saved at location data_dir - """ - full_path = stage_path(data_dir, "PACS") - - download_and_extract( - "https://drive.google.com/uc?id=1JFr8f805nMUelQWWmfnJR3y4_SYoN5Pd", - os.path.join(data_dir, "PACS.zip"), - ) - - os.rename(os.path.join(data_dir, "kfold"), full_path) - - -if __name__ == "__main__": - download_pacs("../pacs") diff --git a/data/vlcs_mini/caltech/auto/train_imgs_150.jpg b/data/vlcs_mini/caltech/auto/train_imgs_150.jpg deleted file mode 100644 index 8d01af8c3..000000000 Binary files a/data/vlcs_mini/caltech/auto/train_imgs_150.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/auto/train_imgs_151.jpg b/data/vlcs_mini/caltech/auto/train_imgs_151.jpg deleted file mode 100644 index 4d1bdc631..000000000 Binary files a/data/vlcs_mini/caltech/auto/train_imgs_151.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/auto/train_imgs_152.jpg b/data/vlcs_mini/caltech/auto/train_imgs_152.jpg deleted file mode 100644 index 6eb2ed77e..000000000 Binary files a/data/vlcs_mini/caltech/auto/train_imgs_152.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/auto/train_imgs_153.jpg b/data/vlcs_mini/caltech/auto/train_imgs_153.jpg deleted file mode 100644 index 7f95895b3..000000000 Binary files a/data/vlcs_mini/caltech/auto/train_imgs_153.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/auto/train_imgs_154.jpg b/data/vlcs_mini/caltech/auto/train_imgs_154.jpg deleted file mode 100644 index 038f7c75a..000000000 Binary files a/data/vlcs_mini/caltech/auto/train_imgs_154.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/auto/train_imgs_155.jpg b/data/vlcs_mini/caltech/auto/train_imgs_155.jpg deleted file mode 100644 index 4cd7cb961..000000000 Binary files a/data/vlcs_mini/caltech/auto/train_imgs_155.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/auto/train_imgs_156.jpg b/data/vlcs_mini/caltech/auto/train_imgs_156.jpg deleted file mode 100644 index 417ff9fec..000000000 Binary files a/data/vlcs_mini/caltech/auto/train_imgs_156.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/auto/train_imgs_157.jpg b/data/vlcs_mini/caltech/auto/train_imgs_157.jpg deleted file mode 100644 index f0bea00eb..000000000 Binary files a/data/vlcs_mini/caltech/auto/train_imgs_157.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/auto/train_imgs_158.jpg b/data/vlcs_mini/caltech/auto/train_imgs_158.jpg deleted file mode 100644 index ddcd649c7..000000000 Binary files a/data/vlcs_mini/caltech/auto/train_imgs_158.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/auto/train_imgs_159.jpg b/data/vlcs_mini/caltech/auto/train_imgs_159.jpg deleted file mode 100644 index b3cf78f0b..000000000 Binary files a/data/vlcs_mini/caltech/auto/train_imgs_159.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/auto/train_imgs_160.jpg b/data/vlcs_mini/caltech/auto/train_imgs_160.jpg deleted file mode 100644 index 0f2b8a128..000000000 Binary files a/data/vlcs_mini/caltech/auto/train_imgs_160.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/auto/train_imgs_161.jpg b/data/vlcs_mini/caltech/auto/train_imgs_161.jpg deleted file mode 100644 index 33ac685cb..000000000 Binary files a/data/vlcs_mini/caltech/auto/train_imgs_161.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/auto/train_imgs_162.jpg b/data/vlcs_mini/caltech/auto/train_imgs_162.jpg deleted file mode 100644 index 20267f3ff..000000000 Binary files a/data/vlcs_mini/caltech/auto/train_imgs_162.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/auto/train_imgs_163.jpg b/data/vlcs_mini/caltech/auto/train_imgs_163.jpg deleted file mode 100644 index bae5f75fa..000000000 Binary files a/data/vlcs_mini/caltech/auto/train_imgs_163.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/auto/train_imgs_164.jpg b/data/vlcs_mini/caltech/auto/train_imgs_164.jpg deleted file mode 100644 index 93cbbf2a3..000000000 Binary files a/data/vlcs_mini/caltech/auto/train_imgs_164.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/auto/train_imgs_165.jpg b/data/vlcs_mini/caltech/auto/train_imgs_165.jpg deleted file mode 100644 index 4f8486a13..000000000 Binary files a/data/vlcs_mini/caltech/auto/train_imgs_165.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/auto/train_imgs_166.jpg b/data/vlcs_mini/caltech/auto/train_imgs_166.jpg deleted file mode 100644 index e7bf34f79..000000000 Binary files a/data/vlcs_mini/caltech/auto/train_imgs_166.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/auto/train_imgs_167.jpg b/data/vlcs_mini/caltech/auto/train_imgs_167.jpg deleted file mode 100644 index e4b17e52a..000000000 Binary files a/data/vlcs_mini/caltech/auto/train_imgs_167.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/auto/train_imgs_168.jpg b/data/vlcs_mini/caltech/auto/train_imgs_168.jpg deleted file mode 100644 index 5d98cd4ab..000000000 Binary files a/data/vlcs_mini/caltech/auto/train_imgs_168.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/auto/train_imgs_169.jpg b/data/vlcs_mini/caltech/auto/train_imgs_169.jpg deleted file mode 100644 index 2efa536e5..000000000 Binary files a/data/vlcs_mini/caltech/auto/train_imgs_169.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/hund/train_imgs_302.jpg b/data/vlcs_mini/caltech/hund/train_imgs_302.jpg deleted file mode 100644 index 7e79bb60a..000000000 Binary files a/data/vlcs_mini/caltech/hund/train_imgs_302.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/hund/train_imgs_303.jpg b/data/vlcs_mini/caltech/hund/train_imgs_303.jpg deleted file mode 100644 index b019ca0da..000000000 Binary files a/data/vlcs_mini/caltech/hund/train_imgs_303.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/hund/train_imgs_304.jpg b/data/vlcs_mini/caltech/hund/train_imgs_304.jpg deleted file mode 100644 index a547a4342..000000000 Binary files a/data/vlcs_mini/caltech/hund/train_imgs_304.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/hund/train_imgs_305.jpg b/data/vlcs_mini/caltech/hund/train_imgs_305.jpg deleted file mode 100644 index 35d453852..000000000 Binary files a/data/vlcs_mini/caltech/hund/train_imgs_305.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/hund/train_imgs_306.jpg b/data/vlcs_mini/caltech/hund/train_imgs_306.jpg deleted file mode 100644 index bad4d877f..000000000 Binary files a/data/vlcs_mini/caltech/hund/train_imgs_306.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/hund/train_imgs_307.jpg b/data/vlcs_mini/caltech/hund/train_imgs_307.jpg deleted file mode 100644 index fc3963301..000000000 Binary files a/data/vlcs_mini/caltech/hund/train_imgs_307.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/hund/train_imgs_308.jpg b/data/vlcs_mini/caltech/hund/train_imgs_308.jpg deleted file mode 100644 index 7327fa407..000000000 Binary files a/data/vlcs_mini/caltech/hund/train_imgs_308.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/hund/train_imgs_309.jpg b/data/vlcs_mini/caltech/hund/train_imgs_309.jpg deleted file mode 100644 index c3e8789f3..000000000 Binary files a/data/vlcs_mini/caltech/hund/train_imgs_309.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/hund/train_imgs_310.jpg b/data/vlcs_mini/caltech/hund/train_imgs_310.jpg deleted file mode 100644 index 378c083b1..000000000 Binary files a/data/vlcs_mini/caltech/hund/train_imgs_310.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/hund/train_imgs_311.jpg b/data/vlcs_mini/caltech/hund/train_imgs_311.jpg deleted file mode 100644 index c34e04832..000000000 Binary files a/data/vlcs_mini/caltech/hund/train_imgs_311.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/hund/train_imgs_312.jpg b/data/vlcs_mini/caltech/hund/train_imgs_312.jpg deleted file mode 100644 index 7ef8a0fcd..000000000 Binary files a/data/vlcs_mini/caltech/hund/train_imgs_312.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/mensch/train_imgs_344.jpg b/data/vlcs_mini/caltech/mensch/train_imgs_344.jpg deleted file mode 100644 index ad487291a..000000000 Binary files a/data/vlcs_mini/caltech/mensch/train_imgs_344.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/mensch/train_imgs_345.jpg b/data/vlcs_mini/caltech/mensch/train_imgs_345.jpg deleted file mode 100644 index 0554d6542..000000000 Binary files a/data/vlcs_mini/caltech/mensch/train_imgs_345.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/mensch/train_imgs_346.jpg b/data/vlcs_mini/caltech/mensch/train_imgs_346.jpg deleted file mode 100644 index 97b441cce..000000000 Binary files a/data/vlcs_mini/caltech/mensch/train_imgs_346.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/mensch/train_imgs_347.jpg b/data/vlcs_mini/caltech/mensch/train_imgs_347.jpg deleted file mode 100644 index 7f93da2aa..000000000 Binary files a/data/vlcs_mini/caltech/mensch/train_imgs_347.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/mensch/train_imgs_348.jpg b/data/vlcs_mini/caltech/mensch/train_imgs_348.jpg deleted file mode 100644 index 77ac55168..000000000 Binary files a/data/vlcs_mini/caltech/mensch/train_imgs_348.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/mensch/train_imgs_349.jpg b/data/vlcs_mini/caltech/mensch/train_imgs_349.jpg deleted file mode 100644 index 557945edd..000000000 Binary files a/data/vlcs_mini/caltech/mensch/train_imgs_349.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/mensch/train_imgs_350.jpg b/data/vlcs_mini/caltech/mensch/train_imgs_350.jpg deleted file mode 100644 index 65fab7eb1..000000000 Binary files a/data/vlcs_mini/caltech/mensch/train_imgs_350.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/mensch/train_imgs_351.jpg b/data/vlcs_mini/caltech/mensch/train_imgs_351.jpg deleted file mode 100644 index 9afc1b7c7..000000000 Binary files a/data/vlcs_mini/caltech/mensch/train_imgs_351.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/mensch/train_imgs_352.jpg b/data/vlcs_mini/caltech/mensch/train_imgs_352.jpg deleted file mode 100644 index c1a367b04..000000000 Binary files a/data/vlcs_mini/caltech/mensch/train_imgs_352.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/stuhl/train_imgs_227.jpg b/data/vlcs_mini/caltech/stuhl/train_imgs_227.jpg deleted file mode 100644 index b8e68d5f6..000000000 Binary files a/data/vlcs_mini/caltech/stuhl/train_imgs_227.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/stuhl/train_imgs_228.jpg b/data/vlcs_mini/caltech/stuhl/train_imgs_228.jpg deleted file mode 100644 index 4d685f58d..000000000 Binary files a/data/vlcs_mini/caltech/stuhl/train_imgs_228.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/stuhl/train_imgs_229.jpg b/data/vlcs_mini/caltech/stuhl/train_imgs_229.jpg deleted file mode 100644 index 54f87677d..000000000 Binary files a/data/vlcs_mini/caltech/stuhl/train_imgs_229.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/stuhl/train_imgs_230.jpg b/data/vlcs_mini/caltech/stuhl/train_imgs_230.jpg deleted file mode 100644 index 2cce711ab..000000000 Binary files a/data/vlcs_mini/caltech/stuhl/train_imgs_230.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/stuhl/train_imgs_231.jpg b/data/vlcs_mini/caltech/stuhl/train_imgs_231.jpg deleted file mode 100644 index 6e2036865..000000000 Binary files a/data/vlcs_mini/caltech/stuhl/train_imgs_231.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/stuhl/train_imgs_232.jpg b/data/vlcs_mini/caltech/stuhl/train_imgs_232.jpg deleted file mode 100644 index d2878a44b..000000000 Binary files a/data/vlcs_mini/caltech/stuhl/train_imgs_232.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/vogel/train_imgs_1.jpg b/data/vlcs_mini/caltech/vogel/train_imgs_1.jpg deleted file mode 100644 index 36e8af5d6..000000000 Binary files a/data/vlcs_mini/caltech/vogel/train_imgs_1.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/vogel/train_imgs_2.jpg b/data/vlcs_mini/caltech/vogel/train_imgs_2.jpg deleted file mode 100644 index 5affad9fb..000000000 Binary files a/data/vlcs_mini/caltech/vogel/train_imgs_2.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/vogel/train_imgs_3.jpg b/data/vlcs_mini/caltech/vogel/train_imgs_3.jpg deleted file mode 100644 index b85bdc572..000000000 Binary files a/data/vlcs_mini/caltech/vogel/train_imgs_3.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/vogel/train_imgs_4.jpg b/data/vlcs_mini/caltech/vogel/train_imgs_4.jpg deleted file mode 100644 index df57a475a..000000000 Binary files a/data/vlcs_mini/caltech/vogel/train_imgs_4.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/vogel/train_imgs_5.jpg b/data/vlcs_mini/caltech/vogel/train_imgs_5.jpg deleted file mode 100644 index d5c1394c5..000000000 Binary files a/data/vlcs_mini/caltech/vogel/train_imgs_5.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/vogel/train_imgs_6.jpg b/data/vlcs_mini/caltech/vogel/train_imgs_6.jpg deleted file mode 100644 index aac9ff7a9..000000000 Binary files a/data/vlcs_mini/caltech/vogel/train_imgs_6.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/vogel/train_imgs_7.jpg b/data/vlcs_mini/caltech/vogel/train_imgs_7.jpg deleted file mode 100644 index 3778a5f82..000000000 Binary files a/data/vlcs_mini/caltech/vogel/train_imgs_7.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/vogel/train_imgs_8.jpg b/data/vlcs_mini/caltech/vogel/train_imgs_8.jpg deleted file mode 100644 index e77fd8b77..000000000 Binary files a/data/vlcs_mini/caltech/vogel/train_imgs_8.jpg and /dev/null differ diff --git a/data/vlcs_mini/caltech/vogel/train_imgs_9.jpg b/data/vlcs_mini/caltech/vogel/train_imgs_9.jpg deleted file mode 100644 index 45d4fce7b..000000000 Binary files a/data/vlcs_mini/caltech/vogel/train_imgs_9.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_1.jpg b/data/vlcs_mini/labelme/bird/train_imgs_1.jpg deleted file mode 100644 index fa62a47f9..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_1.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_10.jpg b/data/vlcs_mini/labelme/bird/train_imgs_10.jpg deleted file mode 100644 index b690f5c0f..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_10.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_11.jpg b/data/vlcs_mini/labelme/bird/train_imgs_11.jpg deleted file mode 100644 index fc9eacc24..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_11.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_12.jpg b/data/vlcs_mini/labelme/bird/train_imgs_12.jpg deleted file mode 100644 index 4717327ea..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_12.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_13.jpg b/data/vlcs_mini/labelme/bird/train_imgs_13.jpg deleted file mode 100644 index 1e749728c..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_13.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_14.jpg b/data/vlcs_mini/labelme/bird/train_imgs_14.jpg deleted file mode 100644 index d7ab9c7d2..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_14.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_15.jpg b/data/vlcs_mini/labelme/bird/train_imgs_15.jpg deleted file mode 100644 index 6bdaa4adf..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_15.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_16.jpg b/data/vlcs_mini/labelme/bird/train_imgs_16.jpg deleted file mode 100644 index 3c8a0bbcf..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_16.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_17.jpg b/data/vlcs_mini/labelme/bird/train_imgs_17.jpg deleted file mode 100644 index 245636d68..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_17.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_18.jpg b/data/vlcs_mini/labelme/bird/train_imgs_18.jpg deleted file mode 100644 index ce4516875..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_18.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_19.jpg b/data/vlcs_mini/labelme/bird/train_imgs_19.jpg deleted file mode 100644 index 5243db38c..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_19.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_2.jpg b/data/vlcs_mini/labelme/bird/train_imgs_2.jpg deleted file mode 100644 index adb944495..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_2.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_20.jpg b/data/vlcs_mini/labelme/bird/train_imgs_20.jpg deleted file mode 100644 index 9d2a94afb..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_20.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_21.jpg b/data/vlcs_mini/labelme/bird/train_imgs_21.jpg deleted file mode 100644 index 8b2fd0903..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_21.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_22.jpg b/data/vlcs_mini/labelme/bird/train_imgs_22.jpg deleted file mode 100644 index 210ef5efb..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_22.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_23.jpg b/data/vlcs_mini/labelme/bird/train_imgs_23.jpg deleted file mode 100644 index 5e47e9363..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_23.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_24.jpg b/data/vlcs_mini/labelme/bird/train_imgs_24.jpg deleted file mode 100644 index d2e6cd15f..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_24.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_25.jpg b/data/vlcs_mini/labelme/bird/train_imgs_25.jpg deleted file mode 100644 index 925013222..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_25.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_26.jpg b/data/vlcs_mini/labelme/bird/train_imgs_26.jpg deleted file mode 100644 index c19911e9d..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_26.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_27.jpg b/data/vlcs_mini/labelme/bird/train_imgs_27.jpg deleted file mode 100644 index dfc58dc55..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_27.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_28.jpg b/data/vlcs_mini/labelme/bird/train_imgs_28.jpg deleted file mode 100644 index d7f5a3c20..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_28.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_29.jpg b/data/vlcs_mini/labelme/bird/train_imgs_29.jpg deleted file mode 100644 index bbc4bbec8..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_29.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_3.jpg b/data/vlcs_mini/labelme/bird/train_imgs_3.jpg deleted file mode 100644 index 1fdc623ba..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_3.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_30.jpg b/data/vlcs_mini/labelme/bird/train_imgs_30.jpg deleted file mode 100644 index b48f0df0f..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_30.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_31.jpg b/data/vlcs_mini/labelme/bird/train_imgs_31.jpg deleted file mode 100644 index 2d7448309..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_31.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_32.jpg b/data/vlcs_mini/labelme/bird/train_imgs_32.jpg deleted file mode 100644 index 03fa4f818..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_32.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_33.jpg b/data/vlcs_mini/labelme/bird/train_imgs_33.jpg deleted file mode 100644 index 9dc6bcc6c..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_33.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_34.jpg b/data/vlcs_mini/labelme/bird/train_imgs_34.jpg deleted file mode 100644 index 2879c5e0c..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_34.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_35.jpg b/data/vlcs_mini/labelme/bird/train_imgs_35.jpg deleted file mode 100644 index 7a16d6f34..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_35.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_36.jpg b/data/vlcs_mini/labelme/bird/train_imgs_36.jpg deleted file mode 100644 index 6104ff96e..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_36.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_37.jpg b/data/vlcs_mini/labelme/bird/train_imgs_37.jpg deleted file mode 100644 index 6ce48a9d9..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_37.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_38.jpg b/data/vlcs_mini/labelme/bird/train_imgs_38.jpg deleted file mode 100644 index 2a1366fca..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_38.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_39.jpg b/data/vlcs_mini/labelme/bird/train_imgs_39.jpg deleted file mode 100644 index 76d101104..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_39.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_4.jpg b/data/vlcs_mini/labelme/bird/train_imgs_4.jpg deleted file mode 100644 index 4e970302b..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_4.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_40.jpg b/data/vlcs_mini/labelme/bird/train_imgs_40.jpg deleted file mode 100644 index 1b4544988..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_40.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_41.jpg b/data/vlcs_mini/labelme/bird/train_imgs_41.jpg deleted file mode 100644 index 58ac89b3d..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_41.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_42.jpg b/data/vlcs_mini/labelme/bird/train_imgs_42.jpg deleted file mode 100644 index 1788966d7..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_42.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_43.jpg b/data/vlcs_mini/labelme/bird/train_imgs_43.jpg deleted file mode 100644 index bfdc2c869..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_43.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_44.jpg b/data/vlcs_mini/labelme/bird/train_imgs_44.jpg deleted file mode 100644 index 37b476a41..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_44.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_45.jpg b/data/vlcs_mini/labelme/bird/train_imgs_45.jpg deleted file mode 100644 index 7efb92de8..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_45.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_46.jpg b/data/vlcs_mini/labelme/bird/train_imgs_46.jpg deleted file mode 100644 index e590b1c5e..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_46.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_47.jpg b/data/vlcs_mini/labelme/bird/train_imgs_47.jpg deleted file mode 100644 index 3cdbdeb6b..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_47.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_48.jpg b/data/vlcs_mini/labelme/bird/train_imgs_48.jpg deleted file mode 100644 index 6c271309c..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_48.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_49.jpg b/data/vlcs_mini/labelme/bird/train_imgs_49.jpg deleted file mode 100644 index 4030a021a..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_49.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_5.jpg b/data/vlcs_mini/labelme/bird/train_imgs_5.jpg deleted file mode 100644 index a5d6091d5..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_5.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_50.jpg b/data/vlcs_mini/labelme/bird/train_imgs_50.jpg deleted file mode 100644 index d692b4a41..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_50.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_6.jpg b/data/vlcs_mini/labelme/bird/train_imgs_6.jpg deleted file mode 100644 index 4277e39f2..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_6.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_7.jpg b/data/vlcs_mini/labelme/bird/train_imgs_7.jpg deleted file mode 100644 index d4daa9e87..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_7.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_8.jpg b/data/vlcs_mini/labelme/bird/train_imgs_8.jpg deleted file mode 100644 index c23218241..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_8.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/bird/train_imgs_9.jpg b/data/vlcs_mini/labelme/bird/train_imgs_9.jpg deleted file mode 100644 index 4ce7ba627..000000000 Binary files a/data/vlcs_mini/labelme/bird/train_imgs_9.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/drive/train_imgs_51.jpg b/data/vlcs_mini/labelme/drive/train_imgs_51.jpg deleted file mode 100644 index 5a550fd87..000000000 Binary files a/data/vlcs_mini/labelme/drive/train_imgs_51.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/drive/train_imgs_52.jpg b/data/vlcs_mini/labelme/drive/train_imgs_52.jpg deleted file mode 100644 index 97f638ace..000000000 Binary files a/data/vlcs_mini/labelme/drive/train_imgs_52.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/drive/train_imgs_54.jpg b/data/vlcs_mini/labelme/drive/train_imgs_54.jpg deleted file mode 100644 index fab8731c6..000000000 Binary files a/data/vlcs_mini/labelme/drive/train_imgs_54.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/drive/train_imgs_55.jpg b/data/vlcs_mini/labelme/drive/train_imgs_55.jpg deleted file mode 100644 index 3394d839f..000000000 Binary files a/data/vlcs_mini/labelme/drive/train_imgs_55.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/drive/train_imgs_56.jpg b/data/vlcs_mini/labelme/drive/train_imgs_56.jpg deleted file mode 100644 index 4435ee7b4..000000000 Binary files a/data/vlcs_mini/labelme/drive/train_imgs_56.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/drive/train_imgs_57.jpg b/data/vlcs_mini/labelme/drive/train_imgs_57.jpg deleted file mode 100644 index 13daa967d..000000000 Binary files a/data/vlcs_mini/labelme/drive/train_imgs_57.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/drive/train_imgs_58.jpg b/data/vlcs_mini/labelme/drive/train_imgs_58.jpg deleted file mode 100644 index e49e1c825..000000000 Binary files a/data/vlcs_mini/labelme/drive/train_imgs_58.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/drive/train_imgs_59.jpg b/data/vlcs_mini/labelme/drive/train_imgs_59.jpg deleted file mode 100644 index 23f581a14..000000000 Binary files a/data/vlcs_mini/labelme/drive/train_imgs_59.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/drive/train_imgs_60.jpg b/data/vlcs_mini/labelme/drive/train_imgs_60.jpg deleted file mode 100644 index 85a28391d..000000000 Binary files a/data/vlcs_mini/labelme/drive/train_imgs_60.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/drive/train_imgs_61.jpg b/data/vlcs_mini/labelme/drive/train_imgs_61.jpg deleted file mode 100644 index 33bc22be7..000000000 Binary files a/data/vlcs_mini/labelme/drive/train_imgs_61.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/drive/train_imgs_64.jpg b/data/vlcs_mini/labelme/drive/train_imgs_64.jpg deleted file mode 100644 index d31546a13..000000000 Binary files a/data/vlcs_mini/labelme/drive/train_imgs_64.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/drive/train_imgs_65.jpg b/data/vlcs_mini/labelme/drive/train_imgs_65.jpg deleted file mode 100644 index 7e3a9b223..000000000 Binary files a/data/vlcs_mini/labelme/drive/train_imgs_65.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/drive/train_imgs_69.jpg b/data/vlcs_mini/labelme/drive/train_imgs_69.jpg deleted file mode 100644 index dff71951f..000000000 Binary files a/data/vlcs_mini/labelme/drive/train_imgs_69.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/drive/train_imgs_70.jpg b/data/vlcs_mini/labelme/drive/train_imgs_70.jpg deleted file mode 100644 index 5a3d9d962..000000000 Binary files a/data/vlcs_mini/labelme/drive/train_imgs_70.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/husky/train_imgs_870.jpg b/data/vlcs_mini/labelme/husky/train_imgs_870.jpg deleted file mode 100644 index 07687dfaa..000000000 Binary files a/data/vlcs_mini/labelme/husky/train_imgs_870.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/husky/train_imgs_871.jpg b/data/vlcs_mini/labelme/husky/train_imgs_871.jpg deleted file mode 100644 index 207ddfd52..000000000 Binary files a/data/vlcs_mini/labelme/husky/train_imgs_871.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/husky/train_imgs_880.jpg b/data/vlcs_mini/labelme/husky/train_imgs_880.jpg deleted file mode 100644 index 884441f5c..000000000 Binary files a/data/vlcs_mini/labelme/husky/train_imgs_880.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/husky/train_imgs_883.jpg b/data/vlcs_mini/labelme/husky/train_imgs_883.jpg deleted file mode 100644 index b77e4087f..000000000 Binary files a/data/vlcs_mini/labelme/husky/train_imgs_883.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/husky/train_imgs_886.jpg b/data/vlcs_mini/labelme/husky/train_imgs_886.jpg deleted file mode 100644 index d134a134c..000000000 Binary files a/data/vlcs_mini/labelme/husky/train_imgs_886.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/husky/train_imgs_891.jpg b/data/vlcs_mini/labelme/husky/train_imgs_891.jpg deleted file mode 100644 index 8e5b6e5fc..000000000 Binary files a/data/vlcs_mini/labelme/husky/train_imgs_891.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/sit/train_imgs_818.jpg b/data/vlcs_mini/labelme/sit/train_imgs_818.jpg deleted file mode 100644 index 1445f43ac..000000000 Binary files a/data/vlcs_mini/labelme/sit/train_imgs_818.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/sit/train_imgs_824.jpg b/data/vlcs_mini/labelme/sit/train_imgs_824.jpg deleted file mode 100644 index b03925923..000000000 Binary files a/data/vlcs_mini/labelme/sit/train_imgs_824.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/sit/train_imgs_830.jpg b/data/vlcs_mini/labelme/sit/train_imgs_830.jpg deleted file mode 100644 index 3de4d6269..000000000 Binary files a/data/vlcs_mini/labelme/sit/train_imgs_830.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/sit/train_imgs_836.jpg b/data/vlcs_mini/labelme/sit/train_imgs_836.jpg deleted file mode 100644 index 0953fd6cf..000000000 Binary files a/data/vlcs_mini/labelme/sit/train_imgs_836.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/sit/train_imgs_837.jpg b/data/vlcs_mini/labelme/sit/train_imgs_837.jpg deleted file mode 100644 index b408dc35c..000000000 Binary files a/data/vlcs_mini/labelme/sit/train_imgs_837.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/sit/train_imgs_849.jpg b/data/vlcs_mini/labelme/sit/train_imgs_849.jpg deleted file mode 100644 index 67d5c5abe..000000000 Binary files a/data/vlcs_mini/labelme/sit/train_imgs_849.jpg and /dev/null differ diff --git a/data/vlcs_mini/labelme/sit/train_imgs_858.jpg b/data/vlcs_mini/labelme/sit/train_imgs_858.jpg deleted file mode 100644 index 3789d7fdb..000000000 Binary files a/data/vlcs_mini/labelme/sit/train_imgs_858.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/dog/train_imgs_1253.jpg b/data/vlcs_mini/sun/dog/train_imgs_1253.jpg deleted file mode 100644 index 00f561eb8..000000000 Binary files a/data/vlcs_mini/sun/dog/train_imgs_1253.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/dog/train_imgs_1254.jpg b/data/vlcs_mini/sun/dog/train_imgs_1254.jpg deleted file mode 100644 index aa2b1ef79..000000000 Binary files a/data/vlcs_mini/sun/dog/train_imgs_1254.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/dog/train_imgs_1255.jpg b/data/vlcs_mini/sun/dog/train_imgs_1255.jpg deleted file mode 100644 index aa74d706a..000000000 Binary files a/data/vlcs_mini/sun/dog/train_imgs_1255.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/dog/train_imgs_1256.jpg b/data/vlcs_mini/sun/dog/train_imgs_1256.jpg deleted file mode 100644 index 2ba1a73ca..000000000 Binary files a/data/vlcs_mini/sun/dog/train_imgs_1256.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/dog/train_imgs_1257.jpg b/data/vlcs_mini/sun/dog/train_imgs_1257.jpg deleted file mode 100644 index 52bf5feda..000000000 Binary files a/data/vlcs_mini/sun/dog/train_imgs_1257.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/dog/train_imgs_1258.jpg b/data/vlcs_mini/sun/dog/train_imgs_1258.jpg deleted file mode 100644 index 814095c57..000000000 Binary files a/data/vlcs_mini/sun/dog/train_imgs_1258.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/dog/train_imgs_1259.jpg b/data/vlcs_mini/sun/dog/train_imgs_1259.jpg deleted file mode 100644 index 787bdb0e1..000000000 Binary files a/data/vlcs_mini/sun/dog/train_imgs_1259.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/dog/train_imgs_1260.jpg b/data/vlcs_mini/sun/dog/train_imgs_1260.jpg deleted file mode 100644 index 43789d870..000000000 Binary files a/data/vlcs_mini/sun/dog/train_imgs_1260.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/dog/train_imgs_1261.jpg b/data/vlcs_mini/sun/dog/train_imgs_1261.jpg deleted file mode 100644 index 8aad332e6..000000000 Binary files a/data/vlcs_mini/sun/dog/train_imgs_1261.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/dog/train_imgs_1262.jpg b/data/vlcs_mini/sun/dog/train_imgs_1262.jpg deleted file mode 100644 index 8aa83944d..000000000 Binary files a/data/vlcs_mini/sun/dog/train_imgs_1262.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/dog/train_imgs_1263.jpg b/data/vlcs_mini/sun/dog/train_imgs_1263.jpg deleted file mode 100644 index 0aff5ec9f..000000000 Binary files a/data/vlcs_mini/sun/dog/train_imgs_1263.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/dog/train_imgs_1264.jpg b/data/vlcs_mini/sun/dog/train_imgs_1264.jpg deleted file mode 100644 index 73b79a98d..000000000 Binary files a/data/vlcs_mini/sun/dog/train_imgs_1264.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/dog/train_imgs_1265.jpg b/data/vlcs_mini/sun/dog/train_imgs_1265.jpg deleted file mode 100644 index 301449719..000000000 Binary files a/data/vlcs_mini/sun/dog/train_imgs_1265.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/dog/train_imgs_1266.jpg b/data/vlcs_mini/sun/dog/train_imgs_1266.jpg deleted file mode 100644 index 3df231c22..000000000 Binary files a/data/vlcs_mini/sun/dog/train_imgs_1266.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/dog/train_imgs_1267.jpg b/data/vlcs_mini/sun/dog/train_imgs_1267.jpg deleted file mode 100644 index 9e179d0a9..000000000 Binary files a/data/vlcs_mini/sun/dog/train_imgs_1267.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/dog/train_imgs_1268.jpg b/data/vlcs_mini/sun/dog/train_imgs_1268.jpg deleted file mode 100644 index f5286c3db..000000000 Binary files a/data/vlcs_mini/sun/dog/train_imgs_1268.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/dog/train_imgs_1269.jpg b/data/vlcs_mini/sun/dog/train_imgs_1269.jpg deleted file mode 100644 index ee3f4a86b..000000000 Binary files a/data/vlcs_mini/sun/dog/train_imgs_1269.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/dog/train_imgs_1270.jpg b/data/vlcs_mini/sun/dog/train_imgs_1270.jpg deleted file mode 100644 index 0595076c7..000000000 Binary files a/data/vlcs_mini/sun/dog/train_imgs_1270.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/dog/train_imgs_1271.jpg b/data/vlcs_mini/sun/dog/train_imgs_1271.jpg deleted file mode 100644 index 9c6d6d74b..000000000 Binary files a/data/vlcs_mini/sun/dog/train_imgs_1271.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/flying/train_imgs_1.jpg b/data/vlcs_mini/sun/flying/train_imgs_1.jpg deleted file mode 100644 index b816f9bc6..000000000 Binary files a/data/vlcs_mini/sun/flying/train_imgs_1.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/flying/train_imgs_10.jpg b/data/vlcs_mini/sun/flying/train_imgs_10.jpg deleted file mode 100644 index a76ed177e..000000000 Binary files a/data/vlcs_mini/sun/flying/train_imgs_10.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/flying/train_imgs_11.jpg b/data/vlcs_mini/sun/flying/train_imgs_11.jpg deleted file mode 100644 index 744ae91fa..000000000 Binary files a/data/vlcs_mini/sun/flying/train_imgs_11.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/flying/train_imgs_13.jpg b/data/vlcs_mini/sun/flying/train_imgs_13.jpg deleted file mode 100644 index d238b4f2a..000000000 Binary files a/data/vlcs_mini/sun/flying/train_imgs_13.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/flying/train_imgs_2.jpg b/data/vlcs_mini/sun/flying/train_imgs_2.jpg deleted file mode 100644 index f3a676599..000000000 Binary files a/data/vlcs_mini/sun/flying/train_imgs_2.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/flying/train_imgs_3.jpg b/data/vlcs_mini/sun/flying/train_imgs_3.jpg deleted file mode 100644 index 584afa327..000000000 Binary files a/data/vlcs_mini/sun/flying/train_imgs_3.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/flying/train_imgs_5.jpg b/data/vlcs_mini/sun/flying/train_imgs_5.jpg deleted file mode 100644 index 1d5a013f9..000000000 Binary files a/data/vlcs_mini/sun/flying/train_imgs_5.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/flying/train_imgs_7.jpg b/data/vlcs_mini/sun/flying/train_imgs_7.jpg deleted file mode 100644 index f52ae690b..000000000 Binary files a/data/vlcs_mini/sun/flying/train_imgs_7.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/sapiens/train_imgs_1272.jpg b/data/vlcs_mini/sun/sapiens/train_imgs_1272.jpg deleted file mode 100644 index 49684abb7..000000000 Binary files a/data/vlcs_mini/sun/sapiens/train_imgs_1272.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/sapiens/train_imgs_1273.jpg b/data/vlcs_mini/sun/sapiens/train_imgs_1273.jpg deleted file mode 100644 index b58476139..000000000 Binary files a/data/vlcs_mini/sun/sapiens/train_imgs_1273.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/sapiens/train_imgs_1274.jpg b/data/vlcs_mini/sun/sapiens/train_imgs_1274.jpg deleted file mode 100644 index 64b3ec66e..000000000 Binary files a/data/vlcs_mini/sun/sapiens/train_imgs_1274.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/sapiens/train_imgs_1275.jpg b/data/vlcs_mini/sun/sapiens/train_imgs_1275.jpg deleted file mode 100644 index eac1b5c8f..000000000 Binary files a/data/vlcs_mini/sun/sapiens/train_imgs_1275.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/sapiens/train_imgs_1276.jpg b/data/vlcs_mini/sun/sapiens/train_imgs_1276.jpg deleted file mode 100644 index 465464ddd..000000000 Binary files a/data/vlcs_mini/sun/sapiens/train_imgs_1276.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/sapiens/train_imgs_1277.jpg b/data/vlcs_mini/sun/sapiens/train_imgs_1277.jpg deleted file mode 100644 index db1a08d31..000000000 Binary files a/data/vlcs_mini/sun/sapiens/train_imgs_1277.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/sapiens/train_imgs_1278.jpg b/data/vlcs_mini/sun/sapiens/train_imgs_1278.jpg deleted file mode 100644 index 3b1641b36..000000000 Binary files a/data/vlcs_mini/sun/sapiens/train_imgs_1278.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/sapiens/train_imgs_1279.jpg b/data/vlcs_mini/sun/sapiens/train_imgs_1279.jpg deleted file mode 100644 index 923043eeb..000000000 Binary files a/data/vlcs_mini/sun/sapiens/train_imgs_1279.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/sapiens/train_imgs_1280.jpg b/data/vlcs_mini/sun/sapiens/train_imgs_1280.jpg deleted file mode 100644 index 904ee40d4..000000000 Binary files a/data/vlcs_mini/sun/sapiens/train_imgs_1280.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/sapiens/train_imgs_1281.jpg b/data/vlcs_mini/sun/sapiens/train_imgs_1281.jpg deleted file mode 100644 index f9bbc85df..000000000 Binary files a/data/vlcs_mini/sun/sapiens/train_imgs_1281.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/sapiens/train_imgs_1282.jpg b/data/vlcs_mini/sun/sapiens/train_imgs_1282.jpg deleted file mode 100644 index 90d6d9a55..000000000 Binary files a/data/vlcs_mini/sun/sapiens/train_imgs_1282.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/sapiens/train_imgs_1428.jpg b/data/vlcs_mini/sun/sapiens/train_imgs_1428.jpg deleted file mode 100644 index 5d981c21f..000000000 Binary files a/data/vlcs_mini/sun/sapiens/train_imgs_1428.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/sapiens/train_imgs_2065.jpg b/data/vlcs_mini/sun/sapiens/train_imgs_2065.jpg deleted file mode 100644 index f81ad3770..000000000 Binary files a/data/vlcs_mini/sun/sapiens/train_imgs_2065.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/sapiens/train_imgs_2066.jpg b/data/vlcs_mini/sun/sapiens/train_imgs_2066.jpg deleted file mode 100644 index 21bf2f7d7..000000000 Binary files a/data/vlcs_mini/sun/sapiens/train_imgs_2066.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/sapiens/train_imgs_2067.jpg b/data/vlcs_mini/sun/sapiens/train_imgs_2067.jpg deleted file mode 100644 index f93d313be..000000000 Binary files a/data/vlcs_mini/sun/sapiens/train_imgs_2067.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/sofa/train_imgs_609.jpg b/data/vlcs_mini/sun/sofa/train_imgs_609.jpg deleted file mode 100644 index 239adbfcc..000000000 Binary files a/data/vlcs_mini/sun/sofa/train_imgs_609.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/sofa/train_imgs_612.jpg b/data/vlcs_mini/sun/sofa/train_imgs_612.jpg deleted file mode 100644 index 55a3480d0..000000000 Binary files a/data/vlcs_mini/sun/sofa/train_imgs_612.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/sofa/train_imgs_614.jpg b/data/vlcs_mini/sun/sofa/train_imgs_614.jpg deleted file mode 100644 index 8723a30be..000000000 Binary files a/data/vlcs_mini/sun/sofa/train_imgs_614.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/sofa/train_imgs_620.jpg b/data/vlcs_mini/sun/sofa/train_imgs_620.jpg deleted file mode 100644 index e0974ef2e..000000000 Binary files a/data/vlcs_mini/sun/sofa/train_imgs_620.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/vehicle/train_imgs_17.jpg b/data/vlcs_mini/sun/vehicle/train_imgs_17.jpg deleted file mode 100644 index 07f3213cc..000000000 Binary files a/data/vlcs_mini/sun/vehicle/train_imgs_17.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/vehicle/train_imgs_19.jpg b/data/vlcs_mini/sun/vehicle/train_imgs_19.jpg deleted file mode 100644 index 33aba5e89..000000000 Binary files a/data/vlcs_mini/sun/vehicle/train_imgs_19.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/vehicle/train_imgs_21.jpg b/data/vlcs_mini/sun/vehicle/train_imgs_21.jpg deleted file mode 100644 index 55cc84237..000000000 Binary files a/data/vlcs_mini/sun/vehicle/train_imgs_21.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/vehicle/train_imgs_22.jpg b/data/vlcs_mini/sun/vehicle/train_imgs_22.jpg deleted file mode 100644 index 182b9c374..000000000 Binary files a/data/vlcs_mini/sun/vehicle/train_imgs_22.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/vehicle/train_imgs_23.jpg b/data/vlcs_mini/sun/vehicle/train_imgs_23.jpg deleted file mode 100644 index 2a7768e41..000000000 Binary files a/data/vlcs_mini/sun/vehicle/train_imgs_23.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/vehicle/train_imgs_24.jpg b/data/vlcs_mini/sun/vehicle/train_imgs_24.jpg deleted file mode 100644 index 4d4973d0a..000000000 Binary files a/data/vlcs_mini/sun/vehicle/train_imgs_24.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/vehicle/train_imgs_25.jpg b/data/vlcs_mini/sun/vehicle/train_imgs_25.jpg deleted file mode 100644 index e27117bd7..000000000 Binary files a/data/vlcs_mini/sun/vehicle/train_imgs_25.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/vehicle/train_imgs_26.jpg b/data/vlcs_mini/sun/vehicle/train_imgs_26.jpg deleted file mode 100644 index 60f378112..000000000 Binary files a/data/vlcs_mini/sun/vehicle/train_imgs_26.jpg and /dev/null differ diff --git a/data/vlcs_mini/sun/vehicle/train_imgs_478.jpg b/data/vlcs_mini/sun/vehicle/train_imgs_478.jpg deleted file mode 100644 index 5a5131742..000000000 Binary files a/data/vlcs_mini/sun/vehicle/train_imgs_478.jpg and /dev/null differ diff --git a/data/ztest_files/aggret_res_test1 b/data/ztest_files/aggret_res_test1 deleted file mode 100644 index f53acf3ae..000000000 --- a/data/ztest_files/aggret_res_test1 +++ /dev/null @@ -1,2 +0,0 @@ -param_index, method, algo, epos, te_d, seed, params, acc, precision, recall, specificity, f1, auroc -0, Task1, diva, 2, caltech, 1, "{'gamma_y': 1688039, 'gamma_d': 265711}", 0.75, 0.87068963, 0.5588235, 0.5588235, 0.53100574, 0.8098495 diff --git a/data/ztest_files/aggret_res_test11 b/data/ztest_files/aggret_res_test11 deleted file mode 100644 index 797cc5055..000000000 --- a/data/ztest_files/aggret_res_test11 +++ /dev/null @@ -1,9 +0,0 @@ -param_index, method, algo, epos, te_d, seed, params, acc, precision, recall, specificity, f1, auroc -0, Task1, diva, 2, caltech, 1, "{'gamma_y': 1688039, 'gamma_d': 265711}", 0.75, 0.87068963, 0.5588235, 0.5588235, 0.53100574, 0.8098495 -0, Task1, diva, 2, caltech, 2, "{'gamma_y': 1688039, 'gamma_d': 265711}", 0.8111111, 0.8232258, 0.6903785, 0.6903785, 0.71645665, 0.89284086 -1, Task1, diva, 2, caltech, 1, "{'gamma_y': 3648291, 'gamma_d': 320432}", 0.75, 0.87068963, 0.5588235, 0.5588235, 0.53100574, 0.8095455 -1, Task1, diva, 2, caltech, 2, "{'gamma_y': 3648291, 'gamma_d': 320432}", 0.82222223, 0.8609804, 0.6981304, 0.6981304, 0.7278397, 0.9361605 -0, Task2, hduva, 2, caltech, 1, "{'a': 1, 'b': 3}", 0.76, 0.76, 0.49, 0.56, 0.57, 0.76 -0, Task2, hduva, 2, caltech, 2, "{'a': 1, 'b': 3}", 0.81, 0.75, 0.45, 0.64, 0.75, 0.89 -1, Task2, hduva, 2, caltech, 1, "{'a': 2, 'b': 4}", 0.75, 0.81, 0.45, 0.54, 0.39, 0.88 -1, Task2, hduva, 2, caltech, 2, "{'a': 2, 'b': 4}", 0.73, 0.72, 0.51, 0.51, 0.6, 0.88 diff --git a/data/ztest_files/aggret_res_test2 b/data/ztest_files/aggret_res_test2 deleted file mode 100644 index 93104ef85..000000000 --- a/data/ztest_files/aggret_res_test2 +++ /dev/null @@ -1,5 +0,0 @@ -param_index, method, algo, epos, te_d, seed, params, acc, precision, recall, specificity, f1, auroc -0, Task1, diva, 2, caltech, 1, "{'gamma_y': 1688039, 'gamma_d': 265711}", 0.75, 0.87068963, 0.5588235, 0.5588235, 0.53100574, 0.8098495 -0, Task1, diva, 2, caltech, 2, "{'gamma_y': 1688039, 'gamma_d': 265711}", 0.8111111, 0.8232258, 0.6903785, 0.6903785, 0.71645665, 0.89284086 -2, Task1, diva, 2, caltech, 3, "{'gamma_y': 1688039, 'gamma_d': 265711}", 0.77397263, 0.82765615, 0.59528303, 0.59528303, 0.5953641, 0.74150944 -0, Task2, diva, 2, caltech, 1, "{'gamma_y': 1688039, 'gamma_d': 265711}", 0.75, 0.87068963, 0.5588235, 0.5588235, 0.53100574, 0.8098495 diff --git a/data/ztest_files/aggret_res_test21 b/data/ztest_files/aggret_res_test21 deleted file mode 100644 index 5bb677ba7..000000000 --- a/data/ztest_files/aggret_res_test21 +++ /dev/null @@ -1,23 +0,0 @@ -param_index, method, algo, epos, te_d, seed, params, acc, precision, recall, specificity, f1, auroc -0, Task1, diva, 2, caltech, 1, "{'gamma_y': 1688039, 'gamma_d': 265711}", 0.75, 0.87068963, 0.5588235, 0.5588235, 0.53100574, 0.8098495 -0, Task1, diva, 2, caltech, 2, "{'gamma_y': 1688039, 'gamma_d': 265711}", 0.8111111, 0.8232258, 0.6903785, 0.6903785, 0.71645665, 0.89284086 -2, Task1, diva, 2, caltech, 3, "{'gamma_y': 1688039, 'gamma_d': 265711}", 0.77397263, 0.82765615, 0.59528303, 0.59528303, 0.5953641, 0.74150944 -2, Task1, diva, 2, caltech, 4, "{'gamma_y': 1688039, 'gamma_d': 265711}", 0.851917, 0.7569983, 0.8873113, 0.8173113, 0.7985473, 0.8769811 -2, Task1, diva, 2, caltech, 5, "{'gamma_y': 1688039, 'gamma_d': 265711}", 0.84, 0.85, 0.615, 0.62, 0.62, 0.74 -1, Task1, diva, 2, caltech, 1, "{'gamma_y': 3648291, 'gamma_d': 320432}", 0.75, 0.87068963, 0.5588235, 0.5588235, 0.53100574, 0.8095455 -1, Task1, diva, 2, caltech, 2, "{'gamma_y': 3648291, 'gamma_d': 320432}", 0.82222223, 0.8609804, 0.6981304, 0.6981304, 0.7278397, 0.9361605 -1, Task1, diva, 2, caltech, 3, "{'gamma_y': 3648291, 'gamma_d': 320432}", 0.85397263, 0.95765615, 0.67528303, 0.6728303, 0.6853641, 0.81150944 -1, Task1, diva, 2, caltech, 4, "{'gamma_y': 3648291, 'gamma_d': 320432}", 0.971917, 0.8869983, 0.9273113, 0.9273113, 0.8285473, 0.9369811 -1, Task1, diva, 2, caltech, 5, "{'gamma_y': 3648291, 'gamma_d': 320432}", 0.92, 0.91, 0.74, 0.75, 0.67, 0.8 -0, Task2, hduva, 2, caltech, 1, "{'gamma_y': 97228, 'zy_dim': 76}", 0.76, 0.76, 0.49, 0.56, 0.57, 0.76 -0, Task2, hduva, 2, caltech, 2, "{'gamma_y': 97228, 'zy_dim': 76}", 0.81, 0.75, 0.45, 0.64, 0.75, 0.89 -0, Task2, hduva, 2, caltech, 3, "{'gamma_y': 97228, 'zy_dim': 76}", 0.8251667, 0.104563385, 0.10817383, 0.90109926, 0.08242064, 0.519054 -0, Task2, hduva, 2, caltech, 4, "{'gamma_y': 97228, 'zy_dim': 76}", 0.97535366, 0.88569593, 0.87402904, 0.98618114, 0.87845683, 0.99118155 -0, Task2, hduva, 2, caltech, 5, "{'gamma_y': 97228, 'zy_dim': 76}", 0.82422227, 0.10658247, 0.1084048, 0.9009563, 0.08635866, 0.51927835 -1, Task2, hduva, 2, caltech, 1, "{'gamma_y': 196616, 'zy_dim': 68}", 0.75, 0.81, 0.45, 0.54, 0.39, 0.88 -1, Task2, hduva, 2, caltech, 2, "{'gamma_y': 196616, 'zy_dim': 68}", 0.73, 0.72, 0.51, 0.51, 0.6, 0.88 -1, Task2, hduva, 2, caltech, 1, "{'gamma_y': 113475, 'zy_dim': 48}", 0.8551667, 0.204563385, 0.20817383, 0.80109926, 0.15242064, 0.559054 -1, Task2, hduva, 2, caltech, 2, "{'gamma_y': 113475, 'zy_dim': 48}", 0.57535366, 0.52569593, 0.41402904, 0.68618114, 0.57845683, 0.89118155 -1, Task2, hduva, 2, caltech, 3, "{'gamma_y': 113475, 'zy_dim': 48}", 0.72422227, 0.20658247, 0.2084048, 0.7009563, 0.18635866, 0.61927835 -1, Task2, erm, 2, caltech, 1, "{}", 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 -1, Task2, erm, 2, caltech, 2, "{}", 0.4, 0.4, 0.4, 0.4, 0.4, 0.4 diff --git a/data/ztest_files/dummy_file.py b/data/ztest_files/dummy_file.py deleted file mode 100644 index e0c7faa27..000000000 --- a/data/ztest_files/dummy_file.py +++ /dev/null @@ -1,4 +0,0 @@ -""" -I am a dummy file used in tests/test_git_tag.py -to produce a file which is not commited -""" diff --git a/data/ztest_files/test_parameter_samples.csv b/data/ztest_files/test_parameter_samples.csv deleted file mode 100644 index e3ebdbf4a..000000000 --- a/data/ztest_files/test_parameter_samples.csv +++ /dev/null @@ -1,2 +0,0 @@ -,method,model,params -0,diva,diva,"{'gamma_y': 10e5, 'gamma_d': 1e5}" diff --git a/docs/conf.py b/docs/conf.py index ea547e0d7..0a0c8b1d3 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -168,11 +168,6 @@ "internal": True, "title": "Examples with MNIST", }, - { - "href": "doc_examples", - "internal": True, - "title": "More commandline examples", - }, {"href": "doc_benchmark", "internal": True, "title": "Benchmarks tutorial"}, {"href": "doc_output", "internal": True, "title": "Output Structure"}, { diff --git a/docs/docDIAL.md b/docs/docDIAL.md index 8b8111de8..3aa28a49f 100644 --- a/docs/docDIAL.md +++ b/docs/docDIAL.md @@ -72,3 +72,24 @@ This procedure yields to the following availability of hyperparameter: - `--dial_epsilon`: pixel wise threshold to perturb images - `--gamma_reg`: ? ($\epsilon$ in the paper) - `--lr`: learning rate ($\alpha$ in the paper) + +## Examples + +``` +python main_out.py --te_d=0 --task=mnistcolor10 --model=erm --trainer=dial --nname=conv_bn_pool_2 +``` + + + +```shell +python main_out.py --te_d=0 --task=mnistcolor10 --keep_model --model=erm --trainer=dial --nname=conv_bn_pool_2 +``` +### Train DIVA model with DIAL trainer + +```shell +python main_out.py --te_d 0 1 2 --tr_d 3 7 --task=mnistcolor10 --model=diva --nname=conv_bn_pool_2 --nname_dom=conv_bn_pool_2 --gamma_y=7e5 --gamma_d=1e5 --trainer=dial +``` +### Set hyper-parameters for trainer as well +```shell +python main_out.py --te_d 0 1 2 --tr_d 3 7 --task=mnistcolor10 --model=diva --nname=conv_bn_pool_2 --nname_dom=conv_bn_pool_2 --gamma_y=7e5 --gamma_d=1e5 --trainer=dial --dial_steps_perturb=1 +``` diff --git a/docs/docFishr.md b/docs/docFishr.md index 08580d9fe..90c2da6b4 100644 --- a/docs/docFishr.md +++ b/docs/docFishr.md @@ -72,6 +72,10 @@ For more details, see the reference below or the domainlab code. +## Examples +``` +python main_out.py --te_d=0 --task=mini_vlcs --model=erm --trainer=fishr --nname=alexnet --bs=2 --nocu +``` @@ -79,3 +83,4 @@ _Reference:_ Rame, Alexandre, Corentin Dancette, and Matthieu Cord. "Fishr: Invariant gradient variances for out-of-distribution generalization." International Conference on Machine Learning. PMLR, 2022. + diff --git a/docs/docHDUVA.md b/docs/docHDUVA.md index 4abcb71e9..dbf3c429c 100644 --- a/docs/docHDUVA.md +++ b/docs/docHDUVA.md @@ -53,6 +53,8 @@ Alternatively, one could use an existing neural network in DomainLab using `nnam ## Hyperparameter for warmup Finally, the number of epochs for hyper-parameter warm-up can be specified via the argument `warmup`. + + Please cite our paper if you find it useful! ```text @inproceedings{sun2021hierarchical, @@ -62,3 +64,46 @@ Please cite our paper if you find it useful! year={2021} } ``` + + + +## Examples + +### hduva use custom net for sandwich encoder +```shell +python main_out.py --te_d=caltech --bs=2 --task=mini_vlcs --model=hduva --nname=conv_bn_pool_2 --gamma_y=7e5 --nname_encoder_x2topic_h=conv_bn_pool_2 --npath_encoder_sandwich_x2h4zd=examples/nets/resnet.py +``` + +### hduva use custom net for topic encoder +```shell +python main_out.py --te_d=caltech --bs=2 --task=mini_vlcs --model=hduva --nname=conv_bn_pool_2 --gamma_y=7e5 --npath_encoder_x2topic_h=examples/nets/resnet.py --nname_encoder_sandwich_x2h4zd=conv_bn_pool_2 +``` + +### hduva use custom net for classification encoder +```shell +python main_out.py --te_d=caltech --bs=2 --task=mini_vlcs --model=hduva --npath=examples/nets/resnet.py --gamma_y=7e5 --nname_encoder_x2topic_h=conv_bn_pool_2 --nname_encoder_sandwich_x2h4zd=conv_bn_pool_2 +``` + +### use hduva on color mnist, train on 2 domains +```shell +python main_out.py --tr_d 0 1 2 --te_d 3 --bs=2 --task=mnistcolor10 --model=hduva --nname=conv_bn_pool_2 --gamma_y=7e5 --nname_encoder_x2topic_h=conv_bn_pool_2 --nname_encoder_sandwich_x2h4zd=conv_bn_pool_2 +``` + +### hduva is domain-unsupervised, so it works also with a single domain +```shell +python main_out.py --tr_d 0 --te_d 3 4 --bs=2 --task=mnistcolor10 --model=hduva --nname=conv_bn_pool_2 --gamma_y=7e5 --nname_encoder_x2topic_h=conv_bn_pool_2 --nname_encoder_sandwich_x2h4zd=conv_bn_pool_2 +``` + +### hduva with implemented neural network +```shell +python main_out.py --te_d=caltech --bs=2 --task=mini_vlcs --model=hduva --nname=conv_bn_pool_2 --gamma_y=7e5 --nname_encoder_x2topic_h=conv_bn_pool_2 --nname_encoder_sandwich_x2h4zd=conv_bn_pool_2 +``` + +### hduva use alex net +```shell +python main_out.py --te_d=caltech --bs=2 --task=mini_vlcs --model=hduva --nname=conv_bn_pool_2 --gamma_y=7e5 --nname_encoder_x2topic_h=conv_bn_pool_2 --nname_encoder_sandwich_x2h4zd=alexnet +``` + + + + diff --git a/docs/docIRM.md b/docs/docIRM.md new file mode 100644 index 000000000..fd097e2aa --- /dev/null +++ b/docs/docIRM.md @@ -0,0 +1,34 @@ +# Trainer IRM (Invariant Risk Minimization) + +Decompose a classification task into feature extraction $\Phi(\cdot)$ and classificaiton layer $w(\cdot)$, then the task loss is + +$\ell^{(d)} (w \circ \Phi) = \mathbb{E}_{(X, Y) \sim \mathcal{D}_d}[\ell(w \circ \Phi(X), Y)]$ +where we use $\ell$ to denote the cross entropy for a classification task, and $\mathcal{D}_d$ for distribution of domain $d$. + +The idea of IRM is to choose classifier $w$ to be in the intersection of optimal classifiers for each domain $$d$$. + +$$w \in {\arg\min}_{\bar{w}} \ell^{(d)}(\bar{w} \circ \Phi) \quad \forall d$$ + +regardless of feature extractor $\Phi(\cdot)$, +this serves as a constraint on the choice of classifiers $w$. + +The feature extractor $\Phi(\cdot)$ then get optimized under this constraint. + +Thus IRM forms a bi-level optimization by jointly optimize $\Phi$ and $w$ which is hard to solve, so in practice IRMv1 is used. + +## IRMv1 + +In DomainLab, we write the loss function as $$\ell(\cdot) + \lambda R(\cdot)$$, which result in the optmization below: + +$$\min_{\Phi, w} \sum_{d} \ell^{(d)}(w \circ \Phi) + \lambda \sum_{d} \|\nabla_{w|w=1.0} \ell^{(d)}(w \circ \Phi)\|^2$$ + +where $\lambda$ is a hyperparameter that controls the trade-off between the empirical risk and the penalty. One interpretation can be the penalty encourages the representation $\Phi$ to be orthogonal to the gradient of the loss (e.g. cross entropy) at $w = 1.0$ across all domains. + +In practice, one could simply divide one mini-batch into two subsets, let $i$ and $j$ to index these two subsets, multiply subset $i$ and subset $j$ forms an unbiased estimation of the L2 norm of gradient. +In detail: the squared gradient norm via inner product between $\nabla_{w|w=1} \ell(w \circ \Phi(X^{(d, i)}), Y^{(d, i)})$ of dimension dim(Grad) with $\nabla_{w|w=1} \ell(w \circ \Phi(X^{(d, j)}), Y^{(d, j)})$ of dimension dim(Grad) For more details, see section 3.2 and Appendix D of : Arjovsky et al., “Invariant Risk Minimization.” + +## Examples +```shell +python main_out.py --te_d=0 --task=mnistcolor10 --model=erm --trainer=irm --nname=conv_bn_pool_2 + +``` diff --git a/docs/docJiGen.md b/docs/docJiGen.md index dc67c3c02..8da6e8270 100644 --- a/docs/docJiGen.md +++ b/docs/docJiGen.md @@ -36,3 +36,17 @@ Furthermore, the user can specify a custom grid length via `grid_len`. _Reference_: Carlucci, Fabio M., et al. "Domain generalization by solving jigsaw puzzles." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019. + + +## Examples + +### model jigen with implemented neural network +```shell +python main_out.py --te_d=caltech --task=mini_vlcs --debug --bs=8 --model=jigen --nname=alexnet --pperm=1 --nperm=100 --grid_len=3 +``` + + +### sannity check with jigen tile shuffling +```shell +python main_out.py --te_d=sketch --tpath=examples/tasks/demo_task_path_list_small.py --debug --bs=8 --model=jigen --nname=alexnet --pperm=1 --nperm=100 --grid_len=3 --san_check +``` diff --git a/docs/docMA.md b/docs/docMA.md new file mode 100644 index 000000000..991f5ad77 --- /dev/null +++ b/docs/docMA.md @@ -0,0 +1,8 @@ +# Simple Moving Average +For each epoch, convex combine the weights for each layey from Paper: Ensemble of Averages: Improving Model Selection and +Boosting Performance in Domain Generalization, Devansh Arpit, Huan Wang, Yingbo Zhou, Caiming Xiong, Salesforce Research, USA + +Example: +``` +python main_out.py --te_d 0 1 --tr_d 3 5 --task=mnistcolor10 --epos=2 --bs=2 --model=erm --nname=conv_bn_pool_2 --trainer=ma +``` diff --git a/docs/docMatchDG.md b/docs/docMatchDG.md index 96eea99f1..816196a82 100644 --- a/docs/docMatchDG.md +++ b/docs/docMatchDG.md @@ -69,3 +69,29 @@ This procedure yields to the following availability of hyperparameter: - `--epochs_ctr`: number of epochs for minimizing the contrastive loss in phase 1. - `--epos_per_match_update`: Number of epochs before updating the match tensor. ($t$ from phase 1) - `--gamma_reg`: weight for the regularization term in phase 2. ($\gamma_\text{reg}$ from phase 2) +- +## Examples + +### trainer matchdg with custom neural network +```shell +python main_out.py --te_d=caltech --task=mini_vlcs --bs=2 --model=erm --trainer=matchdg --epochs_ctr=3 --epos=6 --npath=examples/nets/resnet.py +``` + + +### training hduva with matchdg + +```shell +python main_out.py --te_d 0 1 2 --tr_d 3 7 --task=mnistcolor10 --bs=2 --model=hduva --trainer=matchdg --epochs_ctr=3 --epos=6 --nname=conv_bn_pool_2 --gamma_y=7e5 --nname_encoder_x2topic_h=conv_bn_pool_2 --nname_encoder_sandwich_x2h4zd=conv_bn_pool_2 +``` + +### training implemented neural network with matchdg +```shell +python main_out.py --te_d=caltech --task=mini_vlcs --debug --bs=2 --model=erm --trainer=matchdg --epochs_ctr=3 --epos=6 --nname=alexnet +``` + +### trainer matchdg with mnist +```shell + python main_out.py --te_d 0 1 2 --tr_d 3 7 --task=mnistcolor10 --model=erm --trainer=matchdg --nname=conv_bn_pool_2 --epochs_ctr=2 --epos=6 +``` + + diff --git a/docs/doc_benchmark.md b/docs/doc_benchmark.md index 082b14632..908e7e487 100644 --- a/docs/doc_benchmark.md +++ b/docs/doc_benchmark.md @@ -36,11 +36,11 @@ example. ## Running a benchmark For the execution of a benchmark we provide two scripts in our repository: -- local version for running the benchmark on a standalone machine: +- running the benchmark on a standalone machine (computation node): [run_benchmark_standalone.sh](https://github.com/marrlab/DomainLab/blob/master/run_benchmark_standalone.sh) -- cluster version for running the benchmark on a slurm cluster: [run_benchmark_slurm.sh](https://github.com/marrlab/DomainLab/blob/master/run_benchmark_slurm.sh) +- launching the benchmark on the login node of a slurm cluster (benchmark will be dispatched to computation node via DomainLab scripts): [run_benchmark_slurm.sh](https://github.com/marrlab/DomainLab/blob/master/run_benchmark_slurm.sh) -### Benchmark on a standalone machine (with or without GPU) +### Benchmark on a standalone machine/computation node (with or without GPU) To run the benchmark with a specific configuration on a standalone machine, inside the DomainLab folder, one can execute (we assume you have a machine with 4 cores or more) ```shell @@ -74,10 +74,10 @@ hyperparameter sampling and pytorch. The following script will help to find out which job has failed and the error message, so that you could direct to the specific log file ```cluster -bash ./sh_list_error.sh ./zoutput/slurm_logs +bash ./sh_list_error.sh ./zoutput/benchmarks/[output folder of the sepcifed benchmark in the yaml file]/slurm_logs ``` #### Map between slurm job id and sampled hyperparameter index -suppose the slurm job id is 14144163, one could the corresponding log file in `./zoutput/slurm_logs` folder via +suppose the slurm job id is 14144163, one could the corresponding log file in `./zoutput/[output folder of the sepcifed benchmark in the yaml file]/slurm_logs` folder via `find . | grep -i "14144163"` the results can be @@ -98,6 +98,7 @@ via `tree -L 2` in `zoutput/benchmarks/[name of the benchmark defined in configu ``` ├── commit.txt ├── config.txt +├── [slurm_logs/] ├── graphics │   ├── diva_fbopt_full │   ├── radar_dist.png @@ -138,8 +139,8 @@ the following after cd into the DomainLab directory: ```commandline python main_out.py --agg_partial_bm OUTPUT_DIR ``` -specifying the benchmark output directory containing the partially completed benchmark, -e.g. `./zoutput/benchmarks/demo_benchmark`, where `demo_benchmark` is a name defined in the yaml file. +where `OUTPUT_DIR` specifying the benchmark output directory containing the partially completed benchmark, +e.g. `./zoutput/benchmarks/demo_benchmark`, where `demo_benchmark` is a name defined in the benchmark yaml file. Alternatively, one could use ```examples @@ -155,16 +156,15 @@ Here for, the user must cd into the DomainLab directory and run ```commandline python main_out.py --gen_plots CSV_FILE --outp_dir OUTPUT_DIR ``` +where `CSV_FILE` specifies the path of the csv file of the aggregated results (e.g. `./zoutput/benchmarks/demo_benchmark/results.csv`) +and `OUTPUT_DIR` specifies the output directory of the partially completed benchmark (e.g. `./zoutput/benchmarks/demo_benchmark`). +Note that the cvs file must have the same form as the one generated by the fully executed benchmark, e.g. -specifying the path of the csv file of the aggregated results (e.g. `./zoutput/benchmarks/demo_benchmark/results.csv`) -and the output directory of the partially completed benchmark (e.g. `./zoutput/benchmarks/demo_benchmark`). -Note that the cvs file must have the same form as the one generated by the fully executed benchmark, i.e. - -| param_index | task | algo | epos | te_d | seed | params | acc | precision | recall | specificity | f1 | auroc | +| param_index | method | algo | epos | te_d | seed | params | acc | precision | recall | specificity | f1 | auroc | |---|---|---|---|---|---|---|---|---|---|---|---|---| | 0 | ... | ... | ... | ... | ... | {'param1': p1, ...} | ... | ... | ... | ... | ... | ... | | 1 | ... | ... | ... | ... | ... | {'param1': p2, ...} | ... | ... | ... | ... | ... | ... | diff --git a/docs/doc_coral.md b/docs/doc_coral.md new file mode 100644 index 000000000..a79be02b7 --- /dev/null +++ b/docs/doc_coral.md @@ -0,0 +1,12 @@ +# Deep CORAL +## Deep CORAL: Correlation Alignment for Deep Domain Adaptation + +nonlinear transformation that aligns correlations of +layer activations in deep neural network +https://arxiv.org/pdf/1607.01719 + +## Examples + +``` +python main_out.py --te_d 0 --tr_d 3 7 --bs=32 --epos=1 --task=mnistcolor10 --model=erm --nname=conv_bn_pool_2 --trainer=coral +``` diff --git a/docs/doc_custom_nn.md b/docs/doc_custom_nn.md index 4a91b8b64..fab279c6d 100644 --- a/docs/doc_custom_nn.md +++ b/docs/doc_custom_nn.md @@ -23,3 +23,23 @@ python main_out.py --te_d=caltech --task=mini_vlcs --debug --bs=2 --model=erm -- ```shell python main_out.py --te_d=caltech --task=mini_vlcs --debug --bs=2 --model=erm --trainer=matchdg --epochs_ctr=3 --epos=6 --npath=examples/nets/resnet.py ``` + + +### model erm with custom neural network +```shell +python main_out.py --te_d=caltech --task=mini_vlcs --debug --bs=8 --model=erm --npath=examples/nets/resnet.py +``` + +## Larger images: + +### model erm with implemented neural network +```shell +python main_out.py --te_d=caltech --task=mini_vlcs --debug --bs=8 --model=erm --nname=alexnet +``` + +### model dann with implemented neural network +```shell +python main_out.py --te_d=caltech --task=mini_vlcs --debug --bs=8 --model=dann --nname=alexnet +``` + + diff --git a/docs/doc_diva.md b/docs/doc_diva.md index b083e7fca..741e2fef1 100644 --- a/docs/doc_diva.md +++ b/docs/doc_diva.md @@ -40,5 +40,35 @@ Furthermore, the user can specify the neural networks for the class and domain c - `nname`/`npath` - `nname_dom`/`npath_dom` + +## Examples +### model diva with implemented neural network +```shell +python main_out.py --te_d=caltech --task=mini_vlcs --debug --bs=2 --model=diva --nname=alexnet --npath_dom=examples/nets/resnet.py --gamma_y=7e5 --gamma_d=1e5 +``` + +### model diva with custom neural network +```shell +python main_out.py --te_d=caltech --task=mini_vlcs --debug --bs=2 --model=diva --npath=examples/nets/resnet.py --npath_dom=examples/nets/resnet.py --gamma_y=7e5 --gamma_d=1e5 +``` +### generation of images +```shell +python main_out.py --te_d=0 --task=mnistcolor10 --keep_model --model=diva --nname=conv_bn_pool_2 --nname_dom=conv_bn_pool_2 --gamma_y=10e5 --gamma_d=1e5 --gen +``` +## Colored version of MNIST + +### leave one domain out +```shell +python main_out.py --te_d=0 --task=mnistcolor10 --keep_model --model=diva --nname=conv_bn_pool_2 --nname_dom=conv_bn_pool_2 --gamma_y=10e5 --gamma_d=1e5 +``` + +### choose train and test +```shell +python main_out.py --te_d 0 1 2 --tr_d 3 7 --task=mnistcolor10 --model=diva --nname=conv_bn_pool_2 --nname_dom=conv_bn_pool_2 --gamma_y=7e5 --gamma_d=1e5 +``` + + + + _Reference:_ DIVA: Domain Invariant Variational Autoencoders, https://arxiv.org/pdf/1905.10427.pdf, Medical Imaging with Deep Learning. PMLR, 2020. diff --git a/docs/doc_examples.md b/docs/doc_examples.md deleted file mode 100755 index 21d0b2eb2..000000000 --- a/docs/doc_examples.md +++ /dev/null @@ -1,179 +0,0 @@ -# Command line examples - -## Colored version of MNIST - -### leave one domain out -```shell -python main_out.py --te_d=0 --task=mnistcolor10 --keep_model --model=diva --nname=conv_bn_pool_2 --nname_dom=conv_bn_pool_2 --gamma_y=10e5 --gamma_d=1e5 -``` - -### choose train and test -```shell -python main_out.py --te_d 0 1 2 --tr_d 3 7 --task=mnistcolor10 --model=diva --nname=conv_bn_pool_2 --nname_dom=conv_bn_pool_2 --gamma_y=7e5 --gamma_d=1e5 -``` - -### make a sanity check for the dataset using 8 instances from each domain and from each class -```shell -python main_out.py --te_d=0 --task=mini_vlcs --debug --bs=2 --model=diva --nname=alexnet --npath_dom=examples/nets/resnet.py --gamma_y=7e5 --gamma_d=1e5 --san_check --san_num=4 -``` -### sanity check on only 2 train domains and 2 test domain2 -```shell -python main_out.py --te_d 0 1 --tr_d 3 5 --task=mnistcolor10 --debug --bs=2 --model=erm --nname=conv_bn_pool_2 --san_check --san_num=4 -``` - -### generation of images -```shell -python main_out.py --te_d=0 --task=mnistcolor10 --keep_model --model=diva --nname=conv_bn_pool_2 --nname_dom=conv_bn_pool_2 --gamma_y=10e5 --gamma_d=1e5 --gen -``` - -### use hduva on color mnist, train on 2 domains -```shell -python main_out.py --tr_d 0 1 2 --te_d 3 --bs=2 --task=mnistcolor10 --model=hduva --nname=conv_bn_pool_2 --gamma_y=7e5 --nname_encoder_x2topic_h=conv_bn_pool_2 --nname_encoder_sandwich_x2h4zd=conv_bn_pool_2 -``` - -### hduva is domain-unsupervised, so it works also with a single domain -```shell -python main_out.py --tr_d 0 --te_d 3 4 --bs=2 --task=mnistcolor10 --model=hduva --nname=conv_bn_pool_2 --gamma_y=7e5 --nname_encoder_x2topic_h=conv_bn_pool_2 --nname_encoder_sandwich_x2h4zd=conv_bn_pool_2 -``` - - -## Larger images: - -### model diva with implemented neural network -```shell -python main_out.py --te_d=caltech --task=mini_vlcs --debug --bs=2 --model=diva --nname=alexnet --npath_dom=examples/nets/resnet.py --gamma_y=7e5 --gamma_d=1e5 -``` - -### model diva with custom neural network -```shell -python main_out.py --te_d=caltech --task=mini_vlcs --debug --bs=2 --model=diva --npath=examples/nets/resnet.py --npath_dom=examples/nets/resnet.py --gamma_y=7e5 --gamma_d=1e5 -``` - -### model erm with implemented neural network -```shell -python main_out.py --te_d=caltech --task=mini_vlcs --debug --bs=8 --model=erm --nname=alexnet -``` - -### model dann with implemented neural network -```shell -python main_out.py --te_d=caltech --task=mini_vlcs --debug --bs=8 --model=dann --nname=alexnet -``` - -### model jigen with implemented neural network -```shell -python main_out.py --te_d=caltech --task=mini_vlcs --debug --bs=8 --model=jigen --nname=alexnet --pperm=1 --nperm=100 --grid_len=3 -``` - - -### sannity check with jigen tile shuffling -```shell -python main_out.py --te_d=sketch --tpath=examples/tasks/demo_task_path_list_small.py --debug --bs=8 --model=jigen --nname=alexnet --pperm=1 --nperm=100 --grid_len=3 --san_check -``` - -### training implemented neural network with matchdg -```shell -python main_out.py --te_d=caltech --task=mini_vlcs --debug --bs=2 --model=erm --trainer=matchdg --epochs_ctr=3 --epos=6 --nname=alexnet -``` - -### trainer matchdg with mnist -```shell - python main_out.py --te_d 0 1 2 --tr_d 3 7 --task=mnistcolor10 --model=erm --trainer=matchdg --nname=conv_bn_pool_2 --epochs_ctr=2 --epos=6 -``` - -### hduva with implemented neural network -```shell -python main_out.py --te_d=caltech --bs=2 --task=mini_vlcs --model=hduva --nname=conv_bn_pool_2 --gamma_y=7e5 --nname_encoder_x2topic_h=conv_bn_pool_2 --nname_encoder_sandwich_x2h4zd=conv_bn_pool_2 -``` - -### hduva use alex net -```shell -python main_out.py --te_d=caltech --bs=2 --task=mini_vlcs --model=hduva --nname=conv_bn_pool_2 --gamma_y=7e5 --nname_encoder_x2topic_h=conv_bn_pool_2 --nname_encoder_sandwich_x2h4zd=alexnet -``` - - -## Custom Neural Network - -### model erm with custom neural network -```shell -python main_out.py --te_d=caltech --task=mini_vlcs --debug --bs=8 --model=erm --npath=examples/nets/resnet.py -``` - -### trainer matchdg with custom neural network -```shell -python main_out.py --te_d=caltech --task=mini_vlcs --bs=2 --model=erm --trainer=matchdg --epochs_ctr=3 --epos=6 --npath=examples/nets/resnet.py -``` - - -### training hduva with matchdg - -```shell -python main_out.py --te_d 0 1 2 --tr_d 3 7 --task=mnistcolor10 --bs=2 --model=hduva --trainer=matchdg --epochs_ctr=3 --epos=6 --nname=conv_bn_pool_2 --gamma_y=7e5 --nname_encoder_x2topic_h=conv_bn_pool_2 --nname_encoder_sandwich_x2h4zd=conv_bn_pool_2 -``` - -### hduva use custom net for sandwich encoder -```shell -python main_out.py --te_d=caltech --bs=2 --task=mini_vlcs --model=hduva --nname=conv_bn_pool_2 --gamma_y=7e5 --nname_encoder_x2topic_h=conv_bn_pool_2 --npath_encoder_sandwich_x2h4zd=examples/nets/resnet.py -``` - -### hduva use custom net for topic encoder -```shell -python main_out.py --te_d=caltech --bs=2 --task=mini_vlcs --model=hduva --nname=conv_bn_pool_2 --gamma_y=7e5 --npath_encoder_x2topic_h=examples/nets/resnet.py --nname_encoder_sandwich_x2h4zd=conv_bn_pool_2 -``` - -### hduva use custom net for classification encoder -```shell -python main_out.py --te_d=caltech --bs=2 --task=mini_vlcs --model=hduva --npath=examples/nets/resnet.py --gamma_y=7e5 --nname_encoder_x2topic_h=conv_bn_pool_2 --nname_encoder_sandwich_x2h4zd=conv_bn_pool_2 -``` - - -## User defined tasks - -### Folder Task -#### Folder Task with implemented neural network -```shell -python main_out.py --te_d=caltech --tpath=examples/tasks/task_vlcs.py --debug --bs=2 --nname=alexnet --model=diva --nname_dom=alexnet --gamma_y=7e5 --gamma_d=1e5 -``` - -#### Folder Task with externally user defined neural network -```shell -python main_out.py --te_d=caltech --tpath=examples/tasks/task_vlcs.py --debug --bs=2 --npath=examples/nets/resnet.py --model=diva --npath_dom=examples/nets/resnet.py --gamma_y=7e5 --gamma_d=1e5 -``` - -### ImagePath Task -#### ImagePath Task with implemented algorithm -```shell -python main_out.py --te_d=sketch --tpath=examples/tasks/demo_task_path_list_small.py --debug --bs=2 --nname=alexnet --model=diva --nname_dom=alexnet --gamma_y=7e5 --gamma_d=1e5 -``` - -#### ImagePath Task with externally user defined neural network -```shell -python main_out.py --te_d=sketch --tpath=examples/tasks/demo_task_path_list_small.py --debug --bs=2 --npath=examples/nets/resnet.py --model=diva --npath_dom=examples/nets/resnet.py --gamma_y=7e5 --gamma_d=1e5 -``` - -## Custom algorithm defined in external python file -```shell -python main_out.py --te_d=caltech --task=mini_vlcs --debug --bs=3 --apath=examples/models/demo_custom_model.py --model=custom --nname_argna2val my_custom_arg_name --nname_argna2val alexnet -``` - -```shell -python main_out.py --te_d=caltech --task=mini_vlcs --debug --bs=3 --apath=examples/models/demo_custom_model.py --model=custom --npath_argna2val my_custom_arg_name --npath_argna2val examples/nets/resnet.py -``` - -## Adversarial images training -```shell -python main_out.py --te_d=0 --task=mnistcolor10 --keep_model --model=erm --trainer=dial --nname=conv_bn_pool_2 -``` -### Train DIVA model with DIAL trainer - -```shell -python main_out.py --te_d 0 1 2 --tr_d 3 7 --task=mnistcolor10 --model=diva --nname=conv_bn_pool_2 --nname_dom=conv_bn_pool_2 --gamma_y=7e5 --gamma_d=1e5 --trainer=dial -``` -### Set hyper-parameters for trainer as well -```shell -python main_out.py --te_d 0 1 2 --tr_d 3 7 --task=mnistcolor10 --model=diva --nname=conv_bn_pool_2 --nname_dom=conv_bn_pool_2 --gamma_y=7e5 --gamma_d=1e5 --trainer=dial --dial_steps_perturb=1 -``` - -## Meta Learning Domain Generalization -```shell -python main_out.py --te_d=caltech --task=mini_vlcs --debug --bs=8 --model=erm --trainer=mldg --nname=alexnet -``` diff --git a/docs/doc_irl.md b/docs/doc_irl.md new file mode 100644 index 000000000..46a907314 --- /dev/null +++ b/docs/doc_irl.md @@ -0,0 +1,10 @@ +# Causal IRL +## Invariant Causal Mechanisms through Distribution Matching + +Source: https://arxiv.org/pdf/2206.11646 + +## Example + +``` +python main_out.py --te_d 0 --tr_d 3 7 --bs=32 --debug --task=mnistcolor10 --model=erm --nname=conv_bn_pool_2 --trainer=causalirl" +``` diff --git a/docs/doc_mldg.md b/docs/doc_mldg.md index 694f4b3d8..92e412180 100644 --- a/docs/doc_mldg.md +++ b/docs/doc_mldg.md @@ -2,3 +2,9 @@ ## Meta Learning Domain Generalization Li, Da, et al. "Learning to generalize: Meta-learning for domain generalization." Proceedings of the AAAI conference on artificial intelligence. Vol. 32. No. 1. 2018. + + +## Examples +```shell +python main_out.py --te_d=caltech --task=mini_vlcs --debug --bs=8 --model=erm --trainer=mldg --nname=alexnet +``` diff --git a/docs/doc_model.md b/docs/doc_model.md new file mode 100644 index 000000000..bf83c0239 --- /dev/null +++ b/docs/doc_model.md @@ -0,0 +1,29 @@ +# Model Specification + +Domainlab is built to easily extend to other models. There exist two options. One is to implement a new model from scratch and add it to the existing models; the other is to extend the custom model abstract class. This guide outlines the necessary steps to add a new model to the domain generalization framework for both approaches mentioned above. + +## Option 1: Extend the Custom Model Class +Create a new model by extending `AModelCustom`. + + +Because `AModelCustom` extends `AModelClassif`, the only function a custom model needs to extend is `dict_net_module_na2arg_na`, which returns a dictionary with the key being the Pytorch module name and value being the command-line argument name. In addition, it is necessary to specify a function called `get_node_na` in the same Python file, which returns the custom algorithm builder as shown [here](../examples/models/demo_custom_model.py). + +To run the custom model, follow the examples [here](./doc_examples.md) under 'Custom algorithm defined in external python file'. It also shows an example of using additional command line arguments. + + +## Option 2: Add alongside existing models +If the repository is cloned and it is possible to add files to the source code, one can extend one of the other base classes: `AModel` or `AModelClassif`. + +### Step 1: Implement Required Abstract Methods +Implement all abstract methods from the base class. For `AModel`, it is required to implement the following methods: + +`cal_task_loss(self, tensor_x, tensor_y)`: Computes the loss for the primary task, which for classification could be cross-entropy.
+`_cal_reg_loss(self, tensor_x, tensor_y, tensor_d, others=None)`: Calculates the task independent regularization loss. + +### Step 2: Add Additional Arguments +If additional arguments for the model are needed, it is possible to specify a Python file with functionality for the argument parsing, as done [here](../domainlab/models/args_vae.py). The specified function needs to be applied in the [arg_parser.py](../domainlab/arg_parser.py) in the domainlab root directory in order to add the parameters to the argument dictionary. + +### Step 3: Create a Builder +After specifying the model and retrieving the correct parameters, we can create functionality to create the model. To do so, we need to create a NodeAlgoBuilder. For that, we create a class that inherits from `NodeAlgoBuilder` and extend the `init_business(exp)` method. We must create the trainer, model, observer, and device in this method. See [here](../domainlab/algos/builder_dann.py) for an example. + +After that, we can add the builder into the chain that creates all specified models [here](../domainlab/algos/zoo_algos.py). \ No newline at end of file diff --git a/docs/doc_tasks.md b/docs/doc_tasks.md index 3d3f0d73d..d469ab491 100644 --- a/docs/doc_tasks.md +++ b/docs/doc_tasks.md @@ -17,7 +17,7 @@ here in the example, 3 domains are defined to be named "domain1", "domain2", "do ## Possibility 2: TaskPathList The user need to provide a python file indicating the root directories where images (data) from each domain are located, and for each domain, the user shall provide a plain text file indicating the file names. -An example python file can be found in the [examples directory of the repository](https://github.com/marrlab/DomainLab/blob/master/examples/tasks/demo_task_path_list_small.py) with the corresponding data be found at [the data directory of the repository](https://github.com/marrlab/DomainLab/tree/master/data), where the text file indicating which file correspond to which class label (starting from 1) can be found at [example text file](https://github.com/marrlab/DomainLab/blob/master/data/pacs_split/art_painting_10.txt). +An example python file can be found in the [examples directory of the repository](https://github.com/marrlab/DomainLab/blob/master/examples/tasks/demo_task_path_list_small.py) with the corresponding data be found at [the data directory of the repository](https://github.com/marrlab/DomainLab/tree/master/domainlab/zdata), where the text file indicating which file correspond to which class label (starting from 1) can be found at [example text file](https://github.com/marrlab/DomainLab/blob/master/domainlab/zdata/pacs_split/art_painting_10.txt). The user should specify the location of the python file via command line arguments `--tpath` ```shell @@ -32,10 +32,16 @@ To give an example, suppose we have a classification task to classify between ca In each folder, the images are organized in sub-folders by their class. For example, "/path/to/3rd_domain/folder_c/dog" folder contains all the images of class "dog" from the 3rd domain. -It might be the case that across the different data sources the same class is named differently. For example, in the 1st data source, the class dog is stored in sub-folder named -"hund", in the 2nd data source, the dog is stored in sub-folder named "husky" and in the 3rd data source, the dog is stored in sub-folder named "dog". +It might be the case that the same classes are named differently across the different data sources. For example, in the 1st data source, the class dog is stored in a sub-folder named "hund", in the 2nd data source, the dog is stored in a sub-folder named "husky", and in the 3rd data source, the dog is stored in a sub-folder called "dog". -It might also be the case that some classes exist in one data source but does not exist in another data source. For example, folder "/path/to/2nd_domain/folder_b" does not have a sub-folder for class "human". +In that case, we can use `dict_domain_folder_name2class` to map the corresponding subfolders to the correct domain. The `dict_domain_folder_name2class` parameter is a dictionary where: + +- Key: The name of a subfolder in a specific domain. +- Value: The corresponding user-defined class name. + +This is also shown in the example below, where the dictionary maps the different subfolder names to 'car' and 'chair', which are the user defined classes. A more complex example of such a mapping can be found [here](../examples/tasks/task_blood3.py). + +It might also be the case that some classes exist in one data source but do not exist in another data source. For example, folder "/path/to/2nd_domain/folder_b" does not have a sub-folder for the class "human". In that case, we don't add the entry into the `dict_domain_folder_name2class` mapping. Folder structure of the 1st domain: ```text @@ -125,28 +131,75 @@ from domainlab.tasks import mk_task_folder print(mk_task_folder.__doc__) ``` -extensions: a python dictionary with key as the domain name +`extensions`: a python dictionary with key as the domain name and value as the file extensions of the image. -list_str_y: a python list with user defined class names where +`list_str_y`: a python list with user defined class names where the order of the list matters. -dict_domain_folder_name2class: a python dictionary, with key +`dict_domain_folder_name2class`: a python dictionary, with key as the user specified domain name, value as a dictionary to map the sub-folder name of each domain's class folder into the user defined common class name. -dict_domain_img_trans: a python dictionary with keys as the user +`dict_domain_img_trans`: a python dictionary with keys as the user specified domain name, value as a user defined torchvision transform. This feature allows carrying out different transformation (composition) to different domains at training time. -img_trans_te: at test or inference time, we do not have knowledge +`img_trans_te`: at test or inference time, we do not have knowledge of domain information so only a unique transform (composition) is allowed. -isize: domainlab.tasks.ImSize(image channel, image height, image width) +`isize`: domainlab.tasks.ImSize(image channel, image height, image width) -dict_domain2imgroot: a python dictionary with keys as user specified domain names and values +`dict_domain2imgroot`: a python dictionary with keys as user specified domain names and values as the absolute path to each domain's data. -taskna: user defined task name +`taskna`: user defined task name + + + +## Examples + +## User defined tasks + +### Folder Task +#### Folder Task with implemented neural network +```shell +python main_out.py --te_d=caltech --tpath=examples/tasks/task_vlcs.py --debug --bs=2 --nname=alexnet --model=diva --nname_dom=alexnet --gamma_y=7e5 --gamma_d=1e5 +``` + +#### Folder Task with externally user defined neural network +```shell +python main_out.py --te_d=caltech --tpath=examples/tasks/task_vlcs.py --debug --bs=2 --npath=examples/nets/resnet.py --model=diva --npath_dom=examples/nets/resnet.py --gamma_y=7e5 --gamma_d=1e5 +``` + +### ImagePath Task +#### ImagePath Task with implemented algorithm +```shell +python main_out.py --te_d=sketch --tpath=examples/tasks/demo_task_path_list_small.py --debug --bs=2 --nname=alexnet --model=diva --nname_dom=alexnet --gamma_y=7e5 --gamma_d=1e5 +``` + +#### ImagePath Task with externally user defined neural network +```shell +python main_out.py --te_d=sketch --tpath=examples/tasks/demo_task_path_list_small.py --debug --bs=2 --npath=examples/nets/resnet.py --model=diva --npath_dom=examples/nets/resnet.py --gamma_y=7e5 --gamma_d=1e5 +``` + +## Custom algorithm defined in external python file +```shell +python main_out.py --te_d=caltech --task=mini_vlcs --debug --bs=3 --apath=examples/models/demo_custom_model.py --model=custom --nname_argna2val my_custom_arg_name --nname_argna2val alexnet +``` + +```shell +python main_out.py --te_d=caltech --task=mini_vlcs --debug --bs=3 --apath=examples/models/demo_custom_model.py --model=custom --npath_argna2val my_custom_arg_name --npath_argna2val examples/nets/resnet.py +``` + + +### make a sanity check for the dataset using 8 instances from each domain and from each class +```shell +python main_out.py --te_d=0 --task=mini_vlcs --debug --bs=2 --model=diva --nname=alexnet --npath_dom=examples/nets/resnet.py --gamma_y=7e5 --gamma_d=1e5 --san_check --san_num=4 +``` +### sanity check on only 2 train domains and 2 test domain2 +```shell +python main_out.py --te_d 0 1 --tr_d 3 5 --task=mnistcolor10 --debug --bs=2 --model=erm --nname=conv_bn_pool_2 --san_check --san_num=4 +``` diff --git a/docs/doc_trainer.md b/docs/doc_trainer.md new file mode 100644 index 000000000..757694af4 --- /dev/null +++ b/docs/doc_trainer.md @@ -0,0 +1,44 @@ +# Model Specification + +When developing new trainers, you can extend the `TrainerBasic` class. This allows you to build upon established training routines while introducing specialized behaviors tailored to your model. + +### Steps to Extend `TrainerBasic` + +1. **Extend the class**: Begin by inheriting from [`TrainerBasic`](../domainlab/algos/trainers/train_basic.py). + +2. **Customize Key Methods**: You have several methods that you can override to customize the trainer's behavior. Here's a brief overview of what they do: + + - **`before_tr(self)`**: Set up necessary configurations or states before training begins. Useful for initial logging or setting model to train mode. + + - **`tr_epoch(self, epoch)`**: Define the training logic for each epoch. This is where the bulk of your model's training will be implemented. + + - **`before_epoch(self)`**: Prepare anything specific at the start of each epoch, like resetting counters or updating learning rate schedules. + + - **`after_epoch(self, epoch)`**: Typically used for logging and validation checks after each epoch. + + - **`tr_batch(self, tensor_x, tensor_y, tensor_d, others, ind_batch, epoch)`**: Handle the processing of each batch. This includes forward and backward propagation. + + - **`before_batch(self, epoch, ind_batch)`** and **`after_batch(self, epoch, ind_batch)`**: Perform actions right before and after processing a batch, respectively. Useful for implementing behaviors like batch-wise logging or applying gradients. + +3. **Register Your Trainer**: Make sure the framework can utilize the new trainer. For that, it is necessary to register it in the [zoo_trainers.py](../domainlab/algos/trainers/zoo_trainer.py). + +### Example Implementation + +Here is a simple example of a custom trainer that logs additional details at the start of each training: + +```python +class MyCustomTrainer(TrainerBasic): + def before_tr(self): + super().before_tr() # Ensure to call the base method if needed + print("Starting training session.") + + def tr_epoch(self, epoch): + # Custom training logic for each epoch + for ind_batch, data in enumerate(self.loader_tr): + self.tr_batch(data, ind_batch, epoch) + print(f"Completed epoch {epoch}") + + def tr_batch(self, data, ind_batch, epoch): + # Process each batch + super().tr_batch(data, ind_batch, epoch) # Optionally call the base method + print(f"Batch {ind_batch} of epoch {epoch} processed.") diff --git a/docs/doc_usage_cmd.md b/docs/doc_usage_cmd.md index b6320328b..6ee916f06 100644 --- a/docs/doc_usage_cmd.md +++ b/docs/doc_usage_cmd.md @@ -1,17 +1,130 @@ -### Basic usage -DomainLab comes with some minimal toy-dataset to test its basis functionality, see [A minimal subsample of the VLCS dataset](../data/vlcs_mini) and [an example configuration file for vlcs_mini](../examples/tasks/task_vlcs.py) +# DomainLab Usage Guide -Suppose you have cloned the repository and have the dependencies ready, change directory to this repository: +Given the repository and the dependencies are set up, here is how can use DomainLab: -To train a domain invariant model on the vlcs_mini task + +## Essential Commands + +To run DomainLab, the minimum necessary parameters are: + +1. **Task Specification (```--tpath``` or ```--task```):** This is to specify a task. You can eiter give a path to as Python file which specifies the task, or use a predfined set. You can find more about specifying tasks [here](./doc_tasks.md). +2. **Test Domain (```--te_d```):** Specifies the domain(s) used for testing. Can be a single domain or multiple domains. +3. **Model Choice (```--model```):** Chooses the algorithm or model for the training (e.g., erm, diva). This also includes hyperparameters for the model, e.g., ```--gamma_d``` and ```--gamma_y``` for diva. +4. **Neural Network (```--nname``` or ```--npath```):** Specifies which neural network is used for feature extraction, either through a path or predefined options. + +### Example Command +```python3 main_out.py --te_d 0 1 2 --task=mnistcolor10 --model=diva --nname=conv_bn_pool_2 --gamma_y=7e5 --gamma_d=1e5``` + + +## Optional Commands + +### Advanced Configuration + +- **Learning Rate (`--lr`):** Set the training learning rate. +- **Regularization (`--gamma_reg`):** Sets the weight of the regularization + loss. This parameter can be configured either as + a single value applied to individual classes, + or using a dictionary to specify different + weights for different models and trainers. + + - **Command Line Usage:** + - For a single value: `python script.py --gamma_reg=0.1` + - For multiple values: `python script.py --gamma_reg='default=0.1,dann=0.05,jigen=0.2'` + + - **YAML Configuration:** + - For a single value: + + ```yaml + gamma_reg: 0.1 + ``` + + - For different values: + + ```yaml + gamma_reg: + dann: 0.05 + dial: 0.2 + default: 0.1 # value for every other instance + ``` +Gamma reg is available for the trainers, as well as the +dann and jigen model. + +- **Early Stopping (`--es`):** Steps for early stopping. +- **Random Seed (`--seed`):** Seed for reproducibility. +- **CUDA Options (`--nocu`, `--device`):** Configure CUDA usage and device settings. +- **Generated Images (`--gen`):** Option to save generated images. +- **Model Preservation (`--keep_model`):** Choose not to delete the model at the end of training. +- **Epochs (`--epos`, `--epos_min`):** Configure maximum and minimum numbers of epochs. +- **Test Interval (`--epo_te`):** Set intervals for testing performance. +- **Hyperparameter Warm-Up (`-w` or `--warmup`):** Epochs for hyperparameter warm-up. +- **Debugging (`--debug`):** Enable debug mode for verbose output. +- **Memory Debugging (`--dmem`):** Memory usage debugging. +- **Output Suppression (`--no_dump`):** Suppress saving the confusion matrix. +- **Trainer Selection (`--trainer`):** Specify which trainer to use. +- **Output Directory (`--out`):** Directory to store outputs. +- **Data Path (`--dpath`):** Path for storing the downloaded dataset. +- **Additional Neural Network Options:** + - Custom Argument Values (`--npath_argna2val`, `--nname_argna2val`) + - Domain Feature Extraction Network (`--npath_dom`, `--nname_dom`) + - Custom Algorithm Path (`--apath`) +- **Experiment and Aggregation Tags (`--exptag`, `--aggtag`):** Tags for experiment tracking and result aggregation. +- **Benchmarking and Plotting:** + - Partial Benchmark Aggregation (`--agg_partial_bm`) + - Plot Generation (`--gen_plots`, `--outp_dir`, `--param_idx`) + +### Task-Specific Arguments + +- **Batch Size (`--bs`):** Loader batch size for mixed domains. +- **Training-Validation Split (`--split`):** Proportion of training, a value between 0 and 1. +- **Training Domain (`--tr_d`):** Specify training domain names. +- **Sanity Check (`--san_check`):** Save images from the dataset as a sanity check. +- **Sanity Check Image Count (`--san_num`):** Number of images for the sanity check. +- **Logging Level (`--loglevel`):** Set the log level of the logger. +- **Shuffling (`--shuffling_off`):** Disable shuffling of the training dataloader for the dataset. + +### Model-Specific Hyperparameters + +#### VAE Model Parameters + +- **Latent Space Dimensions (`--zd_dim`, `--zx_dim`, `--zy_dim`):** Set the size of latent spaces for domain, unobserved, and class features. +- **Topic Dimension (`--topic_dim`):** Number of topics for HDUVA. +- **Networks for HDUVA Model:** + - Image to Topic Distribution (`--nname_encoder_x2topic_h`, `--npath_encoder_x2topic_h`) + - Image and Topic to ZD (`--nname_encoder_sandwich_x2h4zd`, `--npath_encoder_sandwich_x2h4zd`) +- **Hyperparameters for DIVA and HDUVA (`--gamma_y`, `--gamma_d`, `--beta_t`, `--beta_d`, `--beta_x`, `--beta_y`):** Multipliers for various classifiers and loss components. + +#### MatchDG Parameters + +- **Cosine Similarity Factor (`--tau`):** Magnify cosine similarity. +- **Match Tensor Update Frequency (`--epos_per_match_update`):** Epochs before updating the match tensor. +- **Epochs for CTR (`--epochs_ctr`):** Total epochs for CTR. + +#### Jigen Parameters + +- **Permutation Settings (`--nperm`, `--pperm`, `--jigen_ppath`):** Configure image tile permutations. +- **Grid Length (`--grid_len`):** Length of image in tile units. + +#### DIAL Parameters + +- **Adversarial Image Generation (`--dial_steps_perturb`, `--dial_noise_scale`, `--dial_lr`, `--dial_epsilon`):** Configure parameters for generating adversarial images. + + +For a comprehensive understanding of all available commands, use: +```shell +python main_out.py --help +``` + +## Example +DomainLab comes with some minimal toy-dataset to test its basis functionality, see [a minimal subsample of the VLCS dataset](./zdata/vlcs_mini) and [an example configuration file for vlcs_mini](../examples/tasks/task_vlcs.py). + +To train a domain invariant model on the vlcs_mini task: ```shell python main_out.py --te_d=caltech --tpath=examples/tasks/task_vlcs.py --config=examples/yaml/demo_config_single_run_diva.yaml ``` where `--tpath` specifies the path of a user specified python file which defines the domain generalization task [see here](../examples/tasks/task_vlcs.py), `--te_d` specifies the test domain name (or index starting from 0), `--config` specifies the configurations of the domain generalization algorithms, [see here](../examples/yaml/demo_config_single_run_diva.yaml) -#### Further usage -Alternatively, in a verbose mode without using the algorithm configuration file: +In more detail, in a verbose mode without using the algorithm configuration file: ```shell python main_out.py --te_d=caltech --tpath=examples/tasks/task_vlcs.py --debug --bs=2 --model=diva --gamma_y=7e5 --gamma_d=1e5 --nname=alexnet --nname_dom=conv_bn_pool_2 @@ -19,22 +132,11 @@ python main_out.py --te_d=caltech --tpath=examples/tasks/task_vlcs.py --debug -- where `--model` specifies which algorithm to use, `--bs` specifies the batch size, `--debug` restrain only running for 2 epochs and save results with prefix 'debug'. For DIVA, the hyper-parameters include `--gamma_y=7e5` which is the relative weight of ERM loss compared to ELBO loss, and `--gamma_d=1e5`, which is the relative weight of domain classification loss compared to ELBO loss. `--nname` is to specify which neural network to use for feature extraction for classification, `--nname_dom` is to specify which neural network to use for feature extraction of domains. -For usage of other arguments, check with - -```shell -python main_out.py --help -``` - -See also [Examples](./doc_examples.md). - -### Custom Neural network - -where the user could plugin different neural network architectures for the same algorithm. See -[Specify Custom Neural Networks for an algorithm](./doc_custom_nn.md) -### Output structure (results storage) and Performance Measure -[Output structure and Performance Measure](./doc_output.md) +See [more examples](./doc_examples.md). +## Further Resources -## Software Design Pattern, Extend or Contribution -[Extend or Contibute](./doc_extend_contribute.md) +- **Custom Neural Networks:** [Guide on specifying custom neural networks](./doc_custom_nn.md) +- **Output and Performance:** [Understanding the output structure and performance measures](./doc_output.md) +- **Extending DomainLab:** [Guide for extending or contributing to DomainLab](./doc_extend_contribute.md) diff --git a/docs/index.rst b/docs/index.rst index 96c8c7fe6..d6226f5c9 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,3 +1,4 @@ + .. domainlab documentation master file, created by sphinx-quickstart on Tue Jul 26 16:30:46 2022. You can adapt this file completely to your liking, but it should at least @@ -19,6 +20,10 @@ Welcome to domainlab's documentation! docDIAL docFishr doc_mldg + docIRM + docMA + doc_coral + doc_irl Indices and tables diff --git a/domainlab/algos/builder_api_model.py b/domainlab/algos/builder_api_model.py index 07c087e3b..9bfb66fc2 100644 --- a/domainlab/algos/builder_api_model.py +++ b/domainlab/algos/builder_api_model.py @@ -20,7 +20,7 @@ def init_business(self, exp): """ args = exp.args device = get_device(args) - model_sel = MSelOracleVisitor(MSelValPerf(max_es=args.es)) + model_sel = MSelOracleVisitor(MSelValPerf(max_es=args.es), val_threshold=args.val_threshold) observer = ObVisitor(model_sel) trainer = TrainerChainNodeGetter(args.trainer)(default="hyperscheduler") return trainer, None, observer, device diff --git a/domainlab/algos/builder_custom.py b/domainlab/algos/builder_custom.py index 9c50110b7..166f34018 100644 --- a/domainlab/algos/builder_custom.py +++ b/domainlab/algos/builder_custom.py @@ -104,7 +104,8 @@ def init_business(self, exp): task = exp.task args = exp.args device = get_device(args) - model_sel = MSelOracleVisitor(MSelValPerf(max_es=args.es)) + model_sel = MSelOracleVisitor(MSelValPerf(max_es=args.es), + val_threshold=args.val_threshold) observer = ObVisitor(model_sel) model = class_name_model(net_classifier=None, list_str_y=task.list_str_y) model = self.init_next_model(model, exp) diff --git a/domainlab/algos/builder_dann.py b/domainlab/algos/builder_dann.py index d026a5bb1..73b373c15 100644 --- a/domainlab/algos/builder_dann.py +++ b/domainlab/algos/builder_dann.py @@ -13,6 +13,7 @@ from domainlab.compos.zoo_nn import FeatExtractNNBuilderChainNodeGetter from domainlab.models.model_dann import mk_dann from domainlab.utils.utils_cuda import get_device +from domainlab.utils.hyperparameter_retrieval import get_gamma_reg class NodeAlgoBuilderDANN(NodeAlgoBuilder): @@ -29,7 +30,7 @@ def init_business(self, exp): args = exp.args task.get_list_domains_tr_te(args.tr_d, args.te_d) device = get_device(args) - msel = MSelOracleVisitor(MSelValPerf(max_es=args.es)) + msel = MSelOracleVisitor(MSelValPerf(max_es=args.es), val_threshold=args.val_threshold) observer = ObVisitor(msel) observer = ObVisitorCleanUp(observer) @@ -55,7 +56,7 @@ def init_business(self, exp): model = mk_dann(list_str_y=task.list_str_y, net_classifier=net_classifier)( list_d_tr=task.list_domain_tr, - alpha=args.gamma_reg, + alpha=get_gamma_reg(args, 'dann'), net_encoder=net_encoder, net_discriminator=net_discriminator, builder=self) diff --git a/domainlab/algos/builder_diva.py b/domainlab/algos/builder_diva.py index 34cc3605b..968840d2c 100644 --- a/domainlab/algos/builder_diva.py +++ b/domainlab/algos/builder_diva.py @@ -52,7 +52,7 @@ def init_business(self, exp): ) device = get_device(args) model_sel = MSelSetpointDelay( - MSelOracleVisitor(MSelValPerfTopK(max_es=args.es)) + MSelOracleVisitor(MSelValPerfTopK(max_es=args.es)), val_threshold=args.val_threshold ) if not args.gen: observer = ObVisitor(model_sel) diff --git a/domainlab/algos/builder_erm.py b/domainlab/algos/builder_erm.py index 4e76670c0..1221cb209 100644 --- a/domainlab/algos/builder_erm.py +++ b/domainlab/algos/builder_erm.py @@ -24,7 +24,7 @@ def init_business(self, exp): task = exp.task args = exp.args device = get_device(args) - model_sel = MSelOracleVisitor(MSelValPerf(max_es=args.es)) + model_sel = MSelOracleVisitor(MSelValPerf(max_es=args.es), val_threshold=args.val_threshold) observer = ObVisitor(model_sel) builder = FeatExtractNNBuilderChainNodeGetter( diff --git a/domainlab/algos/builder_hduva.py b/domainlab/algos/builder_hduva.py index 80e4526cb..1a752e47f 100644 --- a/domainlab/algos/builder_hduva.py +++ b/domainlab/algos/builder_hduva.py @@ -43,7 +43,7 @@ def init_business(self, exp): beta_d=args.beta_d, ) model = self.init_next_model(model, exp) - model_sel = MSelOracleVisitor(MSelValPerf(max_es=args.es)) + model_sel = MSelOracleVisitor(MSelValPerf(max_es=args.es), val_threshold=args.val_threshold) observer = ObVisitorCleanUp(ObVisitor(model_sel)) trainer = TrainerChainNodeGetter(args.trainer)(default="hyperscheduler") trainer.init_business(model, task, observer, device, args) diff --git a/domainlab/algos/builder_jigen1.py b/domainlab/algos/builder_jigen1.py index 712d959d4..fb1e78214 100644 --- a/domainlab/algos/builder_jigen1.py +++ b/domainlab/algos/builder_jigen1.py @@ -17,6 +17,7 @@ from domainlab.dsets.utils_wrapdset_patches import WrapDsetPatches from domainlab.models.model_jigen import mk_jigen from domainlab.utils.utils_cuda import get_device +from domainlab.utils.hyperparameter_retrieval import get_gamma_reg class NodeAlgoBuilderJiGen(NodeAlgoBuilder): @@ -31,7 +32,7 @@ def init_business(self, exp): task = exp.task args = exp.args device = get_device(args) - msel = MSelSetpointDelay(MSelOracleVisitor(MSelValPerfTopK(max_es=args.es))) + msel = MSelSetpointDelay(MSelOracleVisitor(MSelValPerfTopK(max_es=args.es)), val_threshold=args.val_threshold) observer = ObVisitor(msel) observer = ObVisitorCleanUp(observer) @@ -58,7 +59,7 @@ def init_business(self, exp): model = mk_jigen( list_str_y=task.list_str_y, net_classifier=net_classifier)( - coeff_reg=args.gamma_reg, + coeff_reg=get_gamma_reg(args, 'jigen'), net_encoder=net_encoder, net_classifier_permutation=net_classifier_perm, n_perm=args.nperm, diff --git a/domainlab/algos/msels/a_model_sel.py b/domainlab/algos/msels/a_model_sel.py index 1cbfffeaa..09b703377 100644 --- a/domainlab/algos/msels/a_model_sel.py +++ b/domainlab/algos/msels/a_model_sel.py @@ -10,14 +10,16 @@ class AMSel(metaclass=abc.ABCMeta): Abstract Model Selection """ - def __init__(self): + def __init__(self, val_threshold = None): """ trainer and tr_observer """ self.trainer = None - self._tr_obs = None + self._observer = None self.msel = None self._max_es = None + self._model_selection_epoch = None + self._val_threshold = val_threshold def reset(self): """ @@ -27,11 +29,11 @@ def reset(self): self.msel.reset() @property - def tr_obs(self): + def observer4msel(self): """ the observer from trainer """ - return self._tr_obs + return self._observer @property def max_es(self): @@ -44,35 +46,55 @@ def max_es(self): return self.msel.max_es return self._max_es - def accept(self, trainer, tr_obs): + def accept(self, trainer, observer4msel): """ Visitor pattern to trainer accept trainer and tr_observer """ self.trainer = trainer - self._tr_obs = tr_obs + self._observer = observer4msel if self.msel is not None: - self.msel.accept(trainer, tr_obs) + self.msel.accept(trainer, observer4msel) + + def update(self, epoch, clear_counter=False): + """ + level above the observer + visitor pattern to get information about the epoch + """ + update = self.base_update(clear_counter) + if update: + self._model_selection_epoch = epoch + + return update @abc.abstractmethod - def update(self, clear_counter=False): + def base_update(self, clear_counter=False): """ observer + visitor pattern to trainer if the best model should be updated return boolean """ - def if_stop(self): + def if_stop(self, acc_val = None): """ - check if trainer should stop + check if trainer should stop and additionally tests for validation threshold return boolean """ # NOTE: since if_stop is not abstract, one has to # be careful to always override it in child class # only if the child class has a decorator which will # dispatched. + if self.msel is not None and acc_val is not None: + if self._val_threshold is not None and acc_val < self._val_threshold: + return False + return self.early_stop() + + def early_stop(self): + """ + check if trainer should stop + return boolean + """ if self.msel is not None: - return self.msel.if_stop() + return self.msel.early_stop() raise NotImplementedError @property @@ -107,3 +129,19 @@ def oracle_last_setpoint_sel_te_acc(self): if self.msel is not None: return self.msel.oracle_last_setpoint_sel_te_acc return -1 + + @property + def model_selection_epoch(self): + """ + the epoch when the model was selected + """ + if self._model_selection_epoch is not None: + return self._model_selection_epoch + return -1 + + @property + def val_threshold(self): + """ + the treshold below which we don't stop early + """ + return self._val_threshold diff --git a/domainlab/algos/msels/c_msel_oracle.py b/domainlab/algos/msels/c_msel_oracle.py index e232b1e78..d61047c75 100644 --- a/domainlab/algos/msels/c_msel_oracle.py +++ b/domainlab/algos/msels/c_msel_oracle.py @@ -11,11 +11,11 @@ class MSelOracleVisitor(AMSel): how the final model is selected """ - def __init__(self, msel=None): + def __init__(self, msel=None, val_threshold = None): """ Decorator pattern """ - super().__init__() + super().__init__(val_threshold) self.best_oracle_acc = 0 self.msel = msel @@ -30,15 +30,15 @@ def oracle_last_setpoint_sel_te_acc(self): return self.msel.oracle_last_setpoint_sel_te_acc return -1 - def update(self, clear_counter=False): + def base_update(self, clear_counter=False): """ if the best model should be updated """ self.trainer.model.save("epoch") flag = False - if self.tr_obs.metric_val is None: - return super().update(clear_counter) - metric = self.tr_obs.metric_te[self.tr_obs.str_metric4msel] + if self.observer4msel.metric_val is None: + return super().base_update(clear_counter) + metric = self.observer4msel.metric_te[self.observer4msel.str_metric4msel] if metric > self.best_oracle_acc: self.best_oracle_acc = metric if self.msel is not None: @@ -49,20 +49,20 @@ def update(self, clear_counter=False): logger.info("new oracle model saved") flag = True if self.msel is not None: - return self.msel.update(clear_counter) + return self.msel.base_update(clear_counter) return flag - def if_stop(self): + def early_stop(self): """ if should early stop oracle model selection does not intervene how models get selected by the innermost model selection """ if self.msel is not None: - return self.msel.if_stop() + return self.msel.early_stop() return False - def accept(self, trainer, tr_obs): + def accept(self, trainer, observer4msel): if self.msel is not None: - self.msel.accept(trainer, tr_obs) - super().accept(trainer, tr_obs) + self.msel.accept(trainer, observer4msel) + super().accept(trainer, observer4msel) diff --git a/domainlab/algos/msels/c_msel_setpoint_delay.py b/domainlab/algos/msels/c_msel_setpoint_delay.py index 8387dbb26..d62983e89 100644 --- a/domainlab/algos/msels/c_msel_setpoint_delay.py +++ b/domainlab/algos/msels/c_msel_setpoint_delay.py @@ -11,8 +11,8 @@ class MSelSetpointDelay(AMSel): selected performance from the decoratee each time the setpoint shrinks """ - def __init__(self, msel): - super().__init__() + def __init__(self, msel, val_threshold = None): + super().__init__(val_threshold) # NOTE: super() has to come first always otherwise self.msel will be overwritten to be None self.msel = msel self._oracle_last_setpoint_sel_te_acc = 0.0 @@ -24,7 +24,7 @@ def oracle_last_setpoint_sel_te_acc(self): """ return self._oracle_last_setpoint_sel_te_acc - def update(self, clear_counter=False): + def base_update(self, clear_counter=False): """ if the best model should be updated currently, clear_counter is set via diff --git a/domainlab/algos/msels/c_msel_tr_loss.py b/domainlab/algos/msels/c_msel_tr_loss.py index 58ca03e21..609550a9a 100644 --- a/domainlab/algos/msels/c_msel_tr_loss.py +++ b/domainlab/algos/msels/c_msel_tr_loss.py @@ -13,8 +13,8 @@ class MSelTrLoss(AMSel): 2. Visitor pattern to trainer """ - def __init__(self, max_es): - super().__init__() + def __init__(self, max_es, val_threshold = None): + super().__init__(val_threshold) # NOTE: super() must come first otherwise it will overwrite existing # values! self.reset() @@ -28,7 +28,7 @@ def reset(self): def max_es(self): return self._max_es - def update(self, clear_counter=False): + def base_update(self, clear_counter=False): """ if the best model should be updated """ @@ -50,7 +50,7 @@ def update(self, clear_counter=False): self.es_c = 0 return flag - def if_stop(self): + def early_stop(self): """ if should early stop """ diff --git a/domainlab/algos/msels/c_msel_val.py b/domainlab/algos/msels/c_msel_val.py index c1f2f5561..38c91ad58 100644 --- a/domainlab/algos/msels/c_msel_val.py +++ b/domainlab/algos/msels/c_msel_val.py @@ -11,8 +11,8 @@ class MSelValPerf(MSelTrLoss): 2. Visitor pattern to trainer """ - def __init__(self, max_es): - super().__init__(max_es) # construct self.tr_obs (observer) + def __init__(self, max_es, val_threshold = None): + super().__init__(max_es, val_threshold) # construct self.observer4msel (observer) self.reset() def reset(self): @@ -39,16 +39,16 @@ def best_te_metric(self): """ return self._best_te_metric - def update(self, clear_counter=False): + def base_update(self, clear_counter=False): """ if the best model should be updated """ flag = True - if self.tr_obs.metric_val is None: - return super().update(clear_counter) - metric = self.tr_obs.metric_val[self.tr_obs.str_metric4msel] - if self.tr_obs.metric_te is not None: - metric_te_current = self.tr_obs.metric_te[self.tr_obs.str_metric4msel] + if self.observer4msel.metric_val is None: + return super().base_update(clear_counter) + metric = self.observer4msel.metric_val[self.observer4msel.str_metric4msel] + if self.observer4msel.metric_te is not None: + metric_te_current = self.observer4msel.metric_te[self.observer4msel.str_metric4msel] self._best_te_metric = max(self._best_te_metric, metric_te_current) if metric > self._best_val_acc: # update hat{model} @@ -56,8 +56,8 @@ def update(self, clear_counter=False): # the bigger the better self._best_val_acc = metric self.es_c = 0 # restore counter - if self.tr_obs.metric_te is not None: - metric_te_current = self.tr_obs.metric_te[self.tr_obs.str_metric4msel] + if self.observer4msel.metric_te is not None: + metric_te_current = self.observer4msel.metric_te[self.observer4msel.str_metric4msel] self._sel_model_te_acc = metric_te_current else: @@ -65,7 +65,7 @@ def update(self, clear_counter=False): logger = Logger.get_logger() logger.info(f"early stop counter: {self.es_c}") logger.info( - f"val acc:{self.tr_obs.metric_val['acc']}, " + f"val acc:{self.observer4msel.metric_val['acc']}, " + f"best validation acc: {self.best_val_acc}, " + f"corresponding to test acc: \ {self.sel_model_te_acc} / {self.best_te_metric}" diff --git a/domainlab/algos/observers/a_observer.py b/domainlab/algos/observers/a_observer.py index bdad57360..cbf8a86e0 100644 --- a/domainlab/algos/observers/a_observer.py +++ b/domainlab/algos/observers/a_observer.py @@ -13,7 +13,6 @@ def __init__(self): self.task = None self.device = None self.epo_te = None - self.str_msel = None self.keep_model = None self.loader_te = None self.loader_tr = None @@ -26,7 +25,6 @@ def set_task(self, task, args, device): self.task = task self.device = device self.epo_te = args.epo_te - self.str_msel = args.msel # FIXME: consistent with self.model_sel? self.keep_model = args.keep_model self.loader_te = self.task.loader_te self.loader_tr = self.task.loader_tr diff --git a/domainlab/algos/observers/b_obvisitor.py b/domainlab/algos/observers/b_obvisitor.py index 6dce73c28..4c3d1917c 100644 --- a/domainlab/algos/observers/b_obvisitor.py +++ b/domainlab/algos/observers/b_obvisitor.py @@ -61,12 +61,12 @@ def update(self, epoch, flag_info=False): self.loader_te, self.device ) self.metric_te = metric_te - if self.model_sel.update(flag_info): + if self.model_sel.update(epoch, flag_info): logger.info("better model found") self.host_trainer.model.save() logger.info("persisted") - flag_stop = self.model_sel.if_stop() - + acc = self.metric_te.get("acc") + flag_stop = self.model_sel.if_stop(acc) flag_enough = epoch >= self.host_trainer.aconf.epos_min self.flag_setpoint_changed_once |= flag_info @@ -116,6 +116,7 @@ def after_all(self): metric_te.update({"acc_oracle": -1}) if hasattr(self, "model_sel"): metric_te.update({"acc_val": self.model_sel.best_val_acc}) + metric_te.update({"model_selection_epoch": self.model_sel.model_selection_epoch}) else: metric_te.update({"acc_val": -1}) diff --git a/domainlab/algos/trainers/a_trainer.py b/domainlab/algos/trainers/a_trainer.py index 34a603dbe..24e0ccc21 100644 --- a/domainlab/algos/trainers/a_trainer.py +++ b/domainlab/algos/trainers/a_trainer.py @@ -3,6 +3,7 @@ """ import abc +import torch from torch import optim from domainlab.compos.pcr.p_chain_handler import AbstractChainNodeHandler @@ -52,6 +53,7 @@ def __init__(self, successor_node=None, extend=None): """ super().__init__(successor_node) self._model = None + # decoratee can be both model or trainer self._decoratee = extend self.task = None self.observer = None @@ -89,6 +91,15 @@ def __init__(self, successor_node=None, extend=None): # fbopt self.mu_iter_start = 0 self.flag_setpoint_updated = False + # moving average + self.ma_weight_previous_model_params = None + self._dict_previous_para_persist = {} + self._ma_iter = 0 + # + self.list_reg_over_task_ratio = None + # mhof + self.dict_multiplier = {} + @property def model(self): @@ -132,7 +143,9 @@ def init_business(self, model, task, observer, device, aconf, flag_accept=True): self._decoratee.init_business( model, task, observer, device, aconf, flag_accept ) - self.model = model + self.model = self._decoratee + else: + self.model = model self.task = task self.task.init_business(trainer=self, args=aconf) self.model.list_d_tr = self.task.list_domain_tr @@ -185,11 +198,56 @@ def after_batch(self, epoch, ind_batch): """ return - @abc.abstractmethod def before_tr(self): """ before training, probe model performance """ + list_mu = self.cal_reg_loss_over_task_loss_ratio() + self.dict_multiplier = {'mu4regloss'+str(i): value for i, value in enumerate(list_mu)} + + @property + def list_str_multiplier_na(self): + list_str = list(self.dict_multiplier.keys()) + return list_str + + def cal_reg_loss_over_task_loss_ratio(self): + """ + estimate the scale of each loss term, match each loss term to the major + loss via a ratio, this ratio will be multiplied with multiplier + """ + list_accum_reg_loss = [] + loss_task_agg = 0 + list_mu = None + for ind_batch, (tensor_x, tensor_y, tensor_d, *others) in enumerate( + self.loader_tr + ): + tensor_x, tensor_y, tensor_d = ( + tensor_x.to(self.device), + tensor_y.to(self.device), + tensor_d.to(self.device), + ) + list_reg_loss_tensor, list_mu = \ + self.cal_reg_loss(tensor_x, tensor_y, tensor_d, others) + + if ind_batch >= self.aconf.nb4reg_over_task_ratio: + return list_mu + + list_reg_loss_tensor = [torch.sum(tensor).detach().item() + for tensor in list_reg_loss_tensor] + if ind_batch == 0: + list_accum_reg_loss = list_reg_loss_tensor + else: + list_accum_reg_loss = [reg_loss_accum_tensor + reg_loss_tensor + for reg_loss_accum_tensor, + reg_loss_tensor in + zip(list_accum_reg_loss, + list_reg_loss_tensor)] + tensor_loss_task = self.model.cal_task_loss(tensor_x, tensor_y) + tensor_loss_task = torch.sum(tensor_loss_task).detach().item() + loss_task_agg += tensor_loss_task + self.list_reg_over_task_ratio = [reg_loss / loss_task_agg + for reg_loss in list_accum_reg_loss] + return list_mu def post_tr(self): """ @@ -243,19 +301,38 @@ def cal_reg_loss(self, tensor_x, tensor_y, tensor_d, others=None): combine losses of current trainer with self._model.cal_reg_loss, which can be either a trainer or a model """ - list_reg_model, list_mu_model = self.decoratee.cal_reg_loss( - tensor_x, tensor_y, tensor_d, others - ) - assert len(list_reg_model) == len(list_mu_model) + list_reg_loss_model_tensor, list_mu_model = \ + self.decoratee.cal_reg_loss(tensor_x, tensor_y, tensor_d, others) + assert len(list_reg_loss_model_tensor) == len(list_mu_model) - list_reg_trainer, list_mu_trainer = self._cal_reg_loss( + list_reg_loss_trainer_tensor, list_mu_trainer = self._cal_reg_loss( tensor_x, tensor_y, tensor_d, others ) - assert len(list_reg_trainer) == len(list_mu_trainer) - - list_loss = list_reg_model + list_reg_trainer + assert len(list_reg_loss_trainer_tensor) == len(list_mu_trainer) + # extend the length of list: extend number of regularization loss + # tensor: the element of list is tensor + list_loss_tensor = list_reg_loss_model_tensor + \ + list_reg_loss_trainer_tensor list_mu = list_mu_model + list_mu_trainer - return list_loss, list_mu + # ERM return a tensor of all zeros, delete here + if len(list_mu) > 1: + list_boolean_zero = [torch.all(torch.eq(list_loss_tensor[i], 0)).item() + for i in range(len(list_mu))] + list_loss_tensor = [list_loss_tensor[i] for (i, flag) in + enumerate(list_boolean_zero) if not flag] + list_mu = [list_mu[i] for (i, flag) in enumerate(list_boolean_zero) if not flag] + if self.dict_multiplier: + list_mu = list(self.dict_multiplier.values()) + + list_loss_tensor_normalized = list_loss_tensor + if self.list_reg_over_task_ratio: + assert len(list_mu) == len(self.list_reg_over_task_ratio) + list_loss_tensor_normalized = \ + [reg_loss / reg_over_task_ratio if reg_over_task_ratio != 0 + else reg_loss for (reg_loss, reg_over_task_ratio) + in zip(list_loss_tensor, self.list_reg_over_task_ratio)] + + return list_loss_tensor_normalized, list_mu def _cal_reg_loss(self, tensor_x, tensor_y, tensor_d, others=None): """ @@ -272,3 +349,31 @@ def dset_decoration_args_algo(self, args, ddset): if self._decoratee is not None: return self._decoratee.dset_decoration_args_algo(args, ddset) return ddset + + def print_parameters(self): + """ + Function to print all parameters of the object. + Can be used to print the parameters of any child class + """ + params = vars(self) + print(f"Parameters of {type(self).__name__}: {params}") + + def hyper_init(self, functor_scheduler, trainer): + """ + initialize both trainer's multiplier and model's multiplier + """ + if not self.dict_multiplier: + raise RuntimeError("self.dict_multiplier empty!") + return functor_scheduler( + trainer=trainer, **self.dict_multiplier + ) + + def hyper_update(self, epoch, fun_scheduler): + """hyper_update. + + :param epoch: + :param fun_scheduler: + """ + dict_rst = fun_scheduler(epoch) + for key in self.dict_multiplier: + self.dict_multiplier[key] = dict_rst[key] diff --git a/domainlab/algos/trainers/args_fbopt.py b/domainlab/algos/trainers/args_fbopt.py index 53719e05f..e1fa536ac 100644 --- a/domainlab/algos/trainers/args_fbopt.py +++ b/domainlab/algos/trainers/args_fbopt.py @@ -9,53 +9,73 @@ def add_args2parser_fbopt(parser): """ parser.add_argument( - "--k_i_gain", type=float, default=0.001, help="PID control gain for integrator" + "--k_i_gain", type=float, default=0.001, + help="PID control gain for integrator, if k_i_gain_ratio is not None, \ + then this value will be overwriten, see doc for k_i_gain_ratio" ) parser.add_argument( "--k_i_gain_ratio", type=float, default=None, - help="set k_i_gain to be ratio of \ - initial saturation k_i_gain", + help="set k_i_gain to be ratio of initial saturation k_i_gain \ + which K_I * delta = exp_shoulder_clip(saturation value), solve \ + for K_I, where delta = reg loss - setpoint. \ + Now independent of the scale of delta, the K_I gain will be set so \ + that the multiplier will be increased at a rate defined by \ + exp_shoulder_clip", ) parser.add_argument( - "--mu_clip", type=float, default=1e4, help="maximum value of mu" + "--mu_clip", type=float, default=1e4, + help="maximum value of mu: mu_clip should be large enough so that the \ + regularization loss as penalty can be weighed superior enough to \ + decrease." ) parser.add_argument( - "--mu_min", type=float, default=1e-6, help="minimum value of mu" + "--mu_min", type=float, default=1e-6, help="minimum value of mu, mu \ + can not be negative" ) parser.add_argument( - "--mu_init", type=float, default=0.001, help="initial beta for multiplication" + "--mu_init", type=float, default=0.001, + help="initial value for each component of the multiplier vector" ) parser.add_argument( - "--coeff_ma", type=float, default=0.5, help="exponential moving average" + "--coeff_ma", type=float, default=0.5, + help="exponential moving average of delta \ + (reg minus setpoint as control error): \ + move_ave=move_ave + coeff*delta(current value)" ) parser.add_argument( "--coeff_ma_output_state", type=float, default=0.1, - help="state exponential moving average of \ - reguarlization loss", + help="output (reguarization loss) exponential moving average \ + move_ave=move_ave*coeef + reg(current value)", ) parser.add_argument( "--coeff_ma_setpoint", type=float, default=0.9, - help="setpoint average coeff for previous setpoint", + help="setpoint average (coeff for previous setpoint)", ) parser.add_argument( "--exp_shoulder_clip", type=float, default=5, - help="clip before exponential operation", + help="clip delta(control error): \ + R(reg-loss)-b(setpoint) before exponential operation: \ + exp[clip(R-b, exp_shoulder_clip)].\ + exponential magnifies control error, so this argument \ + defines the maximum rate of change of multipliers \ + exp(5)=148, exp_shoulder_clip should not be too big, \ + if exp_shoulder_clip is small, then more like exterior point method", ) parser.add_argument( @@ -63,7 +83,7 @@ def add_args2parser_fbopt(parser): type=float, default=0.99, help="before training start, evaluate reg loss, \ - setpoint will be 0.9 of this loss", + setpoint will be 0.9 of this loss", ) parser.add_argument( @@ -77,8 +97,8 @@ def add_args2parser_fbopt(parser): "--force_setpoint_change_once", action="store_true", default=False, - help="train until the setpoint changed at least once \ - up to maximum epos specified", + help="continue training until the setpoint changed at least once: \ + up to maximum epos specified", ) parser.add_argument( @@ -103,24 +123,34 @@ def add_args2parser_fbopt(parser): ) parser.add_argument( - "--overshoot_rewind", - type=str, - default="yes", - help="overshoot_rewind, for benchmark, use yes or no", + "--no_overshoot_rewind", + action="store_true", + default=False, + help="disable overshoot rewind: when reg loss satisfies setpoint \ + already, then set activation=K_I*delta = 0", ) parser.add_argument( "--setpoint_rewind", + action="store_true", + default=False, + help="rewind setpoint", + ) + + # this arg is only used when model is set to be "diva" + parser.add_argument( + "--str_setpoint_ada", type=str, - default="no", - help="setpoing_rewind, for benchmark, use yes or no", + default="DominateAllComponent()", + help="which setpoint adaptation criteria to use", ) + # this arg is only used when model is set to be "diva" parser.add_argument( "--str_diva_multiplier_type", type=str, default="gammad_recon", - help="which penalty to tune", + help="which penalty to tune, only useful to DIVA model", ) return parser diff --git a/domainlab/algos/trainers/fbopt_mu_controller.py b/domainlab/algos/trainers/fbopt_mu_controller.py index 9f8e02971..ce53fc0df 100644 --- a/domainlab/algos/trainers/fbopt_mu_controller.py +++ b/domainlab/algos/trainers/fbopt_mu_controller.py @@ -50,15 +50,16 @@ def __init__(self, trainer, **kwargs): self.mmu = {key: self.init_mu for key, val in self.mmu.items()} self.set_point_controller = FbOptSetpointController(args=self.trainer.aconf) - self.k_i_control = trainer.aconf.k_i_gain - self.k_i_gain_ratio = None - self.overshoot_rewind = trainer.aconf.overshoot_rewind == "yes" + self.k_i_control = [trainer.aconf.k_i_gain for i in + range(len(self.mmu))] + self.k_i_gain_ratio = trainer.aconf.k_i_gain_ratio + self.overshoot_rewind = not trainer.aconf.no_overshoot_rewind self.delta_epsilon_r = None # NOTE: this value will be set according to initial evaluation of # neural network self.activation_clip = trainer.aconf.exp_shoulder_clip - self.coeff_ma = trainer.aconf.coeff_ma + self.coeff4newval_ma_delta = trainer.aconf.coeff_ma # NOTE: # print(copy.deepcopy(self.model)) # TypeError: cannot pickle '_thread.lock' object @@ -70,7 +71,10 @@ def __init__(self, trainer, **kwargs): def set_k_i_gain(self, epo_reg_loss): if self.k_i_gain_ratio is None: - return + if self.k_i_control: + return + raise RuntimeError("set either direct k_i_control value or \ + set k_i_gain_ratio, can not be both empty!") # NOTE: do not use self.cal_delta4control!!!! which will change # class member variables self.delta_epsilon_r! list_setpoint = self.get_setpoint4r() @@ -78,13 +82,22 @@ def set_k_i_gain(self, epo_reg_loss): delta_epsilon_r = [a - b for a, b in zip(epo_reg_loss, list_setpoint)] # to calculate self.delta_epsilon_r + list_active = [self.activation_clip for i in range(len(delta_epsilon_r))] + k_i_gain_saturate = [ - a / b for a, b in zip(self.activation_clip, delta_epsilon_r) + a / b for a, b in zip(list_active, delta_epsilon_r) ] + + # FIXME: add max K_I gain here if initial delta is too small + k_i_gain_saturate_min = min(k_i_gain_saturate) # NOTE: here we override the commandline arguments specification # for k_i_control, so k_i_control is not a hyperparameter anymore - self.k_i_control = self.k_i_gain_ratio * k_i_gain_saturate_min + # self.k_i_control = [self.k_i_gain_ratio * ele for ele in k_i_gain_saturate] + # k_I should be the same for each component, the control error already + # make the multiplier magnification different + self.k_i_control = [self.k_i_gain_ratio * k_i_gain_saturate_min for i + in range(len(delta_epsilon_r))] warnings.warn( f"hyperparameter k_i_gain disabled! \ replace with {self.k_i_control}" @@ -118,7 +131,8 @@ def cal_delta4control(self, list1, list_setpoint): # self.delta_epsilon_r is the previous time step. # delta_epsilon_r is the current time step self.delta_epsilon_r = self.cal_delta_integration( - self.delta_epsilon_r, delta_epsilon_r, self.coeff_ma + self.delta_epsilon_r, delta_epsilon_r, + self.coeff4newval_ma_delta ) def cal_delta_integration(self, list_old, list_new, coeff): @@ -162,7 +176,7 @@ def cal_activation(self): """ setpoint = self.get_setpoint4r() activation = [ - self.k_i_control * val if setpoint[i] > 0 else self.k_i_control * (-val) + self.k_i_control[i] * val if setpoint[i] > 0 else self.k_i_control[i] * (-val) for i, val in enumerate(self.delta_epsilon_r) ] if self.activation_clip is not None: @@ -206,27 +220,32 @@ def search_mu( self.writer.add_scalar(f"controller_gain/{key}", dict_gain[key], miter) ind = list_str_multiplier_na.index(key) self.writer.add_scalar(f"delta/{key}", self.delta_epsilon_r[ind], miter) - for i, (reg_dyn, reg_set) in enumerate( - zip(epo_reg_loss, self.get_setpoint4r()) - ): - self.writer.add_scalar( - f"lossrd/dyn_{list_str_multiplier_na[i]}", reg_dyn, miter - ) - self.writer.add_scalar( - f"lossrs/setpoint_{list_str_multiplier_na[i]}", reg_set, miter - ) - self.writer.add_scalars( - f"loss_rds/loss_{list_str_multiplier_na[i]}_w_setpoint", - { - f"lossr/loss_{list_str_multiplier_na[i]}": reg_dyn, - f"lossr/setpoint_{list_str_multiplier_na[i]}": reg_set, - }, - miter, - ) - self.writer.add_scalar( - f"x_ell_y_r/loss_{list_str_multiplier_na[i]}", reg_dyn, epo_task_loss - ) + if list_str_multiplier_na: + for i, (reg_dyn, reg_set) in enumerate( + zip(epo_reg_loss, self.get_setpoint4r()) + ): + + self.writer.add_scalar( + f"lossrd/dyn_{list_str_multiplier_na[i]}", reg_dyn, miter + ) + self.writer.add_scalar( + f"lossrs/setpoint_{list_str_multiplier_na[i]}", reg_set, miter + ) + + self.writer.add_scalars( + f"loss_rds/loss_{list_str_multiplier_na[i]}_w_setpoint", + { + f"lossr/loss_{list_str_multiplier_na[i]}": reg_dyn, + f"lossr/setpoint_{list_str_multiplier_na[i]}": reg_set, + }, + miter, + ) + self.writer.add_scalar( + f"x_ell_y_r/loss_{list_str_multiplier_na[i]}", reg_dyn, epo_task_loss + ) + else: + logger.info("No multiplier provided") self.writer.add_scalar("loss_task/penalized", epo_loss_tr, miter) self.writer.add_scalar("loss_task/ell", epo_task_loss, miter) acc_te = 0 diff --git a/domainlab/algos/trainers/fbopt_setpoint_ada.py b/domainlab/algos/trainers/fbopt_setpoint_ada.py index c3c0193ce..e22e13a75 100644 --- a/domainlab/algos/trainers/fbopt_setpoint_ada.py +++ b/domainlab/algos/trainers/fbopt_setpoint_ada.py @@ -81,7 +81,7 @@ def __init__(self, host): self.counter = None self.epo_ma = None self.ref = None - self.coeff_ma = 0.5 + self.coeff_ma_setpoint_rewinder = 0.5 self.setpoint_rewind = host.flag_setpoint_rewind def reset(self, epo_reg_loss): @@ -98,7 +98,7 @@ def observe(self, epo_reg_loss): """ if self.ref is None: self.reset(epo_reg_loss) - self.epo_ma = list_ma(self.epo_ma, epo_reg_loss, self.coeff_ma) + self.epo_ma = list_ma(self.epo_ma, epo_reg_loss, self.coeff_ma_setpoint_rewinder) list_comparison_increase = [a < b for a, b in zip(self.ref, self.epo_ma)] list_comparison_above_setpoint = [ a < b for a, b in zip(self.host.setpoint4R, self.epo_ma) @@ -144,9 +144,11 @@ def __init__(self, state=None, args=None): if args is not None and args.no_setpoint_update: state = FixedSetpoint() else: - state = DominateAllComponent() + # state = eval('DominateAllComponent()') + # state = DominateAllComponent() + state = eval(args.str_setpoint_ada) self.transition_to(state) - self.flag_setpoint_rewind = args.setpoint_rewind == "yes" + self.flag_setpoint_rewind = args.setpoint_rewind self.setpoint_rewinder = SetpointRewinder(self) self.state_task_loss = 0.0 self.state_epo_reg_loss = [ @@ -311,4 +313,12 @@ def update_setpoint(self): {self.host.state_task_loss}" ) self.host.setpoint4ell = self.host.state_task_loss + + if flag1 & flag2: + logger = Logger.get_logger(logger_name="main_out_logger", loglevel="INFO") + logger.info( + "!!!!!!!!!In DominantAllComponent: \ + besides each components of reg loss shrinks \ + task loss also decreased which forms dominance!" + ) return flag1 & flag2, list_pos diff --git a/domainlab/algos/trainers/mmd_base.py b/domainlab/algos/trainers/mmd_base.py new file mode 100644 index 000000000..6931a3048 --- /dev/null +++ b/domainlab/algos/trainers/mmd_base.py @@ -0,0 +1,48 @@ +""" +Alexej, Xudong +""" +import torch +from domainlab.algos.trainers.train_basic import TrainerBasic + + +class TrainerMMDBase(TrainerBasic): + """ + causal matching + """ + def my_cdist(self, x1, x2): + """ + distance for Gaussian + """ + # along the last dimension + x1_norm = x1.pow(2).sum(dim=-1, keepdim=True) + x2_norm = x2.pow(2).sum(dim=-1, keepdim=True) + # x_2_norm is [batchsize, 1] + # matrix multiplication (2nd, 3rd) and addition to first argument + # X1[batchsize, dimfeat] * X2[dimfeat, batchsize) + # alpha: Scaling factor for the matrix product (default: 1) + # x2_norm.transpose(-2, -1) is row vector + # x_1_norm is column vector + res = torch.addmm(x2_norm.transpose(-2, -1), + x1, + x2.transpose(-2, -1), alpha=-2).add_(x1_norm) + return res.clamp_min_(1e-30) + + def gaussian_kernel(self, x, y): + """ + kernel for MMD + """ + gamma = [0.001, 0.01, 0.1, 1, 10, 100, 1000] + dist = self.my_cdist(x, y) + tensor = torch.zeros_like(dist) + for g in gamma: + tensor.add_(torch.exp(dist.mul(-g))) + return tensor + + def mmd(self, x, y): + """ + maximum mean discrepancy + """ + kxx = self.gaussian_kernel(x, x).mean() + kyy = self.gaussian_kernel(y, y).mean() + kxy = self.gaussian_kernel(x, y).mean() + return kxx + kyy - 2 * kxy diff --git a/domainlab/algos/trainers/train_basic.py b/domainlab/algos/trainers/train_basic.py index 02f8e02fe..0e2cd5dec 100644 --- a/domainlab/algos/trainers/train_basic.py +++ b/domainlab/algos/trainers/train_basic.py @@ -4,10 +4,8 @@ import math from operator import add -import torch - from domainlab import g_tensor_batch_agg -from domainlab.algos.trainers.a_trainer import AbstractTrainer, mk_opt +from domainlab.algos.trainers.a_trainer import AbstractTrainer def list_divide(list_val, scalar): @@ -24,6 +22,8 @@ def before_tr(self): check the performance of randomly initialized weight """ self.model.evaluate(self.loader_te, self.device) + super().before_tr() + self.before_epoch() def before_epoch(self): """ @@ -80,7 +80,7 @@ def tr_batch(self, tensor_x, tensor_y, tensor_d, others, ind_batch, epoch): tensor_d.to(self.device), ) self.optimizer.zero_grad() - loss = self.cal_loss(tensor_x, tensor_y, tensor_d, others) + loss, *_ = self.cal_loss(tensor_x, tensor_y, tensor_d, others) loss.backward() self.optimizer.step() self.after_batch(epoch, ind_batch) @@ -95,9 +95,11 @@ def cal_loss(self, tensor_x, tensor_y, tensor_d, others): list_reg_tr_batch, list_mu_tr = self.cal_reg_loss( tensor_x, tensor_y, tensor_d, others ) + list_mu_tr_normalized = list_mu_tr tensor_batch_reg_loss_penalized = self.model.list_inner_product( - list_reg_tr_batch, list_mu_tr + list_reg_tr_batch, list_mu_tr_normalized ) + assert len(tensor_batch_reg_loss_penalized.shape) == 1 loss_erm_agg = g_tensor_batch_agg(loss_task) loss_reg_penalized_agg = g_tensor_batch_agg(tensor_batch_reg_loss_penalized) @@ -105,4 +107,4 @@ def cal_loss(self, tensor_x, tensor_y, tensor_d, others): self.model.multiplier4task_loss * loss_erm_agg + loss_reg_penalized_agg ) self.log_loss(list_reg_tr_batch, loss_task, loss_penalized) - return loss_penalized + return loss_penalized, list_reg_tr_batch, loss_erm_agg diff --git a/domainlab/algos/trainers/train_causIRL.py b/domainlab/algos/trainers/train_causIRL.py new file mode 100644 index 000000000..085abcbfa --- /dev/null +++ b/domainlab/algos/trainers/train_causIRL.py @@ -0,0 +1,77 @@ +""" +Alex, Xudong +""" +import numpy as np +import torch +from domainlab.algos.trainers.train_basic import TrainerBasic + + +class TrainerCausalIRL(TrainerBasic): + """ + causal matching + """ + def my_cdist(self, x1, x2): + """ + distance for Gaussian + """ + # along the last dimension + x1_norm = x1.pow(2).sum(dim=-1, keepdim=True) + x2_norm = x2.pow(2).sum(dim=-1, keepdim=True) + # x_2_norm is [batchsize, 1] + # matrix multiplication (2nd, 3rd) and addition to first argument + # X1[batchsize, dimfeat] * X2[dimfeat, batchsize) + # alpha: Scaling factor for the matrix product (default: 1) + # x2_norm.transpose(-2, -1) is row vector + # x_1_norm is column vector + res = torch.addmm(x2_norm.transpose(-2, -1), + x1, + x2.transpose(-2, -1), alpha=-2).add_(x1_norm) + return res.clamp_min_(1e-30) + + def gaussian_kernel(self, x, y): + """ + kernel for MMD + """ + gamma=[0.001, 0.01, 0.1, 1, 10, 100, 1000] + dist = self.my_cdist(x, y) + tensor = torch.zeros_like(dist) + for g in gamma: + tensor.add_(torch.exp(dist.mul(-g))) + return tensor + + def mmd(self, x, y): + """ + maximum mean discrepancy + """ + kxx = self.gaussian_kernel(x, x).mean() + kyy = self.gaussian_kernel(y, y).mean() + kxy = self.gaussian_kernel(x, y).mean() + return kxx + kyy - 2 * kxy + + def tr_batch(self, tensor_x, tensor_y, tensor_d, others, ind_batch, epoch): + """ + optimize neural network one step upon a mini-batch of data + """ + self.before_batch(epoch, ind_batch) + tensor_x, tensor_y, tensor_d = ( + tensor_x.to(self.device), + tensor_y.to(self.device), + tensor_d.to(self.device), + ) + self.optimizer.zero_grad() + + features = self.get_model().extract_semantic_feat(tensor_x) + + pos_batch_break = np.random.randint(0, tensor_x.shape[0]) + first = features[:pos_batch_break] + second = features[pos_batch_break:] + if len(first) > 1 and len(second) > 1: + penalty = torch.nan_to_num(self.mmd(first, second)) + else: + penalty = torch.tensor(0) + loss = self.cal_loss(tensor_x, tensor_y, tensor_d, others) + loss = loss + penalty + loss.backward() + self.optimizer.step() + self.after_batch(epoch, ind_batch) + self.counter_batch += 1 diff --git a/domainlab/algos/trainers/train_coral.py b/domainlab/algos/trainers/train_coral.py new file mode 100644 index 000000000..a8f7c3f05 --- /dev/null +++ b/domainlab/algos/trainers/train_coral.py @@ -0,0 +1,49 @@ +""" +Deep CORAL: Correlation Alignment for Deep +Domain Adaptation +[au] Alexej, Xudong +""" +from domainlab.algos.trainers.mmd_base import TrainerMMDBase +from domainlab.utils.hyperparameter_retrieval import get_gamma_reg + + +class TrainerCoral(TrainerMMDBase): + """ + cross domain MMD + """ + def cross_domain_mmd(self, tuple_data_domains_batch): + """ + domain-pairwise mmd + """ + list_cross_domain_mmd = [] + list_domain_erm_loss = [] + num_domains = len(tuple_data_domains_batch) + for ind_domain_a in range(num_domains): + data_a, y_a, *_ = tuple_data_domains_batch[ind_domain_a] + feat_a = self.get_model().extract_semantic_feat(data_a) + list_domain_erm_loss.append(sum(self.get_model().cal_task_loss(data_a, y_a))) + for ind_domain_b in range(ind_domain_a, num_domains): + data_b, *_ = tuple_data_domains_batch[ind_domain_b] + feat_b = self.get_model().extract_semantic_feat(data_b) + mmd = self.mmd(feat_a, feat_b) + list_cross_domain_mmd.append(mmd) + return list_domain_erm_loss, list_cross_domain_mmd + + def tr_epoch(self, epoch): + list_loaders = list(self.dict_loader_tr.values()) + loaders_zip = zip(*list_loaders) + self.model.train() + self.model.convert4backpack() + self.epo_loss_tr = 0 + + for ind_batch, tuple_data_domains_batch in enumerate(loaders_zip): + self.optimizer.zero_grad() + list_domain_erm_loss, list_cross_domain_mmd = self.cross_domain_mmd(tuple_data_domains_batch) + loss = sum(list_domain_erm_loss) + get_gamma_reg(self.aconf, self.name) * sum(list_cross_domain_mmd) + loss.backward() + self.optimizer.step() + self.epo_loss_tr += loss.detach().item() + self.after_batch(epoch, ind_batch) + + flag_stop = self.observer.update(epoch) # notify observer + return flag_stop diff --git a/domainlab/algos/trainers/train_dial.py b/domainlab/algos/trainers/train_dial.py index 76f2dff02..711a83008 100644 --- a/domainlab/algos/trainers/train_dial.py +++ b/domainlab/algos/trainers/train_dial.py @@ -5,6 +5,7 @@ from torch.autograd import Variable from domainlab.algos.trainers.train_basic import TrainerBasic +from domainlab.utils.hyperparameter_retrieval import get_gamma_reg class TrainerDIAL(TrainerBasic): @@ -46,15 +47,8 @@ def _cal_reg_loss(self, tensor_x, tensor_y, tensor_d, others=None): """ _ = tensor_d _ = others - tensor_x_adv = self.gen_adversarial(self.device, tensor_x, tensor_y) - tensor_x_batch_adv_no_grad = Variable(tensor_x_adv, requires_grad=False) - loss_dial = self.model.cal_task_loss(tensor_x_batch_adv_no_grad, tensor_y) - return [loss_dial], [self.aconf.gamma_reg] - - def hyper_init(self, functor_scheduler, trainer): - """ - initialize both trainer's multiplier and model's multiplier - """ - fun_scheduler = super().hyper_init(functor_scheduler, trainer) - return fun_scheduler - # FIXME: register also the trainer hyperpars: return functor_scheduler(trainer=trainer, gamma_reg=self.gamma_reg) + with torch.enable_grad(): + tensor_x_adv = self.gen_adversarial(self.device, tensor_x, tensor_y) + tensor_x_batch_adv_no_grad = Variable(tensor_x_adv, requires_grad=False) + loss_dial = self.model.cal_task_loss(tensor_x_batch_adv_no_grad, tensor_y) + return [loss_dial], [get_gamma_reg(self.aconf, self.name)] diff --git a/domainlab/algos/trainers/train_ema.py b/domainlab/algos/trainers/train_ema.py new file mode 100644 index 000000000..8b57368b0 --- /dev/null +++ b/domainlab/algos/trainers/train_ema.py @@ -0,0 +1,66 @@ +""" +simple exponential moving average of each layers, after each epoch, +trainer=ma_trainer2_trainer3 +always set ma to be outer most + +Paper: +Ensemble of Averages: Improving Model Selection and +Boosting Performance in Domain Generalization +Devansh Arpit, Huan Wang, Yingbo Zhou, Caiming Xiong +Salesforce Research, USA +""" + +import torch +from domainlab.algos.trainers.train_basic import TrainerBasic + + +class TrainerMA(TrainerBasic): + """ + initializer of this class goes to one block/section in the abstract class + initializer, otherwise it will break the class inheritance. + """ + def move_average(self, dict_data, epoch): + """ + for each epoch, convex combine the weights for each layer + Paper: + Ensemble of Averages: Improving Model Selection and + Boosting Performance in Domain Generalization + Devansh Arpit, Huan Wang, Yingbo Zhou, Caiming Xiong + Salesforce Research, USA + """ + self.ma_weight_previous_model_params = epoch / (epoch + 1) + # 1/2, 2/3, 3/4, 4/5, + # weight on previous model converges to 1 as training goes on + dict_return_ema_para_curr_iter = {} + for key, data in dict_data.items(): + # data = data.view(1, -1) # make it rank 1 tensor (a.k.a. vector) + if self._ma_iter == 0: + previous_data = torch.zeros_like(data) + local_data_convex = data + else: + previous_data = self._dict_previous_para_persist[key] + local_data_convex = \ + self.ma_weight_previous_model_params * previous_data + \ + (1 - self.ma_weight_previous_model_params) * data + # correction by 1/(1 - self.ma_weight_previous_model_params) + # so that the gradients amplitude backpropagated in data is + # independent of self.ma_weight_previous_model_params + # We did not do this because 1-rho will be almost zero as + # epochs goes on, which will expand the neural network weights + # to overflow + # dict_return_ema_para_curr_iter[key] = \ + # local_data_convex / (1 - self.ma_weight_previous_model_params) + dict_return_ema_para_curr_iter[key] = local_data_convex + self._dict_previous_para_persist[key] = \ + local_data_convex.clone().detach() # used as previous data + + self._ma_iter += 1 + return dict_return_ema_para_curr_iter + + def after_epoch(self, epoch): + torch_model = self.get_model() + dict_para = torch_model.state_dict() # only for trainable parameters + new_dict_para = self.move_average(dict_para, epoch) + # without deepcopy, this seems to work + torch_model.load_state_dict(new_dict_para) + super().after_epoch(epoch) diff --git a/domainlab/algos/trainers/train_fbopt_b.py b/domainlab/algos/trainers/train_fbopt_b.py index 1efe3ce58..b47ffc69e 100644 --- a/domainlab/algos/trainers/train_fbopt_b.py +++ b/domainlab/algos/trainers/train_fbopt_b.py @@ -43,7 +43,7 @@ def set_scheduler(self, scheduler): this class name will be created inside model """ # model.hyper_init will register the hyper-parameters of the model to scheduler - self.hyper_scheduler = self.model.hyper_init(scheduler, trainer=self) + self.hyper_scheduler = self.decoratee.hyper_init(scheduler, trainer=self) def eval_r_loss(self): """ @@ -66,8 +66,10 @@ def eval_r_loss(self): vec_y.to(self.device), vec_d.to(self.device), ) - tuple_reg_loss = self.model.cal_reg_loss(tensor_x, vec_y, vec_d, others) - p_loss, *_ = self.model.cal_loss(tensor_x, vec_y, vec_d, others) + tuple_reg_loss = self.decoratee.cal_reg_loss(tensor_x, vec_y, vec_d, others) + p_loss, *_ = self.decoratee.cal_loss(tensor_x, vec_y, vec_d, others) + if p_loss.dim() > 0: + p_loss = p_loss.sum() # NOTE: first [0] extract the loss, second [0] get the list list_b_reg_loss = tuple_reg_loss[0] list_b_reg_loss_sumed = [ @@ -82,7 +84,7 @@ def eval_r_loss(self): ) # sum will kill the dimension of the mini batch epo_task_loss += b_task_loss - epo_p_loss += p_loss.sum().detach().item() + epo_p_loss += p_loss.detach().item() counter += 1.0 return ( list_divide(epo_reg_loss, counter), @@ -103,6 +105,9 @@ def before_batch(self, epoch, ind_batch): return super().after_batch(epoch, ind_batch) def before_tr(self): + if hasattr(self.decoratee, "before_tr"): + # initialize self.decoratee.dict_multiplier + self.decoratee.before_tr() self.flag_setpoint_updated = False if self.aconf.force_feedforward: self.set_scheduler(scheduler=HyperSchedulerWarmupLinear) @@ -110,14 +115,23 @@ def before_tr(self): self.set_scheduler(scheduler=HyperSchedulerFeedback) self.set_model_with_mu() # very small value - if self.aconf.tr_with_init_mu: - self.tr_with_init_mu() + # evaluate regularization loss list ( self.epo_reg_loss_tr, self.epo_task_loss_tr, self.epo_loss_tr, ) = self.eval_r_loss() + + if self.aconf.tr_with_init_mu: + self.tr_with_init_mu() + # evaluate regularization loss list + ( + self.epo_reg_loss_tr, + self.epo_task_loss_tr, + self.epo_loss_tr, + ) = self.eval_r_loss() + self.hyper_scheduler.set_setpoint( [ ele * self.aconf.ini_setpoint_ratio @@ -126,7 +140,7 @@ def before_tr(self): for ele in self.epo_reg_loss_tr ], self.epo_task_loss_tr, - ) # setpoing w.r.t. random initialization of neural network + ) # setpoint w.r.t. random initialization of neural network self.hyper_scheduler.set_k_i_gain(self.epo_reg_loss_tr) @property @@ -134,7 +148,7 @@ def list_str_multiplier_na(self): """ return the name of multipliers """ - return self.model.list_str_multiplier_na + return self.decoratee.list_str_multiplier_na def tr_with_init_mu(self): """ @@ -146,7 +160,7 @@ def set_model_with_mu(self): """ set model multipliers """ - self.model.hyper_update( + self.decoratee.hyper_update( epoch=None, fun_scheduler=HyperSetter(self.hyper_scheduler.mmu) ) @@ -162,12 +176,19 @@ def tr_epoch(self, epoch, flag_info=False): miter=epoch, ) self.set_model_with_mu() - if hasattr(self.model, "dict_multiplier"): + if hasattr(self.decoratee, "dict_multiplier"): logger = Logger.get_logger() - logger.info(f"current multiplier: {self.model.dict_multiplier}") + logger.info(f"current multiplier: {self.decoratee.dict_multiplier}") if self._decoratee is not None: flag = self._decoratee.tr_epoch(epoch, self.flag_setpoint_updated) + # self._decoratee.tr_epoch here will call + # self._decoratee.after_epoch to log the losses, but it only sotre + # the value into self._decoratee, + # so we have to mannually copy the value here + self.epo_loss_tr = self._decoratee.epo_loss_tr + self.epo_reg_loss_tr = self._decoratee.epo_reg_loss_tr + self.epo_task_loss_tr = self._decoratee.epo_task_loss_tr else: flag = super().tr_epoch(epoch, self.flag_setpoint_updated) # is it good to update setpoint after we know the new value of each loss? diff --git a/domainlab/algos/trainers/train_fishr.py b/domainlab/algos/trainers/train_fishr.py index 1a11e3780..250b4109d 100644 --- a/domainlab/algos/trainers/train_fishr.py +++ b/domainlab/algos/trainers/train_fishr.py @@ -13,6 +13,7 @@ backpack = None from domainlab.algos.trainers.train_basic import TrainerBasic +from domainlab.utils.hyperparameter_retrieval import get_gamma_reg class TrainerFishr(TrainerBasic): @@ -25,7 +26,7 @@ class TrainerFishr(TrainerBasic): "Fishr: Invariant gradient variances for out-of-distribution generalization." International Conference on Machine Learning. PMLR, 2022. """ - def tr_epoch(self, epoch): + def tr_epoch(self, epoch, flag_info=False): list_loaders = list(self.dict_loader_tr.values()) loaders_zip = zip(*list_loaders) self.model.train() @@ -39,13 +40,13 @@ def tr_epoch(self, epoch): dict_layerwise_var_var_grads_sum = \ {key: val.sum() for key, val in dict_layerwise_var_var_grads.items()} loss_fishr = sum(dict_layerwise_var_var_grads_sum.values()) - loss = sum(list_loss_erm) + self.aconf.gamma_reg * loss_fishr + loss = sum(list_loss_erm) + get_gamma_reg(self.aconf, self.name) * loss_fishr loss.backward() self.optimizer.step() self.epo_loss_tr += loss.detach().item() self.after_batch(epoch, ind_batch) - flag_stop = self.observer.update(epoch) # notify observer + flag_stop = self.observer.update(epoch, flag_info) # notify observer return flag_stop def var_grads_and_loss(self, tuple_data_domains_batch): @@ -160,10 +161,6 @@ def cal_dict_variance_grads(self, tensor_x, vec_y): inputs=list(self.model.parameters()), retain_graph=True, create_graph=True ) - for name, param in self.model.named_parameters(): - print(name) - print(".grad.shape: ", param.variance.shape) - dict_variance = OrderedDict( [(name, weights.variance.clone()) for name, weights in self.model.named_parameters() diff --git a/domainlab/algos/trainers/train_hyper_scheduler.py b/domainlab/algos/trainers/train_hyper_scheduler.py index 2e60bf5e8..00b1cb1d3 100644 --- a/domainlab/algos/trainers/train_hyper_scheduler.py +++ b/domainlab/algos/trainers/train_hyper_scheduler.py @@ -25,7 +25,7 @@ def set_scheduler( flag_update_epoch: if hyper-parameters should be changed per epoch flag_update_batch: if hyper-parameters should be changed per batch """ - self.hyper_scheduler = self.model.hyper_init(scheduler) + self.hyper_scheduler = self.decoratee.hyper_init(scheduler, trainer=self) # let model register its hyper-parameters to the scheduler self.flag_update_hyper_per_epoch = flag_update_epoch self.flag_update_hyper_per_batch = flag_update_batch @@ -37,12 +37,14 @@ def before_batch(self, epoch, ind_batch): should be set to epoch*self.num_batches + ind_batch """ if self.flag_update_hyper_per_batch: - self.model.hyper_update( + self.decoratee.hyper_update( epoch * self.num_batches + ind_batch, self.hyper_scheduler ) return super().before_batch(epoch, ind_batch) def before_tr(self): + if hasattr(self.decoratee, "before_tr"): + self.decoratee.before_tr() if self.hyper_scheduler is None: logger = Logger.get_logger() logger.warning( @@ -55,10 +57,13 @@ def before_tr(self): flag_update_epoch=True, ) - def tr_epoch(self, epoch): + def tr_epoch(self, epoch, flag_info=False): """ update hyper-parameters only per epoch """ if self.flag_update_hyper_per_epoch: - self.model.hyper_update(epoch, self.hyper_scheduler) + self.decoratee.hyper_update(epoch, self.hyper_scheduler) + if hasattr(self.decoratee, "dict_multiplier"): + logger = Logger.get_logger() + logger.info(f"---before epoch, current multiplier: {self.decoratee.dict_multiplier}") return super().tr_epoch(epoch) diff --git a/domainlab/algos/trainers/train_irm.py b/domainlab/algos/trainers/train_irm.py new file mode 100644 index 000000000..09748ee1f --- /dev/null +++ b/domainlab/algos/trainers/train_irm.py @@ -0,0 +1,44 @@ +""" +use random start to generate adversarial images +""" +import torch +from torch import autograd +from torch.nn import functional as F +from domainlab.algos.trainers.train_basic import TrainerBasic + + +class TrainerIRM(TrainerBasic): + """ + IRMv1 split a minibatch into half, and use an unbiased estimate of the + squared gradient norm via inner product + $$\\delta_{w|w=1} \\ell(w\\dot \\Phi(X^{e, i}), Y^{e, i})$$ + of dimension dim(Grad) + with + $$\\delta_{w|w=1} \\ell(w\\dot \\Phi(X^{e, j}), Y^{e, j})$$ + of dimension dim(Grad) + For more details, see section 3.2 and Appendix D of : + Arjovsky et al., “Invariant Risk Minimization.” + """ + def _cal_phi(self, tensor_x): + logits = self.model.cal_logit_y(tensor_x) + return logits + + def _cal_reg_loss(self, tensor_x, tensor_y, tensor_d, others=None): + """ + Let trainer behave like a model, so that other trainer could use it + """ + _ = tensor_d + _ = others + y = tensor_y + with torch.enable_grad(): + phi = self._cal_phi(tensor_x) + dummy_w_scale = torch.tensor(1.).to(tensor_x.device).requires_grad_() + # interleave instances inside a minibatch + loss_1 = F.cross_entropy(phi[::2] * dummy_w_scale, y[::2]) + loss_2 = F.cross_entropy(phi[1::2] * dummy_w_scale, y[1::2]) + grad_1 = autograd.grad(loss_1, [dummy_w_scale], create_graph=True)[0] + grad_2 = autograd.grad(loss_2, [dummy_w_scale], create_graph=True)[0] + loss_irm_scalar = torch.sum(grad_1 * grad_2) # scalar + loss_irm_scalar = torch.square(loss_irm_scalar) + loss_irm_tensor = loss_irm_scalar.expand(tensor_x.shape[0]) + return [loss_irm_tensor], [self.aconf.gamma_reg] diff --git a/domainlab/algos/trainers/train_irm_sep_dom.py b/domainlab/algos/trainers/train_irm_sep_dom.py new file mode 100644 index 000000000..94d3bca79 --- /dev/null +++ b/domainlab/algos/trainers/train_irm_sep_dom.py @@ -0,0 +1,39 @@ +""" +use random start to generate adversarial images +""" +import torch +from torch import autograd +from torch.nn import functional as F +from domainlab.algos.trainers.train_irm import TrainerIRM + + +class TrainerIRMSepDom(TrainerIRM): + def tr_epoch(self, epoch, flag_info=False): + list_loaders = list(self.dict_loader_tr.values()) + loaders_zip = zip(*list_loaders) + self.model.train() + self.epo_loss_tr = 0 + + for ind_batch, tuple_data_domains_batch in enumerate(loaders_zip): + self.optimizer.zero_grad() + list_domain_loss_erm = [] + list_domain_reg = [] + for batch_domain_e in tuple_data_domains_batch: + tensor_x, tensor_y, tensor_d, *others = batch_domain_e + tensor_x, tensor_y, tensor_d = \ + tensor_x.to(self.device), tensor_y.to(self.device), \ + tensor_d.to(self.device) + list_domain_loss_erm.append( + self.model.cal_task_loss(tensor_x, tensor_y)) + list_1ele_loss_irm, _ = \ + self.cal_reg_loss(tensor_x, tensor_y, tensor_d, others) + list_domain_reg += list_1ele_loss_irm + loss = torch.sum(torch.stack(list_domain_loss_erm)) + \ + self.aconf.gamma_reg * torch.sum(torch.stack(list_domain_reg)) + loss.backward() + self.optimizer.step() + self.epo_loss_tr += loss.detach().item() + self.after_batch(epoch, ind_batch) + + flag_stop = self.observer.update(epoch, flag_info) # notify observer + return flag_stop diff --git a/domainlab/algos/trainers/train_matchdg.py b/domainlab/algos/trainers/train_matchdg.py index cfe8e5a66..ef4b1c862 100644 --- a/domainlab/algos/trainers/train_matchdg.py +++ b/domainlab/algos/trainers/train_matchdg.py @@ -13,6 +13,7 @@ ) from domainlab.tasks.utils_task_dset import DsetIndDecorator4XYD from domainlab.utils.logger import Logger +from domainlab.utils.hyperparameter_retrieval import get_gamma_reg class TrainerMatchDG(AbstractTrainer): @@ -36,7 +37,7 @@ def init_business( self.base_domain_size = get_base_domain_size4match_dg(self.task) self.epo_loss_tr = 0 self.flag_erm = flag_erm - self.lambda_ctr = self.aconf.gamma_reg + self.lambda_ctr = get_gamma_reg(aconf, self.name) self.mk_match_tensor(epoch=0) self.flag_match_tensor_sweep_over = False self.tuple_tensor_ref_domain2each_y = None @@ -94,7 +95,7 @@ def tr_epoch(self, epoch, flag_info=False): logger.info("\n\nPhase erm+ctr \n\n") self.flag_erm = True - flag_stop = self.observer.update(epoch) # notify observer + flag_stop = self.observer.update(epoch, flag_info) # notify observer return flag_stop def tr_batch(self, epoch, batch_idx, x_e, y_e, d_e, others=None): diff --git a/domainlab/algos/trainers/train_mldg.py b/domainlab/algos/trainers/train_mldg.py index 90318286c..050227999 100644 --- a/domainlab/algos/trainers/train_mldg.py +++ b/domainlab/algos/trainers/train_mldg.py @@ -10,6 +10,7 @@ from domainlab.algos.trainers.train_basic import TrainerBasic from domainlab.tasks.utils_task import mk_loader from domainlab.tasks.utils_task_dset import DsetZip +from domainlab.utils.hyperparameter_retrieval import get_gamma_reg class TrainerMLDG(AbstractTrainer): @@ -34,6 +35,7 @@ def before_tr(self): flag_accept=False, ) self.prepare_ziped_loader() + super().before_tr() def prepare_ziped_loader(self): """ @@ -50,7 +52,7 @@ def prepare_ziped_loader(self): ddset_mix = DsetZip(ddset_source, ddset_target) self.loader_tr_source_target = mk_loader(ddset_mix, self.aconf.bs) - def tr_epoch(self, epoch): + def tr_epoch(self, epoch, flag_info=False): self.model.train() self.epo_loss_tr = 0 self.prepare_ziped_loader() @@ -108,7 +110,7 @@ def tr_epoch(self, epoch): loss = ( loss_source_task.sum() + source_reg_tr.sum() - + self.aconf.gamma_reg * loss_look_forward.sum() + + get_gamma_reg(self.aconf, self.name) * loss_look_forward.sum() ) # loss.backward() @@ -116,5 +118,5 @@ def tr_epoch(self, epoch): self.optimizer.step() self.epo_loss_tr += loss.detach().item() self.after_batch(epoch, ind_batch) - flag_stop = self.observer.update(epoch) # notify observer + flag_stop = self.observer.update(epoch, flag_info) # notify observer return flag_stop diff --git a/domainlab/algos/trainers/zoo_trainer.py b/domainlab/algos/trainers/zoo_trainer.py index 651b80fa7..dcf1785dc 100644 --- a/domainlab/algos/trainers/zoo_trainer.py +++ b/domainlab/algos/trainers/zoo_trainer.py @@ -2,12 +2,18 @@ select trainer """ from domainlab.algos.trainers.train_basic import TrainerBasic +from domainlab.algos.trainers.train_ema import TrainerMA from domainlab.algos.trainers.train_dial import TrainerDIAL from domainlab.algos.trainers.train_fbopt_b import TrainerFbOpt -from domainlab.algos.trainers.train_hyper_scheduler import TrainerHyperScheduler +from domainlab.algos.trainers.train_hyper_scheduler \ + import TrainerHyperScheduler from domainlab.algos.trainers.train_matchdg import TrainerMatchDG from domainlab.algos.trainers.train_mldg import TrainerMLDG from domainlab.algos.trainers.train_fishr import TrainerFishr +from domainlab.algos.trainers.train_irm import TrainerIRM +from domainlab.algos.trainers.train_irm_sep_dom import TrainerIRMSepDom +from domainlab.algos.trainers.train_causIRL import TrainerCausalIRL +from domainlab.algos.trainers.train_coral import TrainerCoral class TrainerChainNodeGetter(object): @@ -46,12 +52,17 @@ def __call__(self, lst_candidates=None, default=None, lst_excludes=None): ) chain = TrainerBasic(None) + chain = TrainerMA(chain) chain = TrainerDIAL(chain) chain = TrainerMatchDG(chain) chain = TrainerMLDG(chain) chain = TrainerFishr(chain) + chain = TrainerIRM(chain) + chain = TrainerIRMSepDom(chain) chain = TrainerHyperScheduler(chain) chain = TrainerFbOpt(chain) + chain = TrainerCausalIRL(chain) + chain = TrainerCoral(chain) node = chain.handle(self.request) head = node while self._list_str_trainer: diff --git a/domainlab/arg_parser.py b/domainlab/arg_parser.py index 61a2ea97a..055f8cfde 100644 --- a/domainlab/arg_parser.py +++ b/domainlab/arg_parser.py @@ -13,6 +13,37 @@ from domainlab.models.args_vae import add_args2parser_vae from domainlab.utils.logger import Logger +class ParseValuesOrKeyValuePairs(argparse.Action): + """Class used for arg parsing where values are provided in a key value format""" + + def __call__(self, parser: argparse.ArgumentParser, + namespace: argparse.Namespace, values: str, option_string: str = None): + """ + Handle parsing of key value pairs, or a single value instead + + Args: + parser (argparse.ArgumentParser): The ArgumentParser object. + namespace (argparse.Namespace): The namespace object to store parsed values. + values (str): The string containing key=value pairs or a single float value. + option_string (str, optional): The option string that triggered this action (unused). + + Raises: + ValueError: If the values cannot be parsed to float. + """ + if "=" in values: + my_dict = {} + for kv in values.split(","): + k, v = kv.split("=") + try: + my_dict[k.strip()] = float(v.strip()) + except ValueError: + raise ValueError(f"Invalid value in key-value pair: '{kv}', must be float") + setattr(namespace, self.dest, my_dict) + else: + try: + setattr(namespace, self.dest, float(values)) + except ValueError: + raise ValueError(f"Invalid value for {self.dest}: '{values}', must be float") def mk_parser_main(): """ @@ -32,7 +63,13 @@ def mk_parser_main(): parser.add_argument("--lr", type=float, default=1e-4, help="learning rate") parser.add_argument( - "--gamma_reg", type=float, default=0.1, help="weight of regularization loss" + "--gamma_reg", + default=0.1, + help="weight of regularization loss in the form of $$\ell(\cdot) + \mu \times R(\cdot)$$ \ + can specify per model as 'default=3.0, dann=1.0,jigen=2.0', where default refer to gamma for trainer \ + note diva is implemented $$\ell(\cdot) + \mu \times R(\cdot)$$ \ + so diva does not have gamma_reg", + action=ParseValuesOrKeyValuePairs ) parser.add_argument("--es", type=int, default=1, help="early stop steps") @@ -77,6 +114,15 @@ def mk_parser_main(): Set to 0 to turn warmup off.", ) + parser.add_argument( + "-nb4ratio", + "--nb4reg_over_task_ratio", + type=int, + default=1, + help="number of batches for estimating reg loss over task loss ratio \ + default 1", + ) + parser.add_argument("--debug", action="store_true", default=False) parser.add_argument("--dmem", action="store_true", default=False) parser.add_argument( @@ -251,6 +297,13 @@ def mk_parser_main(): parser.add_argument("--task", metavar="ta", type=str, help="task name") + parser.add_argument( + "--val_threshold", + type=float, + default=None, + help="Accuracy threshold before early stopping can be applied" + ) + arg_group_task = parser.add_argument_group("task args") arg_group_task.add_argument( @@ -301,7 +354,10 @@ def mk_parser_main(): arg_group_task.add_argument( "--loglevel", type=str, default="DEBUG", help="sets the loglevel of the logger" ) - + arg_group_task.add_argument( + "--shuffling_off", action="store_true", default=False, + help="disable shuffling of the training dataloader for the dataset" + ) # args for variational auto encoder arg_group_vae = parser.add_argument_group("vae") arg_group_vae = add_args2parser_vae(arg_group_vae) diff --git a/domainlab/dsets/dset_subfolder.py b/domainlab/dsets/dset_subfolder.py index 0d29f18b6..d9261c54f 100644 --- a/domainlab/dsets/dset_subfolder.py +++ b/domainlab/dsets/dset_subfolder.py @@ -152,6 +152,8 @@ def _find_classes(self, mdir): if not flag_user_input_classes_in_folder: logger.info(f"user provided class names: {self.list_class_dir}") logger.info(f"subfolder names from folder: {mdir} {classes}") + unmatched_names = set(self.list_class_dir) - set(classes) + logger.info(f"unmatched class names provided by user: {unmatched_names}") raise RuntimeError( "user provided class names does not match the subfolder names" ) diff --git a/domainlab/exp/exp_main.py b/domainlab/exp/exp_main.py index 51397131b..a033bb734 100755 --- a/domainlab/exp/exp_main.py +++ b/domainlab/exp/exp_main.py @@ -10,7 +10,6 @@ from domainlab.tasks.zoo_tasks import TaskChainNodeGetter from domainlab.utils.logger import Logger from domainlab.utils.sanity_check import SanityCheck - os.environ["CUDA_LAUNCH_BLOCKING"] = "1" # debug @@ -51,19 +50,22 @@ def __init__(self, args, task=None, model=None, observer=None, visitor=AggWriter self.model = model self.epochs = self.args.epos self.epoch_counter = 1 + self.val_threshold = args.val_threshold if observer is None: observer = observer_default if not self.trainer.flag_initialized: self.trainer.init_business(self.model, self.task, observer, device, args) self.visitor = visitor(self) # visitor depends on task initialization first # visitor must be initialized last after trainer is initialized + self.experiment_duration = None self.model.set_saver(self.visitor) - + def execute(self, num_epochs=None): """ train model check performance by loading persisted model """ + self.model.save() # cause CI infinite loop when put in initializer? if num_epochs is None: num_epochs = self.epochs + 1 t_0 = datetime.datetime.now() @@ -96,6 +98,7 @@ def execute(self, num_epochs=None): f"Experiment finished at epoch: {self.epoch_counter} " f"with time: {t_c - t_0} at {t_c}" ) + self.experiment_duration = t_c - t_0 self.trainer.post_tr() def clean_up(self): diff --git a/domainlab/exp/exp_utils.py b/domainlab/exp/exp_utils.py index 2af681731..22a609b2c 100644 --- a/domainlab/exp/exp_utils.py +++ b/domainlab/exp/exp_utils.py @@ -179,6 +179,11 @@ def _gen_line(self, dict_metric): confmat_filename = dict_cols.get("mname", None) # return None if not found # @FIXME: strong dependency on host attribute name dict_cols.update({epos_name: self.host.epoch_counter}) + if self.host.experiment_duration is not None: + dict_cols.update({"experiment_duration": self.host.experiment_duration}) + else: + print("Does not have attribute") + print(self.host) if not self.has_first_line: self.first_line(dict_cols) list_str = [str(dict_cols[key]) for key in self.list_cols] diff --git a/domainlab/exp_protocol/aggregate_results.py b/domainlab/exp_protocol/aggregate_results.py index d67cf5a0a..2d72316bb 100644 --- a/domainlab/exp_protocol/aggregate_results.py +++ b/domainlab/exp_protocol/aggregate_results.py @@ -43,6 +43,7 @@ def agg_from_directory(input_dir: str, output_file: str): def agg_main(bm_dir: str, skip_plotting: bool = False): """Aggregates partial results and generate plots.""" + bm_dir.rstrip("/") agg_output = f"{bm_dir}/results.csv" agg_input = f"{bm_dir}/rule_results" agg_from_directory(agg_input, agg_output) diff --git a/domainlab/exp_protocol/benchmark.smk b/domainlab/exp_protocol/benchmark.smk index fcc9eb4f3..b54d8314c 100644 --- a/domainlab/exp_protocol/benchmark.smk +++ b/domainlab/exp_protocol/benchmark.smk @@ -72,6 +72,8 @@ rule parameter_sampling: expand("{path}", path=config_path) output: dest=expand("{output_dir}/hyperparameters.csv", output_dir=config["output_dir"]) + # resources: + # log_dir="slurm_logs_test" params: sampling_seed=os.environ["DOMAINLAB_CUDA_HYPERPARAM_SEED"] run: @@ -120,6 +122,7 @@ rule run_experiment: resources: nvidia_gpu=1 run: + shell("cat {input}") from domainlab.exp_protocol.run_experiment import run_experiment # import sys # pos = None @@ -159,6 +162,8 @@ rule agg_results: # put different csv file in a big csv file input: exp_results=experiment_result_files + # resources: + # log_dir="slurm_logs_test" output: out_file=expand("{output_dir}/results.csv", output_dir=config["output_dir"]) run: diff --git a/domainlab/models/a_model.py b/domainlab/models/a_model.py index ca639daa2..3767aa58d 100644 --- a/domainlab/models/a_model.py +++ b/domainlab/models/a_model.py @@ -187,3 +187,35 @@ def dset_decoration_args_algo(self, args, ddset): if self._decoratee is not None: return self._decoratee.dset_decoration_args_algo(args, ddset) return ddset + + @property + def p_na_prefix(self): + """ + common prefix for Models + """ + return "Model" + + @property + def name(self): + """ + get the name of the algorithm + """ + na_prefix = self.p_na_prefix + len_prefix = len(na_prefix) + na_class = type(self).__name__ + if na_class[:len_prefix] != na_prefix: + raise RuntimeError( + "Model builder node class must start with ", + na_prefix, + "the current class is named: ", + na_class, + ) + return type(self).__name__[len_prefix:].lower() + + def print_parameters(self): + """ + Function to print all parameters of the object. + Can be used to print the parameters of every child class. + """ + params = vars(self) + print(f"Parameters of {type(self).__name__}: {params}") diff --git a/domainlab/models/a_model_classif.py b/domainlab/models/a_model_classif.py index 1917f752e..ea9ef5f47 100644 --- a/domainlab/models/a_model_classif.py +++ b/domainlab/models/a_model_classif.py @@ -25,7 +25,6 @@ loss_cross_entropy_extended = extend(nn.CrossEntropyLoss(reduction="none")) - class AModelClassif(AModel, metaclass=abc.ABCMeta): """ operations that all classification model should have @@ -244,3 +243,4 @@ def _cal_reg_loss(self, tensor_x, tensor_y, tensor_d, others=None): device = tensor_x.device bsize = tensor_x.shape[0] return [torch.zeros(bsize).to(device)], [0.0] + # return [], [] diff --git a/domainlab/models/model_dann.py b/domainlab/models/model_dann.py index b479c309c..b940c5d71 100644 --- a/domainlab/models/model_dann.py +++ b/domainlab/models/model_dann.py @@ -79,7 +79,10 @@ def reset_aux_net(self): @property def list_str_multiplier_na(self): - return ["alpha"] + """ + name of the multiplier + """ + return [self.name + "_alpha"] def hyper_update(self, epoch, fun_scheduler): """hyper_update. @@ -89,13 +92,15 @@ def hyper_update(self, epoch, fun_scheduler): dict_rst = fun_scheduler( epoch ) # the __call__ method of hyperparameter scheduler - self.alpha = dict_rst["alpha"] + self.alpha = dict_rst[self.name + "_alpha"] def hyper_init(self, functor_scheduler, trainer=None): """hyper_init. :param functor_scheduler: name of the scheduler class """ - return functor_scheduler(trainer=trainer, alpha=self.alpha) + parameters = {} + parameters[self.name + "_alpha"] = self.alpha + return functor_scheduler(trainer=trainer, **parameters) def _cal_reg_loss(self, tensor_x, tensor_y, tensor_d, others): _ = others diff --git a/domainlab/models/model_diva.py b/domainlab/models/model_diva.py index c907eb94a..859fb6fa5 100644 --- a/domainlab/models/model_diva.py +++ b/domainlab/models/model_diva.py @@ -100,9 +100,9 @@ def hyper_update(self, epoch, fun_scheduler): :param fun_scheduler: """ dict_rst = fun_scheduler(epoch) - self.beta_d = dict_rst["beta_d"] - self.beta_y = dict_rst["beta_y"] - self.beta_x = dict_rst["beta_x"] + self.beta_d = dict_rst[self.name + "_beta_d"] + self.beta_y = dict_rst[self.name + "_beta_x"] + self.beta_x = dict_rst[self.name + "_beta_y"] def hyper_init(self, functor_scheduler, trainer=None): """ @@ -110,11 +110,12 @@ def hyper_init(self, functor_scheduler, trainer=None): :param functor_scheduler: the class name of the scheduler """ + parameters = {} + parameters[self.name + "_beta_d"] = self.beta_d + parameters[self.name + "_beta_y"] = self.beta_y + parameters[self.name + "_beta_x"] = self.beta_x return functor_scheduler( - trainer=trainer, - beta_d=self.beta_d, - beta_y=self.beta_y, - beta_x=self.beta_x, + trainer=trainer, **parameters ) @property @@ -122,7 +123,7 @@ def list_str_multiplier_na(self): """ list of multipliers name """ - return ["mu_recon", "beta_d", "beta_x", "beta_y", "gamma_d"] + return [f"{self.name}_mu_recon", f"{self.name}_beta_d", f"{self.name}_beta_x", f"{self.name}_beta_y", f"{self.name}_gamma_d"] @property def dict_multiplier(self): @@ -130,11 +131,11 @@ def dict_multiplier(self): list of multipliers name, which correspond to cal_reg_loss """ return { - "mu_recon": self.mu_recon, - "beta_d": self.beta_d, - "beta_x": self.beta_x, - "beta_y": self.beta_y, - "gamma_d": self.gamma_d, + f"{self.name}_mu_recon": self.mu_recon, + f"{self.name}_beta_d": self.beta_d, + f"{self.name}_beta_x": self.beta_x, + f"{self.name}_beta_y": self.beta_y, + f"{self.name}_gamma_d": self.gamma_d, } def _cal_reg_loss(self, tensor_x, tensor_y, tensor_d, others=None): @@ -186,11 +187,11 @@ def hyper_update(self, epoch, fun_scheduler): :param fun_scheduler: """ dict_rst = fun_scheduler(epoch) - self.beta_d = dict_rst["beta_d"] - self.beta_y = dict_rst["beta_y"] - self.beta_x = dict_rst["beta_x"] - self.gamma_d = dict_rst["gamma_d"] - self.mu_recon = dict_rst["mu_recon"] + self.beta_d = dict_rst[self.name + "_beta_d"] + self.beta_y = dict_rst[self.name + "_beta_x"] + self.beta_x = dict_rst[self.name + "_beta_y"] + self.gamma_d = dict_rst[self.name + "_gamma_d"] + self.mu_recon = dict_rst[self.name + "_mu_recon"] def hyper_init(self, functor_scheduler, trainer=None): """ @@ -198,13 +199,14 @@ def hyper_init(self, functor_scheduler, trainer=None): :param functor_scheduler: the class name of the scheduler """ + parameters = {} + parameters[self.name + "_beta_d"] = self.beta_d + parameters[self.name + "_beta_y"] = self.beta_y + parameters[self.name + "_beta_x"] = self.beta_x + parameters[self.name + "_gamma_d"] = self.gamma_d + parameters[self.name + "_mu_recon"] = self.mu_recon return functor_scheduler( - trainer=trainer, - beta_d=self.beta_d, - beta_y=self.beta_y, - beta_x=self.beta_x, - gamma_d=self.gamma_d, - mu_recon=self.mu_recon, + trainer=trainer, **parameters ) class ModelDIVAGammadReconPerPixel(ModelDIVAGammadRecon): @@ -237,10 +239,10 @@ def hyper_update(self, epoch, fun_scheduler): :param fun_scheduler: """ dict_rst = fun_scheduler(epoch) - self.beta_d = dict_rst["beta_d"] - self.beta_y = dict_rst["beta_y"] - self.beta_x = dict_rst["beta_x"] - self.gamma_d = dict_rst["gamma_d"] + self.beta_d = dict_rst[self.name + "_beta_d"] + self.beta_y = dict_rst[self.name + "_beta_x"] + self.beta_x = dict_rst[self.name + "_beta_y"] + self.gamma_d = dict_rst[self.name + "_gamma_d"] def hyper_init(self, functor_scheduler, trainer=None): """ @@ -248,12 +250,14 @@ def hyper_init(self, functor_scheduler, trainer=None): :param functor_scheduler: the class name of the scheduler """ + parameters = {} + parameters[self.name + "_beta_d"] = self.beta_d + parameters[self.name + "_beta_y"] = self.beta_y + parameters[self.name + "_beta_x"] = self.beta_x + parameters[self.name + "_gamma_d"] = self.gamma_d + parameters[self.name + "_mu_recon"] = self.mu_recon return functor_scheduler( - trainer=trainer, - beta_d=self.beta_d, - beta_y=self.beta_y, - beta_x=self.beta_x, - gamma_d=self.gamma_d, + trainer=trainer, **parameters ) class ModelDIVADefault(ModelDIVA): diff --git a/domainlab/models/model_erm.py b/domainlab/models/model_erm.py index 6ee9c23f9..4ccec7a50 100644 --- a/domainlab/models/model_erm.py +++ b/domainlab/models/model_erm.py @@ -10,7 +10,6 @@ except: backpack = None - def mk_erm(parent_class=AModelClassif, **kwargs): """ Instantiate a Deepall (ERM) model @@ -53,4 +52,30 @@ def convert4backpack(self): """ self._net_invar_feat = extend(self._net_invar_feat, use_converter=True) self.net_classifier = extend(self.net_classifier, use_converter=True) + + def hyper_update(self, epoch, fun_scheduler): # pylint: disable=unused-argument + """ + Method necessary to combine with hyperparameter scheduler + + :param epoch: + :param fun_scheduler: + """ + + def hyper_init(self, functor_scheduler, trainer=None): + """ + initiate a scheduler object via class name and things inside this model + + :param functor_scheduler: the class name of the scheduler + """ + return functor_scheduler( + trainer=trainer + ) + + @property + def list_str_multiplier_na(self): + """ + list of multipliers which match the order in cal_reg_loss + """ + return [] + return ModelERM diff --git a/domainlab/models/model_hduva.py b/domainlab/models/model_hduva.py index 929d179b7..f7ab1d48c 100644 --- a/domainlab/models/model_hduva.py +++ b/domainlab/models/model_hduva.py @@ -66,11 +66,11 @@ def hyper_update(self, epoch, fun_scheduler): dict_rst = fun_scheduler( epoch ) # the __call__ function of hyper-para-scheduler object - self.beta_d = dict_rst["beta_d"] - self.beta_y = dict_rst["beta_y"] - self.beta_x = dict_rst["beta_x"] - self.beta_t = dict_rst["beta_t"] - self.mu_recon = dict_rst["mu_recon"] + self.beta_d = dict_rst[self.name + "_beta_d"] + self.beta_y = dict_rst[self.name + "_beta_y"] + self.beta_x = dict_rst[self.name + "_beta_x"] + self.beta_t = dict_rst[self.name + "_beta_t"] + self.mu_recon = dict_rst[self.name + "_mu_recon"] def hyper_init(self, functor_scheduler, trainer=None): """hyper_init. @@ -79,13 +79,14 @@ def hyper_init(self, functor_scheduler, trainer=None): # calling the constructor of the hyper-parameter-scheduler class, so that this scheduler # class build a dictionary {"beta_d":self.beta_d, "beta_y":self.beta_y} # constructor signature is def __init__(self, **kwargs): + parameters = {} + parameters[self.name + "_beta_d"] = self.beta_d + parameters[self.name + "_beta_y"] = self.beta_y + parameters[self.name + "_beta_x"] = self.beta_x + parameters[self.name + "_beta_t"] = self.beta_t + parameters[self.name + "_mu_recon"] = self.mu_recon return functor_scheduler( - trainer=trainer, - mu_recon=self.mu_recon, - beta_d=self.beta_d, - beta_y=self.beta_y, - beta_x=self.beta_x, - beta_t=self.beta_t, + trainer=trainer, **parameters ) @store_args @@ -207,7 +208,7 @@ def list_str_multiplier_na(self): """ list of multipliers name which matches the order from cal_reg_loss """ - return ["mu_recon", "beta_x", "beta_y", "beta_d", "beta_t"] + return [f"{self.name}_mu_recon", f"{self.name}_beta_d", f"{self.name}_beta_x", f"{self.name}_beta_y", f"{self.name}_beta_t"] @property def dict_multiplier(self): @@ -215,11 +216,11 @@ def dict_multiplier(self): dictionary of multipliers name """ return { - "mu_recon": self.mu_recon, - "beta_d": self.beta_d, - "beta_x": self.beta_x, - "beta_y": self.beta_y, - "beta_t": self.beta_t, + f"{self.name}_mu_recon": self.mu_recon, + f"{self.name}_beta_d": self.beta_d, + f"{self.name}_beta_x": self.beta_x, + f"{self.name}_beta_y": self.beta_y, + f"{self.name}_beta_t": self.beta_t, } def extract_semantic_feat(self, tensor_x): diff --git a/domainlab/models/model_jigen.py b/domainlab/models/model_jigen.py index 43cb6ea98..2d382293f 100644 --- a/domainlab/models/model_jigen.py +++ b/domainlab/models/model_jigen.py @@ -81,14 +81,14 @@ def list_str_multiplier_na(self): """ list of multipliers which match the order in cal_reg_loss """ - return ["alpha"] + return [self.name + "_alpha"] @property def dict_multiplier(self): """ dictionary of multipliers """ - return {"alpha": self.alpha} + return {f"{self.name}_alpha": self.alpha} def dset_decoration_args_algo(self, args, ddset): """ diff --git a/domainlab/utils/generate_benchmark_plots.py b/domainlab/utils/generate_benchmark_plots.py index 9125ec7b8..9c0be5fae 100644 --- a/domainlab/utils/generate_benchmark_plots.py +++ b/domainlab/utils/generate_benchmark_plots.py @@ -15,13 +15,16 @@ matplotlib.use("Agg") # header of the csv file: -# param_index, task, algo, epos, te_d, seed, params, acc, precision, recall, specificity, f1, auroc +# 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19 +# param_index, method, mname, commit, algo, epos, te_d, seed, params, acc, precision, recall, specificity, f1, auroc, acc_oracle, acc_val, model_selection_epoch, experiment_duration + COLNAME_METHOD = "method" COLNAME_IDX_PARAM = "param_index" COLNAME_PARAM = "params" G_DF_TASK_COL = 1 # column in which the method name is saved G_DF_PLOT_COL_METRIC_START = 9 # first 0-6 columns are not metric +G_DF_PLOT_COL_METRIC_END = 17 # first 0-6 columns are not metric def gen_benchmark_plots( @@ -87,8 +90,8 @@ def gen_plots(dataframe: pd.DataFrame, output_dir: str, use_param_index: bool): ['param_index','task',' algo',' epos',' te_d',' seed',' params',' acc','precision',...] """ os.makedirs(output_dir, exist_ok=True) - obj = dataframe.columns[G_DF_PLOT_COL_METRIC_START:] - + pos_numeric_end = min(G_DF_PLOT_COL_METRIC_END, dataframe.shape[1]) + obj = dataframe.columns[G_DF_PLOT_COL_METRIC_START:pos_numeric_end] # boxplots for objective in obj: boxplot( @@ -265,7 +268,8 @@ def scatterplot_matrix( but also between the parameter setups """ dataframe = dataframe_in.copy() - index = list(range(G_DF_PLOT_COL_METRIC_START, dataframe.shape[1])) + pos_numeric_end = min(G_DF_PLOT_COL_METRIC_END, dataframe.shape[1]) + index = list(range(G_DF_PLOT_COL_METRIC_START, pos_numeric_end)) if distinguish_param_setups: dataframe_ = dataframe.iloc[:, index] dataframe_.insert( @@ -278,7 +282,8 @@ def scatterplot_matrix( g_p = sns.pairplot(data=dataframe_, hue="label", corner=True, kind=kind) else: - index_ = list(range(G_DF_PLOT_COL_METRIC_START, dataframe.shape[1])) + pos_numeric_end = min(G_DF_PLOT_COL_METRIC_END, dataframe.shape[1]) + index_ = list(range(G_DF_PLOT_COL_METRIC_START, pos_numeric_end)) index_.insert(0, G_DF_TASK_COL) dataframe_ = dataframe.iloc[:, index_] @@ -415,7 +420,8 @@ def radar_plot(dataframe_in, file=None, distinguish_hyperparam=True): else: dataframe.insert(0, "label", dataframe[COLNAME_METHOD]) # we need "G_DF_PLOT_COL_METRIC_START + 1" as we did insert the columns 'label' at index 0 - index = list(range(G_DF_PLOT_COL_METRIC_START + 1, dataframe.shape[1])) + pos_numeric_end = min(G_DF_PLOT_COL_METRIC_END, dataframe.shape[1]) + index = list(range(G_DF_PLOT_COL_METRIC_START + 1, pos_numeric_end)) num_lines = len(dataframe["label"].unique()) _, axis = plt.subplots( figsize=(9, 9 + (0.28 * num_lines)), subplot_kw=dict(polar=True) diff --git a/domainlab/utils/hyperparameter_retrieval.py b/domainlab/utils/hyperparameter_retrieval.py new file mode 100644 index 000000000..5a1960e2e --- /dev/null +++ b/domainlab/utils/hyperparameter_retrieval.py @@ -0,0 +1,18 @@ +""" +retrieval for hyperparameters +""" + +def get_gamma_reg(args, component_name): + """ + Retrieves either a shared gamma regularization, or individual ones for each specified object + """ + gamma_reg = args.gamma_reg + if isinstance(gamma_reg, dict): + if component_name in gamma_reg: + return gamma_reg[component_name] + if 'default' in gamma_reg: + return gamma_reg['default'] + raise ValueError("""If a gamma_reg dict is specified, + but no value set for every model and trainer, + a default value must be specified.""") + return gamma_reg # Return the single value if it's not a dictionary diff --git a/domainlab/zdata/ztest_files/test_parameter_samples.csv b/domainlab/zdata/ztest_files/test_parameter_samples.csv index 609864f2f..e3ebdbf4a 100644 --- a/domainlab/zdata/ztest_files/test_parameter_samples.csv +++ b/domainlab/zdata/ztest_files/test_parameter_samples.csv @@ -1,2 +1,2 @@ -,task,algo,params +,method,model,params 0,diva,diva,"{'gamma_y': 10e5, 'gamma_d': 1e5}" diff --git a/examples/benchmark/aistat_dial_erm_mhof.yaml b/examples/benchmark/aistat_dial_erm_mhof.yaml new file mode 100644 index 000000000..ab530d72f --- /dev/null +++ b/examples/benchmark/aistat_dial_erm_mhof.yaml @@ -0,0 +1,84 @@ +mode: grid + +output_dir: zoutput/benchmarks/benchmark_mhof_dial + +sampling_seed: 0 +startseed: 0 +endseed: 2 + +test_domains: + - sketch + +domainlab_args: + tpath: examples/tasks/task_pacs_aug.py + dmem: False + lr: 5e-5 + epos: 500 + epos_min: 200 + es: 5 + bs: 32 + san_check: False + npath: examples/nets/resnet50domainbed.py + npath_dom: examples/nets/resnet50domainbed.py + zx_dim: 0 + zy_dim: 64 + zd_dim: 64 + + + + +Shared params: + nb4reg_over_task_ratio: + distribution: categorical # name of the distribution + datatype: int + values: # concrete values to choose from + - 0 + - 100 + + mu_init: + distribution: categorical + datatype: float + values: + - 0.000001 + - 0.001 + + mu_clip: + distribution: categorical + datatype: float + values: + - 1 + - 10 + - 100 + - 1000 + + k_i_gain_ratio: + min: 0.1 + max: 1 + num: 3 + distribution: uniform + + gamma_reg: + min: 0.01 + max: 1e4 + num: 4 + distribution: loguniform + + +# Test fbopt with different hyperparameter configurations + +fbopt_dial_erm: + model: erm + trainer: fbopt_dial + nb4reg_over_task_ratio: 0 + force_setpoint_change_once: True + shared: + - k_i_gain_ratio + - mu_init + - mu_clip + +dial_erm: + model: erm + nb4reg_over_task_ratio: 0 + trainer: dial + shared: + - gamma_reg diff --git a/examples/benchmark/aistat_irl_erm_mhof.yaml b/examples/benchmark/aistat_irl_erm_mhof.yaml new file mode 100644 index 000000000..9d13e0cf3 --- /dev/null +++ b/examples/benchmark/aistat_irl_erm_mhof.yaml @@ -0,0 +1,64 @@ +mode: grid + +output_dir: zoutput/benchmarks/benchmark_mhof_causal_irl_erm_pacs + +sampling_seed: 0 +startseed: 0 +endseed: 2 + +test_domains: + - sketch + +domainlab_args: + tpath: examples/tasks/task_pacs_aug.py + dmem: False + lr: 5e-5 + epos: 500 + epos_min: 200 + es: 5 + bs: 32 + san_check: False + npath: examples/nets/resnet50domainbed.py + npath_dom: examples/nets/resnet50domainbed.py + zx_dim: 0 + zy_dim: 64 + zd_dim: 64 + + + + +Shared params: + ini_setpoint_ratio: + min: 0.5 + max: 0.99 + num: 2 + step: 0.05 + distribution: uniform + + k_i_gain_ratio: + min: 0.1 + max: 1 + num: 3 + distribution: uniform + + gamma_reg: + min: 0.01 + max: 1e4 + num: 4 + distribution: loguniform + + +# Test fbopt with different hyperparameter configurations + +fbopt_irm_erm: + model: erm + trainer: fbopt_causalirl + shared: + - ini_setpoint_ratio + - k_i_gain_ratio + +irm_erm: + model: erm + trainer: causalirl + shared: + - gamma_reg diff --git a/examples/benchmark/aistat_irm_erm_mhof.yaml b/examples/benchmark/aistat_irm_erm_mhof.yaml new file mode 100644 index 000000000..f4a508896 --- /dev/null +++ b/examples/benchmark/aistat_irm_erm_mhof.yaml @@ -0,0 +1,95 @@ +mode: grid + +output_dir: zoutput/benchmarks/benchmark_mhof_irm_erm_pacs + +sampling_seed: 0 +startseed: 0 +endseed: 2 + +test_domains: + - sketch + +domainlab_args: + tpath: examples/tasks/task_pacs_aug.py + dmem: False + lr: 5e-5 + epos: 500 + epos_min: 10 + es: 5 + bs: 32 + san_check: False + npath: examples/nets/resnet50domainbed.py + npath_dom: examples/nets/resnet50domainbed.py + zx_dim: 0 + zy_dim: 64 + zd_dim: 64 + + + + +Shared params: + nb4reg_over_task_ratio: + distribution: categorical # name of the distribution + datatype: int + values: # concrete values to choose from + - 0 + - 1 + - 100 + + mu_init: + distribution: categorical + datatype: float + values: + - 0.000001 + - 0.001 + + mu_clip: + distribution: categorical + datatype: float + values: + - 1 + - 10 + - 100 + - 1000 + + exp_shoulder_clip: + distribution: categorical + datatype: float + values: + - 1 + - 2 + - 5 + + k_i_gain_ratio: + min: 0.1 + max: 1 + num: 3 + distribution: uniform + + gamma_reg: + min: 0.01 + max: 1e4 + num: 4 + distribution: loguniform + # 1778 is the largest gamma_reg using this sampling + + +# Test fbopt with different hyperparameter configurations + +fbopt_irm_erm: + model: erm + trainer: fbopt_irm + ini_setpoint_ratio: 0.99 + force_setpoint_change_once: True + shared: + - k_i_gain_ratio + - nb4reg_over_task_ratio + - mu_clip + - mu_init + +irm_erm: + model: erm + trainer: irm + shared: + - gamma_reg + - nb4reg_over_task_ratio diff --git a/examples/benchmark/aistat_irm_erm_mhof2.yaml b/examples/benchmark/aistat_irm_erm_mhof2.yaml new file mode 100644 index 000000000..f6bc9467e --- /dev/null +++ b/examples/benchmark/aistat_irm_erm_mhof2.yaml @@ -0,0 +1,99 @@ +mode: grid + +output_dir: zoutput/benchmarks/mhof_irm_erm_pacs + +sampling_seed: 0 +startseed: 0 +endseed: 2 + +test_domains: + - sketch + +domainlab_args: + tpath: examples/tasks/task_pacs_aug.py + dmem: False + lr: 5e-5 + epos: 100 + epos_min: 10 + es: 5 + bs: 32 + san_check: False + npath: examples/nets/resnet50domainbed.py + npath_dom: examples/nets/resnet50domainbed.py + zx_dim: 0 + zy_dim: 64 + zd_dim: 64 + + + + +Shared params: + nb4reg_over_task_ratio: + distribution: categorical # name of the distribution + datatype: int + values: # concrete values to choose from + - 0 + - 100 + + mu_init: + distribution: categorical + datatype: float + values: + - 0.000001 + - 0.001 + + mu_clip: + distribution: categorical + datatype: float + values: + - 10 + - 100 + - 1000 + + exp_shoulder_clip: + distribution: categorical + datatype: float + values: + - 1 + - 5 + + k_i_gain_ratio: + min: 0.1 + max: 1 + num: 2 + distribution: uniform + + gamma_reg: + distribution: categorical + datatype: float + values: + - 0.01 + - 0.1 + - 1 + - 10 + - 100 + - 1000 + + # 1778 is the largest gamma_reg using this sampling + + +# Test fbopt with different hyperparameter configurations + +fbopt_irm_erm: + model: erm + trainer: fbopt_irm + ini_setpoint_ratio: 0.99 + force_setpoint_change_once: True + shared: + - k_i_gain_ratio + - nb4reg_over_task_ratio + - mu_init + - mu_clip + - exp_shoulder_clip + +irm_erm: + model: erm + trainer: irm + shared: + - gamma_reg + - nb4reg_over_task_ratio diff --git a/examples/benchmark/aistat_pacs_mhof_dial_diva.yaml b/examples/benchmark/aistat_pacs_mhof_dial_diva.yaml new file mode 100644 index 000000000..ba0753e53 --- /dev/null +++ b/examples/benchmark/aistat_pacs_mhof_dial_diva.yaml @@ -0,0 +1,85 @@ +mode: grid + +output_dir: zoutput/benchmarks/benchmark_fbopt_dial_diva_pacs + +sampling_seed: 0 +startseed: 0 +endseed: 2 + +test_domains: + - sketch + +domainlab_args: + tpath: examples/tasks/task_pacs_aug.py + dmem: False + lr: 5e-5 + epos: 500 + epos_min: 20 + es: 5 + bs: 16 + san_check: False + npath: examples/nets/resnet50domainbed.py + npath_dom: examples/nets/resnet50domainbed.py + zx_dim: 0 + zy_dim: 64 + zd_dim: 64 + + + + +Shared params: + k_i_gain_ratio: + min: 0.01 + max: 0.90 + num: 3 + step: 0.0001 + distribution: uniform + + dial_lr: + min: 1e-5 + max: 1e-3 + num: 2 + step: 1e-5 + distribution: uniform + + dial_epsilon: + min: 1e-5 + max: 1e-3 + num: 2 + step: 1e-5 + distribution: uniform + + gamma_y: + min: 1.0 + max: 1e6 + step: 100 + num: 3 + distribution: loguniform + + gamma_d: + min: 1.0 + max: 1e6 + step: 100 + num: 3 + distribution: loguniform + + +# Test fbopt with different hyperparameter configurations + +dial_fbopt: + model: diva + trainer: fbopt_dial + gamma_y: 1.0 + shared: + - k_i_gain_ratio + - dial_lr + - dial_epsilon + +dial_diva: + model: diva + trainer: dial + shared: + - dial_lr + - dial_epsilon + - gamma_y + - gamma_d diff --git a/examples/benchmark/aistat_trainer_combo_dial_irm_erm_mhof.yaml b/examples/benchmark/aistat_trainer_combo_dial_irm_erm_mhof.yaml new file mode 100644 index 000000000..35ca668ba --- /dev/null +++ b/examples/benchmark/aistat_trainer_combo_dial_irm_erm_mhof.yaml @@ -0,0 +1,103 @@ +mode: grid + +output_dir: zoutput/benchmarks/mhof_combo_irm_dial_pacs + +sampling_seed: 0 +startseed: 0 +endseed: 2 + +test_domains: + - sketch + +domainlab_args: + tpath: examples/tasks/task_pacs_aug.py + dmem: False + lr: 5e-5 + epos: 100 + epos_min: 10 + es: 5 + bs: 32 + san_check: False + npath: examples/nets/resnet50domainbed.py + npath_dom: examples/nets/resnet50domainbed.py + zx_dim: 0 + zy_dim: 64 + zd_dim: 64 + + + + +Shared params: + nb4reg_over_task_ratio: + distribution: categorical # name of the distribution + datatype: int + values: # concrete values to choose from + - 0 + - 100 + + mu_init: + distribution: categorical + datatype: float + values: + - 0.000001 + - 0.001 + + mu_clip: + distribution: categorical + datatype: float + values: + - 10 + - 100 + - 1000 + + exp_shoulder_clip: + distribution: categorical + datatype: float + values: + - 1 + - 5 + + k_i_gain_ratio: + min: 0.1 + max: 1 + num: 2 + distribution: uniform + + gamma_reg: + distribution: categorical + datatype: float + values: + - 0.01 + - 0.1 + - 1 + - 10 + - 100 + - 1000 + + +fbopt_irm_dial_erm: + model: erm + trainer: fbopt_irm_dial + ini_setpoint_ratio: 0.99 + force_setpoint_change_once: True + tr_with_init_mu: True + shared: + - k_i_gain_ratio + - nb4reg_over_task_ratio + - mu_init + - mu_clip + - exp_shoulder_clip + +irm_dial: + model: erm + trainer: irm_dial + shared: + - gamma_reg + - nb4reg_over_task_ratio + +irm_dial_feedforward_full: + model: erm + trainer: hyperscheduler_irm_dial + shared: + - gamma_reg + - nb4reg_over_task_ratio diff --git a/examples/benchmark/aistat_trainer_combo_dial_irm_erm_mhof_only.yaml b/examples/benchmark/aistat_trainer_combo_dial_irm_erm_mhof_only.yaml new file mode 100644 index 000000000..f1221b2f8 --- /dev/null +++ b/examples/benchmark/aistat_trainer_combo_dial_irm_erm_mhof_only.yaml @@ -0,0 +1,99 @@ +mode: grid + +output_dir: zoutput/benchmarks/only_mhof_combo_irm_dial_pacs + +sampling_seed: 0 +startseed: 0 +endseed: 2 + +test_domains: + - sketch + +domainlab_args: + tpath: examples/tasks/task_pacs_aug.py + dmem: False + lr: 5e-5 + epos: 100 + epos_min: 10 + es: 5 + bs: 32 + san_check: False + npath: examples/nets/resnet50domainbed.py + npath_dom: examples/nets/resnet50domainbed.py + zx_dim: 0 + zy_dim: 64 + zd_dim: 64 + + + + +Shared params: + nb4reg_over_task_ratio: + distribution: categorical # name of the distribution + datatype: int + values: # concrete values to choose from + - 0 + - 100 + + mu_init: + distribution: categorical + datatype: float + values: + - 0.000001 + - 0.001 + + mu_clip: + distribution: categorical + datatype: float + values: + - 10 + - 100 + - 1000 + + exp_shoulder_clip: + distribution: categorical + datatype: float + values: + - 1 + - 5 + + k_i_gain_ratio: + min: 0.1 + max: 1 + num: 2 + distribution: uniform + + gamma_reg: + distribution: categorical + datatype: float + values: + - 0.01 + - 0.1 + - 1 + - 10 + - 100 + - 1000 + + gamma_reg: + distribution: categorical + datatype: str + values: + - "SliderAnyComponent()" + - "SliderAllComponent()" + - "DominateAnyComponent()" + + +fbopt_irm_dial_erm: + model: erm + trainer: fbopt_irm_dial + ini_setpoint_ratio: 0.99 + force_setpoint_change_once: True + coeff_ma_setpoint: 0.0 + tr_with_init_mu: True + nb4reg_over_task_ratio: 0 + shared: + - k_i_gain_ratio + - mu_init + - mu_clip + - exp_shoulder_clip + - str_setpoint_ada diff --git a/examples/benchmark/benchmark_blood3_resnet.yaml b/examples/benchmark/benchmark_blood3_resnet.yaml new file mode 100644 index 000000000..a9a1cf0ed --- /dev/null +++ b/examples/benchmark/benchmark_blood3_resnet.yaml @@ -0,0 +1,129 @@ +# test benchmark config. + +test_domains: + - acevedo +#- mll +#- matek + +output_dir: zoutput/benchmarks/blood +# number of hyperparameter samples per task. +# Thus, the total runs of each task are given +# by len(domains) * num_param_samples * num_seeds (see below) +num_param_samples: 8 +sampling_seed: 0 + +startseed: 0 +endseed: 5 # currently included + + + +domainlab_args: + # Domainlab arguments passed to each task. + # task specific arguments take precedence. + ## dataset + tpath: examples/tasks/task_blood3.py + dmem: False + lr: 5e-5 + epos: 500 + epos_min: 20 + es: 1 + bs: 32 + npath: examples/nets/resnet50domainbed.py + san_check: True + +Shared params: + num_shared_param_samples: 8 + gamma_y: + min: 1e4 + max: 2e5 + step: 100 + distribution: loguniform + + zx_dim: + min: 0 + max: 96 + step: 32 + distribution: uniform + datatype: int + + zy_dim: + min: 32 + max: 96 + step: 32 + distribution: uniform + datatype: int + + zd_dim: + reference: zy_dim + + gamma_reg: + min: 0.01 + max: 10 + distribution: loguniform + + + +diva: # name + model: diva + # set nname_dom = nname when changing nname + npath_dom: examples/nets/resnet50domainbed.py + shared: + - gamma_y + - zx_dim + - zy_dim + - zd_dim + + hyperparameters: + gamma_d: + min: 1e4 + max: 1e6 + step: 10_000 + distribution: loguniform + +hduva: # name + model: hduva + + npath_encoder_x2topic_h: examples/nets/resnet50domainbed.py + npath_encoder_sandwich_x2h4zd: examples/nets/resnet50domainbed.py + shared: + - gamma_y + - zx_dim + - zy_dim + - zd_dim + +erm: # name + model: erm + +mldg: + model: erm + trainer: mldg + shared: + - gamma_reg + +dann: + model: dann + shared: + - gamma_reg + + +dial: # name + model: erm + trainer: dial + shared: + - gamma_reg + hyperparameters: + dial_steps_perturb: + min: 1 + max: 10 + step: 1 + distribution: uniform + + dial_noise_scale: + min: 0.00001 + max: 0.1 + distribution: loguniform + + dial_epsilon: + min: 0.001 + max: 0.01 + distribution: loguniform diff --git a/examples/benchmark/benchmark_pacs_resnet_model.yaml b/examples/benchmark/benchmark_pacs_resnet_model.yaml index 7c9b9dbd7..c3bfde043 100644 --- a/examples/benchmark/benchmark_pacs_resnet_model.yaml +++ b/examples/benchmark/benchmark_pacs_resnet_model.yaml @@ -33,13 +33,13 @@ domainlab_args: Shared params: num_shared_param_samples: 9 gamma_y: - min: 1e4 + min: 1 max: 1e8 step: 1000 distribution: loguniform gamma_d: - min: 1e4 + min: 1 max: 1e8 step: 1000 distribution: loguniform diff --git a/examples/benchmark/pacs_fbopt_fishr_erm.yaml b/examples/benchmark/pacs_fbopt_fishr_erm.yaml new file mode 100644 index 000000000..781a2518e --- /dev/null +++ b/examples/benchmark/pacs_fbopt_fishr_erm.yaml @@ -0,0 +1,66 @@ +mode: grid + +output_dir: zoutput/benchmarks/benchmark_fbopt_fishr_erm_pacs + +sampling_seed: 0 +startseed: 0 +endseed: 0 + +test_domains: + - sketch + +domainlab_args: + tpath: examples/tasks/task_pacs_aug.py + dmem: False + lr: 5e-5 + epos: 10 + epos_min: 2 + es: 5 + bs: 32 + san_check: False + nname: alexnet + nname_dom: alexnet + zx_dim: 0 + zy_dim: 64 + zd_dim: 64 + + + + +Shared params: + ini_setpoint_ratio: + min: 0.5 + max: 0.99 + num: 2 + step: 0.05 + distribution: uniform + + k_i_gain: + min: 0.0001 + max: 0.01 + num: 2 + step: 0.0001 + distribution: uniform + + gamma_reg: + min: 0.01 + max: 1e4 + num: 3 + distribution: loguniform + + +# Test fbopt with different hyperparameter configurations + +fbopt_fishr_erm: + model: erm + trainer: fbopt_fishr + shared: + - ini_setpoint_ratio + - k_i_gain + - gamma_reg + +fishr_erm: + model: erm + trainer: fishr + shared: + - gamma_reg diff --git a/examples/conf/vlcs_diva_mldg_dial.yaml b/examples/conf/vlcs_diva_mldg_dial.yaml index 0701766ff..e24cfd22e 100644 --- a/examples/conf/vlcs_diva_mldg_dial.yaml +++ b/examples/conf/vlcs_diva_mldg_dial.yaml @@ -1,10 +1,14 @@ te_d: caltech # domain name of test domain tpath: examples/tasks/task_vlcs.py # python file path to specify the task bs: 2 # batch size +val_threshold: 0.8 # threashold before which training does not stop model: dann_diva # combine model DANN with DIVA epos: 1 # number of epochs trainer: mldg_dial # combine trainer MLDG and DIAL -gamma_reg: 1.0 # hyperparameter of DANN +gamma_reg: + default: 1.0 + dann: 1.5 +# in this case, mldg and dial get the default gamma_reg value 1.0 gamma_y: 700000.0 # hyperparameter of diva gamma_d: 100000.0 # hyperparameter of diva npath: examples/nets/resnet.py # neural network for class classification diff --git a/examples/tasks/demo_task_path_list_small.py b/examples/tasks/demo_task_path_list_small.py index 92425774a..af8e469a4 100644 --- a/examples/tasks/demo_task_path_list_small.py +++ b/examples/tasks/demo_task_path_list_small.py @@ -31,31 +31,31 @@ def get_task(na=None): # ## the text file below only need to specify the relative path # ## training dict_d2filepath_list_img_tr={ - "art_painting": "data/pacs_split/art_painting_10.txt", - "cartoon": "data/pacs_split/cartoon_10.txt", - "photo": "data/pacs_split/photo_10.txt", - "sketch": "data/pacs_split/sketch_10.txt", + "art_painting": "domainlab/zdata/pacs_split/art_painting_10.txt", + "cartoon": "domainlab/zdata/pacs_split/cartoon_10.txt", + "photo": "domainlab/zdata/pacs_split/photo_10.txt", + "sketch": "domainlab/zdata/pacs_split/sketch_10.txt", }, # ## testing dict_d2filepath_list_img_te={ - "art_painting": "data/pacs_split/art_painting_10.txt", - "cartoon": "data/pacs_split/cartoon_10.txt", - "photo": "data/pacs_split/photo_10.txt", - "sketch": "data/pacs_split/sketch_10.txt", + "art_painting": "domainlab/zdata/pacs_split/art_painting_10.txt", + "cartoon": "domainlab/zdata/pacs_split/cartoon_10.txt", + "photo": "domainlab/zdata/pacs_split/photo_10.txt", + "sketch": "domainlab/zdata/pacs_split/sketch_10.txt", }, # ## validation dict_d2filepath_list_img_val={ - "art_painting": "data/pacs_split/art_painting_10.txt", - "cartoon": "data/pacs_split/cartoon_10.txt", - "photo": "data/pacs_split/photo_10.txt", - "sketch": "data/pacs_split/sketch_10.txt", + "art_painting": "domainlab/zdata/pacs_split/art_painting_10.txt", + "cartoon": "domainlab/zdata/pacs_split/cartoon_10.txt", + "photo": "domainlab/zdata/pacs_split/photo_10.txt", + "sketch": "domainlab/zdata/pacs_split/sketch_10.txt", }, # ## specify root folder storing the images of each domain: dict_domain2imgroot={ - "art_painting": "data/pacs_mini_10", - "cartoon": "data/pacs_mini_10", - "photo": "data/pacs_mini_10", - "sketch": "data/pacs_mini_10", + "art_painting": "domainlab/zdata/pacs_mini_10", + "cartoon": "domainlab/zdata/pacs_mini_10", + "photo": "domainlab/zdata/pacs_mini_10", + "sketch": "domainlab/zdata/pacs_mini_10", }, # ## specify the pytorch transformation you want to apply to the image img_trans_tr=transforms.Compose( diff --git a/examples/tasks/task_blood3.py b/examples/tasks/task_blood3.py new file mode 100644 index 000000000..595b44e93 --- /dev/null +++ b/examples/tasks/task_blood3.py @@ -0,0 +1,107 @@ +""" +difference than task_blood2.py: + +"mll": "/lustre/groups/labs/marr/qscd01/datasets/240416_MLL23", + +""" +from torchvision import transforms + +from domainlab.tasks.task_folder_mk import mk_task_folder +from domainlab.tasks.utils_task import ImSize + +IMG_SIZE = 224 + +trans = transforms.Compose( + [ + transforms.Resize((IMG_SIZE, IMG_SIZE)), + transforms.RandomResizedCrop(IMG_SIZE, scale=(0.7, 1.0)), + transforms.RandomHorizontalFlip(), + transforms.ColorJitter(0.3, 0.3, 0.3, 0.3), + transforms.RandomGrayscale(), + transforms.ToTensor(), + transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]), + ] +) + +trans_te = transforms.Compose( + [ + transforms.Resize((IMG_SIZE, IMG_SIZE)), + transforms.ToTensor(), + transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]), + ] +) + + +TASK = mk_task_folder( + extensions={"acevedo": "jpg", "matek": "tiff", "mll": "tif"}, + list_str_y=[ + "basophil", + "erythroblast", + "metamyelocyte", + "myeloblast", + "neutrophil_band", + "promyelocyte", + "eosinophil", + "lymphocyte_typical", + "monocyte", + "myelocyte", + "neutrophil_segmented", + ], + dict_domain_folder_name2class={ + "acevedo": { + "basophil": "basophil", + "erythroblast": "erythroblast", + "metamyelocyte": "metamyelocyte", + "neutrophil_band": "neutrophil_band", + "promyelocyte": "promyelocyte", + "eosinophil": "eosinophil", + "lymphocyte_typical": "lymphocyte_typical", + "monocyte": "monocyte", + "myelocyte": "myelocyte", + "neutrophil_segmented": "neutrophil_segmented", + }, + "matek": { + "basophil": "basophil", + "erythroblast": "erythroblast", + "metamyelocyte": "metamyelocyte", + "myeloblast": "myeloblast", + "neutrophil_band": "neutrophil_band", + "promyelocyte": "promyelocyte", + "eosinophil": "eosinophil", + "lymphocyte_typical": "lymphocyte_typical", + "monocyte": "monocyte", + "myelocyte": "myelocyte", + "neutrophil_segmented": "neutrophil_segmented", + }, + "mll": { + "basophil": "basophil", + "normoblast":"erythroblast", + "metamyelocyte": "metamyelocyte", + "myeloblast": "myeloblast", + "neutrophil_band": "neutrophil_band", + "promyelocyte": "promyelocyte", + "eosinophil": "eosinophil", + "lymphocyte": "lymphocyte_typical", + "monocyte": "monocyte", + "myelocyte": "myelocyte", + "neutrophil_segmented": "neutrophil_segmented", + }, + }, + dict_domain_img_trans={ + "acevedo": trans, + "mll": trans, + "matek": trans, + }, + img_trans_te=trans_te, + isize=ImSize(3, IMG_SIZE, IMG_SIZE), + dict_domain2imgroot={ + "matek": "/lustre/groups/labs/marr/qscd01/datasets/armingruber/_Domains/Matek_cropped", + "mll": "/lustre/groups/labs/marr/qscd01/datasets/240416_MLL23", + "acevedo": "/lustre/groups/labs/marr/qscd01/datasets/armingruber/_Domains/Acevedo_cropped", + }, + taskna="blood_mon_eos_bas", +) + + +def get_task(na=None): + return TASK diff --git a/examples/tasks/task_pacs_aug.py b/examples/tasks/task_pacs_aug.py index 6fc092dca..0d334a45a 100644 --- a/examples/tasks/task_pacs_aug.py +++ b/examples/tasks/task_pacs_aug.py @@ -12,7 +12,9 @@ # change this to absolute directory where you have the raw images from PACS, G_PACS_RAW_PATH = "data/pacs/PACS" -# domainlab repository contain already the file names in data/pacs_split folder of domainlab +# domainlab repository contain already the file names in +# domainlab/zdata/pacs_split folder of domainlab, +# but PACS dataset is too big to put into domainlab folder def get_task(na=None): @@ -29,22 +31,22 @@ def get_task(na=None): "7": "person", }, dict_d2filepath_list_img_tr={ - "art_painting": "data/pacs_split/art_painting_train_kfold.txt", - "cartoon": "data/pacs_split/cartoon_train_kfold.txt", - "photo": "data/pacs_split/photo_train_kfold.txt", - "sketch": "data/pacs_split/sketch_train_kfold.txt", + "art_painting": "domainlab/zdata/pacs_split/art_painting_train_kfold.txt", + "cartoon": "domainlab/zdata/pacs_split/cartoon_train_kfold.txt", + "photo": "domainlab/zdata/pacs_split/photo_train_kfold.txt", + "sketch": "domainlab/zdata/pacs_split/sketch_train_kfold.txt", }, dict_d2filepath_list_img_te={ - "art_painting": "data/pacs_split/art_painting_test_kfold.txt", - "cartoon": "data/pacs_split/cartoon_test_kfold.txt", - "photo": "data/pacs_split/photo_test_kfold.txt", - "sketch": "data/pacs_split/sketch_test_kfold.txt", + "art_painting": "domainlab/zdata/pacs_split/art_painting_test_kfold.txt", + "cartoon": "domainlab/zdata/pacs_split/cartoon_test_kfold.txt", + "photo": "domainlab/zdata/pacs_split/photo_test_kfold.txt", + "sketch": "domainlab/zdata/pacs_split/sketch_test_kfold.txt", }, dict_d2filepath_list_img_val={ - "art_painting": "data/pacs_split/art_painting_crossval_kfold.txt", - "cartoon": "data/pacs_split/cartoon_crossval_kfold.txt", - "photo": "data/pacs_split/photo_crossval_kfold.txt", - "sketch": "data/pacs_split/sketch_crossval_kfold.txt", + "art_painting": "domainlab/zdata/pacs_split/art_painting_crossval_kfold.txt", + "cartoon": "domainlab/zdata/pacs_split/cartoon_crossval_kfold.txt", + "photo": "domainlab/zdata/pacs_split/photo_crossval_kfold.txt", + "sketch": "domainlab/zdata/pacs_split/sketch_crossval_kfold.txt", }, dict_domain2imgroot={ "art_painting": G_PACS_RAW_PATH, diff --git a/examples/tasks/task_pacs_aug_noflip_no_zoom.py b/examples/tasks/task_pacs_aug_noflip_no_zoom.py index c1f8b45a8..0b855d31e 100644 --- a/examples/tasks/task_pacs_aug_noflip_no_zoom.py +++ b/examples/tasks/task_pacs_aug_noflip_no_zoom.py @@ -11,8 +11,9 @@ from domainlab.tasks.utils_task import ImSize # change this to absolute directory where you have the raw images from PACS, -G_PACS_RAW_PATH = "data/pacs/PACS" -# domainlab repository contain already the file names in data/pacs_split folder of domainlab +G_PACS_RAW_PATH = "domainlab/zdata/pacs/PACS" +# domainlab repository contain already the file names in +# domainlab/zdata/pacs_split folder of domainlab def get_task(na=None): @@ -29,22 +30,22 @@ def get_task(na=None): "7": "person", }, dict_d2filepath_list_img_tr={ - "art_painting": "data/pacs_split/art_painting_train_kfold.txt", - "cartoon": "data/pacs_split/cartoon_train_kfold.txt", - "photo": "data/pacs_split/photo_train_kfold.txt", - "sketch": "data/pacs_split/sketch_train_kfold.txt", + "art_painting": "domainlab/zdata/pacs_split/art_painting_train_kfold.txt", + "cartoon": "domainlab/zdata/pacs_split/cartoon_train_kfold.txt", + "photo": "domainlab/zdata/pacs_split/photo_train_kfold.txt", + "sketch": "domainlab/zdata/pacs_split/sketch_train_kfold.txt", }, dict_d2filepath_list_img_te={ - "art_painting": "data/pacs_split/art_painting_test_kfold.txt", - "cartoon": "data/pacs_split/cartoon_test_kfold.txt", - "photo": "data/pacs_split/photo_test_kfold.txt", - "sketch": "data/pacs_split/sketch_test_kfold.txt", + "art_painting": "domainlab/zdata/pacs_split/art_painting_test_kfold.txt", + "cartoon": "domainlab/zdata/pacs_split/cartoon_test_kfold.txt", + "photo": "domainlab/zdata/pacs_split/photo_test_kfold.txt", + "sketch": "domainlab/zdata/pacs_split/sketch_test_kfold.txt", }, dict_d2filepath_list_img_val={ - "art_painting": "data/pacs_split/art_painting_crossval_kfold.txt", - "cartoon": "data/pacs_split/cartoon_crossval_kfold.txt", - "photo": "data/pacs_split/photo_crossval_kfold.txt", - "sketch": "data/pacs_split/sketch_crossval_kfold.txt", + "art_painting": "domainlab/zdata/pacs_split/art_painting_crossval_kfold.txt", + "cartoon": "domainlab/zdata/pacs_split/cartoon_crossval_kfold.txt", + "photo": "domainlab/zdata/pacs_split/photo_crossval_kfold.txt", + "sketch": "domainlab/zdata/pacs_split/sketch_crossval_kfold.txt", }, dict_domain2imgroot={ "art_painting": G_PACS_RAW_PATH, diff --git a/examples/tasks/task_pacs_no_aug_norm_only.py b/examples/tasks/task_pacs_no_aug_norm_only.py index 7a1897741..07e6339c3 100644 --- a/examples/tasks/task_pacs_no_aug_norm_only.py +++ b/examples/tasks/task_pacs_no_aug_norm_only.py @@ -11,8 +11,9 @@ from domainlab.tasks.utils_task import ImSize # change this to absolute directory where you have the raw images from PACS, -G_PACS_RAW_PATH = "data/pacs/PACS" -# domainlab repository contain already the file names in data/pacs_split folder of domainlab +G_PACS_RAW_PATH = "domainlab/zdata/pacs/PACS" +# domainlab repository contain already the file names in +# domainlab/zdata/pacs_split folder of domainlab def get_task(na=None): @@ -29,22 +30,22 @@ def get_task(na=None): "7": "person", }, dict_d2filepath_list_img_tr={ - "art_painting": "data/pacs_split/art_painting_train_kfold.txt", - "cartoon": "data/pacs_split/cartoon_train_kfold.txt", - "photo": "data/pacs_split/photo_train_kfold.txt", - "sketch": "data/pacs_split/sketch_train_kfold.txt", + "art_painting": "domainlab/zdata/pacs_split/art_painting_train_kfold.txt", + "cartoon": "domainlab/zdata/pacs_split/cartoon_train_kfold.txt", + "photo": "domainlab/zdata/pacs_split/photo_train_kfold.txt", + "sketch": "domainlab/zdata/pacs_split/sketch_train_kfold.txt", }, dict_d2filepath_list_img_te={ - "art_painting": "data/pacs_split/art_painting_test_kfold.txt", - "cartoon": "data/pacs_split/cartoon_test_kfold.txt", - "photo": "data/pacs_split/photo_test_kfold.txt", - "sketch": "data/pacs_split/sketch_test_kfold.txt", + "art_painting": "domainlab/zdata/pacs_split/art_painting_test_kfold.txt", + "cartoon": "domainlab/zdata/pacs_split/cartoon_test_kfold.txt", + "photo": "domainlab/zdata/pacs_split/photo_test_kfold.txt", + "sketch": "domainlab/zdata/pacs_split/sketch_test_kfold.txt", }, dict_d2filepath_list_img_val={ - "art_painting": "data/pacs_split/art_painting_crossval_kfold.txt", - "cartoon": "data/pacs_split/cartoon_crossval_kfold.txt", - "photo": "data/pacs_split/photo_crossval_kfold.txt", - "sketch": "data/pacs_split/sketch_crossval_kfold.txt", + "art_painting": "domainlab/zdata/pacs_split/art_painting_crossval_kfold.txt", + "cartoon": "domainlab/zdata/pacs_split/cartoon_crossval_kfold.txt", + "photo": "domainlab/zdata/pacs_split/photo_crossval_kfold.txt", + "sketch": "domainlab/zdata/pacs_split/sketch_crossval_kfold.txt", }, dict_domain2imgroot={ "art_painting": G_PACS_RAW_PATH, diff --git a/examples/tasks/task_pacs_path_list.py b/examples/tasks/task_pacs_path_list.py index 045232b4a..53d97d640 100644 --- a/examples/tasks/task_pacs_path_list.py +++ b/examples/tasks/task_pacs_path_list.py @@ -11,8 +11,9 @@ from domainlab.tasks.utils_task import ImSize # change this to absolute directory where you have the raw images from PACS, -G_PACS_RAW_PATH = "data/pacs/PACS" -# domainlab repository contain already the file names in data/pacs_split folder of domainlab +G_PACS_RAW_PATH = "domainlab/zdata/pacs/PACS" +# domainlab repository contain already the file names in +# domainlab/zdata/pacs_split folder of domainlab def get_task(na=None): @@ -29,22 +30,22 @@ def get_task(na=None): "7": "person", }, dict_d2filepath_list_img_tr={ - "art_painting": "data/pacs_split/art_painting_train_kfold.txt", - "cartoon": "data/pacs_split/cartoon_train_kfold.txt", - "photo": "data/pacs_split/photo_train_kfold.txt", - "sketch": "data/pacs_split/sketch_train_kfold.txt", + "art_painting": "domainlab/zdata/pacs_split/art_painting_train_kfold.txt", + "cartoon": "domainlab/zdata/pacs_split/cartoon_train_kfold.txt", + "photo": "domainlab/zdata/pacs_split/photo_train_kfold.txt", + "sketch": "domainlab/zdata/pacs_split/sketch_train_kfold.txt", }, dict_d2filepath_list_img_te={ - "art_painting": "data/pacs_split/art_painting_test_kfold.txt", - "cartoon": "data/pacs_split/cartoon_test_kfold.txt", - "photo": "data/pacs_split/photo_test_kfold.txt", - "sketch": "data/pacs_split/sketch_test_kfold.txt", + "art_painting": "domainlab/zdata/pacs_split/art_painting_test_kfold.txt", + "cartoon": "domainlab/zdata/pacs_split/cartoon_test_kfold.txt", + "photo": "domainlab/zdata/pacs_split/photo_test_kfold.txt", + "sketch": "domainlab/zdata/pacs_split/sketch_test_kfold.txt", }, dict_d2filepath_list_img_val={ - "art_painting": "data/pacs_split/art_painting_crossval_kfold.txt", - "cartoon": "data/pacs_split/cartoon_crossval_kfold.txt", - "photo": "data/pacs_split/photo_crossval_kfold.txt", - "sketch": "data/pacs_split/sketch_crossval_kfold.txt", + "art_painting": "domainlab/zdata/pacs_split/art_painting_crossval_kfold.txt", + "cartoon": "domainlab/zdata/pacs_split/cartoon_crossval_kfold.txt", + "photo": "domainlab/zdata/pacs_split/photo_crossval_kfold.txt", + "sketch": "domainlab/zdata/pacs_split/sketch_crossval_kfold.txt", }, dict_domain2imgroot={ "art_painting": G_PACS_RAW_PATH, diff --git a/examples/tasks/task_vlcs.py b/examples/tasks/task_vlcs.py index 3deb6b2d6..498ee27f2 100644 --- a/examples/tasks/task_vlcs.py +++ b/examples/tasks/task_vlcs.py @@ -52,9 +52,9 @@ ), isize=ImSize(3, 224, 224), dict_domain2imgroot={ - "caltech": os.path.join(path_this_file, "../../data/vlcs_mini/caltech/"), - "sun": os.path.join(path_this_file, "../../data/vlcs_mini/sun/"), - "labelme": os.path.join(path_this_file, "../../data/vlcs_mini/labelme/"), + "caltech": os.path.join(path_this_file, "../../domainlab/zdata/vlcs_mini/caltech/"), + "sun": os.path.join(path_this_file, "../../domainlab/zdata/vlcs_mini/sun/"), + "labelme": os.path.join(path_this_file, "../../domainlab/zdata/vlcs_mini/labelme/"), }, taskna="e_mini_vlcs", ) diff --git a/examples/yaml/slurm/config.yaml b/examples/yaml/slurm/config.yaml index e180df74d..cc0f6901a 100644 --- a/examples/yaml/slurm/config.yaml +++ b/examples/yaml/slurm/config.yaml @@ -1,6 +1,8 @@ # This yaml file has been adapted from https://github.com/jdblischak/smk-simple-slurm cluster: - mkdir -p zoutput/slurm_logs/{rule} && + mkdir -p $logdir/{rule} && + export parentfolder=$(dirname "$logdir") && + export outputfolder=$(basename "$parentfolder") && sbatch --partition=gpu_p --qos=gpu_normal @@ -9,9 +11,9 @@ cluster: -t 48:00:00 -c 2 --mem=160G - --job-name=smk-{rule}-{wildcards} - --output=zoutput/slurm_logs/{rule}/{rule}-{wildcards}-%j.out - --error=zoutput/slurm_logs/{rule}/{rule}-{wildcards}-%j.err + --job-name=$outputfolder-{rule}-{wildcards} + --output=$logdir/{rule}/{rule}-{wildcards}-%j.out + --error=$logdir/{rule}/{rule}-{wildcards}-%j.err default-resources: - partition=gpu_p - qos=gpu_normal diff --git a/main_out.py b/main_out.py index 471702f9b..bdd4fdae8 100644 --- a/main_out.py +++ b/main_out.py @@ -1,9 +1,4 @@ -from domainlab.arg_parser import parse_cmd_args from domainlab.cli import domainlab_cli -from domainlab.exp.exp_cuda_seed import set_seed # reproducibility -from domainlab.exp.exp_main import Exp -from domainlab.exp_protocol import aggregate_results -from domainlab.utils.generate_benchmark_plots import gen_benchmark_plots if __name__ == "__main__": domainlab_cli() diff --git a/poetry.lock b/poetry.lock deleted file mode 100644 index f08aab3b8..000000000 --- a/poetry.lock +++ /dev/null @@ -1,1915 +0,0 @@ -# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. - -[[package]] -name = "absl-py" -version = "2.1.0" -description = "Abseil Python Common Libraries, see https://github.com/abseil/abseil-py." -optional = false -python-versions = ">=3.7" -files = [ - {file = "absl-py-2.1.0.tar.gz", hash = "sha256:7820790efbb316739cde8b4e19357243fc3608a152024288513dd968d7d959ff"}, - {file = "absl_py-2.1.0-py3-none-any.whl", hash = "sha256:526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308"}, -] - -[[package]] -name = "atomicwrites" -version = "1.4.1" -description = "Atomic file writes." -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "atomicwrites-1.4.1.tar.gz", hash = "sha256:81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11"}, -] - -[[package]] -name = "attrs" -version = "23.2.0" -description = "Classes Without Boilerplate" -optional = false -python-versions = ">=3.7" -files = [ - {file = "attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1"}, - {file = "attrs-23.2.0.tar.gz", hash = "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30"}, -] - -[package.extras] -cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] -dev = ["attrs[tests]", "pre-commit"] -docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] -tests = ["attrs[tests-no-zope]", "zope-interface"] -tests-mypy = ["mypy (>=1.6)", "pytest-mypy-plugins"] -tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist[psutil]"] - -[[package]] -name = "backpack-for-pytorch" -version = "1.6.0" -description = "BackPACK: Packing more into backprop" -optional = false -python-versions = ">=3.8" -files = [ - {file = "backpack-for-pytorch-1.6.0.tar.gz", hash = "sha256:af6495b71bacf82a1c7cab01aa85bebabccfe74d87d89f108ea72a4a0d384de3"}, - {file = "backpack_for_pytorch-1.6.0-py3-none-any.whl", hash = "sha256:ac708dbb86dbb36f70fc81a1ccb1df5c7ba46d62bc9d10239d4b0e406ba41a6f"}, -] - -[package.dependencies] -einops = ">=0.3.0,<1.0.0" -torch = ">=1.9.0" -torchvision = ">=0.7.0" -unfoldNd = ">=0.2.0,<1.0.0" - -[package.extras] -docs = ["matplotlib", "memory-profiler", "sphinx-gallery", "sphinx-rtd-theme", "tabulate"] -lint = ["black", "darglint", "flake8", "flake8-bugbear", "flake8-comprehensions", "flake8-tidy-imports", "isort", "mccabe", "pep8-naming", "pycodestyle", "pydocstyle", "pyflakes"] -test = ["coveralls", "pytest (>=4.5.0,<5.0.0)", "pytest-benchmark (>=3.2.2,<4.0.0)", "pytest-cov", "pytest-optional-tests (>=0.1.1)", "scipy"] - -[[package]] -name = "beautifulsoup4" -version = "4.12.3" -description = "Screen-scraping library" -optional = false -python-versions = ">=3.6.0" -files = [ - {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, - {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, -] - -[package.dependencies] -soupsieve = ">1.2" - -[package.extras] -cchardet = ["cchardet"] -chardet = ["chardet"] -charset-normalizer = ["charset-normalizer"] -html5lib = ["html5lib"] -lxml = ["lxml"] - -[[package]] -name = "cachetools" -version = "5.3.2" -description = "Extensible memoizing collections and decorators" -optional = false -python-versions = ">=3.7" -files = [ - {file = "cachetools-5.3.2-py3-none-any.whl", hash = "sha256:861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1"}, - {file = "cachetools-5.3.2.tar.gz", hash = "sha256:086ee420196f7b2ab9ca2db2520aca326318b68fe5ba8bc4d49cca91add450f2"}, -] - -[[package]] -name = "certifi" -version = "2024.2.2" -description = "Python package for providing Mozilla's CA Bundle." -optional = false -python-versions = ">=3.6" -files = [ - {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, - {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, -] - -[[package]] -name = "charset-normalizer" -version = "3.3.2" -description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -optional = false -python-versions = ">=3.7.0" -files = [ - {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, - {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, -] - -[[package]] -name = "colorama" -version = "0.4.6" -description = "Cross-platform colored terminal text." -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -files = [ - {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, - {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, -] - -[[package]] -name = "contourpy" -version = "1.2.0" -description = "Python library for calculating contours of 2D quadrilateral grids" -optional = false -python-versions = ">=3.9" -files = [ - {file = "contourpy-1.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0274c1cb63625972c0c007ab14dd9ba9e199c36ae1a231ce45d725cbcbfd10a8"}, - {file = "contourpy-1.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ab459a1cbbf18e8698399c595a01f6dcc5c138220ca3ea9e7e6126232d102bb4"}, - {file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fdd887f17c2f4572ce548461e4f96396681212d858cae7bd52ba3310bc6f00f"}, - {file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d16edfc3fc09968e09ddffada434b3bf989bf4911535e04eada58469873e28e"}, - {file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c203f617abc0dde5792beb586f827021069fb6d403d7f4d5c2b543d87edceb9"}, - {file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b69303ceb2e4d4f146bf82fda78891ef7bcd80c41bf16bfca3d0d7eb545448aa"}, - {file = "contourpy-1.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:884c3f9d42d7218304bc74a8a7693d172685c84bd7ab2bab1ee567b769696df9"}, - {file = "contourpy-1.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4a1b1208102be6e851f20066bf0e7a96b7d48a07c9b0cfe6d0d4545c2f6cadab"}, - {file = "contourpy-1.2.0-cp310-cp310-win32.whl", hash = "sha256:34b9071c040d6fe45d9826cbbe3727d20d83f1b6110d219b83eb0e2a01d79488"}, - {file = "contourpy-1.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:bd2f1ae63998da104f16a8b788f685e55d65760cd1929518fd94cd682bf03e41"}, - {file = "contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727"}, - {file = "contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd"}, - {file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebeac59e9e1eb4b84940d076d9f9a6cec0064e241818bcb6e32124cc5c3e377a"}, - {file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:139d8d2e1c1dd52d78682f505e980f592ba53c9f73bd6be102233e358b401063"}, - {file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1e9dc350fb4c58adc64df3e0703ab076f60aac06e67d48b3848c23647ae4310e"}, - {file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686"}, - {file = "contourpy-1.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:16a7380e943a6d52472096cb7ad5264ecee36ed60888e2a3d3814991a0107286"}, - {file = "contourpy-1.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8d8faf05be5ec8e02a4d86f616fc2a0322ff4a4ce26c0f09d9f7fb5330a35c95"}, - {file = "contourpy-1.2.0-cp311-cp311-win32.whl", hash = "sha256:67b7f17679fa62ec82b7e3e611c43a016b887bd64fb933b3ae8638583006c6d6"}, - {file = "contourpy-1.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de"}, - {file = "contourpy-1.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:575bcaf957a25d1194903a10bc9f316c136c19f24e0985a2b9b5608bdf5dbfe0"}, - {file = "contourpy-1.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9e6c93b5b2dbcedad20a2f18ec22cae47da0d705d454308063421a3b290d9ea4"}, - {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:464b423bc2a009088f19bdf1f232299e8b6917963e2b7e1d277da5041f33a779"}, - {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:68ce4788b7d93e47f84edd3f1f95acdcd142ae60bc0e5493bfd120683d2d4316"}, - {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d7d1f8871998cdff5d2ff6a087e5e1780139abe2838e85b0b46b7ae6cc25399"}, - {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e739530c662a8d6d42c37c2ed52a6f0932c2d4a3e8c1f90692ad0ce1274abe0"}, - {file = "contourpy-1.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:247b9d16535acaa766d03037d8e8fb20866d054d3c7fbf6fd1f993f11fc60ca0"}, - {file = "contourpy-1.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:461e3ae84cd90b30f8d533f07d87c00379644205b1d33a5ea03381edc4b69431"}, - {file = "contourpy-1.2.0-cp312-cp312-win32.whl", hash = "sha256:1c2559d6cffc94890b0529ea7eeecc20d6fadc1539273aa27faf503eb4656d8f"}, - {file = "contourpy-1.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:491b1917afdd8638a05b611a56d46587d5a632cabead889a5440f7c638bc6ed9"}, - {file = "contourpy-1.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5fd1810973a375ca0e097dee059c407913ba35723b111df75671a1976efa04bc"}, - {file = "contourpy-1.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:999c71939aad2780f003979b25ac5b8f2df651dac7b38fb8ce6c46ba5abe6ae9"}, - {file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7caf9b241464c404613512d5594a6e2ff0cc9cb5615c9475cc1d9b514218ae8"}, - {file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:266270c6f6608340f6c9836a0fb9b367be61dde0c9a9a18d5ece97774105ff3e"}, - {file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbd50d0a0539ae2e96e537553aff6d02c10ed165ef40c65b0e27e744a0f10af8"}, - {file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11f8d2554e52f459918f7b8e6aa20ec2a3bce35ce95c1f0ef4ba36fbda306df5"}, - {file = "contourpy-1.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ce96dd400486e80ac7d195b2d800b03e3e6a787e2a522bfb83755938465a819e"}, - {file = "contourpy-1.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6d3364b999c62f539cd403f8123ae426da946e142312a514162adb2addd8d808"}, - {file = "contourpy-1.2.0-cp39-cp39-win32.whl", hash = "sha256:1c88dfb9e0c77612febebb6ac69d44a8d81e3dc60f993215425b62c1161353f4"}, - {file = "contourpy-1.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:78e6ad33cf2e2e80c5dfaaa0beec3d61face0fb650557100ee36db808bfa6843"}, - {file = "contourpy-1.2.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:be16975d94c320432657ad2402f6760990cb640c161ae6da1363051805fa8108"}, - {file = "contourpy-1.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b95a225d4948b26a28c08307a60ac00fb8671b14f2047fc5476613252a129776"}, - {file = "contourpy-1.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:0d7e03c0f9a4f90dc18d4e77e9ef4ec7b7bbb437f7f675be8e530d65ae6ef956"}, - {file = "contourpy-1.2.0.tar.gz", hash = "sha256:171f311cb758de7da13fc53af221ae47a5877be5a0843a9fe150818c51ed276a"}, -] - -[package.dependencies] -numpy = ">=1.20,<2.0" - -[package.extras] -bokeh = ["bokeh", "selenium"] -docs = ["furo", "sphinx (>=7.2)", "sphinx-copybutton"] -mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.6.1)", "types-Pillow"] -test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] -test-no-images = ["pytest", "pytest-cov", "pytest-xdist", "wurlitzer"] - -[[package]] -name = "coverage" -version = "7.4.1" -description = "Code coverage measurement for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "coverage-7.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:077d366e724f24fc02dbfe9d946534357fda71af9764ff99d73c3c596001bbd7"}, - {file = "coverage-7.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0193657651f5399d433c92f8ae264aff31fc1d066deee4b831549526433f3f61"}, - {file = "coverage-7.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d17bbc946f52ca67adf72a5ee783cd7cd3477f8f8796f59b4974a9b59cacc9ee"}, - {file = "coverage-7.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a3277f5fa7483c927fe3a7b017b39351610265308f5267ac6d4c2b64cc1d8d25"}, - {file = "coverage-7.4.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6dceb61d40cbfcf45f51e59933c784a50846dc03211054bd76b421a713dcdf19"}, - {file = "coverage-7.4.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6008adeca04a445ea6ef31b2cbaf1d01d02986047606f7da266629afee982630"}, - {file = "coverage-7.4.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c61f66d93d712f6e03369b6a7769233bfda880b12f417eefdd4f16d1deb2fc4c"}, - {file = "coverage-7.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b9bb62fac84d5f2ff523304e59e5c439955fb3b7f44e3d7b2085184db74d733b"}, - {file = "coverage-7.4.1-cp310-cp310-win32.whl", hash = "sha256:f86f368e1c7ce897bf2457b9eb61169a44e2ef797099fb5728482b8d69f3f016"}, - {file = "coverage-7.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:869b5046d41abfea3e381dd143407b0d29b8282a904a19cb908fa24d090cc018"}, - {file = "coverage-7.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b8ffb498a83d7e0305968289441914154fb0ef5d8b3157df02a90c6695978295"}, - {file = "coverage-7.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3cacfaefe6089d477264001f90f55b7881ba615953414999c46cc9713ff93c8c"}, - {file = "coverage-7.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d6850e6e36e332d5511a48a251790ddc545e16e8beaf046c03985c69ccb2676"}, - {file = "coverage-7.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18e961aa13b6d47f758cc5879383d27b5b3f3dcd9ce8cdbfdc2571fe86feb4dd"}, - {file = "coverage-7.4.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfd1e1b9f0898817babf840b77ce9fe655ecbe8b1b327983df485b30df8cc011"}, - {file = "coverage-7.4.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6b00e21f86598b6330f0019b40fb397e705135040dbedc2ca9a93c7441178e74"}, - {file = "coverage-7.4.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:536d609c6963c50055bab766d9951b6c394759190d03311f3e9fcf194ca909e1"}, - {file = "coverage-7.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7ac8f8eb153724f84885a1374999b7e45734bf93a87d8df1e7ce2146860edef6"}, - {file = "coverage-7.4.1-cp311-cp311-win32.whl", hash = "sha256:f3771b23bb3675a06f5d885c3630b1d01ea6cac9e84a01aaf5508706dba546c5"}, - {file = "coverage-7.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:9d2f9d4cc2a53b38cabc2d6d80f7f9b7e3da26b2f53d48f05876fef7956b6968"}, - {file = "coverage-7.4.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f68ef3660677e6624c8cace943e4765545f8191313a07288a53d3da188bd8581"}, - {file = "coverage-7.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:23b27b8a698e749b61809fb637eb98ebf0e505710ec46a8aa6f1be7dc0dc43a6"}, - {file = "coverage-7.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e3424c554391dc9ef4a92ad28665756566a28fecf47308f91841f6c49288e66"}, - {file = "coverage-7.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e0860a348bf7004c812c8368d1fc7f77fe8e4c095d661a579196a9533778e156"}, - {file = "coverage-7.4.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe558371c1bdf3b8fa03e097c523fb9645b8730399c14fe7721ee9c9e2a545d3"}, - {file = "coverage-7.4.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3468cc8720402af37b6c6e7e2a9cdb9f6c16c728638a2ebc768ba1ef6f26c3a1"}, - {file = "coverage-7.4.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:02f2edb575d62172aa28fe00efe821ae31f25dc3d589055b3fb64d51e52e4ab1"}, - {file = "coverage-7.4.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ca6e61dc52f601d1d224526360cdeab0d0712ec104a2ce6cc5ccef6ed9a233bc"}, - {file = "coverage-7.4.1-cp312-cp312-win32.whl", hash = "sha256:ca7b26a5e456a843b9b6683eada193fc1f65c761b3a473941efe5a291f604c74"}, - {file = "coverage-7.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:85ccc5fa54c2ed64bd91ed3b4a627b9cce04646a659512a051fa82a92c04a448"}, - {file = "coverage-7.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8bdb0285a0202888d19ec6b6d23d5990410decb932b709f2b0dfe216d031d218"}, - {file = "coverage-7.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:918440dea04521f499721c039863ef95433314b1db00ff826a02580c1f503e45"}, - {file = "coverage-7.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:379d4c7abad5afbe9d88cc31ea8ca262296480a86af945b08214eb1a556a3e4d"}, - {file = "coverage-7.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b094116f0b6155e36a304ff912f89bbb5067157aff5f94060ff20bbabdc8da06"}, - {file = "coverage-7.4.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2f5968608b1fe2a1d00d01ad1017ee27efd99b3437e08b83ded9b7af3f6f766"}, - {file = "coverage-7.4.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:10e88e7f41e6197ea0429ae18f21ff521d4f4490aa33048f6c6f94c6045a6a75"}, - {file = "coverage-7.4.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a4a3907011d39dbc3e37bdc5df0a8c93853c369039b59efa33a7b6669de04c60"}, - {file = "coverage-7.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6d224f0c4c9c98290a6990259073f496fcec1b5cc613eecbd22786d398ded3ad"}, - {file = "coverage-7.4.1-cp38-cp38-win32.whl", hash = "sha256:23f5881362dcb0e1a92b84b3c2809bdc90db892332daab81ad8f642d8ed55042"}, - {file = "coverage-7.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:a07f61fc452c43cd5328b392e52555f7d1952400a1ad09086c4a8addccbd138d"}, - {file = "coverage-7.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8e738a492b6221f8dcf281b67129510835461132b03024830ac0e554311a5c54"}, - {file = "coverage-7.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:46342fed0fff72efcda77040b14728049200cbba1279e0bf1188f1f2078c1d70"}, - {file = "coverage-7.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9641e21670c68c7e57d2053ddf6c443e4f0a6e18e547e86af3fad0795414a628"}, - {file = "coverage-7.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aeb2c2688ed93b027eb0d26aa188ada34acb22dceea256d76390eea135083950"}, - {file = "coverage-7.4.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d12c923757de24e4e2110cf8832d83a886a4cf215c6e61ed506006872b43a6d1"}, - {file = "coverage-7.4.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0491275c3b9971cdbd28a4595c2cb5838f08036bca31765bad5e17edf900b2c7"}, - {file = "coverage-7.4.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:8dfc5e195bbef80aabd81596ef52a1277ee7143fe419efc3c4d8ba2754671756"}, - {file = "coverage-7.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1a78b656a4d12b0490ca72651fe4d9f5e07e3c6461063a9b6265ee45eb2bdd35"}, - {file = "coverage-7.4.1-cp39-cp39-win32.whl", hash = "sha256:f90515974b39f4dea2f27c0959688621b46d96d5a626cf9c53dbc653a895c05c"}, - {file = "coverage-7.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:64e723ca82a84053dd7bfcc986bdb34af8d9da83c521c19d6b472bc6880e191a"}, - {file = "coverage-7.4.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:32a8d985462e37cfdab611a6f95b09d7c091d07668fdc26e47a725ee575fe166"}, - {file = "coverage-7.4.1.tar.gz", hash = "sha256:1ed4b95480952b1a26d863e546fa5094564aa0065e1e5f0d4d0041f293251d04"}, -] - -[package.dependencies] -tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} - -[package.extras] -toml = ["tomli"] - -[[package]] -name = "cycler" -version = "0.12.1" -description = "Composable style cycles" -optional = false -python-versions = ">=3.8" -files = [ - {file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"}, - {file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"}, -] - -[package.extras] -docs = ["ipython", "matplotlib", "numpydoc", "sphinx"] -tests = ["pytest", "pytest-cov", "pytest-xdist"] - -[[package]] -name = "einops" -version = "0.7.0" -description = "A new flavour of deep learning operations" -optional = false -python-versions = ">=3.8" -files = [ - {file = "einops-0.7.0-py3-none-any.whl", hash = "sha256:0f3096f26b914f465f6ff3c66f5478f9a5e380bb367ffc6493a68143fbbf1fd1"}, - {file = "einops-0.7.0.tar.gz", hash = "sha256:b2b04ad6081a3b227080c9bf5e3ace7160357ff03043cd66cc5b2319eb7031d1"}, -] - -[[package]] -name = "filelock" -version = "3.13.1" -description = "A platform independent file lock." -optional = false -python-versions = ">=3.8" -files = [ - {file = "filelock-3.13.1-py3-none-any.whl", hash = "sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c"}, - {file = "filelock-3.13.1.tar.gz", hash = "sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e"}, -] - -[package.extras] -docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.24)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] -typing = ["typing-extensions (>=4.8)"] - -[[package]] -name = "fonttools" -version = "4.48.1" -description = "Tools to manipulate font files" -optional = false -python-versions = ">=3.8" -files = [ - {file = "fonttools-4.48.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:702ae93058c81f46461dc4b2c79f11d3c3d8fd7296eaf8f75b4ba5bbf813cd5f"}, - {file = "fonttools-4.48.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:97f0a49fa6aa2d6205c6f72f4f98b74ef4b9bfdcb06fd78e6fe6c7af4989b63e"}, - {file = "fonttools-4.48.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3260db55f1843e57115256e91247ad9f68cb02a434b51262fe0019e95a98738"}, - {file = "fonttools-4.48.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e740a7602c2bb71e1091269b5dbe89549749a8817dc294b34628ffd8b2bf7124"}, - {file = "fonttools-4.48.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4108b1d247953dd7c90ec8f457a2dec5fceb373485973cc852b14200118a51ee"}, - {file = "fonttools-4.48.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:56339ec557f0c342bddd7c175f5e41c45fc21282bee58a86bd9aa322bec715f2"}, - {file = "fonttools-4.48.1-cp310-cp310-win32.whl", hash = "sha256:bff5b38d0e76eb18e0b8abbf35d384e60b3371be92f7be36128ee3e67483b3ec"}, - {file = "fonttools-4.48.1-cp310-cp310-win_amd64.whl", hash = "sha256:f7449493886da6a17472004d3818cc050ba3f4a0aa03fb47972e4fa5578e6703"}, - {file = "fonttools-4.48.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:18b35fd1a850ed7233a99bbd6774485271756f717dac8b594958224b54118b61"}, - {file = "fonttools-4.48.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cad5cfd044ea2e306fda44482b3dd32ee47830fa82dfa4679374b41baa294f5f"}, - {file = "fonttools-4.48.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f30e605c7565d0da6f0aec75a30ec372072d016957cd8fc4469721a36ea59b7"}, - {file = "fonttools-4.48.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aee76fd81a8571c68841d6ef0da750d5ff08ff2c5f025576473016f16ac3bcf7"}, - {file = "fonttools-4.48.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:5057ade278e67923000041e2b195c9ea53e87f227690d499b6a4edd3702f7f01"}, - {file = "fonttools-4.48.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b10633aafc5932995a391ec07eba5e79f52af0003a1735b2306b3dab8a056d48"}, - {file = "fonttools-4.48.1-cp311-cp311-win32.whl", hash = "sha256:0d533f89819f9b3ee2dbedf0fed3825c425850e32bdda24c558563c71be0064e"}, - {file = "fonttools-4.48.1-cp311-cp311-win_amd64.whl", hash = "sha256:d20588466367f05025bb1efdf4e5d498ca6d14bde07b6928b79199c588800f0a"}, - {file = "fonttools-4.48.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0a2417547462e468edf35b32e3dd06a6215ac26aa6316b41e03b8eeaf9f079ea"}, - {file = "fonttools-4.48.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cf5a0cd974f85a80b74785db2d5c3c1fd6cc09a2ba3c837359b2b5da629ee1b0"}, - {file = "fonttools-4.48.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0452fcbfbce752ba596737a7c5ec5cf76bc5f83847ce1781f4f90eab14ece252"}, - {file = "fonttools-4.48.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:578c00f93868f64a4102ecc5aa600a03b49162c654676c3fadc33de2ddb88a81"}, - {file = "fonttools-4.48.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:63dc592a16cd08388d8c4c7502b59ac74190b23e16dfc863c69fe1ea74605b68"}, - {file = "fonttools-4.48.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9b58638d8a85e3a1b32ec0a91d9f8171a877b4b81c408d4cb3257d0dee63e092"}, - {file = "fonttools-4.48.1-cp312-cp312-win32.whl", hash = "sha256:d10979ef14a8beaaa32f613bb698743f7241d92f437a3b5e32356dfb9769c65d"}, - {file = "fonttools-4.48.1-cp312-cp312-win_amd64.whl", hash = "sha256:cdfd7557d1bd294a200bd211aa665ca3b02998dcc18f8211a5532da5b8fad5c5"}, - {file = "fonttools-4.48.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:3cdb9a92521b81bf717ebccf592bd0292e853244d84115bfb4db0c426de58348"}, - {file = "fonttools-4.48.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9b4ec6d42a7555f5ae35f3b805482f0aad0f1baeeef54859492ea3b782959d4a"}, - {file = "fonttools-4.48.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:902e9c4e9928301912f34a6638741b8ae0b64824112b42aaf240e06b735774b1"}, - {file = "fonttools-4.48.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8c8b54bd1420c184a995f980f1a8076f87363e2bb24239ef8c171a369d85a31"}, - {file = "fonttools-4.48.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:12ee86abca46193359ea69216b3a724e90c66ab05ab220d39e3fc068c1eb72ac"}, - {file = "fonttools-4.48.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6978bade7b6c0335095bdd0bd97f8f3d590d2877b370f17e03e0865241694eb5"}, - {file = "fonttools-4.48.1-cp38-cp38-win32.whl", hash = "sha256:bcd77f89fc1a6b18428e7a55dde8ef56dae95640293bfb8f4e929929eba5e2a2"}, - {file = "fonttools-4.48.1-cp38-cp38-win_amd64.whl", hash = "sha256:f40441437b039930428e04fb05ac3a132e77458fb57666c808d74a556779e784"}, - {file = "fonttools-4.48.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0d2b01428f7da26f229a5656defc824427b741e454b4e210ad2b25ed6ea2aed4"}, - {file = "fonttools-4.48.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:df48798f9a4fc4c315ab46e17873436c8746f5df6eddd02fad91299b2af7af95"}, - {file = "fonttools-4.48.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2eb4167bde04e172a93cf22c875d8b0cff76a2491f67f5eb069566215302d45d"}, - {file = "fonttools-4.48.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c900508c46274d32d308ae8e82335117f11aaee1f7d369ac16502c9a78930b0a"}, - {file = "fonttools-4.48.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:594206b31c95fcfa65f484385171fabb4ec69f7d2d7f56d27f17db26b7a31814"}, - {file = "fonttools-4.48.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:292922dc356d7f11f5063b4111a8b719efb8faea92a2a88ed296408d449d8c2e"}, - {file = "fonttools-4.48.1-cp39-cp39-win32.whl", hash = "sha256:4709c5bf123ba10eac210d2d5c9027d3f472591d9f1a04262122710fa3d23199"}, - {file = "fonttools-4.48.1-cp39-cp39-win_amd64.whl", hash = "sha256:63c73b9dd56a94a3cbd2f90544b5fca83666948a9e03370888994143b8d7c070"}, - {file = "fonttools-4.48.1-py3-none-any.whl", hash = "sha256:e3e33862fc5261d46d9aae3544acb36203b1a337d00bdb5d3753aae50dac860e"}, - {file = "fonttools-4.48.1.tar.gz", hash = "sha256:8b8a45254218679c7f1127812761e7854ed5c8e34349aebf581e8c9204e7495a"}, -] - -[package.extras] -all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "pycairo", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] -graphite = ["lz4 (>=1.7.4.2)"] -interpolatable = ["munkres", "pycairo", "scipy"] -lxml = ["lxml (>=4.0)"] -pathops = ["skia-pathops (>=0.5.0)"] -plot = ["matplotlib"] -repacker = ["uharfbuzz (>=0.23.0)"] -symfont = ["sympy"] -type1 = ["xattr"] -ufo = ["fs (>=2.2.0,<3)"] -unicode = ["unicodedata2 (>=15.1.0)"] -woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] - -[[package]] -name = "gdown" -version = "4.7.3" -description = "Google Drive direct download of big files." -optional = false -python-versions = "*" -files = [ - {file = "gdown-4.7.3-py3-none-any.whl", hash = "sha256:aeb7b979b35efd007d0c12fee17350f007aeb5fa84a9def09381d765075ba9ce"}, - {file = "gdown-4.7.3.tar.gz", hash = "sha256:37edc3a0edda1a7fe5ebcc631c3aad0612582766460630ee52f481ba1ec7aefe"}, -] - -[package.dependencies] -beautifulsoup4 = "*" -filelock = "*" -requests = {version = "*", extras = ["socks"]} -six = "*" -tqdm = "*" - -[[package]] -name = "google-auth" -version = "2.27.0" -description = "Google Authentication Library" -optional = false -python-versions = ">=3.7" -files = [ - {file = "google-auth-2.27.0.tar.gz", hash = "sha256:e863a56ccc2d8efa83df7a80272601e43487fa9a728a376205c86c26aaefa821"}, - {file = "google_auth-2.27.0-py2.py3-none-any.whl", hash = "sha256:8e4bad367015430ff253fe49d500fdc3396c1a434db5740828c728e45bcce245"}, -] - -[package.dependencies] -cachetools = ">=2.0.0,<6.0" -pyasn1-modules = ">=0.2.1" -rsa = ">=3.1.4,<5" - -[package.extras] -aiohttp = ["aiohttp (>=3.6.2,<4.0.0.dev0)", "requests (>=2.20.0,<3.0.0.dev0)"] -enterprise-cert = ["cryptography (==36.0.2)", "pyopenssl (==22.0.0)"] -pyopenssl = ["cryptography (>=38.0.3)", "pyopenssl (>=20.0.0)"] -reauth = ["pyu2f (>=0.1.5)"] -requests = ["requests (>=2.20.0,<3.0.0.dev0)"] - -[[package]] -name = "google-auth-oauthlib" -version = "1.2.0" -description = "Google Authentication Library" -optional = false -python-versions = ">=3.6" -files = [ - {file = "google-auth-oauthlib-1.2.0.tar.gz", hash = "sha256:292d2d3783349f2b0734a0a0207b1e1e322ac193c2c09d8f7c613fb7cc501ea8"}, - {file = "google_auth_oauthlib-1.2.0-py2.py3-none-any.whl", hash = "sha256:297c1ce4cb13a99b5834c74a1fe03252e1e499716718b190f56bcb9c4abc4faf"}, -] - -[package.dependencies] -google-auth = ">=2.15.0" -requests-oauthlib = ">=0.7.0" - -[package.extras] -tool = ["click (>=6.0.0)"] - -[[package]] -name = "grpcio" -version = "1.60.1" -description = "HTTP/2-based RPC framework" -optional = false -python-versions = ">=3.7" -files = [ - {file = "grpcio-1.60.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:14e8f2c84c0832773fb3958240c69def72357bc11392571f87b2d7b91e0bb092"}, - {file = "grpcio-1.60.1-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:33aed0a431f5befeffd9d346b0fa44b2c01aa4aeae5ea5b2c03d3e25e0071216"}, - {file = "grpcio-1.60.1-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:fead980fbc68512dfd4e0c7b1f5754c2a8e5015a04dea454b9cada54a8423525"}, - {file = "grpcio-1.60.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:082081e6a36b6eb5cf0fd9a897fe777dbb3802176ffd08e3ec6567edd85bc104"}, - {file = "grpcio-1.60.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:55ccb7db5a665079d68b5c7c86359ebd5ebf31a19bc1a91c982fd622f1e31ff2"}, - {file = "grpcio-1.60.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:9b54577032d4f235452f77a83169b6527bf4b77d73aeada97d45b2aaf1bf5ce0"}, - {file = "grpcio-1.60.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7d142bcd604166417929b071cd396aa13c565749a4c840d6c702727a59d835eb"}, - {file = "grpcio-1.60.1-cp310-cp310-win32.whl", hash = "sha256:2a6087f234cb570008a6041c8ffd1b7d657b397fdd6d26e83d72283dae3527b1"}, - {file = "grpcio-1.60.1-cp310-cp310-win_amd64.whl", hash = "sha256:f2212796593ad1d0235068c79836861f2201fc7137a99aa2fea7beeb3b101177"}, - {file = "grpcio-1.60.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:79ae0dc785504cb1e1788758c588c711f4e4a0195d70dff53db203c95a0bd303"}, - {file = "grpcio-1.60.1-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:4eec8b8c1c2c9b7125508ff7c89d5701bf933c99d3910e446ed531cd16ad5d87"}, - {file = "grpcio-1.60.1-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:8c9554ca8e26241dabe7951aa1fa03a1ba0856688ecd7e7bdbdd286ebc272e4c"}, - {file = "grpcio-1.60.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:91422ba785a8e7a18725b1dc40fbd88f08a5bb4c7f1b3e8739cab24b04fa8a03"}, - {file = "grpcio-1.60.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cba6209c96828711cb7c8fcb45ecef8c8859238baf15119daa1bef0f6c84bfe7"}, - {file = "grpcio-1.60.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c71be3f86d67d8d1311c6076a4ba3b75ba5703c0b856b4e691c9097f9b1e8bd2"}, - {file = "grpcio-1.60.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:af5ef6cfaf0d023c00002ba25d0751e5995fa0e4c9eec6cd263c30352662cbce"}, - {file = "grpcio-1.60.1-cp311-cp311-win32.whl", hash = "sha256:a09506eb48fa5493c58f946c46754ef22f3ec0df64f2b5149373ff31fb67f3dd"}, - {file = "grpcio-1.60.1-cp311-cp311-win_amd64.whl", hash = "sha256:49c9b6a510e3ed8df5f6f4f3c34d7fbf2d2cae048ee90a45cd7415abab72912c"}, - {file = "grpcio-1.60.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:b58b855d0071575ea9c7bc0d84a06d2edfbfccec52e9657864386381a7ce1ae9"}, - {file = "grpcio-1.60.1-cp312-cp312-macosx_10_10_universal2.whl", hash = "sha256:a731ac5cffc34dac62053e0da90f0c0b8560396a19f69d9703e88240c8f05858"}, - {file = "grpcio-1.60.1-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:cf77f8cf2a651fbd869fbdcb4a1931464189cd210abc4cfad357f1cacc8642a6"}, - {file = "grpcio-1.60.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c557e94e91a983e5b1e9c60076a8fd79fea1e7e06848eb2e48d0ccfb30f6e073"}, - {file = "grpcio-1.60.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:069fe2aeee02dfd2135d562d0663fe70fbb69d5eed6eb3389042a7e963b54de8"}, - {file = "grpcio-1.60.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:cb0af13433dbbd1c806e671d81ec75bd324af6ef75171fd7815ca3074fe32bfe"}, - {file = "grpcio-1.60.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2f44c32aef186bbba254129cea1df08a20be414144ac3bdf0e84b24e3f3b2e05"}, - {file = "grpcio-1.60.1-cp312-cp312-win32.whl", hash = "sha256:a212e5dea1a4182e40cd3e4067ee46be9d10418092ce3627475e995cca95de21"}, - {file = "grpcio-1.60.1-cp312-cp312-win_amd64.whl", hash = "sha256:6e490fa5f7f5326222cb9f0b78f207a2b218a14edf39602e083d5f617354306f"}, - {file = "grpcio-1.60.1-cp37-cp37m-linux_armv7l.whl", hash = "sha256:4216e67ad9a4769117433814956031cb300f85edc855252a645a9a724b3b6594"}, - {file = "grpcio-1.60.1-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:73e14acd3d4247169955fae8fb103a2b900cfad21d0c35f0dcd0fdd54cd60367"}, - {file = "grpcio-1.60.1-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:6ecf21d20d02d1733e9c820fb5c114c749d888704a7ec824b545c12e78734d1c"}, - {file = "grpcio-1.60.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:33bdea30dcfd4f87b045d404388469eb48a48c33a6195a043d116ed1b9a0196c"}, - {file = "grpcio-1.60.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53b69e79d00f78c81eecfb38f4516080dc7f36a198b6b37b928f1c13b3c063e9"}, - {file = "grpcio-1.60.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:39aa848794b887120b1d35b1b994e445cc028ff602ef267f87c38122c1add50d"}, - {file = "grpcio-1.60.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:72153a0d2e425f45b884540a61c6639436ddafa1829a42056aa5764b84108b8e"}, - {file = "grpcio-1.60.1-cp37-cp37m-win_amd64.whl", hash = "sha256:50d56280b482875d1f9128ce596e59031a226a8b84bec88cb2bf76c289f5d0de"}, - {file = "grpcio-1.60.1-cp38-cp38-linux_armv7l.whl", hash = "sha256:6d140bdeb26cad8b93c1455fa00573c05592793c32053d6e0016ce05ba267549"}, - {file = "grpcio-1.60.1-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:bc808924470643b82b14fe121923c30ec211d8c693e747eba8a7414bc4351a23"}, - {file = "grpcio-1.60.1-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:70c83bb530572917be20c21f3b6be92cd86b9aecb44b0c18b1d3b2cc3ae47df0"}, - {file = "grpcio-1.60.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9b106bc52e7f28170e624ba61cc7dc6829566e535a6ec68528f8e1afbed1c41f"}, - {file = "grpcio-1.60.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:30e980cd6db1088c144b92fe376747328d5554bc7960ce583ec7b7d81cd47287"}, - {file = "grpcio-1.60.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:0c5807e9152eff15f1d48f6b9ad3749196f79a4a050469d99eecb679be592acc"}, - {file = "grpcio-1.60.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f1c3dc536b3ee124e8b24feb7533e5c70b9f2ef833e3b2e5513b2897fd46763a"}, - {file = "grpcio-1.60.1-cp38-cp38-win32.whl", hash = "sha256:d7404cebcdb11bb5bd40bf94131faf7e9a7c10a6c60358580fe83913f360f929"}, - {file = "grpcio-1.60.1-cp38-cp38-win_amd64.whl", hash = "sha256:c8754c75f55781515a3005063d9a05878b2cfb3cb7e41d5401ad0cf19de14872"}, - {file = "grpcio-1.60.1-cp39-cp39-linux_armv7l.whl", hash = "sha256:0250a7a70b14000fa311de04b169cc7480be6c1a769b190769d347939d3232a8"}, - {file = "grpcio-1.60.1-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:660fc6b9c2a9ea3bb2a7e64ba878c98339abaf1811edca904ac85e9e662f1d73"}, - {file = "grpcio-1.60.1-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:76eaaba891083fcbe167aa0f03363311a9f12da975b025d30e94b93ac7a765fc"}, - {file = "grpcio-1.60.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5d97c65ea7e097056f3d1ead77040ebc236feaf7f71489383d20f3b4c28412a"}, - {file = "grpcio-1.60.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb2a2911b028f01c8c64d126f6b632fcd8a9ac975aa1b3855766c94e4107180"}, - {file = "grpcio-1.60.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:5a1ebbae7e2214f51b1f23b57bf98eeed2cf1ba84e4d523c48c36d5b2f8829ff"}, - {file = "grpcio-1.60.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9a66f4d2a005bc78e61d805ed95dedfcb35efa84b7bba0403c6d60d13a3de2d6"}, - {file = "grpcio-1.60.1-cp39-cp39-win32.whl", hash = "sha256:8d488fbdbf04283f0d20742b64968d44825617aa6717b07c006168ed16488804"}, - {file = "grpcio-1.60.1-cp39-cp39-win_amd64.whl", hash = "sha256:61b7199cd2a55e62e45bfb629a35b71fc2c0cb88f686a047f25b1112d3810904"}, - {file = "grpcio-1.60.1.tar.gz", hash = "sha256:dd1d3a8d1d2e50ad9b59e10aa7f07c7d1be2b367f3f2d33c5fade96ed5460962"}, -] - -[package.extras] -protobuf = ["grpcio-tools (>=1.60.1)"] - -[[package]] -name = "idna" -version = "3.6" -description = "Internationalized Domain Names in Applications (IDNA)" -optional = false -python-versions = ">=3.5" -files = [ - {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"}, - {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"}, -] - -[[package]] -name = "importlib-metadata" -version = "7.0.1" -description = "Read metadata from Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "importlib_metadata-7.0.1-py3-none-any.whl", hash = "sha256:4805911c3a4ec7c3966410053e9ec6a1fecd629117df5adee56dfc9432a1081e"}, - {file = "importlib_metadata-7.0.1.tar.gz", hash = "sha256:f238736bb06590ae52ac1fab06a3a9ef1d8dce2b7a35b5ab329371d6c8f5d2cc"}, -] - -[package.dependencies] -zipp = ">=0.5" - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] -perf = ["ipython"] -testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)", "pytest-ruff"] - -[[package]] -name = "importlib-resources" -version = "6.1.1" -description = "Read resources from Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "importlib_resources-6.1.1-py3-none-any.whl", hash = "sha256:e8bf90d8213b486f428c9c39714b920041cb02c184686a3dee24905aaa8105d6"}, - {file = "importlib_resources-6.1.1.tar.gz", hash = "sha256:3893a00122eafde6894c59914446a512f728a0c1a45f9bb9b63721b6bacf0b4a"}, -] - -[package.dependencies] -zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-ruff", "zipp (>=3.17)"] - -[[package]] -name = "iniconfig" -version = "2.0.0" -description = "brain-dead simple config-ini parsing" -optional = false -python-versions = ">=3.7" -files = [ - {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, - {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, -] - -[[package]] -name = "itermate" -version = "1.0.2" -description = "Iterator-tools for functional programming." -optional = false -python-versions = "*" -files = [ - {file = "itermate-1.0.2-py2-none-any.whl", hash = "sha256:00308991e0fe54465e0e0fbec4d47180b4f6df0f26c1e5d2ce3641e3373f28a0"}, - {file = "itermate-1.0.2.zip", hash = "sha256:5ee758cbb363493156cee7a29effc2b148a1a19d2be3097e92fc824991901e2a"}, -] - -[[package]] -name = "joblib" -version = "1.3.2" -description = "Lightweight pipelining with Python functions" -optional = false -python-versions = ">=3.7" -files = [ - {file = "joblib-1.3.2-py3-none-any.whl", hash = "sha256:ef4331c65f239985f3f2220ecc87db222f08fd22097a3dd5698f693875f8cbb9"}, - {file = "joblib-1.3.2.tar.gz", hash = "sha256:92f865e621e17784e7955080b6d042489e3b8e294949cc44c6eac304f59772b1"}, -] - -[[package]] -name = "kiwisolver" -version = "1.4.5" -description = "A fast implementation of the Cassowary constraint solver" -optional = false -python-versions = ">=3.7" -files = [ - {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:05703cf211d585109fcd72207a31bb170a0f22144d68298dc5e61b3c946518af"}, - {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:146d14bebb7f1dc4d5fbf74f8a6cb15ac42baadee8912eb84ac0b3b2a3dc6ac3"}, - {file = "kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ef7afcd2d281494c0a9101d5c571970708ad911d028137cd558f02b851c08b4"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9eaa8b117dc8337728e834b9c6e2611f10c79e38f65157c4c38e9400286f5cb1"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ec20916e7b4cbfb1f12380e46486ec4bcbaa91a9c448b97023fde0d5bbf9e4ff"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39b42c68602539407884cf70d6a480a469b93b81b7701378ba5e2328660c847a"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa12042de0171fad672b6c59df69106d20d5596e4f87b5e8f76df757a7c399aa"}, - {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a40773c71d7ccdd3798f6489aaac9eee213d566850a9533f8d26332d626b82c"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:19df6e621f6d8b4b9c4d45f40a66839294ff2bb235e64d2178f7522d9170ac5b"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:83d78376d0d4fd884e2c114d0621624b73d2aba4e2788182d286309ebdeed770"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e391b1f0a8a5a10ab3b9bb6afcfd74f2175f24f8975fb87ecae700d1503cdee0"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:852542f9481f4a62dbb5dd99e8ab7aedfeb8fb6342349a181d4036877410f525"}, - {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59edc41b24031bc25108e210c0def6f6c2191210492a972d585a06ff246bb79b"}, - {file = "kiwisolver-1.4.5-cp310-cp310-win32.whl", hash = "sha256:a6aa6315319a052b4ee378aa171959c898a6183f15c1e541821c5c59beaa0238"}, - {file = "kiwisolver-1.4.5-cp310-cp310-win_amd64.whl", hash = "sha256:d0ef46024e6a3d79c01ff13801cb19d0cad7fd859b15037aec74315540acc276"}, - {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:11863aa14a51fd6ec28688d76f1735f8f69ab1fabf388851a595d0721af042f5"}, - {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90"}, - {file = "kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dfdd7c0b105af050eb3d64997809dc21da247cf44e63dc73ff0fd20b96be55a9"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76c6a5964640638cdeaa0c359382e5703e9293030fe730018ca06bc2010c4437"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbea0db94288e29afcc4c28afbf3a7ccaf2d7e027489c449cf7e8f83c6346eb9"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ceec1a6bc6cab1d6ff5d06592a91a692f90ec7505d6463a88a52cc0eb58545da"}, - {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f91de7223d4c7b793867797bacd1ee53bfe7359bd70d27b7b58a04efbb9436c8"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:faae4860798c31530dd184046a900e652c95513796ef51a12bc086710c2eec4d"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:b0157420efcb803e71d1b28e2c287518b8808b7cf1ab8af36718fd0a2c453eb0"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:06f54715b7737c2fecdbf140d1afb11a33d59508a47bf11bb38ecf21dc9ab79f"}, - {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fdb7adb641a0d13bdcd4ef48e062363d8a9ad4a182ac7647ec88f695e719ae9f"}, - {file = "kiwisolver-1.4.5-cp311-cp311-win32.whl", hash = "sha256:bb86433b1cfe686da83ce32a9d3a8dd308e85c76b60896d58f082136f10bffac"}, - {file = "kiwisolver-1.4.5-cp311-cp311-win_amd64.whl", hash = "sha256:6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355"}, - {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:32d5cf40c4f7c7b3ca500f8985eb3fb3a7dfc023215e876f207956b5ea26632a"}, - {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f846c260f483d1fd217fe5ed7c173fb109efa6b1fc8381c8b7552c5781756192"}, - {file = "kiwisolver-1.4.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ff5cf3571589b6d13bfbfd6bcd7a3f659e42f96b5fd1c4830c4cf21d4f5ef45"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7269d9e5f1084a653d575c7ec012ff57f0c042258bf5db0954bf551c158466e7"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da802a19d6e15dffe4b0c24b38b3af68e6c1a68e6e1d8f30148c83864f3881db"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3aba7311af82e335dd1e36ffff68aaca609ca6290c2cb6d821a39aa075d8e3ff"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:763773d53f07244148ccac5b084da5adb90bfaee39c197554f01b286cf869228"}, - {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2270953c0d8cdab5d422bee7d2007f043473f9d2999631c86a223c9db56cbd16"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d099e745a512f7e3bbe7249ca835f4d357c586d78d79ae8f1dcd4d8adeb9bda9"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:74db36e14a7d1ce0986fa104f7d5637aea5c82ca6326ed0ec5694280942d1162"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:7e5bab140c309cb3a6ce373a9e71eb7e4873c70c2dda01df6820474f9889d6d4"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0f114aa76dc1b8f636d077979c0ac22e7cd8f3493abbab152f20eb8d3cda71f3"}, - {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:88a2df29d4724b9237fc0c6eaf2a1adae0cdc0b3e9f4d8e7dc54b16812d2d81a"}, - {file = "kiwisolver-1.4.5-cp312-cp312-win32.whl", hash = "sha256:72d40b33e834371fd330fb1472ca19d9b8327acb79a5821d4008391db8e29f20"}, - {file = "kiwisolver-1.4.5-cp312-cp312-win_amd64.whl", hash = "sha256:2c5674c4e74d939b9d91dda0fae10597ac7521768fec9e399c70a1f27e2ea2d9"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3a2b053a0ab7a3960c98725cfb0bf5b48ba82f64ec95fe06f1d06c99b552e130"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cd32d6c13807e5c66a7cbb79f90b553642f296ae4518a60d8d76243b0ad2898"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59ec7b7c7e1a61061850d53aaf8e93db63dce0c936db1fda2658b70e4a1be709"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da4cfb373035def307905d05041c1d06d8936452fe89d464743ae7fb8371078b"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2400873bccc260b6ae184b2b8a4fec0e4082d30648eadb7c3d9a13405d861e89"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1b04139c4236a0f3aff534479b58f6f849a8b351e1314826c2d230849ed48985"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:4e66e81a5779b65ac21764c295087de82235597a2293d18d943f8e9e32746265"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:7931d8f1f67c4be9ba1dd9c451fb0eeca1a25b89e4d3f89e828fe12a519b782a"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:b3f7e75f3015df442238cca659f8baa5f42ce2a8582727981cbfa15fee0ee205"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:bbf1d63eef84b2e8c89011b7f2235b1e0bf7dacc11cac9431fc6468e99ac77fb"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4c380469bd3f970ef677bf2bcba2b6b0b4d5c75e7a020fb863ef75084efad66f"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-win32.whl", hash = "sha256:9408acf3270c4b6baad483865191e3e582b638b1654a007c62e3efe96f09a9a3"}, - {file = "kiwisolver-1.4.5-cp37-cp37m-win_amd64.whl", hash = "sha256:5b94529f9b2591b7af5f3e0e730a4e0a41ea174af35a4fd067775f9bdfeee01a"}, - {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:11c7de8f692fc99816e8ac50d1d1aef4f75126eefc33ac79aac02c099fd3db71"}, - {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:53abb58632235cd154176ced1ae8f0d29a6657aa1aa9decf50b899b755bc2b93"}, - {file = "kiwisolver-1.4.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:88b9f257ca61b838b6f8094a62418421f87ac2a1069f7e896c36a7d86b5d4c29"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3195782b26fc03aa9c6913d5bad5aeb864bdc372924c093b0f1cebad603dd712"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc579bf0f502e54926519451b920e875f433aceb4624a3646b3252b5caa9e0b6"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a580c91d686376f0f7c295357595c5a026e6cbc3d77b7c36e290201e7c11ecb"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cfe6ab8da05c01ba6fbea630377b5da2cd9bcbc6338510116b01c1bc939a2c18"}, - {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:d2e5a98f0ec99beb3c10e13b387f8db39106d53993f498b295f0c914328b1333"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a51a263952b1429e429ff236d2f5a21c5125437861baeed77f5e1cc2d2c7c6da"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3edd2fa14e68c9be82c5b16689e8d63d89fe927e56debd6e1dbce7a26a17f81b"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:74d1b44c6cfc897df648cc9fdaa09bc3e7679926e6f96df05775d4fb3946571c"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:76d9289ed3f7501012e05abb8358bbb129149dbd173f1f57a1bf1c22d19ab7cc"}, - {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:92dea1ffe3714fa8eb6a314d2b3c773208d865a0e0d35e713ec54eea08a66250"}, - {file = "kiwisolver-1.4.5-cp38-cp38-win32.whl", hash = "sha256:5c90ae8c8d32e472be041e76f9d2f2dbff4d0b0be8bd4041770eddb18cf49a4e"}, - {file = "kiwisolver-1.4.5-cp38-cp38-win_amd64.whl", hash = "sha256:c7940c1dc63eb37a67721b10d703247552416f719c4188c54e04334321351ced"}, - {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9407b6a5f0d675e8a827ad8742e1d6b49d9c1a1da5d952a67d50ef5f4170b18d"}, - {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15568384086b6df3c65353820a4473575dbad192e35010f622c6ce3eebd57af9"}, - {file = "kiwisolver-1.4.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0dc9db8e79f0036e8173c466d21ef18e1befc02de8bf8aa8dc0813a6dc8a7046"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:cdc8a402aaee9a798b50d8b827d7ecf75edc5fb35ea0f91f213ff927c15f4ff0"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6c3bd3cde54cafb87d74d8db50b909705c62b17c2099b8f2e25b461882e544ff"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:955e8513d07a283056b1396e9a57ceddbd272d9252c14f154d450d227606eb54"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:346f5343b9e3f00b8db8ba359350eb124b98c99efd0b408728ac6ebf38173958"}, - {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9098e0049e88c6a24ff64545cdfc50807818ba6c1b739cae221bbbcbc58aad3"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:00bd361b903dc4bbf4eb165f24d1acbee754fce22ded24c3d56eec268658a5cf"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7b8b454bac16428b22560d0a1cf0a09875339cab69df61d7805bf48919415901"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f1d072c2eb0ad60d4c183f3fb44ac6f73fb7a8f16a2694a91f988275cbf352f9"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:31a82d498054cac9f6d0b53d02bb85811185bcb477d4b60144f915f3b3126342"}, - {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6512cb89e334e4700febbffaaa52761b65b4f5a3cf33f960213d5656cea36a77"}, - {file = "kiwisolver-1.4.5-cp39-cp39-win32.whl", hash = "sha256:9db8ea4c388fdb0f780fe91346fd438657ea602d58348753d9fb265ce1bca67f"}, - {file = "kiwisolver-1.4.5-cp39-cp39-win_amd64.whl", hash = "sha256:59415f46a37f7f2efeec758353dd2eae1b07640d8ca0f0c42548ec4125492635"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5c7b3b3a728dc6faf3fc372ef24f21d1e3cee2ac3e9596691d746e5a536de920"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:620ced262a86244e2be10a676b646f29c34537d0d9cc8eb26c08f53d98013390"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:378a214a1e3bbf5ac4a8708304318b4f890da88c9e6a07699c4ae7174c09a68d"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaf7be1207676ac608a50cd08f102f6742dbfc70e8d60c4db1c6897f62f71523"}, - {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:ba55dce0a9b8ff59495ddd050a0225d58bd0983d09f87cfe2b6aec4f2c1234e4"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:fd32ea360bcbb92d28933fc05ed09bffcb1704ba3fc7942e81db0fd4f81a7892"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5e7139af55d1688f8b960ee9ad5adafc4ac17c1c473fe07133ac092310d76544"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dced8146011d2bc2e883f9bd68618b8247387f4bbec46d7392b3c3b032640126"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9bf3325c47b11b2e51bca0824ea217c7cd84491d8ac4eefd1e409705ef092bd"}, - {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5794cf59533bc3f1b1c821f7206a3617999db9fbefc345360aafe2e067514929"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e368f200bbc2e4f905b8e71eb38b3c04333bddaa6a2464a6355487b02bb7fb09"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5d706eba36b4c4d5bc6c6377bb6568098765e990cfc21ee16d13963fab7b3e7"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85267bd1aa8880a9c88a8cb71e18d3d64d2751a790e6ca6c27b8ccc724bcd5ad"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:210ef2c3a1f03272649aff1ef992df2e724748918c4bc2d5a90352849eb40bea"}, - {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:11d011a7574eb3b82bcc9c1a1d35c1d7075677fdd15de527d91b46bd35e935ee"}, - {file = "kiwisolver-1.4.5.tar.gz", hash = "sha256:e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec"}, -] - -[[package]] -name = "markdown" -version = "3.5.2" -description = "Python implementation of John Gruber's Markdown." -optional = false -python-versions = ">=3.8" -files = [ - {file = "Markdown-3.5.2-py3-none-any.whl", hash = "sha256:d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd"}, - {file = "Markdown-3.5.2.tar.gz", hash = "sha256:e1ac7b3dc550ee80e602e71c1d168002f062e49f1b11e26a36264dafd4df2ef8"}, -] - -[package.dependencies] -importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""} - -[package.extras] -docs = ["mdx-gh-links (>=0.2)", "mkdocs (>=1.5)", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-nature (>=0.6)", "mkdocs-section-index", "mkdocstrings[python]"] -testing = ["coverage", "pyyaml"] - -[[package]] -name = "markdown-it-py" -version = "3.0.0" -description = "Python port of markdown-it. Markdown parsing, done right!" -optional = false -python-versions = ">=3.8" -files = [ - {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, - {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, -] - -[package.dependencies] -mdurl = ">=0.1,<1.0" - -[package.extras] -benchmarking = ["psutil", "pytest", "pytest-benchmark"] -code-style = ["pre-commit (>=3.0,<4.0)"] -compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] -linkify = ["linkify-it-py (>=1,<3)"] -plugins = ["mdit-py-plugins"] -profiling = ["gprof2dot"] -rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] -testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] - -[[package]] -name = "markupsafe" -version = "2.1.5" -description = "Safely add untrusted strings to HTML/XML markup." -optional = false -python-versions = ">=3.7" -files = [ - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, - {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, -] - -[[package]] -name = "matplotlib" -version = "3.8.2" -description = "Python plotting package" -optional = false -python-versions = ">=3.9" -files = [ - {file = "matplotlib-3.8.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:09796f89fb71a0c0e1e2f4bdaf63fb2cefc84446bb963ecdeb40dfee7dfa98c7"}, - {file = "matplotlib-3.8.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6f9c6976748a25e8b9be51ea028df49b8e561eed7809146da7a47dbecebab367"}, - {file = "matplotlib-3.8.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b78e4f2cedf303869b782071b55fdde5987fda3038e9d09e58c91cc261b5ad18"}, - {file = "matplotlib-3.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e208f46cf6576a7624195aa047cb344a7f802e113bb1a06cfd4bee431de5e31"}, - {file = "matplotlib-3.8.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:46a569130ff53798ea5f50afce7406e91fdc471ca1e0e26ba976a8c734c9427a"}, - {file = "matplotlib-3.8.2-cp310-cp310-win_amd64.whl", hash = "sha256:830f00640c965c5b7f6bc32f0d4ce0c36dfe0379f7dd65b07a00c801713ec40a"}, - {file = "matplotlib-3.8.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d86593ccf546223eb75a39b44c32788e6f6440d13cfc4750c1c15d0fcb850b63"}, - {file = "matplotlib-3.8.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9a5430836811b7652991939012f43d2808a2db9b64ee240387e8c43e2e5578c8"}, - {file = "matplotlib-3.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9576723858a78751d5aacd2497b8aef29ffea6d1c95981505877f7ac28215c6"}, - {file = "matplotlib-3.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ba9cbd8ac6cf422f3102622b20f8552d601bf8837e49a3afed188d560152788"}, - {file = "matplotlib-3.8.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:03f9d160a29e0b65c0790bb07f4f45d6a181b1ac33eb1bb0dd225986450148f0"}, - {file = "matplotlib-3.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:3773002da767f0a9323ba1a9b9b5d00d6257dbd2a93107233167cfb581f64717"}, - {file = "matplotlib-3.8.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:4c318c1e95e2f5926fba326f68177dee364aa791d6df022ceb91b8221bd0a627"}, - {file = "matplotlib-3.8.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:091275d18d942cf1ee9609c830a1bc36610607d8223b1b981c37d5c9fc3e46a4"}, - {file = "matplotlib-3.8.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b0f3b8ea0e99e233a4bcc44590f01604840d833c280ebb8fe5554fd3e6cfe8d"}, - {file = "matplotlib-3.8.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7b1704a530395aaf73912be741c04d181f82ca78084fbd80bc737be04848331"}, - {file = "matplotlib-3.8.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:533b0e3b0c6768eef8cbe4b583731ce25a91ab54a22f830db2b031e83cca9213"}, - {file = "matplotlib-3.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:0f4fc5d72b75e2c18e55eb32292659cf731d9d5b312a6eb036506304f4675630"}, - {file = "matplotlib-3.8.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:deaed9ad4da0b1aea77fe0aa0cebb9ef611c70b3177be936a95e5d01fa05094f"}, - {file = "matplotlib-3.8.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:172f4d0fbac3383d39164c6caafd3255ce6fa58f08fc392513a0b1d3b89c4f89"}, - {file = "matplotlib-3.8.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7d36c2209d9136cd8e02fab1c0ddc185ce79bc914c45054a9f514e44c787917"}, - {file = "matplotlib-3.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5864bdd7da445e4e5e011b199bb67168cdad10b501750367c496420f2ad00843"}, - {file = "matplotlib-3.8.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ef8345b48e95cee45ff25192ed1f4857273117917a4dcd48e3905619bcd9c9b8"}, - {file = "matplotlib-3.8.2-cp39-cp39-win_amd64.whl", hash = "sha256:7c48d9e221b637c017232e3760ed30b4e8d5dfd081daf327e829bf2a72c731b4"}, - {file = "matplotlib-3.8.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:aa11b3c6928a1e496c1a79917d51d4cd5d04f8a2e75f21df4949eeefdf697f4b"}, - {file = "matplotlib-3.8.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1095fecf99eeb7384dabad4bf44b965f929a5f6079654b681193edf7169ec20"}, - {file = "matplotlib-3.8.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:bddfb1db89bfaa855912261c805bd0e10218923cc262b9159a49c29a7a1c1afa"}, - {file = "matplotlib-3.8.2.tar.gz", hash = "sha256:01a978b871b881ee76017152f1f1a0cbf6bd5f7b8ff8c96df0df1bd57d8755a1"}, -] - -[package.dependencies] -contourpy = ">=1.0.1" -cycler = ">=0.10" -fonttools = ">=4.22.0" -importlib-resources = {version = ">=3.2.0", markers = "python_version < \"3.10\""} -kiwisolver = ">=1.3.1" -numpy = ">=1.21,<2" -packaging = ">=20.0" -pillow = ">=8" -pyparsing = ">=2.3.1" -python-dateutil = ">=2.7" - -[[package]] -name = "mdurl" -version = "0.1.2" -description = "Markdown URL utilities" -optional = false -python-versions = ">=3.7" -files = [ - {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, - {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, -] - -[[package]] -name = "numpy" -version = "1.26.4" -description = "Fundamental package for array computing in Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, - {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, - {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, - {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, - {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, - {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, - {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, - {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, - {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, - {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, - {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, - {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, - {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, - {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, - {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, - {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, - {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"}, - {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"}, - {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"}, - {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"}, - {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"}, - {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"}, - {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"}, - {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"}, - {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, - {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, - {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, - {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, - {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, - {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, - {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, - {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, - {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, -] - -[[package]] -name = "oauthlib" -version = "3.2.2" -description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic" -optional = false -python-versions = ">=3.6" -files = [ - {file = "oauthlib-3.2.2-py3-none-any.whl", hash = "sha256:8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca"}, - {file = "oauthlib-3.2.2.tar.gz", hash = "sha256:9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918"}, -] - -[package.extras] -rsa = ["cryptography (>=3.0.0)"] -signals = ["blinker (>=1.4.0)"] -signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"] - -[[package]] -name = "packaging" -version = "23.2" -description = "Core utilities for Python packages" -optional = false -python-versions = ">=3.7" -files = [ - {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, - {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, -] - -[[package]] -name = "pandas" -version = "1.5.3" -description = "Powerful data structures for data analysis, time series, and statistics" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pandas-1.5.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3749077d86e3a2f0ed51367f30bf5b82e131cc0f14260c4d3e499186fccc4406"}, - {file = "pandas-1.5.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:972d8a45395f2a2d26733eb8d0f629b2f90bebe8e8eddbb8829b180c09639572"}, - {file = "pandas-1.5.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:50869a35cbb0f2e0cd5ec04b191e7b12ed688874bd05dd777c19b28cbea90996"}, - {file = "pandas-1.5.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3ac844a0fe00bfaeb2c9b51ab1424e5c8744f89860b138434a363b1f620f354"}, - {file = "pandas-1.5.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a0a56cef15fd1586726dace5616db75ebcfec9179a3a55e78f72c5639fa2a23"}, - {file = "pandas-1.5.3-cp310-cp310-win_amd64.whl", hash = "sha256:478ff646ca42b20376e4ed3fa2e8d7341e8a63105586efe54fa2508ee087f328"}, - {file = "pandas-1.5.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6973549c01ca91ec96199e940495219c887ea815b2083722821f1d7abfa2b4dc"}, - {file = "pandas-1.5.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c39a8da13cede5adcd3be1182883aea1c925476f4e84b2807a46e2775306305d"}, - {file = "pandas-1.5.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f76d097d12c82a535fda9dfe5e8dd4127952b45fea9b0276cb30cca5ea313fbc"}, - {file = "pandas-1.5.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e474390e60ed609cec869b0da796ad94f420bb057d86784191eefc62b65819ae"}, - {file = "pandas-1.5.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f2b952406a1588ad4cad5b3f55f520e82e902388a6d5a4a91baa8d38d23c7f6"}, - {file = "pandas-1.5.3-cp311-cp311-win_amd64.whl", hash = "sha256:bc4c368f42b551bf72fac35c5128963a171b40dce866fb066540eeaf46faa003"}, - {file = "pandas-1.5.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:14e45300521902689a81f3f41386dc86f19b8ba8dd5ac5a3c7010ef8d2932813"}, - {file = "pandas-1.5.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9842b6f4b8479e41968eced654487258ed81df7d1c9b7b870ceea24ed9459b31"}, - {file = "pandas-1.5.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:26d9c71772c7afb9d5046e6e9cf42d83dd147b5cf5bcb9d97252077118543792"}, - {file = "pandas-1.5.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5fbcb19d6fceb9e946b3e23258757c7b225ba450990d9ed63ccceeb8cae609f7"}, - {file = "pandas-1.5.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:565fa34a5434d38e9d250af3c12ff931abaf88050551d9fbcdfafca50d62babf"}, - {file = "pandas-1.5.3-cp38-cp38-win32.whl", hash = "sha256:87bd9c03da1ac870a6d2c8902a0e1fd4267ca00f13bc494c9e5a9020920e1d51"}, - {file = "pandas-1.5.3-cp38-cp38-win_amd64.whl", hash = "sha256:41179ce559943d83a9b4bbacb736b04c928b095b5f25dd2b7389eda08f46f373"}, - {file = "pandas-1.5.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c74a62747864ed568f5a82a49a23a8d7fe171d0c69038b38cedf0976831296fa"}, - {file = "pandas-1.5.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c4c00e0b0597c8e4f59e8d461f797e5d70b4d025880516a8261b2817c47759ee"}, - {file = "pandas-1.5.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a50d9a4336a9621cab7b8eb3fb11adb82de58f9b91d84c2cd526576b881a0c5a"}, - {file = "pandas-1.5.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd05f7783b3274aa206a1af06f0ceed3f9b412cf665b7247eacd83be41cf7bf0"}, - {file = "pandas-1.5.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f69c4029613de47816b1bb30ff5ac778686688751a5e9c99ad8c7031f6508e5"}, - {file = "pandas-1.5.3-cp39-cp39-win32.whl", hash = "sha256:7cec0bee9f294e5de5bbfc14d0573f65526071029d036b753ee6507d2a21480a"}, - {file = "pandas-1.5.3-cp39-cp39-win_amd64.whl", hash = "sha256:dfd681c5dc216037e0b0a2c821f5ed99ba9f03ebcf119c7dac0e9a7b960b9ec9"}, - {file = "pandas-1.5.3.tar.gz", hash = "sha256:74a3fd7e5a7ec052f183273dc7b0acd3a863edf7520f5d3a1765c04ffdb3b0b1"}, -] - -[package.dependencies] -numpy = [ - {version = ">=1.20.3", markers = "python_version < \"3.10\""}, - {version = ">=1.23.2", markers = "python_version >= \"3.11\""}, - {version = ">=1.21.0", markers = "python_version >= \"3.10\" and python_version < \"3.11\""}, -] -python-dateutil = ">=2.8.1" -pytz = ">=2020.1" - -[package.extras] -test = ["hypothesis (>=5.5.3)", "pytest (>=6.0)", "pytest-xdist (>=1.31)"] - -[[package]] -name = "pillow" -version = "9.5.0" -description = "Python Imaging Library (Fork)" -optional = false -python-versions = ">=3.7" -files = [ - {file = "Pillow-9.5.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:ace6ca218308447b9077c14ea4ef381ba0b67ee78d64046b3f19cf4e1139ad16"}, - {file = "Pillow-9.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d3d403753c9d5adc04d4694d35cf0391f0f3d57c8e0030aac09d7678fa8030aa"}, - {file = "Pillow-9.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ba1b81ee69573fe7124881762bb4cd2e4b6ed9dd28c9c60a632902fe8db8b38"}, - {file = "Pillow-9.5.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe7e1c262d3392afcf5071df9afa574544f28eac825284596ac6db56e6d11062"}, - {file = "Pillow-9.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f36397bf3f7d7c6a3abdea815ecf6fd14e7fcd4418ab24bae01008d8d8ca15e"}, - {file = "Pillow-9.5.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:252a03f1bdddce077eff2354c3861bf437c892fb1832f75ce813ee94347aa9b5"}, - {file = "Pillow-9.5.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:85ec677246533e27770b0de5cf0f9d6e4ec0c212a1f89dfc941b64b21226009d"}, - {file = "Pillow-9.5.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b416f03d37d27290cb93597335a2f85ed446731200705b22bb927405320de903"}, - {file = "Pillow-9.5.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1781a624c229cb35a2ac31cc4a77e28cafc8900733a864870c49bfeedacd106a"}, - {file = "Pillow-9.5.0-cp310-cp310-win32.whl", hash = "sha256:8507eda3cd0608a1f94f58c64817e83ec12fa93a9436938b191b80d9e4c0fc44"}, - {file = "Pillow-9.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:d3c6b54e304c60c4181da1c9dadf83e4a54fd266a99c70ba646a9baa626819eb"}, - {file = "Pillow-9.5.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:7ec6f6ce99dab90b52da21cf0dc519e21095e332ff3b399a357c187b1a5eee32"}, - {file = "Pillow-9.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:560737e70cb9c6255d6dcba3de6578a9e2ec4b573659943a5e7e4af13f298f5c"}, - {file = "Pillow-9.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:96e88745a55b88a7c64fa49bceff363a1a27d9a64e04019c2281049444a571e3"}, - {file = "Pillow-9.5.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d9c206c29b46cfd343ea7cdfe1232443072bbb270d6a46f59c259460db76779a"}, - {file = "Pillow-9.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cfcc2c53c06f2ccb8976fb5c71d448bdd0a07d26d8e07e321c103416444c7ad1"}, - {file = "Pillow-9.5.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:a0f9bb6c80e6efcde93ffc51256d5cfb2155ff8f78292f074f60f9e70b942d99"}, - {file = "Pillow-9.5.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:8d935f924bbab8f0a9a28404422da8af4904e36d5c33fc6f677e4c4485515625"}, - {file = "Pillow-9.5.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:fed1e1cf6a42577953abbe8e6cf2fe2f566daebde7c34724ec8803c4c0cda579"}, - {file = "Pillow-9.5.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c1170d6b195555644f0616fd6ed929dfcf6333b8675fcca044ae5ab110ded296"}, - {file = "Pillow-9.5.0-cp311-cp311-win32.whl", hash = "sha256:54f7102ad31a3de5666827526e248c3530b3a33539dbda27c6843d19d72644ec"}, - {file = "Pillow-9.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:cfa4561277f677ecf651e2b22dc43e8f5368b74a25a8f7d1d4a3a243e573f2d4"}, - {file = "Pillow-9.5.0-cp311-cp311-win_arm64.whl", hash = "sha256:965e4a05ef364e7b973dd17fc765f42233415974d773e82144c9bbaaaea5d089"}, - {file = "Pillow-9.5.0-cp312-cp312-win32.whl", hash = "sha256:22baf0c3cf0c7f26e82d6e1adf118027afb325e703922c8dfc1d5d0156bb2eeb"}, - {file = "Pillow-9.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:432b975c009cf649420615388561c0ce7cc31ce9b2e374db659ee4f7d57a1f8b"}, - {file = "Pillow-9.5.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:5d4ebf8e1db4441a55c509c4baa7a0587a0210f7cd25fcfe74dbbce7a4bd1906"}, - {file = "Pillow-9.5.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:375f6e5ee9620a271acb6820b3d1e94ffa8e741c0601db4c0c4d3cb0a9c224bf"}, - {file = "Pillow-9.5.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:99eb6cafb6ba90e436684e08dad8be1637efb71c4f2180ee6b8f940739406e78"}, - {file = "Pillow-9.5.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2dfaaf10b6172697b9bceb9a3bd7b951819d1ca339a5ef294d1f1ac6d7f63270"}, - {file = "Pillow-9.5.0-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:763782b2e03e45e2c77d7779875f4432e25121ef002a41829d8868700d119392"}, - {file = "Pillow-9.5.0-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:35f6e77122a0c0762268216315bf239cf52b88865bba522999dc38f1c52b9b47"}, - {file = "Pillow-9.5.0-cp37-cp37m-win32.whl", hash = "sha256:aca1c196f407ec7cf04dcbb15d19a43c507a81f7ffc45b690899d6a76ac9fda7"}, - {file = "Pillow-9.5.0-cp37-cp37m-win_amd64.whl", hash = "sha256:322724c0032af6692456cd6ed554bb85f8149214d97398bb80613b04e33769f6"}, - {file = "Pillow-9.5.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:a0aa9417994d91301056f3d0038af1199eb7adc86e646a36b9e050b06f526597"}, - {file = "Pillow-9.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f8286396b351785801a976b1e85ea88e937712ee2c3ac653710a4a57a8da5d9c"}, - {file = "Pillow-9.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c830a02caeb789633863b466b9de10c015bded434deb3ec87c768e53752ad22a"}, - {file = "Pillow-9.5.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fbd359831c1657d69bb81f0db962905ee05e5e9451913b18b831febfe0519082"}, - {file = "Pillow-9.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8fc330c3370a81bbf3f88557097d1ea26cd8b019d6433aa59f71195f5ddebbf"}, - {file = "Pillow-9.5.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:7002d0797a3e4193c7cdee3198d7c14f92c0836d6b4a3f3046a64bd1ce8df2bf"}, - {file = "Pillow-9.5.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:229e2c79c00e85989a34b5981a2b67aa079fd08c903f0aaead522a1d68d79e51"}, - {file = "Pillow-9.5.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9adf58f5d64e474bed00d69bcd86ec4bcaa4123bfa70a65ce72e424bfb88ed96"}, - {file = "Pillow-9.5.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:662da1f3f89a302cc22faa9f14a262c2e3951f9dbc9617609a47521c69dd9f8f"}, - {file = "Pillow-9.5.0-cp38-cp38-win32.whl", hash = "sha256:6608ff3bf781eee0cd14d0901a2b9cc3d3834516532e3bd673a0a204dc8615fc"}, - {file = "Pillow-9.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:e49eb4e95ff6fd7c0c402508894b1ef0e01b99a44320ba7d8ecbabefddcc5569"}, - {file = "Pillow-9.5.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:482877592e927fd263028c105b36272398e3e1be3269efda09f6ba21fd83ec66"}, - {file = "Pillow-9.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3ded42b9ad70e5f1754fb7c2e2d6465a9c842e41d178f262e08b8c85ed8a1d8e"}, - {file = "Pillow-9.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c446d2245ba29820d405315083d55299a796695d747efceb5717a8b450324115"}, - {file = "Pillow-9.5.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8aca1152d93dcc27dc55395604dcfc55bed5f25ef4c98716a928bacba90d33a3"}, - {file = "Pillow-9.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:608488bdcbdb4ba7837461442b90ea6f3079397ddc968c31265c1e056964f1ef"}, - {file = "Pillow-9.5.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:60037a8db8750e474af7ffc9faa9b5859e6c6d0a50e55c45576bf28be7419705"}, - {file = "Pillow-9.5.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:07999f5834bdc404c442146942a2ecadd1cb6292f5229f4ed3b31e0a108746b1"}, - {file = "Pillow-9.5.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a127ae76092974abfbfa38ca2d12cbeddcdeac0fb71f9627cc1135bedaf9d51a"}, - {file = "Pillow-9.5.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:489f8389261e5ed43ac8ff7b453162af39c3e8abd730af8363587ba64bb2e865"}, - {file = "Pillow-9.5.0-cp39-cp39-win32.whl", hash = "sha256:9b1af95c3a967bf1da94f253e56b6286b50af23392a886720f563c547e48e964"}, - {file = "Pillow-9.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:77165c4a5e7d5a284f10a6efaa39a0ae8ba839da344f20b111d62cc932fa4e5d"}, - {file = "Pillow-9.5.0-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:833b86a98e0ede388fa29363159c9b1a294b0905b5128baf01db683672f230f5"}, - {file = "Pillow-9.5.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aaf305d6d40bd9632198c766fb64f0c1a83ca5b667f16c1e79e1661ab5060140"}, - {file = "Pillow-9.5.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0852ddb76d85f127c135b6dd1f0bb88dbb9ee990d2cd9aa9e28526c93e794fba"}, - {file = "Pillow-9.5.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:91ec6fe47b5eb5a9968c79ad9ed78c342b1f97a091677ba0e012701add857829"}, - {file = "Pillow-9.5.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:cb841572862f629b99725ebaec3287fc6d275be9b14443ea746c1dd325053cbd"}, - {file = "Pillow-9.5.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:c380b27d041209b849ed246b111b7c166ba36d7933ec6e41175fd15ab9eb1572"}, - {file = "Pillow-9.5.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c9af5a3b406a50e313467e3565fc99929717f780164fe6fbb7704edba0cebbe"}, - {file = "Pillow-9.5.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5671583eab84af046a397d6d0ba25343c00cd50bce03787948e0fff01d4fd9b1"}, - {file = "Pillow-9.5.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:84a6f19ce086c1bf894644b43cd129702f781ba5751ca8572f08aa40ef0ab7b7"}, - {file = "Pillow-9.5.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:1e7723bd90ef94eda669a3c2c19d549874dd5badaeefabefd26053304abe5799"}, - {file = "Pillow-9.5.0.tar.gz", hash = "sha256:bf548479d336726d7a0eceb6e767e179fbde37833ae42794602631a070d630f1"}, -] - -[package.extras] -docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-removed-in", "sphinxext-opengraph"] -tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] - -[[package]] -name = "pluggy" -version = "1.4.0" -description = "plugin and hook calling mechanisms for python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pluggy-1.4.0-py3-none-any.whl", hash = "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981"}, - {file = "pluggy-1.4.0.tar.gz", hash = "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be"}, -] - -[package.extras] -dev = ["pre-commit", "tox"] -testing = ["pytest", "pytest-benchmark"] - -[[package]] -name = "protobuf" -version = "4.23.4" -description = "" -optional = false -python-versions = ">=3.7" -files = [ - {file = "protobuf-4.23.4-cp310-abi3-win32.whl", hash = "sha256:5fea3c64d41ea5ecf5697b83e41d09b9589e6f20b677ab3c48e5f242d9b7897b"}, - {file = "protobuf-4.23.4-cp310-abi3-win_amd64.whl", hash = "sha256:7b19b6266d92ca6a2a87effa88ecc4af73ebc5cfde194dc737cf8ef23a9a3b12"}, - {file = "protobuf-4.23.4-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:8547bf44fe8cec3c69e3042f5c4fb3e36eb2a7a013bb0a44c018fc1e427aafbd"}, - {file = "protobuf-4.23.4-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:fee88269a090ada09ca63551bf2f573eb2424035bcf2cb1b121895b01a46594a"}, - {file = "protobuf-4.23.4-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:effeac51ab79332d44fba74660d40ae79985901ac21bca408f8dc335a81aa597"}, - {file = "protobuf-4.23.4-cp37-cp37m-win32.whl", hash = "sha256:c3e0939433c40796ca4cfc0fac08af50b00eb66a40bbbc5dee711998fb0bbc1e"}, - {file = "protobuf-4.23.4-cp37-cp37m-win_amd64.whl", hash = "sha256:9053df6df8e5a76c84339ee4a9f5a2661ceee4a0dab019e8663c50ba324208b0"}, - {file = "protobuf-4.23.4-cp38-cp38-win32.whl", hash = "sha256:e1c915778d8ced71e26fcf43c0866d7499891bca14c4368448a82edc61fdbc70"}, - {file = "protobuf-4.23.4-cp38-cp38-win_amd64.whl", hash = "sha256:351cc90f7d10839c480aeb9b870a211e322bf05f6ab3f55fcb2f51331f80a7d2"}, - {file = "protobuf-4.23.4-cp39-cp39-win32.whl", hash = "sha256:6dd9b9940e3f17077e820b75851126615ee38643c2c5332aa7a359988820c720"}, - {file = "protobuf-4.23.4-cp39-cp39-win_amd64.whl", hash = "sha256:0a5759f5696895de8cc913f084e27fd4125e8fb0914bb729a17816a33819f474"}, - {file = "protobuf-4.23.4-py3-none-any.whl", hash = "sha256:e9d0be5bf34b275b9f87ba7407796556abeeba635455d036c7351f7c183ef8ff"}, - {file = "protobuf-4.23.4.tar.gz", hash = "sha256:ccd9430c0719dce806b93f89c91de7977304729e55377f872a92465d548329a9"}, -] - -[[package]] -name = "py" -version = "1.11.0" -description = "library with cross-python path, ini-parsing, io, code, log facilities" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ - {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, - {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, -] - -[[package]] -name = "pyasn1" -version = "0.5.1" -description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" -files = [ - {file = "pyasn1-0.5.1-py2.py3-none-any.whl", hash = "sha256:4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58"}, - {file = "pyasn1-0.5.1.tar.gz", hash = "sha256:6d391a96e59b23130a5cfa74d6fd7f388dbbe26cc8f1edf39fdddf08d9d6676c"}, -] - -[[package]] -name = "pyasn1-modules" -version = "0.3.0" -description = "A collection of ASN.1-based protocols modules" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" -files = [ - {file = "pyasn1_modules-0.3.0-py2.py3-none-any.whl", hash = "sha256:d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d"}, - {file = "pyasn1_modules-0.3.0.tar.gz", hash = "sha256:5bd01446b736eb9d31512a30d46c1ac3395d676c6f3cafa4c03eb54b9925631c"}, -] - -[package.dependencies] -pyasn1 = ">=0.4.6,<0.6.0" - -[[package]] -name = "pygments" -version = "2.17.2" -description = "Pygments is a syntax highlighting package written in Python." -optional = false -python-versions = ">=3.7" -files = [ - {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"}, - {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"}, -] - -[package.extras] -plugins = ["importlib-metadata"] -windows-terminal = ["colorama (>=0.4.6)"] - -[[package]] -name = "pyparsing" -version = "3.1.1" -description = "pyparsing module - Classes and methods to define and execute parsing grammars" -optional = false -python-versions = ">=3.6.8" -files = [ - {file = "pyparsing-3.1.1-py3-none-any.whl", hash = "sha256:32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb"}, - {file = "pyparsing-3.1.1.tar.gz", hash = "sha256:ede28a1a32462f5a9705e07aea48001a08f7cf81a021585011deba701581a0db"}, -] - -[package.extras] -diagrams = ["jinja2", "railroad-diagrams"] - -[[package]] -name = "pysocks" -version = "1.7.1" -description = "A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information." -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "PySocks-1.7.1-py27-none-any.whl", hash = "sha256:08e69f092cc6dbe92a0fdd16eeb9b9ffbc13cadfe5ca4c7bd92ffb078b293299"}, - {file = "PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5"}, - {file = "PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0"}, -] - -[[package]] -name = "pytest" -version = "6.2.5" -description = "pytest: simple powerful testing with Python" -optional = false -python-versions = ">=3.6" -files = [ - {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, - {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, -] - -[package.dependencies] -atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} -attrs = ">=19.2.0" -colorama = {version = "*", markers = "sys_platform == \"win32\""} -iniconfig = "*" -packaging = "*" -pluggy = ">=0.12,<2.0" -py = ">=1.8.2" -toml = "*" - -[package.extras] -testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] - -[[package]] -name = "pytest-cov" -version = "4.1.0" -description = "Pytest plugin for measuring coverage." -optional = false -python-versions = ">=3.7" -files = [ - {file = "pytest-cov-4.1.0.tar.gz", hash = "sha256:3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6"}, - {file = "pytest_cov-4.1.0-py3-none-any.whl", hash = "sha256:6ba70b9e97e69fcc3fb45bfeab2d0a138fb65c4d0d6a41ef33983ad114be8c3a"}, -] - -[package.dependencies] -coverage = {version = ">=5.2.1", extras = ["toml"]} -pytest = ">=4.6" - -[package.extras] -testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtualenv"] - -[[package]] -name = "pytest-shell" -version = "0.3.2" -description = "A pytest plugin to help with testing shell scripts / black box commands" -optional = false -python-versions = ">=3.7,<4.0" -files = [ - {file = "pytest-shell-0.3.2.tar.gz", hash = "sha256:7e30cf518a5271328f25eaa9013e1639607f169d7396a4b85204a8b34dacbab1"}, - {file = "pytest_shell-0.3.2-py3-none-any.whl", hash = "sha256:f60716134fc30e2c1fe9facb9fe60121d18b4d7b95e692b2c6f29271350aa12b"}, -] - -[package.dependencies] -where = ">=1.0.2,<2.0.0" - -[[package]] -name = "python-dateutil" -version = "2.8.2" -description = "Extensions to the standard Python datetime module" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -files = [ - {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, - {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, -] - -[package.dependencies] -six = ">=1.5" - -[[package]] -name = "pytz" -version = "2024.1" -description = "World timezone definitions, modern and historical" -optional = false -python-versions = "*" -files = [ - {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, - {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, -] - -[[package]] -name = "pyyaml" -version = "6.0.1" -description = "YAML parser and emitter for Python" -optional = false -python-versions = ">=3.6" -files = [ - {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, - {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, - {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, - {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, - {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, - {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, - {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, - {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, - {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, - {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, - {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, - {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, - {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, - {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, - {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, - {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, - {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, - {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, - {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, - {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, - {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, -] - -[[package]] -name = "requests" -version = "2.31.0" -description = "Python HTTP for Humans." -optional = false -python-versions = ">=3.7" -files = [ - {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, - {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, -] - -[package.dependencies] -certifi = ">=2017.4.17" -charset-normalizer = ">=2,<4" -idna = ">=2.5,<4" -PySocks = {version = ">=1.5.6,<1.5.7 || >1.5.7", optional = true, markers = "extra == \"socks\""} -urllib3 = ">=1.21.1,<3" - -[package.extras] -socks = ["PySocks (>=1.5.6,!=1.5.7)"] -use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] - -[[package]] -name = "requests-oauthlib" -version = "1.3.1" -description = "OAuthlib authentication support for Requests." -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "requests-oauthlib-1.3.1.tar.gz", hash = "sha256:75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a"}, - {file = "requests_oauthlib-1.3.1-py2.py3-none-any.whl", hash = "sha256:2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5"}, -] - -[package.dependencies] -oauthlib = ">=3.0.0" -requests = ">=2.0.0" - -[package.extras] -rsa = ["oauthlib[signedtoken] (>=3.0.0)"] - -[[package]] -name = "rich" -version = "13.7.0" -description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" -optional = false -python-versions = ">=3.7.0" -files = [ - {file = "rich-13.7.0-py3-none-any.whl", hash = "sha256:6da14c108c4866ee9520bbffa71f6fe3962e193b7da68720583850cd4548e235"}, - {file = "rich-13.7.0.tar.gz", hash = "sha256:5cb5123b5cf9ee70584244246816e9114227e0b98ad9176eede6ad54bf5403fa"}, -] - -[package.dependencies] -markdown-it-py = ">=2.2.0" -pygments = ">=2.13.0,<3.0.0" - -[package.extras] -jupyter = ["ipywidgets (>=7.5.1,<9)"] - -[[package]] -name = "rsa" -version = "4.9" -description = "Pure-Python RSA implementation" -optional = false -python-versions = ">=3.6,<4" -files = [ - {file = "rsa-4.9-py3-none-any.whl", hash = "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7"}, - {file = "rsa-4.9.tar.gz", hash = "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21"}, -] - -[package.dependencies] -pyasn1 = ">=0.1.3" - -[[package]] -name = "scikit-learn" -version = "1.4.0" -description = "A set of python modules for machine learning and data mining" -optional = false -python-versions = ">=3.9" -files = [ - {file = "scikit-learn-1.4.0.tar.gz", hash = "sha256:d4373c984eba20e393216edd51a3e3eede56cbe93d4247516d205643c3b93121"}, - {file = "scikit_learn-1.4.0-1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:fce93a7473e2f4ee4cc280210968288d6a7d7ad8dc6fa7bb7892145e407085f9"}, - {file = "scikit_learn-1.4.0-1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d77df3d1e15fc37a9329999979fa7868ba8655dbab21fe97fc7ddabac9e08cc7"}, - {file = "scikit_learn-1.4.0-1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2404659fedec40eeafa310cd14d613e564d13dbf8f3c752d31c095195ec05de6"}, - {file = "scikit_learn-1.4.0-1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e98632da8f6410e6fb6bf66937712c949b4010600ccd3f22a5388a83e610cc3c"}, - {file = "scikit_learn-1.4.0-1-cp310-cp310-win_amd64.whl", hash = "sha256:11b3b140f70fbc9f6a08884631ae8dd60a4bb2d7d6d1de92738ea42b740d8992"}, - {file = "scikit_learn-1.4.0-1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a8341eabdc754d5ab91641a7763243845e96b6d68e03e472531e88a4f1b09f21"}, - {file = "scikit_learn-1.4.0-1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:d1f6bce875ac2bb6b52514f67c185c564ccd299a05b65b7bab091a4c13dde12d"}, - {file = "scikit_learn-1.4.0-1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c408b46b2fd61952d519ea1af2f8f0a7a703e1433923ab1704c4131520b2083b"}, - {file = "scikit_learn-1.4.0-1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b465dd1dcd237b7b1dcd1a9048ccbf70a98c659474324fa708464c3a2533fad"}, - {file = "scikit_learn-1.4.0-1-cp311-cp311-win_amd64.whl", hash = "sha256:0db8e22c42f7980fe5eb22069b1f84c48966f3e0d23a01afde5999e3987a2501"}, - {file = "scikit_learn-1.4.0-1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e7eef6ea2ed289af40e88c0be9f7704ca8b5de18508a06897c3fe21e0905efdf"}, - {file = "scikit_learn-1.4.0-1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:349669b01435bc4dbf25c6410b0892073befdaec52637d1a1d1ff53865dc8db3"}, - {file = "scikit_learn-1.4.0-1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d439c584e58434d0350701bd33f6c10b309e851fccaf41c121aed55f6851d8cf"}, - {file = "scikit_learn-1.4.0-1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0e2427d9ef46477625ab9b55c1882844fe6fc500f418c3f8e650200182457bc"}, - {file = "scikit_learn-1.4.0-1-cp312-cp312-win_amd64.whl", hash = "sha256:d3d75343940e7bf9b85c830c93d34039fa015eeb341c5c0b4cd7a90dadfe00d4"}, - {file = "scikit_learn-1.4.0-1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:76986d22e884ab062b1beecdd92379656e9d3789ecc1f9870923c178de55f9fe"}, - {file = "scikit_learn-1.4.0-1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:e22446ad89f1cb7657f0d849dcdc345b48e2d10afa3daf2925fdb740f85b714c"}, - {file = "scikit_learn-1.4.0-1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74812c9eabb265be69d738a8ea8d4884917a59637fcbf88a5f0e9020498bc6b3"}, - {file = "scikit_learn-1.4.0-1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aad2a63e0dd386b92da3270887a29b308af4d7c750d8c4995dfd9a4798691bcc"}, - {file = "scikit_learn-1.4.0-1-cp39-cp39-win_amd64.whl", hash = "sha256:53b9e29177897c37e2ff9d4ba6ca12fdb156e22523e463db05def303f5c72b5c"}, - {file = "scikit_learn-1.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cb8f044a8f5962613ce1feb4351d66f8d784bd072d36393582f351859b065f7d"}, - {file = "scikit_learn-1.4.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:a6372c90bbf302387792108379f1ec77719c1618d88496d0df30cb8e370b4661"}, - {file = "scikit_learn-1.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:785ce3c352bf697adfda357c3922c94517a9376002971bc5ea50896144bc8916"}, - {file = "scikit_learn-1.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0aba2a20d89936d6e72d95d05e3bf1db55bca5c5920926ad7b92c34f5e7d3bbe"}, - {file = "scikit_learn-1.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:2bac5d56b992f8f06816f2cd321eb86071c6f6d44bb4b1cb3d626525820d754b"}, - {file = "scikit_learn-1.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:27ae4b0f1b2c77107c096a7e05b33458354107b47775428d1f11b23e30a73e8a"}, - {file = "scikit_learn-1.4.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:5c5c62ffb52c3ffb755eb21fa74cc2cbf2c521bd53f5c04eaa10011dbecf5f80"}, - {file = "scikit_learn-1.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f0d2018ac6fa055dab65fe8a485967990d33c672d55bc254c56c35287b02fab"}, - {file = "scikit_learn-1.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91a8918c415c4b4bf1d60c38d32958849a9191c2428ab35d30b78354085c7c7a"}, - {file = "scikit_learn-1.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:80a21de63275f8bcd7877b3e781679d2ff1eddfed515a599f95b2502a3283d42"}, - {file = "scikit_learn-1.4.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:0f33bbafb310c26b81c4d41ecaebdbc1f63498a3f13461d50ed9a2e8f24d28e4"}, - {file = "scikit_learn-1.4.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:8b6ac1442ec714b4911e5aef8afd82c691b5c88b525ea58299d455acc4e8dcec"}, - {file = "scikit_learn-1.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05fc5915b716c6cc60a438c250108e9a9445b522975ed37e416d5ea4f9a63381"}, - {file = "scikit_learn-1.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:842b7d6989f3c574685e18da6f91223eb32301d0f93903dd399894250835a6f7"}, - {file = "scikit_learn-1.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:88bcb586fdff865372df1bc6be88bb7e6f9e0aa080dab9f54f5cac7eca8e2b6b"}, - {file = "scikit_learn-1.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f77674647dd31f56cb12ed13ed25b6ed43a056fffef051715022d2ebffd7a7d1"}, - {file = "scikit_learn-1.4.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:833999872e2920ce00f3a50839946bdac7539454e200eb6db54898a41f4bfd43"}, - {file = "scikit_learn-1.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:970ec697accaef10fb4f51763f3a7b1250f9f0553cf05514d0e94905322a0172"}, - {file = "scikit_learn-1.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:923d778f378ebacca2c672ab1740e5a413e437fb45ab45ab02578f8b689e5d43"}, - {file = "scikit_learn-1.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:1d041bc95006b545b59e458399e3175ab11ca7a03dc9a74a573ac891f5df1489"}, -] - -[package.dependencies] -joblib = ">=1.2.0" -numpy = ">=1.19.5" -scipy = ">=1.6.0" -threadpoolctl = ">=2.0.0" - -[package.extras] -benchmark = ["matplotlib (>=3.3.4)", "memory-profiler (>=0.57.0)", "pandas (>=1.1.5)"] -docs = ["Pillow (>=7.1.2)", "matplotlib (>=3.3.4)", "memory-profiler (>=0.57.0)", "numpydoc (>=1.2.0)", "pandas (>=1.1.5)", "plotly (>=5.14.0)", "pooch (>=1.6.0)", "scikit-image (>=0.17.2)", "seaborn (>=0.9.0)", "sphinx (>=6.0.0)", "sphinx-copybutton (>=0.5.2)", "sphinx-gallery (>=0.15.0)", "sphinx-prompt (>=1.3.0)", "sphinxext-opengraph (>=0.4.2)"] -examples = ["matplotlib (>=3.3.4)", "pandas (>=1.1.5)", "plotly (>=5.14.0)", "pooch (>=1.6.0)", "scikit-image (>=0.17.2)", "seaborn (>=0.9.0)"] -tests = ["black (>=23.3.0)", "matplotlib (>=3.3.4)", "mypy (>=1.3)", "numpydoc (>=1.2.0)", "pandas (>=1.1.5)", "polars (>=0.19.12)", "pooch (>=1.6.0)", "pyamg (>=4.0.0)", "pyarrow (>=12.0.0)", "pytest (>=7.1.2)", "pytest-cov (>=2.9.0)", "ruff (>=0.0.272)", "scikit-image (>=0.17.2)"] - -[[package]] -name = "scipy" -version = "1.12.0" -description = "Fundamental algorithms for scientific computing in Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "scipy-1.12.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:78e4402e140879387187f7f25d91cc592b3501a2e51dfb320f48dfb73565f10b"}, - {file = "scipy-1.12.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:f5f00ebaf8de24d14b8449981a2842d404152774c1a1d880c901bf454cb8e2a1"}, - {file = "scipy-1.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e53958531a7c695ff66c2e7bb7b79560ffdc562e2051644c5576c39ff8efb563"}, - {file = "scipy-1.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e32847e08da8d895ce09d108a494d9eb78974cf6de23063f93306a3e419960c"}, - {file = "scipy-1.12.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4c1020cad92772bf44b8e4cdabc1df5d87376cb219742549ef69fc9fd86282dd"}, - {file = "scipy-1.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:75ea2a144096b5e39402e2ff53a36fecfd3b960d786b7efd3c180e29c39e53f2"}, - {file = "scipy-1.12.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:408c68423f9de16cb9e602528be4ce0d6312b05001f3de61fe9ec8b1263cad08"}, - {file = "scipy-1.12.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:5adfad5dbf0163397beb4aca679187d24aec085343755fcdbdeb32b3679f254c"}, - {file = "scipy-1.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3003652496f6e7c387b1cf63f4bb720951cfa18907e998ea551e6de51a04467"}, - {file = "scipy-1.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b8066bce124ee5531d12a74b617d9ac0ea59245246410e19bca549656d9a40a"}, - {file = "scipy-1.12.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8bee4993817e204d761dba10dbab0774ba5a8612e57e81319ea04d84945375ba"}, - {file = "scipy-1.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:a24024d45ce9a675c1fb8494e8e5244efea1c7a09c60beb1eeb80373d0fecc70"}, - {file = "scipy-1.12.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e7e76cc48638228212c747ada851ef355c2bb5e7f939e10952bc504c11f4e372"}, - {file = "scipy-1.12.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:f7ce148dffcd64ade37b2df9315541f9adad6efcaa86866ee7dd5db0c8f041c3"}, - {file = "scipy-1.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c39f92041f490422924dfdb782527a4abddf4707616e07b021de33467f917bc"}, - {file = "scipy-1.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7ebda398f86e56178c2fa94cad15bf457a218a54a35c2a7b4490b9f9cb2676c"}, - {file = "scipy-1.12.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:95e5c750d55cf518c398a8240571b0e0782c2d5a703250872f36eaf737751338"}, - {file = "scipy-1.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:e646d8571804a304e1da01040d21577685ce8e2db08ac58e543eaca063453e1c"}, - {file = "scipy-1.12.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:913d6e7956c3a671de3b05ccb66b11bc293f56bfdef040583a7221d9e22a2e35"}, - {file = "scipy-1.12.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:bba1b0c7256ad75401c73e4b3cf09d1f176e9bd4248f0d3112170fb2ec4db067"}, - {file = "scipy-1.12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:730badef9b827b368f351eacae2e82da414e13cf8bd5051b4bdfd720271a5371"}, - {file = "scipy-1.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6546dc2c11a9df6926afcbdd8a3edec28566e4e785b915e849348c6dd9f3f490"}, - {file = "scipy-1.12.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:196ebad3a4882081f62a5bf4aeb7326aa34b110e533aab23e4374fcccb0890dc"}, - {file = "scipy-1.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:b360f1b6b2f742781299514e99ff560d1fe9bd1bff2712894b52abe528d1fd1e"}, - {file = "scipy-1.12.0.tar.gz", hash = "sha256:4bf5abab8a36d20193c698b0f1fc282c1d083c94723902c447e5d2f1780936a3"}, -] - -[package.dependencies] -numpy = ">=1.22.4,<1.29.0" - -[package.extras] -dev = ["click", "cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pydevtool", "rich-click", "ruff", "types-psutil", "typing_extensions"] -doc = ["jupytext", "matplotlib (>2)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (==0.9.0)", "sphinx (!=4.1.0)", "sphinx-design (>=0.2.0)"] -test = ["asv", "gmpy2", "hypothesis", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] - -[[package]] -name = "seaborn" -version = "0.12.2" -description = "Statistical data visualization" -optional = false -python-versions = ">=3.7" -files = [ - {file = "seaborn-0.12.2-py3-none-any.whl", hash = "sha256:ebf15355a4dba46037dfd65b7350f014ceb1f13c05e814eda2c9f5fd731afc08"}, - {file = "seaborn-0.12.2.tar.gz", hash = "sha256:374645f36509d0dcab895cba5b47daf0586f77bfe3b36c97c607db7da5be0139"}, -] - -[package.dependencies] -matplotlib = ">=3.1,<3.6.1 || >3.6.1" -numpy = ">=1.17,<1.24.0 || >1.24.0" -pandas = ">=0.25" - -[package.extras] -dev = ["flake8", "flit", "mypy", "pandas-stubs", "pre-commit", "pytest", "pytest-cov", "pytest-xdist"] -docs = ["ipykernel", "nbconvert", "numpydoc", "pydata_sphinx_theme (==0.10.0rc2)", "pyyaml", "sphinx-copybutton", "sphinx-design", "sphinx-issues"] -stats = ["scipy (>=1.3)", "statsmodels (>=0.10)"] - -[[package]] -name = "setuptools" -version = "69.0.3" -description = "Easily download, build, install, upgrade, and uninstall Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "setuptools-69.0.3-py3-none-any.whl", hash = "sha256:385eb4edd9c9d5c17540511303e39a147ce2fc04bc55289c322b9e5904fe2c05"}, - {file = "setuptools-69.0.3.tar.gz", hash = "sha256:be1af57fc409f93647f2e8e4573a142ed38724b8cdd389706a867bb4efcf1e78"}, -] - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] -testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.1)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] - -[[package]] -name = "six" -version = "1.16.0" -description = "Python 2 and 3 compatibility utilities" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" -files = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] - -[[package]] -name = "soupsieve" -version = "2.5" -description = "A modern CSS selector implementation for Beautiful Soup." -optional = false -python-versions = ">=3.8" -files = [ - {file = "soupsieve-2.5-py3-none-any.whl", hash = "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"}, - {file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"}, -] - -[[package]] -name = "tensorboard" -version = "2.15.1" -description = "TensorBoard lets you watch Tensors Flow" -optional = false -python-versions = ">=3.9" -files = [ - {file = "tensorboard-2.15.1-py3-none-any.whl", hash = "sha256:c46c1d1cf13a458c429868a78b2531d8ff5f682058d69ec0840b0bc7a38f1c0f"}, -] - -[package.dependencies] -absl-py = ">=0.4" -google-auth = ">=1.6.3,<3" -google-auth-oauthlib = ">=0.5,<2" -grpcio = ">=1.48.2" -markdown = ">=2.6.8" -numpy = ">=1.12.0" -protobuf = ">=3.19.6,<4.24" -requests = ">=2.21.0,<3" -setuptools = ">=41.0.0" -six = ">1.9" -tensorboard-data-server = ">=0.7.0,<0.8.0" -werkzeug = ">=1.0.1" - -[[package]] -name = "tensorboard-data-server" -version = "0.7.2" -description = "Fast data loading for TensorBoard" -optional = false -python-versions = ">=3.7" -files = [ - {file = "tensorboard_data_server-0.7.2-py3-none-any.whl", hash = "sha256:7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb"}, - {file = "tensorboard_data_server-0.7.2-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:9fe5d24221b29625dbc7328b0436ca7fc1c23de4acf4d272f1180856e32f9f60"}, - {file = "tensorboard_data_server-0.7.2-py3-none-manylinux_2_31_x86_64.whl", hash = "sha256:ef687163c24185ae9754ed5650eb5bc4d84ff257aabdc33f0cc6f74d8ba54530"}, -] - -[[package]] -name = "threadpoolctl" -version = "3.2.0" -description = "threadpoolctl" -optional = false -python-versions = ">=3.8" -files = [ - {file = "threadpoolctl-3.2.0-py3-none-any.whl", hash = "sha256:2b7818516e423bdaebb97c723f86a7c6b0a83d3f3b0970328d66f4d9104dc032"}, - {file = "threadpoolctl-3.2.0.tar.gz", hash = "sha256:c96a0ba3bdddeaca37dc4cc7344aafad41cdb8c313f74fdfe387a867bba93355"}, -] - -[[package]] -name = "toml" -version = "0.10.2" -description = "Python Library for Tom's Obvious, Minimal Language" -optional = false -python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" -files = [ - {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, - {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, -] - -[[package]] -name = "tomli" -version = "2.0.1" -description = "A lil' TOML parser" -optional = false -python-versions = ">=3.7" -files = [ - {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, - {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, -] - -[[package]] -name = "torch" -version = "1.12.1" -description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration" -optional = false -python-versions = ">=3.7.0" -files = [ - {file = "torch-1.12.1-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:9c038662db894a23e49e385df13d47b2a777ffd56d9bcd5b832593fab0a7e286"}, - {file = "torch-1.12.1-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:4e1b9c14cf13fd2ab8d769529050629a0e68a6fc5cb8e84b4a3cc1dd8c4fe541"}, - {file = "torch-1.12.1-cp310-cp310-win_amd64.whl", hash = "sha256:e9c8f4a311ac29fc7e8e955cfb7733deb5dbe1bdaabf5d4af2765695824b7e0d"}, - {file = "torch-1.12.1-cp310-none-macosx_10_9_x86_64.whl", hash = "sha256:976c3f997cea38ee91a0dd3c3a42322785414748d1761ef926b789dfa97c6134"}, - {file = "torch-1.12.1-cp310-none-macosx_11_0_arm64.whl", hash = "sha256:68104e4715a55c4bb29a85c6a8d57d820e0757da363be1ba680fa8cc5be17b52"}, - {file = "torch-1.12.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:743784ccea0dc8f2a3fe6a536bec8c4763bd82c1352f314937cb4008d4805de1"}, - {file = "torch-1.12.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:b5dbcca369800ce99ba7ae6dee3466607a66958afca3b740690d88168752abcf"}, - {file = "torch-1.12.1-cp37-cp37m-win_amd64.whl", hash = "sha256:f3b52a634e62821e747e872084ab32fbcb01b7fa7dbb7471b6218279f02a178a"}, - {file = "torch-1.12.1-cp37-none-macosx_10_9_x86_64.whl", hash = "sha256:8a34a2fbbaa07c921e1b203f59d3d6e00ed379f2b384445773bd14e328a5b6c8"}, - {file = "torch-1.12.1-cp37-none-macosx_11_0_arm64.whl", hash = "sha256:42f639501928caabb9d1d55ddd17f07cd694de146686c24489ab8c615c2871f2"}, - {file = "torch-1.12.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:0b44601ec56f7dd44ad8afc00846051162ef9c26a8579dda0a02194327f2d55e"}, - {file = "torch-1.12.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:cd26d8c5640c3a28c526d41ccdca14cf1cbca0d0f2e14e8263a7ac17194ab1d2"}, - {file = "torch-1.12.1-cp38-cp38-win_amd64.whl", hash = "sha256:42e115dab26f60c29e298559dbec88444175528b729ae994ec4c65d56fe267dd"}, - {file = "torch-1.12.1-cp38-none-macosx_10_9_x86_64.whl", hash = "sha256:a8320ba9ad87e80ca5a6a016e46ada4d1ba0c54626e135d99b2129a4541c509d"}, - {file = "torch-1.12.1-cp38-none-macosx_11_0_arm64.whl", hash = "sha256:03e31c37711db2cd201e02de5826de875529e45a55631d317aadce2f1ed45aa8"}, - {file = "torch-1.12.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:9b356aea223772cd754edb4d9ecf2a025909b8615a7668ac7d5130f86e7ec421"}, - {file = "torch-1.12.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:6cf6f54b43c0c30335428195589bd00e764a6d27f3b9ba637aaa8c11aaf93073"}, - {file = "torch-1.12.1-cp39-cp39-win_amd64.whl", hash = "sha256:f00c721f489089dc6364a01fd84906348fe02243d0af737f944fddb36003400d"}, - {file = "torch-1.12.1-cp39-none-macosx_10_9_x86_64.whl", hash = "sha256:bfec2843daa654f04fda23ba823af03e7b6f7650a873cdb726752d0e3718dada"}, - {file = "torch-1.12.1-cp39-none-macosx_11_0_arm64.whl", hash = "sha256:69fe2cae7c39ccadd65a123793d30e0db881f1c1927945519c5c17323131437e"}, -] - -[package.dependencies] -typing-extensions = "*" - -[[package]] -name = "torchmetrics" -version = "0.10.3" -description = "PyTorch native Metrics" -optional = false -python-versions = ">=3.7" -files = [ - {file = "torchmetrics-0.10.3-py3-none-any.whl", hash = "sha256:b12cf92897545e24a825b0d168888c0f3052700c2901e2d4f7d90b252bc4a343"}, - {file = "torchmetrics-0.10.3.tar.gz", hash = "sha256:9e6ab66175f2dc13e246c37485b2c27c77931dfe47fc2b81c76217b8efdc1e57"}, -] - -[package.dependencies] -numpy = ">=1.17.2" -packaging = "*" -torch = ">=1.3.1" - -[package.extras] -all = ["lpips", "nltk (>=3.6)", "pycocotools", "pystoi", "pytorch-lightning (>=1.5)", "regex (>=2021.9.24)", "scipy", "torch-fidelity", "torchvision", "torchvision (>=0.8)", "tqdm (>=4.41.0)"] -audio = ["pystoi"] -detection = ["pycocotools", "torchvision (>=0.8)"] -docs = ["docutils (>=0.16)", "myst-parser", "nbsphinx (>=0.8)", "pandoc (>=1.0)", "sphinx (>=4.0,<5.0)", "sphinx-autodoc-typehints (>=1.0)", "sphinx-copybutton (>=0.3)", "sphinx-paramlinks (>=0.5.1)", "sphinx-togglebutton (>=0.2)", "sphinxcontrib-fulltoc (>=1.0)", "sphinxcontrib-mockautodoc"] -image = ["lpips", "scipy", "torch-fidelity", "torchvision"] -integrate = ["pytorch-lightning (>=1.5)"] -test = ["bert-score (==0.3.10)", "check-manifest", "cloudpickle (>=1.3)", "coverage (>5.2)", "fast-bss-eval (>=0.1.0)", "fire", "huggingface-hub (<0.7)", "jiwer (>=2.3.0)", "mir-eval (>=0.6)", "netcal", "phmdoctest (>=1.1.1)", "pre-commit (>=1.0)", "psutil", "pycocotools", "pypesq (>1.2)", "pytest (==6.*)", "pytest-cov (>2.10)", "pytest-doctestplus (>=0.9.0)", "pytest-timeout", "pytorch-msssim (==0.2.1)", "requests", "rouge-score (>=0.0.4)", "sacrebleu (>=2.0.0)", "scikit-image (>0.17.1)", "scikit-learn (>1.0,<1.1.1)", "torch-complex", "transformers (>=4.0)"] -text = ["nltk (>=3.6)", "regex (>=2021.9.24)", "tqdm (>=4.41.0)"] - -[[package]] -name = "torchvision" -version = "0.13.1" -description = "image and video datasets and models for torch deep learning" -optional = false -python-versions = ">=3.7" -files = [ - {file = "torchvision-0.13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:19286a733c69dcbd417b86793df807bd227db5786ed787c17297741a9b0d0fc7"}, - {file = "torchvision-0.13.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:08f592ea61836ebeceb5c97f4d7a813b9d7dc651bbf7ce4401563ccfae6a21fc"}, - {file = "torchvision-0.13.1-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:ef5fe3ec1848123cd0ec74c07658192b3147dcd38e507308c790d5943e87b88c"}, - {file = "torchvision-0.13.1-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:099874088df104d54d8008f2a28539ca0117b512daed8bf3c2bbfa2b7ccb187a"}, - {file = "torchvision-0.13.1-cp310-cp310-win_amd64.whl", hash = "sha256:8e4d02e4d8a203e0c09c10dfb478214c224d080d31efc0dbf36d9c4051f7f3c6"}, - {file = "torchvision-0.13.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5e631241bee3661de64f83616656224af2e3512eb2580da7c08e08b8c965a8ac"}, - {file = "torchvision-0.13.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:899eec0b9f3b99b96d6f85b9aa58c002db41c672437677b553015b9135b3be7e"}, - {file = "torchvision-0.13.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:83e9e2457f23110fd53b0177e1bc621518d6ea2108f570e853b768ce36b7c679"}, - {file = "torchvision-0.13.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7552e80fa222252b8b217a951c85e172a710ea4cad0ae0c06fbb67addece7871"}, - {file = "torchvision-0.13.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f230a1a40ed70d51e463ce43df243ec520902f8725de2502e485efc5eea9d864"}, - {file = "torchvision-0.13.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e9a563894f9fa40692e24d1aa58c3ef040450017cfed3598ff9637f404f3fe3b"}, - {file = "torchvision-0.13.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7cb789ceefe6dcd0dc8eeda37bfc45efb7cf34770eac9533861d51ca508eb5b3"}, - {file = "torchvision-0.13.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:87c137f343197769a51333076e66bfcd576301d2cd8614b06657187c71b06c4f"}, - {file = "torchvision-0.13.1-cp38-cp38-win_amd64.whl", hash = "sha256:4d8bf321c4380854ef04613935fdd415dce29d1088a7ff99e06e113f0efe9203"}, - {file = "torchvision-0.13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0298bae3b09ac361866088434008d82b99d6458fe8888c8df90720ef4b347d44"}, - {file = "torchvision-0.13.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c5ed609c8bc88c575226400b2232e0309094477c82af38952e0373edef0003fd"}, - {file = "torchvision-0.13.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:3567fb3def829229ec217c1e38f08c5128ff7fb65854cac17ebac358ff7aa309"}, - {file = "torchvision-0.13.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:b167934a5943242da7b1e59318f911d2d253feeca0d13ad5d832b58eed943401"}, - {file = "torchvision-0.13.1-cp39-cp39-win_amd64.whl", hash = "sha256:0e77706cc90462653620e336bb90daf03d7bf1b88c3a9a3037df8d111823a56e"}, -] - -[package.dependencies] -numpy = "*" -pillow = ">=5.3.0,<8.3.dev0 || >=8.4.dev0" -requests = "*" -torch = "1.12.1" -typing-extensions = "*" - -[package.extras] -scipy = ["scipy"] - -[[package]] -name = "tqdm" -version = "4.66.1" -description = "Fast, Extensible Progress Meter" -optional = false -python-versions = ">=3.7" -files = [ - {file = "tqdm-4.66.1-py3-none-any.whl", hash = "sha256:d302b3c5b53d47bce91fea46679d9c3c6508cf6332229aa1e7d8653723793386"}, - {file = "tqdm-4.66.1.tar.gz", hash = "sha256:d88e651f9db8d8551a62556d3cff9e3034274ca5d66e93197cf2490e2dcb69c7"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "platform_system == \"Windows\""} - -[package.extras] -dev = ["pytest (>=6)", "pytest-cov", "pytest-timeout", "pytest-xdist"] -notebook = ["ipywidgets (>=6)"] -slack = ["slack-sdk"] -telegram = ["requests"] - -[[package]] -name = "typing-extensions" -version = "4.9.0" -description = "Backported and Experimental Type Hints for Python 3.8+" -optional = false -python-versions = ">=3.8" -files = [ - {file = "typing_extensions-4.9.0-py3-none-any.whl", hash = "sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd"}, - {file = "typing_extensions-4.9.0.tar.gz", hash = "sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783"}, -] - -[[package]] -name = "unfoldnd" -version = "0.2.1" -description = "N-dimensional unfold (im2col) and fold (col2im) in PyTorch" -optional = false -python-versions = ">=3.7" -files = [ - {file = "unfoldNd-0.2.1-py3-none-any.whl", hash = "sha256:5d9a7f23e9004127486eb8c58f18025529b106ad407e6271ab57f13d910a7458"}, - {file = "unfoldNd-0.2.1.tar.gz", hash = "sha256:3d91e0e6006d1ab45702db4b36f28e6150aef11c96d46331a273efe963e5efef"}, -] - -[package.dependencies] -numpy = "*" -torch = "*" - -[package.extras] -lint = ["black", "darglint", "flake8", "flake8-bugbear", "flake8-comprehensions", "flake8-tidy-imports", "isort", "mccabe", "pep8-naming", "pycodestyle", "pydocstyle", "pyflakes"] -test = ["coveralls", "pytest", "pytest-cov", "pytest-optional-tests"] - -[[package]] -name = "urllib3" -version = "2.2.0" -description = "HTTP library with thread-safe connection pooling, file post, and more." -optional = false -python-versions = ">=3.8" -files = [ - {file = "urllib3-2.2.0-py3-none-any.whl", hash = "sha256:ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224"}, - {file = "urllib3-2.2.0.tar.gz", hash = "sha256:051d961ad0c62a94e50ecf1af379c3aba230c66c710493493560c0c223c49f20"}, -] - -[package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] -h2 = ["h2 (>=4,<5)"] -socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["zstandard (>=0.18.0)"] - -[[package]] -name = "werkzeug" -version = "3.0.1" -description = "The comprehensive WSGI web application library." -optional = false -python-versions = ">=3.8" -files = [ - {file = "werkzeug-3.0.1-py3-none-any.whl", hash = "sha256:90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10"}, - {file = "werkzeug-3.0.1.tar.gz", hash = "sha256:507e811ecea72b18a404947aded4b3390e1db8f826b494d76550ef45bb3b1dcc"}, -] - -[package.dependencies] -MarkupSafe = ">=2.1.1" - -[package.extras] -watchdog = ["watchdog (>=2.3)"] - -[[package]] -name = "where" -version = "1.0.2" -description = "Locates absolute file paths like the Windows 'where' or the Linux 'which' utility.\nMakes use of the PATH variable and the current directory." -optional = false -python-versions = "*" -files = [ - {file = "where-1.0.2-py2.py3-none-any.whl", hash = "sha256:66abc8edf95be7516e949d08a771f25acacff708ef481618562ab484fe5bc63e"}, - {file = "where-1.0.2.zip", hash = "sha256:325ef3a492a26189a47819f7375bc146887d39edd36fce132e86514334803fb1"}, -] - -[package.dependencies] -itermate = "1.0.2" - -[[package]] -name = "zipp" -version = "3.17.0" -description = "Backport of pathlib-compatible object wrapper for zip files" -optional = false -python-versions = ">=3.8" -files = [ - {file = "zipp-3.17.0-py3-none-any.whl", hash = "sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31"}, - {file = "zipp-3.17.0.tar.gz", hash = "sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0"}, -] - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"] - -[metadata] -lock-version = "2.0" -python-versions = "^3.9" -content-hash = "310c387099e1ef1d7f59802494563b7582a5df2688a9467174817026e9f1238c" diff --git a/pyproject.toml b/pyproject.toml index f77612e3c..d19013304 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "domainlab" -version = "0.6.1" +version = "0.7.0" readme = "README.md" repository = "https://github.com/marrlab/DomainLab" homepage = "https://marrlab.github.io/DomainLab/" @@ -9,9 +9,10 @@ authors = ["Xudong Sun ", "Carla Feistner", "Alexej Gos [tool.poetry.dependencies] python = "^3.9" +setuptools = "^69.5.1" numpy = "^1.23.4" -matplotlib = "^3.6.1" -seaborn = "0.12.2" +matplotlib = "^3.9.0" +seaborn = "^0.13.2" torchmetrics = "^0.10.0" torch = "^1.12.0" torchvision = "^0.13.0" diff --git a/requirements.txt b/requirements.txt index 927eca982..fc2fc3fd3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,63 +1,46 @@ -absl-py==2.1.0 ; python_version >= "3.9" and python_version < "4.0" backpack-for-pytorch==1.6.0 ; python_version >= "3.9" and python_version < "4.0" beautifulsoup4==4.12.3 ; python_version >= "3.9" and python_version < "4.0" -cachetools==5.3.2 ; python_version >= "3.9" and python_version < "4.0" -certifi==2024.2.2 ; python_version >= "3.9" and python_version < "4.0" +certifi==2024.6.2 ; python_version >= "3.9" and python_version < "4.0" charset-normalizer==3.3.2 ; python_version >= "3.9" and python_version < "4.0" colorama==0.4.6 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Windows" -contourpy==1.2.0 ; python_version >= "3.9" and python_version < "4.0" +contourpy==1.2.1 ; python_version >= "3.9" and python_version < "4.0" cycler==0.12.1 ; python_version >= "3.9" and python_version < "4.0" -einops==0.7.0 ; python_version >= "3.9" and python_version < "4.0" -filelock==3.13.1 ; python_version >= "3.9" and python_version < "4.0" -fonttools==4.48.1 ; python_version >= "3.9" and python_version < "4.0" +einops==0.8.0 ; python_version >= "3.9" and python_version < "4.0" +filelock==3.15.4 ; python_version >= "3.9" and python_version < "4.0" +fonttools==4.53.0 ; python_version >= "3.9" and python_version < "4.0" gdown==4.7.3 ; python_version >= "3.9" and python_version < "4.0" -google-auth-oauthlib==1.2.0 ; python_version >= "3.9" and python_version < "4.0" -google-auth==2.27.0 ; python_version >= "3.9" and python_version < "4.0" -grpcio==1.60.1 ; python_version >= "3.9" and python_version < "4.0" -idna==3.6 ; python_version >= "3.9" and python_version < "4.0" -importlib-metadata==7.0.1 ; python_version >= "3.9" and python_version < "3.10" -importlib-resources==6.1.1 ; python_version >= "3.9" and python_version < "3.10" -joblib==1.3.2 ; python_version >= "3.9" and python_version < "4.0" +idna==3.7 ; python_version >= "3.9" and python_version < "4.0" +importlib-resources==6.4.0 ; python_version >= "3.9" and python_version < "3.10" +joblib==1.4.2 ; python_version >= "3.9" and python_version < "4.0" kiwisolver==1.4.5 ; python_version >= "3.9" and python_version < "4.0" markdown-it-py==3.0.0 ; python_version >= "3.9" and python_version < "4.0" -markdown==3.5.2 ; python_version >= "3.9" and python_version < "4.0" -markupsafe==2.1.5 ; python_version >= "3.9" and python_version < "4.0" -matplotlib==3.8.2 ; python_version >= "3.9" and python_version < "4.0" +matplotlib==3.9.0 ; python_version >= "3.9" and python_version < "4.0" mdurl==0.1.2 ; python_version >= "3.9" and python_version < "4.0" -numpy==1.26.4 ; python_version >= "3.9" and python_version < "4.0" -oauthlib==3.2.2 ; python_version >= "3.9" and python_version < "4.0" -packaging==23.2 ; python_version >= "3.9" and python_version < "4.0" +numpy==1.26.4 ; python_version < "4.0" and python_version >= "3.9" +packaging==24.1 ; python_version >= "3.9" and python_version < "4.0" pandas==1.5.3 ; python_version >= "3.9" and python_version < "4.0" pillow==9.5.0 ; python_version >= "3.9" and python_version < "4.0" -protobuf==4.23.4 ; python_version >= "3.9" and python_version < "4.0" -pyasn1-modules==0.3.0 ; python_version >= "3.9" and python_version < "4.0" -pyasn1==0.5.1 ; python_version >= "3.9" and python_version < "4.0" -pygments==2.17.2 ; python_version >= "3.9" and python_version < "4.0" -pyparsing==3.1.1 ; python_version >= "3.9" and python_version < "4.0" +pygments==2.18.0 ; python_version >= "3.9" and python_version < "4.0" +pyparsing==3.1.2 ; python_version >= "3.9" and python_version < "4.0" pysocks==1.7.1 ; python_version >= "3.9" and python_version < "4.0" -python-dateutil==2.8.2 ; python_version >= "3.9" and python_version < "4.0" +python-dateutil==2.9.0.post0 ; python_version >= "3.9" and python_version < "4.0" pytz==2024.1 ; python_version >= "3.9" and python_version < "4.0" pyyaml==6.0.1 ; python_version >= "3.9" and python_version < "4.0" -requests-oauthlib==1.3.1 ; python_version >= "3.9" and python_version < "4.0" -requests==2.31.0 ; python_version >= "3.9" and python_version < "4.0" -requests[socks]==2.31.0 ; python_version >= "3.9" and python_version < "4.0" -rich==13.7.0 ; python_version >= "3.9" and python_version < "4.0" -rsa==4.9 ; python_version >= "3.9" and python_version < "4" -scikit-learn==1.4.0 ; python_version >= "3.9" and python_version < "4.0" -scipy==1.12.0 ; python_version >= "3.9" and python_version < "4.0" +requests==2.32.3 ; python_version >= "3.9" and python_version < "4.0" +requests[socks]==2.32.3 ; python_version >= "3.9" and python_version < "4.0" +rich==13.7.1 ; python_version >= "3.9" and python_version < "4.0" +scikit-learn==1.5.0 ; python_version >= "3.9" and python_version < "4.0" +scipy==1.13.1 ; python_version >= "3.9" and python_version < "4.0" seaborn==0.12.2 ; python_version >= "3.9" and python_version < "4.0" -setuptools==69.0.3 ; python_version >= "3.9" and python_version < "4.0" +setuptools==69.5.1 ; python_version >= "3.9" and python_version < "4.0" six==1.16.0 ; python_version >= "3.9" and python_version < "4.0" soupsieve==2.5 ; python_version >= "3.9" and python_version < "4.0" -tensorboard-data-server==0.7.2 ; python_version >= "3.9" and python_version < "4.0" -tensorboard==2.15.1 ; python_version >= "3.9" and python_version < "4.0" -threadpoolctl==3.2.0 ; python_version >= "3.9" and python_version < "4.0" +threadpoolctl==3.5.0 ; python_version >= "3.9" and python_version < "4.0" torch==1.12.1 ; python_version >= "3.9" and python_version < "4.0" torchmetrics==0.10.3 ; python_version >= "3.9" and python_version < "4.0" torchvision==0.13.1 ; python_version >= "3.9" and python_version < "4.0" -tqdm==4.66.1 ; python_version >= "3.9" and python_version < "4.0" -typing-extensions==4.9.0 ; python_version >= "3.9" and python_version < "4.0" -unfoldnd==0.2.1 ; python_version >= "3.9" and python_version < "4.0" -urllib3==2.2.0 ; python_version >= "3.9" and python_version < "4.0" -werkzeug==3.0.1 ; python_version >= "3.9" and python_version < "4.0" -zipp==3.17.0 ; python_version >= "3.9" and python_version < "3.10" +tqdm==4.66.4 ; python_version >= "3.9" and python_version < "4.0" +typing-extensions==4.12.2 ; python_version >= "3.9" and python_version < "4.0" +unfoldnd==0.2.2 ; python_version >= "3.9" and python_version < "4.0" +urllib3==2.2.2 ; python_version >= "3.9" and python_version < "4.0" +zipp==3.19.2 ; python_version >= "3.9" and python_version < "3.10" diff --git a/run_benchmark_slurm.sh b/run_benchmark_slurm.sh index 6e7fb8f72..81bcc2583 100755 --- a/run_benchmark_slurm.sh +++ b/run_benchmark_slurm.sh @@ -1,38 +1,40 @@ #!/bin/bash -timestamp() { -# date +"%T" # current time - date +"%Y-%m-%d_%H-%M-%S" -} +# Source the common functions script +source scripts/sh_benchmark_utils.sh # CONFIGFILE="examples/yaml/test_helm_benchmark.yaml" CONFIGFILE=$1 -export DOMAINLAB_CUDA_START_SEED=$2 - -if [ -z "$2" ] -then - echo "argument 2: DOMAINLAB_CUDA_START_SEED empty, will set to 0" - export DOMAINLAB_CUDA_START_SEED=0 - # in fact, the smk code will hash empty string to zero, see standalone script, - # but here we just want to ensure the seed is 0 without worrying a different - # behavior of the hash function -else - export DOMAINLAB_CUDA_START_SEED=$2 -fi +echo "Configuration file: $CONFIGFILE" +# Check if the second argument is empty and provide feedback +if [ -z "$2" ]; then + echo "argument 2: DOMAINLAB_CUDA_START_SEED empty, will set to 0" +fi +# Set DOMAINLAB_CUDA_START_SEED to the second command-line argument if provided, +# otherwise, default to 0. +DOMAINLAB_CUDA_START_SEED=${2:-0} +export DOMAINLAB_CUDA_START_SEED +echo "argument 2: DOMAINLAB_CUDA_START_SEED=$DOMAINLAB_CUDA_START_SEED" # ensure all runs sample the same hyperparameters export DOMAINLAB_CUDA_HYPERPARAM_SEED=0 export NUMBER_GPUS=1 -logdir="zoutput/logs" -mkdir -p $logdir -logfile="$logdir/$(timestamp).out" -echo "Configuration file: $CONFIGFILE" -echo "starting seed is: $DOMAINLAB_CUDA_START_SEED" + +results_dir=$(extract_output_dir "$CONFIGFILE") + +echo "Starting seed is: $DOMAINLAB_CUDA_START_SEED" +echo "Hyperparameter seed is: $DOMAINLAB_CUDA_HYPERPARAM_SEED" +echo "Number of GPUs: $NUMBER_GPUS" +echo "Results will be stored in: $results_dir" + +logfile=$(create_log_file "$results_dir") echo "verbose log: $logfile" -# Helmholtz -rm -f -R .snakemake -snakemake --profile "examples/yaml/slurm" --config yaml_file=$CONFIGFILE --keep-going --keep-incomplete --notemp --cores 3 -s "domainlab/exp_protocol/benchmark.smk" --configfile "$CONFIGFILE" 2>&1 | tee "$logfile" +# Helmholtz +export logdir="${results_dir}/slurm_logs/" +echo "slurm logs going into ${logdir}" +# snakemake --config logdir="zoutput/benchmark/logs" does not seem to work +snakemake --profile "examples/yaml/slurm" --config yaml_file="$CONFIGFILE" --keep-going --keep-incomplete --notemp --cores 3 -s "domainlab/exp_protocol/benchmark.smk" --configfile "$CONFIGFILE" --config output_dir="$results_dir" 2>&1 | tee "$logfile" diff --git a/run_benchmark_standalone.sh b/run_benchmark_standalone.sh index 8f712d1d1..b9a65dd66 100755 --- a/run_benchmark_standalone.sh +++ b/run_benchmark_standalone.sh @@ -1,52 +1,45 @@ -set -e - -timestamp() { -# date +"%T" # current time - date +"%Y-%m-%d_%H-%M-%S" -} +#!/bin/bash +set -e -logdir="zoutput/logs" -mkdir -p $logdir -logfile="$logdir/$(timestamp).out" -echo "verbose log: $logfile" - +# Source the common functions script +source scripts/sh_benchmark_utils.sh CONFIGFILE=$1 +echo "Configuration file: $CONFIGFILE" - - -echo "argument 2=$2" -if [ -z "$2" ] -then - echo "argument 2: DOMAINLAB_CUDA_START_SEED empty" - echo "empty string will be hashed into 0" +# Check if the second argument is empty and provide feedback +if [ -z "$2" ]; then + echo "argument 2: DOMAINLAB_CUDA_START_SEED empty, will set to 0" fi +# Set DOMAINLAB_CUDA_START_SEED to the second command-line argument if provided, +# otherwise, default to 0. +DOMAINLAB_CUDA_START_SEED=${2:-0} +export DOMAINLAB_CUDA_START_SEED +echo "argument 2: DOMAINLAB_CUDA_START_SEED=$DOMAINLAB_CUDA_START_SEED" -export DOMAINLAB_CUDA_START_SEED=$2 - +# Configuring DOMAINLAB_CUDA_HYPERPARAM_SEED +DOMAINLAB_CUDA_HYPERPARAM_SEED=${3:-0} +export DOMAINLAB_CUDA_HYPERPARAM_SEED +echo "argument 3: DOMAINLAB_CUDA_HYPERPARAM_SEED=$DOMAINLAB_CUDA_HYPERPARAM_SEED" -echo "argument 3: $3" +echo "argument 4: NUMBER_GPUS=$4" +NUMBER_GPUS=${4:-1} +export NUMBER_GPUS +echo "argument 4: NUMBER_GPUS set to ${NUMBER_GPUS}" -if [ -z "$3" ] -then - echo "argument 3: DOMAINLAB_CUDA_HYPERPARAM_SEED empty, will set to 0" - export DOMAINLAB_CUDA_HYPERPARAM_SEED=0 -else - export DOMAINLAB_CUDA_HYPERPARAM_SEED=$3 -fi +results_dir=$(extract_output_dir "$CONFIGFILE") +echo "Starting seed is: $DOMAINLAB_CUDA_START_SEED" +echo "Hyperparameter seed is: $DOMAINLAB_CUDA_HYPERPARAM_SEED" +echo "Number of GPUs: $NUMBER_GPUS" +echo "Results will be stored in: $results_dir" -echo "argument 4: NUMBER_GPUS=$4" -if [ -z "$4" ] -then - export NUMBER_GPUS=1 - echo "argument 4: NUMBER_GPUS set to 1" - echo "argument 4: NUMBER_GPUS=$NUMBER_GPUS" -else - export NUMBER_GPUS=$4 -fi +logfile=$(create_log_file "$results_dir") +echo "verbose log: $logfile" +# copy yaml file into the results folder +cp $CONFIGFILE $results_dir # -n: dry-run (A dry run is a software testing process where the effects of a possible failure are intentionally mitigated, For example, there is rsync utility for transfer data over some interface, but user can try rsync with dry-run option to check syntax and test communication without data transferring.) # -p: print shell commands @@ -55,14 +48,11 @@ fi # -- configfile: configuration yaml file of the benchmark - - # first display all tasks snakemake --rerun-incomplete --cores 1 -s "domainlab/exp_protocol/benchmark.smk" --configfile "$CONFIGFILE" --keep-going --summary # this will give us a clue first what jobs will be run # second submit the jobs, make sure you have more than 4 cores on your laptop, otherwise adjust the cores -snakemake --config yaml_file=$CONFIGFILE --rerun-incomplete --resources nvidia_gpu=$NUMBER_GPUS --cores 4 -s "domainlab/exp_protocol/benchmark.smk" --configfile "$CONFIGFILE" 2>&1 | tee "$logfile" - +snakemake --config yaml_file="$CONFIGFILE" --rerun-incomplete --resources nvidia_gpu="$NUMBER_GPUS" --cores 4 -s "domainlab/exp_protocol/benchmark.smk" --configfile "$CONFIGFILE" --config output_dir="$results_dir" 2>&1 | tee "$logfile" # snakemake --rerun-incomplete --cores 1 -s "domainlab/exp_protocol/benchmark.smk" --configfile "examples/yaml/demo_benchmark.yaml" # snakemake -np -s "domainlab/exp_protocol/benchmark.smk" --configfile "examples/yaml/demo_benchmark.yaml" diff --git a/ci.sh b/scripts/ci.sh similarity index 100% rename from ci.sh rename to scripts/ci.sh diff --git a/ci_benchmark.sh b/scripts/ci_benchmark.sh similarity index 100% rename from ci_benchmark.sh rename to scripts/ci_benchmark.sh diff --git a/ci_pytest_cov.sh b/scripts/ci_pytest_cov.sh similarity index 100% rename from ci_pytest_cov.sh rename to scripts/ci_pytest_cov.sh diff --git a/ci_run_examples.sh b/scripts/ci_run_examples.sh similarity index 64% rename from ci_run_examples.sh rename to scripts/ci_run_examples.sh index 9f6b4e041..98e0046a6 100644 --- a/ci_run_examples.sh +++ b/scripts/ci_run_examples.sh @@ -3,14 +3,24 @@ set -e # exit upon first error # >> append content # > erase original content -# echo "#!/bin/bash -x -v" > sh_temp_example.sh -sed -n '/```shell/,/```/ p' docs/doc_examples.md | sed '/^```/ d' >> ./sh_temp_example.sh -split -l 5 sh_temp_example.sh sh_example_split -for file in sh_example_split*; -do (echo "#!/bin/bash -x -v" > "$file"_exe && cat "$file" >> "$file"_exe && bash -x -v "$file"_exe && rm -r zoutput); + +files=("docs/docDIAL.md" "docs/docIRM.md" "docs/doc_examples.md" "docs/docHDUVA.md") + +for file in "${files[@]}" +do +echo "Processing $file" +# no need to remove sh_temp_algo.sh since the following line overwrite it each time +echo "#!/bin/bash -x -v" > sh_temp_algo.sh +# remove code marker ``` +# we use >> here to append to keep the header #!/bin/bash -x -v +sed -n '/```shell/,/```/ p' $file | sed '/^```/ d' >> ./sh_temp_algo.sh +cat sh_temp_algo.sh +bash -x -v -e sh_temp_algo.sh +# Add your commands to process each file here +echo "finished with $file" done -# bash -x -v -e sh_temp_example.sh -echo "general examples done" + + echo "#!/bin/bash -x -v" > sh_temp_mnist.sh sed -n '/```shell/,/```/ p' docs/doc_MNIST_classification.md | sed '/^```/ d' >> ./sh_temp_mnist.sh diff --git a/clean.sh b/scripts/clean.sh similarity index 100% rename from clean.sh rename to scripts/clean.sh diff --git a/gen_doc.sh b/scripts/gen_doc.sh similarity index 100% rename from gen_doc.sh rename to scripts/gen_doc.sh diff --git a/poetry_pytest.sh b/scripts/poetry_pytest.sh similarity index 100% rename from poetry_pytest.sh rename to scripts/poetry_pytest.sh diff --git a/sbatch4submit_slurm_cpu_10days.sh b/scripts/sbatch4submit_slurm_cpu_10days.sh similarity index 100% rename from sbatch4submit_slurm_cpu_10days.sh rename to scripts/sbatch4submit_slurm_cpu_10days.sh diff --git a/sbatch4submit_slurm_cpu_3days.sh b/scripts/sbatch4submit_slurm_cpu_3days.sh similarity index 100% rename from sbatch4submit_slurm_cpu_3days.sh rename to scripts/sbatch4submit_slurm_cpu_3days.sh diff --git a/sh_benchmark_agg.sh b/scripts/sh_benchmark_agg.sh similarity index 100% rename from sh_benchmark_agg.sh rename to scripts/sh_benchmark_agg.sh diff --git a/scripts/sh_benchmark_utils.sh b/scripts/sh_benchmark_utils.sh new file mode 100644 index 000000000..b8b214949 --- /dev/null +++ b/scripts/sh_benchmark_utils.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# This script contains common functions used in multiple scripts + +# Function to generate a timestamp +timestamp() { + date +"%Y-%m-%d_%H-%M-%S" +} + +# Function to create a log file with a timestamp in the name +create_log_file() { + local logdir="$1/snakemake_scheduler_logs" + mkdir -p "$logdir" + local logfile="$logdir/$(timestamp).out" + echo "$logfile" +} + +# Function to extract the output directory from a config file and append a timestamp to it +extract_output_dir() { + local config_file=$1 + local output_dir=$(awk '/output_dir:/ {print $2}' "$config_file") + if [ -z "$output_dir" ]; then + echo "Error: output_dir not specified in $config_file" + exit 1 + fi + echo "${output_dir}_$(timestamp)" +} diff --git a/scripts/sh_download_pacs.sh b/scripts/sh_download_pacs.sh new file mode 100755 index 000000000..d28473892 --- /dev/null +++ b/scripts/sh_download_pacs.sh @@ -0,0 +1,3 @@ +mkdir -p domainlab/zdata/pacs +cd domainlab/zdata/script +python3 download_pacs.py diff --git a/scripts/sh_link_pacs_dataset.sh b/scripts/sh_link_pacs_dataset.sh index 742f256e5..60823522b 100644 --- a/scripts/sh_link_pacs_dataset.sh +++ b/scripts/sh_link_pacs_dataset.sh @@ -1,2 +1,5 @@ +mkdir -p domainlab/zdata/pacs +ln -s ~/Documents/datasets/pacs/raw domainlab/zdata/pacs/PACS + mkdir -p data/pacs ln -s ~/Documents/datasets/pacs/raw data/pacs/PACS diff --git a/scripts/sh_list_error.sh b/scripts/sh_list_error.sh new file mode 100644 index 000000000..cd0c01bef --- /dev/null +++ b/scripts/sh_list_error.sh @@ -0,0 +1,5 @@ +# find $1 -type f -print0 | xargs -0 grep -li error +# # B means before, A means after, some erros have long stack exception message so we need at least +# # 100 lines before the error, the last line usually indicate the root cause of error +grep -B 100 -wnr "error" --group-separator="=========begin_slurm_error===============" $1 > slurm_errors.txt +cat slurm_errors.txt diff --git a/scripts/sh_list_job_via_run_experiment_folder1_slurm_id2.sh b/scripts/sh_list_job_via_run_experiment_folder1_slurm_id2.sh new file mode 100644 index 000000000..5eeb6493b --- /dev/null +++ b/scripts/sh_list_job_via_run_experiment_folder1_slurm_id2.sh @@ -0,0 +1,2 @@ +# find zoutput/benchmarks/xxx/slurm_logs/run_experiment/ | grep -i "$1" +find $1 | grep -i "$2" diff --git a/sh_publish.sh b/scripts/sh_publish.sh similarity index 100% rename from sh_publish.sh rename to scripts/sh_publish.sh diff --git a/scripts/slurm_status.sh b/scripts/slurm_status.sh new file mode 100755 index 000000000..d60bbcdd9 --- /dev/null +++ b/scripts/slurm_status.sh @@ -0,0 +1 @@ +squeue --format="%.8i %.4P %.54j %.1u %.8T %.8M %.8l %.6D %R" -u $1 diff --git a/submit_slurm_via_cpu_10days.sh b/scripts/submit_slurm_via_cpu_10days.sh similarity index 100% rename from submit_slurm_via_cpu_10days.sh rename to scripts/submit_slurm_via_cpu_10days.sh diff --git a/submit_slurm_via_cpu_3days.sh b/scripts/submit_slurm_via_cpu_3days.sh similarity index 100% rename from submit_slurm_via_cpu_3days.sh rename to scripts/submit_slurm_via_cpu_3days.sh diff --git a/setup.py b/setup.py index 3d80b71c9..5ea48277c 100644 --- a/setup.py +++ b/setup.py @@ -38,7 +38,7 @@ def copy_dir(dir_path="zdata"): package_data={ "zdata": [f for f in copy_dir()], }, - version="0.6.1", + version="0.7.0", description="Library of modular domain generalization for deep learning", url="https://github.com/marrlab/DomainLab", author="Xudong Sun, et.al.", diff --git a/sh_download_pacs.sh b/sh_download_pacs.sh deleted file mode 100644 index e6b8b2020..000000000 --- a/sh_download_pacs.sh +++ /dev/null @@ -1,3 +0,0 @@ -mkdir -p data/pacs -cd data/script -python download_pacs.py diff --git a/sh_list_error.sh b/sh_list_error.sh deleted file mode 100644 index 5f725e15b..000000000 --- a/sh_list_error.sh +++ /dev/null @@ -1,5 +0,0 @@ -# find $1 -type f -print0 | xargs -0 grep -li error -# B means before, A means after, some erros have long stack exception message so we need at least -# 100 lines before the error, the last line usually indicate the root cause of error -grep -B 100 -wnr "error" --group-separator="=========begin_slurm_error===============" $1 > slurm_errors.txt -cat slurm_errors.txt diff --git a/sh_list_job_via_slurm_id.sh b/sh_list_job_via_slurm_id.sh deleted file mode 100644 index d8e2272ce..000000000 --- a/sh_list_job_via_slurm_id.sh +++ /dev/null @@ -1 +0,0 @@ -find zoutput/slurm_logs/run_experiment/ | grep -i "$1" diff --git a/tests/dset_mnist_color_solo_default_test.py b/tests/dset_mnist_color_solo_default_test.py index 76e32bfdb..454f305e8 100644 --- a/tests/dset_mnist_color_solo_default_test.py +++ b/tests/dset_mnist_color_solo_default_test.py @@ -6,45 +6,45 @@ def test_color_mnist(): """ test_color_mnist """ - dset = DsetMNISTColorSoloDefault(0, "zout") - plot_ds(dset, "zout/color_solo.png") + dset = DsetMNISTColorSoloDefault(0, "zoutput") + plot_ds(dset, "zoutput/color_solo.png") ds_list = [] for i in range(10): - ds_list.append(DsetMNISTColorSoloDefault(i, "zout")) - plot_ds_list(ds_list, "zout/color_0_9.png") + ds_list.append(DsetMNISTColorSoloDefault(i, "zoutput")) + plot_ds_list(ds_list, "zoutput/color_0_9.png") def test_color_mnist2(): """ test_color_mnist """ - dset = DsetMNISTColorSoloDefault(0, "zout", flag_rand_color=True) - plot_ds(dset, "zout/color_solo.png") + dset = DsetMNISTColorSoloDefault(0, "zoutput", flag_rand_color=True) + plot_ds(dset, "zoutput/color_solo.png") ds_list = [] for i in range(10): - ds_list.append(DsetMNISTColorSoloDefault(i, "zout")) - plot_ds_list(ds_list, "zout/color_0_9.png") + ds_list.append(DsetMNISTColorSoloDefault(i, "zoutput")) + plot_ds_list(ds_list, "zoutput/color_0_9.png") def test_color_mnist3(): """ test_color_mnist """ - dset = DsetMNISTColorSoloDefault(0, "zout", color_scheme="num", raw_split="test") - plot_ds(dset, "zout/color_solo.png") + dset = DsetMNISTColorSoloDefault(0, "zoutput", color_scheme="num", raw_split="test") + plot_ds(dset, "zoutput/color_solo.png") ds_list = [] for i in range(10): - ds_list.append(DsetMNISTColorSoloDefault(i, "zout")) - plot_ds_list(ds_list, "zout/color_0_9.png") + ds_list.append(DsetMNISTColorSoloDefault(i, "zoutput")) + plot_ds_list(ds_list, "zoutput/color_0_9.png") def test_color_mnist4(): """ test_color_mnist """ - dset = DsetMNISTColorSoloDefault(0, "zout", color_scheme="back", raw_split="test") - plot_ds(dset, "zout/color_solo.png") + dset = DsetMNISTColorSoloDefault(0, "zoutput", color_scheme="back", raw_split="test") + plot_ds(dset, "zoutput/color_solo.png") ds_list = [] for i in range(10): - ds_list.append(DsetMNISTColorSoloDefault(i, "zout")) - plot_ds_list(ds_list, "zout/color_0_9.png") + ds_list.append(DsetMNISTColorSoloDefault(i, "zoutput")) + plot_ds_list(ds_list, "zoutput/color_0_9.png") diff --git a/tests/dset_poly_domains_mnist_color_default_test.py b/tests/dset_poly_domains_mnist_color_default_test.py index 1e0661eca..b4c7d71fc 100644 --- a/tests/dset_poly_domains_mnist_color_default_test.py +++ b/tests/dset_poly_domains_mnist_color_default_test.py @@ -7,5 +7,5 @@ def test_color_mnist(): - dset = DsetMNISTColorMix(n_domains=3, path="./output/") + dset = DsetMNISTColorMix(n_domains=3, path="./zoutput/testsoutput") plot_ds(dset, "color_mix.png") diff --git a/tests/dset_subfolder_test.py b/tests/dset_subfolder_test.py index ccf9bc575..9491bb47c 100644 --- a/tests/dset_subfolder_test.py +++ b/tests/dset_subfolder_test.py @@ -10,7 +10,7 @@ def test_fun(): dset = DsetSubFolder( - root="data/vlcs_mini/caltech", + root="domainlab/zdata/vlcs_mini/caltech", list_class_dir=["auto", "vogel"], loader=fun_img_path_loader_default, extensions="jpg", @@ -23,7 +23,7 @@ def test_fun(): def test_mixed_codec(): """Check if only images with given extension are loaded.""" dset = DsetSubFolder( - root="data/mixed_codec/caltech", + root="domainlab/zdata/mixed_codec/caltech", list_class_dir=["auto", "vogel"], loader=fun_img_path_loader_default, extensions=None, @@ -33,7 +33,7 @@ def test_mixed_codec(): assert len(dset.samples) == 6 dset = DsetSubFolder( - root="data/mixed_codec/caltech", + root="domainlab/zdata/mixed_codec/caltech", list_class_dir=["auto", "vogel"], loader=fun_img_path_loader_default, extensions="jpg", @@ -42,11 +42,11 @@ def test_mixed_codec(): ) assert ( len(dset.samples) == 4 - ), f"data/mixed_codec contains 4 jpg files, but {len(dset.samples)} were loaded." + ), f"domainlab/zdata/mixed_codec contains 4 jpg files, but {len(dset.samples)} were loaded." with pytest.raises(ValueError): DsetSubFolder( - root="data/mixed_codec/caltech", + root="domainlab/zdata/mixed_codec/caltech", list_class_dir=["auto", "vogel"], loader=fun_img_path_loader_default, extensions="jpg", @@ -60,7 +60,7 @@ def test_wrong_class_names(): """Check for error if list_class_dir does not match the subfolders.""" with pytest.raises(RuntimeError): DsetSubFolder( - root="data/mixed_codec/caltech", + root="domainlab/zdata/mixed_codec/caltech", list_class_dir=["auto", "haus"], loader=fun_img_path_loader_default, extensions=None, diff --git a/tests/dset_utils_data_test.py b/tests/dset_utils_data_test.py index 3b618146c..41b580935 100644 --- a/tests/dset_utils_data_test.py +++ b/tests/dset_utils_data_test.py @@ -3,7 +3,7 @@ def test_dset_in_mem_decorator(): - dset = DsetMNISTColorSoloDefault(path="../data", ind_color=1) + dset = DsetMNISTColorSoloDefault(path="../domainlab/zdata", ind_color=1) dset_in_memory = DsetInMemDecorator(dset=dset) dset_in_memory.__len__() dset_in_memory.__getitem__(0) diff --git a/tests/test_a_model.py b/tests/test_a_model.py new file mode 100644 index 000000000..fac060f06 --- /dev/null +++ b/tests/test_a_model.py @@ -0,0 +1,69 @@ +""" +Test a model functionality +""" +import pytest +from domainlab.models.a_model import AModel + +class ModelTest(AModel): + """ + A test model class conforming to model naming + """ + + def __init__(self): + super().__init__() + self.test_param = 42 + + def cal_task_loss(self, tensor_x, tensor_y): + return 0 + + def _cal_reg_loss(self, tensor_x, tensor_y, tensor_d, others=None): + return 0 + + @property + def metric4msel(self): + return "" + + +class InvalidTest(AModel): + """ + A test model class that does not conform to the "Model" prefix naming convention + """ + + def cal_task_loss(self, tensor_x, tensor_y): + return 0 + + def _cal_reg_loss(self, tensor_x, tensor_y, tensor_d, others=None): + return 0 + + @property + def metric4msel(self): + return "" + + +def test_model_name_valid(): + """ + Test a valid model name + """ + model = ModelTest() + assert model.name == "test", f"Expected 'test' but got '{model.name}'" + + +def test_model_name_invalid(): + """ + Test an invalid model name + """ + model = InvalidTest() + with pytest.raises(RuntimeError, match="Model builder node class must start with"): + _ = model.name + + +def test_print_parameters(capsys): + """ + Test the printing of parameters + """ + model = ModelTest() + model.print_parameters() + captured = capsys.readouterr() + assert "Parameters of ModelTest:" in captured.out + assert "'test_param': 42" in captured.out + \ No newline at end of file diff --git a/tests/test_a_trainer.py b/tests/test_a_trainer.py new file mode 100644 index 000000000..d4e073ae3 --- /dev/null +++ b/tests/test_a_trainer.py @@ -0,0 +1,34 @@ +""" +Test a trainer functionality +""" + +from domainlab.algos.trainers.a_trainer import AbstractTrainer + +class TrainerTest(AbstractTrainer): + """ + A test trainer class conforming to model naming + """ + + def __init__(self): + super().__init__() + self.test_param = 42 + + def tr_epoch(self, epoch): + """ + :param epoch: + """ + + def before_tr(self): + """ + before training, probe model performance + """ + +def test_print_parameters(capsys): + """ + Test the printing of parameters + """ + trainer = TrainerTest() + trainer.print_parameters() + captured = capsys.readouterr() + assert "Parameters of TrainerTest:" in captured.out + assert "'test_param': 42" in captured.out diff --git a/tests/test_argparse.py b/tests/test_argparse.py index 683f66911..2eaaae10b 100644 --- a/tests/test_argparse.py +++ b/tests/test_argparse.py @@ -1,14 +1,11 @@ """ Test argparser functionality """ - import os import sys - import pytest - from domainlab.arg_parser import apply_dict_to_args, mk_parser_main, parse_cmd_args - +from domainlab.arg_parser import ParseValuesOrKeyValuePairs def test_parse_cmd_args_warning(): """Call argparser for command line""" @@ -54,3 +51,31 @@ def test_apply_dict_to_args(): apply_dict_to_args(args, data, extend=True) assert args.a == 1 assert args.model == "diva" + +def test_store_dict_key_value_valid(): + """Testing to parse valid gamma_reg value""" + parser = mk_parser_main() + parser.add_argument("--keypair", action=ParseValuesOrKeyValuePairs) + namespace = parser.parse_args(["--keypair", "1"]) + assert namespace.keypair == 1.0 + +def test_store_dict_key_value_pair_valid(): + """Testing to parse valid gamma_reg key value paris""" + parser = mk_parser_main() + parser.add_argument("--keypair", action=ParseValuesOrKeyValuePairs) + namespace = parser.parse_args(["--keypair", "value1=1,value2=2"]) + assert namespace.keypair == {"value1": 1.0, "value2": 2.0} + +def test_store_dict_key_value_invalid(): + """Testing to parse invalid gamma_reg value""" + parser = mk_parser_main() + parser.add_argument("--keypair", action=ParseValuesOrKeyValuePairs) + with pytest.raises(ValueError): + parser.parse_args(["--keypair", "invalid"]) + +def test_store_dict_key_value_pair_invalid(): + """Testing to parse invalid gamma_reg key value pairs""" + parser = mk_parser_main() + parser.add_argument("--keypair", action=ParseValuesOrKeyValuePairs) + with pytest.raises(ValueError): + parser.parse_args(["--keypair", "value1=1,value2=invalid"]) diff --git a/tests/test_benchmark_plots.py b/tests/test_benchmark_plots.py index f8018dd5f..855157b7f 100644 --- a/tests/test_benchmark_plots.py +++ b/tests/test_benchmark_plots.py @@ -9,10 +9,10 @@ def test_benchm_plots(): test benchmark plots """ gen_benchmark_plots( - "data/ztest_files/aggret_res_test1", + "domainlab/zdata/ztest_files/aggret_res_test1", "zoutput/benchmark_plots_test/outp1", use_param_index=False, ) gen_benchmark_plots( - "data/ztest_files/aggret_res_test2", "zoutput/benchmark_plots_test/outp2" + "domainlab/zdata/ztest_files/aggret_res_test2", "zoutput/benchmark_plots_test/outp2" ) diff --git a/tests/test_causal_irl.py b/tests/test_causal_irl.py new file mode 100644 index 000000000..5292ef18c --- /dev/null +++ b/tests/test_causal_irl.py @@ -0,0 +1,13 @@ +""" + end-end test +""" +from tests.utils_test import utils_test_algo + + +def test_causal_irl(): + """ + causal irl + """ + args = "--te_d 0 --tr_d 3 7 --bs=32 --debug --task=mnistcolor10 \ + --model=erm --nname=conv_bn_pool_2 --trainer=causalirl" + utils_test_algo(args) diff --git a/tests/test_coral.py b/tests/test_coral.py new file mode 100644 index 000000000..8534ee11a --- /dev/null +++ b/tests/test_coral.py @@ -0,0 +1,13 @@ +""" + end-end test +""" +from tests.utils_test import utils_test_algo + + +def test_coral(): + """ + coral + """ + args = "--te_d 0 --tr_d 3 7 --bs=32 --debug --task=mnistcolor10 \ + --model=erm --nname=conv_bn_pool_2 --trainer=coral" + utils_test_algo(args) diff --git a/tests/test_exp_protocol.py b/tests/test_exp_protocol.py index 2f9ca03ea..bae262258 100644 --- a/tests/test_exp_protocol.py +++ b/tests/test_exp_protocol.py @@ -33,7 +33,7 @@ def utils_run_experiment(yaml_name, list_test_domains, no_run=True): config["startseed"] = 1 config["endseed"] = 1 config["test_domains"] = list_test_domains - param_file = "data/ztest_files/test_parameter_samples.csv" + param_file = "domainlab/zdata/ztest_files/test_parameter_samples.csv" param_index = 0 out_file = "zoutput/benchmarks/demo_benchmark/rule_results/0.csv" diff --git a/tests/test_fbopt.py b/tests/test_fbopt.py index 1e2859291..c442bf090 100644 --- a/tests/test_fbopt.py +++ b/tests/test_fbopt.py @@ -27,6 +27,12 @@ def test_diva_fbopt(): args = "--te_d=caltech --task=mini_vlcs --debug --bs=2 --model=diva --gamma_y=1.0 --trainer=fbopt --nname=alexnet --epos=3" utils_test_algo(args) +def test_erm_fbopt(): + """ + erm + """ + args = "--te_d=caltech --task=mini_vlcs --debug --bs=2 --model=erm --trainer=fbopt --nname=alexnet --epos=3" # pylint: disable=line-too-long + utils_test_algo(args) def test_forcesetpoint_fbopt(): """ diff --git a/tests/test_fbopt_irm.py b/tests/test_fbopt_irm.py new file mode 100644 index 000000000..fb1f109f6 --- /dev/null +++ b/tests/test_fbopt_irm.py @@ -0,0 +1,14 @@ +""" + end-end test +""" +from tests.utils_test import utils_test_algo + + +def test_mhof_irm(): + """ + mhof-irm + """ + args = "--te_d=0 --task=mnistcolor10 --model=erm \ + --trainer=fbopt_irm --nname=conv_bn_pool_2 \ + --k_i_gain_ratio=0.5" + utils_test_algo(args) diff --git a/tests/test_git_tag.py b/tests/test_git_tag.py index 2bd96e146..72616a2ed 100644 --- a/tests/test_git_tag.py +++ b/tests/test_git_tag.py @@ -19,14 +19,14 @@ def test_git_tag_error(): test git_tag error """ # add one line to the file - with open("data/ztest_files/dummy_file.py", "a") as f: + with open("domainlab/zdata/ztest_files/dummy_file.py", "a") as f: f.write("\n# I am a dummy command") get_git_tag(print_diff=True) # delete the last line on the file again - with open("data/ztest_files/dummy_file.py", "r") as f: + with open("domainlab/zdata/ztest_files/dummy_file.py", "r") as f: lines = f.readlines() lines = lines[:-1] - with open("data/ztest_files/dummy_file.py", "w") as f: + with open("domainlab/zdata/ztest_files/dummy_file.py", "w") as f: for num, line in enumerate(lines): if num == len(lines) - 1: f.write(line[:-2]) diff --git a/tests/test_hyperparameter_retrieval.py b/tests/test_hyperparameter_retrieval.py new file mode 100644 index 000000000..a9a141329 --- /dev/null +++ b/tests/test_hyperparameter_retrieval.py @@ -0,0 +1,44 @@ +""" +unit test for hyperparameter parsing +""" +import pytest +from domainlab.arg_parser import mk_parser_main +from domainlab.utils.hyperparameter_retrieval import get_gamma_reg + +def test_store_dict_key_pair_single_value(): + """Test to parse a single gamma_reg parameter""" + parser = mk_parser_main() + args = parser.parse_args(['--gamma_reg', '0.5']) + assert args.gamma_reg == 0.5 + +def test_store_dict_key_pair_dict_value(): + """Test to parse a dict for the gamma_reg""" + parser = mk_parser_main() + args = parser.parse_args(['--gamma_reg', 'dann=1.0,jigen=2.0']) + assert args.gamma_reg == {'dann': 1.0, 'jigen': 2.0} + +def test_get_gamma_reg_single_value(): + """Test to retrieve a single gamma_reg parameter which is applied to all objects""" + parser = mk_parser_main() + args = parser.parse_args(['--gamma_reg', '0.5']) + assert get_gamma_reg(args, 'dann') == 0.5 + +def test_get_gamma_reg_dict_value(): + """Test to retrieve a dict of gamma_reg parameters for different objects""" + parser = mk_parser_main() + args = parser.parse_args(['--gamma_reg', 'default=5.0,dann=1.0,jigen=2.0']) + assert get_gamma_reg(args, 'dann') == 1.0 + assert get_gamma_reg(args, 'jigen') == 2.0 + assert get_gamma_reg(args, 'nonexistent') == 5.0 # if we implement other + # model/trainers, + # since not specified in command line arguments, the new model/trainer + # called "nonexistent" should + # get the default value 5.0. + +def test_exception(): + """Test to not specify a default value""" + parser = mk_parser_main() + args = parser.parse_args(['--gamma_reg', 'dann=1.0']) + + with pytest.raises(ValueError, match="If a gamma_reg dict is specified"): + get_gamma_reg(args, 'jigen') diff --git a/tests/test_irm.py b/tests/test_irm.py new file mode 100644 index 000000000..42b12811f --- /dev/null +++ b/tests/test_irm.py @@ -0,0 +1,43 @@ +""" +end-end test +""" +from tests.utils_test import utils_test_algo + + +def test_irm(): + """ + train with Invariant Risk Minimization + """ + args = "--te_d=caltech --task=mini_vlcs --debug --bs=2 --model=erm \ + --trainer=irm --nname=alexnet" + utils_test_algo(args) + +def test_irm_sepdom(): + """ + train with Invariant Risk Minimization + """ + args = "--te_d=caltech --task=mini_vlcs --debug --bs=2 --model=erm \ + --trainer=irmsepdom --nname=alexnet" + utils_test_algo(args) + + + + +def test_irm_scheduler(): + """ + train with Invariant Risk Minimization + """ + args = "--te_d=caltech --task=mini_vlcs --debug --bs=2 --model=erm \ + --trainer=hyperscheduler_irm --nname=alexnet" + utils_test_algo(args) + + + + +def test_irm_mnist(): + """ + train with Invariant Risk Minimization + """ + args = "--te_d=0 --task=mnistcolor10 --keep_model --model=erm \ + --trainer=irm --nname=conv_bn_pool_2" + utils_test_algo(args) diff --git a/tests/test_ma.py b/tests/test_ma.py new file mode 100644 index 000000000..31b82ac3d --- /dev/null +++ b/tests/test_ma.py @@ -0,0 +1,12 @@ +""" +unit and end-end test for deep all, mldg +""" +from tests.utils_test import utils_test_algo + + +def test_deepall_mldg(): + """ + train DeepAll with MLDG + """ + args = "--te_d=caltech --task=mini_vlcs --debug --bs=2 --model=erm --trainer=ma --nname=alexnet" + utils_test_algo(args) diff --git a/tests/test_msel_oracle.py b/tests/test_msel_oracle.py index 3dfdd6fbe..03012bb18 100644 --- a/tests/test_msel_oracle.py +++ b/tests/test_msel_oracle.py @@ -1,108 +1,19 @@ """ executing mk_exp multiple times will cause deep copy to be called multiple times, pytest will show process got killed. """ -from torch import nn -from torchvision import models as torchvisionmodels -from torchvision.models import ResNet50_Weights - -from domainlab.algos.msels.c_msel_oracle import MSelOracleVisitor -from domainlab.algos.msels.c_msel_val import MSelValPerf -from domainlab.algos.observers.b_obvisitor import ObVisitor -from domainlab.arg_parser import mk_parser_main -from domainlab.dsets.dset_mnist_color_solo_default import DsetMNISTColorSoloDefault -from domainlab.exp.exp_main import Exp -from domainlab.models.model_erm import mk_erm -from domainlab.tasks.task_dset import mk_task_dset -from domainlab.tasks.utils_task import ImSize -from domainlab.utils.utils_cuda import get_device - - -def mk_exp( - task, - model, - trainer: str, - test_domain: str, - batchsize: int, - alone=True, - force_best_val=False, - msel_loss_tr=False, -): - """ - Creates a custom experiment. The user can specify the input parameters. - - Input Parameters: - - task: create a task to a custom dataset by importing "mk_task_dset" - function from - "domainlab.tasks.task_dset". For more explanation on the input params - refer to the - documentation found in "domainlab.tasks.task_dset.py". - - model: create a model [NameOfModel] by importing "mk_[NameOfModel]" - function from - "domainlab.models.model_[NameOfModel]". For a concrete example and - explanation of the input - params refer to the documentation found in - "domainlab.models.model_[NameOfModel].py" - - trainer: string, - - test_domain: string, - - batch size: int - - Returns: experiment - """ - - str_arg = f"--model=apimodel --trainer={trainer} \ - --te_d={test_domain} --bs={batchsize}" - if msel_loss_tr: - str_arg = f"--model=apimodel --trainer={trainer} \ - --te_d={test_domain} --bs={batchsize} --msel=loss_tr" - - parser = mk_parser_main() - conf = parser.parse_args(str_arg.split()) - device = get_device(conf) - if alone: - model_sel = MSelOracleVisitor() - else: - model_sel = MSelOracleVisitor(MSelValPerf(max_es=0)) - if force_best_val: - model_sel.msel._best_val_acc = 1.0 - observer = ObVisitor(model_sel) - exp = Exp(conf, task, model=model, observer=observer) - model_sel.update(clear_counter=True) - return exp - +from tests.utils_task_model import mk_exp, mk_model, mk_task def test_msel_oracle(): """ return trainer, model, observer """ - task = mk_task_dset(isize=ImSize(3, 28, 28), dim_y=10, taskna="custom_task") - task.add_domain( - name="domain1", - dset_tr=DsetMNISTColorSoloDefault(0), - dset_val=DsetMNISTColorSoloDefault(1), - ) - task.add_domain( - name="domain2", - dset_tr=DsetMNISTColorSoloDefault(2), - dset_val=DsetMNISTColorSoloDefault(3), - ) - task.add_domain( - name="domain3", - dset_tr=DsetMNISTColorSoloDefault(4), - dset_val=DsetMNISTColorSoloDefault(5), - ) - # specify backbone to use - backbone = torchvisionmodels.resnet.resnet50(weights=ResNet50_Weights.IMAGENET1K_V2) - num_final_in = backbone.fc.in_features - backbone.fc = nn.Linear(num_final_in, task.dim_y) - - # specify model to use - model = mk_erm(list_str_y=task.list_str_y)(backbone) - + task = mk_task() + model = mk_model(task) # make trainer for model - exp = mk_exp(task, model, trainer="mldg", test_domain="domain1", batchsize=32) + exp = mk_exp(task, model, trainer="mldg", test_domain="domain1", batchsize=2) exp.execute(num_epochs=2) - + exp.clean_up() del exp @@ -110,39 +21,15 @@ def test_msel_oracle1(): """ return trainer, model, observer """ - task = mk_task_dset(isize=ImSize(3, 28, 28), dim_y=10, taskna="custom_task") - task.add_domain( - name="domain1", - dset_tr=DsetMNISTColorSoloDefault(0), - dset_val=DsetMNISTColorSoloDefault(1), - ) - task.add_domain( - name="domain2", - dset_tr=DsetMNISTColorSoloDefault(2), - dset_val=DsetMNISTColorSoloDefault(3), - ) - task.add_domain( - name="domain3", - dset_tr=DsetMNISTColorSoloDefault(4), - dset_val=DsetMNISTColorSoloDefault(5), - ) - - # specify backbone to use - backbone = torchvisionmodels.resnet.resnet50(weights=ResNet50_Weights.IMAGENET1K_V2) - num_final_in = backbone.fc.in_features - backbone.fc = nn.Linear(num_final_in, task.dim_y) - - # specify model to use - model = mk_erm(list_str_y=task.list_str_y)(backbone) - - # make trainer for model - + task = mk_task() + model = mk_model(task) exp = mk_exp( - task, model, trainer="mldg", test_domain="domain1", batchsize=32, alone=False + task, model, trainer="mldg", test_domain="domain1", batchsize=2, alone=False ) exp.execute(num_epochs=2) - exp.trainer.observer.model_sel.msel.update(clear_counter=True) + exp.trainer.observer.model_sel.msel.update(epoch=1, clear_counter=True) + exp.clean_up() del exp @@ -150,116 +37,32 @@ def test_msel_oracle2(): """ return trainer, model, observer """ - task = mk_task_dset(isize=ImSize(3, 28, 28), dim_y=10, taskna="custom_task") - task.add_domain( - name="domain1", - dset_tr=DsetMNISTColorSoloDefault(0), - dset_val=DsetMNISTColorSoloDefault(1), - ) - task.add_domain( - name="domain2", - dset_tr=DsetMNISTColorSoloDefault(2), - dset_val=DsetMNISTColorSoloDefault(3), - ) - task.add_domain( - name="domain3", - dset_tr=DsetMNISTColorSoloDefault(4), - dset_val=DsetMNISTColorSoloDefault(5), - ) - - # specify backbone to use - backbone = torchvisionmodels.resnet.resnet50(weights=ResNet50_Weights.IMAGENET1K_V2) - num_final_in = backbone.fc.in_features - backbone.fc = nn.Linear(num_final_in, task.dim_y) - - # specify model to use - model = mk_erm(list_str_y=task.list_str_y)(backbone) + task = mk_task() + model = mk_model(task) # make trainer for model - exp = mk_exp(task, model, trainer="mldg", test_domain="domain1", batchsize=32) + exp = mk_exp(task, model, trainer="mldg", test_domain="domain1", batchsize=2) exp.execute(num_epochs=2) + exp.clean_up() + del exp def test_msel_oracle3(): """ return trainer, model, observer """ - task = mk_task_dset(isize=ImSize(3, 28, 28), dim_y=10, taskna="custom_task") - task.add_domain( - name="domain1", - dset_tr=DsetMNISTColorSoloDefault(0), - dset_val=DsetMNISTColorSoloDefault(1), - ) - task.add_domain( - name="domain2", - dset_tr=DsetMNISTColorSoloDefault(2), - dset_val=DsetMNISTColorSoloDefault(3), - ) - task.add_domain( - name="domain3", - dset_tr=DsetMNISTColorSoloDefault(4), - dset_val=DsetMNISTColorSoloDefault(5), - ) - - # specify backbone to use - backbone = torchvisionmodels.resnet.resnet50(weights=ResNet50_Weights.IMAGENET1K_V2) - num_final_in = backbone.fc.in_features - backbone.fc = nn.Linear(num_final_in, task.dim_y) - - # specify model to use - model = mk_erm(list_str_y=task.list_str_y)(backbone) + task = mk_task() + model = mk_model(task) exp = mk_exp( task, model, trainer="mldg", test_domain="domain1", - batchsize=32, + batchsize=2, alone=False, force_best_val=True, ) exp.execute(num_epochs=2) - del exp - - -def test_msel_oracle4(): - """ - return trainer, model, observer - """ - task = mk_task_dset(isize=ImSize(3, 28, 28), dim_y=10, taskna="custom_task") - task.add_domain( - name="domain1", - dset_tr=DsetMNISTColorSoloDefault(0), - dset_val=DsetMNISTColorSoloDefault(1), - ) - task.add_domain( - name="domain2", - dset_tr=DsetMNISTColorSoloDefault(2), - dset_val=DsetMNISTColorSoloDefault(3), - ) - task.add_domain( - name="domain3", - dset_tr=DsetMNISTColorSoloDefault(4), - dset_val=DsetMNISTColorSoloDefault(5), - ) - - # specify backbone to use - backbone = torchvisionmodels.resnet.resnet50(weights=ResNet50_Weights.IMAGENET1K_V2) - num_final_in = backbone.fc.in_features - backbone.fc = nn.Linear(num_final_in, task.dim_y) - - # specify model to use - model = mk_erm(list_str_y=task.list_str_y)(backbone) - exp = mk_exp( - task, - model, - trainer="mldg", - test_domain="domain1", - batchsize=32, - alone=False, - msel_loss_tr=True, - ) - exp.execute(num_epochs=2) - exp.trainer.observer.model_sel.msel.best_loss = 0 - exp.trainer.observer.model_sel.msel.update(clear_counter=True) + exp.clean_up() del exp diff --git a/tests/test_msel_oracle2.py b/tests/test_msel_oracle2.py new file mode 100644 index 000000000..651a38f2b --- /dev/null +++ b/tests/test_msel_oracle2.py @@ -0,0 +1,27 @@ +""" +executing mk_exp multiple times will cause deep copy to be called multiple times, pytest will show process got killed. +""" +from tests.utils_task_model import mk_exp, mk_model, mk_task + + +def test_msel_oracle4(): + """ + return trainer, model, observer + """ + task = mk_task() + model = mk_model(task) + # specify backbone to use + exp = mk_exp( + task, + model, + trainer="mldg", + test_domain="domain1", + batchsize=2, + alone=False, + msel_loss_tr=True, + ) + exp.execute(num_epochs=2) + exp.trainer.observer.model_sel.msel.best_loss = 0 + exp.trainer.observer.model_sel.msel.update(epoch=1, clear_counter=True) + exp.clean_up() + del exp diff --git a/tests/test_number_batches_loss_ratio_estimate.py b/tests/test_number_batches_loss_ratio_estimate.py new file mode 100644 index 000000000..70d662c52 --- /dev/null +++ b/tests/test_number_batches_loss_ratio_estimate.py @@ -0,0 +1,24 @@ +""" +loss ratio estimate +""" +from tests.utils_test import utils_test_algo + + +def test_loss_ratio_estimate0(): + """ + test different number of batches + """ + args = "--te_d=0 --tr_d 2 4 --task=mnistcolor10 --debug --bs=8 \ + --model=erm --trainer=mldg --nname=conv_bn_pool_2 \ + --nb4reg_over_task_ratio=0" + utils_test_algo(args) + + +def test_loss_ratio_estimate100(): + """ + test different number of batches + """ + args = "--te_d=0 --tr_d 2 4 --task=mnistcolor10 --debug --bs=8 \ + --model=erm --trainer=mldg --nname=conv_bn_pool_2 \ + --nb4reg_over_task_ratio=100" + utils_test_algo(args) diff --git a/tests/test_run_experiment.py b/tests/test_run_experiment.py index b22593a91..98cc5201d 100644 --- a/tests/test_run_experiment.py +++ b/tests/test_run_experiment.py @@ -18,7 +18,7 @@ def test_run_experiment(): config["startseed"] = 1 config["endseed"] = 1 config["test_domains"] = ["caltech"] - param_file = "data/ztest_files/test_parameter_samples.csv" + param_file = "domainlab/zdata/ztest_files/test_parameter_samples.csv" param_index = 0 out_file = "zoutput/benchmarks/demo_benchmark/rule_results/0.csv" @@ -41,7 +41,7 @@ def test_run_experiment_parameter_doubling_error(): config["endseed"] = 1 config["test_domains"] = ["caltech"] config["diva"]["gamma_y"] = 1e4 - param_file = "data/ztest_files/test_parameter_samples.csv" + param_file = "domainlab/zdata/ztest_files/test_parameter_samples.csv" param_index = 0 out_file = "zoutput/benchmarks/demo_benchmark/rule_results/0.csv" @@ -58,7 +58,7 @@ def test_run_experiment_parameter_doubling_error(): config["endseed"] = 1 config["test_domains"] = ["caltech"] config["domainlab_args"]["gamma_y"] = 1e4 - param_file = "data/ztest_files/test_parameter_samples.csv" + param_file = "domainlab/zdata/ztest_files/test_parameter_samples.csv" param_index = 0 out_file = "zoutput/benchmarks/demo_benchmark/rule_results/0.csv" diff --git a/tests/test_task_folder.py b/tests/test_task_folder.py index 3b78b5f2c..ed2683a23 100644 --- a/tests/test_task_folder.py +++ b/tests/test_task_folder.py @@ -36,9 +36,9 @@ def test_fun(): ), isize=ImSize(3, 224, 224), dict_domain2imgroot={ - "caltech": "data/vlcs_mini/caltech/", - "sun": "data/vlcs_mini/sun/", - "labelme": "data/vlcs_mini/labelme/", + "caltech": "domainlab/zdata/vlcs_mini/caltech/", + "sun": "domainlab/zdata/vlcs_mini/sun/", + "labelme": "domainlab/zdata/vlcs_mini/labelme/", }, taskna="mini_vlcs", succ=None, @@ -99,9 +99,9 @@ def test_mk_task_folder(): }, isize=ImSize(3, 224, 224), dict_domain2imgroot={ - "caltech": "data/vlcs_mini/caltech/", - "sun": "data/vlcs_mini/sun/", - "labelme": "data/vlcs_mini/labelme/", + "caltech": "domainlab/zdata/vlcs_mini/caltech/", + "sun": "domainlab/zdata/vlcs_mini/sun/", + "labelme": "domainlab/zdata/vlcs_mini/labelme/", }, taskna="mini_vlcs", ) @@ -133,9 +133,9 @@ def test_none_extensions(): ), isize=ImSize(3, 224, 224), dict_domain2imgroot={ - "caltech": "data/vlcs_mini/caltech/", - "labelme": "data/vlcs_mini/labelme/", - "sun": "data/vlcs_mini/sun/", + "caltech": "domainlab/zdata/vlcs_mini/caltech/", + "labelme": "domainlab/zdata/vlcs_mini/labelme/", + "sun": "domainlab/zdata/vlcs_mini/sun/", }, taskna="mini_vlcs", succ=None, @@ -169,8 +169,8 @@ def test_none_extensions(): ), isize=ImSize(3, 224, 224), dict_domain2imgroot={ - "caltech": "data/mixed_codec/caltech/", - "sun": "data/mixed_codec/sun/", + "caltech": "domainlab/zdata/mixed_codec/caltech/", + "sun": "domainlab/zdata/mixed_codec/sun/", }, taskna="mixed_codec", succ=None, @@ -208,8 +208,8 @@ def test_none_extensions(): ), isize=ImSize(3, 224, 224), dict_domain2imgroot={ - "caltech": "data/mixed_codec/caltech/", - "sun": "data/mixed_codec/sun/", + "caltech": "domainlab/zdata/mixed_codec/caltech/", + "sun": "domainlab/zdata/mixed_codec/sun/", }, taskna="mixed_codec", succ=None, @@ -231,8 +231,8 @@ def pacs_node(): node.extensions = ("jpg",) node.list_str_y = ["dog", "elephant"] node.dict_domain2imgroot = { - "cartoon": "data/pacs_mini_10/cartoon/", - "photo": "data/pacs_mini_10/photo/", + "cartoon": "domainlab/zdata/pacs_mini_10/cartoon/", + "photo": "domainlab/zdata/pacs_mini_10/photo/", } return node diff --git a/tests/utils_task_model.py b/tests/utils_task_model.py new file mode 100644 index 000000000..4fa70796a --- /dev/null +++ b/tests/utils_task_model.py @@ -0,0 +1,94 @@ +from torch import nn +from torchvision import models as torchvisionmodels +from torchvision.models import ResNet50_Weights + +from domainlab.algos.msels.c_msel_oracle import MSelOracleVisitor +from domainlab.algos.msels.c_msel_val import MSelValPerf +from domainlab.algos.observers.b_obvisitor import ObVisitor +from domainlab.arg_parser import mk_parser_main +from domainlab.dsets.dset_mnist_color_solo_default import DsetMNISTColorSoloDefault +from domainlab.exp.exp_main import Exp +from domainlab.models.model_erm import mk_erm +from domainlab.tasks.task_dset import mk_task_dset +from domainlab.tasks.utils_task import ImSize + + +def mk_model(task): + backbone = torchvisionmodels.resnet.resnet50(weights=ResNet50_Weights.IMAGENET1K_V2) + num_final_in = backbone.fc.in_features + backbone.fc = nn.Linear(num_final_in, task.dim_y) + + # specify model to use + model = mk_erm(list_str_y=task.list_str_y)(backbone) + return model + +def mk_exp( + task, + model, + trainer: str, + test_domain: str, + batchsize: int, + alone=True, + force_best_val=False, + msel_loss_tr=False, +): + """ + Creates a custom experiment. The user can specify the input parameters. + + Input Parameters: + - task: create a task to a custom dataset by importing "mk_task_dset" + function from + "domainlab.tasks.task_dset". For more explanation on the input params + refer to the + documentation found in "domainlab.tasks.task_dset.py". + - model: create a model [NameOfModel] by importing "mk_[NameOfModel]" + function from + "domainlab.models.model_[NameOfModel]". For a concrete example and + explanation of the input + params refer to the documentation found in + "domainlab.models.model_[NameOfModel].py" + - trainer: string, + - test_domain: string, + - batch size: int + + Returns: experiment + """ + + str_arg = f"--model=apimodel --trainer={trainer} \ + --te_d={test_domain} --bs={batchsize}" + if msel_loss_tr: + str_arg = f"--model=apimodel --trainer={trainer} \ + --te_d={test_domain} --bs={batchsize} --msel=loss_tr" + + parser = mk_parser_main() + conf = parser.parse_args(str_arg.split()) + if alone: + model_sel = MSelOracleVisitor() + else: + model_sel = MSelOracleVisitor(MSelValPerf(max_es=0)) + if force_best_val: + model_sel.msel._best_val_acc = 1.0 + observer = ObVisitor(model_sel) + exp = Exp(conf, task, model=model, observer=observer) + model_sel.update(epoch=1, clear_counter=True) + return exp + + +def mk_task(): + task = mk_task_dset(isize=ImSize(3, 28, 28), dim_y=10, taskna="custom_task") + task.add_domain( + name="domain1", + dset_tr=DsetMNISTColorSoloDefault(0), + dset_val=DsetMNISTColorSoloDefault(1), + ) + task.add_domain( + name="domain2", + dset_tr=DsetMNISTColorSoloDefault(2), + dset_val=DsetMNISTColorSoloDefault(3), + ) + task.add_domain( + name="domain3", + dset_tr=DsetMNISTColorSoloDefault(4), + dset_val=DsetMNISTColorSoloDefault(5), + ) + return task