Full Code of imistyrain/OpenDL for AI

master 2f4d0ace52b5 cached
31 files
155.4 KB
74.6k tokens
41 symbols
1 requests
Download .txt
Repository: imistyrain/OpenDL
Branch: master
Commit: 2f4d0ace52b5
Files: 31
Total size: 155.4 KB

Directory structure:
gitextract__lt7gl0y/

├── .gitignore
├── CMakeLists.txt
├── README.md
├── classification.bat
├── cpp/
│   ├── LenetClassifier.cpp
│   ├── LenetClassifier.h
│   ├── evaluation.cpp
│   └── evaluationcpp.vcxproj
├── cpp4caffe/
│   ├── cnnpredictor.h
│   ├── cpp4caffe.vcxproj
│   └── evaluation.cpp
├── models/
│   ├── deploy.prototxt
│   ├── labels.txt
│   ├── mean.binaryproto
│   ├── mean.npy
│   ├── plate_fromimg.prototxt
│   ├── plate_lenet.prototxt
│   └── solver.prototxt
├── train.bat
├── train.py
├── train.sh
└── util/
    ├── deploy.prototxt
    ├── evaluation.py
    ├── meanfilebinartynpy.py
    ├── plotaccuracy.py
    ├── preprocess.py
    ├── solver.prototxt
    ├── test.prototxt
    ├── train.prototxt
    ├── train.txt
    └── val.txt

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
build
data
output
error
error.txt
*.solverstate
*.caffemodel
*lmdb

================================================
FILE: CMakeLists.txt
================================================
cmake_minimum_required(VERSION 2.8)
set(ProjName caffe-onclick)
project(${ProjName})
set(CMAKE_CXX_STANDARD 11)
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})

find_package(Caffe  REQUIRED)
include_directories(${Caffe_INCLUDE_DIRS})

add_executable(evaluation cpp/evaluation.cpp cpp/LenetClassifier.cpp)
target_link_libraries(evaluation ${OpenCV_LIBS} ${Caffe_LIBRARIES})

add_executable(cpp4caffe cpp4caffe/evaluation.cpp)
target_link_libraries(cpp4caffe ${OpenCV_LIBS} ${Caffe_LIBRARIES})

================================================
FILE: README.md
================================================
caffe一键式训练评估集成开发环境
====================================
**Last Update 2020.07.08**

## 概述

本项目提供一个集成式开发环境,在配好caffe环境的前提下,只需将准备好的图片放入data目录下,便可以一键生成lmdb数据文件、均值文件、标注文件和测试评估模型、找出错误样本、部署模型等所有的操作,更难能可贵的是它是跨平台的,可以无缝的在Windos和Linux间切换。

使用深度学习完成一个特定的任务比如说字符识别、人脸识别等大致可以分为数据准备、定义模型、训练模型、评估模型和部署模型等几个步骤。

### 配置caffe

现在配置caffe十分方便,仅需几行命令即可搞定,确保安装了所需的依赖,这里仅摘录最关键的部分,其余的详细内容可参见参考链接.

**Windows**

	::为了减少日后不必要的麻烦,建议VS2015,Cuda8.0,cudnn5.1及以上,python2.7
	git clone https://github.com/BVLC/caffe
	cd caffe
	git checkout windows
	scripts\build_win.cmd

**Linux** 

    git clone https://github.com/BVLC/caffe
	cd caffe
	mkdir build
	cd build
	cmake ..
	make -j8

### 1.数据准备

首先收集要任务相关的数据,这里准备了一个车牌字符数据(仅包含0-9共10个数字),直接解压[data.zip](https://github.com/imistyrain/caffe-oneclick/releases/download/1.0/data.zip)到当前文件夹即可,格式如下图所示,每类图片对应一个文件夹,放到一个data文件夹下,注意格式一致型(都为.jpg或.png文件),仔细筛查,不要含有其他的非图片文件在里面,你也可以用自己的数据替换这些车牌字符数据。

![structures](https://i.imgur.com/JQmNGYN.png)

caffe使用了lmdb内存数据库等来加快训练时读取数据的速度,为此,caffe自带的tools里提供了一个工具(可由convert_imageset.cpp编译生成),它的输入是图片路径和标签对组成的文件,每次都手动生成这个文件不胜其烦。

我们希望是自动化的从文件夹读取的功能,因此,本项目通过preprocess/preprocess.py来获取如下图所示的文件夹下所有的文件路径以及对应的文件标签的功能,它输出训练和验证集preprocess/train.txt和preprocess/val.txt以及标签映射文件modef/labels.txt

你也可以直接下载已经转换好的[lmdb.tar.gz](https://github.com/imistyrain/caffe-oneclick/releases/download/1.0/lmdb.tar.gz)文件直接使用

### 2.定义模型

训练定义文件位于models下的plate_train_test.prototxt,部署文件在deploy.prototxt,你可以通过[网络结构可视化](http://ethereon.github.io/netscope/#/editor)对这些网络进行可视化,以便更清晰的理解他们的含义

### 3.训练模型

```
./train.sh
```

### 4.评估模型

[evaluation.py](util/evaluation.py)用来对data文件下下的数据进行评估,它会得出迭代次数为10000时模型的错误率,并且打印出误识别图片对应的真值和预测值,并把相应数据保存在error文件夹下,命名格式为字符文件夹/图片在文件夹内的序号_真值类别_预测类别(以0/190_0_4.jpg为例,代表0/190.jpg被误识为4),这些错误识别的样本需要仔细分析,不断调试参数,以获得期望的结果。

本项目提供了一个训练好的[模型文件](https://github.com/imistyrain/caffe-oneclick/releases/download/1.0/plate999.caffemodel),其错误率低于0.1%,这就意味着其达到了99.9%以上的准确率。

### 5.部署模型

由于速度原因,实际中多使用C++而不是python进行部署,因此本项目在cpp文件夹下提供了evaluationcpp工程,它使用单例模式来防止每次预测都加载模型,只需使用如下代码即可在你的项目中一行代码使用CNN,此外,该项目也提供了对模型进行评估的功能。

```
 cv::Mat img=cv::imread("imagepath.jpg");
 string result=CnnPredictor::getInstance()->predict(img);
```

当然,你也可以运行calssification.bat来调用caffe自身进行分类识别

```
"../build/examples/cpp_classification/classification" "modeldef/deploy.prototxt" "trainedmodels/platerecognition_iter_1000.caffemodel" "modeldef/mean.binaryproto" "modeldef/labels.txt" "data/0/4-3.jpg"
```
<p align="center">
    <img src="https://i.imgur.com/TRv8d88.png", width="600">
</p>

其返回了最高的5个类别的相似度,不难看出训练的网络对于data/0/0.jpg有高达93%的概率认为其属于0这个字符,结果还是非常理想的

## 参考

* [Caffe 配置与示例运行](http://blog.csdn.net/guoyk1990/article/details/52909864)

* [图文并解caffe源码](http://blog.csdn.net/mounty_fsc/article/category/6136645)

* [caffe源码解析](http://blog.csdn.net/qq_16055159)

* [从零开始山寨Caffe caffe为什么这么设计?](http://www.cnblogs.com/neopenx/)

* [Caffe代码导读 21天实战caffe作者博客](http://blog.csdn.net/kkk584520/article/category/2620891/2)

* [CNN卷积神经网络推导和实现](http://blog.csdn.net/zouxy09/article/details/9993371)

* [caffe卷积层代码阅读笔记](http://blog.csdn.net/tangwei2014/article/details/47730797)

* [caffe添加新层教程](http://blog.csdn.net/shuzfan/article/details/51322976)

* [caffe中各语言预处理对应方式](http://blog.csdn.net/minstyrain/article/details/78373914)

* [mxnet 训练自己的数据](https://github.com/imistyrain/mxnet-mr)

* [MatconvNet 训练自己的数据](https://github.com/imistyrain/MatConvNet-mr)

================================================
FILE: classification.bat
================================================
@echo off
set CAFFE_DIR=..
set eval_iter=10000
set imagepath=data/0/0.jpg
set trainedmodel=snapshot/plate_iter_%eval_iter%.caffemodel
::set trainedmodel=platere996.caffemodel
echo %imagepath% %eval_iter%
"%CAFFE_DIR%/build/examples/cpp_classification/classification" "models/deploy.prototxt" "%trainedmodel%" "models/mean.binaryproto" "models/labels.txt" "%imagepath%"
pause

================================================
FILE: cpp/LenetClassifier.cpp
================================================
#include "LenetClassifier.h"
std::pair<int, double>CLenetClassifier::predict(const cv::Mat &img)
{
	std::pair<int, double>p;
	if (!bloaded)
	{
		load();
	}
	else
	{
        cv::Mat input;
        cv::resize(img, input, cv::Size(20, 20));
        cv::Mat inputBlob = blobFromImage(input);// , 255.0f, cv::Size(20, 20), _mean, false);
		cv::Mat prob;
        _net.setInput(inputBlob, "data");
		prob = _net.forward("prob");
		cv::Mat probMat = prob.reshape(1, 1);
		cv::Point classNumber;
		cv::minMaxLoc(probMat, NULL, &p.second, NULL, &classNumber);
		p.first = classNumber.x;
	}

	return p;
}

bool CLenetClassifier::load(cv::String modelTxt, cv::String modelBin)
{
	_net = cv::dnn::readNetFromCaffe(modelTxt, modelBin);
//    _mean = cv::Scalar(66, 66, 66);
	bloaded = !_net.empty();
	return bloaded;
}

================================================
FILE: cpp/LenetClassifier.h
================================================
#pragma once
#include "string"
#include "opencv2/opencv.hpp"
#include <opencv2/dnn.hpp>
using namespace cv::dnn;
using namespace std;
const string caffeplatedir = "../";
const string model_file = caffeplatedir + "/models/deploy.prototxt";
const string trained_file = caffeplatedir + "/models/plate999.caffemodel";
const string mean_file = caffeplatedir + "/models/mean.binaryproto";

class CLenetClassifier
{
public:
	static CLenetClassifier*getInstance()
	{
		static CLenetClassifier instance;
		return &instance;
	}
	std::pair<int, double>predict(const cv::Mat &img);
	bool load(cv::String modelTxt = model_file, cv::String modelBin = trained_file);
private:
	bool bloaded = false;
    Net _net;
    cv::Scalar _mean;
	CLenetClassifier() {
	}
};

================================================
FILE: cpp/evaluation.cpp
================================================
#include "mrdir.h"
#include "mrutil.h"
#include "mropencv.h"
#include "LenetClassifier.h"
using namespace std;
const string errordir = caffeplatedir + "/error";
const string platedatadir = caffeplatedir + "data";

void cleardir(const string dir)
{
	vector<string>files=getAllFilesinDir(dir);
	for (int i = 0; i < files.size(); i++)
	{
		string filepath = dir + "/" + files[i];
		remove(filepath.c_str());
	}
}

void clearerror(const string dir)
{
    cout << "clearing" << dir << endl;
	vector<string>subdirs=getAllSubdirs(dir);
	for (int i = 0; i < subdirs.size(); i++)
	{
		string subdir = dir + "/" + subdirs[i];
        cout << subdirs[i]<<endl;
		cleardir(subdir);
	}
    cout << "clearing done"<< endl;
}

int evaluation()
{
	string line;
	string label;
	int rightcount = 0, errorcount = 0, total = 0;	
	if (!EXISTS(errordir.c_str()))
	{
		cout << "Error dir not exist" << endl;
		MKDIR(errordir.c_str());
	}
	clearerror(errordir);
	vector<string>subdirs=getAllSubdirs(platedatadir);
	for (auto sub : subdirs)
	{
		string subdir = platedatadir + "/" + sub;
		vector<string>files=getAllFilesinDir(subdir);
		for (auto file : files)
		{
			string fileapth = subdir + "/" + file;
			cv::Mat img = cv::imread(fileapth);
			auto ret=CLenetClassifier::getInstance()->predict(img).first;
			if (ret == string2int(sub))
				rightcount++;
			else
			{
                cout << sub + "/" + file.substr(0, file.size() - 4) + ":" + int2string(ret) << endl;
				errorcount++;
				string errorlabeldir = errordir;
				errorlabeldir = errorlabeldir + "/" + sub;
				if (!EXISTS(errorlabeldir.c_str()))
				{
					MKDIR(errorlabeldir.c_str());
				}
				string errorfilepath = errorlabeldir + "/" + file.substr(0,file.size()-4) + "_" + sub + "_" + int2string(ret) + ".png";
				//imshow("error", img);
				imwrite(errorfilepath, img);
				//cv::waitKey(1);
			}
			total++;
		}
	}
	cout << "acc:" << rightcount << "/" << total << endl;
	cout << rightcount*1.0 / total << endl;
	return 0;
}

int testimg(const std::string imgpath = "data/0/0.jpg")
{
    cv::Mat img = imread(imgpath);
    TickMeter tm;
    tm.start();
    auto p = CLenetClassifier::getInstance()->predict(img);
    tm.stop();
    std::cout << p.first << std::endl;// " " << p.second << endl;
    std::cout << tm.getTimeMilli() << "ms" << std::endl;
    return 0;
}

int testdir(const std::string dir = "img")
{
    auto files = getAllFilesinDir(dir);
    for (int i = 0; i < files.size(); i++)
    {
        std::string imgpath = dir + "/" + files[i];
        std::cout << files[i] << ":";
        testimg(imgpath);
    }
    return 0;
}

int main(int argc,char*argv[])
{
	if (argc==1)
		evaluation();
	else
	{
        testimg();
        testdir();
	}
	return 0;
}

================================================
FILE: cpp/evaluationcpp.vcxproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup Label="ProjectConfigurations">
    <ProjectConfiguration Include="Debug|Win32">
      <Configuration>Debug</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Debug|x64">
      <Configuration>Debug</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|Win32">
      <Configuration>Release</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|x64">
      <Configuration>Release</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
  </ItemGroup>
  <PropertyGroup Label="Globals">
    <ProjectGuid>{0A2F0DB8-57C5-4380-93D9-E45110DE3719}</ProjectGuid>
    <Keyword>Win32Proj</Keyword>
    <RootNamespace>charsrecog</RootNamespace>
    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <UseDebugLibraries>true</UseDebugLibraries>
    <PlatformToolset>v140</PlatformToolset>
    <CharacterSet>Unicode</CharacterSet>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <UseDebugLibraries>true</UseDebugLibraries>
    <PlatformToolset>v140</PlatformToolset>
    <CharacterSet>Unicode</CharacterSet>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <UseDebugLibraries>false</UseDebugLibraries>
    <PlatformToolset>v140</PlatformToolset>
    <WholeProgramOptimization>true</WholeProgramOptimization>
    <CharacterSet>Unicode</CharacterSet>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <UseDebugLibraries>false</UseDebugLibraries>
    <PlatformToolset>v140</PlatformToolset>
    <WholeProgramOptimization>true</WholeProgramOptimization>
    <CharacterSet>Unicode</CharacterSet>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
  <ImportGroup Label="ExtensionSettings">
    <Import Project="$(VCTargetsPath)\BuildCustomizations\CUDA 8.0.props" />
  </ImportGroup>
  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <PropertyGroup Label="UserMacros" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <LinkIncremental>true</LinkIncremental>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
    <LinkIncremental>true</LinkIncremental>
    <IncludePath>D:\opencv33\build\include;$(IncludePath)</IncludePath>
    <LibraryPath>D:\opencv33\build\x64\vc14\lib;$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <LinkIncremental>false</LinkIncremental>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
    <LinkIncremental>false</LinkIncremental>
    <IncludePath>D:\opencv33\build\include;$(IncludePath)</IncludePath>
    <LibraryPath>D:\opencv33\build\x64\vc14\lib;$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <ClCompile>
      <PrecompiledHeader>
      </PrecompiledHeader>
      <WarningLevel>Level3</WarningLevel>
      <Optimization>Disabled</Optimization>
      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <SDLCheck>true</SDLCheck>
    </ClCompile>
    <Link>
      <SubSystem>Console</SubSystem>
      <GenerateDebugInformation>true</GenerateDebugInformation>
    </Link>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
    <ClCompile>
      <PrecompiledHeader>
      </PrecompiledHeader>
      <WarningLevel>Level3</WarningLevel>
      <Optimization>Disabled</Optimization>
      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <SDLCheck>true</SDLCheck>
      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <AdditionalOptions>/D_CRT_SECURE_NO_WARNINGS %(AdditionalOptions)</AdditionalOptions>
    </ClCompile>
    <Link>
      <SubSystem>Console</SubSystem>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;cudart.lib;cublas.lib;curand.lib;libprotobufd.lib;hdf5_tools.lib;hdf5_hl_fortran.lib;hdf5_fortran.lib;hdf5_hl_f90cstub.lib;hdf5_f90cstub.lib;hdf5_cpp.lib;hdf5_hl_cpp.lib;hdf5_hl.lib;hdf5.lib;zlib.lib;szip.lib;caffelibd.lib;opencv_world300d.lib;shlwapi.lib;leveldbd.lib;cuda.lib;libglog.lib;lmdb.lib;cudnn.lib;libopenblas.dll.a;libgflags.lib;cublas_device.lib;%(AdditionalDependencies)</AdditionalDependencies>
    </Link>
    <CudaCompile>
      <CodeGeneration>compute_20,sm_20;compute_30,sm_30;compute_35,sm_35;compute_50,sm_50;</CodeGeneration>
    </CudaCompile>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <ClCompile>
      <WarningLevel>Level3</WarningLevel>
      <PrecompiledHeader>
      </PrecompiledHeader>
      <Optimization>MaxSpeed</Optimization>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <SDLCheck>true</SDLCheck>
    </ClCompile>
    <Link>
      <SubSystem>Console</SubSystem>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <OptimizeReferences>true</OptimizeReferences>
    </Link>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
    <ClCompile>
      <WarningLevel>Level3</WarningLevel>
      <PrecompiledHeader>
      </PrecompiledHeader>
      <Optimization>Disabled</Optimization>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <SDLCheck>true</SDLCheck>
      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <MinimalRebuild>true</MinimalRebuild>
      <AdditionalOptions>/D_CRT_SECURE_NO_WARNINGS %(AdditionalOptions)</AdditionalOptions>
    </ClCompile>
    <Link>
      <SubSystem>Console</SubSystem>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <OptimizeReferences>true</OptimizeReferences>
      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
    </Link>
    <PostBuildEvent>
      <Command>
      </Command>
    </PostBuildEvent>
    <CudaCompile>
      <CudaRuntime>Shared</CudaRuntime>
    </CudaCompile>
    <CudaCompile>
      <TargetMachinePlatform>64</TargetMachinePlatform>
      <CodeGeneration>compute_20,sm_20;compute_30,sm_30;compute_35,sm_35;compute_50,sm_50;</CodeGeneration>
    </CudaCompile>
    <PreBuildEvent>
      <Command>
      </Command>
    </PreBuildEvent>
  </ItemDefinitionGroup>
  <ItemGroup>
    <ClCompile Include="evaluation.cpp" />
    <ClCompile Include="LenetClassifier.cpp" />
  </ItemGroup>
  <ItemGroup>
    <ClInclude Include="LenetClassifier.h" />
  </ItemGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
  <ImportGroup Label="ExtensionTargets">
    <Import Project="$(VCTargetsPath)\BuildCustomizations\CUDA 8.0.targets" />
  </ImportGroup>
</Project>

================================================
FILE: cpp4caffe/cnnpredictor.h
================================================
#pragma once
#include <caffe/caffe.hpp>
#include "mrdir.h"
#include "opencv2/opencv.hpp"
#include <algorithm>
#include <iosfwd>
#include <memory>
#include <string>
#include <utility>
#include <vector>
using namespace std;
const string caffeplatedir = "../";
const string model_file = caffeplatedir + "models/deploy.prototxt";
const string trained_file = caffeplatedir + "models/plate999.caffemodel";
const string mean_file = caffeplatedir + "models/mean.binaryproto";
const string label_file = caffeplatedir + "models/labels.txt";
using namespace caffe;  // NOLINT(build/namespaces)
using std::string;

/* Pair (label, confidence) representing a prediction. */
typedef std::pair<string, float> Prediction;

class Classifier {
public:
	Classifier(const string& model_file,
		const string& trained_file,
		const string& mean_file,
		const string& label_file);

	std::vector<Prediction> Classify(const cv::Mat& img, int N = 5);

private:
	void SetMean(const string& mean_file);

	std::vector<float> Predict(const cv::Mat& img);

	void WrapInputLayer(std::vector<cv::Mat>* input_channels);

	void Preprocess(const cv::Mat& img,
		std::vector<cv::Mat>* input_channels);

private:
	std::shared_ptr<Net<float> > net_;
	cv::Size input_geometry_;
	int num_channels_;
	cv::Mat mean_;
	std::vector<string> labels_;
};

Classifier::Classifier(const string& model_file,
	const string& trained_file,
	const string& mean_file,
	const string& label_file) {
#ifdef CPU_ONLY
	Caffe::set_mode(Caffe::CPU);
#else
	Caffe::set_mode(Caffe::GPU);
#endif

	/* Load the network. */
	net_.reset(new Net<float>(model_file, TEST));
	net_->CopyTrainedLayersFrom(trained_file);

	CHECK_EQ(net_->num_inputs(), 1) << "Network should have exactly one input.";
	CHECK_EQ(net_->num_outputs(), 1) << "Network should have exactly one output.";

	Blob<float>* input_layer = net_->input_blobs()[0];
	num_channels_ = input_layer->channels();
	CHECK(num_channels_ == 3 || num_channels_ == 1)
		<< "Input layer should have 1 or 3 channels.";
	input_geometry_ = cv::Size(input_layer->width(), input_layer->height());

	/* Load the binaryproto mean file. */
	SetMean(mean_file);

	/* Load labels. */
	std::ifstream labels(label_file.c_str());
	CHECK(labels) << "Unable to open labels file " << label_file;
	string line;
	while (std::getline(labels, line))
		labels_.push_back(string(line));

	Blob<float>* output_layer = net_->output_blobs()[0];
	CHECK_EQ(labels_.size(), output_layer->channels())
		<< "Number of labels is different from the output layer dimension.";
}

static bool PairCompare(const std::pair<float, int>& lhs,
	const std::pair<float, int>& rhs) {
	return lhs.first > rhs.first;
}

/* Return the indices of the top N values of vector v. */
static std::vector<int> Argmax(const std::vector<float>& v, int N) {
	std::vector<std::pair<float, int> > pairs;
	for (size_t i = 0; i < v.size(); ++i)
		pairs.push_back(std::make_pair(v[i], i));
	std::partial_sort(pairs.begin(), pairs.begin() + N, pairs.end(), PairCompare);

	std::vector<int> result;
	for (int i = 0; i < N; ++i)
		result.push_back(pairs[i].second);
	return result;
}

/* Return the top N predictions. */
std::vector<Prediction> Classifier::Classify(const cv::Mat& img, int N) {
	std::vector<float> output = Predict(img);

	N = std::min<int>(labels_.size(), N);
	std::vector<int> maxN = Argmax(output, N);
	std::vector<Prediction> predictions;
	for (int i = 0; i < N; ++i) {
		int idx = maxN[i];
		predictions.push_back(std::make_pair(labels_[idx], output[idx]));
	}

	return predictions;
}

/* Load the mean file in binaryproto format. */
void Classifier::SetMean(const string& mean_file) {
	BlobProto blob_proto;
	ReadProtoFromBinaryFileOrDie(mean_file.c_str(), &blob_proto);

	/* Convert from BlobProto to Blob<float> */
	Blob<float> mean_blob;
	mean_blob.FromProto(blob_proto);
	CHECK_EQ(mean_blob.channels(), num_channels_)
		<< "Number of channels of mean file doesn't match input layer.";

	/* The format of the mean file is planar 32-bit float BGR or grayscale. */
	std::vector<cv::Mat> channels;
	float* data = mean_blob.mutable_cpu_data();
	for (int i = 0; i < num_channels_; ++i) {
		/* Extract an individual channel. */
		cv::Mat channel(mean_blob.height(), mean_blob.width(), CV_32FC1, data);
		channels.push_back(channel);
		data += mean_blob.height() * mean_blob.width();
	}

	/* Merge the separate channels into a single image. */
	cv::Mat mean;
	cv::merge(channels, mean);

	/* Compute the global mean pixel value and create a mean image
	* filled with this value. */
	cv::Scalar channel_mean = cv::mean(mean);
	mean_ = cv::Mat(input_geometry_, mean.type(), channel_mean);
}

std::vector<float> Classifier::Predict(const cv::Mat& img) {
	Blob<float>* input_layer = net_->input_blobs()[0];
	input_layer->Reshape(1, num_channels_,
		input_geometry_.height, input_geometry_.width);
	/* Forward dimension change to all layers. */
	net_->Reshape();

	std::vector<cv::Mat> input_channels;
	WrapInputLayer(&input_channels);

	Preprocess(img, &input_channels);

	net_->Forward();

	/* Copy the output layer to a std::vector */
	Blob<float>* output_layer = net_->output_blobs()[0];
	const float* begin = output_layer->cpu_data();
	const float* end = begin + output_layer->channels();
	return std::vector<float>(begin, end);
}

/* Wrap the input layer of the network in separate cv::Mat objects
* (one per channel). This way we save one memcpy operation and we
* don't need to rely on cudaMemcpy2D. The last preprocessing
* operation will write the separate channels directly to the input
* layer. */
void Classifier::WrapInputLayer(std::vector<cv::Mat>* input_channels) {
	Blob<float>* input_layer = net_->input_blobs()[0];

	int width = input_layer->width();
	int height = input_layer->height();
	float* input_data = input_layer->mutable_cpu_data();
	for (int i = 0; i < input_layer->channels(); ++i) {
		cv::Mat channel(height, width, CV_32FC1, input_data);
		input_channels->push_back(channel);
		input_data += width * height;
	}
}

void Classifier::Preprocess(const cv::Mat& img,
	std::vector<cv::Mat>* input_channels) {
	/* Convert the input image to the input image format of the network. */
	cv::Mat sample;
	if (img.channels() == 3 && num_channels_ == 1)
		cv::cvtColor(img, sample, CV_BGR2GRAY);
	else if (img.channels() == 4 && num_channels_ == 1)
		cv::cvtColor(img, sample, CV_BGRA2GRAY);
	else if (img.channels() == 4 && num_channels_ == 3)
		cv::cvtColor(img, sample, CV_BGRA2BGR);
	else if (img.channels() == 1 && num_channels_ == 3)
		cv::cvtColor(img, sample, CV_GRAY2BGR);
	else
		sample = img;

	cv::Mat sample_resized;
	if (sample.size() != input_geometry_)
		cv::resize(sample, sample_resized, input_geometry_);
	else
		sample_resized = sample;

	cv::Mat sample_float;
	if (num_channels_ == 3)
		sample_resized.convertTo(sample_float, CV_32FC3);
	else
		sample_resized.convertTo(sample_float, CV_32FC1);

	cv::Mat sample_normalized;
//	cv::subtract(sample_float, mean_, sample_normalized);
    sample_normalized = sample_float;
	/* This operation will write the separate BGR planes directly to the
	* input layer of the network because it is wrapped by the cv::Mat
	* objects in input_channels. */
	cv::split(sample_normalized, *input_channels);

	CHECK(reinterpret_cast<float*>(input_channels->at(0).data)
		== net_->input_blobs()[0]->cpu_data())
		<< "Input channels are not wrapping the input layer of the network.";
}

class CnnPredictor
{
public:
	static CnnPredictor*getInstance()
	{
		static CnnPredictor instance;
		return &instance;
	}
	const string predict(cv::Mat &img)
	{
		std::vector<Prediction> predictions = pclassifier->Classify(img);
		return predictions[0].first;
	}
private:
	CnnPredictor()
	{
		pclassifier = new Classifier(model_file, trained_file, mean_file, label_file);
	};
	~CnnPredictor()
	{
		if (pclassifier)
			delete pclassifier;
	};
	Classifier *pclassifier;
};

================================================
FILE: cpp4caffe/cpp4caffe.vcxproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup Label="ProjectConfigurations">
    <ProjectConfiguration Include="Debug|x64">
      <Configuration>Debug</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|x64">
      <Configuration>Release</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
  </ItemGroup>
  <ItemGroup>
    <ClInclude Include="cnnpredictor.h" />
  </ItemGroup>
  <ItemGroup>
    <ClCompile Include="evaluation.cpp" />
  </ItemGroup>
  <PropertyGroup Label="Globals">
    <ProjectGUID>{D9C1D98F-F412-44F6-A819-D1AFB27D31E7}</ProjectGUID>
    <Keyword>Win32Proj</Keyword>
    <Platform>x64</Platform>
    <ProjectName>cpp4caffe</ProjectName>
    <VCProjectUpgraderObjectName>NoUpgrade</VCProjectUpgraderObjectName>
    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <UseOfMfc>false</UseOfMfc>
    <CharacterSet>MultiByte</CharacterSet>
    <PlatformToolset>v140</PlatformToolset>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <UseOfMfc>false</UseOfMfc>
    <CharacterSet>MultiByte</CharacterSet>
    <PlatformToolset>v140</PlatformToolset>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
  <ImportGroup Label="ExtensionSettings">
  </ImportGroup>
  <ImportGroup Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <PropertyGroup Label="UserMacros" />
  <PropertyGroup>
    <_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Debug\</OutDir>
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Debug\</IntDir>
    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectName)-d</TargetName>
    <TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.exe</TargetExt>
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</GenerateManifest>
    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\bin\</OutDir>
    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Release\</IntDir>
    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectName)</TargetName>
    <TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.exe</TargetExt>
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
    <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</GenerateManifest>
  </PropertyGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
    <ClCompile>
      <AssemblerListingLocation>Debug/</AssemblerListingLocation>
      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
      <CompileAs>CompileAsCpp</CompileAs>
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
      <ExceptionHandling>Sync</ExceptionHandling>
      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
      <Optimization>MaxSpeed</Optimization>
      <PrecompiledHeader>NotUsing</PrecompiledHeader>
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
      <RuntimeTypeInfo>true</RuntimeTypeInfo>
      <WarningLevel>Level3</WarningLevel>
      <PreprocessorDefinitions>WIN32;_WINDOWS;CAFFE_VERSION=1.0.0;BOOST_ALL_NO_LIB;USE_LMDB;USE_LEVELDB;USE_CUDNN;USE_OPENCV;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);H5_BUILT_AS_DYNAMIC_LIB=1;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <ObjectFileName>$(IntDir)</ObjectFileName>
    </ClCompile>
    <ResourceCompile>
      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;CAFFE_VERSION=1.0.0;BOOST_ALL_NO_LIB;USE_LMDB;USE_LEVELDB;USE_CUDNN;USE_OPENCV;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);H5_BUILT_AS_DYNAMIC_LIB=1;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ResourceCompile>
    <Midl>
      <OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>
      <HeaderFileName>%(Filename).h</HeaderFileName>
      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>
      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
      <ProxyFileName>%(Filename)_p.c</ProxyFileName>
    </Midl>
    <Link>
      <AdditionalOptions>%(AdditionalOptions)  /machine:x64</AdditionalOptions>
      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;caffe-d.lib;caffeproto-d.lib;boost_system-vc140-mt-gd-1_61.lib;boost_thread-vc140-mt-gd-1_61.lib;boost_filesystem-vc140-mt-gd-1_61.lib;boost_chrono-vc140-mt-gd-1_61.lib;boost_date_time-vc140-mt-gd-1_61.lib;boost_atomic-vc140-mt-gd-1_61.lib;glogd.lib;gflagsd.lib;shlwapi.lib;libprotobufd.lib;caffehdf5_hl_D.lib;caffehdf5_D.lib;caffezlibd.lib;lmdbd.lib;ntdll.lib;leveldbd.lib;snappy_staticd.lib;caffezlibd.lib;cudart.lib;curand.lib;cublas.lib;cublas_device.lib;cudnn.lib;opencv_highgui310d.lib;opencv_videoio310d.lib;opencv_imgcodecs310d.lib;opencv_imgproc310d.lib;opencv_core310d.lib;libopenblas.dll.a;python27.lib;boost_python-vc140-mt-gd-1_61.lib</AdditionalDependencies>
      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
      <GenerateDebugInformation>Debug</GenerateDebugInformation>
      <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
      <ProgramDataBaseFile>MTCNN-d.pdb</ProgramDataBaseFile>
      <SubSystem>Console</SubSystem>
      <Version>
      </Version>
    </Link>
    <ProjectReference>
      <LinkLibraryDependencies>false</LinkLibraryDependencies>
    </ProjectReference>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
    <ClCompile>
      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <AssemblerListingLocation>Release/</AssemblerListingLocation>
      <CompileAs>CompileAsCpp</CompileAs>
      <ExceptionHandling>Sync</ExceptionHandling>
      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
      <Optimization>MaxSpeed</Optimization>
      <PrecompiledHeader>NotUsing</PrecompiledHeader>
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
      <RuntimeTypeInfo>true</RuntimeTypeInfo>
      <WarningLevel>Level3</WarningLevel>
      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CAFFE_VERSION=1.0.0;BOOST_ALL_NO_LIB;USE_LMDB;USE_LEVELDB;USE_CUDNN;USE_OPENCV;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);H5_BUILT_AS_DYNAMIC_LIB=1;CMAKE_INTDIR="Release";%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <ObjectFileName>$(IntDir)</ObjectFileName>
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
    </ClCompile>
    <ResourceCompile>
      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CAFFE_VERSION=1.0.0;BOOST_ALL_NO_LIB;USE_LMDB;USE_LEVELDB;USE_CUDNN;USE_OPENCV;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);H5_BUILT_AS_DYNAMIC_LIB=1;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ResourceCompile>
    <Midl>
      <OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>
      <HeaderFileName>%(Filename).h</HeaderFileName>
      <TypeLibraryName>%(Filename).tlb</TypeLibraryName>
      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
      <ProxyFileName>%(Filename)_p.c</ProxyFileName>
    </Midl>
    <Link>
      <AdditionalOptions>%(AdditionalOptions)  /machine:x64</AdditionalOptions>
      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;boost_system-vc140-mt-1_61.lib;boost_thread-vc140-mt-1_61.lib;boost_filesystem-vc140-mt-1_61.lib;boost_chrono-vc140-mt-1_61.lib;boost_date_time-vc140-mt-1_61.lib;boost_atomic-vc140-mt-1_61.lib;glog.lib;gflags.lib;shlwapi.lib;libprotobuf.lib;caffehdf5_hl.lib;caffehdf5.lib;caffezlib.lib;lmdb.lib;ntdll.lib;leveldb.lib;snappy_static.lib;caffe.lib;caffeproto.lib;cudart.lib;curand.lib;cublas.lib;cublas_device.lib;cudnn.lib;opencv_highgui310.lib;opencv_imgcodecs310.lib;opencv_imgproc310.lib;opencv_core310.lib;libopenblas.dll.a;python27.lib;boost_python-vc140-mt-1_61.lib</AdditionalDependencies>
      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
      <ProgramDataBaseFile>MTCNN.pdb</ProgramDataBaseFile>
      <SubSystem>Console</SubSystem>
      <Version>
      </Version>
    </Link>
    <ProjectReference>
      <LinkLibraryDependencies>false</LinkLibraryDependencies>
    </ProjectReference>
  </ItemDefinitionGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
  <ImportGroup Label="ExtensionTargets">
  </ImportGroup>
</Project>

================================================
FILE: cpp4caffe/evaluation.cpp
================================================
#define REG_USE_CNN 1
#pragma warning(disable:4996)
#include "mrdir.h"
#include "mrutil.h"
#include "cnnpredictor.h"
const string errordir = caffeplatedir + "error";
const string platedatadir = caffeplatedir+"data";

void cleardir(const string dir)
{
	vector<string>files=getAllFilesinDir(dir);
	for (int i = 0; i < files.size(); i++)
	{
		string filepath = dir + "/" + files[i];
		remove(filepath.c_str());
	}
}

void clearerror(const string dir)
{
	vector<string>subdirs=getAllSubdirs(dir);
	for (int i = 0; i < subdirs.size(); i++)
	{
		string subdir = dir + "/" + subdirs[i];
		cleardir(subdir);
	}
}

int evaluation()
{
	string line;
	string label;
	int rightcount = 0, errorcount = 0, total = 0;	
	if (!EXISTS(errordir.c_str()))
	{
		cout << "Error dir not exist" << endl;
		MKDIR(errordir.c_str());
	}
	clearerror(errordir);
	vector<string>subdirs=getAllSubdirs(platedatadir);
	for (auto sub : subdirs)
	{
		string subdir = platedatadir + "/" + sub;
		vector<string>files=getAllFilesinDir(subdir);
		for (auto file : files)
		{
			string fileapth = subdir + "/" + file;
			cv::Mat img = cv::imread(fileapth);
			auto ret = split(CnnPredictor::getInstance()->predict(img), " ")[1];
			if (ret == sub)
				rightcount++;
			else
			{
				errorcount++;
				string errorlabeldir = errordir;
				errorlabeldir = errorlabeldir + "/" + sub;
				if (!EXISTS(errorlabeldir.c_str()))
				{
					MKDIR(errorlabeldir.c_str());
				}
				string errorfilepath = errorlabeldir + "/" + file.substr(0,file.size()-4) + "_" + sub + "_" + ret + ".png";
				cout << sub + "/" + file.substr(0, file.size() - 4) + ":" + ret << endl;
				//imshow("error", img);
				imwrite(errorfilepath, img);
				//cv::waitKey(1);
			}
			total++;
		}
	}
	cout << "acc:" << rightcount << "/" << total << endl;
	cout << rightcount*1.0 / total << endl;
	return 0;
}

int main(int argc,char*argv[])
{
	if (argc==1)
		evaluation();
	else
	{
		cv::Mat img = cv::imread(argv[1]);
		cout << CnnPredictor::getInstance()->predict(img) << endl;
	}
	return 0;
}

================================================
FILE: models/deploy.prototxt
================================================
name: "LeNet"
layer{
  name:"data"
  type:"Input"
  top: "data"
  input_param { shape: {dim:1 dim:3 dim:20 dim:20 } }
}
layer {
  name: "conv1"
  type: "Convolution"
  bottom: "data"
  top: "conv1"
  param {
    lr_mult: 1
  }
  param {
    lr_mult: 2
  }
  convolution_param {
    num_output: 20
    kernel_size: 5
    stride: 1
    weight_filler {
      type: "xavier"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "pool1"
  type: "Pooling"
  bottom: "conv1"
  top: "pool1"
  pooling_param {
    pool: MAX
    kernel_size: 2
    stride: 2
  }
}
layer {
  name: "conv2"
  type: "Convolution"
  bottom: "pool1"
  top: "conv2"
  param {
    lr_mult: 1
  }
  param {
    lr_mult: 2
  }
  convolution_param {
    num_output: 50
    kernel_size: 5
    stride: 1
    weight_filler {
      type: "xavier"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "pool2"
  type: "Pooling"
  bottom: "conv2"
  top: "pool2"
  pooling_param {
    pool: MAX
    kernel_size: 2
    stride: 2
  }
}

layer {
  name: "fc1"
  type: "InnerProduct"
  bottom: "pool2"
  top: "fc1"
  param {
    lr_mult: 1
  }
  param {
    lr_mult: 2
  }
  inner_product_param {
    num_output: 500
    weight_filler {
      type: "xavier"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "relu1"
  type: "ReLU"
  bottom: "fc1"
  top: "fc1"
}
layer {
  name: "fc2"
  type: "InnerProduct"
  bottom: "fc1"
  top: "fc2"
  param {
    lr_mult: 1
  }
  param {
    lr_mult: 2
  }
  inner_product_param {
    num_output: 10
    weight_filler {
      type: "xavier"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "prob"
  type: "Softmax"
  bottom: "fc2"
  top: "prob"
}

================================================
FILE: models/labels.txt
================================================
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9


================================================
FILE: models/plate_fromimg.prototxt
================================================
name: "LeNet"
layer {
  name: "mnist"
  type: "ImageData"
  top: "data"
  top: "label"
  image_data_param {  
    source: "util/train.txt"  
    root_folder: "data/"  
    new_height: 20
    new_width: 20
    batch_size: 64
    shuffle: true 
  }  
  include: { phase: TRAIN }
}
layer {
  name: "mnist"
  type: "ImageData"
  top: "data"
  top: "label"
  image_data_param {  
    source: "util/val.txt"
    root_folder: "data/"
    new_height: 20
    new_width: 20
    batch_size: 64
  }  
  include: { phase: TEST }
}
layer {
  name: "conv1"
  type: "Convolution"
  bottom: "data"
  top: "conv1"
  param {
    lr_mult: 1
  }
  param {
    lr_mult: 2
  }
  convolution_param {
    num_output: 20
    kernel_size: 5
    stride: 1
    weight_filler {
      type: "xavier"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "pool1"
  type: "Pooling"
  bottom: "conv1"
  top: "pool1"
  pooling_param {
    pool: MAX
    kernel_size: 2
    stride: 2
  }
}
layer {
  name: "conv2"
  type: "Convolution"
  bottom: "pool1"
  top: "conv2"
  param {
    lr_mult: 1
  }
  param {
    lr_mult: 2
  }
  convolution_param {
    num_output: 50
    kernel_size: 5
    stride: 1
    weight_filler {
      type: "xavier"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "pool2"
  type: "Pooling"
  bottom: "conv2"
  top: "pool2"
  pooling_param {
    pool: MAX
    kernel_size: 2
    stride: 2
  }
}
layer {
  name: "fc1"
  type: "InnerProduct"
  bottom: "pool2"
  top: "fc1"
  param {
    lr_mult: 1
  }
  param {
    lr_mult: 2
  }
  inner_product_param {
    num_output: 500
    weight_filler {
      type: "xavier"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "relu1"
  type: "ReLU"
  bottom: "fc1"
  top: "fc1"
}
layer {
  name: "fc2"
  type: "InnerProduct"
  bottom: "fc1"
  top: "fc2"
  param {
    lr_mult: 1
  }
  param {
    lr_mult: 2
  }
  inner_product_param {
    num_output: 10
    weight_filler {
      type: "xavier"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "accuracy"
  type: "Accuracy"
  bottom: "fc2"
  bottom: "label"
  top: "accuracy"
  include {
    phase: TEST
  }
}
layer {
  name: "loss"
  type: "SoftmaxWithLoss"
  bottom: "fc2"
  bottom: "label"
  top: "loss"
}

================================================
FILE: models/plate_lenet.prototxt
================================================
name: "Lenet"
layer {
  name: "Lenet"
  type: "Data"
  top: "data"
  top: "label"
  transform_param {
    scale: 0.00390625
  }
  data_param {
    source: "lmdb/train_lmdb"
    backend: LMDB
    batch_size: 64
  }
  include: { phase: TRAIN }
}
layer {
  name: "Lenet"
  type: "Data"
  top: "data"
  top: "label"
  transform_param {
    scale: 0.00390625
  }
  data_param {
    source: "lmdb/val_lmdb"
    backend: LMDB
    batch_size: 64
  }
  include: { phase: TEST }
}
layer {
  name: "conv1"
  type: "Convolution"
  bottom: "data"
  top: "conv1"
  param {
    lr_mult: 1
  }
  param {
    lr_mult: 2
  }
  convolution_param {
    num_output: 20
    kernel_size: 5
    stride: 1
    weight_filler {
      type: "xavier"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "pool1"
  type: "Pooling"
  bottom: "conv1"
  top: "pool1"
  pooling_param {
    pool: MAX
    kernel_size: 2
    stride: 2
  }
}
layer {
  name: "conv2"
  type: "Convolution"
  bottom: "pool1"
  top: "conv2"
  param {
    lr_mult: 1
  }
  param {
    lr_mult: 2
  }
  convolution_param {
    num_output: 50
    kernel_size: 5
    stride: 1
    weight_filler {
      type: "xavier"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "pool2"
  type: "Pooling"
  bottom: "conv2"
  top: "pool2"
  pooling_param {
    pool: MAX
    kernel_size: 2
    stride: 2
  }
}

layer {
  name: "fc1"
  type: "InnerProduct"
  bottom: "pool2"
  top: "fc1"
  param {
    lr_mult: 1
  }
  param {
    lr_mult: 2
  }
  inner_product_param {
    num_output: 500
    weight_filler {
      type: "xavier"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "relu1"
  type: "ReLU"
  bottom: "fc1"
  top: "fc1"
}
layer {
  name: "fc2"
  type: "InnerProduct"
  bottom: "fc1"
  top: "fc2"
  param {
    lr_mult: 1
  }
  param {
    lr_mult: 2
  }
  inner_product_param {
    num_output: 10
    weight_filler {
      type: "xavier"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "accuracy"
  type: "Accuracy"
  bottom: "fc2"
  bottom: "label"
  top: "accuracy"
  include {
    phase: TEST
  }
}
layer {
  name: "loss"
  type: "SoftmaxWithLoss"
  bottom: "fc2"
  bottom: "label"
  top: "loss"
}

================================================
FILE: models/solver.prototxt
================================================
# The train/test net protocol buffer definition
net: "models/plate_lenet.prototxt"
#net: "models/plate_fromimg.prototxt"
# test_iter specifies how many forward passes the test should carry out.
# In the case of MNIST, we have test batch size 100 and 100 test iterations,
# covering the full 10,000 testing images.
test_iter: 24
# Carry out testing every 500 training iterations.
test_interval: 1000
# The base learning rate, momentum and the weight decay of the network.
base_lr: 0.01
momentum: 0.9
#solver_type: ADAGRAD
weight_decay: 0.0005
#weight_decay: 0.0005
# The learning rate policy
lr_policy: "inv"
gamma: 0.0001
power: 0.75
# Display every 100 iterations
display: 1000
# The maximum number of iterations
max_iter: 10000
# snapshot intermediate results
snapshot: 5000
snapshot_prefix: "output/plate"
# solver mode: CPU or GPU
solver_mode: GPU


================================================
FILE: train.bat
================================================
@echo off
set CAFFE_DIR=..
set DATA=data
set REISZE_DIM=20
set converttool=%CAFFE_DIR%/build/tools/convert_imageset
set finetunemodel=models/plate999.caffemodel
if exist "lmdb/train_lmdb" (set regenlmdb=0) else (set regenlmdb=1)
::set regenlmdb=1

if %regenlmdb% equ 1 goto regeneratelmdb

goto train
:regeneratelmdb
echo "Creating train lmdb..."
del "lmdb/train_lmdb\*.*" /f /s /q
del "lmdb/val_lmdb\*.*" /f /s /q
rd /s /q "lmdb/train_lmdb"
rd /s /q "lmdb/val_lmdb"
rd /s /q lmdb
mkdir lmdb
"%converttool%" --resize_height=%REISZE_DIM% --resize_width=%REISZE_DIM% --shuffle "%DATA%/" "util/train.txt" "lmdb/train_lmdb"
echo "Creating val lmdb..."
"%converttool%" --resize_height=%REISZE_DIM% --resize_width=%REISZE_DIM% --shuffle "%DATA%/" "util/val.txt" "lmdb/val_lmdb"

echo "Computing mean:"
"%CAFFE_DIR%/build/tools/compute_image_mean" "lmdb/train_lmdb" "models/mean.binaryproto"

:train
rem if exist %finetunemodel% (set extra_cmd="--weights=%finetunemodel%")
rem "%CAFFE_DIR%/build/tools/caffe" train --solver=models/solver.prototxt %extra_cmd% 
python3 train.py

:evaluation
python util/evaluation.py
echo "Done"
pause

================================================
FILE: train.py
================================================
import os
import sys
sys.path.insert(0, '../python')
import caffe
from caffe import layers as L, params as P
from caffe.proto import caffe_pb2
import lmdb
from tqdm import tqdm
import logging
import cv2
import numpy as np

root_folder="data/"
batch_size = 64
test_batch_size = 100
input_size = [20,20]
G4 = 4*1024*1024*1024

def remove_if_exists(db):
  if os.path.exists(db):
    logger.info('remove %s'%db)
    shutil.rmtree(db)

def get_test_num(valpath = "util/val.txt"):
    with open(valpath) as f:
        lines = f.readlines()
        return len(lines)

def make_datum(img,label):
    return caffe_pb2.Datum(channels=3,width=input_size[0],height=input_size[1],label=label,
    data=np.rollaxis(img,2).tobytes())

def gen_data_layer(phase="train",uselmdb=True):
    if uselmdb:
        source = "lmdb/"+phase+"_lmdb"
        if not os.path.exists(source):
            print("creating "+source)
            os.makedirs(source)
            db = lmdb.open(source, map_size=G4)
            txn = db.begin(write=True)
            txtfile="util/"+phase+".txt"
            with open(txtfile) as f:
                lines = f.readlines()
                for i,line in tqdm(enumerate(lines)):
                    items = line.split()
                    imgpath = root_folder+"/"+items[0]
                    img = cv2.imread(imgpath)
                    if img is None:
                        logging.info("cannot read"+imgpath)
                    key = "%08d_data"%(i)
                    label=int(items[1])
                    txn.put(key,make_datum(img,label).SerializeToString())
                    if i %1000 == 0:
                        txn.commit()
                        txn = db.begin(write=True)
            db.close()
        data, label = L.Data(batch_size=batch_size, backend=P.Data.LMDB,source=source,transform_param=dict(scale=1./255), ntop=2)
    else:
        txtfile="util/"+phase+".txt"
        data, label = L.ImageData(image_data_param=dict(source=txtfile,root_folder=root_folder,batch_size=batch_size,shuffle=phase=="train",new_width=20,new_height=20),ntop=2,transform_param=dict(scale=1./255))
    return data,label

def lenet(phase="train",batch_size=64):
    n = caffe.NetSpec() 
    n.data, n.label = gen_data_layer(phase)
    n.conv1 = L.Convolution(n.data, kernel_size=5, num_output=20, weight_filler=dict(type='xavier'))
    n.pool1 = L.Pooling(n.conv1, kernel_size=2, stride=2, pool=P.Pooling.MAX)
    n.conv2 = L.Convolution(n.pool1, kernel_size=5, num_output=50, weight_filler=dict(type='xavier'))
    n.pool2 = L.Pooling(n.conv2, kernel_size=2, stride=2, pool=P.Pooling.MAX)
    n.fc1 =   L.InnerProduct(n.pool2, num_output=500, weight_filler=dict(type='xavier'))
    n.relu1 = L.ReLU(n.fc1, in_place=True)
    n.fc2 = L.InnerProduct(n.relu1, num_output=10, weight_filler=dict(type='xavier'))
    n.acc = L.Accuracy(n.fc2, n.label)
    n.loss =  L.SoftmaxWithLoss(n.fc2, n.label)
    return n

def lenet_deploy(net,deploy_net_file="util/deploy.prototxt"):
    deploy_net = net
    with open(deploy_net_file, 'w') as f:
        net_param = deploy_net.to_proto()
        del net_param.layer[0]
        del net_param.layer[-1]
        del net_param.layer[-1]
        net_param.name = 'lenet'
        net_param.input.extend(['data'])
        net_param.input_shape.extend([
            caffe_pb2.BlobShape(dim=[1, 3, input_size[0], input_size[1]])]) 
        f.write(str(net_param))

def gen_solver_txt(train_net_path, test_net_path):
    s = caffe_pb2.SolverParameter()
    s.train_net = train_net_path
    s.test_net.append(test_net_path)
    s.test_interval = 500
    s.test_iter.append(int(get_test_num()/test_batch_size))
    s.max_iter = 10000
    s.base_lr = 0.01
    s.lr_policy = 'step'
    s.gamma = 0.1
    s.power = 0.75
    s.stepsize = 5000
    s.momentum = 0.9
    s.weight_decay = 5e-4
    s.display = 1000
    s.snapshot = 5000
    s.snapshot_prefix = 'output/plate'
    s.solver_mode = caffe_pb2.SolverParameter.GPU
    return s

def main():
    train_net_path = 'util/train.prototxt'
    net = lenet('train',batch_size)
    with open(train_net_path, 'w') as f:
        f.write(str(net.to_proto()))
    test_net_path = 'util/test.prototxt'
    net = lenet('val',test_batch_size)
    with open(test_net_path, 'w') as f:
        f.write(str(net.to_proto()))
    lenet_deploy(net)
    solver_path = 'util/solver.prototxt'
    with open(solver_path, 'w') as f:
        f.write(str(gen_solver_txt(train_net_path, test_net_path)))
    caffe.set_mode_gpu()
    solver = caffe.get_solver(solver_path)
    solver.solve()

if __name__=="__main__":
    main()

================================================
FILE: train.sh
================================================
#!/usr/bin/env sh
set -e
DATA=data
TOOLS=../build/tools
regeneratelmdb=0

convert_lmdb(){
    RESIZE_HEIGHT=20
    RESIZE_WIDTH=20
    echo "Creating train lmdb..."
    GLOG_logtostderr=1 $TOOLS/convert_imageset \
        --resize_height=$RESIZE_HEIGHT \
        --resize_width=$RESIZE_WIDTH \
        --shuffle $DATA/ \
        util/train.txt \
        lmdb/train_lmdb
    echo "Creating val lmdb..."
    GLOG_logtostderr=1 $TOOLS/convert_imageset \
        --resize_height=$RESIZE_HEIGHT \
        --resize_width=$RESIZE_WIDTH \
        --shuffle $DATA/ \
        util/val.txt \
        lmdb/val_lmdb
}
create_lmdb(){
    if [ -d lmdb ] ; then
        if [ $regeneratelmdb -eq 1 ] ; then
            rm lmdb -rf
            mkdir lmdb
            convert_lmdb
        fi
    else
        mkdir lmdb
        convert_lmdb
    fi
}
train(){
    if [ ! -d output ]; then
        mkdir output
    fi
    latest=$(ls -t models/*.caffemodel | head -n 1)
    if [ -f ${latest} ]; then
        echo "Resume training from ${latest}"
        $TOOLS/caffe train --solver=models/solver.prototxt --weights=$latest
    else
        echo "Start Training"
        $TOOLS/caffe train --solver=models/solver.prototxt
    fi
    echo "Done"
}
# python evaluate
evaluate(){
    latest=$(ls -t output/*.caffemodel | head -n 1)
    echo "Evaluating "${latest}
    python util/evaluation.py --weights=${latest}
    cd ..
}
# c++ evaluate
run(){
    if [ not -d build ]; then 
        mkdir build
    fi
    cd build
    cmake ..
    make -j8
    ./evaluation
    #./cpp4caffe
}
# generate util/train.txt and val.txt for training
# python3 util/preprocess.py
#create_lmdb
# train
python train.py
evaluate
#run

================================================
FILE: util/deploy.prototxt
================================================
name: "lenet"
input: "data"
input_shape {
  dim: 1
  dim: 3
  dim: 20
  dim: 20
}
layer {
  name: "conv1"
  type: "Convolution"
  bottom: "data"
  top: "conv1"
  convolution_param {
    num_output: 20
    kernel_size: 5
    weight_filler {
      type: "xavier"
    }
  }
}
layer {
  name: "pool1"
  type: "Pooling"
  bottom: "conv1"
  top: "pool1"
  pooling_param {
    pool: MAX
    kernel_size: 2
    stride: 2
  }
}
layer {
  name: "conv2"
  type: "Convolution"
  bottom: "pool1"
  top: "conv2"
  convolution_param {
    num_output: 50
    kernel_size: 5
    weight_filler {
      type: "xavier"
    }
  }
}
layer {
  name: "pool2"
  type: "Pooling"
  bottom: "conv2"
  top: "pool2"
  pooling_param {
    pool: MAX
    kernel_size: 2
    stride: 2
  }
}
layer {
  name: "fc1"
  type: "InnerProduct"
  bottom: "pool2"
  top: "fc1"
  inner_product_param {
    num_output: 500
    weight_filler {
      type: "xavier"
    }
  }
}
layer {
  name: "relu1"
  type: "ReLU"
  bottom: "fc1"
  top: "fc1"
}
layer {
  name: "fc2"
  type: "InnerProduct"
  bottom: "fc1"
  top: "fc2"
  inner_product_param {
    num_output: 10
    weight_filler {
      type: "xavier"
    }
  }
}


================================================
FILE: util/evaluation.py
================================================
import os,argparse,sys,time,shutil
import numpy as np
import sys
sys.path.append('../python')
import caffe
import logging
from tqdm import tqdm

def create_logger(logdir="output"):
    time_str = time.strftime('%Y%m%d-%H%M%S')
    log_file = '{}/{}.log'.format(logdir, time_str)
    head = '%(asctime)-15s %(message)s'
    logging.basicConfig(filename=str(log_file),format=head)
    logger = logging.getLogger()
    logger.setLevel(logging.INFO)
    console = logging.StreamHandler()
    logging.getLogger('').addHandler(console)

def clearlasterrors(args):
    if os.path.exists("error"):
        subdirs=os.listdir(args.errordir)
        for subdir in subdirs:
            files=os.listdir(args.errordir+"/"+subdir)
            for file in files:
                os.remove(args.errordir+"/"+subdir+"/"+file)
            os.rmdir(args.errordir+"/"+subdir)

def loadmean(meanprotopath):
    blob = caffe.proto.caffe_pb2.BlobProto()
    blob.ParseFromString(open(meanprotopath, 'rb').read())   
    return np.array(caffe.io.blobproto_to_array(blob))[0]

def getclassifier(args):
    classifier = caffe.Classifier(args.modeldef, args.weights,image_dims=args.image_dims
    )
    ##mean=loadmean(args.meanfile).mean(1).mean(1),#raw_scale=255,channel_swap=[2,1,0]
    caffe.set_mode_gpu()
    return classifier

class EvalStatic:
    total = 0
    error = 0
    def __str__(self):
        return str(self.error)+","+str(self.total)+","+str(self.error*1.0/self.total)

def evaluationonebyone(args):
    labels=[w.split()[1] for w in open(args.labelfile).readlines()]
    classifier = getclassifier(args)
    start = time.time()
    if not os.path.exists(args.errordir):
        os.mkdir(args.errordir)
    subdirs=os.listdir(args.datadir)
    evalstatics=[]
    for subdir in subdirs:
        print(subdir+":")
        evalstatic=EvalStatic()
        files=os.listdir(args.datadir+'/'+subdir)
        evalstatic.total=len(files)
        for file in tqdm(files):
            imgpath=args.datadir+'/'+subdir+'/'+file
            inputs = [caffe.io.load_image(imgpath)]
            try:
                predictions = classifier.predict(inputs,oversample=False)
            except Exception as e:
                print(e)
            p=predictions[0,:].argmax()
            label=labels[p]
            if subdir!=label:
                logging.info(subdir+" "+file+":"+str(label))
                evalstatic.error=evalstatic.error+1
                if not os.path.exists(args.errordir+'/'+subdir):
                    os.mkdir(args.errordir+'/'+subdir)
                errorfilepath=args.errordir+'/'+subdir+'/'+file[:-4]+"_"+subdir+'_'+label+'.jpg'
                shutil.copy(imgpath,errorfilepath)
        evalstatics.append(evalstatic)
    logging.info("Done in %.2f s." % (time.time() - start))
    totalcount=0
    error=0
    for i,evalstatic in enumerate(evalstatics):
        error=error+evalstatic.error
        totalcount=totalcount+evalstatic.total
        logging.info(subdirs[i]+":"+str(evalstatic))
    logging.info("Toal error")
    logging.info(str(error)+" "+str(totalcount)+" "+str(error*1.0/totalcount))

def evaluation_batch(args):
    labels=[w.split()[1] for w in open(args.labelfile).readlines()]
    classifier=getclassifier(args)
    start = time.time()
    if not os.path.exists(args.errordir):
        os.mkdir(args.errordir)
    subdirs=os.listdir(args.datadir)
    evalstatics=[]
    for subdir in subdirs:
        print(subdir)
        evalstatic=EvalStatic()
        files=os.listdir(args.datadir+'/'+subdir)
        evalstatic.total=len(files)
        inputs=[caffe.io.load_image(args.datadir+'/'+subdir+'/'+file) for file in files]
        try:
            predictions = classifier.predict(inputs,oversample=False)
        except Exception as e:
            print(e)
        for i in tqdm(range(len(files))):
            p=predictions[i,:].argmax()
            label=labels[p]
            if subdir!=label:
                logging.info(subdir+" "+files[i]+":"+str(label))
                evalstatic.error=evalstatic.error+1
                if not os.path.exists(args.errordir+'/'+subdir):
                    os.mkdir(args.errordir+'/'+subdir)
                imgpath=args.datadir+"/"+subdir+"/"+files[i]
                errorfilepath=args.errordir+'/'+subdir+'/'+files[i][:-4]+"_"+subdir+'_'+label+'.jpg'
                shutil.copy(imgpath,errorfilepath)
        evalstatics.append(evalstatic)
    logging.info("Done in %.2f s." % (time.time() - start))
    totalcount=0
    error=0
    for i,evalstatic in enumerate(evalstatics):
        error=error+evalstatic.error
        totalcount=totalcount+evalstatic.total
        logging.info(subdirs[i]+":"+str(evalstatic))
    logging.info("Toal error")
    logging.info(str(error)+" "+str(totalcount)+" "+str(error*1.0/totalcount))

def get_args():
    parser = argparse.ArgumentParser()
    parser.add_argument("--iter",default=10000,help="caffemodel iter to evaluation")
    parser.add_argument("--datadir",default="data",help="datadir")
    parser.add_argument("--image_dims",default=[20,20],help="image_dims")
    parser.add_argument("--modeldef",default="util/deploy.prototxt",help="deploy file")
    parser.add_argument("--weights",default="models/plate999.caffemodel",help="caffemodel")
    parser.add_argument("--labelfile",default="models/labels.txt",help="label file")
    parser.add_argument("--meanfile",default="models/mean.binaryproto",help="meanfile")
    parser.add_argument("--errordir",default="error",help="errordir")
    parser.add_argument("--logfile",default="error.txt",help="log txt")
    parser.add_argument("--evaluationonebyone",default=True,help="log txt")
    parser.add_argument("--imgpath",default="data/0/0.jpg",help="image path")
    args = parser.parse_args()
    return args

def classification():
    args = get_args()
    args = parser.parse_args()
    labels=[w.split()[1] for w in open(args.labelfile).readlines()]
    classifier=getclassifier(args)
    inputs=[caffe.io.load_image(args.imgpath)]
    predictions = classifier.predict(inputs,oversample=False)
    p=predictions[0,:].argmax()
    label=labels[p]
    print(label,predictions[0,p])
    top_inds = predictions[0,:].argsort()[::-1][:5]

def evaluation():
    args = get_args()
    clearlasterrors(args)
    create_logger()
    if args.evaluationonebyone:
        evaluationonebyone(args)
    else:
        evaluation_batch(args)

if __name__=='__main__':
    evaluation()
    #classification()


================================================
FILE: util/meanfilebinartynpy.py
================================================
import os
import sys
sys.path.append('../../python')

MEAN_BIN = "../models/mean.binaryproto"
MEAN_NPY = "../models/mean.npy"

from caffe.proto import caffe_pb2
from caffe.io import blobproto_to_array
print('generating mean file...')
mean_blob = caffe_pb2.BlobProto()
mean_blob.ParseFromString(open(MEAN_BIN, 'rb').read())

import numpy as np
mean_npy = blobproto_to_array(mean_blob)
mean_npy_shape = mean_npy.shape
mean_npy = mean_npy.reshape(mean_npy_shape[1], mean_npy_shape[2], mean_npy_shape[3])

np.save(open(MEAN_NPY, 'wb'), mean_npy)
print('done...')

================================================
FILE: util/plotaccuracy.py
================================================
#coding =utf-8
#迷若烟雨@Baidu
import re
import matplotlib.pyplot as plt
import os
import sys
import datetime

def getlastesttraininfofilefromdir(logdir):
    logfiles=os.listdir(logdir)
    infologfiles=filter(lambda s:s.startswith('INFO'),logfiles)
    infologfiles=filter(lambda s:s.endswith('.txt'),infologfiles)
    if infologfiles:
        lastestfile=infologfiles[0]
        maxtm=0
        for logf in infologfiles:
            path = os.path.join(logdir, logf)  
            timestamp = os.path.getmtime(path)
            date = datetime.datetime.fromtimestamp(timestamp)
            if timestamp>maxtm:
                lastestfile=path
        return lastestfile
    else:
        return None
def plotaccuarcy():
    logdir='log'
    infologfile=getlastesttraininfofilefromdir(logdir)
    print(infologfile)
    if infologfile:
    #    infologfile='../log/INFO2015-11-19T19-45-15.txt'
        f=open(infologfile)
        lines=f.read()
        #print lines
        iterations=re.findall('Iteration \d*',lines)
        accuracysstrings=re.findall('accuracy = \d*.\d*',lines)
        trainlosstrings=re.findall('Train net output #0: loss = \d*.\d*',lines)
        testlossstrings=re.findall('Test net output #1: loss = \d*.\d*',lines)
        f.close()
        accuracys=[ac[11:] for ac in accuracysstrings]
        trainlosses=[loss[27:-1]for loss in trainlosstrings]
        testlosses=[loss[27:-1]for loss in testlossstrings]
        #for ac in accuracys:
        #    print ac
        plt.plot(range(len(accuracys)),accuracys)
        #plt.plot(range(len(trainlosses)),trainlosses)
        #plt.plot(range(len(testlosses)),testlosses)
        plt.show()
if __name__=="__main__":
    plotaccuarcy()

================================================
FILE: util/preprocess.py
================================================
import os,argparse,random,shutil

def main(args):
    datadir=args.rootdir+"/"+args.dataname
    print("loading data from "+datadir+":")
    trainfile=open("util/train.txt","w")
    valfile=open("util/val.txt","w")
    categoryfile=open("models/labels.txt",'w')
    paths=os.listdir(datadir)
    classindex=0
    trainpaths=[]
    valpaths=[]
    categorys=[]
    for subdir in paths:
        if(os.path.isdir(datadir+"/"+subdir)):
            categorys.append(str(classindex)+" "+subdir+"\n")
            files=os.listdir(datadir+"/"+subdir)
            files=[file for file in files]
            random.shuffle(files)
            print(subdir,len(files))
            num2train=len(files)*args.trainrtaio
            for fileindex,file in enumerate(files):
                if fileindex<num2train:
                    trainpaths.append(subdir+"/"+file+" "+str(classindex)+"\n")
                else:
                    valpaths.append(subdir+"/"+file+" "+str(classindex)+"\n")
            classindex=classindex+1

    for category in categorys:
        categoryfile.write(category)

    random.shuffle(trainpaths)
    random.shuffle(valpaths)
    print("writing to files...:")
    for trainpath in trainpaths:
        trainfile.write(trainpath)

    for valpath in valpaths:
        valfile.write(valpath)
    print(len(paths))

if __name__=="__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("--rootdir",default="./",help="Directory of images to classify")
    parser.add_argument("--dataname",default="data",help="Dataset name")
    parser.add_argument("--trainrtaio",default=0.8,help="Train ratio ")
    parser.add_argument("--valrtaio",default=0.2,help="Val ratio")
    parser.add_argument("--testratio",default=0.1,help="Test ratoi")
    args = parser.parse_args()
    main(args)
    print("preprocess Done")

================================================
FILE: util/solver.prototxt
================================================
train_net: "util/train.prototxt"
test_net: "util/test.prototxt"
test_iter: 15
test_interval: 500
base_lr: 0.00999999977648
display: 1000
max_iter: 10000
lr_policy: "step"
gamma: 0.10000000149
power: 0.75
momentum: 0.899999976158
weight_decay: 0.000500000023749
stepsize: 5000
snapshot: 5000
snapshot_prefix: "output/plate"
solver_mode: GPU


================================================
FILE: util/test.prototxt
================================================
layer {
  name: "data"
  type: "Data"
  top: "data"
  top: "label"
  transform_param {
    scale: 0.00392156885937
  }
  data_param {
    source: "lmdb/val_lmdb"
    batch_size: 64
    backend: LMDB
  }
}
layer {
  name: "conv1"
  type: "Convolution"
  bottom: "data"
  top: "conv1"
  convolution_param {
    num_output: 20
    kernel_size: 5
    weight_filler {
      type: "xavier"
    }
  }
}
layer {
  name: "pool1"
  type: "Pooling"
  bottom: "conv1"
  top: "pool1"
  pooling_param {
    pool: MAX
    kernel_size: 2
    stride: 2
  }
}
layer {
  name: "conv2"
  type: "Convolution"
  bottom: "pool1"
  top: "conv2"
  convolution_param {
    num_output: 50
    kernel_size: 5
    weight_filler {
      type: "xavier"
    }
  }
}
layer {
  name: "pool2"
  type: "Pooling"
  bottom: "conv2"
  top: "pool2"
  pooling_param {
    pool: MAX
    kernel_size: 2
    stride: 2
  }
}
layer {
  name: "fc1"
  type: "InnerProduct"
  bottom: "pool2"
  top: "fc1"
  inner_product_param {
    num_output: 500
    weight_filler {
      type: "xavier"
    }
  }
}
layer {
  name: "relu1"
  type: "ReLU"
  bottom: "fc1"
  top: "fc1"
}
layer {
  name: "fc2"
  type: "InnerProduct"
  bottom: "fc1"
  top: "fc2"
  inner_product_param {
    num_output: 10
    weight_filler {
      type: "xavier"
    }
  }
}
layer {
  name: "acc"
  type: "Accuracy"
  bottom: "fc2"
  bottom: "label"
  top: "acc"
}
layer {
  name: "loss"
  type: "SoftmaxWithLoss"
  bottom: "fc2"
  bottom: "label"
  top: "loss"
}


================================================
FILE: util/train.prototxt
================================================
layer {
  name: "data"
  type: "Data"
  top: "data"
  top: "label"
  transform_param {
    scale: 0.00392156885937
  }
  data_param {
    source: "lmdb/train_lmdb"
    batch_size: 64
    backend: LMDB
  }
}
layer {
  name: "conv1"
  type: "Convolution"
  bottom: "data"
  top: "conv1"
  convolution_param {
    num_output: 20
    kernel_size: 5
    weight_filler {
      type: "xavier"
    }
  }
}
layer {
  name: "pool1"
  type: "Pooling"
  bottom: "conv1"
  top: "pool1"
  pooling_param {
    pool: MAX
    kernel_size: 2
    stride: 2
  }
}
layer {
  name: "conv2"
  type: "Convolution"
  bottom: "pool1"
  top: "conv2"
  convolution_param {
    num_output: 50
    kernel_size: 5
    weight_filler {
      type: "xavier"
    }
  }
}
layer {
  name: "pool2"
  type: "Pooling"
  bottom: "conv2"
  top: "pool2"
  pooling_param {
    pool: MAX
    kernel_size: 2
    stride: 2
  }
}
layer {
  name: "fc1"
  type: "InnerProduct"
  bottom: "pool2"
  top: "fc1"
  inner_product_param {
    num_output: 500
    weight_filler {
      type: "xavier"
    }
  }
}
layer {
  name: "relu1"
  type: "ReLU"
  bottom: "fc1"
  top: "fc1"
}
layer {
  name: "fc2"
  type: "InnerProduct"
  bottom: "fc1"
  top: "fc2"
  inner_product_param {
    num_output: 10
    weight_filler {
      type: "xavier"
    }
  }
}
layer {
  name: "acc"
  type: "Accuracy"
  bottom: "fc2"
  bottom: "label"
  top: "acc"
}
layer {
  name: "loss"
  type: "SoftmaxWithLoss"
  bottom: "fc2"
  bottom: "label"
  top: "loss"
}


================================================
FILE: util/train.txt
================================================
1/434.jpg 1
9/1124.jpg 9
2/502.jpg 2
1/44.jpg 1
9/125.jpg 9
4/145.jpg 4
7/576.jpg 7
0/14.jpg 0
0/164.jpg 0
1/334.jpg 1
0/549.jpg 0
1/315.jpg 1
9/74.jpg 9
9/287.jpg 9
7/795.jpg 7
3/493.jpg 3
7/226.jpg 7
9/68.jpg 9
7/425.jpg 7
3/279.jpg 3
0/158.jpg 0
9/974.jpg 9
8/1086.jpg 8
7/588.jpg 7
2/324.jpg 2
9/138.jpg 9
2/541.jpg 2
2/556.jpg 2
1/232.jpg 1
9/963.jpg 9
9/513.jpg 9
3/584.jpg 3
6/146.jpg 6
2/295.jpg 2
1/356.jpg 1
0/419.jpg 0
1/57.jpg 1
3/410.jpg 3
0/375.jpg 0
9/22.jpg 9
5/147.jpg 5
9/670.jpg 9
8/401.jpg 8
3/569.jpg 3
8/736.jpg 8
0/485.jpg 0
4/321.jpg 4
8/87.jpg 8
3/496.jpg 3
1/444.jpg 1
2/311.jpg 2
9/581.jpg 9
5/960.jpg 5
3/457.jpg 3
9/205.jpg 9
7/190.jpg 7
1/414.jpg 1
5/399.jpg 5
7/608.jpg 7
1/382.jpg 1
7/297.jpg 7
8/496.jpg 8
0/56.jpg 0
7/232.jpg 7
2/451.jpg 2
2/241.jpg 2
6/91.jpg 6
9/580.jpg 9
8/82.jpg 8
6/116.jpg 6
3/534.jpg 3
6/336.jpg 6
8/23.jpg 8
6/370.jpg 6
8/275.jpg 8
5/74.jpg 5
8/439.jpg 8
4/299.jpg 4
6/426.jpg 6
1/419.jpg 1
3/196.jpg 3
8/991.jpg 8
9/639.jpg 9
0/258.jpg 0
8/318.jpg 8
3/252.jpg 3
7/107.jpg 7
9/194.jpg 9
5/631.jpg 5
5/365.jpg 5
1/37.jpg 1
5/225.jpg 5
7/70.jpg 7
6/145.jpg 6
9/1127.jpg 9
8/898.jpg 8
7/617.jpg 7
4/291.jpg 4
7/313.jpg 7
9/741.jpg 9
8/90.jpg 8
8/356.jpg 8
5/9.jpg 5
0/343.jpg 0
9/176.jpg 9
5/130.jpg 5
4/148.jpg 4
7/298.jpg 7
7/61.jpg 7
6/347.jpg 6
1/399.jpg 1
5/767.jpg 5
2/274.jpg 2
9/1030.jpg 9
9/222.jpg 9
5/846.jpg 5
5/896.jpg 5
3/141.jpg 3
9/12.jpg 9
4/130.jpg 4
9/1075.jpg 9
5/653.jpg 5
2/306.jpg 2
7/585.jpg 7
3/84.jpg 3
9/995.jpg 9
7/55.jpg 7
8/1014.jpg 8
1/2.jpg 1
8/1106.jpg 8
0/572.jpg 0
2/128.jpg 2
0/317.jpg 0
7/823.jpg 7
0/567.jpg 0
9/170.jpg 9
5/895.jpg 5
8/490.jpg 8
3/502.jpg 3
8/551.jpg 8
8/499.jpg 8
4/161.jpg 4
3/317.jpg 3
2/53.jpg 2
4/282.jpg 4
6/445.jpg 6
7/796.jpg 7
2/315.jpg 2
9/1042.jpg 9
5/252.jpg 5
9/106.jpg 9
0/190.jpg 0
3/218.jpg 3
5/635.jpg 5
4/379.jpg 4
7/369.jpg 7
5/671.jpg 5
4/167.jpg 4
3/482.jpg 3
8/558.jpg 8
7/27.jpg 7
0/8.jpg 0
5/265.jpg 5
3/500.jpg 3
6/279.jpg 6
9/29.jpg 9
8/912.jpg 8
0/446.jpg 0
0/83.jpg 0
3/360.jpg 3
3/9.jpg 3
5/254.jpg 5
8/959.jpg 8
8/530.jpg 8
9/527.jpg 9
7/750.jpg 7
6/302.jpg 6
2/147.jpg 2
5/319.jpg 5
7/153.jpg 7
5/227.jpg 5
3/21.jpg 3
5/262.jpg 5
7/416.jpg 7
7/227.jpg 7
7/329.jpg 7
8/643.jpg 8
2/75.jpg 2
6/223.jpg 6
9/449.jpg 9
5/242.jpg 5
8/811.jpg 8
5/438.jpg 5
9/1154.jpg 9
2/320.jpg 2
8/1082.jpg 8
8/683.jpg 8
8/1012.jpg 8
0/665.jpg 0
0/660.jpg 0
8/542.jpg 8
2/600.jpg 2
2/345.jpg 2
8/623.jpg 8
9/1.jpg 9
3/348.jpg 3
7/556.jpg 7
9/1067.jpg 9
8/464.jpg 8
9/619.jpg 9
5/737.jpg 5
5/864.jpg 5
7/685.jpg 7
0/333.jpg 0
8/633.jpg 8
5/296.jpg 5
9/225.jpg 9
4/384.jpg 4
6/467.jpg 6
5/515.jpg 5
9/356.jpg 9
9/657.jpg 9
4/320.jpg 4
6/155.jpg 6
8/246.jpg 8
0/140.jpg 0
9/925.jpg 9
6/636.jpg 6
8/758.jpg 8
0/129.jpg 0
2/308.jpg 2
3/257.jpg 3
5/611.jpg 5
6/731.jpg 6
4/142.jpg 4
6/550.jpg 6
8/234.jpg 8
5/300.jpg 5
5/163.jpg 5
1/33.jpg 1
8/894.jpg 8
9/457.jpg 9
6/747.jpg 6
2/210.jpg 2
4/290.jpg 4
8/1119.jpg 8
3/85.jpg 3
5/153.jpg 5
5/781.jpg 5
8/586.jpg 8
5/272.jpg 5
9/1119.jpg 9
2/219.jpg 2
1/252.jpg 1
9/645.jpg 9
0/139.jpg 0
6/647.jpg 6
8/472.jpg 8
0/503.jpg 0
7/427.jpg 7
5/96.jpg 5
7/746.jpg 7
9/360.jpg 9
5/595.jpg 5
8/765.jpg 8
9/727.jpg 9
8/1025.jpg 8
0/627.jpg 0
2/282.jpg 2
7/709.jpg 7
9/166.jpg 9
9/378.jpg 9
7/686.jpg 7
5/189.jpg 5
3/441.jpg 3
3/396.jpg 3
4/226.jpg 4
8/907.jpg 8
9/87.jpg 9
9/921.jpg 9
1/428.jpg 1
2/360.jpg 2
5/856.jpg 5
0/59.jpg 0
0/325.jpg 0
5/295.jpg 5
3/370.jpg 3
1/227.jpg 1
6/604.jpg 6
9/803.jpg 9
7/199.jpg 7
7/517.jpg 7
3/302.jpg 3
5/716.jpg 5
5/383.jpg 5
9/103.jpg 9
9/998.jpg 9
4/176.jpg 4
9/896.jpg 9
8/413.jpg 8
8/552.jpg 8
9/613.jpg 9
2/501.jpg 2
8/269.jpg 8
8/476.jpg 8
0/594.jpg 0
6/31.jpg 6
8/448.jpg 8
5/223.jpg 5
8/306.jpg 8
3/517.jpg 3
2/186.jpg 2
2/568.jpg 2
5/327.jpg 5
4/4.jpg 4
4/303.jpg 4
6/646.jpg 6
3/125.jpg 3
5/57.jpg 5
3/179.jpg 3
6/113.jpg 6
5/913.jpg 5
9/208.jpg 9
9/772.jpg 9
5/460.jpg 5
5/77.jpg 5
2/266.jpg 2
5/360.jpg 5
9/240.jpg 9
2/388.jpg 2
0/484.jpg 0
9/441.jpg 9
0/614.jpg 0
5/256.jpg 5
5/39.jpg 5
7/670.jpg 7
6/586.jpg 6
7/519.jpg 7
7/725.jpg 7
2/119.jpg 2
8/179.jpg 8
2/370.jpg 2
5/190.jpg 5
3/481.jpg 3
5/178.jpg 5
6/672.jpg 6
6/17.jpg 6
4/203.jpg 4
4/332.jpg 4
3/477.jpg 3
6/745.jpg 6
3/364.jpg 3
9/422.jpg 9
5/369.jpg 5
8/403.jpg 8
3/96.jpg 3
5/526.jpg 5
4/296.jpg 4
4/70.jpg 4
8/185.jpg 8
9/659.jpg 9
5/499.jpg 5
9/1136.jpg 9
6/416.jpg 6
7/225.jpg 7
7/473.jpg 7
7/784.jpg 7
9/795.jpg 9
5/511.jpg 5
3/320.jpg 3
7/635.jpg 7
3/384.jpg 3
0/661.jpg 0
9/1114.jpg 9
1/195.jpg 1
7/100.jpg 7
3/131.jpg 3
1/86.jpg 1
7/104.jpg 7
5/867.jpg 5
8/497.jpg 8
9/557.jpg 9
5/627.jpg 5
0/269.jpg 0
9/499.jpg 9
6/494.jpg 6
0/271.jpg 0
1/417.jpg 1
8/370.jpg 8
1/93.jpg 1
9/34.jpg 9
3/546.jpg 3
9/63.jpg 9
9/202.jpg 9
6/424.jpg 6
8/9.jpg 8
9/502.jpg 9
9/507.jpg 9
3/392.jpg 3
0/412.jpg 0
8/477.jpg 8
2/302.jpg 2
4/89.jpg 4
6/189.jpg 6
6/341.jpg 6
0/489.jpg 0
1/38.jpg 1
6/725.jpg 6
5/915.jpg 5
2/184.jpg 2
9/371.jpg 9
8/481.jpg 8
6/247.jpg 6
1/140.jpg 1
5/713.jpg 5
8/922.jpg 8
7/147.jpg 7
6/202.jpg 6
9/221.jpg 9
7/581.jpg 7
0/87.jpg 0
6/749.jpg 6
8/1107.jpg 8
8/113.jpg 8
6/669.jpg 6
4/264.jpg 4
8/1043.jpg 8
8/976.jpg 8
7/288.jpg 7
9/134.jpg 9
5/385.jpg 5
6/517.jpg 6
2/168.jpg 2
9/800.jpg 9
0/146.jpg 0
0/18.jpg 0
9/323.jpg 9
3/231.jpg 3
8/979.jpg 8
8/98.jpg 8
2/135.jpg 2
9/42.jpg 9
4/317.jpg 4
9/386.jpg 9
8/267.jpg 8
7/665.jpg 7
2/518.jpg 2
9/1144.jpg 9
8/312.jpg 8
8/800.jpg 8
8/724.jpg 8
5/427.jpg 5
1/63.jpg 1
2/195.jpg 2
3/532.jpg 3
6/124.jpg 6
0/675.jpg 0
8/46.jpg 8
4/351.jpg 4
5/939.jpg 5
8/310.jpg 8
5/287.jpg 5
0/29.jpg 0
8/237.jpg 8
4/344.jpg 4
5/274.jpg 5
7/804.jpg 7
8/56.jpg 8
9/352.jpg 9
3/329.jpg 3
3/118.jpg 3
8/473.jpg 8
4/235.jpg 4
3/188.jpg 3
2/27.jpg 2
8/117.jpg 8
8/775.jpg 8
6/167.jpg 6
6/514.jpg 6
2/401.jpg 2
0/10.jpg 0
7/543.jpg 7
6/354.jpg 6
7/300.jpg 7
9/810.jpg 9
5/301.jpg 5
6/377.jpg 6
6/652.jpg 6
6/555.jpg 6
3/161.jpg 3
5/231.jpg 5
8/494.jpg 8
9/1064.jpg 9
7/738.jpg 7
0/678.jpg 0
9/682.jpg 9
1/258.jpg 1
9/184.jpg 9
4/79.jpg 4
9/357.jpg 9
1/191.jpg 1
4/3.jpg 4
2/255.jpg 2
7/250.jpg 7
8/123.jpg 8
1/68.jpg 1
3/91.jpg 3
3/149.jpg 3
9/722.jpg 9
9/117.jpg 9
5/941.jpg 5
7/708.jpg 7
1/241.jpg 1
9/147.jpg 9
5/820.jpg 5
5/934.jpg 5
2/369.jpg 2
6/351.jpg 6
3/11.jpg 3
8/354.jpg 8
9/855.jpg 9
1/94.jpg 1
8/407.jpg 8
5/353.jpg 5
5/160.jpg 5
8/1151.jpg 8
7/138.jpg 7
9/815.jpg 9
2/553.jpg 2
9/666.jpg 9
5/91.jpg 5
6/538.jpg 6
1/469.jpg 1
6/7.jpg 6
2/267.jpg 2
3/343.jpg 3
6/112.jpg 6
5/683.jpg 5
5/712.jpg 5
7/740.jpg 7
8/553.jpg 8
7/669.jpg 7
9/548.jpg 9
6/53.jpg 6
5/208.jpg 5
8/803.jpg 8
9/66.jpg 9
7/632.jpg 7
4/187.jpg 4
9/141.jpg 9
8/292.jpg 8
7/436.jpg 7
8/309.jpg 8
2/71.jpg 2
7/312.jpg 7
4/23.jpg 4
7/752.jpg 7
6/144.jpg 6
6/578.jpg 6
8/832.jpg 8
1/214.jpg 1
8/359.jpg 8
0/189.jpg 0
2/455.jpg 2
2/163.jpg 2
3/260.jpg 3
9/458.jpg 9
2/43.jpg 2
3/324.jpg 3
1/219.jpg 1
5/63.jpg 5
2/480.jpg 2
3/38.jpg 3
7/606.jpg 7
3/530.jpg 3
3/193.jpg 3
0/308.jpg 0
6/48.jpg 6
7/602.jpg 7
5/557.jpg 5
3/558.jpg 3
4/19.jpg 4
7/469.jpg 7
7/245.jpg 7
4/32.jpg 4
9/940.jpg 9
5/376.jpg 5
8/271.jpg 8
8/369.jpg 8
9/83.jpg 9
1/383.jpg 1
4/189.jpg 4
4/76.jpg 4
4/72.jpg 4
8/174.jpg 8
5/571.jpg 5
0/168.jpg 0
6/434.jpg 6
8/950.jpg 8
0/162.jpg 0
9/1102.jpg 9
0/213.jpg 0
5/639.jpg 5
9/191.jpg 9
8/427.jpg 8
9/262.jpg 9
5/876.jpg 5
9/627.jpg 9
8/303.jpg 8
8/870.jpg 8
0/624.jpg 0
9/10.jpg 9
7/206.jpg 7
5/116.jpg 5
9/987.jpg 9
8/929.jpg 8
4/24.jpg 4
8/1061.jpg 8
0/653.jpg 0
0/95.jpg 0
9/246.jpg 9
3/524.jpg 3
8/2.jpg 8
9/852.jpg 9
3/498.jpg 3
8/6.jpg 8
3/367.jpg 3
6/288.jpg 6
3/291.jpg 3
8/1116.jpg 8
9/77.jpg 9
6/352.jpg 6
5/195.jpg 5
0/120.jpg 0
5/410.jpg 5
2/12.jpg 2
5/678.jpg 5
6/751.jpg 6
7/782.jpg 7
9/1105.jpg 9
2/123.jpg 2
1/228.jpg 1
6/306.jpg 6
2/429.jpg 2
6/580.jpg 6
9/1073.jpg 9
9/932.jpg 9
8/783.jpg 8
5/827.jpg 5
9/1035.jpg 9
9/1077.jpg 9
8/576.jpg 8
4/333.jpg 4
0/416.jpg 0
8/455.jpg 8
7/91.jpg 7
5/155.jpg 5
5/842.jpg 5
9/1088.jpg 9
5/140.jpg 5
7/160.jpg 7
4/112.jpg 4
3/186.jpg 3
9/683.jpg 9
5/433.jpg 5
8/1074.jpg 8
7/624.jpg 7
0/53.jpg 0
6/12.jpg 6
3/299.jpg 3
4/354.jpg 4
6/191.jpg 6
5/485.jpg 5
7/45.jpg 7
0/487.jpg 0
4/14.jpg 4
8/630.jpg 8
8/899.jpg 8
6/271.jpg 6
5/537.jpg 5
4/374.jpg 4
8/742.jpg 8
5/899.jpg 5
8/889.jpg 8
1/437.jpg 1
5/766.jpg 5
6/142.jpg 6
9/1061.jpg 9
5/779.jpg 5
6/491.jpg 6
2/326.jpg 2
5/933.jpg 5
8/522.jpg 8
8/378.jpg 8
3/206.jpg 3
6/127.jpg 6
7/105.jpg 7
8/769.jpg 8
7/254.jpg 7
3/523.jpg 3
7/360.jpg 7
9/790.jpg 9
2/106.jpg 2
5/390.jpg 5
7/85.jpg 7
8/621.jpg 8
7/395.jpg 7
8/501.jpg 8
1/478.jpg 1
7/813.jpg 7
1/509.jpg 1
0/113.jpg 0
6/666.jpg 6
9/539.jpg 9
6/450.jpg 6
9/306.jpg 9
9/946.jpg 9
1/515.jpg 1
5/425.jpg 5
0/90.jpg 0
4/0.jpg 4
9/41.jpg 9
1/421.jpg 1
7/470.jpg 7
7/404.jpg 7
8/459.jpg 8
1/8.jpg 1
6/197.jpg 6
9/755.jpg 9
5/633.jpg 5
9/989.jpg 9
3/68.jpg 3
8/997.jpg 8
9/395.jpg 9
2/164.jpg 2
1/27.jpg 1
3/538.jpg 3
5/651.jpg 5
1/154.jpg 1
5/932.jpg 5
9/591.jpg 9
8/1118.jpg 8
2/420.jpg 2
1/458.jpg 1
5/718.jpg 5
9/650.jpg 9
9/560.jpg 9
5/657.jpg 5
2/230.jpg 2
9/301.jpg 9
5/838.jpg 5
6/132.jpg 6
1/409.jpg 1
7/51.jpg 7
5/530.jpg 5
1/77.jpg 1
7/44.jpg 7
1/7.jpg 1
9/516.jpg 9
8/578.jpg 8
7/284.jpg 7
0/69.jpg 0
3/36.jpg 3
4/133.jpg 4
1/483.jpg 1
3/74.jpg 3
7/253.jpg 7
9/1078.jpg 9
5/946.jpg 5
0/599.jpg 0
3/556.jpg 3
5/775.jpg 5
8/893.jpg 8
8/514.jpg 8
0/705.jpg 0
9/165.jpg 9
6/40.jpg 6
6/181.jpg 6
6/371.jpg 6
0/411.jpg 0
5/467.jpg 5
7/353.jpg 7
9/274.jpg 9
3/501.jpg 3
8/810.jpg 8
7/598.jpg 7
9/109.jpg 9
9/809.jpg 9
1/473.jpg 1
8/807.jpg 8
4/178.jpg 4
9/914.jpg 9
0/383.jpg 0
0/584.jpg 0
1/72.jpg 1
1/152.jpg 1
1/379.jpg 1
4/314.jpg 4
9/435.jpg 9
5/41.jpg 5
0/149.jpg 0
8/272.jpg 8
5/305.jpg 5
6/543.jpg 6
8/704.jpg 8
8/962.jpg 8
8/755.jpg 8
6/487.jpg 6
6/383.jpg 6
2/500.jpg 2
8/91.jpg 8
7/447.jpg 7
5/541.jpg 5
0/51.jpg 0
3/557.jpg 3
9/1079.jpg 9
0/89.jpg 0
5/82.jpg 5
6/436.jpg 6
9/832.jpg 9
7/371.jpg 7
5/487.jpg 5
0/327.jpg 0
9/154.jpg 9
9/579.jpg 9
9/1133.jpg 9
9/646.jpg 9
3/137.jpg 3
1/90.jpg 1
7/203.jpg 7
1/198.jpg 1
5/7.jpg 5
5/782.jpg 5
8/317.jpg 8
6/376.jpg 6
7/171.jpg 7
6/15.jpg 6
3/381.jpg 3
9/293.jpg 9
8/819.jpg 8
5/751.jpg 5
7/516.jpg 7
5/755.jpg 5
9/114.jpg 9
6/734.jpg 6
4/255.jpg 4
2/591.jpg 2
6/573.jpg 6
0/64.jpg 0
8/344.jpg 8
3/119.jpg 3
2/344.jpg 2
5/570.jpg 5
9/643.jpg 9
5/370.jpg 5
5/477.jpg 5
9/1023.jpg 9
8/509.jpg 8
8/969.jpg 8
2/124.jpg 2
8/685.jpg 8
9/575.jpg 9
9/564.jpg 9
7/73.jpg 7
8/73.jpg 8
0/108.jpg 0
1/443.jpg 1
7/189.jpg 7
0/368.jpg 0
8/207.jpg 8
7/172.jpg 7
1/464.jpg 1
7/699.jpg 7
6/482.jpg 6
8/658.jpg 8
8/502.jpg 8
2/137.jpg 2
4/163.jpg 4
1/92.jpg 1
5/220.jpg 5
0/204.jpg 0
4/35.jpg 4
5/113.jpg 5
2/390.jpg 2
5/162.jpg 5
9/775.jpg 9
9/370.jpg 9
7/374.jpg 7
9/92.jpg 9
5/637.jpg 5
4/216.jpg 4
9/754.jpg 9
8/1060.jpg 8
9/260.jpg 9
5/437.jpg 5
5/519.jpg 5
2/95.jpg 2
9/842.jpg 9
9/696.jpg 9
6/278.jpg 6
9/745.jpg 9
2/244.jpg 2
1/485.jpg 1
3/211.jpg 3
5/292.jpg 5
0/38.jpg 0
2/64.jpg 2
7/202.jpg 7
4/129.jpg 4
3/527.jpg 3
0/208.jpg 0
8/1132.jpg 8
6/249.jpg 6
7/780.jpg 7
2/523.jpg 2
4/202.jpg 4
9/931.jpg 9
1/89.jpg 1
9/100.jpg 9
1/476.jpg 1
2/17.jpg 2
7/644.jpg 7
3/430.jpg 3
0/215.jpg 0
5/99.jpg 5
1/186.jpg 1
8/605.jpg 8
5/484.jpg 5
2/65.jpg 2
2/521.jpg 2
9/64.jpg 9
0/273.jpg 0
2/580.jpg 2
3/544.jpg 3
7/637.jpg 7
3/497.jpg 3
8/680.jpg 8
3/509.jpg 3
0/16.jpg 0
3/256.jpg 3
8/656.jpg 8
1/391.jpg 1
9/957.jpg 9
5/240.jpg 5
4/21.jpg 4
0/422.jpg 0
3/458.jpg 3
8/513.jpg 8
9/195.jpg 9
8/845.jpg 8
5/730.jpg 5
9/587.jpg 9
9/168.jpg 9
4/45.jpg 4
9/188.jpg 9
9/570.jpg 9
8/930.jpg 8
3/435.jpg 3
5/924.jpg 5
9/631.jpg 9
8/874.jpg 8
7/387.jpg 7
1/178.jpg 1
0/77.jpg 0
1/161.jpg 1
1/85.jpg 1
9/769.jpg 9
6/537.jpg 6
7/542.jpg 7
7/240.jpg 7
8/985.jpg 8
6/682.jpg 6
2/552.jpg 2
0/394.jpg 0
0/427.jpg 0
2/182.jpg 2
0/512.jpg 0
7/733.jpg 7
6/325.jpg 6
8/629.jpg 8
5/266.jpg 5
6/428.jpg 6
7/204.jpg 7
9/718.jpg 9
8/931.jpg 8
0/73.jpg 0
6/548.jpg 6
6/50.jpg 6
3/69.jpg 3
9/518.jpg 9
7/346.jpg 7
0/268.jpg 0
7/314.jpg 7
8/377.jpg 8
2/549.jpg 2
5/959.jpg 5
1/97.jpg 1
4/83.jpg 4
8/1085.jpg 8
9/1126.jpg 9
6/281.jpg 6
7/459.jpg 7
0/551.jpg 0
9/1155.jpg 9
6/497.jpg 6
5/431.jpg 5
6/102.jpg 6
4/87.jpg 4
0/636.jpg 0
6/277.jpg 6
0/218.jpg 0
3/424.jpg 3
5/289.jpg 5
9/758.jpg 9
2/202.jpg 2
6/46.jpg 6
9/698.jpg 9
9/891.jpg 9
1/294.jpg 1
1/60.jpg 1
5/536.jpg 5
8/279.jpg 8
2/289.jpg 2
5/349.jpg 5
8/1080.jpg 8
6/289.jpg 6
9/882.jpg 9
7/187.jpg 7
9/372.jpg 9
7/668.jpg 7
8/69.jpg 8
8/236.jpg 8
6/187.jpg 6
6/299.jpg 6
0/648.jpg 0
8/302.jpg 8
8/146.jpg 8
9/446.jpg 9
5/849.jpg 5
9/851.jpg 9
2/538.jpg 2
0/555.jpg 0
4/348.jpg 4
8/977.jpg 8
9/38.jpg 9
5/750.jpg 5
8/925.jpg 8
4/116.jpg 4
0/277.jpg 0
8/1056.jpg 8
5/963.jpg 5
0/52.jpg 0
3/18.jpg 3
7/340.jpg 7
2/8.jpg 2
9/362.jpg 9
4/254.jpg 4
2/256.jpg 2
5/303.jpg 5
2/393.jpg 2
9/375.jpg 9
9/1058.jpg 9
5/84.jpg 5
9/948.jpg 9
5/367.jpg 5
6/109.jpg 6
8/675.jpg 8
9/1092.jpg 9
9/521.jpg 9
7/343.jpg 7
9/839.jpg 9
6/231.jpg 6
6/81.jpg 6
9/200.jpg 9
5/417.jpg 5
3/468.jpg 3
2/505.jpg 2
5/269.jpg 5
5/625.jpg 5
9/647.jpg 9
8/3.jpg 8
6/708.jpg 6
1/254.jpg 1
9/58.jpg 9
8/876.jpg 8
3/369.jpg 3
1/122.jpg 1
9/229.jpg 9
0/358.jpg 0
6/748.jpg 6
8/851.jpg 8
3/240.jpg 3
9/399.jpg 9
8/482.jpg 8
8/20.jpg 8
6/685.jpg 6
5/211.jpg 5
6/272.jpg 6
4/260.jpg 4
9/212.jpg 9
6/703.jpg 6
1/375.jpg 1
7/154.jpg 7
9/20.jpg 9
6/229.jpg 6
7/370.jpg 7
5/507.jpg 5
8/423.jpg 8
0/5.jpg 0
5/494.jpg 5
5/771.jpg 5
4/49.jpg 4
5/377.jpg 5
9/813.jpg 9
8/48.jpg 8
2/33.jpg 2
9/174.jpg 9
0/596.jpg 0
7/449.jpg 7
3/144.jpg 3
6/410.jpg 6
3/220.jpg 3
6/149.jpg 6
4/190.jpg 4
6/348.jpg 6
7/113.jpg 7
4/137.jpg 4
5/817.jpg 5
0/324.jpg 0
1/299.jpg 1
5/329.jpg 5
2/283.jpg 2
5/58.jpg 5
6/77.jpg 6
7/411.jpg 7
1/17.jpg 1
3/444.jpg 3
0/239.jpg 0
7/736.jpg 7
8/717.jpg 8
7/22.jpg 7
6/68.jpg 6
9/694.jpg 9
8/589.jpg 8
8/458.jpg 8
1/168.jpg 1
9/94.jpg 9
8/183.jpg 8
5/705.jpg 5
5/523.jpg 5
3/387.jpg 3
5/937.jpg 5
5/786.jpg 5
5/788.jpg 5
3/127.jpg 3
0/156.jpg 0
8/83.jpg 8
3/383.jpg 3
7/169.jpg 7
9/30.jpg 9
7/367.jpg 7
5/596.jpg 5
0/681.jpg 0
6/417.jpg 6
6/2.jpg 6
0/226.jpg 0
9/537.jpg 9
0/248.jpg 0
8/577.jpg 8
6/99.jpg 6
5/109.jpg 5
5/650.jpg 5
9/742.jpg 9
7/730.jpg 7
8/1111.jpg 8
1/49.jpg 1
8/289.jpg 8
8/1146.jpg 8
0/292.jpg 0
9/573.jpg 9
6/121.jpg 6
0/397.jpg 0
7/48.jpg 7
2/197.jpg 2
6/60.jpg 6
2/394.jpg 2
2/517.jpg 2
6/520.jpg 6
0/225.jpg 0
2/404.jpg 2
8/529.jpg 8
4/39.jpg 4
6/516.jpg 6
2/469.jpg 2
2/335.jpg 2
9/216.jpg 9
4/9.jpg 4
1/345.jpg 1
7/739.jpg 7
1/9.jpg 1
5/428.jpg 5
9/440.jpg 9
2/248.jpg 2
6/27.jpg 6
8/396.jpg 8
1/157.jpg 1
2/409.jpg 2
0/384.jpg 0
6/166.jpg 6
5/517.jpg 5
2/403.jpg 2
9/294.jpg 9
7/627.jpg 7
0/471.jpg 0
8/972.jpg 8
1/498.jpg 1
8/426.jpg 8
3/494.jpg 3
7/209.jpg 7
3/568.jpg 3
6/661.jpg 6
7/431.jpg 7
6/208.jpg 6
7/146.jpg 7
5/802.jpg 5
5/226.jpg 5
2/238.jpg 2
9/227.jpg 9
5/859.jpg 5
5/726.jpg 5
0/342.jpg 0
6/452.jpg 6
3/158.jpg 3
2/438.jpg 2
6/683.jpg 6
3/25.jpg 3
2/209.jpg 2
8/1007.jpg 8
7/166.jpg 7
8/89.jpg 8
0/538.jpg 0
5/806.jpg 5
2/36.jpg 2
0/389.jpg 0
1/330.jpg 1
9/1052.jpg 9
8/790.jpg 8
5/502.jpg 5
6/201.jpg 6
9/460.jpg 9
5/873.jpg 5
9/1146.jpg 9
8/352.jpg 8
4/118.jpg 4
9/711.jpg 9
9/414.jpg 9
2/561.jpg 2
5/563.jpg 5
6/353.jpg 6
9/475.jpg 9
5/498.jpg 5
8/450.jpg 8
2/11.jpg 2
7/451.jpg 7
7/290.jpg 7
5/471.jpg 5
8/750.jpg 8
0/476.jpg 0
1/492.jpg 1
8/944.jpg 8
2/329.jpg 2
6/159.jpg 6
9/54.jpg 9
6/96.jpg 6
3/124.jpg 3
4/378.jpg 4
7/744.jpg 7
8/8.jpg 8
5/411.jpg 5
2/270.jpg 2
2/218.jpg 2
9/1019.jpg 9
6/420.jpg 6
8/536.jpg 8
7/282.jpg 7
5/778.jpg 5
2/254.jpg 2
5/942.jpg 5
1/210.jpg 1
1/202.jpg 1
3/344.jpg 3
0/346.jpg 0
2/224.jpg 2
8/160.jpg 8
1/257.jpg 1
6/587.jpg 6
7/15.jpg 7
8/660.jpg 8
8/230.jpg 8
1/327.jpg 1
5/686.jpg 5
1/311.jpg 1
8/330.jpg 8
7/212.jpg 7
9/203.jpg 9
0/437.jpg 0
1/103.jpg 1
1/394.jpg 1
6/461.jpg 6
2/236.jpg 2
3/448.jpg 3
6/292.jpg 6
6/688.jpg 6
6/57.jpg 6
3/322.jpg 3
2/87.jpg 2
9/844.jpg 9
3/123.jpg 3
1/249.jpg 1
1/121.jpg 1
2/512.jpg 2
7/555.jpg 7
9/1113.jpg 9
4/188.jpg 4
7/460.jpg 7
9/681.jpg 9
9/529.jpg 9
5/616.jpg 5
4/390.jpg 4
9/536.jpg 9
8/434.jpg 8
9/248.jpg 9
4/218.jpg 4
7/572.jpg 7
6/192.jpg 6
4/151.jpg 4
2/473.jpg 2
9/689.jpg 9
9/88.jpg 9
1/323.jpg 1
7/818.jpg 7
9/270.jpg 9
8/934.jpg 8
6/606.jpg 6
0/243.jpg 0
6/70.jpg 6
5/307.jpg 5
5/11.jpg 5
8/523.jpg 8
5/506.jpg 5
8/858.jpg 8
2/198.jpg 2
0/451.jpg 0
7/71.jpg 7
5/554.jpg 5
6/403.jpg 6
6/723.jpg 6
0/351.jpg 0
6/554.jpg 6
5/193.jpg 5
5/951.jpg 5
8/64.jpg 8
5/930.jpg 5
1/285.jpg 1
5/814.jpg 5
9/879.jpg 9
6/366.jpg 6
0/42.jpg 0
5/621.jpg 5
1/398.jpg 1
3/238.jpg 3
5/168.jpg 5
3/503.jpg 3
2/520.jpg 2
3/510.jpg 3
8/192.jpg 8
8/127.jpg 8
5/826.jpg 5
2/273.jpg 2
6/594.jpg 6
3/385.jpg 3
0/453.jpg 0
8/213.jpg 8
3/412.jpg 3
8/116.jpg 8
3/154.jpg 3
9/870.jpg 9
0/247.jpg 0
1/384.jpg 1
7/659.jpg 7
9/279.jpg 9
5/309.jpg 5
9/373.jpg 9
5/344.jpg 5
7/162.jpg 7
5/878.jpg 5
1/134.jpg 1
2/545.jpg 2
9/532.jpg 9
9/249.jpg 9
9/392.jpg 9
7/106.jpg 7
8/266.jpg 8
5/143.jpg 5
9/343.jpg 9
8/1150.jpg 8
5/125.jpg 5
8/670.jpg 8
8/485.jpg 8
2/529.jpg 2
5/629.jpg 5
8/285.jpg 8
5/597.jpg 5
5/785.jpg 5
5/828.jpg 5
3/347.jpg 3
9/734.jpg 9
6/10.jpg 6
8/952.jpg 8
4/280.jpg 4
8/1068.jpg 8
7/527.jpg 7
6/114.jpg 6
5/746.jpg 5
5/943.jpg 5
1/156.jpg 1
1/316.jpg 1
4/82.jpg 4
6/726.jpg 6
2/466.jpg 2
9/135.jpg 9
0/7.jpg 0
7/273.jpg 7
5/450.jpg 5
2/433.jpg 2
7/810.jpg 7
7/213.jpg 7
9/984.jpg 9
5/388.jpg 5
8/16.jpg 8
2/120.jpg 2
8/451.jpg 8
8/193.jpg 8
8/911.jpg 8
0/468.jpg 0
3/580.jpg 3
3/422.jpg 3
3/50.jpg 3
2/443.jpg 2
9/8.jpg 9
2/572.jpg 2
1/415.jpg 1
9/481.jpg 9
7/66.jpg 7
8/1083.jpg 8
8/300.jpg 8
4/1.jpg 4
9/748.jpg 9
9/434.jpg 9
1/58.jpg 1
0/331.jpg 0
4/242.jpg 4
5/392.jpg 5
8/1021.jpg 8
8/987.jpg 8
4/199.jpg 4
7/158.jpg 7
7/477.jpg 7
5/922.jpg 5
7/294.jpg 7
6/639.jpg 6
9/329.jpg 9
4/51.jpg 4
0/601.jpg 0
3/90.jpg 3
7/778.jpg 7
9/729.jpg 9
2/251.jpg 2
7/115.jpg 7
7/208.jpg 7
0/166.jpg 0
5/950.jpg 5
6/193.jpg 6
8/648.jpg 8
2/297.jpg 2
6/568.jpg 6
3/359.jpg 3
8/319.jpg 8
3/136.jpg 3
4/7.jpg 4
5/674.jpg 5
5/206.jpg 5
8/1035.jpg 8
8/186.jpg 8
2/279.jpg 2
0/47.jpg 0
2/30.jpg 2
5/670.jpg 5
2/115.jpg 2
7/518.jpg 7
2/37.jpg 2
9/750.jpg 9
9/756.jpg 9
7/182.jpg 7
0/473.jpg 0
9/252.jpg 9
7/372.jpg 7
9/744.jpg 9
6/640.jpg 6
5/709.jpg 5
6/507.jpg 6
8/65.jpg 8
9/322.jpg 9
1/41.jpg 1
4/36.jpg 4
6/137.jpg 6
7/179.jpg 7
8/651.jpg 8
3/17.jpg 3
3/192.jpg 3
2/160.jpg 2
0/114.jpg 0
6/571.jpg 6
3/255.jpg 3
6/219.jpg 6
4/318.jpg 4
1/276.jpg 1
7/537.jpg 7
5/761.jpg 5
5/481.jpg 5
0/548.jpg 0
3/153.jpg 3
2/435.jpg 2
2/586.jpg 2
9/1009.jpg 9
7/794.jpg 7
6/391.jpg 6
5/882.jpg 5
4/57.jpg 4
1/442.jpg 1
4/234.jpg 4
8/37.jpg 8
6/263.jpg 6
2/544.jpg 2
6/523.jpg 6
9/525.jpg 9
7/46.jpg 7
8/293.jpg 8
6/297.jpg 6
8/259.jpg 8
9/653.jpg 9
8/1047.jpg 8
3/566.jpg 3
5/476.jpg 5
7/674.jpg 7
3/548.jpg 3
5/558.jpg 5
8/1135.jpg 8
7/218.jpg 7
2/26.jpg 2
8/1003.jpg 8
5/52.jpg 5
0/373.jpg 0
2/275.jpg 2
3/1.jpg 3
4/326.jpg 4
7/33.jpg 7
1/188.jpg 1
8/409.jpg 8
0/197.jpg 0
7/392.jpg 7
2/528.jpg 2
8/598.jpg 8
1/452.jpg 1
9/397.jpg 9
2/93.jpg 2
1/284.jpg 1
2/319.jpg 2
8/884.jpg 8
5/904.jpg 5
3/555.jpg 3
6/11.jpg 6
8/687.jpg 8
2/570.jpg 2
8/802.jpg 8
0/393.jpg 0
8/971.jpg 8
4/8.jpg 4
7/121.jpg 7
8/30.jpg 8
2/334.jpg 2
5/928.jpg 5
7/643.jpg 7
3/44.jpg 3
0/597.jpg 0
8/1018.jpg 8
8/733.jpg 8
6/29.jpg 6
0/205.jpg 0
0/525.jpg 0
5/351.jpg 5
0/306.jpg 0
7/759.jpg 7
2/453.jpg 2
2/425.jpg 2
0/657.jpg 0
5/879.jpg 5
8/204.jpg 8
8/25.jpg 8
9/626.jpg 9
9/493.jpg 9
4/233.jpg 4
5/25.jpg 5
9/35.jpg 9
9/495.jpg 9
8/329.jpg 8
3/282.jpg 3
9/814.jpg 9
3/197.jpg 3
9/286.jpg 9
4/383.jpg 4
9/282.jpg 9
9/623.jpg 9
4/75.jpg 4
9/296.jpg 9
1/261.jpg 1
3/526.jpg 3
8/620.jpg 8
8/1094.jpg 8
6/484.jpg 6
4/347.jpg 4
7/596.jpg 7
1/212.jpg 1
9/837.jpg 9
8/954.jpg 8
4/185.jpg 4
9/599.jpg 9
5/298.jpg 5
8/28.jpg 8
6/331.jpg 6
9/820.jpg 9
6/444.jpg 6
7/580.jpg 7
1/126.jpg 1
0/287.jpg 0
9/327.jpg 9
7/241.jpg 7
2/424.jpg 2
9/1000.jpg 9
9/418.jpg 9
5/299.jpg 5
4/269.jpg 4
6/333.jpg 6
6/87.jpg 6
0/486.jpg 0
9/1097.jpg 9
1/277.jpg 1
0/460.jpg 0
2/478.jpg 2
5/198.jpg 5
0/494.jpg 0
0/320.jpg 0
3/61.jpg 3
3/409.jpg 3
9/363.jpg 9
7/229.jpg 7
5/282.jpg 5
6/655.jpg 6
6/224.jpg 6
3/321.jpg 3
2/233.jpg 2
6/129.jpg 6
2/503.jpg 2
6/194.jpg 6
5/694.jpg 5
9/1082.jpg 9
9/299.jpg 9
3/189.jpg 3
0/36.jpg 0
5/157.jpg 5
1/288.jpg 1
6/675.jpg 6
5/172.jpg 5
2/351.jpg 2
1/80.jpg 1
9/612.jpg 9
5/92.jpg 5
7/302.jpg 7
8/554.jpg 8
9/419.jpg 9
5/553.jpg 5
5/768.jpg 5
7/631.jpg 7
5/436.jpg 5
4/110.jpg 4
9/966.jpg 9
5/192.jpg 5
4/380.jpg 4
9/17.jpg 9
6/23.jpg 6
5/711.jpg 5
1/262.jpg 1
1/385.jpg 1
1/309.jpg 1
2/508.jpg 2
1/177.jpg 1
4/243.jpg 4
8/973.jpg 8
8/555.jpg 8
7/305.jpg 7
9/72.jpg 9
7/657.jpg 7
7/333.jpg 7
1/295.jpg 1
9/291.jpg 9
7/98.jpg 7
3/578.jpg 3
5/512.jpg 5
8/953.jpg 8
0/629.jpg 0
8/1058.jpg 8
7/388.jpg 7
5/582.jpg 5
7/590.jpg 7
7/772.jpg 7
4/92.jpg 4
3/577.jpg 3
5/717.jpg 5
2/176.jpg 2
7/498.jpg 7
9/111.jpg 9
9/91.jpg 9
0/241.jpg 0
8/880.jpg 8
7/755.jpg 7
7/441.jpg 7
0/655.jpg 0
0/206.jpg 0
0/474.jpg 0
5/747.jpg 5
6/230.jpg 6
5/547.jpg 5
5/958.jpg 5
2/367.jpg 2
2/436.jpg 2
6/104.jpg 6
6/614.jpg 6
8/1006.jpg 8
8/252.jpg 8
6/13.jpg 6
6/35.jpg 6
9/344.jpg 9
6/597.jpg 6
9/978.jpg 9
4/181.jpg 4
4/166.jpg 4
6/276.jpg 6
4/184.jpg 4
8/102.jpg 8
7/262.jpg 7
7/151.jpg 7
0/686.jpg 0
3/499.jpg 3
8/471.jpg 8
5/415.jpg 5
6/510.jpg 6
9/255.jpg 9
4/275.jpg 4
6/475.jpg 6
9/514.jpg 9
5/594.jpg 5
3/95.jpg 3
9/1130.jpg 9
1/211.jpg 1
5/773.jpg 5
3/553.jpg 3
6/286.jpg 6
7/751.jpg 7
4/2.jpg 4
7/438.jpg 7
3/6.jpg 3
9/82.jpg 9
2/328.jpg 2
8/701.jpg 8
3/495.jpg 3
6/88.jpg 6
1/340.jpg 1
2/294.jpg 2
1/270.jpg 1
3/300.jpg 3
9/1081.jpg 9
0/261.jpg 0
0/407.jpg 0
3/418.jpg 3
9/1083.jpg 9
9/959.jpg 9
9/469.jpg 9
6/372.jpg 6
5/592.jpg 5
6/489.jpg 6
7/309.jpg 7
9/340.jpg 9
7/59.jpg 7
9/1090.jpg 9
6/195.jpg 6
9/190.jpg 9
7/201.jpg 7
9/764.jpg 9
0/131.jpg 0
6/712.jpg 6
2/398.jpg 2
0/254.jpg 0
4/44.jpg 4
5/285.jpg 5
8/291.jpg 8
1/239.jpg 1
5/61.jpg 5
2/574.jpg 2
3/14.jpg 3
9/5.jpg 9
4/123.jpg 4
1/304.jpg 1
1/342.jpg 1
2/13.jpg 2
2/585.jpg 2
3/270.jpg 3
5/906.jpg 5
1/411.jpg 1
2/495.jpg 2
1/298.jpg 1
5/727.jpg 5
6/357.jpg 6
9/388.jpg 9
5/432.jpg 5
9/625.jpg 9
6/375.jpg 6
3/135.jpg 3
8/590.jpg 8
0/352.jpg 0
1/213.jpg 1
8/1059.jpg 8
3/261.jpg 3
1/11.jpg 1
6/205.jpg 6
8/602.jpg 8
8/1049.jpg 8
9/860.jpg 9
9/856.jpg 9
9/161.jpg 9
6/105.jpg 6
7/285.jpg 7
0/222.jpg 0
6/509.jpg 6
8/365.jpg 8
2/29.jpg 2
6/237.jpg 6
5/405.jpg 5
7/465.jpg 7
8/546.jpg 8
3/374.jpg 3
9/335.jpg 9
6/544.jpg 6
9/1116.jpg 9
6/629.jpg 6
8/715.jpg 8
9/767.jpg 9
9/284.jpg 9
4/149.jpg 4
5/816.jpg 5
0/360.jpg 0
7/819.jpg 7
8/196.jpg 8
5/912.jpg 5
2/590.jpg 2
9/1018.jpg 9
9/970.jpg 9
4/47.jpg 4
0/196.jpg 0
9/146.jpg 9
5/591.jpg 5
7/526.jpg 7
1/508.jpg 1
7/188.jpg 7
0/236.jpg 0
9/561.jpg 9
3/166.jpg 3
8/813.jpg 8
8/975.jpg 8
8/421.jpg 8
2/482.jpg 2
0/522.jpg 0
9/207.jpg 9
0/132.jpg 0
3/284.jpg 3
9/128.jpg 9
0/652.jpg 0
8/225.jpg 8
9/289.jpg 9
5/124.jpg 5
7/222.jpg 7
5/387.jpg 5
7/385.jpg 7
8/109.jpg 8
5/8.jpg 5
5/792.jpg 5
8/386.jpg 8
6/442.jpg 6
8/821.jpg 8
8/323.jpg 8
1/229.jpg 1
2/354.jpg 2
8/843.jpg 8
9/137.jpg 9
5/393.jpg 5
1/333.jpg 1
5/314.jpg 5
1/352.jpg 1
5/682.jpg 5
7/251.jpg 7
7/472.jpg 7
3/181.jpg 3
0/322.jpg 0
9/1046.jpg 9
4/339.jpg 4
6/752.jpg 6
8/805.jpg 8
4/6.jpg 4
8/445.jpg 8
7/41.jpg 7
0/84.jpg 0
1/235.jpg 1
8/59.jpg 8
7/423.jpg 7
2/204.jpg 2
1/82.jpg 1
8/949.jpg 8
2/235.jpg 2
0/39.jpg 0
9/120.jpg 9
0/279.jpg 0
5/119.jpg 5
5/131.jpg 5
0/183.jpg 0
3/57.jpg 3
4/131.jpg 4
0/79.jpg 0
3/574.jpg 3
9/903.jpg 9
9/886.jpg 9
8/368.jpg 8
9/776.jpg 9
9/684.jpg 9
3/175.jpg 3
2/377.jpg 2
1/497.jpg 1
5/167.jpg 5
5/283.jpg 5
6/570.jpg 6
8/54.jpg 8
2/554.jpg 2
5/919.jpg 5
6/406.jpg 6
1/312.jpg 1
2/327.jpg 2
2/384.jpg 2
6/616.jpg 6
3/462.jpg 3
9/198.jpg 9
0/390.jpg 0
6/585.jpg 6
5/45.jpg 5
8/431.jpg 8
5/602.jpg 5
6/730.jpg 6
8/486.jpg 8
8/235.jpg 8
5/386.jpg 5
7/711.jpg 7
8/503.jpg 8
7/693.jpg 7
2/199.jpg 2
4/158.jpg 4
4/356.jpg 4
3/402.jpg 3
2/291.jpg 2
1/147.jpg 1
9/465.jpg 9
2/2.jpg 2
9/522.jpg 9
6/43.jpg 6
9/300.jpg 9
3/172.jpg 3
1/484.jpg 1
2/149.jpg 2
0/672.jpg 0
9/390.jpg 9
3/46.jpg 3
8/768.jpg 8
0/495.jpg 0
1/479.jpg 1
8/673.jpg 8
6/463.jpg 6
5/707.jpg 5
0/568.jpg 0
9/136.jpg 9
1/466.jpg 1
6/32.jpg 6
8/613.jpg 8
3/253.jpg 3
6/244.jpg 6
8/337.jpg 8
8/492.jpg 8
9/464.jpg 9
7/347.jpg 7
2/228.jpg 2
9/124.jpg 9
6/581.jpg 6
8/946.jpg 8
2/588.jpg 2
5/273.jpg 5
9/1038.jpg 9
8/996.jpg 8
8/75.jpg 8
9/972.jpg 9
3/298.jpg 3
5/872.jpg 5
9/14.jpg 9
5/48.jpg 5
3/528.jpg 3
3/13.jpg 3
2/161.jpg 2
6/562.jpg 6
7/483.jpg 7
5/408.jpg 5
6/702.jpg 6
7/220.jpg 7
9/887.jpg 9
5/721.jpg 5
8/1020.jpg 8
9/774.jpg 9
9/131.jpg 9
2/565.jpg 2
7/439.jpg 7
8/818.jpg 8
6/98.jpg 6
6/344.jpg 6
2/97.jpg 2
7/325.jpg 7
4/12.jpg 4
1/36.jpg 1
9/288.jpg 9
8/119.jpg 8
7/743.jpg 7
8/288.jpg 8
9/90.jpg 9
8/830.jpg 8
7/270.jpg 7
6/164.jpg 6
8/254.jpg 8
1/223.jpg 1
9/292.jpg 9
7/236.jpg 7
2/474.jpg 2
9/956.jpg 9
7/156.jpg 7
6/280.jpg 6
2/515.jpg 2
0/354.jpg 0
5/332.jpg 5
6/18.jpg 6
2/157.jpg 2
5/354.jpg 5
9/498.jpg 9
9/651.jpg 9
9/913.jpg 9
0/445.jpg 0
8/187.jpg 8
0/381.jpg 0
5/724.jpg 5
7/3.jpg 7
5/689.jpg 5
4/205.jpg 4
9/732.jpg 9
8/55.jpg 8
8/691.jpg 8
6/126.jpg 6
6/699.jpg 6
9/1007.jpg 9
0/298.jpg 0
9/278.jpg 9
5/430.jpg 5
1/62.jpg 1
5/196.jpg 5
5/562.jpg 5
5/699.jpg 5
0/165.jpg 0
4/20.jpg 4
5/232.jpg 5
8/178.jpg 8
6/454.jpg 6
5/829.jpg 5
9/816.jpg 9
9/368.jpg 9
5/286.jpg 5
1/427.jpg 1
7/99.jpg 7
9/351.jpg 9
8/387.jpg 8
6/250.jpg 6
7/292.jpg 7
9/703.jpg 9
6/107.jpg 6
8/115.jpg 8
7/647.jpg 7
2/108.jpg 2
9/448.jpg 9
8/645.jpg 8
2/411.jpg 2
6/94.jpg 6
8/628.jpg 8
9/338.jpg 9
9/567.jpg 9
5/257.jpg 5
9/1098.jpg 9
4/67.jpg 4
1/208.jpg 1
6/409.jpg 6
6/78.jpg 6
2/121.jpg 2
5/59.jpg 5
6/567.jpg 6
8/703.jpg 8
9/691.jpg 9
8/425.jpg 8
9/826.jpg 9
8/942.jpg 8
8/140.jpg 8
8/766.jpg 8
2/105.jpg 2
1/67.jpg 1
0/447.jpg 0
8/744.jpg 8
5/533.jpg 5
0/143.jpg 0
1/470.jpg 1
8/692.jpg 8
7/446.jpg 7
0/544.jpg 0
7/435.jpg 7
5/891.jpg 5
1/148.jpg 1
0/695.jpg 0
0/693.jpg 0
0/508.jpg 0
7/503.jpg 7
6/559.jpg 6
7/410.jpg 7
3/31.jpg 3
5/661.jpg 5
0/157.jpg 0
8/150.jpg 8
6/465.jpg 6
7/235.jpg 7
0/207.jpg 0
3/301.jpg 3
6/694.jpg 6
1/322.jpg 1
3/195.jpg 3
1/109.jpg 1
6/531.jpg 6
5/10.jpg 5
5/673.jpg 5
1/166.jpg 1
6/265.jpg 6
0/415.jpg 0
8/1147.jpg 8
2/535.jpg 2
9/737.jpg 9
4/52.jpg 4
3/122.jpg 3
9/1159.jpg 9
4/223.jpg 4
0/179.jpg 0
8/634.jpg 8
0/348.jpg 0
4/232.jpg 4
5/277.jpg 5
6/128.jpg 6
5/27.jpg 5
0/11.jpg 0
9/975.jpg 9
2/332.jpg 2
8/226.jpg 8
1/71.jpg 1
8/270.jpg 8
0/679.jpg 0
8/222.jpg 8
6/512.jpg 6
6/335.jpg 6
8/917.jpg 8
4/73.jpg 4
2/220.jpg 2
6/382.jpg 6
1/422.jpg 1
7/679.jpg 7
7/666.jpg 7
1/395.jpg 1
1/468.jpg 1
9/308.jpg 9
1/159.jpg 1
9/875.jpg 9
5/473.jpg 5
5/472.jpg 5
8/961.jpg 8
8/339.jpg 8
4/10.jpg 4
6/56.jpg 6
3/248.jpg 3
7/132.jpg 7
9/406.jpg 9
9/523.jpg 9
3/480.jpg 3
7/11.jpg 7
6/59.jpg 6
8/264.jpg 8
9/1142.jpg 9
9/962.jpg 9
2/597.jpg 2
3/39.jpg 3
7/619.jpg 7
8/521.jpg 8
9/867.jpg 9
6/295.jpg 6
7/457.jpg 7
1/488.jpg 1
9/1093.jpg 9
6/721.jpg 6
5/478.jpg 5
1/412.jpg 1
8/519.jpg 8
7/37.jpg 7
7/757.jpg 7
5/174.jpg 5
5/359.jpg 5
9/904.jpg 9
9/496.jpg 9
6/83.jpg 6
8/205.jpg 8
8/638.jpg 8
7/521.jpg 7
9/960.jpg 9
5/177.jpg 5
4/262.jpg 4
2/99.jpg 2
5/708.jpg 5
6/553.jpg 6
5/215.jpg 5
8/808.jpg 8
7/429.jpg 7
9/96.jpg 9
7/501.jpg 7
8/544.jpg 8
2/584.jpg 2
1/123.jpg 1
0/480.jpg 0
9/60.jpg 9
1/25.jpg 1
7/612.jpg 7
2/321.jpg 2
9/130.jpg 9
1/26.jpg 1
0/565.jpg 0
8/350.jpg 8
3/129.jpg 3
7/428.jpg 7
4/372.jpg 4
8/153.jpg 8
8/180.jpg 8
7/12.jpg 7
4/294.jpg 4
7/242.jpg 7
2/305.jpg 2
0/49.jpg 0
0/151.jpg 0
7/293.jpg 7
8/867.jpg 8
0/668.jpg 0
0/81.jpg 0
2/142.jpg 2
6/511.jpg 6
3/121.jpg 3
8/601.jpg 8
8/543.jpg 8
3/358.jpg 3
6/71.jpg 6
8/741.jpg 8
4/197.jpg 4
0/666.jpg 0
7/690.jpg 7
3/331.jpg 3
8/212.jpg 8
7/178.jpg 7
2/434.jpg 2
7/321.jpg 7
9/909.jpg 9
5/414.jpg 5
7/613.jpg 7
5/348.jpg 5
2/201.jpg 2
2/207.jpg 2
2/173.jpg 2
9/704.jpg 9
6/108.jpg 6
1/338.jpg 1
0/138.jpg 0
3/483.jpg 3
3/439.jpg 3
5/897.jpg 5
8/311.jpg 8
0/334.jpg 0
6/363.jpg 6
6/330.jpg 6
7/384.jpg 7
4/358.jpg 4
9/708.jpg 9
6/441.jpg 6
4/193.jpg 4
0/3.jpg 0
5/764.jpg 5
0/598.jpg 0
8/1048.jpg 8
3/41.jpg 3
7/641.jpg 7
3/583.jpg 3
7/525.jpg 7
0/574.jpg 0
4/108.jpg 4
5/917.jpg 5
8/640.jpg 8
5/803.jpg 5
6/504.jpg 6
9/490.jpg 9
9/33.jpg 9
8/1034.jpg 8
1/28.jpg 1
8/641.jpg 8
6/631.jpg 6
5/877.jpg 5
9/771.jpg 9
5/105.jpg 5
9/766.jpg 9
0/634.jpg 0
5/607.jpg 5
6/601.jpg 6
2/47.jpg 2
8/181.jpg 8
8/773.jpg 8
9/922.jpg 9
7/452.jpg 7
5/851.jpg 5
9/780.jpg 9
8/103.jpg 8
9/432.jpg 9
1/454.jpg 1
3/330.jpg 3
5/294.jpg 5
7/144.jpg 7
8/604.jpg 8
0/714.jpg 0
8/806.jpg 8
2/34.jpg 2
9/1001.jpg 9
2/232.jpg 2
9/311.jpg 9
8/531.jpg 8
0/595.jpg 0
4/227.jpg 4
0/193.jpg 0
1/355.jpg 1
2/536.jpg 2
5/581.jpg 5
6/654.jpg 6
9/247.jpg 9
2/392.jpg 2
4/183.jpg 4
7/653.jpg 7
1/14.jpg 1
1/344.jpg 1
5/544.jpg 5
8/815.jpg 8
5/735.jpg 5
6/539.jpg 6
3/575.jpg 3
9/916.jpg 9
1/376.jpg 1
8/210.jpg 8
3/246.jpg 3
7/141.jpg 7
1/441.jpg 1
3/306.jpg 3
8/595.jpg 8
6/693.jpg 6
8/1071.jpg 8
8/139.jpg 8
1/171.jpg 1
1/73.jpg 1
5/454.jpg 5
9/219.jpg 9
8/694.jpg 8
1/204.jpg 1
6/176.jpg 6
6/620.jpg 6
5/836.jpg 5
4/312.jpg 4
8/864.jpg 8
9/543.jpg 9
8/854.jpg 8
3/315.jpg 3
7/793.jpg 7
9/187.jpg 9
9/156.jpg 9
7/175.jpg 7
7/630.jpg 7
7/143.jpg 7
9/706.jpg 9
1/514.jpg 1
9/991.jpg 9
0/297.jpg 0
9/1128.jpg 9
2/454.jpg 2
6/462.jpg 6
8/932.jpg 8
3/541.jpg 3
9/438.jpg 9
5/749.jpg 5
3/133.jpg 3
1/447.jpg 1
4/308.jpg 4
5/364.jpg 5
3/461.jpg 3
8/714.jpg 8
8/208.jpg 8
5/572.jpg 5
1/401.jpg 1
0/710.jpg 0
6/233.jpg 6
6/222.jpg 6
0/623.jpg 0
9/981.jpg 9
8/78.jpg 8
3/224.jpg 3
6/728.jpg 6
9/474.jpg 9
6/437.jpg 6
7/706.jpg 7
5/952.jpg 5
5/811.jpg 5
3/296.jpg 3
6/624.jpg 6
2/153.jpg 2
0/71.jpg 0
6/717.jpg 6
1/274.jpg 1
0/257.jpg 0
0/526.jpg 0
8/561.jpg 8
0/449.jpg 0
3/334.jpg 3
7/474.jpg 7
6/180.jpg 6
7/604.jpg 7
3/194.jpg 3
9/112.jpg 9
3/434.jpg 3
8/698.jpg 8
5/35.jpg 5
5/866.jpg 5
7/103.jpg 7
8/839.jpg 8
2/349.jpg 2
6/686.jpg 6
1/332.jpg 1
8/820.jpg 8
9/492.jpg 9
7/491.jpg 7
2/1.jpg 2
0/697.jpg 0
5/598.jpg 5
7/661.jpg 7
4/200.jpg 4
7/93.jpg 7
5/475.jpg 5
7/697.jpg 7
9/115.jpg 9
9/572.jpg 9
4/270.jpg 4
1/129.jpg 1
4/100.jpg 4
2/73.jpg 2
4/160.jpg 4
0/631.jpg 0
9/892.jpg 9
8/100.jpg 8
5/69.jpg 5
3/516.jpg 3
0/326.jpg 0
3/539.jpg 3
5/407.jpg 5
2/90.jpg 2
2/564.jpg 2
1/290.jpg 1
7/75.jpg 7
7/717.jpg 7
7/192.jpg 7
5/848.jpg 5
9/201.jpg 9
8/708.jpg 8
0/613.jpg 0
8/101.jpg 8
8/835.jpg 8
3/338.jpg 3
7/783.jpg 7
8/951.jpg 8
8/1076.jpg 8
5/93.jpg 5
9/273.jpg 9
2/449.jpg 2
9/648.jpg 9
6/134.jpg 6
5/522.jpg 5
8/896.jpg 8
6/644.jpg 6
7/821.jpg 7
8/963.jpg 8
1/451.jpg 1
5/310.jpg 5
3/97.jpg 3
5/361.jpg 5
8/1079.jpg 8
5/583.jpg 5
3/456.jpg 3
8/1133.jpg 8
7/475.jpg 7
9/768.jpg 9
0/289.jpg 0
3/535.jpg 3
8/243.jpg 8
4/288.jpg 4
7/808.jpg 7
7/509.jpg 7
7/63.jpg 7
3/318.jpg 3
9/604.jpg 9
3/442.jpg 3
8/142.jpg 8
8/903.jpg 8
1/237.jpg 1
7/508.jpg 7
9/508.jpg 9
2/514.jpg 2
2/539.jpg 2
6/185.jpg 6
5/543.jpg 5
8/136.jpg 8
8/518.jpg 8
7/289.jpg 7
8/129.jpg 8
1/328.jpg 1
9/614.jpg 9
3/79.jpg 3
3/199.jpg 3
7/28.jpg 7
4/256.jpg 4
9/442.jpg 9
9/383.jpg 9
9/601.jpg 9
9/330.jpg 9
0/23.jpg 0
5/914.jpg 5
9/160.jpg 9
2/284.jpg 2
0/155.jpg 0
7/703.jpg 7
0/152.jpg 0
3/293.jpg 3
9/1080.jpg 9
8/108.jpg 8
2/183.jpg 2
6/541.jpg 6
2/298.jpg 2
8/283.jpg 8
6/84.jpg 6
0/238.jpg 0
8/1131.jpg 8
9/1122.jpg 9
7/478.jpg 7
7/197.jpg 7
6/1.jpg 6
6/733.jpg 6
9/186.jpg 9
6/401.jpg 6
9/143.jpg 9
9/971.jpg 9
0/550.jpg 0
7/417.jpg 7
5/715.jpg 5
5/127.jpg 5
5/339.jpg 5
1/358.jpg 1
0/647.jpg 0
0/13.jpg 0
9/928.jpg 9
2/385.jpg 2
8/474.jpg 8
1/339.jpg 1
4/103.jpg 4
7/177.jpg 7
8/203.jpg 8
1/435.jpg 1
4/77.jpg 4
0/111.jpg 0
8/549.jpg 8
9/271.jpg 9
3/428.jpg 3
8/172.jpg 8
3/531.jpg 3
4/298.jpg 4
1/430.jpg 1
5/865.jpg 5
4/102.jpg 4
2/506.jpg 2
7/119.jpg 7
7/365.jpg 7
3/221.jpg 3
0/41.jpg 0
9/977.jpg 9
7/642.jpg 7
6/186.jpg 6
0/345.jpg 0
9/1028.jpg 9
8/1046.jpg 8
8/194.jpg 8
7/455.jpg 7
5/233.jpg 5
6/422.jpg 6
6/563.jpg 6
8/545.jpg 8
5/628.jpg 5
8/190.jpg 8
8/702.jpg 8
8/143.jpg 8
6/425.jpg 6
7/726.jpg 7
9/318.jpg 9
8/296.jpg 8
2/66.jpg 2
6/692.jpg 6
9/1015.jpg 9
8/525.jpg 8
2/513.jpg 2
7/164.jpg 7
7/47.jpg 7
4/276.jpg 4
3/59.jpg 3
5/200.jpg 5
0/242.jpg 0
2/278.jpg 2
1/388.jpg 1
9/359.jpg 9
2/223.jpg 2
9/121.jpg 9
7/231.jpg 7
6/9.jpg 6
6/360.jpg 6
9/662.jpg 9
4/335.jpg 4
6/569.jpg 6
6/667.jpg 6
1/21.jpg 1
7/54.jpg 7
0/441.jpg 0
4/113.jpg 4
8/263.jpg 8
2/146.jpg 2
3/460.jpg 3
8/346.jpg 8
9/715.jpg 9
3/93.jpg 3
5/953.jpg 5
4/48.jpg 4
6/311.jpg 6
5/725.jpg 5
9/535.jpg 9
7/512.jpg 7
9/416.jpg 9
8/468.jpg 8
5/926.jpg 5
9/61.jpg 9
0/587.jpg 0
9/782.jpg 9
5/288.jpg 5
1/248.jpg 1
9/79.jpg 9
1/282.jpg 1
7/38.jpg 7
7/279.jpg 7
9/1011.jpg 9
0/186.jpg 0
7/769.jpg 7
8/156.jpg 8
5/885.jpg 5
2/441.jpg 2
7/18.jpg 7
1/293.jpg 1
6/592.jpg 6
5/249.jpg 5
9/303.jpg 9
2/497.jpg 2
3/433.jpg 3
2/566.jpg 2
0/65.jpg 0
3/285.jpg 3
4/153.jpg 4
7/771.jpg 7
6/174.jpg 6
9/1120.jpg 9
2/74.jpg 2
4/224.jpg 4
6/103.jpg 6
9/574.jpg 9
7/554.jpg 7
1/194.jpg 1
5/905.jpg 5
8/762.jpg 8
2/494.jpg 2
9/794.jpg 9
9/21.jpg 9
7/330.jpg 7
7/705.jpg 7
2/162.jpg 2
3/514.jpg 3
8/878.jpg 8
1/450.jpg 1
7/76.jpg 7
1/371.jpg 1
6/695.jpg 6
7/691.jpg 7
8/699.jpg 8
9/405.jpg 9
7/114.jpg 7
6/590.jpg 6
7/592.jpg 7
6/355.jpg 6
0/280.jpg 0
0/576.jpg 0
1/494.jpg 1
2/559.jpg 2
1/74.jpg 1
6/274.jpg 6
2/259.jpg 2
0/557.jpg 0
9/257.jpg 9
9/534.jpg 9
7/672.jpg 7
9/436.jpg 9
8/1029.jpg 8
0/201.jpg 0
5/434.jpg 5
5/73.jpg 5
6/659.jpg 6
8/51.jpg 8
8/984.jpg 8
5/322.jpg 5
1/206.jpg 1
0/643.jpg 0
4/95.jpg 4
0/497.jpg 0
9/410.jpg 9
9/865.jpg 9
8/1134.jpg 8
5/480.jpg 5
1/472.jpg 1
9/783.jpg 9
2/599.jpg 2
0/316.jpg 0
1/504.jpg 1
8/367.jpg 8
5/357.jpg 5
0/356.jpg 0
0/469.jpg 0
8/965.jpg 8
9/84.jpg 9
0/704.jpg 0
7/599.jpg 7
4/105.jpg 4
2/548.jpg 2
7/277.jpg 7
6/123.jpg 6
9/182.jpg 9
9/558.jpg 9
2/405.jpg 2
2/67.jpg 2
8/1050.jpg 8
7/544.jpg 7
5/0.jpg 5
9/784.jpg 9
1/99.jpg 1
3/579.jpg 3
1/251.jpg 1
1/242.jpg 1
5/585.jpg 5
0/230.jpg 0
7/402.jpg 7
5/858.jpg 5
0/200.jpg 0
0/103.jpg 0
6/22.jpg 6
4/246.jpg 4
6/609.jpg 6
0/338.jpg 0
5/569.jpg 5
4/355.jpg 4
9/504.jpg 9
0/444.jpg 0
3/272.jpg 3
7/497.jpg 7
3/363.jpg 3
7/649.jpg 7
5/259.jpg 5
6/136.jpg 6
4/387.jpg 4
8/1093.jpg 8
5/545.jpg 5
8/111.jpg 8
5/179.jpg 5
5/831.jpg 5
5/468.jpg 5
8/856.jpg 8
8/347.jpg 8
9/244.jpg 9
0/640.jpg 0
5/722.jpg 5
7/582.jpg 7
3/92.jpg 3
2/479.jpg 2
2/56.jpg 2
7/128.jpg 7
4/182.jpg 4
0/616.jpg 0
3/397.jpg 3
2/317.jpg 2
2/343.jpg 2
7/522.jpg 7
2/14.jpg 2
4/206.jpg 4
1/56.jpg 1
3/404.jpg 3
3/445.jpg 3
6/255.jpg 6
2/143.jpg 2
1/131.jpg 1
6/213.jpg 6
4/106.jpg 4
9/52.jpg 9
5/742.jpg 5
4/177.jpg 4
5/546.jpg 5
8/1102.jpg 8
9/309.jpg 9
8/980.jpg 8
8/718.jpg 8
6/152.jpg 6
1/220.jpg 1
4/391.jpg 4
6/80.jpg 6
8/106.jpg 8
9/333.jpg 9
2/509.jpg 2
3/490.jpg 3
1/180.jpg 1
6/160.jpg 6
0/19.jpg 0
5/887.jpg 5
1/269.jpg 1
2/159.jpg 2
7/801.jpg 7
3/564.jpg 3
7/79.jpg 7
3/87.jpg 3
5/406.jpg 5
9/1037.jpg 9
9/1110.jpg 9
6/387.jpg 6
1/465.jpg 1
9/1031.jpg 9
2/110.jpg 2
7/720.jpg 7
6/308.jpg 6
9/78.jpg 9
8/1137.jpg 8
5/492.jpg 5
8/218.jpg 8
7/594.jpg 7
7/129.jpg 7
6/473.jpg 6
7/117.jpg 7
8/677.jpg 8
7/322.jpg 7
3/366.jpg 3
0/417.jpg 0
9/393.jpg 9
9/1051.jpg 9
1/15.jpg 1
5/560.jpg 5
2/118.jpg 2
7/728.jpg 7
3/365.jpg 3
9/1040.jpg 9
8/327.jpg 8
3/75.jpg 3
6/645.jpg 6
3/22.jpg 3
1/373.jpg 1
8/550.jpg 8
4/147.jpg 4
1/367.jpg 1
8/465.jpg 8
8/664.jpg 8
0/293.jpg 0
8/158.jpg 8
7/398.jpg 7
2/226.jpg 2
8/824.jpg 8
8/13.jpg 8
2/81.jpg 2
1/113.jpg 1
5/465.jpg 5
5/347.jpg 5
8/964.jpg 8
8/135.jpg 8
8/1141.jpg 8
5/372.jpg 5
8/799.jpg 8
0/462.jpg 0
5/632.jpg 5
5/264.jpg 5
8/833.jpg 8
8/164.jpg 8
6/290.jpg 6
1/84.jpg 1
8/1017.jpg 8
1/221.jpg 1
7/774.jpg 7
9/893.jpg 9
4/26.jpg 4
0/259.jpg 0
9/992.jpg 9
9/0.jpg 9
7/485.jpg 7
9/593.jpg 9
8/1114.jpg 8
5/181.jpg 5
5/860.jpg 5
3/327.jpg 3
1/12.jpg 1
6/266.jpg 6
4/124.jpg 4
6/481.jpg 6
7/116.jpg 7
1/307.jpg 1
9/339.jpg 9
0/530.jpg 0
7/233.jpg 7
8/599.jpg 8
4/261.jpg 4
7/713.jpg 7
6/474.jpg 6
1/234.jpg 1
5/149.jpg 5
7/628.jpg 7
7/595.jpg 7
5/429.jpg 5
1/30.jpg 1
3/271.jpg 3
0/440.jpg 0
4/115.jpg 4
7/65.jpg 7
9/379.jpg 9
8/381.jpg 8
7/0.jpg 7
1/487.jpg 1
8/904.jpg 8
5/529.jpg 5
1/301.jpg 1
8/596.jpg 8
3/487.jpg 3
5/328.jpg 5
9/295.jpg 9
6/697.jpg 6
6/411.jpg 6
8/345.jpg 8
1/20.jpg 1
5/658.jpg 5
5/202.jpg 5
8/349.jpg 8
8/752.jpg 8
0/658.jpg 0
7/640.jpg 7
2/340.jpg 2
0/311.jpg 0
9/478.jpg 9
9/723.jpg 9
5/216.jpg 5
8/940.jpg 8
9/967.jpg 9
8/948.jpg 8
6/97.jpg 6
5/452.jpg 5
7/777.jpg 7
0/62.jpg 0
2/249.jpg 2
4/271.jpg 4
2/61.jpg 2
5/903.jpg 5
6/110.jpg 6
7/481.jpg 7
3/552.jpg 3
7/111.jpg 7
9/1050.jpg 9
3/426.jpg 3
4/375.jpg 4
7/2.jpg 7
0/192.jpg 0
1/324.jpg 1
3/274.jpg 3
0/559.jpg 0
8/493.jpg 8
0/515.jpg 0
8/1136.jpg 8
3/372.jpg 3
9/157.jpg 9
8/79.jpg 8
4/287.jpg 4
1/164.jpg 1
1/51.jpg 1
1/167.jpg 1
6/641.jpg 6
5/210.jpg 5
3/243.jpg 3
4/37.jpg 4
8/627.jpg 8
8/268.jpg 8
3/111.jpg 3
7/159.jpg 7
9/578.jpg 9
8/351.jpg 8
3/352.jpg 3
9/728.jpg 9
0/414.jpg 0
7/414.jpg 7
6/582.jpg 6
3/573.jpg 3
9/519.jpg 9
8/654.jpg 8
0/126.jpg 0
9/402.jpg 9
4/237.jpg 4
8/528.jpg 8
5/267.jpg 5
5/700.jpg 5
8/122.jpg 8
0/93.jpg 0
7/20.jpg 7
8/399.jpg 8
1/503.jpg 1
8/626.jpg 8
6/533.jpg 6
6/171.jpg 6
2/192.jpg 2
9/831.jpg 9
5/890.jpg 5
7/700.jpg 7
2/215.jpg 2
9/242.jpg 9
2/577.jpg 2
2/134.jpg 2
5/400.jpg 5
6/234.jpg 6
9/1161.jpg 9
9/796.jpg 9
1/359.jpg 1
0/573.jpg 0
0/122.jpg 0
9/994.jpg 9
1/449.jpg 1
6/583.jpg 6
9/730.jpg 9
9/501.jpg 9
1/475.jpg 1
0/519.jpg 0
0/290.jpg 0
8/919.jpg 8
6/86.jpg 6
2/190.jpg 2
2/167.jpg 2
0/1.jpg 0
6/483.jpg 6
9/1054.jpg 9
3/157.jpg 3
5/89.jpg 5
9/69.jpg 9
4/219.jpg 4
3/60.jpg 3
2/77.jpg 2
5/358.jpg 5
9/873.jpg 9
2/103.jpg 2
8/487.jpg 8
4/165.jpg 4
9/472.jpg 9
9/954.jpg 9
1/386.jpg 1
6/419.jpg 6
2/459.jpg 2
9/906.jpg 9
4/257.jpg 4
3/289.jpg 3
8/657.jpg 8
0/323.jpg 0
9/749.jpg 9
9/433.jpg 9
5/824.jpg 5
5/497.jpg 5
1/247.jpg 1
8/209.jpg 8
5/894.jpg 5
1/181.jpg 1
8/32.jpg 8
9/607.jpg 9
6/663.jpg 6
0/520.jpg 0
8/404.jpg 8
0/347.jpg 0
8/591.jpg 8
0/167.jpg 0
0/569.jpg 0
0/404.jpg 0
9/3.jpg 9
0/115.jpg 0
0/699.jpg 0
6/287.jpg 6
5/646.jpg 5
5/207.jpg 5
6/162.jpg 6
0/101.jpg 0
9/116.jpg 9
5/606.jpg 5
9/544.jpg 9
6/0.jpg 6
5/825.jpg 5
1/387.jpg 1
4/186.jpg 4
5/614.jpg 5
8/393.jpg 8
6/305.jpg 6
8/1140.jpg 8
4/69.jpg 4
4/341.jpg 4
8/298.jpg 8
3/152.jpg 3
7/42.jpg 7
1/243.jpg 1
9/985.jpg 9
0/689.jpg 0
2/341.jpg 2
9/461.jpg 9
5/790.jpg 5
8/151.jpg 8
7/433.jpg 7
3/66.jpg 3
4/392.jpg 4
6/612.jpg 6
3/522.jpg 3
9/1125.jpg 9
7/249.jpg 7
4/289.jpg 4
3/542.jpg 3
5/691.jpg 5
6/175.jpg 6
8/872.jpg 8
3/105.jpg 3
8/242.jpg 8
6/613.jpg 6
5/805.jpg 5
5/413.jpg 5
3/304.jpg 3
8/412.jpg 8
2/379.jpg 2
8/1001.jpg 8
3/278.jpg 3
1/110.jpg 1
4/54.jpg 4
8/892.jpg 8
0/618.jpg 0
7/577.jpg 7
8/84.jpg 8
9/824.jpg 9
0/60.jpg 0
8/334.jpg 8
1/420.jpg 1
9/1033.jpg 9
2/304.jpg 2
5/956.jpg 5
2/487.jpg 2
0/353.jpg 0
9/1156.jpg 9
8/863.jpg 8
8/1113.jpg 8
2/368.jpg 2
5/409.jpg 5
6/398.jpg 6
5/403.jpg 5
2/58.jpg 2
9/347.jpg 9
4/389.jpg 4
9/1129.jpg 9
9/1106.jpg 9
2/467.jpg 2
3/294.jpg 3
5/146.jpg 5
5/945.jpg 5
0/711.jpg 0
2/431.jpg 2
8/663.jpg 8
0/86.jpg 0
7/727.jpg 7
8/470.jpg 8
7/587.jpg 7
3/237.jpg 3
6/466.jpg 6
7/191.jpg 7
0/94.jpg 0
7/140.jpg 7
8/199.jpg 8
3/357.jpg 3
0/506.jpg 0
7/274.jpg 7
3/20.jpg 3
9/697.jpg 9
9/355.jpg 9
9/483.jpg 9
5/235.jpg 5
4/297.jpg 4
7/579.jpg 7
9/122.jpg 9
3/406.jpg 3
8/1015.jpg 8
9/547.jpg 9
6/438.jpg 6
8/1103.jpg 8
9/675.jpg 9
9/798.jpg 9
6/706.jpg 6
0/649.jpg 0
0/33.jpg 0
6/42.jpg 6
4/230.jpg 4
5/555.jpg 5
8/970.jpg 8
8/1124.jpg 8
6/349.jpg 6
6/261.jpg 6
8/1010.jpg 8
9/24.jpg 9
5/356.jpg 5
4/382.jpg 4
2/68.jpg 2
3/142.jpg 3
6/30.jpg 6
0/521.jpg 0
5/649.jpg 5
8/573.jpg 8
2/573.jpg 2
0/210.jpg 0
7/326.jpg 7
2/419.jpg 2
9/577.jpg 9
9/350.jpg 9
5/188.jpg 5
7/652.jpg 7
9/791.jpg 9
5/843.jpg 5
1/502.jpg 1
9/169.jpg 9
9/180.jpg 9
1/280.jpg 1
5/103.jpg 5
8/1139.jpg 8
9/863.jpg 9
8/177.jpg 8
3/305.jpg 3
8/245.jpg 8
8/779.jpg 8
9/261.jpg 9
5/129.jpg 5
3/201.jpg 3
6/34.jpg 6
7/790.jpg 7
7/331.jpg 7
0/263.jpg 0
8/510.jpg 8
3/443.jpg 3
7/785.jpg 7
8/479.jpg 8
0/691.jpg 0
8/286.jpg 8
7/745.jpg 7
9/453.jpg 9
8/21.jpg 8
0/470.jpg 0
9/354.jpg 9
6/480.jpg 6
5/921.jpg 5
5/641.jpg 5
2/141.jpg 2
5/898.jpg 5
6/140.jpg 6
5/706.jpg 5
0/295.jpg 0
7/161.jpg 7
5/857.jpg 5
5/375.jpg 5
9/549.jpg 9
6/456.jpg 6
9/884.jpg 9
9/99.jpg 9
9/236.jpg 9
6/151.jpg 6
7/568.jpg 7
6/131.jpg 6
8/967.jpg 8
7/194.jpg 7
7/92.jpg 7
3/405.jpg 3
0/0.jpg 0
0/99.jpg 0
6/334.jpg 6
3/99.jpg 3
9/664.jpg 9
9/27.jpg 9
2/498.jpg 2
0/423.jpg 0
6/653.jpg 6
8/795.jpg 8
5/56.jpg 5
9/1103.jpg 9
0/656.jpg 0
6/755.jpg 6
2/86.jpg 2
2/387.jpg 2
5/613.jpg 5
6/218.jpg 6
0/566.jpg 0
5/909.jpg 5
0/492.jpg 0
0/539.jpg 0
7/626.jpg 7
5/556.jpg 5
5/120.jpg 5
9/319.jpg 9
8/107.jpg 8
8/255.jpg 8
5/889.jpg 5
8/1081.jpg 8
5/685.jpg 5
6/65.jpg 6
0/67.jpg 0
6/225.jpg 6
0/142.jpg 0
1/222.jpg 1
9/690.jpg 9
4/46.jpg 4
1/172.jpg 1
2/383.jpg 2
4/132.jpg 4
0/302.jpg 0
1/390.jpg 1
9/189.jpg 9
2/361.jpg 2
3/2.jpg 3
0/575.jpg 0
2/72.jpg 2
0/432.jpg 0
6/615.jpg 6
9/1006.jpg 9
5/421.jpg 5
6/623.jpg 6
0/456.jpg 0
8/320.jpg 8
3/451.jpg 3
8/1032.jpg 8
2/336.jpg 2
8/883.jpg 8
7/351.jpg 7
5/87.jpg 5
6/633.jpg 6
4/81.jpg 4
6/605.jpg 6
9/424.jpg 9
5/566.jpg 5
5/260.jpg 5
1/313.jpg 1
9/1115.jpg 9
9/678.jpg 9
2/581.jpg 2
5/397.jpg 5
6/356.jpg 6
8/960.jpg 8
5/604.jpg 5
9/459.jpg 9
3/174.jpg 3
7/607.jpg 7
6/524.jpg 6
8/568.jpg 8
4/310.jpg 4
2/272.jpg 2
6/542.jpg 6
9/445.jpg 9
5/458.jpg 5
9/1137.jpg 9
5/442.jpg 5
8/754.jpg 8
6/472.jpg 6
0/22.jpg 0
1/260.jpg 1
8/700.jpg 8
9/6.jpg 9
0/593.jpg 0
4/281.jpg 4
3/70.jpg 3
8/1123.jpg 8
7/718.jpg 7
3/132.jpg 3
7/639.jpg 7
9/266.jpg 9
3/249.jpg 3
9/740.jpg 9
7/722.jpg 7
4/286.jpg 4
2/237.jpg 2
7/184.jpg 7
5/647.jpg 5
6/470.jpg 6
7/615.jpg 7
7/533.jpg 7
8/650.jpg 8
6/45.jpg 6
7/610.jpg 7
3/223.jpg 3
8/716.jpg 8
8/97.jpg 8
1/125.jpg 1
8/231.jpg 8
5/333.jpg 5
8/201.jpg 8
8/173.jpg 8
0/220.jpg 0
8/441.jpg 8
0/61.jpg 0
5/456.jpg 5
2/234.jpg 2
6/588.jpg 6
8/307.jpg 8
5/609.jpg 5
3/380.jpg 3
7/605.jpg 7
0/570.jpg 0
3/415.jpg 3
9/859.jpg 9
4/215.jpg 4
7/702.jpg 7
3/515.jpg 3
5/835.jpg 5
7/500.jpg 7
3/525.jpg 3
9/1013.jpg 9
8/295.jpg 8
9/726.jpg 9
2/15.jpg 2
9/500.jpg 9
6/79.jpg 6
8/713.jpg 8
9/821.jpg 9
0/70.jpg 0
8/382.jpg 8
5/112.jpg 5
7/453.jpg 7
9/1165.jpg 9
8/871.jpg 8
9/629.jpg 9
6/599.jpg 6
3/585.jpg 3
7/600.jpg 7
6/38.jpg 6
7/149.jpg 7
0/410.jpg 0
5/279.jpg 5
8/313.jpg 8
3/408.jpg 3
0/336.jpg 0
0/274.jpg 0
8/669.jpg 8
3/345.jpg 3
0/305.jpg 0
7/575.jpg 7
7/766.jpg 7
5/482.jpg 5
7/689.jpg 7
6/457.jpg 6
8/570.jpg 8
6/253.jpg 6
3/89.jpg 3
4/350.jpg 4
5/819.jpg 5
8/133.jpg 8
0/465.jpg 0
7/21.jpg 7
7/701.jpg 7
7/467.jpg 7
3/287.jpg 3
7/495.jpg 7
9/245.jpg 9
7/611.jpg 7
2/225.jpg 2
6/243.jpg 6
8/986.jpg 8
8/221.jpg 8
8/751.jpg 8
9/596.jpg 9
3/23.jpg 3
5/539.jpg 5
9/1060.jpg 9
8/131.jpg 8
9/256.jpg 9
9/1043.jpg 9
0/602.jpg 0
1/380.jpg 1
3/37.jpg 3
4/343.jpg 4
1/329.jpg 1
6/408.jpg 6
5/918.jpg 5
3/239.jpg 3
9/634.jpg 9
5/799.jpg 5
6/321.jpg 6
9/473.jpg 9
8/1096.jpg 8
5/435.jpg 5
2/21.jpg 2
8/678.jpg 8
3/81.jpg 3
9/676.jpg 9
2/166.jpg 2
9/310.jpg 9
7/486.jpg 7
8/671.jpg 8
5/154.jpg 5
6/560.jpg 6
1/350.jpg 1
9/1032.jpg 9
8/171.jpg 8
1/225.jpg 1
5/601.jpg 5
6/242.jpg 6
5/51.jpg 5
9/733.jpg 9
5/501.jpg 5
2/277.jpg 2
2/10.jpg 2
1/265.jpg 1
0/141.jpg 0
0/291.jpg 0
0/104.jpg 0
8/169.jpg 8
6/125.jpg 6
7/327.jpg 7
6/650.jpg 6
7/440.jpg 7
3/308.jpg 3
7/406.jpg 7
5/126.jpg 5
5/664.jpg 5
4/228.jpg 4
9/589.jpg 9
4/156.jpg 4
7/102.jpg 7
6/138.jpg 6
2/456.jpg 2
2/450.jpg 2
5/138.jpg 5
5/3.jpg 5
5/669.jpg 5
5/550.jpg 5
4/135.jpg 4
4/328.jpg 4
0/266.jpg 0
8/155.jpg 8
0/362.jpg 0
4/397.jpg 4
8/1084.jpg 8
8/647.jpg 8
7/646.jpg 7
9/263.jpg 9
2/426.jpg 2
9/365.jpg 9
7/502.jpg 7
6/648.jpg 6
0/382.jpg 0
5/463.jpg 5
6/737.jpg 6
4/366.jpg 4
7/350.jpg 7
2/125.jpg 2
5/623.jpg 5
9/489.jpg 9
7/1.jpg 7
3/265.jpg 3
5/42.jpg 5
7/678.jpg 7
3/373.jpg 3
9/945.jpg 9
8/152.jpg 8
8/1004.jpg 8
9/934.jpg 9
0/709.jpg 0
5/420.jpg 5
6/678.jpg 6
5/861.jpg 5
7/524.jpg 7
9/254.jpg 9
9/510.jpg 9
0/74.jpg 0
3/148.jpg 3
8/506.jpg 8
7/454.jpg 7
7/444.jpg 7
0/637.jpg 0
3/400.jpg 3
0/663.jpg 0
0/319.jpg 0
1/403.jpg 1
9/600.jpg 9
5/702.jpg 5
8/395.jpg 8
8/823.jpg 8
8/916.jpg 8
1/305.jpg 1
3/281.jpg 3
6/75.jpg 6
3/559.jpg 3
9/444.jpg 9
9/986.jpg 9
9/193.jpg 9
1/351.jpg 1
0/34.jpg 0
9/13.jpg 9
9/315.jpg 9
9/133.jpg 9
9/804.jpg 9
9/305.jpg 9
1/445.jpg 1
2/139.jpg 2
9/961.jpg 9
1/50.jpg 1
6/211.jpg 6
7/546.jpg 7
5/966.jpg 5
8/614.jpg 8
7/731.jpg 7
7/336.jpg 7
7/296.jpg 7
0/499.jpg 0
8/636.jpg 8
0/349.jpg 0
3/431.jpg 3
6/16.jpg 6
2/140.jpg 2
5/610.jpg 5
8/761.jpg 8
8/1040.jpg 8
8/15.jpg 8
9/606.jpg 9
3/262.jpg 3
3/269.jpg 3
5/423.jpg 5
2/51.jpg 2
1/215.jpg 1
2/145.jpg 2
6/732.jpg 6
5/382.jpg 5
0/523.jpg 0
1/245.jpg 1
6/342.jpg 6
3/586.jpg 3
9/50.jpg 9
8/355.jpg 8
3/283.jpg 3
3/117.jpg 3
8/463.jpg 8
3/190.jpg 3
3/453.jpg 3
0/68.jpg 0
5/967.jpg 5
5/276.jpg 5
5/444.jpg 5
9/1072.jpg 9
1/368.jpg 1
7/754.jpg 7
2/331.jpg 2
0/435.jpg 0
7/216.jpg 7
8/372.jpg 8
5/659.jpg 5
0/483.jpg 0
1/453.jpg 1
2/346.jpg 2
5/247.jpg 5
9/1089.jpg 9
4/396.jpg 4
0/482.jpg 0
5/759.jpg 5
7/264.jpg 7
9/746.jpg 9
5/620.jpg 5
7/124.jpg 7
8/1069.jpg 8
2/452.jpg 2
0/365.jpg 0
5/723.jpg 5
4/150.jpg 4
7/781.jpg 7
4/399.jpg 4
0/509.jpg 0
1/426.jpg 1
6/328.jpg 6
5/40.jpg 5
5/910.jpg 5
4/322.jpg 4
0/260.jpg 0
8/360.jpg 8
7/756.jpg 7
8/1075.jpg 8
8/5.jpg 8
9/149.jpg 9
7/283.jpg 7
0/490.jpg 0
2/54.jpg 2
9/1044.jpg 9
3/170.jpg 3
7/186.jpg 7
7/667.jpg 7
1/493.jpg 1
9/452.jpg 9
1/187.jpg 1
3/77.jpg 3
9/1034.jpg 9
6/147.jpg 6
0/278.jpg 0
8/707.jpg 8
8/326.jpg 8
4/120.jpg 4
5/663.jpg 5
9/2.jpg 9
3/511.jpg 3
2/18.jpg 2
9/102.jpg 9
2/231.jpg 2
3/407.jpg 3
4/164.jpg 4
6/530.jpg 6
5/90.jpg 5
6/619.jpg 6
8/305.jpg 8
8/41.jpg 8
9/759.jpg 9
2/245.jpg 2
9/818.jpg 9
6/499.jpg 6
8/276.jpg 8
7/255.jpg 7
2/353.jpg 2
6/750.jpg 6
5/102.jpg 5
9/757.jpg 9
2/52.jpg 2
5/141.jpg 5
5/947.jpg 5
7/108.jpg 7
1/163.jpg 1
1/81.jpg 1
6/625.jpg 6
0/117.jpg 0
2/486.jpg 2
0/611.jpg 0
2/562.jpg 2
0/610.jpg 0
1/149.jpg 1
3/295.jpg 3
9/709.jpg 9
6/115.jpg 6
8/39.jpg 8
4/155.jpg 4
1/326.jpg 1
8/1028.jpg 8
1/374.jpg 1
0/581.jpg 0
3/173.jpg 3
8/933.jpg 8
3/150.jpg 3
8/1039.jpg 8
1/506.jpg 1
0/96.jpg 0
2/362.jpg 2
0/644.jpg 0
0/396.jpg 0
0/175.jpg 0
2/314.jpg 2
8/943.jpg 8
7/476.jpg 7
8/672.jpg 8
8/260.jpg 8
8/161.jpg 8
5/580.jpg 5
6/217.jpg 6
8/315.jpg 8
7/412.jpg 7
5/184.jpg 5
6/82.jpg 6
5/518.jpg 5
0/119.jpg 0
9/1101.jpg 9
7/583.jpg 7
2/406.jpg 2
3/63.jpg 3
0/145.jpg 0
1/52.jpg 1
5/638.jpg 5
8/690.jpg 8
5/605.jpg 5
6/395.jpg 6
3/475.jpg 3
8/444.jpg 8
5/47.jpg 5
9/1145.jpg 9
3/104.jpg 3
0/54.jpg 0
1/425.jpg 1
9/51.jpg 9
3/185.jpg 3
8/282.jpg 8
5/13.jpg 5
7/215.jpg 7
8/1128.jpg 8
2/88.jpg 2
2/527.jpg 2
6/432.jpg 6
6/69.jpg 6
6/595.jpg 6
5/938.jpg 5
8/220.jpg 8
5/325.jpg 5
8/516.jpg 8
1/291.jpg 1
9/849.jpg 9
7/64.jpg 7
9/707.jpg 9
6/291.jpg 6
7/127.jpg 7
6/679.jpg 6
5/228.jpg 5
8/1091.jpg 8
2/596.jpg 2
6/54.jpg 6
1/78.jpg 1
7/363.jpg 7
8/607.jpg 8
8/157.jpg 8
9/679.jpg 9
6/505.jpg 6
4/346.jpg 4
6/600.jpg 6
2/217.jpg 2
1/100.jpg 1
9/714.jpg 9
7/564.jpg 7
9/586.jpg 9
9/40.jpg 9
8/147.jpg 8
8/166.jpg 8
6/451.jpg 6
7/193.jpg 7
8/253.jpg 8
0/605.jpg 0
9/602.jpg 9
7/90.jpg 7
6/118.jpg 6
9/927.jpg 9
8/947.jpg 8
7/677.jpg 7
7/68.jpg 7
9/298.jpg 9
8/759.jpg 8
7/224.jpg 7
8/689.jpg 8
1/76.jpg 1
3/349.jpg 3
1/369.jpg 1
8/508.jpg 8
0/461.jpg 0
7/765.jpg 7
6/664.jpg 6
5/748.jpg 5
7/471.jpg 7
8/1054.jpg 8
9/551.jpg 9
3/43.jpg 3
3/423.jpg 3
9/316.jpg 9
0/491.jpg 0
4/319.jpg 4
1/29.jpg 1
5/389.jpg 5
9/314.jpg 9
4/25.jpg 4
5/818.jpg 5
0/28.jpg 0
1/337.jpg 1
0/533.jpg 0
8/746.jpg 8
2/7.jpg 2
1/127.jpg 1
4/240.jpg 4
0/321.jpg 0
0/408.jpg 0
9/642.jpg 9
8/697.jpg 8
6/188.jpg 6
8/361.jpg 8
6/119.jpg 6
6/304.jpg 6
7/634.jpg 7
4/353.jpg 4
7/684.jpg 7
7/237.jpg 7
5/491.jpg 5
5/615.jpg 5
5/968.jpg 5
0/580.jpg 0
7/342.jpg 7
4/386.jpg 4
0/371.jpg 0
6/345.jpg 6
8/1011.jpg 8
4/86.jpg 4
2/22.jpg 2
6/323.jpg 6
2/386.jpg 2
4/222.jpg 4
5/837.jpg 5
2/89.jpg 2
6/312.jpg 6
6/632.jpg 6
8/224.jpg 8
4/170.jpg 4
8/233.jpg 8
7/176.jpg 7
8/371.jpg 8
5/808.jpg 5
1/256.jpg 1
0/698.jpg 0
0/500.jpg 0
8/62.jpg 8
8/890.jpg 8
5/46.jpg 5
6/662.jpg 6
1/203.jpg 1
3/263.jpg 3
0/641.jpg 0
9/413.jpg 9
0/100.jpg 0
6/258.jpg 6
6/506.jpg 6
9/1048.jpg 9
3/26.jpg 3
4/179.jpg 4
6/318.jpg 6
2/399.jpg 2
8/394.jpg 8
7/379.jpg 7
9/1070.jpg 9
6/649.jpg 6
6/557.jpg 6
7/62.jpg 7
5/813.jpg 5
8/373.jpg 8
5/603.jpg 5
3/582.jpg 3
3/529.jpg 3
0/361.jpg 0
3/354.jpg 3
9/1069.jpg 9
7/724.jpg 7
5/509.jpg 5
8/631.jpg 8
7/135.jpg 7
0/478.jpg 0
8/141.jpg 8
9/890.jpg 9
7/95.jpg 7
8/831.jpg 8
6/26.jpg 6
8/125.jpg 8
8/686.jpg 8
6/154.jpg 6
7/185.jpg 7
0/582.jpg 0
6/307.jpg 6
7/315.jpg 7
5/636.jpg 5
1/69.jpg 1
4/258.jpg 4
1/408.jpg 1
8/612.jpg 8
7/401.jpg 7
5/567.jpg 5
9/471.jpg 9
2/421.jpg 2
0/283.jpg 0
0/442.jpg 0
6/300.jpg 6
9/736.jpg 9
6/551.jpg 6
0/270.jpg 0
7/165.jpg 7
7/660.jpg 7
1/135.jpg 1
0/481.jpg 0
2/598.jpg 2
0/75.jpg 0
7/698.jpg 7
6/405.jpg 6
5/142.jpg 5
6/390.jpg 6
0/488.jpg 0
2/4.jpg 2
6/431.jpg 6
2/378.jpg 2
8/77.jpg 8
9/713.jpg 9
8/44.jpg 8
3/35.jpg 3
8/834.jpg 8
9/910.jpg 9
5/619.jpg 5
9/342.jpg 9
6/178.jpg 6
6/719.jpg 6
6/681.jpg 6
4/316.jpg 4
4/220.jpg 4
8/60.jpg 8
0/272.jpg 0
9/86.jpg 9
9/1027.jpg 9
1/45.jpg 1
5/884.jpg 5
1/366.jpg 1
9/700.jpg 9
7/301.jpg 7
6/421.jpg 6
4/56.jpg 4
0/688.jpg 0
3/258.jpg 3
8/195.jpg 8
9/272.jpg 9
6/407.jpg 6
3/464.jpg 3
1/363.jpg 1
4/364.jpg 4
0/385.jpg 0
7/152.jpg 7
0/553.jpg 0
8/290.jpg 8
6/133.jpg 6
6/618.jpg 6
5/489.jpg 5
0/300.jpg 0
6/513.jpg 6
7/732.jpg 7
8/537.jpg 8
0/583.jpg 0
3/151.jpg 3
9/712.jpg 9
3/64.jpg 3
5/733.jpg 5
2/185.jpg 2
5/12.jpg 5
7/514.jpg 7
6/413.jpg 6
7/391.jpg 7
7/377.jpg 7
5/588.jpg 5
1/13.jpg 1
9/1062.jpg 9
0/221.jpg 0
0/173.jpg 0
2/414.jpg 2
5/336.jpg 5
6/120.jpg 6
3/386.jpg 3
6/55.jpg 6
8/611.jpg 8
9/1118.jpg 9
8/249.jpg 8
2/194.jpg 2
5/868.jpg 5
5/474.jpg 5
7/589.jpg 7
9/220.jpg 9
5/830.jpg 5
5/68.jpg 5
9/935.jpg 9
9/334.jpg 9
9/304.jpg 9
5/290.jpg 5
3/205.jpg 3
6/39.jpg 6
9/1026.jpg 9
8/31.jpg 8
2/352.jpg 2
9/1084.jpg 9
8/526.jpg 8
0/701.jpg 0
5/681.jpg 5
3/391.jpg 3
6/691.jpg 6
5/197.jpg 5
5/695.jpg 5
3/198.jpg 3
5/164.jpg 5
4/253.jpg 4
5/729.jpg 5
4/84.jpg 4
6/448.jpg 6
5/574.jpg 5
2/258.jpg 2
9/108.jpg 9
5/391.jpg 5
1/477.jpg 1
9/636.jpg 9
9/538.jpg 9
2/211.jpg 2
7/704.jpg 7
0/579.jpg 0
8/308.jpg 8
7/629.jpg 7
5/65.jpg 5
9/976.jpg 9
5/446.jpg 5
8/1101.jpg 8
7/506.jpg 7
8/840.jpg 8
4/362.jpg 4
5/739.jpg 5
3/176.jpg 3
9/427.jpg 9
9/880.jpg 9
6/552.jpg 6
8/941.jpg 8
0/148.jpg 0
5/5.jpg 5
6/468.jpg 6
9/857.jpg 9
9/127.jpg 9
0/147.jpg 0
6/658.jpg 6
0/459.jpg 0
8/910.jpg 8
9/805.jpg 9
8/71.jpg 8
0/256.jpg 0
3/245.jpg 3
6/471.jpg 6
7/413.jpg 7
3/273.jpg 3
8/507.jpg 8
8/936.jpg 8
2/511.jpg 2
9/949.jpg 9
5/218.jpg 5
0/630.jpg 0
8/420.jpg 8
6/701.jpg 6
8/197.jpg 8
8/829.jpg 8
8/112.jpg 8
3/421.jpg 3
2/288.jpg 2
4/311.jpg 4
0/161.jpg 0
2/593.jpg 2
8/419.jpg 8
5/521.jpg 5
5/728.jpg 5
0/690.jpg 0
2/358.jpg 2
5/668.jpg 5
5/488.jpg 5
8/95.jpg 8
5/644.jpg 5
1/292.jpg 1
8/841.jpg 8
6/591.jpg 6
0/15.jpg 0
6/179.jpg 6
4/157.jpg 4
3/280.jpg 3
0/88.jpg 0
2/296.jpg 2
0/191.jpg 0
8/331.jpg 8
7/74.jpg 7
3/30.jpg 3
1/179.jpg 1
5/156.jpg 5
4/309.jpg 4
4/307.jpg 4
8/121.jpg 8
6/710.jpg 6
9/692.jpg 9
4/143.jpg 4
8/869.jpg 8
0/590.jpg 0
3/143.jpg 3
9/808.jpg 9
0/216.jpg 0
9/620.jpg 9
8/429.jpg 8
7/16.jpg 7
3/45.jpg 3
5/159.jpg 5
9/404.jpg 9
4/64.jpg 4
9/950.jpg 9
9/428.jpg 9
7/397.jpg 7
9/968.jpg 9
7/30.jpg 7
0/528.jpg 0
9/556.jpg 9
8/391.jpg 8
8/1000.jpg 8
9/1099.jpg 9
7/803.jpg 7
4/117.jpg 4
1/189.jpg 1
7/53.jpg 7
9/773.jpg 9
3/130.jpg 3
7/57.jpg 7
3/353.jpg 3
6/753.jpg 6
7/655.jpg 7
9/902.jpg 9
9/1003.jpg 9
8/908.jpg 8
3/401.jpg 3
5/832.jpg 5
1/34.jpg 1
2/416.jpg 2
9/999.jpg 9
3/297.jpg 3
7/753.jpg 7
3/436.jpg 3
6/350.jpg 6
5/28.jpg 5
1/79.jpg 1
8/61.jpg 8
8/239.jpg 8
1/199.jpg 1
9/439.jpg 9
7/348.jpg 7
4/125.jpg 4
0/160.jpg 0
7/126.jpg 7
2/114.jpg 2
0/66.jpg 0
8/511.jpg 8
1/170.jpg 1
4/252.jpg 4
9/654.jpg 9
0/223.jpg 0
8/895.jpg 8
2/152.jpg 2
6/579.jpg 6
9/409.jpg 9
8/682.jpg 8
2/457.jpg 2
7/487.jpg 7
1/47.jpg 1
1/53.jpg 1
8/447.jpg 8
9/554.jpg 9
1/325.jpg 1
6/72.jpg 6
3/378.jpg 3
6/210.jpg 6
0/403.jpg 0
9/611.jpg 9
7/773.jpg 7
8/541.jpg 8
6/687.jpg 6
3/229.jpg 3
8/988.jpg 8
0/507.jpg 0
4/327.jpg 4
7/366.jpg 7
0/182.jpg 0
9/563.jpg 9
0/713.jpg 0
7/142.jpg 7
5/94.jpg 5
5/874.jpg 5
3/34.jpg 3
5/75.jpg 5
7/430.jpg 7
6/660.jpg 6
3/472.jpg 3
3/425.jpg 3
1/362.jpg 1
9/491.jpg 9
1/406.jpg 1
1/364.jpg 1
3/233.jpg 3
9/421.jpg 9
6/173.jpg 6
2/325.jpg 2
9/253.jpg 9
0/388.jpg 0
0/285.jpg 0
0/284.jpg 0
6/216.jpg 6
5/514.jpg 5
1/40.jpg 1
8/1100.jpg 8
8/1009.jpg 8
5/734.jpg 5
6/611.jpg 6
6/63.jpg 6
3/268.jpg 3
3/437.jpg 3
6/498.jpg 6
8/145.jpg 8
5/745.jpg 5
5/869.jpg 5
6/248.jpg 6
2/63.jpg 2
7/281.jpg 7
4/209.jpg 4
6/392.jpg 6
9/895.jpg 9
2/357.jpg 2
0/281.jpg 0
7/817.jpg 7
8/603.jpg 8
4/66.jpg 4
4/122.jpg 4
5/219.jpg 5
3/389.jpg 3
5/330.jpg 5
0/45.jpg 0
0/518.jpg 0
9/479.jpg 9
6/469.jpg 6
2/408.jpg 2
6/637.jpg 6
3/113.jpg 3
8/438.jpg 8
5/31.jpg 5
2/587.jpg 2
7/570.jpg 7
4/194.jpg 4
0/177.jpg 0
0/123.jpg 0
4/213.jpg 4
4/99.jpg 4
7/505.jpg 7
8/67.jpg 8
7/10.jpg 7
6/561.jpg 6
0/612.jpg 0
3/489.jpg 3
1/98.jpg 1
5/466.jpg 5
1/310.jpg 1
5/50.jpg 5
8/1066.jpg 8
8/584.jpg 8
9/528.jpg 9
8/1064.jpg 8
8/398.jpg 8
0/671.jpg 0
8/618.jpg 8
0/180.jpg 0
6/674.jpg 6
7/775.jpg 7
4/211.jpg 4
6/8.jpg 6
3/427.jpg 3
9/337.jpg 9
8/304.jpg 8
9/952.jpg 9
0/391.jpg 0
8/861.jpg 8
8/1002.jpg 8
9/1045.jpg 9
6/630.jpg 6
5/194.jpg 5
5/331.jpg 5
7/805.jpg 7
1/490.jpg 1
5/916.jpg 5
7/334.jpg 7
6/718.jpg 6
2/179.jpg 2
9/1076.jpg 9
6/415.jpg 6
1/455.jpg 1
0/540.jpg 0
9/468.jpg 9
9/836.jpg 9
3/33.jpg 3
9/361.jpg 9
9/763.jpg 9
8/739.jpg 8
7/207.jpg 7
2/488.jpg 2
2/122.jpg 2
9/1157.jpg 9
5/459.jpg 5
0/154.jpg 0
0/517.jpg 0
9/290.jpg 9
8/505.jpg 8
5/852.jpg 5
8/655.jpg 8
9/628.jpg 9
9/348.jpg 9
7/97.jpg 7
7/415.jpg 7
9/752.jpg 9
5/564.jpg 5
0/211.jpg 0
8/258.jpg 8
7/83.jpg 7
8/688.jpg 8
0/107.jpg 0
9/1065.jpg 9
9/817.jpg 9
9/929.jpg 9
7/276.jpg 7
4/61.jpg 4
8/571.jpg 8
1/111.jpg 1
8/462.jpg 8
4/273.jpg 4
5/440.jpg 5
3/106.jpg 3
6/404.jpg 6
8/827.jpg 8
2/19.jpg 2
5/469.jpg 5
2/286.jpg 2
8/727.jpg 8
5/313.jpg 5
5/692.jpg 5
5/743.jpg 5
7/319.jpg 7
9/787.jpg 9
7/531.jpg 7
9/451.jpg 9
6/139.jpg 6
8/1051.jpg 8
0/702.jpg 0
4/68.jpg 4
5/577.jpg 5
5/343.jpg 5
8/989.jpg 8
7/520.jpg 7
0/170.jpg 0
8/273.jpg 8
5/201.jpg 5
5/948.jpg 5
9/238.jpg 9
0/374.jpg 0
8/257.jpg 8
5/204.jpg 5
0/294.jpg 0
9/326.jpg 9
7/553.jpg 7
3/403.jpg 3
7/200.jpg 7
8/104.jpg 8
9/336.jpg 9
9/869.jpg 9
6/24.jpg 6
9/588.jpg 9
6/740.jpg 6
3/286.jpg 3
1/5.jpg 1
0/466.jpg 0
0/409.jpg 0
1/264.jpg 1
8/466.jpg 8
8/778.jpg 8
0/307.jpg 0
2/129.jpg 2
5/396.jpg 5
0/6.jpg 0
8/454.jpg 8
5/34.jpg 5
4/40.jpg 4
7/180.jpg 7
7/504.jpg 7
8/745.jpg 8
9/456.jpg 9
6/141.jpg 6
8/846.jpg 8
9/595.jpg 9
6/500.jpg 6
1/392.jpg 1
8/1089.jpg 8
5/1.jpg 5
8/722.jpg 8
4/175.jpg 4
5/16.jpg 5
1/436.jpg 1
2/422.jpg 2
6/677.jpg 6
0/589.jpg 0
7/399.jpg 7
6/575.jpg 6
6/100.jpg 6
0/439.jpg 0
2/268.jpg 2
2/582.jpg 2
6/515.jpg 6
7/378.jpg 7
7/687.jpg 7
2/322.jpg 2
8/314.jpg 8
7/139.jpg 7
3/303.jpg 3
3/191.jpg 3
2/127.jpg 2
5/624.jpg 5
0/102.jpg 0
8/520.jpg 8
9/462.jpg 9
6/744.jpg 6
8/567.jpg 8
7/256.jpg 7
2/525.jpg 2
6/143.jpg 6
8/1055.jpg 8
4/43.jpg 4
0/424.jpg 0
9/394.jpg 9
7/405.jpg 7
8/737.jpg 8
5/500.jpg 5
4/30.jpg 4
1/169.jpg 1
4/104.jpg 4
9/658.jpg 9
8/1104.jpg 8
4/293.jpg 4
0/130.jpg 0
9/861.jpg 9
9/898.jpg 9
4/238.jpg 4
1/55.jpg 1
9/197.jpg 9
7/368.jpg 7
9/615.jpg 9
1/481.jpg 1
5/534.jpg 5
2/144.jpg 2
6/536.jpg 6
9/232.jpg 9
9/1121.jpg 9
7/198.jpg 7
7/735.jpg 7
8/478.jpg 8
8/850.jpg 8
0/286.jpg 0
7/150.jpg 7
6/709.jpg 6
9/531.jpg 9
9/67.jpg 9
6/203.jpg 6
6/526.jpg 6
6/429.jpg 6
1/275.jpg 1
2/196.jpg 2
4/63.jpg 4
6/400.jpg 6
2/205.jpg 2
9/118.jpg 9
6/122.jpg 6
1/512.jpg 1
5/622.jpg 5
2/510.jpg 2
2/428.jpg 2
2/365.jpg 2
4/340.jpg 4
5/106.jpg 5
9/177.jpg 9
3/362.jpg 3
1/433.jpg 1
9/819.jpg 9
5/323.jpg 5
8/498.jpg 8
7/271.jpg 7
8/105.jpg 8
7/622.jpg 7
7/205.jpg 7
2/551.jpg 2
5/250.jpg 5
2/38.jpg 2
2/333.jpg 2
2/576.jpg 2
9/1150.jpg 9
9/633.jpg 9
9/828.jpg 9
9/847.jpg 9
6/260.jpg 6
3/235.jpg 3
5/696.jpg 5
0/181.jpg 0
5/186.jpg 5
9/512.jpg 9
8/597.jpg 8
9/724.jpg 9
5/371.jpg 5
0/233.jpg 0
5/579.jpg 5
7/762.jpg 7
8/380.jpg 8
5/239.jpg 5
5/630.jpg 5
5/703.jpg 5
1/500.jpg 1
6/183.jpg 6
4/342.jpg 4
9/739.jpg 9
1/23.jpg 1
5/652.jpg 5
9/231.jpg 9
2/471.jpg 2
8/362.jpg 8
5/453.jpg 5
6/238.jpg 6
9/1162.jpg 9
7/219.jpg 7
7/820.jpg 7
6/396.jpg 6
8/923.jpg 8
8/999.jpg 8
3/208.jpg 3
6/430.jpg 6
6/204.jpg 6
8/580.jpg 8
6/439.jpg 6
2/496.jpg 2
7/244.jpg 7
8/646.jpg 8
0/250.jpg 0
8/294.jpg 8
8/696.jpg 8
8/538.jpg 8
5/38.jpg 5
0/313.jpg 0
9/139.jpg 9
5/880.jpg 5
7/493.jpg 7
5/395.jpg 5
8/974.jpg 8
9/1039.jpg 9
8/1078.jpg 8
1/319.jpg 1
9/488.jpg 9
7/480.jpg 7
3/537.jpg 3
6/148.jpg 6
8/1120.jpg 8
9/155.jpg 9
2/534.jpg 2
7/131.jpg 7
1/66.jpg 1
1/317.jpg 1
2/50.jpg 2
3/108.jpg 3
7/307.jpg 7
6/502.jpg 6
2/355.jpg 2
8/215.jpg 8
5/212.jpg 5
0/606.jpg 0
5/462.jpg 5
9/230.jpg 9
5/312.jpg 5
9/97.jpg 9
5/587.jpg 5
9/982.jpg 9
2/155.jpg 2
8/168.jpg 8
7/719.jpg 7
3/390.jpg 3
7/541.jpg 7
6/746.jpg 6
3/156.jpg 3
8/1121.jpg 8
9/792.jpg 9
5/18.jpg 5
9/592.jpg 9
4/231.jpg 4
6/739.jpg 6
8/162.jpg 8
8/340.jpg 8
9/250.jpg 9
5/714.jpg 5
9/862.jpg 9
2/595.jpg 2
2/371.jpg 2
9/908.jpg 9
9/430.jpg 9
8/154.jpg 8
0/682.jpg 0
2/112.jpg 2
7/230.jpg 7
5/60.jpg 5
9/467.jpg 9
6/264.jpg 6
8/163.jpg 8
4/283.jpg 4
6/67.jpg 6
5/798.jpg 5
8/469.jpg 8
6/315.jpg 6
0/431.jpg 0
7/19.jpg 7
7/77.jpg 7
7/586.jpg 7
7/122.jpg 7
4/385.jpg 4
0/288.jpg 0
2/156.jpg 2
5/549.jpg 5
5/144.jpg 5
9/148.jpg 9
2/558.jpg 2
4/98.jpg 4
5/575.jpg 5
7/540.jpg 7
6/460.jpg 6
8/1065.jpg 8
6/21.jpg 6
7/797.jpg 7
8/914.jpg 8
0/105.jpg 0
7/338.jpg 7
8/786.jpg 8
8/695.jpg 8
8/945.jpg 8
0/303.jpg 0
5/510.jpg 5
8/53.jpg 8
2/158.jpg 2
2/200.jpg 2
2/169.jpg 2
0/109.jpg 0
7/87.jpg 7
1/48.jpg 1
4/250.jpg 4
4/174.jpg 4
0/188.jpg 0
4/225.jpg 4
4/97.jpg 4
9/901.jpg 9
3/520.jpg 3
0/504.jpg 0
5/324.jpg 5
5/680.jpg 5
6/449.jpg 6
9/845.jpg 9
9/965.jpg 9
0/112.jpg 0
8/1095.jpg 8
9/163.jpg 9
9/140.jpg 9
6/518.jpg 6
2/542.jpg 2
5/101.jpg 5
8/232.jpg 8
2/165.jpg 2
3/264.jpg 3
9/843.jpg 9
2/557.jpg 2
9/264.jpg 9
5/508.jpg 5
8/706.jpg 8
8/668.jpg 8
6/329.jpg 6
1/106.jpg 1
2/507.jpg 2
9/735.jpg 9
3/98.jpg 3
9/482.jpg 9
0/463.jpg 0
7/373.jpg 7
6/90.jpg 6
0/436.jpg 0
9/235.jpg 9
8/881.jpg 8
8/1027.jpg 8
7/163.jpg 7
5/833.jpg 5
8/40.jpg 8
9/656.jpg 9
8/99.jpg 8
0/529.jpg 0
5/801.jpg 5
4/134.jpg 4
5/787.jpg 5
3/103.jpg 3
9/830.jpg 9
6/157.jpg 6
5/863.jpg 5
1/101.jpg 1
6/270.jpg 6
8/788.jpg 8
5/528.jpg 5
5/740.jpg 5
0/275.jpg 0
5/626.jpg 5
6/158.jpg 6
5/278.jpg 5
9/541.jpg 9
8/11.jpg 8
2/100.jpg 2
8/1109.jpg 8
6/379.jpg 6
5/243.jpg 5
5/584.jpg 5
4/55.jpg 4
0/398.jpg 0
8/797.jpg 8
7/787.jpg 7
8/363.jpg 8
6/656.jpg 6
4/278.jpg 4
4/146.jpg 4
1/410.jpg 1
5/744.jpg 5
2/316.jpg 2
8/1019.jpg 8
0/413.jpg 0
5/21.jpg 5
6/565.jpg 6
5/800.jpg 5
2/227.jpg 2
1/302.jpg 1
9/597.jpg 9
5/532.jpg 5
8/35.jpg 8
0/546.jpg 0
8/879.jpg 8
7/536.jpg 7
5/758.jpg 5
5/422.jpg 5
2/150.jpg 2
7/814.jpg 7
5/902.jpg 5
9/159.jpg 9
9/503.jpg 9
8/592.jpg 8
9/644.jpg 9
5/137.jpg 5
9/258.jpg 9
5/812.jpg 5
3/452.jpg 3
0/537.jpg 0
2/177.jpg 2
7/328.jpg 7
2/313.jpg 2
5/114.jpg 5
5/317.jpg 5
8/18.jpg 8
0/264.jpg 0
3/368.jpg 3
3/164.jpg 3
7/341.jpg 7
8/184.jpg 8
9/605.jpg 9
7/390.jpg 7
6/340.jpg 6
7/535.jpg 7
5/17.jpg 5
7/545.jpg 7
0/452.jpg 0
5/940.jpg 5
2/323.jpg 2
3/83.jpg 3
1/217.jpg 1
7/458.jpg 7
3/351.jpg 3
7/311.jpg 7
6/394.jpg 6
4/217.jpg 4
5/449.jpg 5
2/91.jpg 2
9/25.jpg 9
5/241.jpg 5
5/33.jpg 5
6/361.jpg 6
0/516.jpg 0
8/781.jpg 8
6/220.jpg 6
5/374.jpg 5
5/80.jpg 5
5/875.jpg 5
9/1163.jpg 9
7/26.jpg 7
5/271.jpg 5
8/740.jpg 8
7/4.jpg 7
7/492.jpg 7
8/789.jpg 8
5/495.jpg 5
7/173.jpg 7
8/1110.jpg 8
0/137.jpg 0
4/244.jpg 4
6/671.jpg 6
7/14.jpg 7
9/57.jpg 9
5/6.jpg 5
8/652.jpg 8
8/793.jpg 8
0/420.jpg 0
2/526.jpg 2
5/78.jpg 5
3/394.jpg 3
2/111.jpg 2
9/669.jpg 9
2/446.jpg 2
9/353.jpg 9
4/395.jpg 4
1/42.jpg 1
4/138.jpg 4
6/572.jpg 6
7/758.jpg 7
2/376.jpg 2
9/145.jpg 9
5/486.jpg 5
5/132.jpg 5
0/635.jpg 0
7/420.jpg 7
3/168.jpg 3
5/784.jpg 5
2/265.jpg 2
3/217.jpg 3
1/151.jpg 1
4/239.jpg 4
7/7.jpg 7
9/45.jpg 9
6/64.jpg 6
6/106.jpg 6
1/459.jpg 1
1/119.jpg 1
6/549.jpg 6
0/370.jpg 0
7/763.jpg 7
4/121.jpg 4
7/812.jpg 7
0/217.jpg 0
9/665.jpg 9
9/520.jpg 9
4/274.jpg 4
3/210.jpg 3
3/276.jpg 3
2/44.jpg 2
9/924.jpg 9
7/118.jpg 7
8/981.jpg 8
1/286.jpg 1
8/512.jpg 8
0/335.jpg 0
9/1160.jpg 9
2/485.jpg 2
2/350.jpg 2
7/228.jpg 7
8/14.jpg 8
6/696.jpg 6
3/67.jpg 3
9/517.jpg 9
9/779.jpg 9
8/712.jpg 8
2/138.jpg 2
0/329.jpg 0
5/496.jpg 5
1/491.jpg 1
0/659.jpg 0
3/242.jpg 3
1/95.jpg 1
0/622.jpg 0
2/84.jpg 2
5/654.jpg 5
8/76.jpg 8
9/1100.jpg 9
0/498.jpg 0
2/465.jpg 2
8/635.jpg 8
1/193.jpg 1
4/5.jpg 4
3/519.jpg 3
5/248.jpg 5
9/283.jpg 9
7/538.jpg 7
1/115.jpg 1
7/798.jpg 7
2/116.jpg 2
8/995.jpg 8
6/296.jpg 6
8/957.jpg 8
7/86.jpg 7
9/223.jpg 9
9/497.jpg 9
8/200.jpg 8
1/102.jpg 1
6/316.jpg 6
8/1138.jpg 8
6/232.jpg 6
0/359.jpg 0
7/383.jpg 7
3/470.jpg 3
2/366.jpg 2
0/562.jpg 0
9/1143.jpg 9
8/681.jpg 8
5/923.jpg 5
6/25.jpg 6
0/425.jpg 0
2/181.jpg 2
3/554.jpg 3
6/757.jpg 6
8/281.jpg 8
4/41.jpg 4
3/536.jpg 3
1/184.jpg 1
9/663.jpg 9
1/432.jpg 1
6/358.jpg 6
5/445.jpg 5
4/88.jpg 4
3/73.jpg 3
9/93.jpg 9
6/525.jpg 6
8/844.jpg 8
3/474.jpg 3
8/535.jpg 8
8/983.jpg 8
2/246.jpg 2
1/263.jpg 1
1/155.jpg 1
2/578.jpg 2
7/448.jpg 7
1/489.jpg 1
5/304.jpg 5
8/563.jpg 8
9/583.jpg 9
5/121.jpg 5
8/842.jpg 8
7/396.jpg 7
7/260.jpg 7
4/144.jpg 4
9/761.jpg 9
8/1105.jpg 8
8/639.jpg 8
4/50.jpg 4
1/381.jpg 1
8/422.jpg 8
7/155.jpg 7
6/150.jpg 6
5/378.jpg 5
8/918.jpg 8
0/395.jpg 0
8/388.jpg 8
6/324.jpg 6
4/336.jpg 4
9/680.jpg 9
8/406.jpg 8
8/794.jpg 8
5/542.jpg 5
4/18.jpg 4
5/86.jpg 5
8/93.jpg 8
3/54.jpg 3
9/840.jpg 9
8/96.jpg 8
6/298.jpg 6
9/996.jpg 9
7/513.jpg 7
2/60.jpg 2
9/1014.jpg 9
6/689.jpg 6
7/561.jpg 7
6/332.jpg 6
0/12.jpg 0
2/16.jpg 2
1/175.jpg 1
8/467.jpg 8
7/499.jpg 7
9/46.jpg 9
3/120.jpg 3
0/244.jpg 0
7/123.jpg 7
5/753.jpg 5
8/1122.jpg 8
5/559.jpg 5
9/923.jpg 9
6/196.jpg 6
9/1057.jpg 9
7/265.jpg 7
2/271.jpg 2
0/357.jpg 0
9/485.jpg 9
8/801.jpg 8
9/515.jpg 9
2/567.jpg 2
5/893.jpg 5
7/760.jpg 7
0/255.jpg 0
4/331.jpg 4
0/633.jpg 0
1/1.jpg 1
6/170.jpg 6
2/193.jpg 2
5/246.jpg 5
1/496.jpg 1
9/313.jpg 9
7/214.jpg 7
5/368.jpg 5
8/114.jpg 8
0/676.jpg 0
1/39.jpg 1
6/4.jpg 6
8/853.jpg 8
8/211.jpg 8
3/488.jpg 3
4/369.jpg 4
4/16.jpg 4
3/463.jpg 3
2/187.jpg 2
5/815.jpg 5
2/260.jpg 2
8/229.jpg 8
8/376.jpg 8
0/92.jpg 0
4/62.jpg 4
8/483.jpg 8
2/107.jpg 2
1/471.jpg 1
9/866.jpg 9
1/297.jpg 1
5/418.jpg 5
2/178.jpg 2
9/590.jpg 9
9/62.jpg 9
5/49.jpg 5
9/610.jpg 9
0/364.jpg 0
8/757.jpg 8
2/216.jpg 2
5/677.jpg 5
0/134.jpg 0
1/16.jpg 1
6/227.jpg 6
7/112.jpg 7
1/300.jpg 1
7/183.jpg 7
3/159.jpg 3
5/302.jpg 5
3/325.jpg 3
9/415.jpg 9
6/168.jpg 6
4/85.jpg 4
8/442.jpg 8
5/229.jpg 5
1/287.jpg 1
8/484.jpg 8
3/232.jpg 3
7/658.jpg 7
1/446.jpg 1
8/86.jpg 8
5/320.jpg 5
0/315.jpg 0
2/262.jpg 2
7/584.jpg 7
5/419.jpg 5
5/634.jpg 5
0/169.jpg 0
8/219.jpg 8
0/48.jpg 0
8/735.jpg 8
0/527.jpg 0
6/364.jpg 6
8/676.jpg 8
7/432.jpg 7
6/111.jpg 6
9/73.jpg 9
6/690.jpg 6
0/46.jpg 0
3/467.jpg 3
9/1020.jpg 9
7/683.jpg 7
2/417.jpg 2
5/760.jpg 5
9/325.jpg 9
1/253.jpg 1
8/332.jpg 8
4/107.jpg 4
5/270.jpg 5
8/875.jpg 8
4/96.jpg 4
0/619.jpg 0
9/70.jpg 9
1/207.jpg 1
1/132.jpg 1
5/701.jpg 5
9/275.jpg 9
2/359.jpg 2
8/594.jpg 8
7/364.jpg 7
7/345.jpg 7
9/562.jpg 9
2/189.jpg 2
3/49.jpg 3
2/263.jpg 2
5/214.jpg 5
2/504.jpg 2
9/243.jpg 9
3/288.jpg 3
3/78.jpg 3
0/219.jpg 0
5/662.jpg 5
7/523.jpg 7
0/541.jpg 0
1/439.jpg 1
9/171.jpg 9
7/529.jpg 7
7/263.jpg 7
9/555.jpg 9
2/458.jpg 2
5/416.jpg 5
9/671.jpg 9
1/306.jpg 1
5/565.jpg 5
8/343.jpg 8
8/452.jpg 8
8/453.jpg 8
7/356.jpg 7
8/45.jpg 8
9/505.jpg 9
0/455.jpg 0
7/352.jpg 7
6/367.jpg 6
2/117.jpg 2
2/464.jpg 2
5/504.jpg 5
9/119.jpg 9
9/1147.jpg 9
2/563.jpg 2
0/344.jpg 0
4/139.jpg 4
9/59.jpg 9
5/134.jpg 5
3/571.jpg 3
8/992.jpg 8
6/486.jpg 6
0/63.jpg 0
9/660.jpg 9
9/75.jpg 9
3/134.jpg 3
2/206.jpg 2
5/797.jpg 5
6/742.jpg 6
9/328.jpg 9
8/732.jpg 8
6/343.jpg 6
6/643.jpg 6
6/397.jpg 6
5/133.jpg 5
5/765.jpg 5
7/549.jpg 7
6/724.jpg 6
4/241.jpg 4
5/719.jpg 5
8/287.jpg 8
3/126.jpg 3
9/167.jpg 9
1/281.jpg 1
2/212.jpg 2
4/42.jpg 4
3/572.jpg 3
3/576.jpg 3
8/847.jpg 8
1/120.jpg 1
1/153.jpg 1
9/484.jpg 9
5/783.jpg 5
2/148.jpg 2
5/640.jpg 5
0/554.jpg 0
7/552.jpg 7
9/1055.jpg 9
3/16.jpg 3
9/542.jpg 9
8/138.jpg 8
9/872.jpg 9
3/446.jpg 3
2/175.jpg 2
0/31.jpg 0
9/80.jpg 9
0/400.jpg 0
7/170.jpg 7
8/572.jpg 8
2/70.jpg 2
0/561.jpg 0
8/902.jpg 8
9/889.jpg 9
5/183.jpg 5
5/261.jpg 5
5/757.jpg 5
8/1042.jpg 8
8/414.jpg 8
9/49.jpg 9
3/203.jpg 3
3/478.jpg 3
6/698.jpg 6
5/720.jpg 5
7/682.jpg 7
3/473.jpg 3
5/316.jpg 5
0/457.jpg 0
7/681.jpg 7
8/1143.jpg 8
4/126.jpg 4
0/662.jpg 0
5/341.jpg 5
8/581.jpg 8
9/376.jpg 9
0/708.jpg 0
8/725.jpg 8
9/990.jpg 9
7/563.jpg 7
8/734.jpg 8
9/39.jpg 9
8/753.jpg 8
8/223.jpg 8
0/380.jpg 0
9/1008.jpg 9
8/814.jpg 8
9/524.jpg 9
7/806.jpg 7
4/169.jpg 4
4/306.jpg 4
5/516.jpg 5
1/511.jpg 1
6/240.jpg 6
7/676.jpg 7
3/486.jpg 3
8/402.jpg 8
5/373.jpg 5
4/388.jpg 4
8/1008.jpg 8
9/18.jpg 9
3/215.jpg 3
9/31.jpg 9
8/262.jpg 8
7/623.jpg 7
9/546.jpg 9
6/310.jpg 6
5/209.jpg 5
6/294.jpg 6
9/15.jpg 9
4/245.jpg 4
5/774.jpg 5
8/1038.jpg 8
8/882.jpg 8
5/161.jpg 5
4/80.jpg 4
3/512.jpg 3
2/407.jpg 2
7/354.jpg 7
5/176.jpg 5
9/1123.jpg 9
2/445.jpg 2
5/618.jpg 5
7/816.jpg 7
2/55.jpg 2
2/309.jpg 2
6/642.jpg 6
6/476.jpg 6
1/360.jpg 1
8/575.jpg 8
6/156.jpg 6
7/234.jpg 7
9/144.jpg 9
5/666.jpg 5
7/386.jpg 7
6/754.jpg 6
1/418.jpg 1
9/1139.jpg 9
8/301.jpg 8
6/711.jpg 6
9/630.jpg 9
3/438.jpg 3
2/92.jpg 2
9/307.jpg 9
9/786.jpg 9
8/80.jpg 8
0/199.jpg 0
9/770.jpg 9
3/565.jpg 3
4/338.jpg 4
2/400.jpg 2
2/0.jpg 2
8/321.jpg 8
9/23.jpg 9
7/243.jpg 7
0/577.jpg 0
0/607.jpg 0
9/346.jpg 9
8/926.jpg 8
9/89.jpg 9
7/88.jpg 7
7/278.jpg 7
2/437.jpg 2
6/418.jpg 6
4/29.jpg 4
9/1012.jpg 9
8/256.jpg 8
3/266.jpg 3
8/389.jpg 8
5/461.jpg 5
8/43.jpg 8
9/853.jpg 9
5/439.jpg 5
4/210.jpg 4
9/801.jpg 9
5/955.jpg 5
3/19.jpg 3
9/1017.jpg 9
3/292.jpg 3
6/47.jpg 6
1/393.jpg 1
9/447.jpg 9
7/304.jpg 7
9/1135.jpg 9
1/118.jpg 1
9/374.jpg 9
5/236.jpg 5
9/276.jpg 9
0/98.jpg 0
3/411.jpg 3
9/43.jpg 9
1/377.jpg 1
6/380.jpg 6
5/847.jpg 5
3/171.jpg 3
8/905.jpg 8
5/756.jpg 5
9/743.jpg 9
0/76.jpg 0
4/285.jpg 4
7/337.jpg 7
8/392.jpg 8
7/266.jpg 7
0/673.jpg 0
2/372.jpg 2
7/257.jpg 7
8/848.jpg 8
8/415.jpg 8
9/926.jpg 9
7/571.jpg 7
8/785.jpg 8
5/54.jpg 5
4/284.jpg 4
0/552.jpg 0
0/493.jpg 0
6/165.jpg 6
1/46.jpg 1
8/1024.jpg 8
0/687.jpg 0
7/419.jpg 7
1/482.jpg 1
5/672.jpg 5
8/723.jpg 8
7/49.jpg 7
7/291.jpg 7
6/435.jpg 6
0/35.jpg 0
7/696.jpg 7
2/589.jpg 2
8/865.jpg 8
5/2.jpg 5
1/354.jpg 1
5/936.jpg 5
4/214.jpg 4
2/62.jpg 2
3/319.jpg 3
8/920.jpg 8
6/314.jpg 6
5/483.jpg 5
5/81.jpg 5
6/368.jpg 6
3/416.jpg 3
6/76.jpg 6
7/40.jpg 7
9/175.jpg 9
6/207.jpg 6
1/402.jpg 1
2/380.jpg 2
2/364.jpg 2
5/573.jpg 5
1/174.jpg 1
6/293.jpg 6
3/399.jpg 3
0/212.jpg 0
5/217.jpg 5
7/344.jpg 7
6/85.jpg 6
9/1096.jpg 9
0/458.jpg 0
3/27.jpg 3
4/59.jpg 4
8/524.jpg 8
0/505.jpg 0
8/430.jpg 8
9/947.jpg 9
5/32.jpg 5
7/621.jpg 7
6/268.jpg 6
1/139.jpg 1
8/994.jpg 8
3/570.jpg 3
3/162.jpg 3
5/655.jpg 5
8/297.jpg 8
9/387.jpg 9
3/165.jpg 3
3/341.jpg 3
8/780.jpg 8
7/591.jpg 7
5/776.jpg 5
7/52.jpg 7
9/1021.jpg 9
3/112.jpg 3
9/37.jpg 9
2/290.jpg 2
7/822.jpg 7
1/463.jpg 1
8/408.jpg 8
3/388.jpg 3
9/215.jpg 9
0/276.jpg 0
4/345.jpg 4
4/180.jpg 4
1/112.jpg 1
8/608.jpg 8
1/54.jpg 1
8/877.jpg 8
9/907.jpg 9
5/152.jpg 5
5/525.jpg 5
0/369.jpg 0
9/858.jpg 9
8/1072.jpg 8
4/33.jpg 4
7/515.jpg 7
9/1004.jpg 9
5/275.jpg 5
3/209.jpg 3
9/1056.jpg 9
1/59.jpg 1
5/586.jpg 5
8/791.jpg 8
9/381.jpg 9
3/169.jpg 3
6/130.jpg 6
8/144.jpg 8
3/251.jpg 3
9/806.jpg 9
1/336.jpg 1
5/234.jpg 5
8/170.jpg 8
8/1030.jpg 8
5/448.jpg 5
1/87.jpg 1
7/603.jpg 7
3/139.jpg 3
0/82.jpg 0
5/870.jpg 5
7/636.jpg 7
3/177.jpg 3
1/283.jpg 1
9/1117.jpg 9
7/488.jpg 7
5/642.jpg 5
8/600.jpg 8
3/247.jpg 3
3/414.jpg 3
1/158.jpg 1
5/394.jpg 5
6/283.jpg 6
4/295.jpg 4
2/483.jpg 2
7/310.jpg 7
7/530.jpg 7
3/88.jpg 3
7/688.jpg 7
7/69.jpg 7
5/384.jpg 5
1/404.jpg 1
9/888.jpg 9
2/442.jpg 2
9/411.jpg 9
7/616.jpg 7
3/419.jpg 3
8/653.jpg 8
8/593.jpg 8
5/170.jpg 5
9/153.jpg 9
8/175.jpg 8
9/324.jpg 9
8/1013.jpg 8
9/533.jpg 9
3/100.jpg 3
9/624.jpg 9
6/670.jpg 6
5/108.jpg 5
8/966.jpg 8
7/737.jpg 7
8/120.jpg 8
9/209.jpg 9
6/528.jpg 6
6/93.jpg 6
8/383.jpg 8
6/423.jpg 6
9/1066.jpg 9
6/534.jpg 6
3/543.jpg 3
5/401.jpg 5
3/581.jpg 3
5/352.jpg 5
7/770.jpg 7
2/338.jpg 2
0/621.jpg 0
6/402.jpg 6
0/379.jpg 0
0/78.jpg 0
9/53.jpg 9
1/18.jpg 1
7/389.jpg 7
6/66.jpg 6
2/82.jpg 2
2/188.jpg 2
8/456.jpg 8
9/4.jpg 9
9/731.jpg 9
8/341.jpg 8
8/480.jpg 8
9/110.jpg 9
7/359.jpg 7
0/696.jpg 0
8/348.jpg 8
0/376.jpg 0
0/534.jpg 0
2/32.jpg 2
7/609.jpg 7
9/640.jpg 9
6/254.jpg 6
0/450.jpg 0
0/312.jpg 0
9/1059.jpg 9
8/812.jpg 8
7/145.jpg 7
7/324.jpg 7
7/361.jpg 7
3/398.jpg 3
1/162.jpg 1
2/412.jpg 2
2/546.jpg 2
5/969.jpg 5
1/173.jpg 1
8/935.jpg 8
9/509.jpg 9
2/23.jpg 2
3/115.jpg 3
6/284.jpg 6
9/341.jpg 9
7/5.jpg 7
3/110.jpg 3
5/380.jpg 5
9/65.jpg 9
3/200.jpg 3
3/29.jpg 3
8/666.jpg 8
1/142.jpg 1
4/371.jpg 4
2/287.jpg 2
8/1041.jpg 8
9/955.jpg 9
2/79.jpg 2
3/178.jpg 3
9/142.jpg 9
8/49.jpg 8
9/687.jpg 9
8/488.jpg 8
4/361.jpg 4
0/378.jpg 0
8/609.jpg 8
2/318.jpg 2
7/332.jpg 7
3/10.jpg 3
2/133.jpg 2
0/237.jpg 0
4/140.jpg 4
3/420.jpg 3
3/340.jpg 3
4/171.jpg 4
1/146.jpg 1
3/183.jpg 3
3/547.jpg 3
7/463.jpg 7
2/59.jpg 2
2/382.jpg 2
9/213.jpg 9
9/526.jpg 9
9/877.jpg 9
0/262.jpg 0
9/349.jpg 9
5/14.jpg 5
6/707.jpg 6
8/238.jpg 8
5/965.jpg 5
5/780.jpg 5
6/598.jpg 6
2/191.jpg 2
3/567.jpg 3
9/585.jpg 9
7/550.jpg 7
5/892.jpg 5
0/406.jpg 0
9/1063.jpg 9
9/881.jpg 9
2/395.jpg 2
3/450.jpg 3
1/370.jpg 1
1/448.jpg 1
5/688.jpg 5
5/118.jpg 5
8/216.jpg 8
1/124.jpg 1
0/240.jpg 0
9/833.jpg 9
9/919.jpg 9
6/245.jpg 6
9/1158.jpg 9
1/378.jpg 1
6/459.jpg 6
7/800.jpg 7
6/704.jpg 6
7/489.jpg 7
6/163.jpg 6
9/345.jpg 9
7/400.jpg 7
0/674.jpg 0
9/559.jpg 9
9/938.jpg 9
3/485.jpg 3
7/559.jpg 7
8/559.jpg 8
6/564.jpg 6
5/398.jpg 5
3/339.jpg 3
2/96.jpg 2
9/366.jpg 9
4/376.jpg 4
0/684.jpg 0
6/521.jpg 6
8/792.jpg 8
5/883.jpg 5
9/239.jpg 9
0/2.jpg 0
8/33.jpg 8
8/667.jpg 8
0/669.jpg 0
1/185.jpg 1
9/81.jpg 9
3/440.jpg 3
1/138.jpg 1
8/859.jpg 8
9/400.jpg 9
0/153.jpg 0
7/56.jpg 7
7/32.jpg 7
0/464.jpg 0
2/531.jpg 2
8/756.jpg 8
3/455.jpg 3
7/43.jpg 7
2/25.jpg 2
4/267.jpg 4
1/104.jpg 1
7/618.jpg 7
1/268.jpg 1
8/649.jpg 8
7/110.jpg 7
0/543.jpg 0
0/144.jpg 0
2/80.jpg 2
4/324.jpg 4
3/507.jpg 3
1/160.jpg 1
2/468.jpg 2
3/65.jpg 3
9/807.jpg 9
9/241.jpg 9
5/763.jpg 5
8/804.jpg 8
1/499.jpg 1
9/9.jpg 9
8/325.jpg 8
5/949.jpg 5
8/214.jpg 8
4/128.jpg 4
7/734.jpg 7
7/196.jpg 7
8/730.jpg 8
6/547.jpg 6
8/679.jpg 8
3/314.jpg 3
8/491.jpg 8
3/187.jpg 3
8/126.jpg 8
9/162.jpg 9
0/620.jpg 0
0/72.jpg 0
3/241.jpg 3
7/761.jpg 7
9/674.jpg 9
2/373.jpg 2
8/375.jpg 8
2/170.jpg 2
2/229.jpg 2
0/604.jpg 0
9/1002.jpg 9
3/24.jpg 3
8/1005.jpg 8
9/622.jpg 9
6/89.jpg 6
8/855.jpg 8
4/38.jpg 4
2/250.jpg 2
2/172.jpg 2
3/244.jpg 3
9/277.jpg 9
7/181.jpg 7
8/128.jpg 8
9/312.jpg 9
0/372.jpg 0
1/196.jpg 1
0/667.jpg 0
4/325.jpg 4
1/224.jpg 1
8/849.jpg 8
3/492.jpg 3
8/1129.jpg 8
4/304.jpg 4
1/423.jpg 1
8/517.jpg 8
8/583.jpg 8
1/440.jpg 1
8/825.jpg 8
8/58.jpg 8
0/591.jpg 0
5/551.jpg 5
5/770.jpg 5
0/195.jpg 0
7/394.jpg 7
6/589.jpg 6
2/171.jpg 2
5/70.jpg 5
7/9.jpg 7
9/101.jpg 9
2/257.jpg 2
5/796.jpg 5
3/76.jpg 3
5/470.jpg 5
8/299.jpg 8
6/464.jpg 6
8/615.jpg 8
8/579.jpg 8
0/150.jpg 0
7/339.jpg 7
9/76.jpg 9
0/367.jpg 0
0/231.jpg 0
3/449.jpg 3
7/484.jpg 7
1/43.jpg 1
9/635.jpg 9
5/741.jpg 5
6/161.jpg 6
1/145.jpg 1
8/560.jpg 8
2/3.jpg 2
0/194.jpg 0
8/588.jpg 8
7/275.jpg 7
9/196.jpg 9
8/149.jpg 8
0/694.jpg 0
7/287.jpg 7
0/234.jpg 0
8/278.jpg 8
4/300.jpg 4
7/316.jpg 7
3/361.jpg 3
0/547.jpg 0
9/917.jpg 9
5/645.jpg 5
9/883.jpg 9
0/20.jpg 0
3/310.jpg 3
8/836.jpg 8
5/772.jpg 5
0/187.jpg 0
5/612.jpg 5
9/661.jpg 9
3/277.jpg 3
0/227.jpg 0
5/697.jpg 5
5/656.jpg 5
8/206.jpg 8
8/998.jpg 8
6/657.jpg 6
2/281.jpg 2
6/58.jpg 6
8/1087.jpg 8
1/144.jpg 1
8/574.jpg 8
6/638.jpg 6
7/534.jpg 7
5/590.jpg 5
7/551.jpg 7
5/171.jpg 5
3/94.jpg 3
9/16.jpg 9
5/350.jpg 5
8/92.jpg 8
0/421.jpg 0
9/777.jpg 9
0/615.jpg 0
9/425.jpg 9
0/184.jpg 0
1/467.jpg 1
4/152.jpg 4
3/476.jpg 3
3/42.jpg 3
5/441.jpg 5
9/204.jpg 9
5/907.jpg 5
6/556.jpg 6
4/251.jpg 4
2/540.jpg 2
1/303.jpg 1
3/8.jpg 3
0/467.jpg 0
9/1131.jpg 9
9/571.jpg 9
5/346.jpg 5
9/151.jpg 9
7/648.jpg 7
2/579.jpg 2
9/943.jpg 9
9/686.jpg 9
6/378.jpg 6
6/519.jpg 6
8/240.jpg 8
9/233.jpg 9
6/200.jpg 6
9/358.jpg 9
4/31.jpg 4
8/937.jpg 8
6/574.jpg 6
5/593.jpg 5
9/377.jpg 9
6/535.jpg 6
5/853.jpg 5
6/92.jpg 6
7/748.jpg 7
9/785.jpg 9
7/482.jpg 7
0/531.jpg 0
8/436.jpg 8
8/424.jpg 8
7/654.jpg 7
1/348.jpg 1
0/703.jpg 0
0/639.jpg 0
9/268.jpg 9
6/735.jpg 6
6/414.jpg 6
8/1127.jpg 8
0/176.jpg 0
8/1126.jpg 8
2/594.jpg 2
8/1037.jpg 8
5/793.jpg 5
1/513.jpg 1
0/430.jpg 0
9/969.jpg 9
6/337.jpg 6
0/664.jpg 0
9/1134.jpg 9
8/364.jpg 8
9/1085.jpg 9
2/20.jpg 2
7/81.jpg 7
2/78.jpg 2
8/449.jpg 8
2/330.jpg 2
1/183.jpg 1
2/300.jpg 2
3/413.jpg 3
1/438.jpg 1
8/721.jpg 8
9/476.jpg 9
9/1152.jpg 9
0/428.jpg 0
0/203.jpg 0
0/172.jpg 0
7/376.jpg 7
6/501.jpg 6
5/199.jpg 5
8/1052.jpg 8
0/251.jpg 0
0/171.jpg 0
8/547.jpg 8
4/204.jpg 4
2/397.jpg 2
1/246.jpg 1
7/663.jpg 7
7/258.jpg 7
4/381.jpg 4
7/442.jpg 7
9/685.jpg 9
8/562.jpg 8
9/918.jpg 9
2/475.jpg 2
1/424.jpg 1
5/578.jpg 5
5/451.jpg 5
5/169.jpg 5
9/280.jpg 9
1/96.jpg 1
0/57.jpg 0
3/202.jpg 3
7/17.jpg 7
0/355.jpg 0
2/389.jpg 2
5/213.jpg 5
8/873.jpg 8
0/542.jpg 0
8/822.jpg 8
8/868.jpg 8
8/248.jpg 8
9/1109.jpg 9
6/621.jpg 6
5/85.jpg 5
2/293.jpg 2
7/694.jpg 7
5/911.jpg 5
7/217.jpg 7
8/726.jpg 8
2/5.jpg 2
8/637.jpg 8
8/159.jpg 8
9/616.jpg 9
8/539.jpg 8
9/765.jpg 9
8/1142.jpg 8
9/854.jpg 9
4/365.jpg 4
9/747.jpg 9
9/403.jpg 9
8/617.jpg 8
5/245.jpg 5
8/760.jpg 8
2/569.jpg 2
6/369.jpg 6
8/532.jpg 8
1/61.jpg 1
7/532.jpg 7
9/788.jpg 9
9/912.jpg 9
4/301.jpg 4
7/443.jpg 7
8/625.jpg 8
7/562.jpg 7
1/3.jpg 1
8/1073.jpg 8
3/216.jpg 3
9/829.jpg 9
3/109.jpg 3
1/244.jpg 1
3/204.jpg 3
7/168.jpg 7

================================================
FILE: util/val.txt
================================================
9/677.jpg 9
8/982.jpg 8
9/192.jpg 9
1/501.jpg 1
5/447.jpg 5
9/511.jpg 9
1/321.jpg 1
2/49.jpg 2
2/430.jpg 2
6/433.jpg 6
9/753.jpg 9
6/101.jpg 6
9/993.jpg 9
5/22.jpg 5
4/221.jpg 4
9/48.jpg 9
9/1024.jpg 9
9/178.jpg 9
7/557.jpg 7
2/261.jpg 2
8/374.jpg 8
5/24.jpg 5
5/617.jpg 5
0/524.jpg 0
8/85.jpg 8
0/116.jpg 0
2/560.jpg 2
0/545.jpg 0
8/165.jpg 8
9/494.jpg 9
9/173.jpg 9
9/1005.jpg 9
4/373.jpg 4
1/176.jpg 1
9/1107.jpg 9
2/532.jpg 2
1/516.jpg 1
6/252.jpg 6
9/848.jpg 9
9/285.jpg 9
6/673.jpg 6
8/891.jpg 8
1/349.jpg 1
3/86.jpg 3
8/1033.jpg 8
5/97.jpg 5
8/897.jpg 8
0/592.jpg 0
8/342.jpg 8
1/128.jpg 1
4/292.jpg 4
8/939.jpg 8
5/379.jpg 5
8/198.jpg 8
6/577.jpg 6
9/793.jpg 9
2/269.jpg 2
2/375.jpg 2
8/19.jpg 8
6/20.jpg 6
8/1044.jpg 8
6/309.jpg 6
8/461.jpg 8
3/335.jpg 3
3/328.jpg 3
8/909.jpg 8
9/1087.jpg 9
2/363.jpg 2
7/490.jpg 7
1/201.jpg 1
7/407.jpg 7
7/78.jpg 7
8/7.jpg 8
5/203.jpg 5
8/489.jpg 8
9/637.jpg 9
3/549.jpg 3
4/90.jpg 4
3/290.jpg 3
8/188.jpg 8
7/645.jpg 7
1/314.jpg 1
5/693.jpg 5
2/472.jpg 2
3/28.jpg 3
0/339.jpg 0
3/379.jpg 3
6/273.jpg 6
3/219.jpg 3
5/754.jpg 5
5/363.jpg 5
7/656.jpg 7
5/123.jpg 5
6/488.jpg 6
9/930.jpg 9
6/317.jpg 6
8/384.jpg 8
5/191.jpg 5
9/1132.jpg 9
6/236.jpg 6
5/690.jpg 5
4/65.jpg 4
8/390.jpg 8
3/7.jpg 3
9/980.jpg 9
0/282.jpg 0
0/163.jpg 0
5/135.jpg 5
2/490.jpg 2
6/651.jpg 6
4/196.jpg 4
7/268.jpg 7
9/899.jpg 9
5/935.jpg 5
3/107.jpg 3
4/349.jpg 4
4/313.jpg 4
1/182.jpg 1
8/247.jpg 8
9/702.jpg 9
8/189.jpg 8
6/198.jpg 6
8/622.jpg 8
5/107.jpg 5
5/810.jpg 5
8/66.jpg 8
6/190.jpg 6
5/4.jpg 5
3/337.jpg 3
0/377.jpg 0
9/259.jpg 9
8/674.jpg 8
9/1095.jpg 9
9/267.jpg 9
7/445.jpg 7
9/251.jpg 9
9/104.jpg 9
1/507.jpg 1
8/1057.jpg 8
6/14.jpg 6
8/913.jpg 8
3/355.jpg 3
9/667.jpg 9
9/426.jpg 9
8/400.jpg 8
8/68.jpg 8
5/335.jpg 5
9/905.jpg 9
8/728.jpg 8
8/837.jpg 8
5/67.jpg 5
9/716.jpg 9
2/98.jpg 2
1/83.jpg 1
9/1148.jpg 9
1/407.jpg 1
3/182.jpg 3
9/1112.jpg 9
9/655.jpg 9
7/673.jpg 7
6/603.jpg 6
5/524.jpg 5
6/628.jpg 6
9/224.jpg 9
9/480.jpg 9
1/209.jpg 1
9/1140.jpg 9
4/208.jpg 4
2/310.jpg 2
9/396.jpg 9
3/323.jpg 3
6/51.jpg 6
6/626.jpg 6
9/550.jpg 9
6/602.jpg 6
5/855.jpg 5
8/322.jpg 8
9/944.jpg 9
0/626.jpg 0
8/747.jpg 8
2/519.jpg 2
7/381.jpg 7
9/933.jpg 9
7/295.jpg 7
9/297.jpg 9
8/610.jpg 8
4/236.jpg 4
5/20.jpg 5
6/226.jpg 6
5/95.jpg 5
7/671.jpg 7
2/285.jpg 2
0/58.jpg 0
0/25.jpg 0
0/245.jpg 0
9/1086.jpg 9
9/672.jpg 9
5/809.jpg 5
7/50.jpg 7
9/695.jpg 9
7/238.jpg 7
1/75.jpg 1
2/45.jpg 2
1/416.jpg 1
8/440.jpg 8
3/521.jpg 3
7/528.jpg 7
7/466.jpg 7
5/280.jpg 5
4/109.jpg 4
8/798.jpg 8
8/527.jpg 8
2/550.jpg 2
9/1049.jpg 9
5/263.jpg 5
4/162.jpg 4
7/569.jpg 7
3/230.jpg 3
6/529.jpg 6
3/47.jpg 3
0/26.jpg 0
9/569.jpg 9
8/1092.jpg 8
3/140.jpg 3
9/565.jpg 9
8/335.jpg 8
3/313.jpg 3
8/774.jpg 8
6/478.jpg 6
5/589.jpg 5
8/533.jpg 8
2/301.jpg 2
9/649.jpg 9
9/988.jpg 9
4/27.jpg 4
8/36.jpg 8
9/701.jpg 9
3/55.jpg 3
3/101.jpg 3
5/643.jpg 5
2/423.jpg 2
6/705.jpg 6
0/267.jpg 0
5/345.jpg 5
7/280.jpg 7
8/57.jpg 8
5/920.jpg 5
5/318.jpg 5
4/398.jpg 4
0/571.jpg 0
7/286.jpg 7
5/308.jpg 5
2/555.jpg 2
9/302.jpg 9
2/337.jpg 2
5/268.jpg 5
9/609.jpg 9
8/202.jpg 8
8/500.jpg 8
6/443.jpg 6
3/163.jpg 3
5/795.jpg 5
8/358.jpg 8
8/4.jpg 8
5/679.jpg 5
4/11.jpg 4
8/738.jpg 8
6/153.jpg 6
8/665.jpg 8
5/19.jpg 5
9/407.jpg 9
5/230.jpg 5
2/477.jpg 2
5/576.jpg 5
7/272.jpg 7
3/80.jpg 3
2/391.jpg 2
6/634.jpg 6
6/285.jpg 6
5/205.jpg 5
0/680.jpg 0
1/136.jpg 1
2/575.jpg 2
7/707.jpg 7
4/323.jpg 4
6/627.jpg 6
0/712.jpg 0
7/317.jpg 7
5/355.jpg 5
9/28.jpg 9
6/495.jpg 6
6/177.jpg 6
9/466.jpg 9
3/146.jpg 3
5/424.jpg 5
7/799.jpg 7
4/15.jpg 4
5/381.jpg 5
7/393.jpg 7
7/23.jpg 7
0/608.jpg 0
5/36.jpg 5
8/1063.jpg 8
9/172.jpg 9
2/493.jpg 2
3/346.jpg 3
4/305.jpg 4
6/212.jpg 6
0/677.jpg 0
3/234.jpg 3
0/118.jpg 0
4/394.jpg 4
7/625.jpg 7
5/901.jpg 5
1/236.jpg 1
5/337.jpg 5
6/610.jpg 6
8/1125.jpg 8
7/461.jpg 7
2/516.jpg 2
8/137.jpg 8
8/379.jpg 8
8/624.jpg 8
5/927.jpg 5
2/522.jpg 2
2/130.jpg 2
6/713.jpg 6
3/213.jpg 3
3/62.jpg 3
0/106.jpg 0
8/787.jpg 8
5/823.jpg 5
6/522.jpg 6
2/418.jpg 2
9/183.jpg 9
9/894.jpg 9
7/464.jpg 7
5/881.jpg 5
9/876.jpg 9
2/48.jpg 2
6/668.jpg 6
9/1151.jpg 9
6/73.jpg 6
9/126.jpg 9
1/150.jpg 1
6/727.jpg 6
5/464.jpg 5
5/862.jpg 5
6/172.jpg 6
1/457.jpg 1
6/446.jpg 6
2/396.jpg 2
0/341.jpg 0
0/536.jpg 0
4/352.jpg 4
9/846.jpg 9
5/789.jpg 5
9/1047.jpg 9
5/258.jpg 5
3/454.jpg 3
8/771.jpg 8
9/450.jpg 9
5/100.jpg 5
2/342.jpg 2
7/58.jpg 7
7/426.jpg 7
7/716.jpg 7
8/251.jpg 8
5/110.jpg 5
1/70.jpg 1
6/545.jpg 6
3/316.jpg 3
7/130.jpg 7
6/388.jpg 6
1/10.jpg 1
0/209.jpg 0
5/338.jpg 5
1/250.jpg 1
0/532.jpg 0
7/167.jpg 7
6/319.jpg 6
8/585.jpg 8
9/1074.jpg 9
4/168.jpg 4
2/543.jpg 2
6/199.jpg 6
2/24.jpg 2
5/104.jpg 5
1/192.jpg 1
5/970.jpg 5
8/1067.jpg 8
8/274.jpg 8
6/385.jpg 6
3/350.jpg 3
1/279.jpg 1
2/381.jpg 2
7/450.jpg 7
7/662.jpg 7
9/11.jpg 9
1/105.jpg 1
0/560.jpg 0
8/176.jpg 8
7/25.jpg 7
3/563.jpg 3
5/908.jpg 5
8/838.jpg 8
7/60.jpg 7
0/110.jpg 0
2/264.jpg 2
4/265.jpg 4
3/333.jpg 3
9/964.jpg 9
5/777.jpg 5
3/4.jpg 3
2/126.jpg 2
4/266.jpg 4
2/222.jpg 2
4/263.jpg 4
2/213.jpg 2
6/374.jpg 6
9/429.jpg 9
9/1164.jpg 9
8/515.jpg 8
1/205.jpg 1
4/377.jpg 4
8/857.jpg 8
9/105.jpg 9
3/254.jpg 3
8/763.jpg 8
9/218.jpg 9
6/339.jpg 6
5/871.jpg 5
9/552.jpg 9
7/195.jpg 7
3/309.jpg 3
7/633.jpg 7
6/313.jpg 6
0/628.jpg 0
5/284.jpg 5
8/495.jpg 8
9/477.jpg 9
3/71.jpg 3
1/413.jpg 1
7/67.jpg 7
9/688.jpg 9
6/246.jpg 6
3/465.jpg 3
1/272.jpg 1
8/446.jpg 8
5/362.jpg 5
7/210.jpg 7
5/187.jpg 5
9/811.jpg 9
3/48.jpg 3
3/506.jpg 3
5/71.jpg 5
3/114.jpg 3
7/601.jpg 7
6/593.jpg 6
3/207.jpg 3
8/564.jpg 8
8/110.jpg 8
8/284.jpg 8
4/159.jpg 4
4/302.jpg 4
4/357.jpg 4
1/65.jpg 1
9/214.jpg 9
3/145.jpg 3
7/247.jpg 7
9/825.jpg 9
9/391.jpg 9
8/616.jpg 8
8/1026.jpg 8
3/508.jpg 3
9/983.jpg 9
0/475.jpg 0
5/175.jpg 5
9/958.jpg 9
4/191.jpg 4
3/376.jpg 3
7/567.jpg 7
9/721.jpg 9
2/28.jpg 2
5/334.jpg 5
7/299.jpg 7
3/0.jpg 3
3/225.jpg 3
6/576.jpg 6
9/420.jpg 9
5/931.jpg 5
0/617.jpg 0
2/440.jpg 2
5/538.jpg 5
8/990.jpg 8
6/62.jpg 6
9/827.jpg 9
1/320.jpg 1
6/714.jpg 6
8/22.jpg 8
0/299.jpg 0
8/955.jpg 8
5/244.jpg 5
5/412.jpg 5
1/197.jpg 1
7/715.jpg 7
0/224.jpg 0
7/565.jpg 7
7/211.jpg 7
8/385.jpg 8
7/80.jpg 7
1/35.jpg 1
5/111.jpg 5
9/423.jpg 9
4/277.jpg 4
9/603.jpg 9
5/88.jpg 5
7/496.jpg 7
5/340.jpg 5
6/508.jpg 6
2/448.jpg 2
4/212.jpg 4
8/809.jpg 8
0/578.jpg 0
6/206.jpg 6
5/83.jpg 5
1/289.jpg 1
8/927.jpg 8
6/493.jpg 6
5/548.jpg 5
9/179.jpg 9
5/23.jpg 5
8/504.jpg 8
8/928.jpg 8
6/256.jpg 6
2/537.jpg 2
8/148.jpg 8
8/782.jpg 8
6/241.jpg 6
7/101.jpg 7
8/866.jpg 8
9/364.jpg 9
1/278.jpg 1
0/386.jpg 0
1/474.jpg 1
0/91.jpg 0
5/527.jpg 5
1/22.jpg 1
1/480.jpg 1
5/844.jpg 5
6/346.jpg 6
0/625.jpg 0
8/0.jpg 8
3/561.jpg 3
9/367.jpg 9
7/815.jpg 7
5/148.jpg 5
8/12.jpg 8
6/36.jpg 6
0/314.jpg 0
4/28.jpg 4
9/206.jpg 9
1/88.jpg 1
9/382.jpg 9
8/968.jpg 8
0/318.jpg 0
4/195.jpg 4
2/415.jpg 2
0/159.jpg 0
8/191.jpg 8
7/137.jpg 7
3/56.jpg 3
7/125.jpg 7
5/221.jpg 5
4/127.jpg 4
3/377.jpg 3
5/769.jpg 5
7/729.jpg 7
6/303.jpg 6
3/3.jpg 3
7/456.jpg 7
6/74.jpg 6
0/17.jpg 0
6/558.jpg 6
4/114.jpg 4
1/218.jpg 1
5/732.jpg 5
0/426.jpg 0
9/95.jpg 9
8/167.jpg 8
8/711.jpg 8
6/135.jpg 6
7/539.jpg 7
6/700.jpg 6
6/532.jpg 6
8/17.jpg 8
0/401.jpg 0
1/4.jpg 1
1/130.jpg 1
7/355.jpg 7
5/26.jpg 5
9/1053.jpg 9
7/36.jpg 7
5/954.jpg 5
6/635.jpg 6
9/911.jpg 9
5/251.jpg 5
9/781.jpg 9
6/477.jpg 6
5/44.jpg 5
2/299.jpg 2
0/433.jpg 0
7/597.jpg 7
8/1117.jpg 8
1/116.jpg 1
3/184.jpg 3
3/533.jpg 3
3/32.jpg 3
5/600.jpg 5
8/1053.jpg 8
5/255.jpg 5
9/129.jpg 9
9/506.jpg 9
1/259.jpg 1
2/39.jpg 2
1/271.jpg 1
9/951.jpg 9
5/150.jpg 5
6/540.jpg 6
6/251.jpg 6
7/246.jpg 7
5/29.jpg 5
3/560.jpg 3
6/95.jpg 6
4/93.jpg 4
5/599.jpg 5
9/530.jpg 9
9/152.jpg 9
4/360.jpg 4
1/31.jpg 1
7/714.jpg 7
8/770.jpg 8
9/437.jpg 9
2/41.jpg 2
6/722.jpg 6
6/37.jpg 6
6/49.jpg 6
1/24.jpg 1
7/358.jpg 7
8/661.jpg 8
6/384.jpg 6
9/568.jpg 9
8/432.jpg 8
0/296.jpg 0
3/226.jpg 3
1/431.jpg 1
2/280.jpg 2
8/915.jpg 8
0/32.jpg 0
9/1041.jpg 9
5/237.jpg 5
8/852.jpg 8
5/807.jpg 5
7/349.jpg 7
3/484.jpg 3
5/253.jpg 5
8/556.jpg 8
8/338.jpg 8
0/4.jpg 0
3/545.jpg 3
9/997.jpg 9
6/221.jpg 6
9/384.jpg 9
2/136.jpg 2
2/203.jpg 2
8/38.jpg 8
6/684.jpg 6
9/234.jpg 9
3/267.jpg 3
4/259.jpg 4
5/64.jpg 5
8/887.jpg 8
7/593.jpg 7
6/381.jpg 6
0/405.jpg 0
2/347.jpg 2
7/357.jpg 7
0/136.jpg 0
5/493.jpg 5
9/1104.jpg 9
8/47.jpg 8
5/886.jpg 5
4/172.jpg 4
8/1016.jpg 8
5/76.jpg 5
3/167.jpg 3
1/461.jpg 1
6/259.jpg 6
8/1090.jpg 8
1/230.jpg 1
8/1031.jpg 8
8/1070.jpg 8
5/151.jpg 5
3/471.jpg 3
8/397.jpg 8
5/15.jpg 5
7/747.jpg 7
2/151.jpg 2
9/953.jpg 9
5/738.jpg 5
4/334.jpg 4
0/50.jpg 0
4/198.jpg 4
9/621.jpg 9
2/239.jpg 2
8/1097.jpg 8
8/411.jpg 8
2/444.jpg 2
7/408.jpg 7
8/316.jpg 8
7/418.jpg 7
9/799.jpg 9
7/650.jpg 7
1/389.jpg 1
4/400.jpg 4
9/942.jpg 9
3/5.jpg 3
5/53.jpg 5
0/399.jpg 0
2/131.jpg 2
0/366.jpg 0
8/817.jpg 8
8/743.jpg 8
1/114.jpg 1
6/566.jpg 6
9/540.jpg 9
1/266.jpg 1
9/401.jpg 9
8/124.jpg 8
8/764.jpg 8
5/821.jpg 5
0/228.jpg 0
3/222.jpg 3
8/353.jpg 8
3/417.jpg 3
2/104.jpg 2
4/22.jpg 4
7/303.jpg 7
3/393.jpg 3
8/357.jpg 8
6/458.jpg 6
1/341.jpg 1
9/823.jpg 9
5/366.jpg 5
8/776.jpg 8
9/719.jpg 9
6/729.jpg 6
7/362.jpg 7
6/596.jpg 6
8/1022.jpg 8
5/684.jpg 5
5/43.jpg 5
0/609.jpg 0
7/382.jpg 7
9/47.jpg 9
4/141.jpg 4
2/57.jpg 2
7/424.jpg 7
8/81.jpg 8
3/128.jpg 3
9/632.jpg 9
5/850.jpg 5
0/178.jpg 0
6/320.jpg 6
5/238.jpg 5
8/619.jpg 8
8/1149.jpg 8
8/772.jpg 8
7/479.jpg 7
7/409.jpg 7
9/455.jpg 9
5/426.jpg 5
9/317.jpg 9
9/594.jpg 9
7/548.jpg 7
8/534.jpg 8
6/676.jpg 6
7/422.jpg 7
8/261.jpg 8
7/723.jpg 7
0/27.jpg 0
5/839.jpg 5
1/267.jpg 1
4/119.jpg 4
5/62.jpg 5
7/767.jpg 7
9/598.jpg 9
2/492.jpg 2
4/91.jpg 4
6/228.jpg 6
7/8.jpg 7
9/1149.jpg 9
7/638.jpg 7
5/115.jpg 5
6/756.jpg 6
0/80.jpg 0
9/1153.jpg 9
5/166.jpg 5
0/174.jpg 0
9/668.jpg 9
4/359.jpg 4
0/706.jpg 0
3/479.jpg 3
7/768.jpg 7
9/98.jpg 9
3/466.jpg 3
1/240.jpg 1
9/1068.jpg 9
1/346.jpg 1
0/692.jpg 0
0/24.jpg 0
2/94.jpg 2
0/429.jpg 0
4/192.jpg 4
8/24.jpg 8
7/802.jpg 7
6/61.jpg 6
2/312.jpg 2
5/561.jpg 5
5/479.jpg 5
7/157.jpg 7
5/117.jpg 5
0/21.jpg 0
6/6.jpg 6
7/335.jpg 7
7/120.jpg 7
2/35.jpg 2
3/138.jpg 3
9/380.jpg 9
0/135.jpg 0
8/1099.jpg 8
3/52.jpg 3
1/216.jpg 1
6/275.jpg 6
2/208.jpg 2
4/136.jpg 4
0/646.jpg 0
7/788.jpg 7
8/336.jpg 8
8/729.jpg 8
8/1098.jpg 8
5/342.jpg 5
7/375.jpg 7
7/462.jpg 7
7/267.jpg 7
0/363.jpg 0
8/475.jpg 8
0/232.jpg 0
0/337.jpg 0
2/154.jpg 2
9/71.jpg 9
0/600.jpg 0
9/864.jpg 9
4/71.jpg 4
3/147.jpg 3
8/566.jpg 8
5/804.jpg 5
0/496.jpg 0
8/777.jpg 8
5/297.jpg 5
7/94.jpg 7
3/58.jpg 3
9/812.jpg 9
6/622.jpg 6
6/492.jpg 6
3/116.jpg 3
0/44.jpg 0
9/652.jpg 9
3/259.jpg 3
6/214.jpg 6
1/308.jpg 1
0/603.jpg 0
2/40.jpg 2
5/552.jpg 5
8/227.jpg 8
3/513.jpg 3
9/226.jpg 9
7/259.jpg 7
6/427.jpg 6
7/578.jpg 7
8/540.jpg 8
3/504.jpg 3
7/742.jpg 7
8/70.jpg 8
2/31.jpg 2
3/228.jpg 3
5/888.jpg 5
5/505.jpg 5
9/641.jpg 9
8/228.jpg 8
0/332.jpg 0
8/886.jpg 8
1/456.jpg 1
7/566.jpg 7
7/437.jpg 7
6/527.jpg 6
0/43.jpg 0
4/78.jpg 4
0/198.jpg 0
8/828.jpg 8
5/136.jpg 5
9/412.jpg 9
7/13.jpg 7
6/257.jpg 6
3/82.jpg 3
0/85.jpg 0
5/957.jpg 5
1/107.jpg 1
1/495.jpg 1
3/307.jpg 3
7/749.jpg 7
8/265.jpg 8
6/235.jpg 6
2/530.jpg 2
5/687.jpg 5
2/69.jpg 2
5/158.jpg 5
5/79.jpg 5
7/89.jpg 7
8/34.jpg 8
8/1.jpg 8
2/76.jpg 2
6/736.jpg 6
8/826.jpg 8
3/562.jpg 3
7/148.jpg 7
5/704.jpg 5
6/485.jpg 6
0/479.jpg 0
5/568.jpg 5
7/560.jpg 7
7/136.jpg 7
6/447.jpg 6
2/132.jpg 2
9/185.jpg 9
0/252.jpg 0
2/402.jpg 2
7/712.jpg 7
8/582.jpg 8
7/791.jpg 7
5/490.jpg 5
3/395.jpg 3
7/39.jpg 7
3/505.jpg 3
7/786.jpg 7
8/29.jpg 8
9/150.jpg 9
5/535.jpg 5
5/182.jpg 5
8/860.jpg 8
9/850.jpg 9
2/101.jpg 2
1/510.jpg 1
6/262.jpg 6
6/584.jpg 6
4/363.jpg 4
6/362.jpg 6
0/133.jpg 0
8/888.jpg 8
7/468.jpg 7
2/463.jpg 2
0/309.jpg 0
8/709.jpg 8
9/582.jpg 9
6/117.jpg 6
6/490.jpg 6
8/280.jpg 8
7/511.jpg 7
2/214.jpg 2
7/82.jpg 7
3/550.jpg 3
0/350.jpg 0
6/608.jpg 6
9/32.jpg 9
5/841.jpg 5
8/548.jpg 8
6/5.jpg 6
5/791.jpg 5
1/137.jpg 1
3/275.jpg 3
4/268.jpg 4
9/19.jpg 9
6/301.jpg 6
0/511.jpg 0
6/393.jpg 6
9/885.jpg 9
0/454.jpg 0
9/699.jpg 9
9/1036.jpg 9
8/1145.jpg 8
5/794.jpg 5
9/237.jpg 9
8/324.jpg 8
9/838.jpg 9
0/124.jpg 0
0/477.jpg 0
5/845.jpg 5
8/241.jpg 8
9/618.jpg 9
1/64.jpg 1
1/141.jpg 1
4/154.jpg 4
9/762.jpg 9
8/632.jpg 8
6/365.jpg 6
2/470.jpg 2
6/215.jpg 6
5/98.jpg 5
4/279.jpg 4
9/778.jpg 9
6/41.jpg 6
6/326.jpg 6
7/323.jpg 7
8/796.jpg 8
5/710.jpg 5
5/929.jpg 5
6/743.jpg 6
9/228.jpg 9
8/684.jpg 8
8/52.jpg 8
8/720.jpg 8
9/26.jpg 9
6/738.jpg 6
5/971.jpg 5
7/239.jpg 7
9/822.jpg 9
7/574.jpg 7
8/74.jpg 8
8/118.jpg 8
7/24.jpg 7
3/375.jpg 3
7/494.jpg 7
4/201.jpg 4
7/421.jpg 7
0/214.jpg 0
2/461.jpg 2
6/169.jpg 6
3/250.jpg 3
8/428.jpg 8
2/240.jpg 2
3/326.jpg 3
9/269.jpg 9
5/608.jpg 5
9/1094.jpg 9
2/180.jpg 2
9/638.jpg 9
9/199.jpg 9
5/540.jpg 5
3/342.jpg 3
2/221.jpg 2
9/939.jpg 9
0/685.jpg 0
5/665.jpg 5
5/854.jpg 5
0/586.jpg 0
8/1130.jpg 8
8/443.jpg 8
2/252.jpg 2
3/227.jpg 3
4/34.jpg 4
8/1088.jpg 8
8/749.jpg 8
9/553.jpg 9
9/1111.jpg 9
7/614.jpg 7
8/457.jpg 8
2/374.jpg 2
2/484.jpg 2
6/209.jpg 6
1/460.jpg 1
2/583.jpg 2
8/885.jpg 8
6/741.jpg 6
6/267.jpg 6
9/36.jpg 9
9/608.jpg 9
8/993.jpg 8
9/673.jpg 9
0/632.jpg 0
9/973.jpg 9
6/322.jpg 6
2/109.jpg 2
5/660.jpg 5
0/638.jpg 0
9/584.jpg 9
2/276.jpg 2
1/365.jpg 1
1/372.jpg 1
4/101.jpg 4
0/513.jpg 0
4/13.jpg 4
6/44.jpg 6
6/496.jpg 6
9/332.jpg 9
1/133.jpg 1
0/30.jpg 0
3/491.jpg 3
8/784.jpg 8
9/874.jpg 9
0/448.jpg 0
5/165.jpg 5
1/231.jpg 1
4/315.jpg 4
9/545.jpg 9
2/253.jpg 2
0/502.jpg 0
4/367.jpg 4
0/37.jpg 0
9/211.jpg 9
9/331.jpg 9
7/318.jpg 7
3/371.jpg 3
4/249.jpg 4
7/248.jpg 7
3/53.jpg 3
9/1138.jpg 9
1/165.jpg 1
4/94.jpg 4
3/518.jpg 3
7/6.jpg 7
8/63.jpg 8
0/402.jpg 0
8/1062.jpg 8
1/405.jpg 1
7/31.jpg 7
3/382.jpg 3
5/145.jpg 5
5/698.jpg 5
5/972.jpg 5
8/901.jpg 8
0/229.jpg 0
7/380.jpg 7
6/282.jpg 6
8/900.jpg 8
2/42.jpg 2
7/72.jpg 7
7/133.jpg 7
5/222.jpg 5
0/97.jpg 0
2/524.jpg 2
7/96.jpg 7
6/412.jpg 6
8/27.jpg 8
0/645.jpg 0
5/185.jpg 5
6/182.jpg 6
4/53.jpg 4
2/427.jpg 2
9/789.jpg 9
4/337.jpg 4
1/429.jpg 1
8/659.jpg 8
7/558.jpg 7
0/501.jpg 0
6/479.jpg 6
7/741.jpg 7
4/247.jpg 4
6/546.jpg 6
1/397.jpg 1
3/332.jpg 3
7/809.jpg 7
8/217.jpg 8
8/405.jpg 8
6/184.jpg 6
6/359.jpg 6
5/72.jpg 5
5/122.jpg 5
5/55.jpg 5
0/707.jpg 0
9/123.jpg 9
1/343.jpg 1
0/392.jpg 0
6/665.jpg 6
8/244.jpg 8
7/776.jpg 7
5/944.jpg 5
9/576.jpg 9
8/1045.jpg 8
0/700.jpg 0
8/1112.jpg 8
9/369.jpg 9
9/868.jpg 9
2/303.jpg 2
4/111.jpg 4
8/710.jpg 8
8/433.jpg 8
4/370.jpg 4
8/1144.jpg 8
7/84.jpg 7
9/320.jpg 9
9/878.jpg 9
9/321.jpg 9
6/720.jpg 6
9/164.jpg 9
7/807.jpg 7
9/7.jpg 9
8/978.jpg 8
0/434.jpg 0
9/470.jpg 9
0/443.jpg 0
3/312.jpg 3
1/233.jpg 1
8/417.jpg 8
7/507.jpg 7
9/1029.jpg 9
5/321.jpg 5
3/72.jpg 3
5/281.jpg 5
8/26.jpg 8
5/840.jpg 5
9/443.jpg 9
1/353.jpg 1
9/398.jpg 9
2/571.jpg 2
6/715.jpg 6
8/460.jpg 8
5/311.jpg 5
8/72.jpg 8
2/489.jpg 2
0/304.jpg 0
6/33.jpg 6
1/486.jpg 1
8/42.jpg 8
9/158.jpg 9
3/160.jpg 3
1/91.jpg 1
1/273.jpg 1
2/413.jpg 2
8/705.jpg 8
5/822.jpg 5
8/644.jpg 8
0/301.jpg 0
9/56.jpg 9
4/207.jpg 4
3/429.jpg 3
9/979.jpg 9
5/961.jpg 5
6/28.jpg 6
6/440.jpg 6
3/40.jpg 3
7/664.jpg 7
5/139.jpg 5
0/235.jpg 0
0/310.jpg 0
5/173.jpg 5
1/6.jpg 1
1/361.jpg 1
8/719.jpg 8
9/408.jpg 9
2/307.jpg 2
5/531.jpg 5
9/85.jpg 9
9/107.jpg 9
0/472.jpg 0
2/46.jpg 2
2/476.jpg 2
5/30.jpg 5
0/121.jpg 0
8/693.jpg 8
1/347.jpg 1
9/181.jpg 9
6/19.jpg 6
1/108.jpg 1
5/736.jpg 5
5/37.jpg 5
2/9.jpg 2
8/50.jpg 8
9/417.jpg 9
2/356.jpg 2
8/816.jpg 8
8/1036.jpg 8
9/760.jpg 9
5/293.jpg 5
2/348.jpg 2
1/143.jpg 1
4/248.jpg 4
3/236.jpg 3
1/400.jpg 1
4/74.jpg 4
0/650.jpg 0
9/1071.jpg 9
1/296.jpg 1
0/556.jpg 0
1/505.jpg 1
5/513.jpg 5
5/925.jpg 5
7/721.jpg 7
5/224.jpg 5
8/130.jpg 8
0/514.jpg 0
6/453.jpg 6
7/308.jpg 7
8/366.jpg 8
2/592.jpg 2
6/3.jpg 6
3/311.jpg 3
2/439.jpg 2
8/862.jpg 8
8/328.jpg 8
7/692.jpg 7
4/393.jpg 4
9/705.jpg 9
8/437.jpg 8
0/585.jpg 0
3/356.jpg 3
4/272.jpg 4
8/418.jpg 8
0/40.jpg 0
6/680.jpg 6
6/269.jpg 6
7/764.jpg 7
9/693.jpg 9
6/373.jpg 6
5/752.jpg 5
9/1022.jpg 9
5/520.jpg 5
0/246.jpg 0
3/336.jpg 3
9/797.jpg 9
2/292.jpg 2
9/44.jpg 9
8/642.jpg 8
9/725.jpg 9
9/936.jpg 9
9/1091.jpg 9
0/340.jpg 0
0/328.jpg 0
5/667.jpg 5
9/941.jpg 9
6/399.jpg 6
4/58.jpg 4
9/566.jpg 9
9/281.jpg 9
7/403.jpg 7
8/587.jpg 8
2/491.jpg 2
7/320.jpg 7
5/762.jpg 5
3/540.jpg 3
6/617.jpg 6
1/226.jpg 1
1/190.jpg 1
8/938.jpg 8
5/676.jpg 5
7/510.jpg 7
7/34.jpg 7
8/958.jpg 8
5/503.jpg 5
8/277.jpg 8
8/10.jpg 8
1/396.jpg 1
7/789.jpg 7
5/326.jpg 5
1/255.jpg 1
8/748.jpg 8
9/389.jpg 9
2/242.jpg 2
2/113.jpg 2
9/802.jpg 9
4/330.jpg 4
8/906.jpg 8
9/463.jpg 9
2/432.jpg 2
0/588.jpg 0
6/338.jpg 6
7/651.jpg 7
3/12.jpg 3
0/128.jpg 0
0/683.jpg 0
7/547.jpg 7
5/675.jpg 5
0/253.jpg 0
8/731.jpg 8
3/102.jpg 3
7/779.jpg 7
7/29.jpg 7
3/212.jpg 3
0/265.jpg 0
7/261.jpg 7
2/339.jpg 2
8/134.jpg 8
8/1077.jpg 8
2/410.jpg 2
0/418.jpg 0
9/900.jpg 9
9/265.jpg 9
8/662.jpg 8
8/1148.jpg 8
0/510.jpg 0
5/306.jpg 5
7/221.jpg 7
7/109.jpg 7
6/607.jpg 6
0/185.jpg 0
3/551.jpg 3
3/214.jpg 3
7/680.jpg 7
0/125.jpg 0
8/333.jpg 8
1/331.jpg 1
5/962.jpg 5
8/921.jpg 8
7/434.jpg 7
2/447.jpg 2
9/937.jpg 9
7/134.jpg 7
9/55.jpg 9
8/557.jpg 8
9/897.jpg 9
7/620.jpg 7
8/924.jpg 8
4/229.jpg 4
2/462.jpg 2
9/617.jpg 9
0/654.jpg 0
5/455.jpg 5
7/695.jpg 7
2/460.jpg 2
9/217.jpg 9
9/738.jpg 9
4/60.jpg 4
7/35.jpg 7
5/402.jpg 5
8/606.jpg 8
1/117.jpg 1
0/651.jpg 0
9/454.jpg 9
3/447.jpg 3
2/499.jpg 2
9/751.jpg 9
1/238.jpg 1
1/318.jpg 1
7/174.jpg 7
3/51.jpg 3
0/387.jpg 0
7/675.jpg 7
9/132.jpg 9
5/180.jpg 5
8/569.jpg 8
2/83.jpg 2
9/1016.jpg 9
3/155.jpg 3
9/1141.jpg 9
2/85.jpg 2
9/113.jpg 9
2/481.jpg 2
2/243.jpg 2
9/710.jpg 9
8/956.jpg 8
6/455.jpg 6
0/558.jpg 0
1/335.jpg 1
7/223.jpg 7
6/239.jpg 6
8/565.jpg 8
0/564.jpg 0
5/404.jpg 5
2/247.jpg 2
0/670.jpg 0
1/32.jpg 1
6/386.jpg 6
2/6.jpg 2
0/563.jpg 0
9/835.jpg 9
5/66.jpg 5
2/174.jpg 2
9/431.jpg 9
5/964.jpg 5
0/55.jpg 0
5/457.jpg 5
5/900.jpg 5
4/173.jpg 4
4/329.jpg 4
5/731.jpg 5
0/249.jpg 0
1/200.jpg 1
1/357.jpg 1
2/102.jpg 2
0/127.jpg 0
1/19.jpg 1
0/202.jpg 0
0/535.jpg 0
1/462.jpg 1
0/9.jpg 0
9/720.jpg 9
5/443.jpg 5
8/88.jpg 8
3/180.jpg 3
9/841.jpg 9
8/1115.jpg 8
8/435.jpg 8
3/459.jpg 3
8/1023.jpg 8
4/368.jpg 4
3/15.jpg 3
7/573.jpg 7
7/252.jpg 7
6/389.jpg 6
8/182.jpg 8
6/503.jpg 6
3/469.jpg 3
8/94.jpg 8
8/132.jpg 8
9/834.jpg 9
2/533.jpg 2
0/330.jpg 0
9/871.jpg 9
8/250.jpg 8
0/642.jpg 0
0/438.jpg 0
9/920.jpg 9
5/834.jpg 5
5/648.jpg 5
1/0.jpg 1
6/52.jpg 6
7/710.jpg 7
7/811.jpg 7
2/547.jpg 2
7/792.jpg 7
7/306.jpg 7
9/1010.jpg 9
9/1025.jpg 9
Download .txt
gitextract__lt7gl0y/

├── .gitignore
├── CMakeLists.txt
├── README.md
├── classification.bat
├── cpp/
│   ├── LenetClassifier.cpp
│   ├── LenetClassifier.h
│   ├── evaluation.cpp
│   └── evaluationcpp.vcxproj
├── cpp4caffe/
│   ├── cnnpredictor.h
│   ├── cpp4caffe.vcxproj
│   └── evaluation.cpp
├── models/
│   ├── deploy.prototxt
│   ├── labels.txt
│   ├── mean.binaryproto
│   ├── mean.npy
│   ├── plate_fromimg.prototxt
│   ├── plate_lenet.prototxt
│   └── solver.prototxt
├── train.bat
├── train.py
├── train.sh
└── util/
    ├── deploy.prototxt
    ├── evaluation.py
    ├── meanfilebinartynpy.py
    ├── plotaccuracy.py
    ├── preprocess.py
    ├── solver.prototxt
    ├── test.prototxt
    ├── train.prototxt
    ├── train.txt
    └── val.txt
Download .txt
SYMBOL INDEX (41 symbols across 8 files)

FILE: cpp/LenetClassifier.h
  function class (line 12) | class CLenetClassifier

FILE: cpp/evaluation.cpp
  function cleardir (line 9) | void cleardir(const string dir)
  function clearerror (line 19) | void clearerror(const string dir)
  function evaluation (line 32) | int evaluation()
  function testimg (line 78) | int testimg(const std::string imgpath = "data/0/0.jpg")
  function testdir (line 90) | int testdir(const std::string dir = "img")
  function main (line 102) | int main(int argc,char*argv[])

FILE: cpp4caffe/cnnpredictor.h
  type std (line 21) | typedef std::pair<string, float> Prediction;
  function class (line 23) | class Classifier {
  function PairCompare (line 88) | static bool PairCompare(const std::pair<float, int>& lhs,
  function std (line 94) | static std::vector<int> Argmax(const std::vector<float>& v, int N) {
  function SetMean (line 122) | void Classifier::SetMean(const string& mean_file) {
  function WrapInputLayer (line 178) | void Classifier::WrapInputLayer(std::vector<cv::Mat>* input_channels) {
  function Preprocess (line 191) | void Classifier::Preprocess(const cv::Mat& img,
  function class (line 231) | class CnnPredictor

FILE: cpp4caffe/evaluation.cpp
  function cleardir (line 9) | void cleardir(const string dir)
  function clearerror (line 19) | void clearerror(const string dir)
  function evaluation (line 29) | int evaluation()
  function main (line 75) | int main(int argc,char*argv[])

FILE: train.py
  function remove_if_exists (line 19) | def remove_if_exists(db):
  function get_test_num (line 24) | def get_test_num(valpath = "util/val.txt"):
  function make_datum (line 29) | def make_datum(img,label):
  function gen_data_layer (line 33) | def gen_data_layer(phase="train",uselmdb=True):
  function lenet (line 63) | def lenet(phase="train",batch_size=64):
  function lenet_deploy (line 77) | def lenet_deploy(net,deploy_net_file="util/deploy.prototxt"):
  function gen_solver_txt (line 90) | def gen_solver_txt(train_net_path, test_net_path):
  function main (line 110) | def main():

FILE: util/evaluation.py
  function create_logger (line 9) | def create_logger(logdir="output"):
  function clearlasterrors (line 19) | def clearlasterrors(args):
  function loadmean (line 28) | def loadmean(meanprotopath):
  function getclassifier (line 33) | def getclassifier(args):
  class EvalStatic (line 40) | class EvalStatic:
    method __str__ (line 43) | def __str__(self):
  function evaluationonebyone (line 46) | def evaluationonebyone(args):
  function evaluation_batch (line 86) | def evaluation_batch(args):
  function get_args (line 126) | def get_args():
  function classification (line 142) | def classification():
  function evaluation (line 154) | def evaluation():

FILE: util/plotaccuracy.py
  function getlastesttraininfofilefromdir (line 9) | def getlastesttraininfofilefromdir(logdir):
  function plotaccuarcy (line 25) | def plotaccuarcy():

FILE: util/preprocess.py
  function main (line 3) | def main(args):
Condensed preview — 31 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (174K chars).
[
  {
    "path": ".gitignore",
    "chars": 66,
    "preview": "build\ndata\noutput\nerror\nerror.txt\n*.solverstate\n*.caffemodel\n*lmdb"
  },
  {
    "path": "CMakeLists.txt",
    "chars": 517,
    "preview": "cmake_minimum_required(VERSION 2.8)\nset(ProjName caffe-onclick)\nproject(${ProjName})\nset(CMAKE_CXX_STANDARD 11)\nfind_pac"
  },
  {
    "path": "README.md",
    "chars": 3359,
    "preview": "caffe一键式训练评估集成开发环境\n====================================\n**Last Update 2020.07.08**\n\n## 概述\n\n本项目提供一个集成式开发环境,在配好caffe环境的前提下"
  },
  {
    "path": "classification.bat",
    "chars": 374,
    "preview": "@echo off\nset CAFFE_DIR=..\nset eval_iter=10000\nset imagepath=data/0/0.jpg\nset trainedmodel=snapshot/plate_iter_%eval_ite"
  },
  {
    "path": "cpp/LenetClassifier.cpp",
    "chars": 804,
    "preview": "#include \"LenetClassifier.h\"\nstd::pair<int, double>CLenetClassifier::predict(const cv::Mat &img)\n{\n\tstd::pair<int, doubl"
  },
  {
    "path": "cpp/LenetClassifier.h",
    "chars": 747,
    "preview": "#pragma once\n#include \"string\"\n#include \"opencv2/opencv.hpp\"\n#include <opencv2/dnn.hpp>\nusing namespace cv::dnn;\nusing n"
  },
  {
    "path": "cpp/evaluation.cpp",
    "chars": 2720,
    "preview": "#include \"mrdir.h\"\n#include \"mrutil.h\"\n#include \"mropencv.h\"\n#include \"LenetClassifier.h\"\nusing namespace std;\nconst str"
  },
  {
    "path": "cpp/evaluationcpp.vcxproj",
    "chars": 9590,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"14.0\" xmlns=\"http://schemas.micros"
  },
  {
    "path": "cpp4caffe/cnnpredictor.h",
    "chars": 7855,
    "preview": "#pragma once\n#include <caffe/caffe.hpp>\n#include \"mrdir.h\"\n#include \"opencv2/opencv.hpp\"\n#include <algorithm>\n#include <"
  },
  {
    "path": "cpp4caffe/cpp4caffe.vcxproj",
    "chars": 10122,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"14.0\" xmlns=\"http://schemas.micros"
  },
  {
    "path": "cpp4caffe/evaluation.cpp",
    "chars": 2018,
    "preview": "#define REG_USE_CNN 1\n#pragma warning(disable:4996)\n#include \"mrdir.h\"\n#include \"mrutil.h\"\n#include \"cnnpredictor.h\"\ncon"
  },
  {
    "path": "models/deploy.prototxt",
    "chars": 1729,
    "preview": "name: \"LeNet\"\nlayer{\n  name:\"data\"\n  type:\"Input\"\n  top: \"data\"\n  input_param { shape: {dim:1 dim:3 dim:20 dim:20 } }\n}\n"
  },
  {
    "path": "models/labels.txt",
    "chars": 40,
    "preview": "0 0\n1 1\n2 2\n3 3\n4 4\n5 5\n6 6\n7 7\n8 8\n9 9\n"
  },
  {
    "path": "models/plate_fromimg.prototxt",
    "chars": 2284,
    "preview": "name: \"LeNet\"\nlayer {\n  name: \"mnist\"\n  type: \"ImageData\"\n  top: \"data\"\n  top: \"label\"\n  image_data_param {  \n    source"
  },
  {
    "path": "models/plate_lenet.prototxt",
    "chars": 2238,
    "preview": "name: \"Lenet\"\nlayer {\n  name: \"Lenet\"\n  type: \"Data\"\n  top: \"data\"\n  top: \"label\"\n  transform_param {\n    scale: 0.00390"
  },
  {
    "path": "models/solver.prototxt",
    "chars": 852,
    "preview": "# The train/test net protocol buffer definition\nnet: \"models/plate_lenet.prototxt\"\n#net: \"models/plate_fromimg.prototxt\""
  },
  {
    "path": "train.bat",
    "chars": 1126,
    "preview": "@echo off\nset CAFFE_DIR=..\nset DATA=data\nset REISZE_DIM=20\nset converttool=%CAFFE_DIR%/build/tools/convert_imageset\nset "
  },
  {
    "path": "train.py",
    "chars": 4597,
    "preview": "import os\nimport sys\nsys.path.insert(0, '../python')\nimport caffe\nfrom caffe import layers as L, params as P\nfrom caffe."
  },
  {
    "path": "train.sh",
    "chars": 1686,
    "preview": "#!/usr/bin/env sh\nset -e\nDATA=data\nTOOLS=../build/tools\nregeneratelmdb=0\n\nconvert_lmdb(){\n    RESIZE_HEIGHT=20\n    RESIZ"
  },
  {
    "path": "util/deploy.prototxt",
    "chars": 1170,
    "preview": "name: \"lenet\"\ninput: \"data\"\ninput_shape {\n  dim: 1\n  dim: 3\n  dim: 20\n  dim: 20\n}\nlayer {\n  name: \"conv1\"\n  type: \"Convo"
  },
  {
    "path": "util/evaluation.py",
    "chars": 6468,
    "preview": "import os,argparse,sys,time,shutil\nimport numpy as np\nimport sys\nsys.path.append('../python')\nimport caffe\nimport loggi"
  },
  {
    "path": "util/meanfilebinartynpy.py",
    "chars": 559,
    "preview": "import os\nimport sys\nsys.path.append('../../python')\n\nMEAN_BIN = \"../models/mean.binaryproto\"\nMEAN_NPY = \"../models/mea"
  },
  {
    "path": "util/plotaccuracy.py",
    "chars": 1707,
    "preview": "#coding =utf-8\n#迷若烟雨@Baidu\nimport re\nimport matplotlib.pyplot as plt\nimport os\nimport sys\nimport datetime\n\ndef getlaste"
  },
  {
    "path": "util/preprocess.py",
    "chars": 1839,
    "preview": "import os,argparse,random,shutil\n\ndef main(args):\n    datadir=args.rootdir+\"/\"+args.dataname\n    print(\"loading data fr"
  },
  {
    "path": "util/solver.prototxt",
    "chars": 340,
    "preview": "train_net: \"util/train.prototxt\"\ntest_net: \"util/test.prototxt\"\ntest_iter: 15\ntest_interval: 500\nbase_lr: 0.009999999776"
  },
  {
    "path": "util/test.prototxt",
    "chars": 1482,
    "preview": "layer {\n  name: \"data\"\n  type: \"Data\"\n  top: \"data\"\n  top: \"label\"\n  transform_param {\n    scale: 0.00392156885937\n  }\n "
  },
  {
    "path": "util/train.prototxt",
    "chars": 1484,
    "preview": "layer {\n  name: \"data\"\n  type: \"Data\"\n  top: \"data\"\n  top: \"label\"\n  transform_param {\n    scale: 0.00392156885937\n  }\n "
  },
  {
    "path": "util/train.txt",
    "chars": 73112,
    "preview": "1/434.jpg 1\n9/1124.jpg 9\n2/502.jpg 2\n1/44.jpg 1\n9/125.jpg 9\n4/145.jpg 4\n7/576.jpg 7\n0/14.jpg 0\n0/164.jpg 0\n1/334.jpg 1\n0"
  },
  {
    "path": "util/val.txt",
    "chars": 18203,
    "preview": "9/677.jpg 9\n8/982.jpg 8\n9/192.jpg 9\n1/501.jpg 1\n5/447.jpg 5\n9/511.jpg 9\n1/321.jpg 1\n2/49.jpg 2\n2/430.jpg 2\n6/433.jpg 6\n9"
  }
]

// ... and 2 more files (download for full content)

About this extraction

This page contains the full source code of the imistyrain/OpenDL GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 31 files (155.4 KB), approximately 74.6k tokens, and a symbol index with 41 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!