├── ArcSoftFace
├── .vs
│ └── ArcSoftFace
│ │ └── v14
│ │ └── .suo
├── ArcSoftFace
│ ├── favicon.ico
│ ├── lib
│ │ ├── AForge.dll
│ │ ├── AForge.Math.dll
│ │ ├── AForge.Imaging.dll
│ │ ├── AForge.Video.dll
│ │ ├── AForge.Controls.dll
│ │ ├── AForge.Imaging.Formats.dll
│ │ └── AForge.Video.DirectShow.dll
│ ├── Resources
│ │ └── favicon.ico
│ ├── doc
│ │ ├── ~$cSoftFace说明文档.docx
│ │ └── ArcSoftFace C# Demo说明文档.pdf
│ ├── Properties
│ │ ├── Settings.settings
│ │ ├── Settings.Designer.cs
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ └── Resources.resx
│ ├── SDKModels
│ │ ├── MRECT.cs
│ │ ├── ASF_VERSION.cs
│ │ ├── ASF_ImagePixelFormat.cs
│ │ ├── ASF_AgeInfo.cs
│ │ ├── ASF_GenderInfo.cs
│ │ ├── ASF_FaceFeature.cs
│ │ ├── ASF_SingleFaceInfo.cs
│ │ ├── ASF_OrientPriority.cs
│ │ ├── DetectionMode.cs
│ │ ├── ASF_Face3DAngle.cs
│ │ ├── ASF_MultiFaceInfo.cs
│ │ ├── ASF_OrientCode.cs
│ │ └── FaceEngineMask.cs
│ ├── Entity
│ │ ├── FaceTrackUnit.cs
│ │ └── ImageInfo.cs
│ ├── Program.cs
│ ├── App.config
│ ├── Utils
│ │ ├── MemoryUtil.cs
│ │ ├── ImageUtil.cs
│ │ └── FaceUtil.cs
│ ├── SDKUtil
│ │ └── ASFFunctions.cs
│ ├── ArcSoftFace.csproj
│ ├── FaceForm.Designer.cs
│ ├── FaceForm.cs
│ └── FaceForm.resx
└── ArcSoftFace.sln
└── README.md
/ArcSoftFace/.vs/ArcSoftFace/v14/.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SkyStonePan/ArcfaceDemo_CSharp/HEAD/ArcSoftFace/.vs/ArcSoftFace/v14/.suo
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SkyStonePan/ArcfaceDemo_CSharp/HEAD/ArcSoftFace/ArcSoftFace/favicon.ico
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/lib/AForge.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SkyStonePan/ArcfaceDemo_CSharp/HEAD/ArcSoftFace/ArcSoftFace/lib/AForge.dll
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/lib/AForge.Math.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SkyStonePan/ArcfaceDemo_CSharp/HEAD/ArcSoftFace/ArcSoftFace/lib/AForge.Math.dll
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/Resources/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SkyStonePan/ArcfaceDemo_CSharp/HEAD/ArcSoftFace/ArcSoftFace/Resources/favicon.ico
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/lib/AForge.Imaging.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SkyStonePan/ArcfaceDemo_CSharp/HEAD/ArcSoftFace/ArcSoftFace/lib/AForge.Imaging.dll
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/lib/AForge.Video.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SkyStonePan/ArcfaceDemo_CSharp/HEAD/ArcSoftFace/ArcSoftFace/lib/AForge.Video.dll
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/doc/~$cSoftFace说明文档.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SkyStonePan/ArcfaceDemo_CSharp/HEAD/ArcSoftFace/ArcSoftFace/doc/~$cSoftFace说明文档.docx
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/lib/AForge.Controls.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SkyStonePan/ArcfaceDemo_CSharp/HEAD/ArcSoftFace/ArcSoftFace/lib/AForge.Controls.dll
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/doc/ArcSoftFace C# Demo说明文档.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SkyStonePan/ArcfaceDemo_CSharp/HEAD/ArcSoftFace/ArcSoftFace/doc/ArcSoftFace C# Demo说明文档.pdf
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/lib/AForge.Imaging.Formats.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SkyStonePan/ArcfaceDemo_CSharp/HEAD/ArcSoftFace/ArcSoftFace/lib/AForge.Imaging.Formats.dll
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/lib/AForge.Video.DirectShow.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SkyStonePan/ArcfaceDemo_CSharp/HEAD/ArcSoftFace/ArcSoftFace/lib/AForge.Video.DirectShow.dll
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/SDKModels/MRECT.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace ArcSoftFace.SDKModels
4 | {
5 | ///
6 | /// 人脸框信息结构体
7 | ///
8 | public struct MRECT
9 | {
10 | public int left;
11 | public int top;
12 | public int right;
13 | public int bottom;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/SDKModels/ASF_VERSION.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace ArcSoftFace.SDKModels
4 | {
5 | ///
6 | /// SDK版本信息结构体
7 | ///
8 | public struct ASF_VERSION
9 | {
10 | public string version;
11 | public string buildDate;
12 | public string copyRight;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/SDKModels/ASF_ImagePixelFormat.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ArcSoftFace.SDKModels
8 | {
9 | public struct ASF_ImagePixelFormat
10 | {
11 | ///
12 | /// RGB24图片格式
13 | ///
14 | public const int ASVL_PAF_RGB24_B8G8R8 = 0x201;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/SDKModels/ASF_AgeInfo.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace ArcSoftFace.SDKModels
4 | {
5 | ///
6 | /// 年龄结果结构体
7 | ///
8 | public struct ASF_AgeInfo
9 | {
10 | ///
11 | /// 年龄检测结果集合
12 | ///
13 | public IntPtr ageArray;
14 | ///
15 | /// 结果集大小
16 | ///
17 | public int num;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/SDKModels/ASF_GenderInfo.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace ArcSoftFace.SDKModels
4 | {
5 | ///
6 | /// 性别结构体
7 | ///
8 | public struct ASF_GenderInfo
9 | {
10 | ///
11 | /// 性别检测结果集合
12 | ///
13 | public IntPtr genderArray;
14 | ///
15 | /// 结果集大小
16 | ///
17 | public int num;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/SDKModels/ASF_FaceFeature.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace ArcSoftFace.SDKModels
4 | {
5 | ///
6 | /// 人脸特征结构体
7 | ///
8 | public struct ASF_FaceFeature
9 | {
10 | ///
11 | /// 特征值 byte[]
12 | ///
13 | public IntPtr feature;
14 |
15 | ///
16 | /// 结果集大小
17 | ///
18 | public int featureSize;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/SDKModels/ASF_SingleFaceInfo.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace ArcSoftFace.SDKModels
4 | {
5 | ///
6 | /// 单人脸检测结构体
7 | ///
8 | public struct ASF_SingleFaceInfo
9 | {
10 | ///
11 | /// 人脸坐标Rect结果
12 | ///
13 | public MRECT faceRect;
14 | ///
15 | /// 人脸角度
16 | ///
17 | public int faceOrient;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/SDKModels/ASF_OrientPriority.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace ArcSoftFace.SDKModels
4 | {
5 | ///
6 | /// 人脸检测优先角度结构体,推荐ASF_OP_0_HIGHER_EXT
7 | ///
8 | public struct ASF_OrientPriority
9 | {
10 | public const int ASF_OP_0_ONLY = 0x1;
11 | public const int ASF_OP_90_ONLY = 0x2;
12 | public const int ASF_OP_270_ONLY = 0x3;
13 | public const int ASF_OP_180_ONLY = 0x4;
14 | public const int ASF_OP_0_HIGHER_EXT = 0x5;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/Entity/FaceTrackUnit.cs:
--------------------------------------------------------------------------------
1 | using ArcSoftFace.SDKModels;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Drawing;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace ArcSoftFace.Entity
10 | {
11 | ///
12 | /// 视频检测缓存实体类
13 | ///
14 | public class FaceTrackUnit
15 | {
16 | public MRECT Rect { get; set; }
17 | public IntPtr Feature { get; set; }
18 | public string message = "";
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/SDKModels/DetectionMode.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace ArcSoftFace.SDKModels
4 | {
5 | ///
6 | /// 图片检测模式
7 | ///
8 | public struct DetectionMode
9 | {
10 | ///
11 | /// Video模式,一般用于多帧连续检测
12 | ///
13 | public const uint ASF_DETECT_MODE_VIDEO = 0x00000000;
14 |
15 | ///
16 | /// Image模式,一般用于静态图的单次检测
17 | ///
18 | public const uint ASF_DETECT_MODE_IMAGE = 0xFFFFFFFF;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/SDKModels/ASF_Face3DAngle.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace ArcSoftFace.SDKModels
4 | {
5 | ///
6 | /// 3D人脸角度检测结构体,可参考https://ai.arcsoft.com.cn/bbs/forum.php?mod=viewthread&tid=1459&page=1&extra=&_dsign=fd9e1a7a
7 | ///
8 | public struct ASF_Face3DAngle
9 | {
10 | public IntPtr roll;
11 | public IntPtr yaw;
12 | public IntPtr pitch;
13 | ///
14 | /// 是否检测成功,0成功,其他为失败
15 | ///
16 | public IntPtr status;
17 | public int num;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 | using System.Windows.Forms;
6 |
7 | namespace ArcSoftFace
8 | {
9 | static class Program
10 | {
11 | ///
12 | /// 应用程序的主入口点。
13 | ///
14 | [STAThread]
15 | static void Main()
16 | {
17 | Application.EnableVisualStyles();
18 | Application.SetCompatibleTextRenderingDefault(false);
19 | Application.Run(new FaceForm());
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/SDKModels/ASF_MultiFaceInfo.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace ArcSoftFace.SDKModels
4 | {
5 | ///
6 | /// 多人脸检测结构体
7 | ///
8 | public struct ASF_MultiFaceInfo
9 | {
10 | ///
11 | /// 人脸Rect结果集
12 | ///
13 | public IntPtr faceRects;
14 |
15 | ///
16 | /// 人脸角度结果集,与faceRects一一对应 对应ASF_OrientCode
17 | ///
18 | public IntPtr faceOrients;
19 | ///
20 | /// 结果集大小
21 | ///
22 | public int faceNum;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/Entity/ImageInfo.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace ArcSoftFace.Entity
4 | {
5 | public class ImageInfo
6 | {
7 | ///
8 | /// 图片的像素数据
9 | ///
10 | public IntPtr imgData { get; set; }
11 |
12 | ///
13 | /// 图片像素宽
14 | ///
15 | public int width { get; set; }
16 |
17 | ///
18 | /// 图片像素高
19 | ///
20 | public int height { get; set; }
21 |
22 | ///
23 | /// 图片格式
24 | ///
25 | public int format { get; set; }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/SDKModels/ASF_OrientCode.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace ArcSoftFace.SDKModels
4 | {
5 | ///
6 | /// 人脸角度结构体
7 | ///
8 | public struct ASF_OrientCode
9 | {
10 | public const int ASF_OC_0 = 0x1;
11 | public const int ASF_OC_90 = 0x2;
12 | public const int ASF_OC_270 = 0x3;
13 | public const int ASF_OC_180 = 0x4;
14 | public const int ASF_OC_30 = 0x5;
15 | public const int ASF_OC_60 = 0x6;
16 | public const int ASF_OC_120 = 0x7;
17 | public const int ASF_OC_150 = 0x8;
18 | public const int ASF_OC_210 = 0x9;
19 | public const int ASF_OC_240 = 0xa;
20 | public const int ASF_OC_300 = 0xb;
21 | public const int ASF_OC_330 = 0xc;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // 此代码由工具生成。
4 | // 运行时版本:4.0.30319.42000
5 | //
6 | // 对此文件的更改可能会导致不正确的行为,并且如果
7 | // 重新生成代码,这些更改将会丢失。
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace ArcSoftFace.Properties {
12 |
13 |
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17 |
18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19 |
20 | public static Settings Default {
21 | get {
22 | return defaultInstance;
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // 有关程序集的一般信息由以下
6 | // 控制。更改这些特性值可修改
7 | // 与程序集关联的信息。
8 | [assembly: AssemblyTitle("ArcSoftFace")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("ArcSoftFace")]
13 | [assembly: AssemblyCopyright("Copyright © 2018")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // 将 ComVisible 设置为 false 会使此程序集中的类型
18 | //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
19 | //请将此类型的 ComVisible 特性设置为 true。
20 | [assembly: ComVisible(false)]
21 |
22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
23 | [assembly: Guid("5e201b09-b51b-4de6-92b9-76bebeea7ce6")]
24 |
25 | // 程序集的版本信息由下列四个值组成:
26 | //
27 | // 主版本
28 | // 次版本
29 | // 生成号
30 | // 修订号
31 | //
32 | // 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
33 | // 方法是按如下所示使用“*”: :
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/SDKModels/FaceEngineMask.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace ArcSoftFace.SDKModels
4 | {
5 | ///
6 | /// 引擎方法类型结构体,在初始化时将用到的类型用|连接传入,如 ASF_NONE|ASF_FACE_DETECT|ASF_FACERECOGNITION
7 | ///
8 | public struct FaceEngineMask
9 | {
10 | ///
11 | /// 不做方法初始化方法类型
12 | ///
13 | public const int ASF_NONE = 0x00000000;
14 | ///
15 | /// 人脸检测方法类型常量
16 | ///
17 | public const int ASF_FACE_DETECT = 0x00000001;
18 | ///
19 | /// 人脸识别方法类型常量,包含图片feature提取和feature比对
20 | ///
21 | public const int ASF_FACERECOGNITION = 0x00000004;
22 | ///
23 | /// 年龄检测方法类型常量
24 | ///
25 | public const int ASF_AGE = 0x00000008;
26 | ///
27 | /// 性别检测方法类型常量
28 | ///
29 | public const int ASF_GENDER = 0x00000010;
30 | ///
31 | /// 3D角度检测方法类型常量
32 | ///
33 | public const int ASF_FACE3DANGLE = 0x00000020;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 快速上手:
2 |
3 | 1. 安装VS2012环境安装包(vcredist_x86_vs2012.exe)、VS2013环境安装包(vcredist_x86_vs2013.exe)
4 |
5 | 2. 从官网申请sdk http://www.arcsoft.com.cn/ai/arcface.html ,下载对应的sdk版本(x86或x64)并解压
6 |
7 | 3. 将libs中的“libarcsoft_face.dll”、“libarcsoft_face_engine.dll”拷贝到工程bin目录的对应平台的debug或release目录下
8 |
9 | 4. 将对应appid和appkey替换App.config文件中对应内容
10 |
11 | 5. 在Debug或者Release中选择配置管理器,选择对应的平台
12 |
13 | 6. 按F5启动程序
14 |
15 | 7. 点击“注册人脸”按钮增加人脸库图片
16 |
17 | 8. 点击“选择识别图”按钮增加人脸图片
18 |
19 | 9. 点击“开始匹配”按钮进行比较
20 |
21 | 10. 根据下面文本框查看相关信息
22 |
23 |
24 | 常见问题:
25 |
26 | 1.后引擎初始化失败
27 | (1)请选择对应的平台,如x64,x86
28 | (2)删除bin下面对应的asf_install.dat,freesdk_132512.dat;
29 | (3)请确保App.config下的appid,和appkey与当前sdk一一对应。
30 |
31 | 2.SDK支持那些格式的图片人脸检测?
32 | 目前SDK支持的图片格式有jpg,jpeg,png,bmp等。
33 |
34 | 3.使用人脸检测功能对图片大小有要求吗?
35 | 推荐的图片大小最大不要超过2M,因为图片过大会使人脸检测的效率不理想,当然图片也不宜过小,否则会导致无法检测到人脸。
36 |
37 | 4.使用人脸识别引擎提取到的人脸特征信息是什么?
38 | 人脸特征信息是从图片中的人脸上提取的人脸特征点,是byte[]数组格式。
39 |
40 | 5.SDK人脸比对的阈值设为多少合适?
41 | 推荐值为0.8,用户可根据不同场景适当调整阈值。
42 |
43 | 6.可不可以将人脸特征信息保存起来,等需要进行人脸比对的时候直接拿保存好的人脸特征进行比对?
44 | 可以,当人脸个数比较多时推荐先存储起来,在使用时直接进行比对,这样可以大大提高比对效率。存入数据库时,请以Blob的格式进行存储,不能以string或其他格式存储。
45 |
46 | 7.在.Net项目中出现堆栈溢出问题,如何解决?
47 | .Net平台设置的默认堆栈大小为256KB,SDK中需要的大小为512KB以上,推荐调整堆栈的方法为:
48 | new Thread(new ThreadStart(delegate {
49 | ASF_MultiFaceInfo multiFaceInfo = FaceUtil.DetectFace(pEngine, imageInfo);
50 | }), 1024 * 512).Start();
51 |
52 | 8.X86模式下批量注册人脸有内存溢出或图片空指针
53 | 请增加虚拟内存或每次批量注册人脸控制在20张图片范围内
54 |
55 | 9.图片中有人脸,但是检测时未检测到人脸
56 | (1)请调整detectFaceScaleVal的值;
57 | (2)请确认图片的宽度是否为4的倍数;
58 | (3)请确认图片是否通过ImageUtil.ReadBMP方法进行数据调整。
59 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.27703.2047
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArcSoftFace", "ArcSoftFace\ArcSoftFace.csproj", "{5E201B09-B51B-4DE6-92B9-76BEBEEA7CE6}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Debug|x64 = Debug|x64
12 | Debug|x86 = Debug|x86
13 | Release|Any CPU = Release|Any CPU
14 | Release|x64 = Release|x64
15 | Release|x86 = Release|x86
16 | EndGlobalSection
17 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
18 | {5E201B09-B51B-4DE6-92B9-76BEBEEA7CE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
19 | {5E201B09-B51B-4DE6-92B9-76BEBEEA7CE6}.Debug|Any CPU.Build.0 = Debug|Any CPU
20 | {5E201B09-B51B-4DE6-92B9-76BEBEEA7CE6}.Debug|x64.ActiveCfg = Debug|x64
21 | {5E201B09-B51B-4DE6-92B9-76BEBEEA7CE6}.Debug|x64.Build.0 = Debug|x64
22 | {5E201B09-B51B-4DE6-92B9-76BEBEEA7CE6}.Debug|x86.ActiveCfg = Debug|x86
23 | {5E201B09-B51B-4DE6-92B9-76BEBEEA7CE6}.Debug|x86.Build.0 = Debug|x86
24 | {5E201B09-B51B-4DE6-92B9-76BEBEEA7CE6}.Release|Any CPU.ActiveCfg = Release|Any CPU
25 | {5E201B09-B51B-4DE6-92B9-76BEBEEA7CE6}.Release|Any CPU.Build.0 = Release|Any CPU
26 | {5E201B09-B51B-4DE6-92B9-76BEBEEA7CE6}.Release|x64.ActiveCfg = Release|x64
27 | {5E201B09-B51B-4DE6-92B9-76BEBEEA7CE6}.Release|x64.Build.0 = Release|x64
28 | {5E201B09-B51B-4DE6-92B9-76BEBEEA7CE6}.Release|x86.ActiveCfg = Release|x86
29 | {5E201B09-B51B-4DE6-92B9-76BEBEEA7CE6}.Release|x86.Build.0 = Release|x86
30 | EndGlobalSection
31 | GlobalSection(SolutionProperties) = preSolution
32 | HideSolutionNode = FALSE
33 | EndGlobalSection
34 | GlobalSection(ExtensibilityGlobals) = postSolution
35 | SolutionGuid = {7BFF0664-09D6-4119-8629-FF22194D411F}
36 | EndGlobalSection
37 | EndGlobal
38 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/Utils/MemoryUtil.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Runtime.InteropServices;
3 |
4 | namespace ArcSoftFace.Utils
5 | {
6 | public class MemoryUtil
7 | {
8 | ///
9 | /// 申请内存
10 | ///
11 | /// 内存长度(单位:字节)
12 | /// 内存首地址
13 | public static IntPtr Malloc(int len)
14 | {
15 | return Marshal.AllocHGlobal(len);
16 | }
17 |
18 | ///
19 | /// 释放ptr托管的内存
20 | ///
21 | /// 托管指针
22 | public static void Free(IntPtr ptr)
23 | {
24 | Marshal.FreeHGlobal(ptr);
25 | }
26 |
27 | ///
28 | /// 将字节数组的内容拷贝到托管内存中
29 | ///
30 | /// 元数据
31 | /// 元数据拷贝起始位置
32 | /// 托管内存
33 | /// 拷贝长度
34 | public static void Copy(byte[] source, int startIndex, IntPtr destination, int length)
35 | {
36 | Marshal.Copy(source, startIndex, destination, length);
37 | }
38 |
39 | ///
40 | /// 将托管内存的内容拷贝到字节数组中
41 | ///
42 | /// 托管内存
43 | /// 目标字节数组
44 | /// 拷贝起始位置
45 | /// 拷贝长度
46 | public static void Copy(IntPtr source, byte[] destination, int startIndex, int length)
47 | {
48 | Marshal.Copy(source, destination, startIndex, length);
49 | }
50 |
51 | ///
52 | /// 将ptr托管的内存转化为结构体对象
53 | ///
54 | /// 泛型
55 | /// 托管指针
56 | /// 转化后的对象
57 | public static T PtrToStructure(IntPtr ptr)
58 | {
59 | return Marshal.PtrToStructure(ptr);
60 | }
61 |
62 | ///
63 | /// 将结构体对象复制到ptr托管的内存
64 | ///
65 | ///
66 | ///
67 | ///
68 | public static void StructureToPtr(T t,IntPtr ptr) {
69 | Marshal.StructureToPtr(t,ptr,false);
70 | }
71 |
72 | ///
73 | /// 获取类型的大小
74 | ///
75 | /// 泛型
76 | /// 类型的大小
77 | public static int SizeOf()
78 | {
79 | return Marshal.SizeOf();
80 | }
81 | }
82 | }
83 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // 此代码由工具生成。
4 | // 运行时版本:4.0.30319.42000
5 | //
6 | // 对此文件的更改可能会导致不正确的行为,并且如果
7 | // 重新生成代码,这些更改将会丢失。
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace ArcSoftFace.Properties {
12 | using System;
13 |
14 |
15 | ///
16 | /// 一个强类型的资源类,用于查找本地化的字符串等。
17 | ///
18 | // 此类是由 StronglyTypedResourceBuilder
19 | // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
20 | // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
21 | // (以 /str 作为命令选项),或重新生成 VS 项目。
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources {
26 |
27 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal Resources() {
33 | }
34 |
35 | ///
36 | /// 返回此类使用的缓存的 ResourceManager 实例。
37 | ///
38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39 | internal static global::System.Resources.ResourceManager ResourceManager {
40 | get {
41 | if (object.ReferenceEquals(resourceMan, null)) {
42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ArcSoftFace.Properties.Resources", typeof(Resources).Assembly);
43 | resourceMan = temp;
44 | }
45 | return resourceMan;
46 | }
47 | }
48 |
49 | ///
50 | /// 使用此强类型资源类,为所有资源查找
51 | /// 重写当前线程的 CurrentUICulture 属性。
52 | ///
53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54 | internal static global::System.Globalization.CultureInfo Culture {
55 | get {
56 | return resourceCulture;
57 | }
58 | set {
59 | resourceCulture = value;
60 | }
61 | }
62 |
63 | ///
64 | /// 查找类似于 (Icon) 的 System.Drawing.Icon 类型的本地化资源。
65 | ///
66 | internal static System.Drawing.Icon favicon {
67 | get {
68 | object obj = ResourceManager.GetObject("favicon", resourceCulture);
69 | return ((System.Drawing.Icon)(obj));
70 | }
71 | }
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/SDKUtil/ASFFunctions.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Runtime.InteropServices;
3 |
4 | namespace ArcSoftFace.SDKUtil
5 | {
6 | ///
7 | /// SDK中与人脸识别相关函数封装类
8 | ///
9 | public class ASFFunctions
10 | {
11 |
12 | ///
13 | /// SDK动态链接库路径
14 | ///
15 | public const string Dll_PATH = "libarcsoft_face_engine.dll";
16 |
17 | ///
18 | /// 激活人脸识别SDK引擎函数
19 | ///
20 | /// SDK对应的AppID
21 | /// SDK对应的SDKKey
22 | /// 调用结果
23 | [DllImport(Dll_PATH, CallingConvention = CallingConvention.Cdecl)]
24 | public static extern int ASFActivation(string appId, string sdkKey);
25 |
26 | ///
27 | /// 初始化引擎
28 | ///
29 | /// AF_DETECT_MODE_VIDEO 视频模式 | AF_DETECT_MODE_IMAGE 图片模式
30 | /// 检测脸部的角度优先值,推荐:ASF_OrientPriority.ASF_OP_0_HIGHER_EXT
31 | /// 用于数值化表示的最小人脸尺寸
32 | /// 最大需要检测的人脸个数
33 | /// 用户选择需要检测的功能组合,可单个或多个
34 | /// 初始化返回的引擎handle
35 | /// 调用结果
36 | [DllImport(Dll_PATH, CallingConvention = CallingConvention.Cdecl)]
37 | public static extern int ASFInitEngine(uint detectMode, int detectFaceOrientPriority, int detectFaceScaleVal, int detectFaceMaxNum, int combinedMask, ref IntPtr pEngine);
38 |
39 | ///
40 | /// 人脸检测
41 | ///
42 | /// 引擎handle
43 | /// 图像宽度
44 | /// 图像高度
45 | /// 图像颜色空间
46 | /// 图像数据
47 | /// 人脸检测结果
48 | /// 调用结果
49 | [DllImport(Dll_PATH, CallingConvention = CallingConvention.Cdecl)]
50 | public static extern int ASFDetectFaces(IntPtr pEngine, int width, int height, int format, IntPtr imgData, IntPtr detectedFaces);
51 |
52 | ///
53 | /// 人脸信息检测(年龄/性别/人脸3D角度)
54 | ///
55 | /// 引擎handle
56 | /// 图像宽度
57 | /// 图像高度
58 | /// 图像颜色空间
59 | /// 图像数据
60 | /// 人脸信息,用户根据待检测的功能裁减选择需要使用的人脸
61 | /// 只支持初始化时候指定需要检测的功能,在process时进一步在这个已经指定的功能集中继续筛选例如初始化的时候指定检测年龄和性别, 在process的时候可以只检测年龄, 但是不能检测除年龄和性别之外的功能
62 | /// 调用结果
63 | [DllImport(Dll_PATH, CallingConvention = CallingConvention.Cdecl)]
64 | public static extern int ASFProcess(IntPtr pEngine, int width, int height, int format, IntPtr imgData, IntPtr detectedFaces, int combinedMask);
65 |
66 |
67 | ///
68 | /// 单人脸特征提取
69 | ///
70 | /// 引擎handle
71 | /// 图像宽度
72 | /// 图像高度
73 | /// 图像颜色空间
74 | /// 图像数据
75 | /// 单张人脸位置和角度信息
76 | /// 人脸特征
77 | /// 调用结果
78 | [DllImport(Dll_PATH, CallingConvention = CallingConvention.Cdecl)]
79 | public static extern int ASFFaceFeatureExtract(IntPtr pEngine, int width, int height, int format, IntPtr imgData, IntPtr faceInfo, IntPtr faceFeature);
80 |
81 | ///
82 | /// 人脸特征比对
83 | ///
84 | /// 引擎handle
85 | /// 待比较人脸特征1
86 | /// 待比较人脸特征2
87 | /// 相似度(0~1)
88 | /// 调用结果
89 | [DllImport(Dll_PATH, CallingConvention = CallingConvention.Cdecl)]
90 | public static extern int ASFFaceFeatureCompare(IntPtr pEngine, IntPtr faceFeature1, IntPtr faceFeature2, ref float similarity);
91 |
92 | ///
93 | /// 获取年龄信息
94 | ///
95 | /// 引擎handle
96 | /// 检测到的年龄信息
97 | /// 调用结果
98 | [DllImport(Dll_PATH, CallingConvention = CallingConvention.Cdecl)]
99 | public static extern int ASFGetAge(IntPtr pEngine, IntPtr ageInfo);
100 |
101 | ///
102 | /// 获取性别信息
103 | ///
104 | /// 引擎handle
105 | /// 检测到的性别信息
106 | /// 调用结果
107 | [DllImport(Dll_PATH, CallingConvention = CallingConvention.Cdecl)]
108 | public static extern int ASFGetGender(IntPtr pEngine, IntPtr genderInfo);
109 |
110 | ///
111 | /// 获取3D角度信息
112 | ///
113 | /// 引擎handle
114 | /// 检测到脸部3D角度信息
115 | /// 调用结果
116 | [DllImport(Dll_PATH, CallingConvention = CallingConvention.Cdecl)]
117 | public static extern int ASFGetFace3DAngle(IntPtr pEngine, IntPtr p3DAngleInfo);
118 |
119 |
120 | ///
121 | /// 销毁引擎
122 | ///
123 | /// 引擎handle
124 | /// 调用结果
125 | [DllImport(Dll_PATH, CallingConvention = CallingConvention.Cdecl)]
126 | public static extern int ASFUninitEngine(IntPtr pEngine);
127 |
128 | ///
129 | /// 获取版本信息
130 | ///
131 | /// 引擎handle
132 | /// 调用结果
133 | [DllImport(Dll_PATH, CallingConvention = CallingConvention.Cdecl)]
134 | public static extern IntPtr ASFGetVersion(IntPtr pEngine);
135 | }
136 | }
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 |
122 | ..\Resources\favicon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
123 |
124 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/ArcSoftFace.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {5E201B09-B51B-4DE6-92B9-76BEBEEA7CE6}
8 | WinExe
9 | ArcSoftFace
10 | ArcSoftFace
11 | v4.6.1
12 | 512
13 | true
14 |
15 |
16 | AnyCPU
17 | true
18 | full
19 | false
20 | bin\Debug\
21 | DEBUG;TRACE
22 | prompt
23 | 4
24 |
25 |
26 | AnyCPU
27 | pdbonly
28 | true
29 | bin\Release\
30 | TRACE
31 | prompt
32 | 4
33 |
34 |
35 | x64
36 | bin\x64\Debug\
37 |
38 |
39 | x64
40 | bin\x64\Release\
41 |
42 |
43 | x86
44 | bin\x86\Debug\
45 | false
46 |
47 |
48 | x86
49 | bin\x86\Release\
50 |
51 |
52 | favicon.ico
53 |
54 |
55 |
56 | False
57 | lib\AForge.dll
58 |
59 |
60 | False
61 | lib\AForge.Controls.dll
62 |
63 |
64 | False
65 | lib\AForge.Imaging.dll
66 |
67 |
68 | False
69 | lib\AForge.Imaging.Formats.dll
70 |
71 |
72 | False
73 | lib\AForge.Math.dll
74 |
75 |
76 | False
77 | lib\AForge.Video.dll
78 |
79 |
80 | False
81 | lib\AForge.Video.DirectShow.dll
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 | Form
113 |
114 |
115 | FaceForm.cs
116 |
117 |
118 |
119 |
120 | True
121 | True
122 | Resources.resx
123 |
124 |
125 |
126 |
127 |
128 |
129 | FaceForm.cs
130 |
131 |
132 | ResXFileCodeGenerator
133 | Designer
134 | Resources.Designer.cs
135 |
136 |
137 | SettingsSingleFileGenerator
138 | Settings.Designer.cs
139 |
140 |
141 | True
142 | Settings.settings
143 | True
144 |
145 |
146 |
147 |
148 | Designer
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 | {6BF52A50-394A-11D3-B153-00C04F79FAA6}
165 | 1
166 | 0
167 | 0
168 | aximp
169 | False
170 |
171 |
172 | {00020430-0000-0000-C000-000000000046}
173 | 2
174 | 0
175 | 0
176 | primary
177 | False
178 | True
179 |
180 |
181 |
182 |
183 |
184 |
185 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/Utils/ImageUtil.cs:
--------------------------------------------------------------------------------
1 | using ArcSoftFace.Entity;
2 | using ArcSoftFace.SDKModels;
3 | using System;
4 | using System.Drawing;
5 | using System.Drawing.Imaging;
6 |
7 | namespace ArcSoftFace.Utils
8 | {
9 | public class ImageUtil
10 | {
11 | ///
12 | /// 获取图片信息
13 | ///
14 | /// 图片
15 | /// 成功或失败
16 | public static ImageInfo ReadBMP(Image image)
17 | {
18 | ImageInfo imageInfo = new ImageInfo();
19 |
20 | //将Image转换为Format24bppRgb格式的BMP
21 | Bitmap bm = new Bitmap(image);
22 | BitmapData data = bm.LockBits(new Rectangle(0, 0, bm.Width, bm.Height), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);
23 | try
24 | {
25 | //位图中第一个像素数据的地址。它也可以看成是位图中的第一个扫描行
26 | IntPtr ptr = data.Scan0;
27 |
28 | //定义数组长度
29 | int soureBitArrayLength = data.Height * Math.Abs(data.Stride);
30 | byte[] sourceBitArray = new byte[soureBitArrayLength];
31 |
32 | //将bitmap中的内容拷贝到ptr_bgr数组中
33 | MemoryUtil.Copy(ptr, sourceBitArray, 0, soureBitArrayLength);
34 |
35 | //填充引用对象字段值
36 | imageInfo.width = data.Width;
37 | imageInfo.height = data.Height;
38 | imageInfo.format = ASF_ImagePixelFormat.ASVL_PAF_RGB24_B8G8R8;
39 |
40 | //获取去除对齐位后度图像数据
41 | int line = imageInfo.width * 3;
42 | int pitch = Math.Abs(data.Stride);
43 | int bgr_len = line * imageInfo.height;
44 | byte[] destBitArray = new byte[bgr_len];
45 |
46 | /*
47 | * 图片像素数据在内存中是按行存储,一般图像库都会有一个内存对齐,在每行像素的末尾位置
48 | * 每行的对齐位会使每行多出一个像素空间(三通道如RGB会多出3个字节,四通道RGBA会多出4个字节)
49 | * 以下循环目的是去除每行末尾的对齐位,将有效的像素拷贝到新的数组
50 | */
51 | for (int i = 0; i < imageInfo.height; ++i)
52 | {
53 | Array.Copy(sourceBitArray, i * pitch, destBitArray, i * line, line);
54 | }
55 |
56 | imageInfo.imgData = MemoryUtil.Malloc(destBitArray.Length);
57 | MemoryUtil.Copy(destBitArray, 0, imageInfo.imgData, destBitArray.Length);
58 |
59 | return imageInfo;
60 | }
61 | catch (Exception e)
62 | {
63 | Console.WriteLine(e.Message);
64 | }
65 | finally
66 | {
67 | bm.UnlockBits(data);
68 | bm.Dispose();
69 | }
70 |
71 | return null;
72 | }
73 |
74 | ///
75 | /// 用矩形框标记图片指定区域
76 | ///
77 | /// 图片
78 | /// 矩形框左上角X坐标
79 | /// 矩形框左上角Y坐标
80 | /// 矩形框宽度
81 | /// 矩形框高度
82 | /// 标记后的图片
83 | public static Image MarkRect(Image image, int startX, int startY, int width, int height)
84 | {
85 | Image clone = (Image)image.Clone();
86 | Graphics g = Graphics.FromImage(clone);
87 | try
88 | {
89 | Brush brush = new SolidBrush(Color.Red);
90 | Pen pen = new Pen(brush, 2);
91 | pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
92 | g.DrawRectangle(pen, new Rectangle(startX, startY, width, height));
93 | return clone;
94 | }
95 | catch (Exception e)
96 | {
97 | Console.WriteLine(e.Message);
98 | }
99 | finally
100 | {
101 | g.Dispose();
102 | }
103 |
104 | return null;
105 | }
106 |
107 | ///
108 | /// 用矩形框标记图片指定区域,添加年龄和性别标注
109 | ///
110 | /// 图片
111 | /// 矩形框左上角X坐标
112 | /// 矩形框左上角Y坐标
113 | /// 矩形框宽度
114 | /// 矩形框高度
115 | /// 年龄
116 | /// 性别
117 | /// 标记后的图片
118 | public static Image MarkRectAndString(Image image, int startX, int startY, int width, int height, int age, int gender,int showWidth)
119 | {
120 | Image clone = (Image)image.Clone();
121 | Graphics g = Graphics.FromImage(clone);
122 | try
123 | {
124 | Brush brush = new SolidBrush(Color.Red);
125 | int penWidth = image.Width / showWidth;
126 | Pen pen = new Pen(brush, penWidth > 1? 2* penWidth:2);
127 | pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
128 | g.DrawRectangle(pen, new Rectangle(startX < 1 ? 0 : startX, startY < 1 ? 0 : startY, width, height));
129 | string genderStr = "";
130 | if(gender >= 0)
131 | {
132 | if(gender == 0)
133 | {
134 | genderStr = "男";
135 | }
136 | else if (gender == 1)
137 | {
138 | genderStr = "女";
139 | }
140 | }
141 | int fontSize = image.Width / showWidth;
142 | if (fontSize > 1)
143 | {
144 | int temp = 12;
145 | for (int i = 0; i < fontSize; i++)
146 | {
147 | temp += 6;
148 | }
149 | fontSize = temp;
150 | } else if (fontSize == 1) {
151 | fontSize = 14;
152 | } else
153 | {
154 | fontSize = 12;
155 | }
156 | g.DrawString(string.Format("Age:{0} Gender:{1}", age, genderStr), new Font(FontFamily.GenericSerif, fontSize), brush, startX < 1?0:startX, (startY - 20)< 1?0: startY - 20);
157 |
158 | return clone;
159 | }
160 | catch (Exception e)
161 | {
162 | Console.WriteLine(e.Message);
163 | }
164 | finally
165 | {
166 | g.Dispose();
167 | }
168 |
169 | return null;
170 | }
171 |
172 | ///
173 | /// 按指定宽高缩放图片
174 | ///
175 | /// 原图片
176 | /// 目标图片宽
177 | /// 目标图片高
178 | ///
179 | public static Image ScaleImage(Image image, int dstWidth, int dstHeight)
180 | {
181 | Graphics g = null;
182 | try
183 | {
184 | //按比例缩放
185 | float scaleRate = getWidthAndHeight(image.Width, image.Height, dstWidth, dstHeight);
186 | int width = (int)(image.Width * scaleRate);
187 | int height = (int)(image.Height * scaleRate);
188 |
189 | //将宽度调整为4的整数倍
190 | if (width % 4 != 0) {
191 | width = width - width % 4;
192 | }
193 |
194 | Bitmap destBitmap = new Bitmap(width, height);
195 | g = Graphics.FromImage(destBitmap);
196 | g.Clear(Color.Transparent);
197 |
198 | //设置画布的描绘质量
199 | g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
200 | g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
201 | g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
202 | g.DrawImage(image, new Rectangle((width - width) / 2, (height - height) / 2, width, height), 0, 0, image.Width, image.Height, GraphicsUnit.Pixel);
203 |
204 | //设置压缩质量
205 | EncoderParameters encoderParams = new EncoderParameters();
206 | long[] quality = new long[1];
207 | quality[0] = 100;
208 | EncoderParameter encoderParam = new EncoderParameter(Encoder.Quality, quality);
209 | encoderParams.Param[0] = encoderParam;
210 |
211 | return destBitmap;
212 | }
213 | catch (Exception e)
214 | {
215 | Console.WriteLine(e.Message);
216 | }
217 | finally
218 | {
219 | if (g != null)
220 | {
221 | g.Dispose();
222 | }
223 | }
224 |
225 | return null;
226 | }
227 |
228 | ///
229 | /// 获取图片缩放比例
230 | ///
231 | /// 原图片宽
232 | /// 原图片高
233 | /// 目标图片宽
234 | /// 目标图片高
235 | ///
236 | public static float getWidthAndHeight(int oldWidth,int oldHeigt,int newWidth,int newHeight)
237 | {
238 | //按比例缩放
239 | float scaleRate = 0.0f;
240 | if (oldWidth >= newWidth && oldHeigt >= newHeight)
241 | {
242 | int widthDis = oldWidth - newWidth;
243 | int heightDis = oldHeigt - newHeight;
244 | if (widthDis > heightDis)
245 | {
246 | scaleRate = newWidth * 1f / oldWidth;
247 | }
248 | else
249 | {
250 | scaleRate = newHeight * 1f / oldHeigt;
251 | }
252 | }
253 | else if (oldWidth >= newWidth && oldHeigt < newHeight)
254 | {
255 | scaleRate = newWidth * 1f / oldWidth;
256 | }
257 | else if (oldWidth < newWidth && oldHeigt >= newHeight)
258 | {
259 | scaleRate = newHeight * 1f / oldHeigt;
260 | }
261 | else
262 | {
263 | int widthDis = newWidth - oldWidth;
264 | int heightDis = newHeight - oldHeigt;
265 | if (widthDis > heightDis)
266 | {
267 | scaleRate = newHeight * 1f / oldHeigt;
268 | }
269 | else
270 | {
271 | scaleRate = newWidth * 1f / oldWidth;
272 | }
273 | }
274 | return scaleRate;
275 | }
276 |
277 | ///
278 | /// 剪裁图片
279 | ///
280 | /// 原图片
281 | /// 左坐标
282 | /// 顶部坐标
283 | /// 右坐标
284 | /// 底部坐标
285 | /// 剪裁后的图片
286 | public static Image CutImage(Image src,int left,int top,int right,int bottom)
287 | {
288 | try
289 | {
290 | Bitmap srcBitmap = new Bitmap(src);
291 | Bitmap dstBitmap = srcBitmap.Clone(new Rectangle(left,top,right - left,bottom - top),PixelFormat.DontCare);
292 | return dstBitmap;
293 | }
294 | catch (Exception e)
295 | {
296 | Console.WriteLine(e);
297 | }
298 | return null;
299 | }
300 |
301 |
302 | }
303 | }
304 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/FaceForm.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace ArcSoftFace
2 | {
3 | partial class FaceForm
4 | {
5 | ///
6 | /// 必需的设计器变量。
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// 清理所有正在使用的资源。
12 | ///
13 | /// 如果应释放托管资源,为 true;否则为 false。
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows 窗体设计器生成的代码
24 |
25 | ///
26 | /// 设计器支持所需的方法 - 不要修改
27 | /// 使用代码编辑器修改此方法的内容。
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.components = new System.ComponentModel.Container();
32 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FaceForm));
33 | this.picImageCompare = new System.Windows.Forms.PictureBox();
34 | this.lblImageList = new System.Windows.Forms.Label();
35 | this.chooseMultiImgBtn = new System.Windows.Forms.Button();
36 | this.logBox = new System.Windows.Forms.TextBox();
37 | this.chooseImgBtn = new System.Windows.Forms.Button();
38 | this.imageLists = new System.Windows.Forms.ImageList(this.components);
39 | this.imageList = new System.Windows.Forms.ListView();
40 | this.matchBtn = new System.Windows.Forms.Button();
41 | this.btnClearFaceList = new System.Windows.Forms.Button();
42 | this.lblCompareImage = new System.Windows.Forms.Label();
43 | this.lblCompareInfo = new System.Windows.Forms.Label();
44 | this.videoSource = new AForge.Controls.VideoSourcePlayer();
45 | this.btnStartVideo = new System.Windows.Forms.Button();
46 | this.txtThreshold = new System.Windows.Forms.TextBox();
47 | this.label1 = new System.Windows.Forms.Label();
48 | ((System.ComponentModel.ISupportInitialize)(this.picImageCompare)).BeginInit();
49 | this.SuspendLayout();
50 | //
51 | // picImageCompare
52 | //
53 | this.picImageCompare.BackColor = System.Drawing.Color.White;
54 | this.picImageCompare.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
55 | this.picImageCompare.Location = new System.Drawing.Point(603, 37);
56 | this.picImageCompare.Name = "picImageCompare";
57 | this.picImageCompare.Size = new System.Drawing.Size(494, 362);
58 | this.picImageCompare.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
59 | this.picImageCompare.TabIndex = 1;
60 | this.picImageCompare.TabStop = false;
61 | //
62 | // lblImageList
63 | //
64 | this.lblImageList.AutoSize = true;
65 | this.lblImageList.Location = new System.Drawing.Point(12, 11);
66 | this.lblImageList.Name = "lblImageList";
67 | this.lblImageList.Size = new System.Drawing.Size(47, 12);
68 | this.lblImageList.TabIndex = 7;
69 | this.lblImageList.Text = "人脸库:";
70 | //
71 | // chooseMultiImgBtn
72 | //
73 | this.chooseMultiImgBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
74 | this.chooseMultiImgBtn.Location = new System.Drawing.Point(14, 431);
75 | this.chooseMultiImgBtn.Name = "chooseMultiImgBtn";
76 | this.chooseMultiImgBtn.Size = new System.Drawing.Size(133, 26);
77 | this.chooseMultiImgBtn.TabIndex = 32;
78 | this.chooseMultiImgBtn.Text = "注册人脸";
79 | this.chooseMultiImgBtn.UseVisualStyleBackColor = true;
80 | this.chooseMultiImgBtn.Click += new System.EventHandler(this.ChooseMultiImg);
81 | //
82 | // logBox
83 | //
84 | this.logBox.BackColor = System.Drawing.Color.White;
85 | this.logBox.Location = new System.Drawing.Point(14, 477);
86 | this.logBox.Multiline = true;
87 | this.logBox.Name = "logBox";
88 | this.logBox.ReadOnly = true;
89 | this.logBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
90 | this.logBox.Size = new System.Drawing.Size(1083, 139);
91 | this.logBox.TabIndex = 31;
92 | //
93 | // chooseImgBtn
94 | //
95 | this.chooseImgBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
96 | this.chooseImgBtn.Location = new System.Drawing.Point(603, 431);
97 | this.chooseImgBtn.Name = "chooseImgBtn";
98 | this.chooseImgBtn.Size = new System.Drawing.Size(109, 26);
99 | this.chooseImgBtn.TabIndex = 30;
100 | this.chooseImgBtn.Text = "选择识别图";
101 | this.chooseImgBtn.UseVisualStyleBackColor = true;
102 | this.chooseImgBtn.Click += new System.EventHandler(this.ChooseImg);
103 | //
104 | // imageLists
105 | //
106 | this.imageLists.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageLists.ImageStream")));
107 | this.imageLists.TransparentColor = System.Drawing.Color.Transparent;
108 | this.imageLists.Images.SetKeyName(0, "alai_152784032385984494.jpg");
109 | //
110 | // imageList
111 | //
112 | this.imageList.LargeImageList = this.imageLists;
113 | this.imageList.Location = new System.Drawing.Point(14, 37);
114 | this.imageList.Name = "imageList";
115 | this.imageList.Size = new System.Drawing.Size(527, 362);
116 | this.imageList.TabIndex = 33;
117 | this.imageList.UseCompatibleStateImageBehavior = false;
118 | //
119 | // matchBtn
120 | //
121 | this.matchBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
122 | this.matchBtn.Location = new System.Drawing.Point(748, 431);
123 | this.matchBtn.Name = "matchBtn";
124 | this.matchBtn.Size = new System.Drawing.Size(104, 26);
125 | this.matchBtn.TabIndex = 34;
126 | this.matchBtn.Text = "开始匹配";
127 | this.matchBtn.UseVisualStyleBackColor = true;
128 | this.matchBtn.Click += new System.EventHandler(this.matchBtn_Click);
129 | //
130 | // btnClearFaceList
131 | //
132 | this.btnClearFaceList.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
133 | this.btnClearFaceList.Location = new System.Drawing.Point(416, 431);
134 | this.btnClearFaceList.Name = "btnClearFaceList";
135 | this.btnClearFaceList.Size = new System.Drawing.Size(125, 26);
136 | this.btnClearFaceList.TabIndex = 35;
137 | this.btnClearFaceList.Text = "清空人脸库";
138 | this.btnClearFaceList.UseVisualStyleBackColor = true;
139 | this.btnClearFaceList.Click += new System.EventHandler(this.btnClearFaceList_Click);
140 | //
141 | // lblCompareImage
142 | //
143 | this.lblCompareImage.AutoSize = true;
144 | this.lblCompareImage.Location = new System.Drawing.Point(601, 11);
145 | this.lblCompareImage.Name = "lblCompareImage";
146 | this.lblCompareImage.Size = new System.Drawing.Size(59, 12);
147 | this.lblCompareImage.TabIndex = 36;
148 | this.lblCompareImage.Text = "比对人脸:";
149 | //
150 | // lblCompareInfo
151 | //
152 | this.lblCompareInfo.AutoSize = true;
153 | this.lblCompareInfo.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
154 | this.lblCompareInfo.Location = new System.Drawing.Point(667, 11);
155 | this.lblCompareInfo.Name = "lblCompareInfo";
156 | this.lblCompareInfo.Size = new System.Drawing.Size(0, 16);
157 | this.lblCompareInfo.TabIndex = 37;
158 | //
159 | // videoSource
160 | //
161 | this.videoSource.Location = new System.Drawing.Point(603, 37);
162 | this.videoSource.Name = "videoSource";
163 | this.videoSource.Size = new System.Drawing.Size(494, 362);
164 | this.videoSource.TabIndex = 38;
165 | this.videoSource.Text = "videoSource";
166 | this.videoSource.VideoSource = null;
167 | this.videoSource.Paint += new System.Windows.Forms.PaintEventHandler(this.videoSource_Paint);
168 | //
169 | // btnStartVideo
170 | //
171 | this.btnStartVideo.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
172 | this.btnStartVideo.Location = new System.Drawing.Point(883, 431);
173 | this.btnStartVideo.Name = "btnStartVideo";
174 | this.btnStartVideo.Size = new System.Drawing.Size(107, 26);
175 | this.btnStartVideo.TabIndex = 39;
176 | this.btnStartVideo.Text = "启用摄像头";
177 | this.btnStartVideo.UseVisualStyleBackColor = true;
178 | this.btnStartVideo.Click += new System.EventHandler(this.btnStartVideo_Click);
179 | //
180 | // txtThreshold
181 | //
182 | this.txtThreshold.BackColor = System.Drawing.SystemColors.Window;
183 | this.txtThreshold.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
184 | this.txtThreshold.Font = new System.Drawing.Font("微软雅黑", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
185 | this.txtThreshold.Location = new System.Drawing.Point(1037, 431);
186 | this.txtThreshold.Name = "txtThreshold";
187 | this.txtThreshold.Size = new System.Drawing.Size(60, 25);
188 | this.txtThreshold.TabIndex = 40;
189 | this.txtThreshold.Text = "0.8";
190 | this.txtThreshold.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txtThreshold_KeyPress);
191 | this.txtThreshold.KeyUp += new System.Windows.Forms.KeyEventHandler(this.txtThreshold_KeyUp);
192 | //
193 | // label1
194 | //
195 | this.label1.AutoSize = true;
196 | this.label1.Location = new System.Drawing.Point(996, 436);
197 | this.label1.Name = "label1";
198 | this.label1.Size = new System.Drawing.Size(41, 12);
199 | this.label1.TabIndex = 41;
200 | this.label1.Text = "阈值:";
201 | //
202 | // FaceForm
203 | //
204 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
205 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
206 | this.ClientSize = new System.Drawing.Size(1115, 633);
207 | this.Controls.Add(this.label1);
208 | this.Controls.Add(this.txtThreshold);
209 | this.Controls.Add(this.btnStartVideo);
210 | this.Controls.Add(this.videoSource);
211 | this.Controls.Add(this.lblCompareInfo);
212 | this.Controls.Add(this.lblCompareImage);
213 | this.Controls.Add(this.btnClearFaceList);
214 | this.Controls.Add(this.matchBtn);
215 | this.Controls.Add(this.imageList);
216 | this.Controls.Add(this.chooseMultiImgBtn);
217 | this.Controls.Add(this.logBox);
218 | this.Controls.Add(this.chooseImgBtn);
219 | this.Controls.Add(this.lblImageList);
220 | this.Controls.Add(this.picImageCompare);
221 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
222 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
223 | this.MaximizeBox = false;
224 | this.MinimizeBox = false;
225 | this.Name = "FaceForm";
226 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
227 | this.Text = "ArcSoftFace C# demo";
228 | this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Form_Closed);
229 | ((System.ComponentModel.ISupportInitialize)(this.picImageCompare)).EndInit();
230 | this.ResumeLayout(false);
231 | this.PerformLayout();
232 |
233 | }
234 |
235 | #endregion
236 |
237 | private System.Windows.Forms.PictureBox picImageCompare;
238 | private System.Windows.Forms.Label lblImageList;
239 | private System.Windows.Forms.Button chooseMultiImgBtn;
240 | private System.Windows.Forms.TextBox logBox;
241 | private System.Windows.Forms.Button chooseImgBtn;
242 | private System.Windows.Forms.ImageList imageLists;
243 | private System.Windows.Forms.ListView imageList;
244 | private System.Windows.Forms.Button matchBtn;
245 | private System.Windows.Forms.Button btnClearFaceList;
246 | private System.Windows.Forms.Label lblCompareImage;
247 | private System.Windows.Forms.Label lblCompareInfo;
248 | private AForge.Controls.VideoSourcePlayer videoSource;
249 | private System.Windows.Forms.Button btnStartVideo;
250 | private System.Windows.Forms.TextBox txtThreshold;
251 | private System.Windows.Forms.Label label1;
252 | }
253 | }
254 |
255 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/Utils/FaceUtil.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using ArcSoftFace.SDKModels;
3 | using ArcSoftFace.SDKUtil;
4 | using ArcSoftFace.Entity;
5 | using System.Drawing;
6 |
7 | namespace ArcSoftFace.Utils
8 | {
9 | public class FaceUtil
10 | {
11 | ///
12 | /// 人脸检测(PS:检测RGB图像的人脸时,必须保证图像的宽度能被4整除,否则会失败)
13 | ///
14 | /// 引擎Handle
15 | /// 图像数据
16 | /// 人脸检测结果
17 | public static ASF_MultiFaceInfo DetectFace(IntPtr pEngine, ImageInfo imageInfo)
18 | {
19 | ASF_MultiFaceInfo multiFaceInfo = new ASF_MultiFaceInfo();
20 | IntPtr pMultiFaceInfo = MemoryUtil.Malloc(MemoryUtil.SizeOf());
21 | int retCode = ASFFunctions.ASFDetectFaces(pEngine, imageInfo.width, imageInfo.height, imageInfo.format, imageInfo.imgData, pMultiFaceInfo);
22 | if (retCode != 0)
23 | {
24 | MemoryUtil.Free(pMultiFaceInfo);
25 | return multiFaceInfo;
26 | }
27 | multiFaceInfo = MemoryUtil.PtrToStructure(pMultiFaceInfo);
28 |
29 | return multiFaceInfo;
30 | }
31 |
32 | ///
33 | /// 人脸检测
34 | ///
35 | /// 引擎Handle
36 | /// 图像
37 | /// 人脸检测结果
38 | private static object locks = new object();
39 | public static ASF_MultiFaceInfo DetectFace(IntPtr pEngine, Image image)
40 | {
41 | lock (locks)
42 | {
43 | ASF_MultiFaceInfo multiFaceInfo = new ASF_MultiFaceInfo();
44 | if (image != null)
45 | {
46 | image = ImageUtil.ScaleImage(image, image.Width, image.Height);
47 | ImageInfo imageInfo = ImageUtil.ReadBMP(image);
48 | multiFaceInfo = DetectFace(pEngine, imageInfo);
49 | MemoryUtil.Free(imageInfo.imgData);
50 | return multiFaceInfo;
51 |
52 | }
53 | else
54 | {
55 | return multiFaceInfo;
56 | }
57 | }
58 | }
59 |
60 | ///
61 | /// 提取人脸特征
62 | ///
63 | /// 引擎Handle
64 | /// 图像数据
65 | /// 人脸检测结果
66 | /// 保存人脸特征结构体指针
67 | public static IntPtr ExtractFeature(IntPtr pEngine, ImageInfo imageInfo, ASF_MultiFaceInfo multiFaceInfo, out ASF_SingleFaceInfo singleFaceInfo)
68 | {
69 | singleFaceInfo = new ASF_SingleFaceInfo();
70 | singleFaceInfo.faceRect = MemoryUtil.PtrToStructure(multiFaceInfo.faceRects);
71 | singleFaceInfo.faceOrient = MemoryUtil.PtrToStructure(multiFaceInfo.faceOrients);
72 | IntPtr pSingleFaceInfo = MemoryUtil.Malloc(MemoryUtil.SizeOf());
73 | MemoryUtil.StructureToPtr(singleFaceInfo, pSingleFaceInfo);
74 |
75 | IntPtr pFaceFeature = MemoryUtil.Malloc(MemoryUtil.SizeOf());
76 | int retCode = ASFFunctions.ASFFaceFeatureExtract(pEngine, imageInfo.width, imageInfo.height, imageInfo.format, imageInfo.imgData, pSingleFaceInfo, pFaceFeature);
77 | Console.WriteLine("FR Extract Feature result:" + retCode);
78 |
79 | if (retCode != 0)
80 | {
81 | //释放指针
82 | MemoryUtil.Free(pSingleFaceInfo);
83 | MemoryUtil.Free(pFaceFeature);
84 | ASF_FaceFeature emptyFeature = new ASF_FaceFeature();
85 | IntPtr pEmptyFeature = MemoryUtil.Malloc(MemoryUtil.SizeOf());
86 | MemoryUtil.StructureToPtr(emptyFeature, pEmptyFeature);
87 | return pEmptyFeature;
88 | }
89 |
90 | //人脸特征feature过滤
91 | ASF_FaceFeature faceFeature = MemoryUtil.PtrToStructure(pFaceFeature);
92 | byte[] feature = new byte[faceFeature.featureSize];
93 | MemoryUtil.Copy(faceFeature.feature, feature, 0, faceFeature.featureSize);
94 |
95 | ASF_FaceFeature localFeature = new ASF_FaceFeature();
96 | localFeature.feature = MemoryUtil.Malloc(feature.Length);
97 | MemoryUtil.Copy(feature, 0, localFeature.feature, feature.Length);
98 | localFeature.featureSize = feature.Length;
99 | IntPtr pLocalFeature = MemoryUtil.Malloc(MemoryUtil.SizeOf());
100 | MemoryUtil.StructureToPtr(localFeature, pLocalFeature);
101 |
102 | //释放指针
103 | MemoryUtil.Free(pSingleFaceInfo);
104 | MemoryUtil.Free(pFaceFeature);
105 |
106 | return pLocalFeature;
107 | }
108 |
109 | ///
110 | /// 提取人脸特征
111 | ///
112 | /// 引擎Handle
113 | /// 图像
114 | /// 保存人脸特征结构体指针
115 | public static IntPtr ExtractFeature(IntPtr pEngine, Image image, out ASF_SingleFaceInfo singleFaceInfo)
116 | {
117 | image = ImageUtil.ScaleImage(image, image.Width, image.Height);
118 | ImageInfo imageInfo = ImageUtil.ReadBMP(image);
119 | ASF_MultiFaceInfo multiFaceInfo = DetectFace(pEngine, imageInfo);
120 | singleFaceInfo = new ASF_SingleFaceInfo();
121 | IntPtr pFaceModel = ExtractFeature(pEngine, imageInfo, multiFaceInfo, out singleFaceInfo);
122 | MemoryUtil.Free(imageInfo.imgData);
123 | return pFaceModel;
124 | }
125 |
126 |
127 | ///
128 | /// 提取单人脸特征
129 | ///
130 | /// 人脸识别引擎
131 | /// 图片
132 | /// 单人脸信息
133 | /// 单人脸特征
134 | public static IntPtr ExtractFeature(IntPtr pEngine, Image image, ASF_SingleFaceInfo singleFaceInfo)
135 | {
136 | ImageInfo imageInfo = ImageUtil.ReadBMP(image);
137 | IntPtr pSingleFaceInfo = MemoryUtil.Malloc(MemoryUtil.SizeOf());
138 | MemoryUtil.StructureToPtr(singleFaceInfo, pSingleFaceInfo);
139 |
140 | IntPtr pFaceFeature = MemoryUtil.Malloc(MemoryUtil.SizeOf());
141 | int retCode = -1;
142 | try
143 | {
144 | retCode = ASFFunctions.ASFFaceFeatureExtract(pEngine, imageInfo.width, imageInfo.height, imageInfo.format, imageInfo.imgData, pSingleFaceInfo, pFaceFeature);
145 | }
146 | catch (Exception e)
147 | {
148 | Console.WriteLine(e.Message);
149 | }
150 | Console.WriteLine("FR Extract Feature result:" + retCode);
151 |
152 | if (retCode != 0)
153 | {
154 | //释放指针
155 | MemoryUtil.Free(pSingleFaceInfo);
156 | MemoryUtil.Free(pFaceFeature);
157 | ASF_FaceFeature emptyFeature = new ASF_FaceFeature();
158 | IntPtr pEmptyFeature = MemoryUtil.Malloc(MemoryUtil.SizeOf());
159 | MemoryUtil.StructureToPtr(emptyFeature, pEmptyFeature);
160 | return pEmptyFeature;
161 | }
162 |
163 | //人脸特征feature过滤
164 | ASF_FaceFeature faceFeature = MemoryUtil.PtrToStructure(pFaceFeature);
165 | byte[] feature = new byte[faceFeature.featureSize];
166 | MemoryUtil.Copy(faceFeature.feature, feature, 0, faceFeature.featureSize);
167 |
168 | ASF_FaceFeature localFeature = new ASF_FaceFeature();
169 | localFeature.feature = MemoryUtil.Malloc(feature.Length);
170 | MemoryUtil.Copy(feature, 0, localFeature.feature, feature.Length);
171 | localFeature.featureSize = feature.Length;
172 | IntPtr pLocalFeature = MemoryUtil.Malloc(MemoryUtil.SizeOf());
173 | MemoryUtil.StructureToPtr(localFeature, pLocalFeature);
174 |
175 | //释放指针
176 | MemoryUtil.Free(pSingleFaceInfo);
177 | MemoryUtil.Free(pFaceFeature);
178 | MemoryUtil.Free(imageInfo.imgData);
179 |
180 | return pLocalFeature;
181 | }
182 |
183 |
184 |
185 | ///
186 | /// 年龄检测
187 | ///
188 | /// 引擎Handle
189 | /// 图像数据
190 | /// 人脸检测结果
191 | /// 年龄检测结构体
192 | public static ASF_AgeInfo AgeEstimation(IntPtr pEngine, ImageInfo imageInfo, ASF_MultiFaceInfo multiFaceInfo, out int retCode)
193 | {
194 | retCode = -1;
195 | IntPtr pMultiFaceInfo = MemoryUtil.Malloc(MemoryUtil.SizeOf());
196 | MemoryUtil.StructureToPtr(multiFaceInfo, pMultiFaceInfo);
197 |
198 | if (multiFaceInfo.faceNum == 0)
199 | {
200 | return new ASF_AgeInfo();
201 | }
202 |
203 | //人脸信息处理
204 | retCode = ASFFunctions.ASFProcess(pEngine, imageInfo.width, imageInfo.height, imageInfo.format, imageInfo.imgData, pMultiFaceInfo, FaceEngineMask.ASF_AGE);
205 | if (retCode == 0)
206 | {
207 | //获取年龄信息
208 | IntPtr pAgeInfo = MemoryUtil.Malloc(MemoryUtil.SizeOf());
209 | retCode = ASFFunctions.ASFGetAge(pEngine, pAgeInfo);
210 | Console.WriteLine("Get Age Result:" + retCode);
211 | ASF_AgeInfo ageInfo = MemoryUtil.PtrToStructure(pAgeInfo);
212 |
213 | //释放内存
214 | MemoryUtil.Free(pMultiFaceInfo);
215 | MemoryUtil.Free(pAgeInfo);
216 | return ageInfo;
217 | }
218 | else
219 | {
220 | return new ASF_AgeInfo();
221 | }
222 | }
223 |
224 |
225 | ///
226 | /// 单人脸年龄检测
227 | ///
228 | /// 人脸识别引擎
229 | /// 图片
230 | /// 单人脸信息
231 | /// 年龄检测结果
232 | public static ASF_AgeInfo AgeEstimation(IntPtr pEngine, Image image, ASF_SingleFaceInfo singleFaceInfo)
233 | {
234 | ImageInfo imageInfo = ImageUtil.ReadBMP(image);
235 | ASF_MultiFaceInfo multiFaceInfo = new ASF_MultiFaceInfo();
236 | multiFaceInfo.faceRects = MemoryUtil.Malloc(MemoryUtil.SizeOf());
237 | MemoryUtil.StructureToPtr(singleFaceInfo.faceRect, multiFaceInfo.faceRects);
238 | multiFaceInfo.faceOrients = MemoryUtil.Malloc(MemoryUtil.SizeOf());
239 | MemoryUtil.StructureToPtr(singleFaceInfo.faceOrient, multiFaceInfo.faceOrients);
240 | multiFaceInfo.faceNum = 1;
241 | ASF_AgeInfo ageInfo = AgeEstimation(pEngine, imageInfo, multiFaceInfo);
242 | MemoryUtil.Free(imageInfo.imgData);
243 | return ageInfo;
244 | }
245 |
246 | ///
247 | /// 性别检测
248 | ///
249 | /// 引擎Handle
250 | /// 图像数据
251 | /// 人脸检测结果
252 | /// 保存性别检测结果结构体
253 | public static ASF_GenderInfo GenderEstimation(IntPtr pEngine, ImageInfo imageInfo, ASF_MultiFaceInfo multiFaceInfo, out int retCode)
254 | {
255 | retCode = -1;
256 | IntPtr pMultiFaceInfo = MemoryUtil.Malloc(MemoryUtil.SizeOf());
257 | MemoryUtil.StructureToPtr(multiFaceInfo, pMultiFaceInfo);
258 |
259 | if (multiFaceInfo.faceNum == 0)
260 | {
261 | return new ASF_GenderInfo();
262 | }
263 |
264 | //人脸信息处理
265 | retCode = ASFFunctions.ASFProcess(pEngine, imageInfo.width, imageInfo.height, imageInfo.format, imageInfo.imgData, pMultiFaceInfo, FaceEngineMask.ASF_GENDER);
266 | if (retCode == 0)
267 | {
268 | //获取性别信息
269 | IntPtr pGenderInfo = MemoryUtil.Malloc(MemoryUtil.SizeOf());
270 | retCode = ASFFunctions.ASFGetGender(pEngine, pGenderInfo);
271 | Console.WriteLine("Get Gender Result:" + retCode);
272 | ASF_GenderInfo genderInfo = MemoryUtil.PtrToStructure(pGenderInfo);
273 |
274 | //释放内存
275 | MemoryUtil.Free(pMultiFaceInfo);
276 | MemoryUtil.Free(pGenderInfo);
277 |
278 | return genderInfo;
279 | }
280 | else
281 | {
282 | return new ASF_GenderInfo();
283 | }
284 | }
285 |
286 | ///
287 | /// 人脸3D角度检测
288 | ///
289 | /// 引擎Handle
290 | /// 图像数据
291 | /// 人脸检测结果
292 | /// 保存人脸3D角度检测结果结构体
293 | public static ASF_Face3DAngle Face3DAngleDetection(IntPtr pEngine, ImageInfo imageInfo, ASF_MultiFaceInfo multiFaceInfo,out int retCode)
294 | {
295 | IntPtr pMultiFaceInfo = MemoryUtil.Malloc(MemoryUtil.SizeOf());
296 | MemoryUtil.StructureToPtr(multiFaceInfo, pMultiFaceInfo);
297 |
298 | if (multiFaceInfo.faceNum == 0)
299 | {
300 | retCode = -1;
301 | return new ASF_Face3DAngle();
302 | }
303 |
304 | //人脸信息处理
305 | retCode = ASFFunctions.ASFProcess(pEngine, imageInfo.width, imageInfo.height, imageInfo.format, imageInfo.imgData, pMultiFaceInfo, FaceEngineMask.ASF_FACE3DANGLE);
306 | if (retCode == 0)
307 | {
308 | //获取人脸3D角度
309 | IntPtr pFace3DAngleInfo = MemoryUtil.Malloc(MemoryUtil.SizeOf());
310 | retCode = ASFFunctions.ASFGetFace3DAngle(pEngine, pFace3DAngleInfo);
311 | Console.WriteLine("Get Face3D Angle Result:" + retCode);
312 | ASF_Face3DAngle face3DAngle = MemoryUtil.PtrToStructure(pFace3DAngleInfo);
313 |
314 | //释放内存
315 | MemoryUtil.Free(pMultiFaceInfo);
316 | MemoryUtil.Free(pFace3DAngleInfo);
317 |
318 | return face3DAngle;
319 | }else
320 | {
321 | return new ASF_Face3DAngle();
322 | }
323 | }
324 |
325 |
326 | ///
327 | /// 性别检测
328 | ///
329 | /// 引擎Handle
330 | /// 图像数据
331 | /// 人脸检测结果
332 | /// 保存性别估计结果结构体
333 | public static ASF_GenderInfo GenderEstimation(IntPtr pEngine, ImageInfo imageInfo, ASF_MultiFaceInfo multiFaceInfo)
334 | {
335 | IntPtr pMultiFaceInfo = MemoryUtil.Malloc(MemoryUtil.SizeOf());
336 | MemoryUtil.StructureToPtr(multiFaceInfo, pMultiFaceInfo);
337 |
338 | if (multiFaceInfo.faceNum == 0)
339 | {
340 | return new ASF_GenderInfo();
341 | }
342 |
343 | //人脸信息处理
344 | int retCode = ASFFunctions.ASFProcess(pEngine, imageInfo.width, imageInfo.height, imageInfo.format, imageInfo.imgData, pMultiFaceInfo, FaceEngineMask.ASF_GENDER);
345 |
346 | //获取性别信息
347 | IntPtr pGenderInfo = MemoryUtil.Malloc(MemoryUtil.SizeOf());
348 | retCode = ASFFunctions.ASFGetGender(pEngine, pGenderInfo);
349 | Console.WriteLine("Get Gender Result:" + retCode);
350 | ASF_GenderInfo genderInfo = MemoryUtil.PtrToStructure(pGenderInfo);
351 |
352 | //释放内存
353 | MemoryUtil.Free(pMultiFaceInfo);
354 | MemoryUtil.Free(pGenderInfo);
355 |
356 | return genderInfo;
357 | }
358 |
359 |
360 |
361 | ///
362 | /// 单人脸性别检测
363 | ///
364 | /// 引擎Handle
365 | /// 图片
366 | /// 单人脸信息
367 | /// 性别估计结果
368 | public static ASF_GenderInfo GenderEstimation(IntPtr pEngine, Image image, ASF_SingleFaceInfo singleFaceInfo)
369 | {
370 | ImageInfo imageInfo = ImageUtil.ReadBMP(image);
371 | ASF_MultiFaceInfo multiFaceInfo = new ASF_MultiFaceInfo();
372 | multiFaceInfo.faceRects = MemoryUtil.Malloc(MemoryUtil.SizeOf());
373 | MemoryUtil.StructureToPtr(singleFaceInfo.faceRect, multiFaceInfo.faceRects);
374 | multiFaceInfo.faceOrients = MemoryUtil.Malloc(MemoryUtil.SizeOf());
375 | MemoryUtil.StructureToPtr(singleFaceInfo.faceOrient, multiFaceInfo.faceOrients);
376 | multiFaceInfo.faceNum = 1;
377 | ASF_GenderInfo genderInfo = GenderEstimation(pEngine, imageInfo, multiFaceInfo);
378 | MemoryUtil.Free(imageInfo.imgData);
379 | return genderInfo;
380 | }
381 |
382 | ///
383 | /// 年龄检测
384 | ///
385 | /// 引擎Handle
386 | /// 图像数据
387 | /// 人脸检测结果
388 | /// 年龄检测结构体
389 | public static ASF_AgeInfo AgeEstimation(IntPtr pEngine, ImageInfo imageInfo, ASF_MultiFaceInfo multiFaceInfo)
390 | {
391 | IntPtr pMultiFaceInfo = MemoryUtil.Malloc(MemoryUtil.SizeOf());
392 | MemoryUtil.StructureToPtr(multiFaceInfo, pMultiFaceInfo);
393 |
394 | if (multiFaceInfo.faceNum == 0)
395 | {
396 | return new ASF_AgeInfo();
397 | }
398 |
399 | //人脸信息处理
400 | int retCode = ASFFunctions.ASFProcess(pEngine, imageInfo.width, imageInfo.height, imageInfo.format, imageInfo.imgData, pMultiFaceInfo, FaceEngineMask.ASF_AGE);
401 |
402 | //获取年龄信息
403 | IntPtr pAgeInfo = MemoryUtil.Malloc(MemoryUtil.SizeOf());
404 | retCode = ASFFunctions.ASFGetAge(pEngine, pAgeInfo);
405 | Console.WriteLine("Get Age Result:" + retCode);
406 | ASF_AgeInfo ageInfo = MemoryUtil.PtrToStructure(pAgeInfo);
407 |
408 | //释放内存
409 | MemoryUtil.Free(pMultiFaceInfo);
410 | MemoryUtil.Free(pAgeInfo);
411 |
412 | return ageInfo;
413 | }
414 |
415 | ///
416 | /// 获取多个人脸检测结果中面积最大的人脸
417 | ///
418 | /// 人脸检测结果
419 | /// 面积最大的人脸信息
420 | public static ASF_SingleFaceInfo GetMaxFace(ASF_MultiFaceInfo multiFaceInfo)
421 | {
422 | ASF_SingleFaceInfo singleFaceInfo = new ASF_SingleFaceInfo();
423 | singleFaceInfo.faceRect = new MRECT();
424 | singleFaceInfo.faceOrient = 1;
425 |
426 | int maxArea = 0;
427 | int index = -1;
428 | for (int i = 0; i < multiFaceInfo.faceNum; i++)
429 | {
430 | MRECT rect = MemoryUtil.PtrToStructure(multiFaceInfo.faceRects + MemoryUtil.SizeOf() * i);
431 | int area = (rect.right - rect.left) * (rect.bottom - rect.top);
432 | if (maxArea <= area)
433 | {
434 | maxArea = area;
435 | index = i;
436 | }
437 | }
438 | if (index != -1)
439 | {
440 | singleFaceInfo.faceRect = MemoryUtil.PtrToStructure(multiFaceInfo.faceRects + MemoryUtil.SizeOf() * index);
441 | singleFaceInfo.faceOrient = MemoryUtil.PtrToStructure(multiFaceInfo.faceOrients + MemoryUtil.SizeOf() * index);
442 | }
443 | return singleFaceInfo;
444 | }
445 | }
446 | }
447 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/FaceForm.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Drawing;
4 | using System.Windows.Forms;
5 | using ArcSoftFace.SDKModels;
6 | using ArcSoftFace.SDKUtil;
7 | using ArcSoftFace.Utils;
8 | using ArcSoftFace.Entity;
9 | using System.IO;
10 | using System.Configuration;
11 | using System.Threading;
12 | using AForge.Video.DirectShow;
13 | using System.Text.RegularExpressions;
14 | using System.Runtime.Serialization.Formatters.Binary;
15 | using System.Runtime.Serialization;
16 |
17 | namespace ArcSoftFace
18 | {
19 | public partial class FaceForm : Form
20 | {
21 | //引擎Handle
22 | private IntPtr pImageEngine = IntPtr.Zero;
23 |
24 | //保存右侧图片路径
25 | private string image1Path;
26 |
27 | //右侧图片人脸特征
28 | private IntPtr image1Feature;
29 |
30 | //保存对比图片的列表
31 | private List imagePathList = new List();
32 |
33 | //左侧图库人脸特征列表
34 | private List imagesFeatureList = new List();
35 |
36 | //相似度
37 | private float threshold = 0.8f;
38 |
39 | //用于标记是否需要清除比对结果
40 | private bool isCompare = false;
41 |
42 | #region 视频模式下相关
43 |
44 | //视频引擎Handle
45 | private IntPtr pVideoEngine = IntPtr.Zero;
46 |
47 | //视频引擎 FR Handle 处理 FR和图片引擎分开,减少强占引擎的问题
48 | private IntPtr pVideoImageEngine = IntPtr.Zero;
49 | ///
50 | /// 视频输入设备信息
51 | ///
52 | private FilterInfoCollection filterInfoCollection;
53 | private VideoCaptureDevice deviceVideo;
54 |
55 | #endregion
56 |
57 | public FaceForm()
58 | {
59 | InitializeComponent();
60 | InitEngines();
61 | videoSource.Hide();
62 | txtThreshold.Enabled = false;
63 | }
64 |
65 | ///
66 | /// 初始化引擎
67 | ///
68 | private void InitEngines()
69 | {
70 | //读取配置文件
71 | AppSettingsReader reader = new AppSettingsReader();
72 | string appId = (string)reader.GetValue("APP_ID", typeof(string));
73 | string sdkKey64 = (string)reader.GetValue("SDKKEY64", typeof(string));
74 | string sdkKey32 = (string)reader.GetValue("SDKKEY32", typeof(string));
75 |
76 | var is64CPU = Environment.Is64BitProcess;
77 | if (is64CPU)
78 | {
79 | if (string.IsNullOrWhiteSpace(appId) || string.IsNullOrWhiteSpace(sdkKey64))
80 | {
81 | chooseMultiImgBtn.Enabled = false;
82 | matchBtn.Enabled = false;
83 | btnClearFaceList.Enabled = false;
84 | chooseImgBtn.Enabled = false;
85 | MessageBox.Show("请在App.config配置文件中先配置APP_ID和SDKKEY64!");
86 | return;
87 | }
88 | }
89 | else
90 | {
91 | if (string.IsNullOrWhiteSpace(appId) || string.IsNullOrWhiteSpace(sdkKey32))
92 | {
93 | chooseMultiImgBtn.Enabled = false;
94 | matchBtn.Enabled = false;
95 | btnClearFaceList.Enabled = false;
96 | chooseImgBtn.Enabled = false;
97 | MessageBox.Show("请在App.config配置文件中先配置APP_ID和SDKKEY32!");
98 | return;
99 | }
100 | }
101 |
102 | //激活引擎 如出现错误,1.请先确认从官网下载的sdk库已放到对应的bin中,2.当前选择的CPU为x86或者x64
103 | int retCode = 0;
104 |
105 | try
106 | {
107 | retCode = ASFFunctions.ASFActivation(appId, is64CPU ? sdkKey64 : sdkKey32);
108 | }
109 | catch (Exception ex)
110 | {
111 | chooseMultiImgBtn.Enabled = false;
112 | matchBtn.Enabled = false;
113 | btnClearFaceList.Enabled = false;
114 | chooseImgBtn.Enabled = false;
115 | if (ex.Message.IndexOf("无法加载 DLL") > -1)
116 | {
117 | MessageBox.Show("请将sdk相关DLL放入bin对应的x86或x64下的文件夹中!");
118 | }
119 | else
120 | {
121 | MessageBox.Show("激活引擎失败!");
122 | }
123 | return;
124 | }
125 | Console.WriteLine("Activate Result:" + retCode);
126 |
127 | //初始化引擎
128 | uint detectMode = DetectionMode.ASF_DETECT_MODE_IMAGE;
129 | //检测脸部的角度优先值
130 | int detectFaceOrientPriority = ASF_OrientPriority.ASF_OP_0_HIGHER_EXT;
131 | //人脸在图片中所占比例,如果需要调整检测人脸尺寸请修改此值,有效数值为2-32
132 | int detectFaceScaleVal = 16;
133 | //最大需要检测的人脸个数
134 | int detectFaceMaxNum = 5;
135 | //引擎初始化时需要初始化的检测功能组合
136 | int combinedMask = FaceEngineMask.ASF_FACE_DETECT | FaceEngineMask.ASF_FACERECOGNITION | FaceEngineMask.ASF_AGE | FaceEngineMask.ASF_GENDER | FaceEngineMask.ASF_FACE3DANGLE;
137 | //初始化引擎,正常值为0,其他返回值请参考http://ai.arcsoft.com.cn/bbs/forum.php?mod=viewthread&tid=19&_dsign=dbad527e
138 | retCode = ASFFunctions.ASFInitEngine(detectMode, detectFaceOrientPriority, detectFaceScaleVal, detectFaceMaxNum, combinedMask, ref pImageEngine);
139 | Console.WriteLine("InitEngine Result:" + retCode);
140 | AppendText((retCode == 0) ? "引擎初始化成功!\n" : string.Format("引擎初始化失败!错误码为:{0}\n", retCode));
141 | if (retCode != 0)
142 | {
143 | chooseMultiImgBtn.Enabled = false;
144 | matchBtn.Enabled = false;
145 | btnClearFaceList.Enabled = false;
146 | chooseImgBtn.Enabled = false;
147 | }
148 |
149 |
150 | //初始化视频模式下人脸检测引擎
151 | uint detectModeVideo = DetectionMode.ASF_DETECT_MODE_VIDEO;
152 | int combinedMaskVideo = FaceEngineMask.ASF_FACE_DETECT | FaceEngineMask.ASF_FACERECOGNITION;
153 | retCode = ASFFunctions.ASFInitEngine(detectModeVideo, detectFaceOrientPriority, detectFaceScaleVal, detectFaceMaxNum, combinedMaskVideo, ref pVideoEngine);
154 |
155 | //视频专用FR引擎
156 | detectFaceMaxNum = 1;
157 | combinedMask =FaceEngineMask.ASF_FACERECOGNITION | FaceEngineMask.ASF_FACE3DANGLE;
158 | retCode = ASFFunctions.ASFInitEngine(detectMode, detectFaceOrientPriority, detectFaceScaleVal, detectFaceMaxNum, combinedMask, ref pVideoImageEngine);
159 | Console.WriteLine("InitVideoEngine Result:" + retCode);
160 |
161 |
162 | initVideo();
163 | }
164 |
165 | ///
166 | /// “选择识别图片”按钮事件
167 | ///
168 | private void ChooseImg(object sender, EventArgs e)
169 | {
170 | lblCompareInfo.Text = "";
171 | if (pImageEngine == IntPtr.Zero)
172 | {
173 | chooseMultiImgBtn.Enabled = false;
174 | matchBtn.Enabled = false;
175 | btnClearFaceList.Enabled = false;
176 | chooseImgBtn.Enabled = false;
177 | MessageBox.Show("请先初始化引擎!");
178 | return;
179 | }
180 | OpenFileDialog openFileDialog = new OpenFileDialog();
181 | openFileDialog.Title = "选择图片";
182 | openFileDialog.Filter = "图片文件|*.bmp;*.jpg;*.jpeg;*.png";
183 | openFileDialog.Multiselect = false;
184 | openFileDialog.FileName = string.Empty;
185 | if (openFileDialog.ShowDialog() == DialogResult.OK)
186 | {
187 | DateTime detectStartTime = DateTime.Now;
188 | AppendText(string.Format("------------------------------开始检测,时间:{0}------------------------------\n", detectStartTime.ToString("yyyy-MM-dd HH:mm:ss:ms")));
189 | image1Path = openFileDialog.FileName;
190 |
191 | //获取文件,拒绝过大的图片
192 | FileInfo fileInfo = new FileInfo(image1Path);
193 | long maxSize = 1024 * 1024 * 2;
194 | if (fileInfo.Length > maxSize)
195 | {
196 | MessageBox.Show("图像文件最大为2MB,请压缩后再导入!");
197 | AppendText(string.Format("------------------------------检测结束,时间:{0}------------------------------\n", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ms")));
198 | AppendText("\n");
199 | return;
200 | }
201 |
202 | Image srcImage = Image.FromFile(image1Path);
203 | //调整图像宽度,需要宽度为4的倍数
204 | if (srcImage.Width % 4 != 0)
205 | {
206 | //srcImage = ImageUtil.ScaleImage(srcImage, picImageCompare.Width, picImageCompare.Height);
207 | srcImage = ImageUtil.ScaleImage(srcImage, srcImage.Width - (srcImage.Width % 4), srcImage.Height);
208 | }
209 | //调整图片数据,非常重要
210 | ImageInfo imageInfo = ImageUtil.ReadBMP(srcImage);
211 | //人脸检测
212 | ASF_MultiFaceInfo multiFaceInfo = FaceUtil.DetectFace(pImageEngine, imageInfo);
213 | //年龄检测
214 | int retCode_Age = -1;
215 | ASF_AgeInfo ageInfo = FaceUtil.AgeEstimation(pImageEngine, imageInfo, multiFaceInfo, out retCode_Age);
216 | //性别检测
217 | int retCode_Gender = -1;
218 | ASF_GenderInfo genderInfo = FaceUtil.GenderEstimation(pImageEngine, imageInfo, multiFaceInfo, out retCode_Gender);
219 |
220 | //3DAngle检测
221 | int retCode_3DAngle = -1;
222 | ASF_Face3DAngle face3DAngleInfo = FaceUtil.Face3DAngleDetection(pImageEngine, imageInfo, multiFaceInfo, out retCode_3DAngle);
223 |
224 | MemoryUtil.Free(imageInfo.imgData);
225 |
226 | if (multiFaceInfo.faceNum < 1)
227 | {
228 | srcImage = ImageUtil.ScaleImage(srcImage, picImageCompare.Width, picImageCompare.Height);
229 | image1Feature = IntPtr.Zero;
230 | picImageCompare.Image = srcImage;
231 | AppendText(string.Format("{0} - 未检测出人脸!\n\n", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")));
232 | AppendText(string.Format("------------------------------检测结束,时间:{0}------------------------------\n", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ms")));
233 | AppendText("\n");
234 | return;
235 | }
236 |
237 | MRECT temp = new MRECT();
238 | int ageTemp = 0;
239 | int genderTemp = 0;
240 | int rectTemp = 0;
241 |
242 | //标记出检测到的人脸
243 | for (int i = 0; i < multiFaceInfo.faceNum; i++)
244 | {
245 | MRECT rect = MemoryUtil.PtrToStructure(multiFaceInfo.faceRects + MemoryUtil.SizeOf() * i);
246 | int orient = MemoryUtil.PtrToStructure(multiFaceInfo.faceOrients + MemoryUtil.SizeOf() * i);
247 | int age = 0;
248 |
249 | if (retCode_Age != 0)
250 | {
251 | AppendText(string.Format("年龄检测失败,返回{0}!\n\n", retCode_Age));
252 | }
253 | else
254 | {
255 | age = MemoryUtil.PtrToStructure(ageInfo.ageArray + MemoryUtil.SizeOf() * i);
256 | }
257 |
258 | int gender = -1;
259 | if (retCode_Gender != 0)
260 | {
261 | AppendText(string.Format("性别检测失败,返回{0}!\n\n", retCode_Gender));
262 | }
263 | else
264 | {
265 | gender = MemoryUtil.PtrToStructure(genderInfo.genderArray + MemoryUtil.SizeOf() * i);
266 | }
267 |
268 |
269 | int face3DStatus = -1;
270 | float roll = 0f;
271 | float pitch = 0f;
272 | float yaw = 0f;
273 | if (retCode_3DAngle != 0)
274 | {
275 | AppendText(string.Format("3DAngle检测失败,返回{0}!\n\n", retCode_3DAngle));
276 | }
277 | else
278 | {
279 | //角度状态 非0表示人脸不可信
280 | face3DStatus = MemoryUtil.PtrToStructure(face3DAngleInfo.status + MemoryUtil.SizeOf() * i);
281 | //roll为侧倾角,pitch为俯仰角,yaw为偏航角
282 | roll = MemoryUtil.PtrToStructure(face3DAngleInfo.roll + MemoryUtil.SizeOf() * i);
283 | pitch = MemoryUtil.PtrToStructure(face3DAngleInfo.pitch + MemoryUtil.SizeOf() * i);
284 | yaw = MemoryUtil.PtrToStructure(face3DAngleInfo.yaw + MemoryUtil.SizeOf() * i);
285 | }
286 |
287 |
288 | int rectWidth = rect.right - rect.left;
289 | int rectHeight = rect.bottom - rect.top;
290 |
291 | //查找最大人脸
292 | if (rectWidth * rectHeight > rectTemp)
293 | {
294 | rectTemp = rectWidth * rectHeight;
295 | temp = rect;
296 | ageTemp = age;
297 | genderTemp = gender;
298 | }
299 |
300 | //srcImage = ImageUtil.MarkRectAndString(srcImage, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, age, gender);
301 | AppendText(string.Format("{0} - 人脸坐标:[left:{1},top:{2},right:{3},bottom:{4},orient:{5},roll:{6},pitch:{7},yaw:{8},status:{11}] Age:{9} Gender:{10}\n", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"), rect.left, rect.top, rect.right, rect.bottom, orient, roll, pitch, yaw, age, (gender >= 0 ? gender.ToString() : ""), face3DStatus));
302 | }
303 |
304 |
305 | AppendText(string.Format("{0} - 人脸数量:{1}\n\n", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"), multiFaceInfo.faceNum));
306 |
307 |
308 | DateTime detectEndTime = DateTime.Now;
309 | AppendText(string.Format("------------------------------检测结束,时间:{0}------------------------------\n", detectEndTime.ToString("yyyy-MM-dd HH:mm:ss:ms")));
310 | AppendText("\n");
311 | ASF_SingleFaceInfo singleFaceInfo = new ASF_SingleFaceInfo();
312 | //提取人脸特征
313 | image1Feature = FaceUtil.ExtractFeature(pImageEngine, srcImage, out singleFaceInfo);
314 |
315 | //清空上次的匹配结果
316 | for (int i = 0; i < imagesFeatureList.Count; i++)
317 | {
318 | imageList.Items[i].Text = string.Format("{0}号", i);
319 | }
320 |
321 | float scaleRate = ImageUtil.getWidthAndHeight(srcImage.Width, srcImage.Height, picImageCompare.Width, picImageCompare.Height);
322 | srcImage = ImageUtil.ScaleImage(srcImage, picImageCompare.Width, picImageCompare.Height);
323 | srcImage = ImageUtil.MarkRectAndString(srcImage, (int)(temp.left * scaleRate), (int)(temp.top * scaleRate), (int)(temp.right * scaleRate) - (int)(temp.left * scaleRate), (int)(temp.bottom * scaleRate) - (int)(temp.top * scaleRate), ageTemp, genderTemp, picImageCompare.Width);
324 |
325 |
326 | //显示标记后的图像
327 | picImageCompare.Image = srcImage;
328 | }
329 | }
330 |
331 |
332 | private object locker = new object();
333 | ///
334 | /// 人脸库图片选择按钮事件
335 | ///
336 | private void ChooseMultiImg(object sender, EventArgs e)
337 | {
338 | lock (locker)
339 | {
340 | OpenFileDialog openFileDialog = new OpenFileDialog();
341 | openFileDialog.Title = "选择图片";
342 | openFileDialog.Filter = "图片文件|*.bmp;*.jpg;*.jpeg;*.png";
343 | openFileDialog.Multiselect = true;
344 | openFileDialog.FileName = string.Empty;
345 | if (openFileDialog.ShowDialog() == DialogResult.OK)
346 | {
347 |
348 | List imagePathListTemp = new List();
349 | var numStart = imagePathList.Count;
350 | int isGoodImage = 0;
351 |
352 | //保存图片路径并显示
353 | string[] fileNames = openFileDialog.FileNames;
354 | for (int i = 0; i < fileNames.Length; i++)
355 | {
356 | imagePathListTemp.Add(fileNames[i]);
357 | }
358 |
359 |
360 |
361 | //人脸检测以及提取人脸特征
362 | ThreadPool.QueueUserWorkItem(new WaitCallback(delegate
363 | {
364 | //禁止点击按钮
365 | Invoke(new Action(delegate
366 | {
367 | chooseMultiImgBtn.Enabled = false;
368 | matchBtn.Enabled = false;
369 | btnClearFaceList.Enabled = false;
370 | chooseImgBtn.Enabled = false;
371 | btnStartVideo.Enabled = false;
372 | }));
373 |
374 | //人脸检测和剪裁
375 | for (int i = 0; i < imagePathListTemp.Count; i++)
376 | {
377 | Image image = Image.FromFile(imagePathListTemp[i]);
378 | if (image.Width % 4 != 0)
379 | {
380 | image = ImageUtil.ScaleImage(image, image.Width - (image.Width % 4), image.Height);
381 | }
382 | ASF_MultiFaceInfo multiFaceInfo = FaceUtil.DetectFace(pImageEngine, image);
383 |
384 | if (multiFaceInfo.faceNum > 0)
385 | {
386 | imagePathList.Add(imagePathListTemp[i]);
387 | MRECT rect = MemoryUtil.PtrToStructure(multiFaceInfo.faceRects);
388 | image = ImageUtil.CutImage(image, rect.left, rect.top, rect.right, rect.bottom);
389 | }
390 | else
391 | {
392 | continue;
393 | }
394 |
395 | this.Invoke(new Action(delegate
396 | {
397 | if (image == null)
398 | {
399 | image = Image.FromFile(imagePathListTemp[i]);
400 | }
401 | imageLists.Images.Add(imagePathListTemp[i], image);
402 | imageList.Items.Add((numStart + isGoodImage) + "号", imagePathListTemp[i]);
403 | isGoodImage += 1;
404 | image = null;
405 | }));
406 | }
407 |
408 |
409 | //提取人脸特征
410 | for (int i = numStart; i < imagePathList.Count; i++)
411 | {
412 | ASF_SingleFaceInfo singleFaceInfo = new ASF_SingleFaceInfo();
413 | IntPtr feature = FaceUtil.ExtractFeature(pImageEngine, Image.FromFile(imagePathList[i]), out singleFaceInfo);
414 | this.Invoke(new Action(delegate
415 | {
416 | if (singleFaceInfo.faceRect.left == 0 && singleFaceInfo.faceRect.right == 0)
417 | {
418 | AppendText(string.Format("{0}号未检测到人脸\r\n", i));
419 | }
420 | else
421 | {
422 | AppendText(string.Format("已提取{0}号人脸特征值,[left:{1},right:{2},top:{3},bottom:{4},orient:{5}]\r\n", i, singleFaceInfo.faceRect.left, singleFaceInfo.faceRect.right, singleFaceInfo.faceRect.top, singleFaceInfo.faceRect.bottom, singleFaceInfo.faceOrient));
423 | imagesFeatureList.Add(feature);
424 | }
425 | }));
426 | }
427 | //允许点击按钮
428 | Invoke(new Action(delegate
429 | {
430 | chooseMultiImgBtn.Enabled = true;
431 | btnClearFaceList.Enabled = true;
432 | btnStartVideo.Enabled = true;
433 |
434 | if (btnStartVideo.Text == "启用摄像头")
435 | {
436 | chooseImgBtn.Enabled = true;
437 | matchBtn.Enabled = true;
438 | }
439 | else
440 | {
441 | chooseImgBtn.Enabled = false;
442 | matchBtn.Enabled = false;
443 | }
444 | }));
445 | }));
446 |
447 | }
448 | }
449 | }
450 |
451 | ///
452 | /// 窗体关闭事件
453 | ///
454 | private void Form_Closed(object sender, FormClosedEventArgs e)
455 | {
456 | //销毁引擎
457 | int retCode = ASFFunctions.ASFUninitEngine(pImageEngine);
458 | Console.WriteLine("UninitEngine pImageEngine Result:" + retCode);
459 | //销毁引擎
460 | retCode = ASFFunctions.ASFUninitEngine(pVideoEngine);
461 | Console.WriteLine("UninitEngine pVideoEngine Result:" + retCode);
462 |
463 | if (videoSource.IsRunning)
464 | {
465 | videoSource.SignalToStop(); //关闭摄像头
466 | }
467 | }
468 |
469 | ///
470 | /// 追加公用方法
471 | ///
472 | ///
473 | private void AppendText(string message)
474 | {
475 | logBox.AppendText(message);
476 | }
477 |
478 | ///
479 | /// 匹配事件
480 | ///
481 | ///
482 | ///
483 | private void matchBtn_Click(object sender, EventArgs e)
484 | {
485 | if (imagesFeatureList.Count == 0)
486 | {
487 | MessageBox.Show("请注册人脸!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
488 | return;
489 | }
490 |
491 | if (image1Feature == IntPtr.Zero)
492 | {
493 | if (picImageCompare.Image == null)
494 | {
495 | MessageBox.Show("请选择识别图!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
496 | }
497 | else
498 | {
499 | MessageBox.Show("比对失败,识别图未提取到特征值!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
500 | }
501 | return;
502 | }
503 | //标记已经做了匹配比对,在开启视频的时候要清除比对结果
504 | isCompare = true;
505 | float compareSimilarity = 0f;
506 | int compareNum = 0;
507 | AppendText(string.Format("------------------------------开始比对,时间:{0}------------------------------\r\n", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ms")));
508 | for (int i = 0; i < imagesFeatureList.Count; i++)
509 | {
510 | IntPtr feature = imagesFeatureList[i];
511 | float similarity = 0f;
512 | int ret = ASFFunctions.ASFFaceFeatureCompare(pImageEngine, image1Feature, feature, ref similarity);
513 | //增加异常值处理
514 | if(similarity.ToString().IndexOf("E") > -1)
515 | {
516 | similarity = 0f;
517 | }
518 | AppendText(string.Format("与{0}号比对结果:{1}\r\n", i, similarity));
519 | imageList.Items[i].Text = string.Format("{0}号({1})", i, similarity);
520 | if (similarity > compareSimilarity)
521 | {
522 | compareSimilarity = similarity;
523 | compareNum = i;
524 | }
525 | }
526 | if (compareSimilarity > 0)
527 | {
528 | lblCompareInfo.Text = " " + compareNum + "号," + compareSimilarity;
529 | }
530 | AppendText(string.Format("------------------------------比对结束,时间:{0}------------------------------\r\n", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ms")));
531 | }
532 |
533 | ///
534 | /// 清除人脸库事件
535 | ///
536 | ///
537 | ///
538 | private void btnClearFaceList_Click(object sender, EventArgs e)
539 | {
540 | //清除数据
541 | imageLists.Images.Clear();
542 | imageList.Items.Clear();
543 | imagesFeatureList.Clear();
544 | imagePathList.Clear();
545 | }
546 |
547 | #region 视频检测相关
548 |
549 | ///
550 | /// 摄像头初始化
551 | ///
552 | private void initVideo()
553 | {
554 | filterInfoCollection = new FilterInfoCollection(FilterCategory.VideoInputDevice);
555 |
556 | if (filterInfoCollection.Count == 0)
557 | {
558 | btnStartVideo.Enabled = false;
559 | }
560 | else
561 | {
562 | btnStartVideo.Enabled = true;
563 | }
564 | }
565 |
566 | ///
567 | /// 摄像头按钮点击事件
568 | ///
569 | ///
570 | ///
571 | private void btnStartVideo_Click(object sender, EventArgs e)
572 | {
573 | //必须保证有可用摄像头
574 | if (filterInfoCollection.Count == 0)
575 | {
576 | MessageBox.Show("未检测到摄像头,请确保已安装摄像头或驱动!");
577 | }
578 | if (videoSource.IsRunning)
579 | {
580 | btnStartVideo.Text = "启用摄像头";
581 | videoSource.SignalToStop(); //关闭摄像头
582 | chooseImgBtn.Enabled = true;
583 | matchBtn.Enabled = true;
584 | txtThreshold.Enabled = false;
585 | videoSource.Hide();
586 | }
587 | else
588 | {
589 | if (isCompare)
590 | {
591 | //比对结果清除
592 | for (int i = 0; i < imagesFeatureList.Count; i++)
593 | {
594 | imageList.Items[i].Text = string.Format("{0}号", i);
595 | }
596 | lblCompareInfo.Text = "";
597 | isCompare = false;
598 | }
599 |
600 | txtThreshold.Enabled = true;
601 | videoSource.Show();
602 | chooseImgBtn.Enabled = false;
603 | matchBtn.Enabled = false;
604 | btnStartVideo.Text = "关闭摄像头";
605 | deviceVideo = new VideoCaptureDevice(filterInfoCollection[0].MonikerString);
606 | deviceVideo.VideoResolution = deviceVideo.VideoCapabilities[0];
607 | videoSource.VideoSource = deviceVideo;
608 | videoSource.Start();
609 | }
610 | }
611 |
612 | private FaceTrackUnit trackUnit = new FaceTrackUnit();
613 | private Font font = new Font(FontFamily.GenericSerif, 10f);
614 | private SolidBrush brush = new SolidBrush(Color.Red);
615 | private Pen pen = new Pen(Color.Red);
616 | private bool isLock = false;
617 |
618 | ///
619 | /// 图像显示到窗体上,得到每一帧图像,并进行处理
620 | ///
621 | ///
622 | ///
623 | private void videoSource_Paint(object sender, PaintEventArgs e)
624 | {
625 | if (videoSource.IsRunning)
626 | {
627 | //得到当前摄像头下的图片
628 | Bitmap bitmap = videoSource.GetCurrentVideoFrame();
629 | if (bitmap == null)
630 | {
631 | return;
632 | }
633 | Graphics g = e.Graphics;
634 | float offsetX = videoSource.Width * 1f / bitmap.Width;
635 | float offsetY = videoSource.Height * 1f / bitmap.Height;
636 | //检测人脸,得到Rect框
637 | ASF_MultiFaceInfo multiFaceInfo = FaceUtil.DetectFace(pVideoEngine, bitmap);
638 | //得到最大人脸
639 | ASF_SingleFaceInfo maxFace = FaceUtil.GetMaxFace(multiFaceInfo);
640 | //得到Rect
641 | MRECT rect = maxFace.faceRect;
642 | float x = rect.left * offsetX;
643 | float width = rect.right * offsetX - x;
644 | float y = rect.top * offsetY;
645 | float height = rect.bottom * offsetY - y;
646 | //根据Rect进行画框
647 | g.DrawRectangle(pen, x, y, width, height);
648 | if (trackUnit.message != "" && x > 0 && y > 0)
649 | {
650 | //将上一帧检测结果显示到页面上
651 | g.DrawString(trackUnit.message, font, brush, x, y + 5);
652 | }
653 | //保证只检测一帧,防止页面卡顿以及出现其他内存被占用情况
654 | if (isLock == false)
655 | {
656 | isLock = true;
657 | //异步处理提取特征值和比对,不然页面会比较卡
658 | ThreadPool.QueueUserWorkItem(new WaitCallback(delegate
659 | {
660 | if (rect.left != 0 && rect.right != 0 && rect.top != 0 && rect.bottom != 0)
661 | {
662 | try
663 | {
664 | //提取人脸特征
665 | IntPtr feature = FaceUtil.ExtractFeature(pVideoImageEngine, bitmap, maxFace);
666 | float similarity = 0f;
667 | //得到比对结果
668 | int result = compareFeature(feature, out similarity);
669 | if (result > -1)
670 | {
671 | //将比对结果放到显示消息中,用于最新显示
672 | trackUnit.message = string.Format(" {0}号 {1}", result, similarity);
673 | }
674 | else
675 | {
676 | //重置显示消息
677 | trackUnit.message = "";
678 | }
679 | }
680 | catch (Exception ex)
681 | {
682 | Console.WriteLine(ex.Message);
683 | }
684 | finally
685 | {
686 | isLock = false;
687 | }
688 | }
689 | isLock = false;
690 | }));
691 | }
692 | }
693 | }
694 |
695 |
696 |
697 |
698 | ///
699 | /// 得到feature比较结果
700 | ///
701 | ///
702 | ///
703 | private int compareFeature(IntPtr feature, out float similarity)
704 | {
705 | int result = -1;
706 | similarity = 0f;
707 | //如果人脸库不为空,则进行人脸匹配
708 | if (imagesFeatureList != null && imagesFeatureList.Count > 0)
709 | {
710 | for (int i = 0; i < imagesFeatureList.Count; i++)
711 | {
712 | //调用人脸匹配方法,进行匹配
713 | ASFFunctions.ASFFaceFeatureCompare(pVideoImageEngine, feature, imagesFeatureList[i], ref similarity);
714 | if (similarity >= threshold)
715 | {
716 | result = i;
717 | break;
718 | }
719 | }
720 | }
721 | return result;
722 | }
723 |
724 | ///
725 | /// 阈值文本框键按下事件,检测输入内容是否正确,不正确不能输入
726 | ///
727 | ///
728 | ///
729 | private void txtThreshold_KeyPress(object sender, KeyPressEventArgs e)
730 | {
731 | //阻止从键盘输入键
732 | e.Handled = true;
733 | //是数值键,回退键,.能输入,其他不能输入
734 | if (char.IsDigit(e.KeyChar) || e.KeyChar == 8 || e.KeyChar == '.')
735 | {
736 | //渠道当前文本框的内容
737 | string thresholdStr = txtThreshold.Text.Trim();
738 | int countStr = 0;
739 | int startIndex = 0;
740 | //如果当前输入的内容是否是“.”
741 | if (e.KeyChar == '.')
742 | {
743 | countStr = 1;
744 | }
745 | //检测当前内容是否含有.的个数
746 | if (thresholdStr.IndexOf('.', startIndex) > -1)
747 | {
748 | countStr += 1;
749 | }
750 | //如果输入的内容已经超过12个字符,
751 | if (e.KeyChar != 8 && (thresholdStr.Length > 12 || countStr > 1))
752 | {
753 | return;
754 | }
755 | e.Handled = false;
756 | }
757 | }
758 |
759 | ///
760 | /// 阈值文本框键抬起事件,检测阈值是否正确,不正确改为0.8f
761 | ///
762 | ///
763 | ///
764 | private void txtThreshold_KeyUp(object sender, KeyEventArgs e)
765 | {
766 | //如果输入的内容不正确改为默认值
767 | if (!float.TryParse(txtThreshold.Text.Trim(), out threshold))
768 | {
769 | threshold = 0.8f;
770 | }
771 | }
772 |
773 | #endregion
774 | }
775 | }
776 |
--------------------------------------------------------------------------------
/ArcSoftFace/ArcSoftFace/FaceForm.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 | 17, 17
122 |
123 |
124 |
125 | AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
126 | LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
127 | ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABo
128 | sgAAAk1TRnQBSQFMAwEBAAFoAQABaAEAAVABAAFQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAEB
129 | AgABUAMAAQEBAAEgBgABkAEBEQABIAEbARcB/wEdARcBEgH/ARkBEQEMAf8BFwEQAQsB/wEhARsBEwH/
130 | ARUBEgENAf8BDgEMAQkB/wEXARUBEQH/AQEBAgEAAf8BFwEWARIB/wEVARMBDQH/AhMBDQH/ARQBEgEM
131 | Af8BDQEOAQYB/wETARUBDQH/ARgBFgEQAf8BFAESARAB/wEBAQIBAQH/AgUBAgH/ARABDQEHAf8BGAEV
132 | AQ8B/wEXARUBDwH/ASQBGAFjAf8BiAFtAcsB/wE5ASUBtgH/AWIBTwHDAf8BIwEdAV0B/wEMAQ0BCgH/
133 | AQYBBAECAf8BCAEFAQQB/wETAQ8BDgH/AREBDgEMAf8BCQEHAQYB/wEKAgYB/wENAQkBBwH/AQ0BCwEI
134 | Af8BCwEKAQcB/wENAQ8BCwH/AQkBCwEIAf8BAwEFAQMB/wMAAf8BAAEBAQAB/wEXARMBDgH/ARgBFgEO
135 | Af8BFgETAQ4B/wMAAf8DAAH/AQkBAQE/Af8BDwEHAWQB/wEbAREBkQH/ASEBGQGQAf8CAAESAf8DAAH/
136 | AQUBBwEDAf8BAAECAQAB/wECAQQBAQH/AQQBBgEEAf8BAwIEAf8BBAEFAQMB/wEFAQcBAgH/AQEBAgEA
137 | Af8BCQEIAQUB/wEKAQgBBQH/AQoBCAEGAf8BCwEHAQUB/wELAQoBBQH/AgsBBwH/AQoBDAEFAf8BDAEO
138 | AQUB/wEMAQ8BBgH/AQgBCgECAf8BDgENAQYB/wEPAQ4BCAH/AQoBCwEGAf8BDwEQAQ4B/wIQAQ8B/wES
139 | ARABDwH/ARIBEAEPAf8BEwEQAQ4B/wETARABDwH//wD/AP8AwwABHgEaARUB/wEbARcBEgH/ARoBEwEN
140 | Af8BGgETAQ4B/wEdARoBEQH/ARYBFAEOAf8BEwEQAQoB/wEVARMBEAH/AQMBBAEAAf8BGQEYAREB/wEW
141 | ARMBDgH/ARYBEwEOAf8BFgETAQ4B/wEOAQ0BBwH/AhEBCwH/ARsBGAETAf8BFwEUAREB/wEBAgAB/wIJ
142 | AQYB/wILAQUB/wEWARQBDgH/ARUBEwESAf8BLgEhAZwB/wE8AS0BqwH/AYYBbwHJAf8BUgFIAb8B/wEU
143 | AREBKAH/AQUBBgEDAf8BBQEEAQEB/wEMAQoBBwH/ARIBEAENAf8BDgEMAQoB/wEIAQcBBgH/AQwBCQEI
144 | Af8BDgEMAQkB/wILAQgB/wEMAQ4BCgH/AQkBCwEGAf8BCAEJAQcB/wECAQMBAQH/AwAB/wMAAf8BCgEI
145 | AQYB/wEVARIBDwH/ARkBFQETAf8BBQEEAQMB/wMAAf8CAAEUAf8BCwEEAVkB/wEQAQgBbQH/ARkBDQGP
146 | Af8BFgEPAWIB/wMAAf8CAgEAAf8BAAECAQAB/wEAAQIBAAH/AQQBBgEDAf8BAwEFAQMB/wEDAQQBAgH/
147 | AQQBBQEBAf8BAAEBAQAB/wEJAQgBBQH/AQgBBgEEAf8BCQEHAQQB/wELAQkBBQH/AQsBCQEFAf8BCwEK
148 | AQYB/wEMAQsBBwH/AgoBBgH/AQsBDQEHAf8BBwEKAQEB/wENAQ4BBQH/ARABEQEIAf8CDAEJAf8BDQEO
149 | AQwB/wEPARABDgH/AREBDwEOAf8BEgEPAQ4B/wEVARIBDwH/ARMBEgEPAf//AP8A/wDDAAEeARoBFQH/
150 | ARwBGAETAf8BGQEVARAB/wEZARMBEAH/AR4BGwEVAf8BFgETAQ0B/wEWARUBDQH/AhEBDQH/AQsBDAEK
151 | Af8BGgEWARMB/wEYARUBEAH/ARoBFwERAf8BGQEWARAB/wENAQoBBQH/ARUBEQENAf8BIQEcARkB/wEa
152 | ARcBEwH/AwAB/wEPAQ0BCgH/AQwBCAEFAf8BFQETAQ8B/wEYARIBOwH/AYoBgAHMAf8BvAGxAecB/wFW
153 | AU8BvwH/ASgBIwGPAf8CCQELAf8DAAH/AQcBBQEEAf8BDwELAQoB/wETAQ8BDgH/AQoBBwEGAf8BBAEC
154 | AQEB/wEOAQsBCgH/AQsBCgEGAf8BBgEIAQMB/wEGAQkBBAH/AQoBDAEIAf8BCgENAQsB/wEHAQkBCAH/
155 | AwAB/wMAAf8DAAH/ARABDQEKAf8BFAERAQsB/wEXARUBEgH/AwAB/wMAAf8BBQEAATUB/wERAQcBZwH/
156 | ARcBCwGCAf8BFQEMAYgB/wEGAQEBJQH/AwAB/wEBAQIBAAH/AwAB/wIBAQAB/wIDAQAB/wIDAQAB/wEB
157 | AQIBAAH/AQABAgEAAf8BCAEHAQUB/wEFAQQBAgH/AQYBBQECAf8CCAEEAf8BCgEJAQYB/wEMAQoBCAH/
158 | AQwBCgEIAf8BCgEJAQcB/wEJAQoBBwH/AQgBCQEFAf8BCwENAQUB/wEOARABCAH/AQoBCwEIAf8BDQEO
159 | AQwB/wEOAQ8BDQH/AREBDwENAf8BEwEPAQ4B/wEUARABDwH/ARMBEQEQAf//AP8A/wDDAAEgARwBFwH/
160 | AR8BGwEWAf8BHQEZARQB/wEaARYBEQH/ASABHAEXAf8BFwEUAQ4B/wEZARcBEQH/AQkBCgEGAf8BFwEV
161 | ARMB/wEZARcBEAH/ARgBFQEPAf8BGgEYAREB/wEYARUBDwH/AQwBCQEDAf8BGAEVAQ8B/wEmASIBHQH/
162 | ARwBGAETAf8DAAH/AREBDwEKAf8BDwEMAQcB/wEMAQkBCAH/ASABGAFqAf8BLAEhAZ8B/wEhARsBmgH/
163 | ASMBHAGhAf8BFwEVAUcB/wEBAQIBAAH/AwAB/wEGAQUBAwH/AQ8BDQELAf8BCgEIAQYB/wEJAQgBBgH/
164 | AREBDwEOAf8BDAELAQoB/wEGAQUBBAH/ASUBJgEqAf8BWAFlAZAB/wFvAYsBsAH/AW8BjwG2Af8BZwGF
165 | AagB/wFBAUgBXAH/AQEBAwECAf8DAAH/AwAB/wEOAQ0BCgH/ARABDwELAf8CEQEOAf8DAAH/AgABBQH/
166 | AQoBAwFQAf8BFgEKAXAB/wEVAQoBhQH/ARMBCAFfAf8DAAH/AQABAQEAAf8DAAH/AQECAAH/AQMBAgEA
167 | Af8BAwECAQAB/wEBAgAB/wMAAf8CBwEFAf8BAwEEAQEB/wEFAQYBAgH/AQgBBwEDAf8BCgEIAQYB/wIK
168 | AQYB/wELAQkBBQH/AQsBCQEGAf8BDQELAQkB/wEKAQkBBwH/AQwBCwEJAf8BEQEPAQ0B/wIKAQgB/wIP
169 | AQ0B/wEQAREBDgH/AhABCwH/ARYBFAEOAf8BFQEUAQ8B/wEUARIBDgH//wD/AP8AwwABIwEfARoB/wEi
170 | AR4BGQH/AR8BGwEWAf8BHQEZARUB/wEkASABGwH/AR4BGQEVAf8BGAEVAQ8B/wEMAQoBBAH/ARkBFgES
171 | Af8BFwEUAQ0B/wEYARQBEAH/AR4BGgEVAf8BFwETAQ8B/wEOAQoBBgH/ARYBEgENAf8BJwEjAR4B/wEf
172 | ARsBFgH/AwAB/wEQAQ8BCwH/AQ8BDQEJAf8CAAEGAf8BDQEHAVcB/wEMAQMBYgH/ARQBDgGBAf8BFgEO
173 | AW8B/wEBAQIBDwH/AwAB/wEAAQIBAAH/AQIBBAECAf8BYAFmAWMB/wIbARkB/wIQAQ4B/wEIAQkBBgH/
174 | AQYBBwEFAf8BKwEvAToB/wGJAZ8BygH/AZsBsgHkAf8BnAGzAecB/wGUAa4B4QH/AY8BqAHZAf8BgQGZ
175 | AcoB/wFcAW0BlwH/ARIBFQEXAf8DAAH/AgUBAwH/AQsBDAEKAf8BDwEQAQ0B/wEMAQkBCAH/AwAB/wIA
176 | ASQB/wEJAQABVQH/ARcBCgGCAf8BLQEfAYoB/wIAAR0B/wMAAf8DAAH/AwAB/wMAAf8BAQIAAf8DAAH/
177 | AwAB/wIGAQQB/wECAQMBAQH/AgQBAgH/AQcBBgEDAf8BCAEHAQMB/wEIAQkBBQH/AggBBAH/AQoBCAEG
178 | Af8BDgEMAQsB/wEKAQgBBwH/AQsBCgEIAf8BEgERAQ8B/wELAQkBBwH/AREBDwEOAf8BEwESARAB/wIS
179 | AQ0B/wEVARMBDgH/ARkBFwEPAf8BGAEWAQ4B//8A/wD/AMMAASEBHQEYAf8BJAEfARoB/wEfARoBFgH/
180 | AR8BGwEYAf8BIgEfARgB/wEgARsBFQH/ARYBFAENAf8BEwERAQsB/wEaARcBEgH/ARYBEgENAf8BGwEX
181 | ARIB/wEeARoBFgH/ARUBEQEMAf8BEwEPAQoB/wEXARMBDgH/ASsBJAEhAf8BIwEeARoB/wMAAf8CCQEH
182 | Af8DAAH/AgABEgH/AgABOAH/AQEBAAFLAf8BBQEAAU8B/wEHAQABOQH/AwAB/wMAAf8DAAH/ASoBLwEu
183 | Af8CRgFDAf8BFAEVAREB/wMAAf8BAwEEAQAB/wEiASgBMQH/AYsBoQHJAf8BnAG0AegB/wGcAbYB5wH/
184 | AZkBswHnAf8BlgGwAeQB/wGNAagB3AH/AYYBngHSAf8BbAGQAcAB/wFdAXEBnwH/ARABFQEZAf8DAAH/
185 | AgQBAwH/AQwBCwEKAf8BFwEVARQB/wEGAQUBBAH/AgABAQH/AQEBAAE7Af8BDgELAVcB/wGQAYkBrAH/
186 | AQ4BBgE6Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AgYBAwH/AQIBAwEBAf8DAwH/AQUBBAED
187 | Af8BCAEGAQMB/wEFAQcBBQH/AgcBBQH/AQoBCQEHAf8BCwEJAQgB/wENAQsBCgH/AgsBCQH/ARABEQEP
188 | Af8BDQEMAQsB/wERAQ8BDgH/ARYBFAESAf8BFQETAREB/wEVARMBEQH/ARUBFAEPAf8BGwEYARIB//8A
189 | /wD/AMMAASkBHwEbAf8BKgEhAR0B/wElAR4BGAH/ASIBHQEZAf8BIwEhARkB/wEfARsBFgH/ARABDAEI
190 | Af8BGAEVARAB/wEdARgBEwH/AR0BFgERAf8BIgEbARYB/wEeARoBFQH/ARYBEgENAf8BFgESAQ0B/wEZ
191 | ARMBDgH/AS4BJQEfAf8BJAEfARoB/wMAAf8BGAEWARMB/wMAAf8CAAEEAf8CAAEYAf8CAAEoAf8CAAEq
192 | Af8CAAEIAf8DAAH/AwAB/wMAAf8BHwEdARkB/wEtASoBJQH/AhoBFwH/AgIBAAH/ARwBIQEjAf8BhAGc
193 | AcEB/wGTAbEB3wH/AZQBrgHfAf8BlAGuAd8B/wGTAa8B4gH/AZIBrQHjAf8BjwGqAd4B/wGFAaAB0wH/
194 | AW0BlAHEAf8BXQGDAa8B/wFGAVsBhgH/AQIBCAELAf8DAAH/AgMBAQH/AhABDwH/AgkBCAH/AwAB/wIA
195 | ARkB/wErASYBUwH/ATUBLgFdAf8BJAEcAU8B/wIAAQIB/wMAAf8DAAH/AwAB/wECAQEBAAH/AwAB/wMA
196 | Af8BBwEIAQQB/wEBAQIBAAH/AgIBAQH/AQQBBQECAf8BBQEGAQIB/wEHAQgBBAH/AQoBCAEEAf8BCwEJ
197 | AQYB/wEKAQkBBgH/AQ0BCwEJAf8BCgELAQkB/wEQAREBDwH/AREBEAEOAf8BDwENAQsB/wEXARUBEwH/
198 | ARcBFQEUAf8BFwEWARIB/wEXARgBEgH/AhkBEwH//wD/AP8AwwABLgEjAR4B/wErASIBHQH/ASoBIgEb
199 | Af8BJAEdARcB/wEpASQBHwH/AR8BGwEXAf8BEQENAQkB/wEdARkBFAH/ASIBGgEWAf8BJQEbARYB/wEl
200 | AR0BGAH/ARwBFwETAf8BGwEXARMB/wEXARMBDgH/ARoBFAEPAf8BMAElAR4B/wEmASABGgH/AwAB/wEn
201 | ASABHAH/ATIBKgEkAf8BIwEeAR0B/wEXARMBGQH/ARQBEAEaAf8BDwEMARcB/wEKAQgBBwH/AQgBBgED
202 | Af8BBgEEAQEB/wEHAQYBAgH/ASMBIQEaAf8BJwEkASAB/wEBAgAB/wEhASQBKwH/AYUBnQHEAf8BkgGx
203 | Ad8B/wGPAawB2gH/AYkBpgHVAf8BgwGgAc8B/wGEAaAB0AH/AYcBogHTAf8BgwGfAdEB/wFyAZoBzAH/
204 | AW0BlgHFAf8BZAGJAbcB/wFVAWoBogH/AUEBUgFuAf8BCAENARIB/wMAAf8BBwEJAQcB/wEIAQkBBwH/
205 | AQABAQEAAf8CAAEEAf8BFgEVASkB/wELAQoBLAH/ARkBFAE5Af8CAgEOAf8DAAH/AwAB/wEJAgcB/wEL
206 | AQkBCAH/AwAB/wMAAf8BBgEHAQUB/wEAAQEBAAH/AQIBAwEBAf8BAwEFAQIB/wEDAQcBAwH/AQUBCQEE
207 | Af8BCAEKAQQB/wEMAQsBBwH/AQwBCgEIAf8BCwEKAQgB/wINAQwB/wERARIBEAH/ARkBGAEWAf8BCQEH
208 | AQUB/wEYARcBFQH/ARoBGAEVAf8CGAERAf8BFgEYARAB/wIcARQB//8A/wD/AMMAATMBJwEjAf8BLgEm
209 | AR0B/wEtASYBHAH/ASYBHgEXAf8BLgElASAB/wEgARwBFwH/ARcBEwEOAf8BHwEZARQB/wEoAR8BGwH/
210 | ASgBHgEaAf8BIwEcARYB/wEeARkBFQH/AR0BGQEVAf8BFgETAQ4B/wEcARYBEQH/AS8BJgEfAf8BKAEi
211 | ARwB/wMAAf8BIwEcARgB/wE0ASsBJwH/AS8BKAEjAf8BLQEoASMB/wExASkBIwH/ASsBJwEhAf8BJwEk
212 | AR8B/wEjAR8BGwH/AScBIwEfAf8BIQEdARgB/wEjAR8BGwH/ARYBFAETAf8BHgElASwB/wGLAaUByQH/
213 | AZUBsQHhAf8BjQGqAdYB/wGGAaIB0AH/AXIBnQHMAf8BbgGaAcgB/wFnAZQBwgH/AWMBkAG+Af8BZgGR
214 | Ab4B/wFnAZABwAH/AWcBkQHBAf8BYAGIAbYB/wFWAW0BqAH/AUkBYQGYAf8BOwFSAXAB/wEQARcBIQH/
215 | AQcBCQEIAf8BBQEHAQYB/wEAAQIBAAH/AQMBBwEDAf8BBwEJAQcB/wELAQwBDwH/AQsBDQERAf8BDQEQ
216 | AQ8B/wEPAREBDwH/AQ8BDgEMAf8BDwEOAQsB/wEMAQoBCAH/AQMBBAEBAf8DAAH/AQMBBgECAf8BAAEB
217 | AQAB/wEBAQQBAAH/AQEBBQEBAf8BAQEFAQEB/wEGAQgBBAH/AQkBCgEFAf8BCQEMAQcB/wEIAQsBBgH/
218 | AQoBDAEIAf8BEwERAQ4B/wEXARQBEgH/ARwBGgEXAf8CCgEEAf8CEgELAf8BHAEaARgB/wEcAR0BFgH/
219 | AhoBFAH/AR4BHAEXAf//AP8A/wDDAAE0ASkBIgH/ATEBKAEfAf8BLAElARwB/wEsASMBGwH/ATUBKgEk
220 | Af8BJAEbARcB/wEjARoBFAH/AScBHgEZAf8BKQEgARwB/wEqASEBHAH/ASMBGwEWAf8BIQEcARgB/wEe
221 | ARoBFQH/ARYBEQENAf8BGgEUAQ8B/wEtASUBHwH/ASYBIQEbAf8DAAH/ARwBFgETAf8BMgEpASMB/wEv
222 | AScBIwH/ASkBJAEhAf8BKAEjAR8B/wEnASIBHQH/ASYBIgEeAf8BIwEfARoB/wEjAR8BGgH/ARwBGQEU
223 | Af8BJQEkASIB/wEXAR0BKAH/AYEBnAHEAf8BkQGsAdsB/wGQAasB2wH/AYkBpQHTAf8BgwGfAc4B/wFy
224 | AZwBywH/AWoBlQHEAf8BZgGRAb4B/wFfAYsBtwH/AVsBhgG1Af8BWwGGAbQB/wFZAYUBsgH/AVgBgwGw
225 | Af8BVgFwAasB/wFSAWkBpQH/AUUBXwGUAf8BOgFQAXIB/wEhAS4BPgH/ARkBHAEdAf8DAAH/AQIBBAED
226 | Af8BBwEIAQYB/wEGAQcBBAH/AQcBCQEGAf8BCgEMAQkB/wELAQ0BCwH/Ag8BDAH/ARABDwENAf8CDQEL
227 | Af8BCAEKAQcB/wMAAf8BAQEFAQAB/wEAAQIBAAH/AQABAQEAAf8BAQEFAQAB/wECAQYBAAH/AgkBBwH/
228 | AQwBDQEKAf8BCQELAQYB/wEJAQwBBgH/ARABEgENAf8CEQENAf8BFQEUARIB/wIbARUB/wIVAQ0B/wIP
229 | AQkB/wEaARkBFwH/AiABGgH/ARwBHQEZAf8BIAEhAR4B//8A/wD/AMMAATcBLQEkAf8BNAEqASIB/wEs
230 | ASQBGwH/ATYBLQEkAf8BNAEqASIB/wEoAR4BGAH/ASgBHwEYAf8BJAEfARoB/wEoASQBIAH/ASsBJQEh
231 | Af8BKwEiAR4B/wEmAR8BGgH/ARwBGAEUAf8BGAEUARAB/wEZARUBEQH/AS4BJAEgAf8BJgEfARsB/wIC
232 | AQAB/wELAQoBBgH/ATABKAEgAf8BLgEnASIB/wEoASQBIAH/ASgBJAEfAf8BJwEjAR4B/wElASEBHAH/
233 | ASMBHwEaAf8BIAEcARYB/wEZARgBFAH/ATgBQgFKAf8BTAFgAY4B/wGDAaQB0gH/AYUBpQHTAf8BhwGo
234 | AdYB/wGKAagB1wH/AYgBpQHSAf8BcgGdAcsB/wFqAZQBwwH/AWUBkAG+Af8BYAGMAbkB/wFcAYYBtAH/
235 | AVYBggGvAf8BVQGBAa4B/wFWAYIBrwH/AVUBgAGtAf8BVgFuAagB/wFLAWgBoAH/AUUBXgGUAf8BOAFR
236 | AYEB/wFHAVcBZwH/ARoBIgEgAf8BAQEDAQEB/wEEAQYBBAH/AQUBBgEEAf8BBwEIAQYB/wEKAQsBCQH/
237 | AQsBDAEKAf8BDgEQAQwB/wEQAREBDQH/AQ8BEgENAf8BCgEOAQkB/wECAQYBAQH/AQQBCAEDAf8BAAEC
238 | AQAB/wEAAQEBAAH/AQEBBAEAAf8BAwEFAQAB/wELAQoBBwH/ARABDgEMAf8BEwESARAB/wETARQBEQH/
239 | ARMBFAERAf8BEwERAQ8B/wEXARYBEwH/AR4BHAEWAf8BGQEYARQB/wEaARkBFwH/ARYBFQETAf8CGgEX
240 | Af8BTwFMAUsB/wGmAaQBpwH//wD/AP8AwwABNQEtASMB/wErASIBGgH/ATABJQEeAf8BPgE1ASwB/wEz
241 | ASsBIgH/ASkBIgEaAf8BLQEoASIB/wEuASkBJAH/AS8BKQEjAf8BLwEnASAB/wEsASMBHwH/ASkBHgEa
242 | Af8BIAEYARIB/wEfARcBEQH/AR8BFwESAf8BMQEmASIB/wEnAR8BGgH/AQYBBwEGAf8DAAH/ATkBMgEx
243 | Af8BLgEnASIB/wErASYBIgH/ASkBJQEgAf8BJgEhARwB/wElASEBHAH/ASIBHgEZAf8BHQEZARQB/wEZ
244 | Ah4B/wEVAScBPgH/AYQBoAHMAf8BhQGkAdMB/wGOAawB2gH/AY8BrQHcAf8BjgGrAdoB/wGGAaMB0AH/
245 | AWoBlAHCAf8BWgGEAbIB/wFVAXIBrQH/AVEBbgGoAf8BUgFuAacB/wFRAW8BqQH/AVQBcQGrAf8BVgGC
246 | Aa8B/wFaAYUBsgH/AVYBgAGvAf8BUgFvAawB/wFRAWcBowH/AUQBWwGUAf8BNAFJAWkB/wEfASkBMQH/
247 | AQEBAwECAf8BAAECAQEB/wEDAQQBAgH/AQYBBwEFAf8BCwEMAQoB/wELAQwBCgH/AQ4BEQENAf8BDgES
248 | AQ0B/wEOARIBDQH/AQsBDwEKAf8BCgEOAQkB/wEEAQgBAwH/AQABAQEAAf8BAAEBAQAB/wECAQUBAAH/
249 | AQgBCQEFAf8BEwERARAB/wEYARYBFQH/ARgBFgETAf8CFQESAf8BDwESAQ4B/wESARABDwH/AR8BHQEc
250 | Af8BIgEgAR0B/wEdARwBGQH/ASEBIgEfAf8BJgEnASUB/wKZAZoB/wHfAeAB5QH/At8B6AH//wD/AP8A
251 | wwABIwEdARcB/wE1ASsBIwH/ATwBMAEoAf8BQAE3AS4B/wE5ATEBKQH/AS0BKAEgAf8BJwEhARoB/wEs
252 | ASQBHAH/AS8BJQEeAf8BMgEnASIB/wEyAScBIwH/ASsBIAEcAf8BIgEZARUB/wEhARgBFAH/ASABFwES
253 | Af8BMQEmASEB/wEpAR8BHAH/AQ0BCwEJAf8DAAH/AUYBPwFfAf8BLgEnASEB/wEqAScBIgH/ASwBJQEg
254 | Af8BJQEgARsB/wEjAR8BGgH/AR8BGwEWAf8BHgEbARYB/wELARABFQH/ATgBTwFtAf8BgQGjAdAB/wGN
255 | Aa0B3AH/AZQBswHhAf8BkQGuAd0B/wGAAZ0BzAH/AV0BhQGyAf8BUgFuAaYB/wFRAW4BpQH/AU4BagGi
256 | Af8BTQFrAaQB/wFOAWwBpgH/AU0BbQGnAf8BTgFtAaYB/wFPAW0BpwH/AU4BbQGoAf8BUQFwAasB/wFV
257 | AXEBrgH/AVQBbAGpAf8BSQFiAZ0B/wE8AVEBhAH/AR0BKwE4Af8BAAIDAf8DAAH/AgIBAQH/AQQBBQED
258 | Af8BBwEIAQYB/wEMAQ0BCwH/ARABFAEPAf8BDwETAQ4B/wEJAQ0BCQH/AQsBDgELAf8BEAERAQ4B/wED
259 | AQYBAQH/AQABAgEAAf8BAAEDAQAB/wIKAQgB/wEVARQBEgH/ARUBEwESAf8BEAEPAQ0B/wIQAQ0B/wEQ
260 | AREBDQH/AQ0BEAEOAf8BFQESARAB/wEiAR8BHAH/ATEBLQEqAf8BMAEsASkB/wEzATIBLwH/AaABngGg
261 | Af8B4wHhAecB/wHhAeIB5wH/Ad8B4QHnAf//AP8A/wDDAAFoAVwBWgH/AUwBQgE6Af8BUAFGATwB/wFL
262 | AUABOAH/AUUBOwE1Af8BNQEsASUB/wEqASEBGQH/AS0BJAEcAf8BMAEmAR8B/wEzASgBIwH/ATUBKgEm
263 | Af8BLQEiAR4B/wEpAR4BGgH/ASsBIQEdAf8BKgEgARsB/wE0ASkBJAH/ASkBIAEcAf8BDgEMAQkB/wIA
264 | AQMB/wFLAUEBmgH/AS4BKgEjAf8BLQEnASEB/wEsASMBHwH/AScBIAEbAf8BIQEdARgB/wEgARwBFwH/
265 | AR0BGQEVAf8BBgEOARQB/wFkAYsBtQH/AY0BrgHbAf8BmQG3AeYB/wGOAasB2gH/AWgBkgHBAf8BXAGF
266 | AbQB/wFaAYQBsQH/AVUBcQGrAf8BUAFqAaUB/wFIAWIBmwH/AUcBYwGbAf8BSgFpAaEB/wFRAW4BqAH/
267 | AVABbAGnAf8BUwFwAasB/wFQAW4BqwH/AVEBbgGoAf8BTgFsAaYB/wFNAWoBpQH/AUkBaAGjAf8BQgFb
268 | AZIB/wEqATwBWQH/AQABAgEEAf8DAAH/AwAB/wEDAQQBAgH/AQcBCAEGAf8BDQEOAQwB/wEVARYBEgH/
269 | ARABEgEOAf8BCgEMAQkB/wEOAQ8BDQH/AREBDwENAf8BAgEGAQEB/wEAAQIBAAH/AQQBBwEDAf8CEgEP
270 | Af8BFAETAREB/wETARIBEAH/ARQBEgEQAf8BMAEuAS0B/wFtAWsBbAH/AZwBmgGdAf8BrgGsAa4B/wHB
271 | Ab8BwwH/Ac4BzAHRAf8B0gHPAdMB/wHRAdMB1wH/Ad8B4wHoAf8B4AHjAegB/wHhAeQB6QH/AeAB5AHo
272 | Af//AP8A/wDDAAHvAu4B/wHtAuoB/wHsAegB5gH/Ac8BygHIAf8BoAGZAZYB/wFeAVUBTQH/AUQBOgEy
273 | Af8BOAEsASUB/wE5ASwBJgH/ATUBKwEmAf8BOgEvASsB/wE3ASwBKAH/ATIBJgEiAf8BLAEhAR0B/wEt
274 | ASMBHwH/ATQBKgElAf8BLgElASEB/wEPAQ0BCgH/AgABBAH/AUcBPQGyAf8BNAEuASwB/wEwAScBIwH/
275 | ASwBJQEgAf8BKQEgARwB/wElAR0BGQH/ASUBHgEYAf8CGgEVAf8BGQElATcB/wGIAaYB1AH/AZoBtgHl
276 | Af8BkgGuAd0B/wFvAZgBxwH/AWgBlAHDAf8BYQGLAbkB/wFbAYIBrgH/AUwBZgGfAf8BPwFXAZIB/wE7
277 | AVQBjgH/AT4BXAGTAf8BQgFhAZkB/wFEAWABmgH/AUYBYwGeAf8BSAFmAaIB/wFNAWsBqQH/AVABbwGr
278 | Af8BUwFvAa0B/wFNAWwBqAH/AUYBZAGeAf8BRwFiAZoB/wE3AU0BhAH/AQ8BFgEiAf8DAAH/AwAB/wEB
279 | AQMBAQH/AggBBwH/AQ8BEAEMAf8BGQEYARYB/wESARABDwH/AQoBCQEHAf8CEQEPAf8BDQEOAQwB/wED
280 | AQYBAgH/AQIBBAECAf8BCQEMAQkB/wEZARgBEwH/ARwBGQEYAf8COwE6Af8BlQGWAZgB/wHWAdkB3wH/
281 | AdsB3gHmAf8B3AHfAeYB/wHcAd4B5gH/Ad0B3wHnAf8B3AHgAeYB/wHeAeIB5gH/Ad8B5AHnAf8B3wHk
282 | AecB/wHfAeQB5wH/Ad8B5AHoAf8B3wHkAecB//8A/wD/AMMAA+8B/wPvAf8D7wH/A+8B/wHwAe4B8AH/
283 | AekC5wH/Aa8BqQGmAf8BVQFNAUYB/wE9ATEBKwH/ATEBJwEhAf8BMwEoASQB/wErASABHAH/AS0BIgEe
284 | Af8BKwEgARwB/wExASYBIQH/ATQBKwElAf8BNgEuAScB/wETARABDgH/AgABCQH/AUMBMgHAAf8BOQEw
285 | AUwB/wE2ASsBJwH/AS4BJQEhAf8BKwEiAR4B/wErASIBHgH/ASkBIAEbAf8CFgEUAf8BOwFPAWsB/wGS
286 | AbAB3QH/AZMBsAHfAf8BggGgAc4B/wGAAZ4BzAH/AWsBlgHEAf8BWAFxAagB/wFAAVgBiwH/AT0BVQGJ
287 | Af8BQAFYAY8B/wFEAVwBlQH/AUYBYQGYAf8BRAFjAZwB/wFEAWQBngH/AUUBZAGfAf8BRQFhAZ0B/wFF
288 | AWEBnQH/AUoBZwGkAf8BUQFvAasB/wFVAYEBsgH/AVQBcAGvAf8BSwFlAaQB/wFBAVsBlAH/ASkBPAFX
289 | Af8DAAH/AwAB/wMAAf8BBgEHAQUB/wEPARABDAH/ARcBFgETAf8BDAEKAQgB/wIOAQsB/wERARIBDwH/
290 | AQoBCwEIAf8BBwEIAQQB/wEGAQcBBQH/ARABEgERAf8BZgFoAWkB/wHKAcgBygH/AdwB3QHjAf8B3QHe
291 | AeYB/wHdAd8B5wH/Ad0B3wHnAf8B3QHfAecB/wHdAd8B5wH/Ad0B3wHnAf8B3gHiAecB/wHfAeMB6AH/
292 | Ad8B4wHnAf8B3wHkAecB/wHfAeQB5wH/AeAB5QHoAf8B3wHkAecB//8A/wD/AMMAA+8B/wHwAe8B8AH/
293 | Au8B8AH/Ae4C7wH/Ae4C7wH/A+8B/wHvAe4B7wH/AukB6AH/AboBtgG1Af8BkwGMAYoB/wFsAWIBXwH/
294 | AUEBNwExAf8BNQEsASYB/wEvASQBHwH/ATIBKQEkAf8BMQEpASIB/wE8ATIBKwH/ASIBHgEYAf8CAAEK
295 | Af8BOgEpAbkB/wFAATQBgwH/ATUBKgEmAf8BMgEnASMB/wErASIBHQH/ASkBIAEbAf8BJwEeARoB/wEP
296 | AREBFQH/AVwBgwGlAf8BlAGyAeAB/wGHAaQB0gH/AYcBowHSAf8BgAGcAckB/wFRAWwBoQH/ATwBVwGF
297 | Af8BOwFUAYIB/wE4AVMBgAH/ATUBUAFvAf8BNgFOAW8B/wE2AU8BcQH/ATYBUgFyAf8BOgFUAYIB/wE9
298 | AVgBigH/AUEBXQGTAf8BSAFiAZ8B/wFIAWYBpAH/AUcBaAGnAf8BVQGAAbUB/wFcAYUBuwH/AVoBgQG3
299 | Af8BTwFmAaMB/wE5AVMBhgH/AQIBCQEOAf8DAAH/AwAB/wECAQYBBAH/ARIBFQESAf8BDAENAQoB/wEJ
300 | AQgBBgH/ARMBEgEQAf8CDwEMAf8CEwEPAf8BIgEhAR4B/wFeAlwB/wK5AbsB/wHeAeAB5QH/Ad0B3wHk
301 | Af8B3QHfAecB/wHdAd4B6AH/Ad0B3wHmAf8B3QHfAecB/wHdAd8B5wH/Ad4B4AHoAf8B3gHhAegB/wHf
302 | AeQB5wH/Ad8B4wHnAf8B3wHkAegB/wHfAeQB6AH/AeEB5AHqAf8B3wHkAegB/wHfAeQB5wH//wD/AP8A
303 | wwAB7wHzAfQB/wHvAfMB9AH/Ae4B8QHzAf8B8AHyAfMB/wPvAf8D7wH/A+8B/wPvAf8D7wH/A+4B/wLw
304 | Ae8B/wHpAecB5QH/AbUBsgGsAf8BYAFYAVIB/wE/ATQBLgH/ATMBKQEhAf8BOAEvASYB/wE2ASwBJgH/
305 | AQwBCQEOAf8BZAFYAbIB/wFDATUBrwH/ATYBLgEsAf8BNAEpASUB/wEtASIBHgH/ASsBIgEbAf8BIgEc
306 | ARcB/wEJAQ8BFgH/AYUBnwHFAf8BjAGpAdYB/wGMAaoB1gH/AYYBogHOAf8BUAFsAZ4B/wE4AVUBgQH/
307 | ATUBUQFvAf8BNAFQAW4B/wE0AVABbgH/ATsBVQGAAf8BQQFZAYYB/wFEAVwBhwH/AUABWgGEAf8BPQFY
308 | AYMB/wFDAV4BigH/AUMBXQGLAf8BRAFcAY8B/wFCAV0BkwH/AUcBYwGeAf8BTAFpAaoB/wFVAXIBtAH/
309 | AV8BiAG+Af8BWgGEAboB/wFKAWQBoAH/ARoBJgE6Af8DAAH/AwAB/wECAQYBBAH/AREBFAEPAf8BBgEJ
310 | AQQB/wIMAQoB/wEWARUBEwH/AUcBRgFFAf8CpQGmAf8B1gHaAdwB/wHgAeIB5wH/Ad0B4AHlAf8B3QHg
311 | AeUB/wHcAd8B5AH/Ad0B3wHnAf8B3QHfAeYB/wHdAd8B5wH/Ad0B3wHnAf8B3QHfAecB/wHdAd8B5wH/
312 | Ad0B4AHmAf8B3wHjAecB/wHfAeQB5wH/Ad8B5AHnAf8B4QHkAekB/wHlAeMB7gH/AeYB5AHtAf8B4gHl
313 | AekB//8A/wD/AMMAAfAB8wH3Af8B8AH0AfcB/wHwAfMB+AH/Ae8B8gH1Af8B8AHvAfAB/wPvAf8D7wH/
314 | Ae8C8AH/Ae4C8AH/Ae8C8AH/AvAB7wH/Ae8C8AH/Ae8C8AH/Au8B7gH/AcQBvwG7Af8BWQFRAUkB/wEy
315 | ASgBHwH/AT0BNAEqAf8BHwEYARcB/wFIAT8BgwH/AVcBSAHIAf8BPQE1AVcB/wE4AS0BKQH/AS8BJAEh
316 | Af8BLAEkARsB/wEgAR0BGAH/AQoBEwEdAf8BjQGnAdAB/wGLAacB1AH/AYoBqAHTAf8BWQGBAaYB/wE2
317 | AVMBbwH/ATQBUAFtAf8BPQFZAYYB/wFMAWgBlQH/AVQBcAGdAf8BWAGBAaMB/wFWAXABogH/AVYBcAGi
318 | Af8BUAFpAZwB/wFQAWkBnAH/AVMBagGgAf8BUQFoAaAB/wFWAW0BpgH/AVABaAGfAf8BSQFjAZwB/wFF
319 | AWEBnwH/AU4BawGrAf8BWwGFAbkB/wFkAYwBwgH/AWABhwG8Af8BNgFIAWkB/wMAAf8DAAH/AQYBCAEE
320 | Af8BDAEOAQgB/wEIAQwBBwH/AQwBDwEMAf8BcgKAAf8B4AHjAeYB/wHeAeQB5wH/Ad4B5AHnAf8B3gHj
321 | AecB/wHeAd8B5gH/Ad0B3wHnAf8B3QHfAecB/wHcAd8B5AH/Ad0B4AHlAf8B3QHfAecB/wHdAd8B5wH/
322 | Ad0B3wHnAf8B3QHfAecB/wHeAeEB5wH/Ad8B4wHnAf8B3wHkAecB/wHfAeQB5wH/AeIB4wHqAf8B5wHi
323 | Ae8B/wHnAeMB7wH/AeYB4wHsAf//AP8A/wDDAAH0AfMB+AH/AfQB8wH3Af8B9QHzAfgB/wHxAfMB9wH/
324 | Ae8B8gHzAf8B7wHzAfUB/wHvAfMB9QH/Ae4C8QH/AvIB8QH/AfYB8gHwAf8B9AHxAfAB/wH0AfIB8QH/
325 | AfAB8gHwAf8B8AHyAe8B/wHwAfEB7wH/AfAB7QHrAf8BvwG5AbUB/wFtAWUBYAH/ATwBNQEvAf8BMAEr
326 | ATcB/wFoAVoBvgH/AUgBQQGcAf8BPQE1AS4B/wEzASgBIgH/AS4BJgEdAf8BIQEeARoB/wENARgBJwH/
327 | AYMBngHHAf8BkAGqAdgB/wFnAZABuAH/ATcBUQFwAf8BNAFQAW0B/wFIAWMBkgH/AWsBkwG9Af8BcAGZ
328 | AcIB/wFvAZYBwAH/AYIBmwHGAf8BcAGVAcMB/wFrAZEBvwH/AWABhgGxAf8BZQGKAbgB/wFkAYoBuAH/
329 | AVoBggGvAf8BWwGDAbAB/wFbAYIBrQH/AV8BhgGzAf8BVgFvAasB/wFIAWIBoQH/AVABbAGtAf8BYAGH
330 | Ab4B/wFqAZAByQH/AVMBawGgAf8DAAH/AwAB/wMLAf8BJAEfAT4B/wELAQwBCwH/AWMCZQH/AeAC5QH/
331 | Ad8B5AHmAf8B3wHkAecB/wHeAeQB5wH/Ad8B4wHmAf8B3gHhAeYB/wHdAd8B5gH/Ad0B3wHnAf8B3QHf
332 | AeYB/wHdAd8B5wH/Ad0B3wHnAf8B3QHfAecB/wHdAd8B5wH/Ad0B3wHnAf8B3QHfAecB/wHeAeMB5wH/
333 | Ad8B5AHnAf8B3gHkAecB/wHfAeMB6AH/AecB4wHuAf8B6AHjAfAB/wLjAe0B//8A/wD/AMMAAfcB8wH4
334 | Af8B9wHzAfgB/wH4AfMB+AH/AvQB+AH/AfEB8wH1Af8B8AH0AfcB/wHwAfQB9wH/AfAB9AH2Af8B8QLy
335 | Af8B9AHyAe8B/wLxAe8B/wH0AfIB8QH/AvIB7gH/AfAB8gHuAf8B7gHyAe4B/wHvAfAB7wH/Ae8B8AHu
336 | Af8D8AH/Ad4B2AHVAf8BqgGjAaAB/wFyAW4BgQH/AYYBcAGtAf8BRAE/AUkB/wE4AS4BKQH/ATEBJgEi
337 | Af8BIQEdARoB/wEPARsBLQH/AW0BlgG/Af8BiQGkAcwB/wE5AVQBbwH/ATYBUQFtAf8BSQFmAZQB/wFx
338 | AZoBxgH/AYIBoQHSAf8BhgGnAdgB/wGNAagB2QH/AZEBqAHYAf8BiQGgAdAB/wGBAZoBzQH/AXEBlgHM
339 | Af8BawGTAckB/wFpAZMByQH/AWkBkgHHAf8BZQGPAcQB/wFlAY4BwAH/AWUBjAHAAf8BZgGNAcEB/wFZ
340 | AYIBswH/AU4BawGoAf8BVgFwAbEB/wFqAZEBxgH/AWcBjgG6Af8CAAECAf8BAAEBAQAB/wETARQBGgH/
341 | ATgBNwFLAf8BnAGbAZ0B/wLmAecB/wHfAegB5wH/Ad4C5gH/Ad8B5AHmAf8B3gHkAecB/wHfAeQB5wH/
342 | Ad8B4wHmAf8B3wHiAeYB/wHdAd8B5wH/Ad0B3wHnAf8B3QHgAeUB/wHdAeAB5QH/AdwB3wHlAf8B3QHg
343 | AeUB/wHdAd8B5wH/Ad4B4AHoAf8B3wHjAecB/wHfAeQB5wH/Ad4B5AHnAf8B4AHkAegB/wHmAeMB7gH/
344 | AecB4wHuAf8B5gHjAekB//8A/wD/AMMAAfgB9QH3Af8B9wHzAfgB/wH3AfMB+AH/AfcB8wH4Af8B8AH0
345 | AfcB/wHvAfQB9wH/Ae8B9AH3Af8B8AHzAfYB/wHyAfMB8QH/AvEB7gH/AfAB8gHuAf8C8QHwAf8B8wHy
346 | Ae8B/wHwAfEB7gH/Ae8B8gHvAf8D7wH/A+8B/wPvAf8D8AH/AfMB8QHwAf8B+AHzAfAB/wH2AfAB8gH/
347 | AaMBoAGoAf8BPgE2ATEB/wE1ASsBJwH/AScBIAEeAf8BBwEQAR4B/wGSAawB0gH/AUsBZgGUAf8BPQFW
348 | AYAB/wFNAWcBmAH/AWgBkQG8Af8BgQGfAc4B/wGEAaUB1gH/AY4BrgHlAf8BkAGwAeUB/wGaAbMB6AH/
349 | AZkBrwHnAf8BkgGpAeMB/wGPAaIB4AH/AYQBmgHYAf8BbwGWAdEB/wFrAZIBzQH/AWQBjAHGAf8BZAGM
350 | AcUB/wFmAY8BxgH/AWUBjwHFAf8BYQGKAb4B/wFXAYEBsgH/AVMBbgGuAf8BWQGBAbUB/wFvAZYBwwH/
351 | AQABAgEEAf8BBAEIAQUB/wGGAYkBiwH/AeYB6gHtAf8B5gLoAf8B5gLnAf8B5QLnAf8B3gLmAf8B3QHl
352 | AegB/wHfAeQB5wH/Ad8B5AHnAf8B3wHjAegB/wHfAeMB5QH/Ad0B3wHmAf8B3QHfAeYB/wHfAeAB5wH/
353 | Ad4B4QHgAf8B3gHfAeMB/wHdAd8B5wH/Ad0B3wHnAf8B3gHhAeYB/wHeAeIB5wH/Ad4B4gHnAf8B4AHk
354 | AegB/wHgAeMB6AH/AecB4wHuAf8B6AHjAe0B/wHnAeMB6AH//wD/AP8AwwAB+AH1AfcB/wH3AfMB+AH/
355 | AfcB8wH4Af8C9AH4Af8B8wH0AfgB/wHvAfQB9wH/Ae8B9AH3Af8B8QHyAfMB/wHyAfMB8AH/AfQB8gHw
356 | Af8B8AHyAe4B/wLxAe8B/wHxAfIB7wH/Ae8B8AHuAf8B8ALvAf8D7wH/A+8B/wPvAf8D7wH/AfMB8AHv
357 | Af8B9wHzAe4B/wH3AfMB7gH/AfUB8AHuAf8BggFvAWwB/wE2ATABKAH/ASYBIwEhAf8BLQE7AUwB/wFl
358 | AYwBrQH/AUABWgGIAf8BTQFqAZ4B/wFfAYkBtAH/AW4BlwHFAf8BgAGcAc0B/wGGAaMB2AH/AYgBpgHc
359 | Af8BigGnAd4B/wGFAaAB1wH/AYgBoAHaAf8BigGhAd4B/wGGAZsB2gH/AXABlQHTAf8BagGRAc8B/wFn
360 | AY4ByQH/AWQBiwHEAf8BYwGJAcQB/wFjAYkBwgH/AWIBigHDAf8BXwGHAb8B/wFgAYgBvgH/AVsBgwG3
361 | Af8BVAFuAa0B/wFhAYUBsgH/AQYBCwESAf8BIQElASMB/wHfAeIB5QH/AecB6wHwAf8B5gLpAf8B6ALn
362 | Af8B5ALnAf8B3gLnAf8B3gHmAegB/wHfAeQB5wH/Ad8B5AHnAf8B3wHkAecB/wHdAuIB/wHdAd8B5gH/
363 | Ad4B3wHjAf8C3wHhAf8B3gHgAeEB/wLfAeAB/wLeAeIB/wLfAeIB/wHeAd8B5gH/Ad0B4AHlAf8B3wHj
364 | AecB/wHfAeQB5wH/AeAB5AHoAf8B4wHkAesB/wHnAeMB7wH/AeYB4wHqAf//AP8A/wDDAAH3AfYB9wH/
365 | AfcB9AH3Af8B9wH0AfcB/wH1AfQB+AH/AfQB8wH4Af8B8QH0AfcB/wHvAfQB9wH/AfAB8wH1Af8B8AHy
366 | AfAB/wLxAe8B/wHzAfIB8AH/AfMB8QHwAf8B7wHwAe8B/wLwAe8B/wPvAf8D7wH/A+8B/wHxAvAB/wHx
367 | AvAB/wH0AfEB7wH/AfcB8gHvAf8B9wHyAe8B/wH3AfIB7wH/AecB4wHfAf8BQQE5ATMB/wEpASQBIgH/
368 | ASEBKwE8Af8BRwFhAZAB/wFPAWgBnQH/AVkBhAGwAf8BZAGQAb0B/wFsAZcBxgH/AYMBngHSAf8BhAGe
369 | AdUB/wGIAaIB2AH/AYkBogHaAf8BgwGcAdUB/wFnAZAByQH/AWIBhQHDAf8BXAFxAbwB/wFhAYcBxAH/
370 | AWMBigHHAf8BZAGLAckB/wFiAYgBxQH/AVgBbgG5Af8BWwGBAbwB/wFgAYgBwgH/AV8BhwHAAf8BWQGC
371 | AbkB/wFcAYUBuwH/AVwBhQG6Af8BXwGEAbsB/wFKAVkBhwH/Aa0BsAGzAf8B5wHsAfAB/wHoAewB7wH/
372 | AeYC6QH/AegC5wH/AeQC5wH/AeAC5wH/Ad4B5QHnAf8B3gHlAecB/wHfAeQB5gH/Ad4B5AHjAf8B3QLi
373 | Af8B3QHgAeQB/wLfAeMB/wHfAd4B4AH/Ad8B3gHhAf8C3wHgAf8B4QHfAeEB/wHfAd4B4QH/Ad4B3wHm
374 | Af8B3QHfAecB/wHfAeIB5gH/Ad8B5AHnAf8B3wHkAecB/wHgAeQB6AH/AuMB6QH/AeMB4gHoAf//AP8A
375 | /wDDAAP3Af8B+AH1AfcB/wH3AfUB9gH/AfQB8wH3Af8B8QH0AfUB/wHvAfMB9gH/Ae8C9AH/AfAB8wHy
376 | Af8C8AHvAf8B8QHwAe8B/wHxAfAB7wH/AfAC7wH/A+8B/wPvAf8D7wH/A+8B/wPvAf8B8wHxAfAB/wHy
377 | AfAB7gH/AfgB8gHvAf8B9wHyAe8B/wH3AfIB7wH/AfcB8gHvAf8B9wHyAe8B/wGcAZcBkgH/ATIBMAE0
378 | Af8BTgFiAY8B/wFUAXEBpQH/AVwBhAGwAf8BYgGNAboB/wFqAZUBxAH/AW0BlwHIAf8BhQGgAdUB/wGM
379 | AacB3gH/AYkBogHbAf8BhQGdAdYB/wFxAZcB0QH/AWYBjQHIAf8BWwFxAbsB/wFXAWsBswH/AVYBbAG2
380 | Af8BWQFxAbwB/wFcAYIBvwH/AWUBigHIAf8BZAGLAckB/wFjAYkBxwH/AWMBigHFAf8BXwGHAcAB/wFe
381 | AYYBvgH/AV4BhwG+Af8BYQGJAcAB/wFkAYsBwwH/AWgBjAHDAf8BtQG/AdUB/wHqAe0B7gH/AeYB6wHw
382 | Af8B5gLqAf8B6ALnAf8B4wLnAf8B3ALnAf8B3gHmAegB/wHeAeQB5gH/Ad8B5AHmAf8B3gHkAeMB/wHd
383 | AeQB4AH/Ad0B4wHeAf8B3gHfAeIB/wHgAt8B/wHeAt8B/wPfAf8D3wH/Ad0B3wHhAf8B3gHgAeMB/wHd
384 | AeAB5QH/Ad8B4gHmAf8B3gHjAeYB/wHfAeQB5wH/Ad8B5AHnAf8B3wHkAecB/wHfAeMB5wH//wD/AP8A
385 | wwAD9wH/AfcB9QH3Af8B9gH0AfcB/wH3AfMB9wH/AfYC8wH/Ae8B9AH1Af8B8ALzAf8C8wHwAf8B8gHw
386 | Ae8B/wHvAfAB7wH/Ae8B8AHvAf8D7wH/A+8B/wPvAf8D7wH/A+8B/wPvAf8D7wH/AfAC7wH/AfYB8gHw
387 | Af8B9wHyAe8B/wH3AfIB7wH/AfcB8gHvAf8B9gHyAfAB/wHvAe0B6QH/AWkBhAGbAf8BYgGKAbAB/wFq
388 | AZABuwH/AWgBjwG+Af8BZwGSAcEB/wFnAZMBwgH/AYMBngHSAf8BkAGrAeAB/wGUAa4B5QH/AZUBrQHj
389 | Af8BhgGcAdkB/wFrAYsBzgH/AWgBhQHJAf8BYwFwAcIB/wFgAW4BwQH/AV4BawG/Af8BXgFqAb0B/wFf
390 | AW0BvwH/AWgBhwHKAf8BaQGKAc0B/wFjAYgBxgH/AWABiAHDAf8BXgGFAb4B/wFaAYEBuQH/AWABiQHA
391 | Af8BZQGNAcUB/wFoAZABxgH/AW8BkQHGAf8BhAGWAcUB/wHTAdoB5gH/AeYB7AHuAf8B5gLoAf8D5wH/
392 | AeQC5wH/AeAC5wH/Ad8B5gHnAf8B3wHkAecB/wHfAeQB5gH/Ad4B5AHlAf8B3QHjAeAB/wHcAeIB3wH/
393 | Ad4C3wH/AeAC3wH/At8B4AH/A98B/wLfAeAB/wHgAd8B4QH/Ad8B3gHfAf8B3gHgAeQB/wHeAeAB5gH/
394 | Ad8B5AHmAf8B3wHkAecB/wHfAeQB5wH/Ad8B4wHnAf8B3gHgAeYB//8A/wD/AMMAA/cB/wP3Af8D9wH/
395 | AfcB9QH2Af8B9wHzAfYB/wHzAfIB9gH/AfAB8wH3Af8B8QHzAfEB/wLzAe8B/wHzAfIB7wH/AfIB8wHw
396 | Af8B8AHxAe8B/wPvAf8D7wH/A+8B/wPwAf8D7wH/A+8B/wHzAfEB8AH/AfQB8QHvAf8B9wHyAfAB/wH4
397 | AfIB8AH/AfYB8gHwAf8B+AHyAe8B/wHWAdsB4gH/AYEBlgG7Af8BcgGWAcAB/wGCAZoBxgH/AYMBmwHK
398 | Af8BbAGWAcUB/wFlAY8BvgH/AWwBlAHEAf8BgwGhAdIB/wGRAawB3wH/AYIBkgHKAf8BcQGJAcYB/wGI
399 | AY0BzgH/AZIBlAHXAf8BcgGAAcYB/wFnAWoBvAH/AWEBZAG4Af8BXQFgAbEB/wFOAVYBowH/AUoBVQGg
400 | Af8BUQFjAa4B/wFbAXEBugH/AVgBcQG3Af8BUgFsAbEB/wFYAXIBuAH/AV4BigHBAf8BZQGQAccB/wFv
401 | AZIByQH/AXIBlAHJAf8BhAGWAcsB/wGjAbEB0QH/AecB7AHtAf8B5wHpAesB/wPnAf8B5gLnAf8D5wH/
402 | AuUB5gH/Ad8B5AHnAf8B3wHkAecB/wHfAeQB5wH/Ad8C5AH/Ad0B4wHfAf8D3wH/A98B/wPfAf8D3wH/
403 | Ad8B3gHgAf8B4AHfAeEB/wLfAeEB/wHfAeAB5gH/Ad0B4AHlAf8B3gHjAeYB/wHfAeQB5wH/Ad8B5AHn
404 | Af8B3wHjAecB/wHdAeAB5wH//wD/AP8AwwAB+AH5AfcB/wH3AfgB9wH/AfYC9wH/AfcB9gH4Af8B+AH1
405 | AfgB/wP3Af8D9wH/AfcB8wHyAf8B9wHyAe8B/wH3AfMB7wH/AfYB8wHvAf8B9gHzAe8B/wHzAfEB7wH/
406 | AfAC7wH/A+8B/wPvAf8D7wH/Ae8B8AHuAf8B9QHxAe8B/wH1AfIB7gH/AfMB8gHwAf8B7wHxAe8B/wHw
407 | AfEB7wH/AfMB8gHxAf8BogG1Ac8B/wGKAaEBygH/AYwBogHOAf8BhgGfAc0B/wGAAZsBywH/AW8BmAHH
408 | Af8BYAGJAbcB/wFXAW4BpwH/AVcBbQGkAf8BVQFmAaAB/wE9AUYBhgH/ATsBQQGDAf8BOgFBAYYB/wE9
409 | AUIBiAH/ATcBOgGEAf8BNgE7AYUB/wEsATMBbgH/ATEBOQGAAf8BLQE2AXAB/wEvATcBbwH/AS8BOAFu
410 | Af8BNAFGAYYB/wFDAVkBlwH/AUgBYwGjAf8BUwFtAbEB/wFgAYoBwQH/AWYBjgHGAf8BbQGTAcoB/wGC
411 | AZgBzAH/AYgBmwHOAf8BigGeAc4B/wHXAdkB5QH/AeYC6gH/AegC5wH/A+cB/wPnAf8B5wHkAeYB/wHl
412 | AeQB6AH/AeAB5AHnAf8B3gHkAeYB/wHfAeMB5gH/Ad0B4gHgAf8D3wH/A98B/wPfAf8C3wHgAf8B4AHf
413 | AeEB/wPfAf8C3wHgAf8B3gHfAeYB/wHdAeAB5QH/Ad4B4wHnAf8B3wHkAecB/wHfAeQB5wH/Ad8B5AHn
414 | Af8B3wHhAecB//8A/wD/AMMAAfcB+wH2Af8B+AH5AfgB/wP3Af8D9wH/A/cB/wP3Af8D9wH/AfcB9gHy
415 | Af8B9wH0AfAB/wH3AfIB7wH/AfcB8gHvAf8B9gHzAe8B/wH2AfMB7gH/AvIB7wH/Ae8B8QHvAf8B8QHw
416 | Ae4B/wPvAf8B7QHwAe8B/wLwAe8B/wLxAe8B/wHxAfMB7wH/Ae8B8wHuAf8C8gHvAf8B4AHnAesB/wGU
417 | Aa4B0gH/AY0BpQHMAf8BiwGiAc8B/wFyAZoByQH/AWgBkwHCAf8BbQGVAcMB/wFiAYwBtwH/AVYBbwGi
418 | Af8BUwFoAZsB/wFqAY0BtwH/AYcBmwHJAf8BjQGiAdQB/wGEAZgBzgH/AWoBhwHBAf8BaAGFAcIB/wFu
419 | AYoBxwH/AWEBcAG7Af8BTgFgAaoB/wFQAWIBqwH/AVoBbAGyAf8BZAGCAb0B/wFmAYcBvgH/AVUBawGo
420 | Af8BVAFqAaYB/wFVAWwBqwH/AV8BhQG/Af8BZgGOAccB/wFqAZEByQH/AXIBlgHMAf8BhgGbAc8B/wGJ
421 | AZ4BzwH/AbYBwAHcAf8B6QHqAesB/wHmAegB5gH/A+gB/wPnAf8B5wHlAecB/wHmAeMB6AH/AeIB5AHo
422 | Af8B3wHkAecB/wHfAeQB5QH/Ad0B4gHfAf8B3wLgAf8D3wH/AeAB3wHeAf8B3QLgAf8B3wHgAeIB/wPf
423 | Af8B3QHfAeEB/wHeAd8B5QH/Ad0B3wHnAf8B3gHiAeYB/wHfAeQB5wH/Ad8B5AHnAf8B3wHkAecB/wHf
424 | AeMB6AH//wD/AP8AwwAB9wH7AfYB/wH3AfgB9wH/A/cB/wP3Af8D9wH/A/cB/wL3AfUB/wH0AfcB8QH/
425 | AfYB9QHwAf8B9wHyAe8B/wH3AfIB7wH/AfYB8wHvAf8B9wHyAe8B/wH2AfIB7gH/AfEB8wHuAf8C8gHv
426 | Af8B8AHxAe8B/wHuAfAB7gH/Ae8B8AHvAf8B7wHyAe8B/wHwAfIB7gH/AfEB8gHuAf8B9AHzAe8B/wHH
427 | AdQB4wH/AZUBrgHWAf8BjAGlAc4B/wGEAZwBywH/AWkBkgHCAf8BYgGOAbwB/wFhAYoBuAH/AWIBigGy
428 | Af8BbgGTAbgB/wFvAZIBuQH/AYQBmgHHAf8BiwGfAc4B/wGOAaMB0wH/AY4BpAHUAf8BiQGeAdEB/wFq
429 | AYkBwgH/AWYBhQG/Af8BZQGGAb8B/wFgAYUBvQH/AWEBhgG+Af8BZAGGAb4B/wFoAYkBwwH/AWQBhQG8
430 | Af8BYAGCAbMB/wFZAXABqwH/AVsBcQGxAf8BXQGDAb0B/wFmAY4BxgH/AWQBjAHFAf8BbAGTAcoB/wGD
431 | AZkB0AH/AYsBnwHUAf8BnAGrAdMB/wHkAegB6wH/AeYB6gHnAf8B5gHoAecB/wPnAf8B6AHlAecB/wHm
432 | AeMB6AH/AeIB4wHnAf8B3wHkAecB/wHfAeMB5QH/Ad0B4gHfAf8B3QHiAd4B/wHeAt8B/wHfAeAB3wH/
433 | A98B/wHdAeAB4gH/A98B/wHeAd8B4QH/Ad4B4AHiAf8B3gHgAeYB/wHdAeAB5QH/Ad8B5AHnAf8B3wHk
434 | AecB/wHeAeQB5wH/Ad8B4gHlAf//AP8A/wDDAAH3AfoB9wH/AfcB+AH3Af8D9wH/A/YB/wP3Af8C9gH3
435 | Af8C9wH1Af8C9gHwAf8B9wHzAe8B/wH4AfIB7wH/AfcB8gHvAf8B9wHyAe8B/wH2AfMB7wH/AfcB8gHv
436 | Af8B8wHyAe4B/wHxAfIB7gH/AvEB7wH/Ae8B7gHwAf8D7wH/AvEB7gH/AfQB8gHuAf8B9wHyAe8B/wH2
437 | AfMB7wH/AawBwAHaAf8BjwGrAdEB/wGGAaABygH/AWcBjQG6Af8BWgGBAa8B/wFUAXEBrQH/AVABbQGo
438 | Af8BYAGGAbEB/wFuAZIBuAH/AYkBnAHFAf8BiwGfAcwB/wGMAaEB0AH/AYwBoQHRAf8BggGXAcYB/wFu
439 | AZEBvwH/AWMBhAG2Af8BWQFsAawB/wFVAWgBqAH/AVoBbQGwAf8BXQFvAbQB/wFiAYABuQH/AWEBgAG4
440 | Af8BYAFyAbQB/wFhAYEBtAH/AWABgAG0Af8BXAFyAbYB/wFdAYMBvAH/AV8BhwHAAf8BYQGIAcAB/wFm
441 | AY0BxAH/AYABmQHOAf8BiwGfAdUB/wGUAaYB0wH/AdsB3gHmAf8B5wHqAegB/wHnAegB5gH/A+cB/wHo
442 | AeYB5wH/AecB4wHoAf8B5wHjAegB/wLjAegB/wHfAeMB5gH/Ad8C4gH/Ad0B4wHeAf8B3gHiAeAB/wHe
443 | At8B/wHeAd8B4AH/Ad0B3wHiAf8D3wH/At8B4AH/Ad4B4AHkAf8B3gHhAeYB/wHeAeMB5wH/Ad8B5AHn
444 | Af8B3wHkAecB/wHeAeQB5gH/Ad4B4wHmAf//AP8A/wDDAAH5AfoB9gH/AfcB+QH3Af8B9wL4Af8D9wH/
445 | A/cB/wP3Af8D9wH/AfcB9QHzAf8B9wHzAfEB/wH2AfMB7wH/AfcB8gHvAf8B9wHyAe8B/wH2AfMB7wH/
446 | AfcB8gHvAf8B9QHzAe8B/wHxAfIB7gH/AfAB8QHvAf8D7wH/Ae8B8AHuAf8B9AHyAe8B/wH4AfIB7wH/
447 | AfcB8gHvAf8B6AHrAe4B/wGdAbUB1AH/AYkBowHHAf8BagGQAbgB/wFUAWsBpAH/AUkBYQGbAf8BSQFh
448 | AZwB/wFHAV8BmgH/AVABZwGiAf8BZgGIAbYB/wGDAZcBxgH/AY0BoAHRAf8BjwGiAdIB/wGJAZwBzQH/
449 | AWQBgwGzAf8BWwFtAakB/wFXAWsBqgH/AU0BYQGfAf8BTAFfAZ8B/wFWAWcBqwH/AV0BbgGzAf8BXwFw
450 | AbYB/wFhAXIBtwH/AV4BbwG1Af8BXAFtAbQB/wFYAWoBsgH/AU8BZgGuAf8BWAFwAbgB/wFcAYABugH/
451 | AV4BgwG9Af8BZgGLAcQB/wFuAZQBzAH/AYgBnwHSAf8BjQGkAdIB/wHNAdIB4AH/AegB6wHoAf8B6AHq
452 | AecB/wHnAegB5wH/AegC5wH/AekB5gHnAf8B5wHjAecB/wHkAeMB5wH/Ad8B4wHlAf8B3gHjAeIB/wHf
453 | AeAB3wH/Ad4B4QHfAf8B3gLgAf8B3wHgAeEB/wPfAf8B3gHgAeIB/wHeAd8B5AH/Ad4B4AHmAf8B3gHh
454 | AeYB/wHeAeIB5wH/Ad4B4wHmAf8B3wHkAecB/wHfAeQB5wH/Ad4B4QHlAf//AP8A/wDDAAH8AfsB9wH/
455 | AfgB+gH2Af8B9gH4AfYB/wP3Af8D9wH/A/cB/wP3Af8B9gL1Af8B+AH2AfUB/wH4AfUB9AH/AfgC9AH/
456 | AfcB9QH0Af8B9wHzAfEB/wH3AfIB8AH/AfcB8gHvAf8B9AHyAe4B/wHxAfIB7gH/AvIB7wH/AfQB8gHv
457 | Af8B9QHyAe8B/wH2AfMB7wH/AfgB8wHvAf8B2AHgAegB/wGYAbAB0gH/AYUBngHDAf8BZQGIAbMB/wFV
458 | AWkBpQH/AU4BYgGfAf8BTQFhAZ4B/wFIAV0BmQH/AUgBXAGaAf8BUAFjAaMB/wFnAYcBuwH/AYMBlQHL
459 | Af8BgQGSAcYB/wFAAVIBkgH/AT4BTQGNAf8BRAFVAZEB/wE6AU8BjQH/ATwBTgGTAf8BQwFVAZwB/wFK
460 | AVsBoQH/AVIBYgGpAf8BTwFdAaUB/wFRAWMBqgH/AVYBaAGwAf8BVgFoAbEB/wFOAWQBrAH/AVABZwGv
461 | Af8BVgFtAbkB/wFTAWkBtAH/AV8BgQHAAf8BZwGLAccB/wFvAZIBygH/AYUBmgHOAf8BiwGfAdAB/wHC
462 | AckB3wH/AekB6wHpAf8B6AHrAeUB/wHmAekB5gH/A+cB/wHnAeYB5wH/AeYB5AHoAf8B5AHjAegB/wHf
463 | AeQB5wH/Ad8B4gHkAf8C3wHgAf8D3wH/Ad4B4AHkAf8B3QHfAeYB/wHdAd8B5QH/Ad4B4AHkAf8B3gHg
464 | AeUB/wHdAeAB5QH/Ad4B4gHmAf8B3wHjAecB/wHgAeMB5wH/AeAB4wHnAf8B4AHjAegB/wHfAeEB5QH/
465 | /wD/AP8AwwAB/wH6AfcB/wH+AfoB9wH/Af0B+gH3Af8B+AH5AfcB/wL4AfcB/wP3Af8D9wH/A/cB/wH4
466 | AvcB/wH4AvcB/wH3AvYB/wP3Af8B9wH0AfEB/wH3AfIB7wH/AfcB8gHvAf8B9wHyAe8B/wH4AfIB7wH/
467 | AfgB8gHvAf8B9gHzAe8B/wH2AfIB7wH/AfgB8wHuAf8B4QHjAesB/wGoAbkB1gH/AYsBpAHIAf8BgwGc
468 | AcAB/wFuAZABvgH/AWUBhgG4Af8BZQGEAbkB/wFkAYMBugH/AV8BgAG3Af8BVgFqAa4B/wFQAWEBpgH/
469 | AVQBZQGpAf8BaQGHAb8B/wFNAV4BpAH/ATQBRgGGAf8BIwEyAWIB/wEyAUMBggH/AUkBWgGgAf8BSwFc
470 | AaYB/wFJAVwBpQH/AToBSgGPAf8BLQE7AYAB/wE0AUMBjgH/AU8BXwGuAf8BRwFZAaMB/wFFAVgBoAH/
471 | AUsBZAGtAf8BWwGBAcAB/wFgAYMBwQH/AWQBhgHEAf8BaAGIAcYB/wFvAY0BywH/AYYBlQHOAf8BhwGa
472 | Ac4B/wGJAZ0BzwH/AbkBwgHbAf8B7ALrAf8B6AHrAeYB/wHnAeoB5wH/AucB6AH/AecB5gHnAf8B5gHl
473 | AecB/wHmAeQB6AH/AeEB5AHnAf8B3gHkAeYB/wPfAf8D3wH/Ad8B4AHjAf8B3QHfAeYB/wHcAd4B6AH/
474 | Ad0B3wHnAf8B3QHfAecB/wHeAeAB5QH/Ad8B5AHnAf8B3wHjAeYB/wHfAeQB5wH/AeEB5AHnAf8B4AHk
475 | AeYB/wHeAeEB5gH//wD/AP8AwwAB/wH8AfoC/wH6AfcC/wH6AfcB/wH7AfoB9wH/AvkB9wH/AfgB+QH4
476 | Af8B9gL3Af8D9wH/A/cB/wP3Af8B9gL3Af8D9wH/AvcB8wH/AfcB9QHyAf8B+AHyAe8B/wH3AfIB7wH/
477 | AfcB8gHwAf8B8wHyAe8B/wH0AfMB7wH/AfcB8gHvAf8B9wHzAfEB/wG1AcMB6gH/AaUBuQHiAf8BiAGg
478 | AcQB/wGJAaEBxwH/AYYBmwHLAf8BgQGSAcsB/wFyAY8BygH/AYMBkwHNAf8BgAGTAcwB/wFlAYQBvgH/
479 | AVoBawGyAf8BTQFeAaQB/wFiAYABugH/AYcBmAHWAf8BgAGUAdAB/wFlAYgBwwH/AWQBhwHBAf8BZgGD
480 | AcQB/wFgAXABvwH/AVgBaQG7Af8BWAFpAboB/wFZAWoBtwH/AWkBgwHIAf8BgAGOAdYB/wFJAVkBpgH/
481 | AUEBUgGdAf8BWgFvAboB/wFlAYkBxwH/AWoBiwHKAf8BbAGMAcsB/wFxAY8BzgH/AXEBjwHOAf8BhwGY
482 | AdIB/wGKAZsB0QH/AYcBmwHOAf8BlAGkAdEB/wG5AcAB3gH/AeoB7AHpAf8B5wHqAekB/wHnAegB6QH/
483 | A+cB/wHnAeYB6AH/AeYB5QHnAf8B4wHkAecB/wHfAeMB5wH/At8B4AH/A98B/wHgAt8B/wHeAeAB4gH/
484 | Ad0B4QHlAf8B3QHfAeYB/wHdAeAB5QH/Ad8B4gHmAf8B3wHjAecB/wHfAeQB5wH/Ad4B5AHnAf8B3wHk
485 | AecB/wHfAeMB6AH/Ad4B4QHmAf//AP8A/wDDAAH/AfsB+gL/AfoB9wL/AfoB+AL/AfoB9wH/Af4B+gH3
486 | Af8B/QH6AfcB/wL6AfgB/wH3AfgB9wH/AfcB+AH3Af8B9wH4AfcB/wP4Af8D9wH/AfcB9gH3Af8D9wH/
487 | AfgB8wHxAf8B+AHyAe8B/wH2AfIB8AH/AfcB8gHvAf8B9wHyAe8B/wH2AfMB7wH/AfcB9AHwAf8BuQHL
488 | AfMB/wGlAbsB4AH/AYsBpgHJAf8BlQGuAdgB/wGRAacB3QH/AY8BogHdAf8BkAGiAd4B/wGLAZ0B1wH/
489 | AYYBlwHRAf8BgwGUAc0B/wFlAYMBvAH/AVwBbAGzAf8BWgFqAbMB/wGjAbMB7gH/AbEBwgH7Af8BoAGz
490 | AfIB/wGYAa0B7AH/AZoBqgHmAf8BhgGWAdwB/wFwAY0B0QH/AYABkgHUAf8BgQGSAdQB/wGDAZAB1wH/
491 | AW0BiQHOAf8BSAFaAacB/wFZAW0BuAH/AWYBiQHHAf8BbQGRAc8B/wGAAZEB0wH/AYMBlAHVAf8BgwGU
492 | AdQB/wGFAZYB1AH/AYoBmwHWAf8BiAGaAdIB/wGGAZsBzwH/AYoBmgHRAf8BcAGLAcgB/wHhAeYB6gH/
493 | AeYB6wHsAf8B6AHrAekB/wHnAugB/wHmAucB/wHoAeYB5wH/AuQB5gH/AeIB5AHnAf8B4AHjAeYB/wHf
494 | AeIB4wH/AeEB4gHjAf8B3gHhAeMB/wHeAeMB5AH/Ad8B4wHnAf8B3wHjAecB/wHfAeMB5wH/Ad8B5AHn
495 | Af8B3wHkAecB/wHfAeQB5wH/Ad8B5AHnAf8B3wHkAecB/wHdAeAB5QH//wD/AP8AwwAB/QH8AfgC/wH+
496 | Af0C/wH7AfgB/wH+AfsB9wH/Af4B+wH3Af8B/gH7AfYB/wH+AfoB9wH/AfgB+gH3Af8B9wH6AfgB/wH3
497 | AfkB9wH/A/cB/wH3AfgB9wH/AfgC9wH/AfUC9wH/AvcB9gH/AfYB9AHyAf8B9wHzAe8B/wH3AfIB7wH/
498 | AfcB8gHvAf8B9gHyAe8B/wH1AfMB8gH/AbkByAHxAf8BpAG8AeMB/wGVAbEB2gH/AZgBswHiAf8BmgGy
499 | AecB/wGaAbAB5gH/AZcBqwHfAf8BjwGhAdMB/wFxAZABxwH/AXIBkQHJAf8BaQGIAcAB/wFfAXEBtQH/
500 | AVcBaQGvAf8BbgGNAcMB/wGsAbwB8wH/AawBvgH4Af8BvwHNAfsB/wG4AcQB9AH/AZMBogHrAf8BiQGZ
501 | Ad4B/wFuAYwBzgH/AWABcQHAAf8BZwGFAcYB/wFUAWQBsQH/AVYBagG3Af8BagGMAcsB/wFvAY8BzQH/
502 | AYEBlAHTAf8BcQGSAdMB/wFyAZQB1AH/AXIBkgHTAf8BhAGUAdMB/wGGAZQB0QH/AYoBmgHUAf8BiAGb
503 | AdIB/wGHAZcBzQH/AWgBgwHCAf8B5QHnAe0B/wHoAesB7gH/AecB6gHtAf8B5gHqAewB/wPnAf8D5wH/
504 | AecB5QHnAf8B6AHjAegB/wHkAeMB6AH/AeAB5AHnAf8B3wHkAeYB/wHfAeQB5gH/Ad8B5AHnAf8B3wHk
505 | AecB/wHfAeQB5wH/Ad8B5AHnAf8B3wHkAecB/wHfAeQB5wH/Ad8B5AHnAf8B3wHkAecB/wHfAeMB6AH/
506 | Ad0B3wHmAf//AP8A/wDDAAn/Af4B/AL/AfoB9wH/Af4B+wH4Av8B+gH4Av8B+wH3Af8B/QH6AfcB/wH9
507 | AfoB9wH/AfwB+gH3Af8C+AH3Af8B9wH4AfYB/wP3Af8D9wH/AfYC9wH/AvcB9gH/AfgB9AHwAf8B9wHy
508 | Ae8B/wH3AfIB7wH/AfYB9AHwAf8B3wHiAe4B/wGRAaQB3AH/AZ8BtgHiAf8BmAG2AeEB/wGdAbYB5gH/
509 | AZsBswHmAf8BngG0AeQB/wFyAY8BwQH/AV8BcQGvAf8BYgGDAbcB/wFpAYoBvwH/AWcBiAG+Af8BaQGJ
510 | Ab8B/wFhAYMBtwH/AWsBjQG+Af8BiAGdAdEB/wGkAbsB8gH/AcwB2QH6Af8BwgHMAfgB/wGYAacB7wH/
511 | AYYBlgHcAf8BaAGHAcgB/wFZAWsBuAH/AVcBZwG0Af8BWAFnAbMB/wFbAW8BugH/AWUBhgHFAf8BaAGJ
512 | AcgB/wFoAYkByQH/AWgBigHKAf8BZQGHAckB/wFpAYkBygH/AWwBigHJAf8BggGRAc8B/wGIAZgB0wH/
513 | AYcBmAHQAf8BhgGWAcwB/wFrAYUBwQH/AuwB7QH/Ae0B7AHvAf8C6wHvAf8B5wHrAe4B/wHnAugB/wPn
514 | Af8C5gHnAf8B5QHjAegB/wHnAeMB6AH/AeYB4wHoAf8B5AHjAegB/wLjAegB/wHiAeMB6AH/Ad4B5AHn
515 | Af8B3wHkAecB/wHfAeQB5wH/Ad8B5AHnAf8B3wHkAecB/wHfAeQB5wH/Ad8B5AHnAf8B3gHjAecB/wHd
516 | Ad8B5wH//wD/AP8AwwAM/wH+Af0B/AH/Af4B+gH3Av8B+gH4Af8B/gH9AfwC/wH7AfkC/wH6AfcB/wH+
517 | AfoB9wH/AfkB+gH1Af8C+AH3Af8D9wH/A/cB/wP3Af8D9wH/AfcB9QH0Af8B+AH1AfEB/wH4AfIB7wH/
518 | AfYB9QHxAf8BzgHWAe8B/wGUAagB4wH/AZgBrgHfAf8BmgG2AeQB/wGgAboB6gH/AY8BpAHNAf8BZgGF
519 | AaMB/wFXAWQBjQH/AVwBawGSAf8BZgGCAZsB/wFoAYQBngH/AWkBhQGgAf8BbwGMAaYB/wFqAYcBpAH/
520 | AWkBhAGkAf8BWgFsAZ0B/wGIAZ8B0QH/Ab0BzgH2Af8BvAHKAfkB/wGbAaoB8gH/AYMBkwHZAf8BYAFy
521 | AcEB/wFXAWkBtgH/AVMBZAGoAf8BRwFZAZoB/wFLAVsBnQH/AVABYQGiAf8BVwFqAawB/wFcAXIBtgH/
522 | AWIBggG9Af8BYgGFAb8B/wFlAYcBxAH/AWsBiwHIAf8BcgGPAcwB/wGFAZUB0AH/AYcBmAHQAf8BgQGR
523 | Ac0B/wFaAWcBwAH/Ad0B3wHqAf8B7wHuAe8B/wHvAewB8AH/AegB6wHuAf8B5gHnAegB/wPnAf8D5wH/
524 | AecB5gHnAf8B5gHkAegB/wHnAeMB6AH/AecB4wHoAf8B5wHjAegB/wHmAeMB6AH/AeIB5AHoAf8B3wHk
525 | AecB/wHfAeQB5wH/Ad8B5AHnAf8B3wHkAecB/wHfAeQB5wH/Ad8B5AHnAf8B3QHhAecB/wHdAd8B5wH/
526 | /wD/AP8AwwAQ/wH+Av0B/wH+Av0G/wH8AfoC/wH6AfcC/wH6AfcB/wH8AfoB9wH/AfYC9wH/AfcB+AH3
527 | Af8D9wH/A/cB/wP3Af8D9wH/AfgB9wH2Af8B+AL1Af8B9gH3AfMB/wHJAdEB6gH/AYsBmwHcAf8BiAGd
528 | AdAB/wGbAbkB6AH/AYwBpQHMAf8BXAFtAZUB/wGKAZ0BxQH/AYcBmgHEAf8BkgGoAdMB/wGGAZ0BzAH/
529 | AYEBlwHGAf8BhwGbAcsB/wGNAZ0BywH/AZQBpwHOAf8BpgG1AdgB/wGoAbYB1QH/AVIBZAGQAf8BkQGj
530 | AdkB/wG0AcMB9wH/AZEBogHqAf8BZgGFAcsB/wFMAWEBpwH/ATQBRAFuAf8BOwFLAXAB/wFIAVkBigH/
531 | AVUBagGgAf8BXgGCAasB/wFiAYUBsAH/AV0BcQGmAf8BUwFmAZcB/wFQAWEBkQH/AUwBXQGOAf8BRgFX
532 | AY4B/wFhAXABsAH/AXEBkAHMAf8BhQGVAc4B/wFlAYMBvwH/AVwBbAHDAf8B2QHbAecB/wPvAf8C7gHv
533 | Af8B6QHsAe0B/wHnAekB6gH/AeYC6AH/A+cB/wPnAf8C5gHoAf8B5gHlAecB/wHmAeMB6AH/AecB4wHo
534 | Af8B5wHjAegB/wHmAeMB6AH/AeAB4wHnAf8B3wHkAecB/wHfAeQB5wH/Ad8B4wHnAf8B3wHjAecB/wHe
535 | AeEB5gH/Ad0B3wHnAf8B3QHfAecB//8A/wD/AMMAHf8B/gH9Af8B/gH8AfkC/wH6AfcB/wH+AfsB9wH/
536 | AvoB9wH/AfgB+QH3Af8D9wH/A/cB/wP3Af8D9wH/A/cB/wP3Af8B+QH4AfQB/wGyAboB4AH/AYsBmgHb
537 | Af8BiAGeAdAB/wGhAbwB5wH/AWEBggGiAf8BjQGmAc8B/wFgAYQBsgH/AYkBoAHOAf8BmAGuAdwB/wGE
538 | AZkBxwH/AXABkwG/Af8BZgGJAbIB/wFwAZEBugH/AZsBrgHUAf8BrwG/AeIB/wGsAb0B5wH/AYABlQHA
539 | Af8BTgFfAZkB/wGsAb4B8QH/AYkBnwHkAf8BXwGEAcMB/wE/AVIBkAH/ATIBQgFlAf8BSAFgAZ4B/wFZ
540 | AW8BrQH/AWEBhAGzAf8BXwGEAbEB/wFjAYYBtgH/AWgBiwG5Af8BaAGMAb0B/wFrAZIBwgH/AWUBjQG+
541 | Af8BbAGNAb8B/wFqAYYBogH/AV0BbQGrAf8BhAGVAc4B/wFnAYQBwgH/AVgBZAG9Af8B5wHoAe4B/wPv
542 | Af8D7wH/AuwB7gH/AecB6wHtAf8B5wHpAeoB/wPnAf8D5wH/A+cB/wLmAecB/wHmAeMB6AH/AecB4wHo
543 | Af8B5gHjAegB/wHhAeMB5wH/Ad8B5AHnAf8B3wHkAecB/wHfAeQB5wH/Ad4B4wHmAf8B3wHhAegB/wHd
544 | AeAB5gH/Ad0B3wHnAf8B3AHeAeYB//8A/wD/AMMAHf8B/gP/Av4C/wH7AfgC/wH6AfcB/wH9AfoB9wH/
545 | AvoB9wH/AfcB+QH3Af8D9wH/A/cB/wP3Af8D9wH/A/cB/wL4AfUB/wGWAaIB1QH/AYMBlQHXAf8BjwGl
546 | AdcB/wGlAb8B5wH/AV8BggGeAf8BggGYAcQB/wFtAY4BvAH/AaEBtgHkAf8BhwGeAc4B/wFVAW0BqAH/
547 | AUsBXQGXAf8BRQFWAY0B/wFHAVkBjAH/AVUBZwGYAf8BgQGXAbgB/wGbAbAB0wH/AZQBrQHUAf8BRQFW
548 | AYkB/wFyAZYBygH/AWoBigHKAf8BSgFiAaoB/wE2AUcBcAH/ATkBTgGGAf8BTAFiAZsB/wFXAWwBpgH/
549 | AVEBYQGcAf8BSQFaAZcB/wFKAV0BmgH/AU4BYAGfAf8BUgFmAaMB/wFbAXABrQH/AV4BcAGuAf8BYgGD
550 | AbMB/wFoAYgBtgH/AUsBWwGMAf8BgAGUAcgB/wFqAYcBxwH/AVYBYgG+Af8B6gHrAfAB/wPvAf8D7wH/
551 | AewB6wHwAf8B5gHrAe0B/wHoAeoB6wH/AucB6AH/A+cB/wPnAf8D5wH/AecB5QHnAf8B5gHjAecB/wLk
552 | AegB/wHfAeQB5wH/Ad8B5AHnAf8B3wHjAeYB/wHfAeMB5wH/Ad0B4AHnAf8B3QHfAecB/wHdAd8B5wH/
553 | Ad0B3wHnAf8B3QHfAecB//8A/wD/AMMAJf8B/QH8Av8B+gH5Av8B+gH3Af8B/gH6AfcB/wH5AfoB9gH/
554 | A/cB/wP3Af8D9wH/A/cB/wP2Af8B9wH4AfYB/wGHAZUB0AH/AWQBhAHCAf8BiQGhAcwB/wGPAagBxQH/
555 | AV4BcgGWAf8BagGPAbgB/wGXAbMB2wH/AZYBsgHcAf8BjAGlAc4B/wGPAaQBygH/AWsBiQGtAf8BTQFg
556 | AZIB/wE7AU0BggH/ATgBTAFtAf8BQgFWAYQB/wFiAYYBpQH/AXIBmQG6Af8BOQFIAWEB/wFwAZIBxAH/
557 | AVwBbwG6Af8BRQFcAZoB/wE1AUUBZAH/AT8BVAGJAf8BRgFeAZMB/wFUAWYBmgH/AU4BYAGUAf8BTgFf
558 | AZUB/wFQAWUBoQH/AVYBagGkAf8BVgFsAagB/wFVAWoBqAH/AVMBZwGhAf8BVgFqAaYB/wFjAYMBswH/
559 | AUgBVwGBAf8BggGWAcgB/wFxAZABzgH/AUcBUwGzAf8B4wHmAewB/wPvAf8D7wH/AuwB7gH/AeYB6wHp
560 | Af8B5wHrAegB/wHmAecB6AH/A+cB/wPnAf8D5wH/AecB5gHnAf8B5wHjAecB/wHlAeMB6AH/Ad8B5AHn
561 | Af8B3wHkAecB/wHfAeIB5gH/Ad4B4QHnAf8B3QHfAecB/wHdAd8B5wH/Ad0B3wHnAf8B3QHfAecB/wHc
562 | Ad4B5wH//wD/AP8AwwAg/wH+A/8B/gP/Av4B/QL/AfsB+AL/AfoB+AH/AfwB+wH3Af8B9wH4AfcB/wP3
563 | Af8D9wH/A/YB/wP3Af8B9QH3AfYB/wFSAWABsgH/AUUBUgGdAf8BbAGHAZ0B/wElATABNQH/AVkBawGR
564 | Af8BkQGqAc8B/wGQAawBzgH/AV0BgAGhAf8BUQFgAYgB/wFTAWABggH/ASoBNAE+Af8BEwEcASUB/wEh
565 | ASwBPAH/AR4BKwFCAf8BKwE6AVgB/wE/AVUBggH/AV0BgwGoAf8BLQE8AU8B/wFhAYYBsAH/AV0BgQG9
566 | Af8BPwFVAZEB/wEqAT0BVQH/AToBUAGDAf8BOwFPAW8B/wEoATYBTwH/ATkBRgFZAf8BJQExAT4B/wEp
567 | ATQBQgH/AT0BTgFqAf8BPgFOAWwB/wE/AU8BcAH/AUwBYAGTAf8BVwFrAaMB/wFoAYkBuAH/AUUBUwFs
568 | Af8BgAGTAcAB/wFiAYABwAH/ATwBQwGnAf8B6gHrAe4B/wPvAf8C7gHvAf8B7QHsAfAB/wHoAesB6QH/
569 | AecB6gHnAf8B5wHpAegB/wPnAf8D5wH/AecB5gHnAf8B5wHlAecB/wLkAegB/wHeAeQB5wH/Ad4B4wHn
570 | Af8B3gHhAeYB/wHdAd8B5gH/Ad0B3wHnAf8B3QHfAecB/wHdAd8B5wH/Ad0B3wHnAf8B3QHfAecB/wLc
571 | AecB//8A/wD/AMMAKP8C/gH9Av8B+gH3Av8B+gH3Af8B/gH7AfcB/wL5AfYB/wH3AfgB9wH/A/cB/wP3
572 | Af8D9wH/AfUC9wH/AVABXwGxAf8BVQFkAaYB/wFlAW4BggH/AVABXgFwAf8BSQFZAWwB/wGDAZkBsQH/
573 | AYABlQGyAf8BgQGTAbIB/wFXAWgBkgH/AUgBWQFwAf8BPQFMAV0B/wEyAUEBUgH/ASwBPQFTAf8BMgFE
574 | AWIB/wE5AU0BaQH/AT4BUgFtAf8BPwFUAW4B/wEUARoBHQH/AR8BJgEzAf8BJQEtAUAB/wEeAScBNgH/
575 | ARoBIAEuAf8BPgFQAXAB/wE2AUoBaQH/ASsBPQFaAf8BIQEyAUYB/wEjATQBQgH/ASwBOwFHAf8BPAFM
576 | AWIB/wE1AUIBXwH/AUIBUwGBAf8BXAFyAaUB/wFlAYYBsAH/AWoBigG3Af8BRQFQAV8B/wFQAVgBbwH/
577 | ATwBSAGQAf8BQQFMAaoB/wHuAe8B8QH/A+8B/wHvAe4B8AH/AuwB7wH/AegB6wHpAf8B5wHrAegB/wHm
578 | AegB5wH/A+cB/wPnAf8B6AHlAecB/wHmAeQB5wH/AeYB4wHoAf8B4AHkAegB/wHfAeMB6AH/Ad4B4AHm
579 | Af8B3gHgAeQB/wHdAd8B5QH/Ad0B3wHnAf8B3QHfAecB/wHdAd8B5wH/Ad0B3gHnAf8B3AHbAeYB//8A
580 | /wD/AMMAKP8C/gH9Av8B+gH3Av8B+gH3Af8B/gH7AfcB/wH5AfoB9gH/AfgB+QH2Af8D9wH/A/cB/wP3
581 | Af8B9gH4AfYB/wHBAc4B6AH/AZUBpwHHAf8BNQFGAVMB/wGYAbcB4QH/AZUBrwHVAf8BhgGbAbYB/wFq
582 | AYUBmQH/AWcBhAGaAf8BYAFtAZMB/wFXAWMBjAH/AUkBVwFwAf8BOQFLAWQB/wExAUIBWwH/AS4BPQFV
583 | Af8BKgE5AVUB/wErATwBXAH/ATcBSAFoAf8BTgFhAZgB/wFiAYIBsAH/AVMBZAGeAf8BRgFZAZAB/wE2
584 | AUYBZwH/ASMBNgFPAf8BJgE1AUsB/wEnATcBTQH/AS4BPwFXAf8BOwFOAWcB/wFBAVYBcQH/AU0BYQGO
585 | Af8BVAFlAZgB/wFeAW8BogH/AV4BcAGhAf8BXwFvAZ0B/wFfAWwBmAH/AToBRAFSAf8BNgFAAU8B/wFQ
586 | AV0BnQH/AWABaAG2Af8B8AHuAfAB/wPvAf8B7gHtAe8B/wHrAewB7wH/AegB6wHoAf8B5gHqAecB/wHm
587 | AegB5gH/A+cB/wPnAf8B5wHkAeYB/wHnAeMB5wH/AeMB5AHoAf8B3wHjAeYB/wHdAd8B5gH/Ad0B3wHm
588 | Af8C3wHiAf8C3gHjAf8B3QHfAecB/wHdAd8B5wH/Ad0B3wHnAf8B2wHcAeYB/wHZAdsB4wH//wD/AP8A
589 | wwAo/wL+Af0C/wH6AfcC/wH6AfcC/wH6AfcB/wL6AfcB/wH3AfkB9wH/AfYB+AH3Af8D9wH/A/cB/wL5
590 | AfQB/wHGAckBwwH/AVABVQFTAf8BKQEzATsB/wGbAbkB4AH/AZcBtgHcAf8BiQGkAcgB/wGAAZYBtgH/
591 | AY0BpQHHAf8BoQG1AdsB/wGtAb0B5wH/AaABtAHbAf8BhQGcAckB/wFgAYMBrwH/AUoBXgGTAf8BPgFS
592 | AYYB/wE9AVABhwH/AUEBVAGNAf8BVAFpAagB/wFjAYQBuQH/AV4BcQGzAf8BUgFkAaUB/wFEAVkBkwH/
593 | AToBTwGBAf8BNwFMAW8B/wE9AVEBgQH/AUkBXAGNAf8BVAFpAZoB/wFSAWkBmgH/AVEBYwGSAf8BSAFX
594 | AYcB/wFAAUsBawH/AT0BSAFiAf8BPQFJAWIB/wFNAVoBiQH/AVsBbwGnAf8BNQFFAWEB/wFKAVUBgAH/
595 | AcIBxgHaAf8B7gLvAf8B8ALvAf8B7QHsAfAB/wHnAesB6gH/AecB6wHnAf8B6AHpAegB/wPnAf8D5wH/
596 | AecB5QHnAf8B4wHkAecB/wHiAeQB5wH/AeAB4wHmAf8B3gHhAeYB/wHeAd8B5AH/At8B4gH/A98B/wLf
597 | AeEB/wLeAeQB/wLdAeYB/wHeAd0B5gH/AdwB2wHlAf8B2AHbAd8B//8A/wD/AMMAKP8C/gH9Av8B+gH3
598 | Av8B+gH3Af8B/gH7AfcC/wH6AfcB/wH5AfoB9gH/AfcB+QH3Af8D9wH/AfcB+AH2Af8B7gHvAekB/wGD
599 | AYUBgQH/AS4BMgEwAf8BMQE7AT8B/wGPAa0BzwH/AZkBuQHeAf8BhwGhAcQB/wFlAYcBngH/AWcBhwGf
600 | Af8BhgGXAbYB/wGXAaUBxQH/AY0BngG/Af8BYwGDAaUB/wFHAVkBhQH/ATYBSAFkAf8BNwFKAWkB/wFA
601 | AVIBgwH/AUYBWQGOAf8BVgFrAasB/wFhAYMBuQH/AWQBgwG7Af8BXgFvAbQB/wFLAV8BmgH/ATkBTAFt
602 | Af8BMAFDAVwB/wEnATYBTAH/ATABQAFZAf8BQQFQAW0B/wFMAV4BjAH/AVABYgGQAf8BSQFaAYkB/wFH
603 | AVYBggH/AUsBWQGEAf8BVwFpAZ0B/wFtAY4BvQH/AXABkgHBAf8BMwFAAVUB/wE6AT4BQQH/AcUBxgHH
604 | Af8B7gHtAe8B/wHwAe4B7wH/AesB7AHwAf8B5gHrAegB/wHnAeoB5wH/A+cB/wPnAf8B5gLnAf8B4QLm
605 | Af8B3wHkAecB/wHeAeMB5wH/Ad4B4QHmAf8B3gHgAeYB/wLfAeAB/wHgAt8B/wHeAt8B/wPeAf8C3gHh
606 | Af8B3AHbAecB/wHcAdsB5gH/AdYB2wHfAf8B1gHbAd0B//8A/wD/AMMALP8B/gH7AfcC/wH6AfcC/wH6
607 | AfcC/wH6AfgB/wH+AfoB9wH/AfcB+QH3Af8B9wH2AfcB/wH3AfoB9gH/AdoB3QHWAf8BTAFQAUwB/wEo
608 | AS0BKwH/ASwBNgE6Af8BgQGdAbsB/wGVAbcB3wH/AZoBtQHdAf8BhQGbAbQB/wFiAXEBkwH/AVoBagGJ
609 | Af8BVwFmAYUB/wE/AUsBWQH/ATEBOwFJAf8BKQEzAUMB/wElATEBQgH/ATcBRgFcAf8BTAFeAY0B/wFd
610 | AW4BrQH/AWIBgAG5Af8BZgGGAcAB/wFsAYsBxQH/AXABkAHJAf8BYwGCAbgB/wFMAV8BkwH/AT0BTQFn
611 | Af8BLAE3AUoB/wEgASoBNwH/ARoBIwEwAf8BJAEvAT4B/wEvAT0BTgH/ATIBQgFUAf8BQgFPAWgB/wFT
612 | AWUBlAH/AWYBiAG1Af8BcAGRAcQB/wFxAZEBxAH/ATABPAFQAf8BGAEgASQB/wFyAYQBhgH/AeUB5wHl
613 | Af8B7wHsAe8B/wHqAewB7gH/AecB6wHoAf8B5wHpAecB/wLnAegB/wHnAeYB6AH/AuQB6AH/Ad4B5AHn
614 | Af8B3wHkAeYB/wHeAeIB5gH/Ad0B4AHnAf8B3QHfAeQB/wHdAt8B/wLeAd8B/wHbAd0B3wH/AdsB3AHf
615 | Af8C3QHiAf8B2gHbAeQB/wHaAdsB5AH/AdYB2wHfAf8B1gHbAd4B//8A/wD/AMMALf8B/QH8Av8B+gH3
616 | Av8B+gH3Av8B+gH4Av8B+gH3Af8C+QH3Af8D9wH/AfcB+QH3Af8BvAG+AboB/wE2AToBNgH/ASYBKwEq
617 | Af8BLgE3ATsB/wFgAYcBoAH/AZQBsgHeAf8BlwG0AeIB/wGWAbIB2AH/AYkBngG5Af8BXwFwAYwB/wFO
618 | AVwBaAH/AUABSgFUAf8BPwFJAVcB/wFHAVEBZAH/AUkBVQFtAf8BYAFtAZwB/wFnAYcBtwH/AWkBiwHF
619 | Af8BawGOAcsB/wFvAZABzQH/AYYBmAHTAf8BjAGeAdgB/wFvAY4BywH/AWkBiQG/Af8BaAGGAbEB/wFZ
620 | AWYBlAH/AVEBWwGBAf8BRwFSAWUB/wFBAU0BYAH/AUEBTgFiAf8BQAFOAWQB/wFOAVwBiQH/AWABgwGw
621 | Af8BbAGOAcMB/wGAAZMByAH/AW0BjwG+Af8BJwE0AUMB/wEWARsBHwH/AUMBSQFKAf8B2gHbAdoB/wHu
622 | Ae0B7wH/AegB6wHqAf8B5gHpAegB/wHmAucB/wHlAeYB5wH/AeMB5QHnAf8B4gHkAegB/wHfAeQB5gH/
623 | Ad8B5AHnAf8B3gHhAecB/wHdAd4B5QH/Ad4C3wH/Ad0B3gHfAf8B2gHeAd8B/wHXAdwB3gH/AdcB2wHe
624 | Af8B1wHbAd8B/wHXAdsB4AH/AdcB2wHfAf8B1gHbAd4B/wHWAdkB3gH//wD/AP8AwwAs/wL+A/8B+gH5
625 | Av8B+gH4Av8B+gH4Av8B+gH3Af8B+wH5AfcB/wH3AfgB9wH/AfcB+AH3Af8BxQHGAcMB/wE7AT8BPQH/
626 | ARwBIAEhAf8BIwErAS4B/wFFAVoBaQH/AY8BrAHTAf8BlQG1AeEB/wGWAbgB5gH/AZYBswHcAf8BhgGb
627 | AbcB/wGBAZEBpwH/AY4BnAGzAf8BigGYAbMB/wGNAZoBugH/AY4BnQHEAf8BjgGgAdMB/wGAAZYB0gH/
628 | AW8BkwHQAf8BbwGQAc4B/wGBAZkB0AH/AZEBpwHbAf8BmwGwAeYB/wGQAaQB3wH/AXEBlgHQAf8BbwGR
629 | AcoB/wGCAZIByQH/AYMBkwHEAf8BcAGPAbgB/wFsAYkBsAH/AWwBhwGtAf8BYwGCAagB/wFkAYYBtQH/
630 | AWoBjQHDAf8BbgGSAcYB/wFsAZEBxAH/AWABhgGzAf8BHgEnATQB/wERARUBGQH/ATYBOwE8Af8B3ALd
631 | Af8B6QHrAewB/wHnAesB5wH/AeYB6AHnAf8B5gLnAf8B4gHmAecB/wHeAeUB5wH/Ad4B5AHmAf8B3gHj
632 | AeIB/wHdAeIB5gH/Ad4B3wHjAf8C3wHjAf8C3gHfAf8C3gHgAf8B1wHbAd4B/wHXAdsB3gH/AdcB2wHe
633 | Af8B1wHbAd8B/wHWAdsB3gH/AdYB2wHeAf8B1gHaAd4B/wHVAdgB3wH//wD/AP8AwwAw/wL9AfwB/wH8
634 | Af0B+AH/AfsB/QH3Af8B+wH8AfcB/wH5AfoB9wH/AfcB+QH2Af8C+AH3Af8CuwG3Af8BJQErASkB/wET
635 | ARgBGgH/ARUBHgEjAf8BMwFEAU4B/wGEAaMByAH/AZMBtAHhAf8BlAG1AeMB/wGVAbYB5gH/AaEBvwHo
636 | Af8BvAHRAfAB/wHRAd4B8wH/AcEB0QHyAf8BtQHCAesB/wGhAbUB5wH/AY0BpQHeAf8BcQGXAdUB/wGB
637 | AZcB1AH/AYMBmQHTAf8BhQGdAdQB/wGTAakB3QH/AZoBrwHlAf8BlQGrAeIB/wGMAaQB3gH/AYABmAHX
638 | Af8BgwGYAdYB/wGBAZcB0wH/AXABlAHOAf8BcgGWAcoB/wGAAZUByQH/AWkBkAHGAf8BZgGNAcMB/wFr
639 | AY8BxgH/AW0BkgHHAf8BZAGKAb0B/wFKAVwBjQH/ARUBHAElAf8BEQEWARgB/wFEAUkBSgH/AdYB1wHW
640 | Af8B6ALrAf8B5wHrAecB/wHnAegB5wH/AeUC5wH/AeAB5gHnAf8B3gHlAecB/wHeAeMB5AH/Ad0B4wHe
641 | Af8B3QHgAeQB/wLfAeIB/wHfAd4B4AH/A94B/wHaAd0B3gH/AdcB3AHeAf8B1gHbAd4B/wHWAdsB3gH/
642 | AdYB2wHeAf8B1gHbAd4B/wHWAdsB3gH/AdYB2gHfAf8B1QHXAd8B//8A/wD/AMMAKP8B/gP/Af4D/wH9
643 | Av4B/wH8Af8B9wH/Af0B/wH3Af8B/gH/AfgB/wH4AfwB9wH/AfcB+gH2Af8B+AH5AfcB/wKwAa0B/wEe
644 | ASQBIgH/AQ4BEgEUAf8BEgEZAR0B/wEoATgBQQH/AW8BmgG+Af8BkQGzAeEB/wGUAbcB5gH/AZQBuQHn
645 | Af8BlgG3AeUB/wGpAcYB7QH/AbgB0AHzAf8BvwHUAfcB/wG1AcoB9AH/AZoBsQHnAf8BigGiAd4B/wGC
646 | AZsB2gH/AYIBmgHVAf8BgwGaAdIB/wGDAZsB0QH/AYkBoQHVAf8BjgGmAdwB/wGJAaAB2QH/AYkBnwHb
647 | Af8BbgGVAdQB/wFrAZMB0QH/AWoBkwHRAf8BZgGRAc0B/wFmAZIBygH/AWUBjwHHAf8BZgGOAccB/wFl
648 | AY8BxgH/AWcBkAHGAf8BagGQAccB/wFbAXIBsAH/ATYBRQFZAf8BDgEXAR4B/wEJAQ4BEQH/AS4CNAH/
649 | AdUB1gHVAf8B5wHrAegB/wHnAeoB5gH/AucB5gH/AeMC5wH/Ad8B5QHnAf8B3wHjAecB/wHdAuIB/wHc
650 | AeMB3gH/At8B5AH/At8B4QH/A98B/wHdAd4B3wH/AdgC3QH/AdYB2wHeAf8B1QHaAd4B/wHWAdoB3gH/
651 | AdYB2wHeAf8B1gHbAd4B/wHWAdsB3gH/AdQB2AHeAf8B1QHXAd8B//8A/wD/AMMAMv8B/gP/AfgD/wH3
652 | Af8B/QH+AfcB/wH3AfsB9gH/AvoB9gH/AfgB+gH3Af8CswGxAf8BGAIdAf8BCwEQAREB/wEJAQ4BEgH/
653 | AR8BLAE1Af8BYwGLAasB/wGKAa0B2gH/AZIBtAHiAf8BlAG2AeQB/wGUAbYB5AH/AZ0BvAHpAf8BpwHD
654 | Ae4B/wGqAcMB7QH/AaIBuQHpAf8BjQGoAd4B/wGHAZ8B2gH/AYIBmgHVAf8BhAGaAdQB/wGGAZ0B0wH/
655 | AYUBnAHQAf8BhwGgAdMB/wGIAaAB1gH/AYEBmQHSAf8BgwGbAdcB/wFrAZIB0QH/AWUBjgHOAf8BYwGM
656 | AcwB/wFhAYsByQH/AWIBjAHKAf8BXwGLAcYB/wFkAYwBxQH/AWYBjgHGAf8BZAGPAcMB/wFiAYsBwQH/
657 | AU8BZwGeAf8BKgE4AUkB/wEOARQBGgH/AQUBCgEOAf8BQQJGAf8B3gHgAd8B/wHnAeoB6AH/AegB6QHm
658 | Af8B5QHnAegB/wHdAeYB5wH/Ad4B5AHmAf8B3wHkAecB/wHeAeMB4gH/Ad0B4gHfAf8B3gHfAeMB/wHd
659 | At8B/wPfAf8B2wHeAd8B/wHXAdwB3gH/AdYB2gHeAf8B1gHaAd4B/wHWAdoB3gH/AdUB2QHeAf8B1gHa
660 | Ad4B/wHVAdoB3gH/AdUB2AHfAf8B1QHXAd8B//8A/wD/AMMAMv8B/gP/AfwD/wH2Af8B/QH+AfcB/wH4
661 | AfsB9gH/Af0B+gH2Af8C9wH1Af8CwAG/Af8BFwIcAf8BBQEMAQoB/wEIAg0B/wEQARsBHgH/AUsBYwGJ
662 | Af8BggGmAdAB/wGMAa4B2wH/AYkBqwHZAf8BjQGvAd0B/wGaAbgB5wH/AaABtwHnAf8BogG3AecB/wGe
663 | AbQB5QH/AYkBogHYAf8BcgGYAdIB/wGBAZoB0gH/AYQBmwHRAf8BiQGfAdQB/wGGAZwB0AH/AYYBnQHU
664 | Af8BhwGfAdUB/wGCAZwB0gH/AYEBmQHSAf8BbwGXAdIB/wFlAY4BzgH/AWMBjAHMAf8BXwGKAcgB/wFe
665 | AYkBxwH/AV0BiAHBAf8BYgGKAcUB/wFjAYsBxAH/AWIBigHCAf8BXAGDAbsB/wFGAV4BkAH/ASQBMgE/
666 | Af8BBwEMARAB/wEHAQwBDwH/AVkCXgH/AeQB5wHlAf8B5wHqAecB/wPnAf8B4wLnAf8B3QHlAecB/wHf
667 | AeQB5wH/Ad4B4wHlAf8B3QHjAeAB/wHeAeIB3gH/At4B4AH/At8B3gH/A94B/wHZAd0B3gH/AdYB2wHe
668 | Af8B1gHbAd4B/wHWAdsB3gH/AdUB2gHeAf8B1QHYAd4B/wHVAdcB3wH/AdUB1wHfAf8B1QHXAd8B/wHV
669 | AdcB3wH//wD/AP8AwwA2/wH+Af8B/gH/AfcD/wH4Af8B9gH4AfIB/wHxAfIB7gH/AcgBzAHIAf8BiQGP
670 | AYwB/wEWAhsB/wEGAQ0BDAH/AQYBDQELAf8BCQIRAf8BMQFDAVEB/wFmAZUBvAH/AYABogHPAf8BgQGj
671 | AdIB/wGIAakB1wH/AY8BqwHbAf8BnAGyAeAB/wGfAbMB4wH/AZwBsQHhAf8BiwGiAdYB/wFxAZkB0AH/
672 | AYIBmwHSAf8BhAGbAdIB/wGJAZ0B0gH/AYIBmgHPAf8BgQGbAdIB/wFyAZkBzwH/AXEBmgHPAf8BgAGa
673 | AdAB/wFxAZgB0QH/AWcBkgHOAf8BYgGLAckB/wFdAYgBxgH/AV4BiAHHAf8BXQGHAcIB/wFeAYYBwAH/
674 | AV4BiQHAAf8BXAGHAbwB/wFPAWkBpwH/ATUBSQFhAf8BEgEdASUB/wEEAQkBDQH/AQgBDQERAf8BXwFk
675 | AWUB/wHjAecB5gH/AecB6QHnAf8B5gLnAf8B4gLnAf8B3gHlAeYB/wHfAeQB5gH/Ad4B4wHkAf8B3QHi
676 | Ad8B/wHeAeEB3gH/A98B/wHfAeAB3wH/Ad0C3wH/AdkB3QHeAf8B1gHbAd4B/wHWAdsB3gH/AdUB2gHd
677 | Af8B1gHaAd4B/wHVAdgB3wH/AdUB1wHeAf8B1QHXAd4B/wHVAdgB3gH/AdQB2AHfAf//AP8A/wDDADj/
678 | Af4B/wH6A/8B+AH/AfMB9AHvAf8B1wHaAdQB/wFFAUoBSQH/ATIBOAE3Af8BFQEaARkB/wEAAQQBAQH/
679 | AQABBQEEAf8BAAIDAf8BEAEZARoB/wFNAWUBjAH/AWUBkwG8Af8BbwGdAccB/wGAAZ4BzAH/AYMBoAHN
680 | Af8BiwGkAdAB/wGOAaMB0gH/AYwBogHRAf8BgQGaAcsB/wFtAZcByAH/AW4BlwHIAf8BcQGXAcgB/wGC
681 | AZgByQH/AXEBmAHMAf8BbQGYAc0B/wFqAZYBywH/AW0BlwHOAf8BbQGXAc8B/wFtAZYBzgH/AWgBkwHL
682 | Af8BZgGQAcsB/wFfAYsBxwH/AV4BiQHFAf8BYAGIAcYB/wFgAYgBwAH/AV4BhQG9Af8BWQGAAbYB/wFD
683 | AVkBjQH/ASEBLgE6Af8BCwETARcB/wEDAQgBCwH/AQsBEAETAf8BjQKSAf8B5AHoAecB/wPnAf8B4QLn
684 | Af8B3wHlAegB/wHfAeQB5wH/Ad4B5QHmAf8B3wHjAeYB/wHdAeEB4wH/Ad4C4AH/A98B/wPfAf8B3QHe
685 | Ad8B/wHYAdsB3gH/AdUB2gHeAf8B1QHZAd4B/wHWAdoB3gH/AdYB2wHeAf8B1QHYAd8B/wHVAdgB3gH/
686 | AdUB2QHfAf8B1QHYAd4B/wHQAdgB3wH//wD/AP8AwwA6/wH+Af8C/QH8Af8B7QHuAesB/wGpAa4BrAH/
687 | ASQBKQEqAf8BBAEIAQYB/wEGAQkBCAH/AwAB/wEAAgMB/wEAAgEB/wIAAQIB/wEWASYBLAH/AUoBZgGO
688 | Af8BXgGJAasB/wFiAY0BsgH/AV8BigG0Af8BYgGJAbMB/wFlAYoBtgH/AWoBjwG9Af8BYwGMAboB/wFl
689 | AZABvQH/AWMBjQG8Af8BZwGPAb4B/wFrAZEBwQH/AWgBjwHBAf8BaAGRAccB/wFnAZABxgH/AWcBjwHG
690 | Af8BaQGSAckB/wFmAZIByAH/AWYBkQHIAf8BZQGRAccB/wFiAY8BxwH/AWIBiwHFAf8BYAGIAcAB/wFd
691 | AYUBuwH/AVgBcQG1Af8BUQFnAagB/wExAUQBWgH/AQ8BFwEgAf8BAgEHAQoB/wEBAQYBCQH/ARQBGQEc
692 | Af8BogGnAaYB/wHmAegB5wH/AeUC5wH/Ad8C5wH/Ad0B5AHoAf8B3wHkAecB/wHfAeQB5wH/Ad4B4AHo
693 | Af8B3gHgAeQB/wLfAeAB/wHdAd8B3gH/AdkB3AHfAf8B1wHbAd8B/wHWAdoB3wH/AdUB2QHeAf8B1QHX
694 | Ad4B/wHWAdkB3gH/AdUB2QHeAf8B1QHYAd8B/wHWAdoB3gH/AdUB2gHeAf8B0gHYAd4B/wHPAdYB3gH/
695 | /wD/AP8AwwA8/wH9Af4B/QH/AfAB8QHtAf8BmgGdAZoB/wEhASYBKAH/AQABAwEBAf8DAAH/AwAB/wMA
696 | Af8DAAH/AwAB/wMAAf8BGQEnAS8B/wE5AVIBaAH/AUMBXgGGAf8BTwFjAZIB/wFUAWoBmwH/AVcBcAGi
697 | Af8BWwGAAagB/wFaAYABqQH/AVsBhAGsAf8BWAGBAasB/wFbAYUBsQH/AVoBhQGzAf8BXgGFAbUB/wFg
698 | AYgBugH/AWIBiwG9Af8BYAGIAboB/wFjAYsBvgH/AWEBigG/Af8BZQGNAcIB/wFkAYwBwgH/AWQBiwG/
699 | Af8BYAGJAb4B/wFcAYUBvQH/AVgBcQG0Af8BUAFpAacB/wE9AVMBgAH/ARIBHgEnAf8BAAEGAQkB/wEB
700 | AQYBCQH/AQQBCQEMAf8BLAEwATIB/wHCAscB/wHjAegB5wH/Ad4C5wH/Ad0B5gHoAf8B3gHlAegB/wHe
701 | AeQB5wH/Ad4B4gHmAf8B3gHhAeUB/wHdAt8B/wHdAt4B/wHZAdwB3QH/AdcB2gHeAf8B1wHbAeAB/wHW
702 | AdkB3wH/AdUB2AHeAf8B1QHYAd4B/wHWAdoB3gH/AdUB2QHeAf8B1AHYAd4B/wHVAdcB4AH/AdUB1gHg
703 | Af8B0wHYAd4B/wHPAdUB3gH//wD/AP8AwwA8/wP+Af8B+gH7AfYB/wHMAc4ByQH/AUACRQH/AQcBCwEK
704 | Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AQwBGAEdAf8BJwE6AUsB/wE2AUoBYgH/AUQBWAGB
705 | Af8BRQFeAYoB/wFKAWIBkAH/AUsBYgGTAf8BTQFjAZgB/wFPAWYBnAH/AVABZgGgAf8BUQFqAaQB/wFU
706 | AWwBqAH/AVUBbgGqAf8BWwGCAbAB/wFaAYUBtAH/AVsBhwG2Af8BXgGIAboB/wFcAYYBuQH/AVwBhgG6
707 | Af8BXAGEAbcB/wFZAYEBtAH/AVIBagGpAf8BRgFfAZgB/wE8AU8BagH/ARcBIQEsAf8BAAEDAQgB/wEA
708 | AQEBBAH/AQABAwEHAf8BBwELAQ8B/wFPAlQB/wHbAeAB3wH/AeEC5wH/Ad0B5QHnAf8B3wHkAecB/wHe
709 | AeQB5wH/Ad4B4wHmAf8B3gHgAeYB/wHeAd8B5AH/At0B3gH/AdoB3gHgAf8B1wHbAd4B/wHWAdsB3gH/
710 | AdUB2gHeAf8B1QHYAd4B/wHVAdcB3gH/AdYB2gHfAf8B0gHYAd4B/wHRAdcB3wH/AdIB1wHfAf8B1AHX
711 | Ad8B/wHVAdcB3wH/AdEB1wHeAf8BzQHVAd4B//8A/wD/AMMAQv8B+gH/AfgB+QH0Af8BsAG1AbMB/wEt
712 | AjMB/wEFAQoBCQH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wEAAgIB/wEOARYBHAH/ASIBMgE/
713 | Af8BKQE5AU4B/wEsAT0BVAH/ATIBQwFdAf8BOAFNAWgB/wE+AVcBgQH/AUIBWwGLAf8BRgFfAZEB/wFI
714 | AWABlAH/AU0BZAGbAf8BTgFmAZwB/wFQAWsBoAH/AU4BaQGjAf8BUgFsAakB/wFQAWwBqAH/AVABawGo
715 | Af8BTAFoAaAB/wFFAV4BkQH/ATkBTgFoAf8BIQEuAUAB/wEFAQ4BFgH/AQABAgEFAf8BAAECAQUB/wEA
716 | AQUBCAH/AQYBDAEPAf8BEgEZARwB/wGAAocB/wHjAuYB/wHiAucB/wHeAeYB5wH/Ad8B5QHoAf8B3gLj
717 | Af8B3QHgAeUB/wLeAeYB/wLeAeEB/wHcAd0B3gH/AdYB2wHeAf8B1gHbAd4B/wHWAdsB3gH/AdUB2gHe
718 | Af8B1gHbAd8B/wHWAdoB3gH/AdEB2AHdAf8BzgHXAd4B/wHNAdcB3gH/Ac4B1wHeAf8B0QHXAd4B/wHR
719 | AdcB3gH/AdEB1gHfAf8BzgHVAd0B//8A/wD/AMMAJv8B/gP/Af4T/wH9A/8B+QH/AfkB+wH2Af8B7gHv
720 | AesB/wGSAZgBlQH/ASoBMAEvAf8BGgIcAf8BAAEFAQQB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
721 | Af8DAAH/AQABCgELAf8BCQEUARgB/wEPARsBIwH/ARgBJQEwAf8BIQEvAT8B/wEnATYBRwH/AS8BQAFV
722 | Af8BMQFDAV0B/wE5AUwBZQH/ATsBUgFsAf8BOAFQAWoB/wE3AU0BagH/AToBUAFuAf8BOQFLAWsB/wE3
723 | AUkBZgH/ASQBNQFJAf8BFgEjATAB/wEHAQ8BFwH/AQABBAEIAf8BAAEFAQcB/wEAAQQBBwH/AQMBCAEL
724 | Af8BBwEMAQ8B/wEKAQ8BEQH/ATcCPQH/Ab4CwwH/AeAB5wHmAf8B3gLnAf8B3gHlAeYB/wHfAeQB5wH/
725 | Ad4B4wHfAf8B3wHhAeIB/wHeAd8B4QH/AeAC3wH/AdoB3QHfAf8B1gHbAd4B/wHWAdsB3gH/AdYB2wHd
726 | Af8B1QHaAd4B/wHUAdgB3wH/Ac8B2AHdAf8BzgHXAdwB/wHOAdcB3QH/Ac0B1wHeAf8BzgHXAd4B/wHO
727 | AdcB3gH/Ac4B1wHeAf8BzQHXAd4B/wHNAdMB2QH//wD/AP8AwwAi/wH+Af8B/gH/Af0B/wH+Af8B/gH/
728 | Af4B/wH+D/8B/AP/AfgB/wH4AfsB9gH/AfcB+wH2Af8B7AHwAeoB/wGeAqEB/wFFAUkBSwH/AT4BQwFC
729 | Af8BJQEqASkB/wEaAR8BHgH/ARMBGAEXAf8BBAEIAQcB/wEAAQEBAAH/AwAB/wMAAf8DAAH/AwAB/wMA
730 | Af8BAAECAQAB/wECAQgBCQH/AQYBDgEQAf8BBQEOARIB/wEMARQBGgH/AREBHAEjAf8BGwEoATIB/wEb
731 | ASkBNQH/AR8BLQE8Af8BHwEtATsB/wEXASQBLwH/ARMBHQEpAf8BCwETARwB/wECAQkBDgH/AQABAQEE
732 | Af8BAAEBAQQB/wEAAQMBBgH/AQEBBgEJAf8BAwEIAQsB/wEFAQkBDQH/AQsBEQEUAf8BFQEbAR0B/wFr
733 | AXEBcAH/AdoC4AH/Ad0C5gH/Ad4B5QHoAf8B3wHkAecB/wHgAeMB5wH/Ad4B4QHjAf8B3gLgAf8B4AHe
734 | AeEB/wHbAdwB4QH/AdcB2wHeAf8B1gHbAd4B/wHWAdsB3gH/AdYB2gHdAf8B1QHZAd4B/wHUAdcB3wH/
735 | Ac8B1gHeAf8BzgHUAd4B/wHPAdQB3gH/Ac8B1QHfAf8BzgHVAd8B/wHOAdYB3gH/Ac4B1gHeAf8BzQHX
736 | Ad4B/wHMAdUB2gH//wD/AP8AwwA+/wH7A/8B9wH/AfgB+wH2Af8B9wH7AfYB/wH4AfsB9gH/AfcB+gH2
737 | Af8BwwHHAcQB/wFTAVwBVgH/AToBQAE+Af8BLQExATAB/wEtATEBMAH/ATABNQE0Af8BHwElASMB/wEW
738 | ARsBGgH/AQ4BEgEUAf8BBQEKAQsB/wEAAgUB/wMAAf8DAAH/AQABAQEAAf8DAAH/AwAB/wMAAf8BAAED
739 | AQIB/wEAAQYBBwH/AQMBCAEMAf8BAwEJAQ0B/wEDAQkBDQH/AQABBQEIAf8BAAEFAQgB/wIAAQMB/wIA
740 | AQMB/wEAAQMBBgH/AQABBAEHAf8BBAEJAQoB/wEXARwBHQH/ARACFQH/AQ4BEwEVAf8BFgEaAR8B/wE/
741 | AUMBRgH/AbYBvQG8Af8B3wLmAf8B3QHlAecB/wHfAeMB6AH/Ad4B4gHnAf8B3gHhAeYB/wLeAeIB/wLf
742 | AeAB/wHaAd0B4wH/AdcB2wHfAf8B1gHbAd0B/wHWAdsB3QH/AdUB2QHfAf8B1QHXAd4B/wHVAdcB3wH/
743 | AdEB1wHeAf8BzQHVAd4B/wHOAdMB3gH/AdAB0gHfAf8BzgHUAd4B/wHNAdYB3QH/Ac4B1gHeAf8BzQHW
744 | Ad4B/wHNAdcB3gH/AcsB1AHZAf//AP8A/wDDAD7/AfoB/wH9Af4B9gH/AfgB/AH3Af8B9wH7AfYB/wH4
745 | AfoB9gH/AfUB9wHzAf8B8gHzAe8B/wGTAZcBkgH/AT0BQQFAAf8BMwI2Af8BMwE1ATQB/wE3AToBOQH/
746 | AS8BNAEzAf8BJwEsASsB/wEdASEBIwH/ARYBGgEcAf8BDgIUAf8BCgIPAf8BBQEKAQkB/wEAAQUBBAH/
747 | AQABAwECAf8BAAEGAQUB/wEAAQUBBAH/AQABAQEAAf8DAAH/AQABAwEGAf8CAAEEAf8DAAH/AwAB/wMA
748 | Af8DAAH/AwAB/wIAAQMB/wEAAQQBBwH/AQUBCgEMAf8BLwE0ATUB/wFOAVQBUwH/ASUBKgErAf8BKQEu
749 | ATEB/wFxAYMBhwH/AdsC4QH/Ad0B5AHnAf8B3gHjAeYB/wHfAeMB5gH/Ad4B4AHnAf8B3QHfAeQB/wHf
750 | Ad4B4AH/AdsB3gHgAf8B1wHdAeEB/wHWAdsB3gH/AdYB2gHfAf8B1gHYAd8B/wHTAdcB3wH/AdEB1wHe
751 | Af8BzwHWAd4B/wHOAdUB3QH/Ac4B1AHfAf8BzwHTAd0B/wHOAdMB2wH/AcwB0wHaAf8BywHWAdoB/wHN
752 | AdcB3AH/Ac0B1wHcAf8BzQHWAd0B/wHNAdQB2gH//wD/AP8AwwA+/wH5Af8B/QH+AfcB/wH3AfsB9gH/
753 | AfcB+wH2Af8B+AH7AfYB/wH5AfoB9gH/AfcB+AH0Af8B5gHoAeUB/wGCAYYBhAH/ASwBMAEvAf8BHgEi
754 | ASAB/wEhASUBIwH/ASUBKQEnAf8BJAEoASYB/wEcASEBHwH/ARgBHgEdAf8BEQIWAf8BDgEUARMB/wEL
755 | ARABDwH/AQkCDgH/AQcBDQEMAf8BAwEJAQgB/wEEAQoBCQH/AQIBBwEIAf8BAwEIAQsB/wEAAQQBBwH/
756 | AQABBAEHAf8DAAH/AgABAwH/AQABAwEGAf8CAAECAf8BAAECAQUB/wEAAQUBCAH/AQgBDAEQAf8BEwEY
757 | ARwB/wFEAUoBSwH/AY8BlAGVAf8BcAGCAYMB/wGlAaoBqwH/AdUB2gHbAf8B3QHhAeUB/wHcAeEB5AH/
758 | Ad4B4QHmAf8B3gHgAeYB/wHeAeAB5gH/Ad4C4AH/AdsC3wH/AdgB3gHgAf8B1gHdAeAB/wHWAdsB3gH/
759 | AdYB2QHeAf8B0wHXAd8B/wHPAdcB3gH/Ac0B1wHeAf8BzgHVAd4B/wHQAdMB3QH/Ac8B1AHdAf8BywHT
760 | AdgB/wHNAdMB1QH/AcwB0wHXAf8BzQHVAdsB/wHOAdUB3gH/Ac4B1QHeAf8BzgHUAd4B/wHOAdMB3gH/
761 | /wD/AP8AwwA4/wH+Af8B/gH/Af4B/wH4Af8B/gH/AfcB/wH4AfsB9gH/AfcB+wH2Af8B9wH7AfYB/wH1
762 | AfgB9AH/AfUB9gHzAf8B8AHyAe8B/wHuAe8B7AH/AcoBzAHKAf8BXwJhAf8BNwE6ATkB/wE5ATsBOQH/
763 | ATcBOQE3Af8BKwEuASwB/wEfASMBIQH/ARcBGwEaAf8BEgEYARYB/wEOAhMB/wELAhAB/wEKARABDwH/
764 | AQgBDgEMAf8BCAINAf8BBgEJAQ0B/wEEAQkBDAH/AQgBDQEQAf8BBAEJAQwB/wEAAQUBCAH/AQQBCQEM
765 | Af8BBAEJAQwB/wEEAQkBDAH/AQYBCwEOAf8BBQEKAQ0B/wERARYBGQH/ASoBLgEyAf8BaAFsAW8B/wGl
766 | AakBrAH/AcMBxwHKAf8BzgHTAdUB/wHXAdsB3QH/AdwB3wHhAf8B3wHjAeYB/wHdAeAB5gH/Ad4B3wHm
767 | Af8B3gHfAeMB/wHdAd4B3wH/AdcC3QH/AdYB2wHdAf8B1QHbAd4B/wHVAdoB3gH/AdMB1wHeAf8BzgHX
768 | Ad4B/wHNAdcB3gH/Ac0B1wHeAf8BzgHXAd0B/wHNAdQB2AH/Ac4B0wHXAf8BzAHTAdYB/wHNAdMB1wH/
769 | Ac4B1AHZAf8BzQHVAdwB/wHOAdMB3gH/Ac8B0wHeAf8BzwHUAd4B/wHNAdMB3wH//wD/AP8AwwA2/wH+
770 | Af8B/gH/AfwB/wH9Af8B+AH/Av0B9wH/AfcB+wH2Af8B9wH7AfYB/wH3AfsB9gH/AfcB+gH3Af8B9AH1
771 | AfQB/wH3AfYB9wH/A/cB/wHzAfQB8AH/AewB7QHqAf8BrQGwAa4B/wFhAWIBXgH/AUABQQE+Af8BPgFA
772 | AT4B/wE8AT8BPgH/ATEBNAEzAf8BJQErASoB/wEdAiMB/wEWAhsB/wEOARQBEwH/AQoBEAEPAf8BCwEQ
773 | AQ8B/wELAQ8BEAH/AQkBDgEQAf8BCAENARAB/wEIAQ0BEAH/AQcBDAEPAf8BBwEMAQ8B/wELARABEwH/
774 | AQsBEAETAf8BCAENARAB/wEKAQ8BEgH/ARkBHgEhAf8BTgFSAVUB/wGMAZABkgH/Aa8BsgG0Af8BzQHR
775 | AdMB/wHbAd8B4QH/Ad8B4gHmAf8B3wHiAecB/wHdAeAB5gH/Ad4B4AHkAf8B3gHfAeAB/wHeAd8B4AH/
776 | Ad4C3wH/AdcB2wHdAf8B1gHbAd4B/wHWAdkB3gH/AdUB1wHeAf8BzwHXAd4B/wHNAdcB3gH/Ac0B1wHe
777 | Af8BzQHXAd0B/wHNAdYB2wH/Ac0B0wHXAf8BzQHTAdYB/wHMAdMB1gH/AcwB0wHWAf8BzgHTAdgB/wHO
778 | AdYB3gH/Ac8B0wHeAf8BzwHTAd4B/wHPAdMB3gH/AcwB0wHeAf//AP8A/wDDADb/Af4B/wH+Af8B+gH/
779 | Af0B/wH5Af8B+AH8AfgB/wH3AfsB9gH/AfcB+wH2Af8B9wH7AfYB/wH3AfoB9gH/AfcB+AH3Af8D9wH/
780 | AvgB9gH/AfcB+AHyAf8B9QH3AfAB/wHxAfMB7wH/AeAB4QHfAf8CrAGqAf8BbAFuAWsB/wFQAVIBUAH/
781 | AToBPgE9Af8BMQE3ATYB/wEoAi4B/wEhAScBJgH/ARoBIAEfAf8BFQEbARwB/wETARgBHAH/ARABFAEY
782 | Af8BDQESARUB/wELARABEwH/AQoBDwESAf8BDgESARYB/wEOARIBFwH/AQ8BFAEYAf8BCAEOAREB/wEO
783 | ARQBFwH/ARQBGQEcAf8BOQE+AUIB/wGDAYcBiwH/AaMBpwGqAf8BvgHCAcUB/wHQAdMB1wH/AdsB3QHh
784 | Af8B3QHfAecB/wHeAeAB5gH/Ad0B3wHgAf8B3gHgAd8B/wPfAf8B2wHdAeAB/wHXAd0B4AH/AdYB2wHe
785 | Af8B1gHaAd4B/wHUAdcB3gH/AdQB1wHfAf8B0QHXAd4B/wHNAdYB3gH/Ac0B1wHeAf8BzgHXAd0B/wHN
786 | AdQB1wH/Ac4B0wHWAf8BzAHTAdcB/wHIAdIB1gH/AcoB1AHXAf8BywHTAdcB/wHNAdUB3QH/Ac8B0wHe
787 | Af8BzwHTAd4B/wHPAdMB3gH/AcwB0wHfAf//AP8A/wDDADX/Af4C/wH+Af8B+QH/Af0B/wH3Af8B+AH8
788 | AfYB/wH3AfsB9gH/AfcB+wH2Af8B9wH7AfYB/wH3AfsB9QH/AfcB+gH3Af8D9wH/AvcB8gH/AvcB7wH/
789 | AfQB9gHvAf8B8gHzAe4B/wH2AfMB7wH/AfMB8gHwAf8B7gHvAe0B/wHXAdgB1gH/AasBrQGsAf8BaAFs
790 | AWsB/wE/AUQBQwH/ATEBNQE2Af8BJwEsAS0B/wEfASMBJgH/ARsBHwEkAf8BFgEcASEB/wEYAR0BIAH/
791 | ARcBHAEfAf8BFgEbAR8B/wEUARgBHQH/AREBFgEbAf8BEAEUARkB/wEWARoBHwH/ASIBJgEqAf8BQgFG
792 | AUsB/wFxAYMBhQH/AagBrAGuAf8BqAGrAbAB/wHWAdkB3AH/AdUB2QHbAf8BzwHSAdYB/wHdAd8B5AH/
793 | Ad4B3wHgAf8D3wH/At4B3wH/AdoB3AHeAf8B1gHaAd4B/wHWAdsB3gH/AdYB2gHeAf8B1QHYAd4B/wHT
794 | AdcB3wH/Ac8B1wHeAf8BzgHXAd4B/wHPAdQB3gH/Ac0B1QHcAf8BzQHWAd0B/wHPAdQB1wH/AcwB1AHX
795 | Af8ByAHSAdcB/wHGAdIB1gH/AcsB0wHWAf8BzgHTAdoB/wHOAdMB3gH/Ac4B0wHeAf8BzgHTAd4B/wHP
796 | AdMB3gH/Ac0B0wHfAf//AP8A/wDDADn/Av4B/wL9AfwB/wH4AfsB9gH/AfcB+wH2Af8B9gH6AfUB/wH3
797 | AfoB9wH/A/cB/wH3AfgB9QH/A/cB/wL2AfEB/wH1AfYB7wH/AfEB9AHuAf8B8AHzAe8B/wLxAe8B/wPv
798 | Af8D7wH/AfAB7wHuAf8B7gHsAeoB/wHjAeIB4AH/AdEB0AHRAf8BpQGqAacB/wFvAYEBgAH/AVIBVgFY
799 | Af8BOwE+AUMB/wEuATUBOQH/AScBLwEzAf8BJQEtATEB/wEiASoBLwH/ASQBKwEvAf8BMAE1ATcB/wFE
800 | AUcBTAH/AVQBVwFcAf8BXQFgAWUB/wFxAYEBhgH/AaMBpwGpAf8BqwGuAbEB/wHVAdgB3AH/AdkB2wHf
801 | Af8B2wHcAeAB/wHbAdwB4AH/AdgB2gHdAf8B3AHeAd8B/wPeAf8B2gHdAd8B/wHWAdsB3gH/AdUB2wHe
802 | Af8B1gHbAd4B/wHWAdgB3gH/AdUB1wHfAf8B0gHWAd8B/wHMAdgB3gH/Ac4B1wHeAf8B0AHTAd4B/wHO
803 | AdQB2gH/Ac0B0wHYAf8BzgHTAdYB/wHKAdMB1wH/AcYB0gHWAf8BxgHSAdYB/wHHAdMB1gH/AcsB0wHb
804 | Af8BzgHTAd8B/wHNAdMB3gH/AdAB0wHeAf8BzwHTAd4B/wHPAdIB3wH//wD/AP8AwwAs/wH+A/8B+wH/
805 | Af4B/wH9A/8C/gL/AfoB+wH6Af8B9wH7AfYB/wH4AfkB9wH/A/cB/wP3Af8D9wH/AfcB+AH1Af8B9QH2
806 | AfEB/wHwAfMB7gH/AfAB8wHuAf8B7wHzAe4B/wHvAfIB7wH/A+8B/wPvAf8C7wHuAf8B7wHtAe8B/wHs
807 | AesB6gH/AeoC6wH/AekB6gHrAf8B5gHpAeYB/wHfAeIB4AH/AdIC1AH/Ab4BwAHBAf8BnAGeAaEB/wGC
808 | AYcBiAH/AWoBbgFxAf8BXwFiAWcB/wFpAWwBcAH/AXEBgAGDAf8BgwGGAYkB/wGZAZ0BnwH/AbMBtwG5
809 | Af8ByAHMAc8B/wHOAdEB1gH/AdgB2wHfAf8B2AHaAd0B/wHbAd0B3wH/AdoB3QHeAf8B2gHdAd4B/wHb
810 | Ad4B3wH/AdoB3AHdAf8B1gHaAd0B/wHWAdoB3gH/AdYB2gHeAf8B1gHbAd4B/wHWAdsB3gH/AdUB1wHf
811 | Af8B0gHXAd4B/wHRAdcB3wH/Ac4B1QHeAf8BzQHVAd8B/wHOAdQB3QH/AcwB0wHZAf8BzgHSAdcB/wHN
812 | AdIB1wH/AcgB0gHWAf8BxgHSAdYB/wHIAdMB2gH/AcsB0wHcAf8BzQHTAd0B/wHOAdMB3gH/Ac4B0gHd
813 | Af8BzwHTAd4B/wHKAdIB3wH/AcwB0gHfAf//AP8A/wDDACj/Af4D/wH8Af8B/gH/AfcB/wH+Af8B+AH/
814 | AfoB/wH6Af0B+wH/AfcB+wH3Af8B9wH5AfYB/wH3AfgB9gH/A/cB/wP3Af8D9wH/AvYB9wH/AvYB8wH/
815 | Ae8B8wHvAf8B8AHyAe8B/wHuAfAB7gH/Ae0C7wH/A+8B/wPvAf8D7wH/Au0B7wH/AegB6wHpAf8B5gHq
816 | AegB/wHmAesB5wH/AecB6AHnAf8D5wH/A+cB/wHjAuUB/wHfAeEB4gH/AdwC4QH/AdkC3gH/AdMB2AHa
817 | Af8BzwHSAdQB/wHVAdgB2QH/AdYC2gH/AdcB2wHcAf8B1wHbAd0B/wHaAd0B4QH/AdsB3gHiAf8B2QHc
818 | Ad0B/wLeAd8B/wHcAd0B3gH/AdoB3AHdAf8B2AHbAd0B/wHWAdsB3gH/AdYB2wHeAf8B1QHaAd4B/wHV
819 | AdkB3QH/AdQB2AHdAf8B1AHXAd4B/wHVAdgB3wH/AdQB1wHfAf8BzgHXAd4B/wHPAdUB3gH/Ac8B1AHe
820 | Af8BzQHUAd4B/wHMAdYB3AH/AcwB1AHXAf8BywHTAdcB/wHJAdIB1gH/AccB0wHXAf8BxgHSAdYB/wHL
821 | AdMB3QH/Ac0B0gHfAf8BzgHTAd8B/wHPAdMB3gH/Ac4B0wHeAf8BzgHTAd4B/wHJAdIB3wH/AckB0gHf
822 | Af//AP8A/wDDACD/Af4D/wH+Bf8B/gH/Af0D/wH4Af4B/QH/AfcB/QH4Af8B9wH7AfYB/wH3AfsB9QH/
823 | AfgB+QH2Af8B9QH3AfYB/wH2AvcB/wH3AfYB+AH/AfYB9AH4Af8B9QH0AfcB/wHxAvMB/wHvAfIB8AH/
824 | Ae4B8AHuAf8B7wHwAe8B/wPvAf8B7wHuAe8B/wLuAe8B/wPuAf8B6gLsAf8B5wHrAegB/wHmAeoB5wH/
825 | AecB6QHnAf8B5gLnAf8D5wH/AeYC5wH/AeIB5gHnAf8B4AHmAecB/wHfAeQB6AH/Ad0B4gHkAf8B2wLg
826 | Af8B2wLgAf8B2QHeAd0B/wHaAd0B3gH/AdoB3QHeAf8B3AHeAeAB/wHcAd4B3wH/AdsC3gH/Ad4C3wH/
827 | Ad4C3wH/AdwC3gH/AdgB2wHdAf8B1QHaAd0B/wHWAdsB3gH/AdYB2wHeAf8B1QHbAd4B/wHWAdoB3gH/
828 | AdYB2AHeAf8B0wHXAeAB/wHQAdUB3wH/Ac4B1wHdAf8BzgHVAd4B/wHPAdQB3gH/Ac0B1gHeAf8BzQHW
829 | AdsB/wHMAdUB2AH/Ac4B0wHWAf8ByQHTAdYB/wHHAdIB1gH/AcUB0gHWAf8BxwHSAdYB/wHNAdMB3QH/
830 | AcoB0gHfAf8BzgHSAeAB/wHPAdIB3wH/AcwB0wHdAf8BzgHTAd4B/wHPAdMB3gH/AckB0gHeAf//AP8A
831 | /wDDACD/Af4D/wH9Af8B/gH/AfwB/wH+Af8B+wH+Av8B9wH8AfgB/wH3AfsB9gH/AfcB+gH2Af8B9gH5
832 | AfcB/wHzAfcB9QH/AfMC9wH/AfQB9gH3Af8B8wH0AfUB/wHyAfQB9QH/AfEC8wH/Ae4B8QHwAf8B7gLw
833 | Af8D7wH/A+8B/wHvAe0B8AH/Ae8B7AHvAf8B7QHsAe4B/wHpAesB6gH/AecB6gHoAf8B5wHoAecB/wHm
834 | AucB/wPnAf8B5AHmAegB/wHjAeUB5wH/AeEB5QHmAf8B3QHkAeYB/wHgAeQB5wH/Ad0B4wHiAf8B3QHi
835 | AeAB/wHeAeIB3wH/AdwB4gHgAf8B3QHgAd8B/wHeAuAB/wHeAd8B4AH/Ad4B3wHgAf8B3QHeAd8B/wHZ
836 | AdwB3QH/AdcB2wHdAf8B1wHcAd0B/wHWAdsB3QH/AdUB2gHeAf8B1QHZAd4B/wHWAdoB3gH/AdUB2gHe
837 | Af8B1QHaAd8B/wHVAdgB3wH/AdYB1wHeAf8B0QHXAd4B/wHNAdYB3gH/Ac8B1gHfAf8BzwHUAd4B/wHP
838 | AdQB3gH/Ac0B1gHcAf8BzgHTAdYB/wHNAdMB1gH/AcoB0wHWAf8BygHSAdYB/wHHAdIB1gH/AcYB0gHW
839 | Af8BxwHSAdYB/wHNAdMB3QH/AckB0gHfAf8BywHSAd8B/wHJAdIB3gH/AcgB1AHdAf8BzQHTAd4B/wHL
840 | AdMB3gH/AckB0gHfAf//AP8A/wDDACD/AfwB/gL/AfoD/wH8Af4C/wH4Af0C/wH2AfsB+AH/AfcB+wH3
841 | Af8B9wH5AfcB/wH2AvcB/wHwAfYB8gH/Ae8B9gH1Af8B7gH0AfUB/wHvAfMB9AH/Ae4B8wHwAf8B7wHy
842 | Ae8B/wHuAfAB7wH/AewB8AHvAf8B7QHuAe8B/wHuAe0B8AH/AeoB6wHsAf8B6AHrAe4B/wHnAeoB7AH/
843 | AeYB6QHoAf8B5gHoAeYB/wHmAucB/wHlAeYB5wH/AeQB5gHnAf8B4AHkAecB/wHeAeQB5QH/Ad8C5AH/
844 | Ad4B4wHiAf8B3gHiAeEB/wHeAeEB4AH/Ad4B4AHfAf8D3wH/AdsC3wH/AdkC3wH/Ad0B3gHfAf8B3QLe
845 | Af8B3AHeAd8B/wHZAd0B3wH/AdYB2wHeAf8B1gHbAd4B/wHWAdsB3gH/AdUB2gHeAf8B1QHZAd4B/wHW
846 | AdkB3wH/AdQB1wHfAf8BzwHXAd4B/wHPAdgB3QH/Ac8B1wHdAf8BzwHXAd4B/wHOAdcB3gH/Ac8B1AHe
847 | Af8BzwHTAd4B/wHPAdMB3gH/AdAB0wHfAf8BzQHTAd0B/wHNAdMB1wH/AcsB0gHXAf8ByQHSAdYB/wHL
848 | AdIB1wH/AccB0gHYAf8BxwHSAdgB/wHGAdIB2AH/Ac0B1AHdAf8ByQHTAd8B/wHJAdIB3wH/AcgB0wHd
849 | Af8ByQHTAd0B/wHJAdMB3QH/AcgB0wHeAf8BxwHQAd0B//8A/wD/AMMAHP8B/gP/AfoB/gL/AfcD/wH3
850 | A/8B9wH8Av8B9gH7AfoB/wH3AfoB9wH/AfcB+AH3Af8B9QL3Af8B7wH1AfYB/wHuAfMB9gH/Ae8C8wH/
851 | Ae4B8QHwAf8B7wHwAe8B/wHuAfAB7wH/AewC7wH/AeoB7wHuAf8B6QHsAe4B/wHpAeoB7QH/AecB6QHq
852 | Af8B5wHpAeoB/wHoAeYB6AH/AeUC5wH/AeIC5wH/AeAB5gHnAf8B3gHkAecB/wHfAeQB5gH/Ad4B4wHk
853 | Af8B3gHiAeAB/wHeAeAB3wH/Ad4B4QHgAf8B3wHgAd8B/wHaAt8B/wHZAd8B3gH/AdoC3gH/AdoB3QHe
854 | Af8B3AHdAd4B/wHXAdwB3QH/AdcB2wHdAf8B1gHbAd4B/wHWAdsB3gH/AdYB2wHeAf8B1QHaAd4B/wHW
855 | AdoB3gH/AdUB2QHeAf8B1AHYAd0B/wHUAdgB3gH/Ac8B1wHeAf8BzgHXAd4B/wHPAdYB3gH/Ac8B1gHf
856 | Af8BzgHWAd4B/wHOAdUB3gH/Ac8B0wHeAf8BzwHTAd4B/wHPAdMB3gH/Ac8B0wHeAf8BzgHUAdwB/wHM
857 | AdMB1wH/AckB0gHXAf8BxgHSAdcB/wHJAdMB3AH/AcsB0wHfAf8BywHTAd8B/wHHAdMB3gH/AccB0wHe
858 | Af8ByAHSAd8B/wHLAdIB3wH/Ac4B0wHeAf8BzwHTAd4B/wHNAdMB3gH/Ac4B0wHeAf8ByQHSAd8B//8A
859 | /wD/AMMADP8B/RP/AfoB/gL/AfcB/gL/AfgB/gL/AfcB/AH+Af8B9wL7Af8B9gH4AfcB/wHzAvcB/wHx
860 | AfYB+AH/AfAB9AH3Af8B7wHzAfQB/wHvAvEB/wHtAfAB7wH/AeoC7wH/AegC7gH/AecB7QHuAf8B5wLr
861 | Af8B5gHrAeoB/wHmAeoB6AH/AeUB6AHnAf8B4wLnAf8B3wHnAegB/wHeAeYB5wH/Ad8B5QHnAf8B3wHk
862 | AeUB/wHfAeQB4wH/Ad8B4gHgAf8B3wLgAf8B3gHgAd4B/wHcAt8B/wHbAd8B3gH/AdkB3wHeAf8B1gLe
863 | Af8B1wHcAd4B/wHYAdwB3gH/AdUB2wHeAf8B1gHbAd4B/wHXAdoB3gH/AdcB2gHeAf8B1gHbAd4B/wHV
864 | AdoB3gH/AdUB2AHdAf8B0wHYAd4B/wHUAdgB3gH/AdEB1wHeAf8BzwHXAd4B/wHOAdcB3QH/Ac0B1wHe
865 | Af8BzQHXAd4B/wHPAdQB3gH/Ac8B0wHeAf8BzwHTAd4B/wHPAdMB3gH/Ac8B1AHeAf8BzwHTAd4B/wHP
866 | AdMB3gH/Ac4B1QHcAf8BzgHTAdgB/wHKAdMB1wH/AccB0gHXAf8BzQHUAdwB/wHLAdMB3gH/AcgB0gHf
867 | Af8ByAHSAd8B/wHHAdMB3gH/AcgB0wHeAf8ByAHTAd4B/wHKAdMB3gH/Ac8B0wHeAf8BzwHTAd4B/wHO
868 | AdMB3gH/Ac4B0wHeAf8BywHSAd4B//8A/wD/AMMAAf4H/wH+A/8B+wP/Af4L/wH7A/8B9wP/AfYB/AL/
869 | AfcB/AL/AfcC+gH/AfYB+AH3Af8B9AL3Af8B8AH3AfgB/wHvAfQB9wH/Ae8B8gH0Af8B7wHyAfAB/wHs
870 | Au8B/wHoAe4B7wH/AegB7QHvAf8B5gHsAe8B/wHnAewB7gH/AegB6gHoAf8B5wLoAf8B5QLnAf8B4QLn
871 | Af8B3wHkAecB/wHeAeQB5gH/Ad0B5AHjAf8B3wHjAeIB/wHfAuEB/wHeAeEB3wH/AdsB4AHfAf8B2QHf
872 | Ad4B/wHZAd8B3gH/AdgB3wHeAf8B1wHdAd4B/wHXAdsB3gH/AdYB2gHgAf8B1wHaAd4B/wHXAdoB3QH/
873 | AdYB2QHeAf8B1gHZAd4B/wHWAdoB3gH/AdUB2QHdAf8B1gHZAdwB/wHUAdgB3gH/AdAB1wHdAf8B0AHX
874 | Ad0B/wHPAdgB3AH/Ac4B1QHbAf8BzgHUAd0B/wHOAdUB3AH/Ac8B1AHdAf8BzwHTAd4B/wHPAdMB3gH/
875 | Ac8B0wHeAf8BzwHTAd4B/wHPAdMB3gH/Ac8B0gHfAf8BzgHTAdkB/wHOAdMB2AH/Ac4B0wHXAf8BywHT
876 | AdYB/wHGAdMB1QH/AcYB0wHWAf8BywHSAdwB/wHJAdIB3wH/AcgB0gHfAf8ByAHSAd8B/wHHAdMB3wH/
877 | AccB0wHfAf8BywHTAd4B/wHOAdMB3gH/AdAB0wHeAf8BzwHTAd4B/wHNAdMB3gH/Ac4B0wHeAf8BzAHS
878 | Ad4B//8A/wD/AMMAAfsD/wH+B/8B/Af/Af4D/wH+A/8B+QH9Av8B+AH8Af0B/wH3AfwB/QH/AfYB+gH8
879 | Af8B9wL4Af8B9gL3Af8B7wH1AfYB/wHvAfQB9wH/AfAB9AH1Af8B7gHwAe8B/wHsAu8B/wHoAe0B7gH/
880 | AecB7AHvAf8B5wHsAe4B/wHnAesB7AH/AecB6gHrAf8B4gHoAecB/wHgAucB/wHeAeUB5wH/Ad8B5AHn
881 | Af8B3gHjAeQB/wHeAeQB4AH/Ad4B4gHhAf8B3wHgAd8B/wHZAeAB3gH/AdkB3wHeAf8B1wLeAf8B1QHc
882 | Ad8B/wHWAdsB3gH/AdYB2wHeAf8B1gHbAd0B/wHWAdoB2wH/AdYB2AHaAf8B1gHXAdkB/wLWAdgB/wHW
883 | AdcB2AH/AdYB1wHYAf8B1AHXAdoB/wHTAtcB/wHSAdcB2AH/AdAB1gHcAf8BzgHUAdkB/wHOAdYB1wH/
884 | AcwB1QHXAf8BzgHTAdsB/wHPAdIB3wH/Ac8B0wHeAf8B0AHUAd0B/wHOAdMB2gH/Ac4B0wHYAf8BzwHT
885 | AdkB/wHPAdMB2wH/Ac8B0wHeAf8BzQHTAdoB/wHNAdMB1gH/AcsB1AHWAf8ByAHSAdYB/wHGAdIB1gH/
886 | AcYB0gHXAf8ByAHSAdwB/wHGAdAB3QH/AccB0AHeAf8ByAHRAd4B/wHIAdIB3wH/AccB0QHdAf8BxgHT
887 | Ad8B/wHMAdMB3gH/Ac8B0wHeAf8BzgHTAd4B/wHNAdMB3gH/Ac8B0wHeAf8BzgHTAd4B/wHPAdEB3wH/
888 | /wD/AP8AwwABQgFNAT4HAAE+AwABKAMAAUABAQIAAVADAAEBAQABAQUAAYABDBYAA///AP8A/wD/AP8A
889 | /wD/AP8A/wD/AP8A/wCNAAs=
890 |
891 |
892 |
893 |
894 |
895 | AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAgBAAAAAAAAAAAAAAAAAAAAAA
896 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
897 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
898 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////+vr6//r6+v/6+vr/+vr6//7+/v//////AAAAAAAA
899 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////f39//r6
900 | +v/6+vr/+vr6//r6+v//////AAAAAAAAAAAAAAAAAAAAAP////+ZmZn/HR0d/yYmJv8mJib/MzMz/+Tk
901 | 5P//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////8DA
902 | wP8mJib/JiYm/yYmJv8dHR3/wMDA//////8AAAAAAAAAAAAAAAAAAAAAAAAAAOvr6/8VFRX/AAAA/wAA
903 | AP8AAAD/fX19//39/f8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
904 | AAD+/v7/Tk5O/wAAAP8AAAD/AAAA/zMzM//09PT/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39/5mZ
905 | mf8AAAD/AAAA/wAAAP8VFRX/5OTk//39/f8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
906 | AAAAAAAA/v7+/8zMzP8GBgb/AAAA/wAAAP8AAAD/wMDA//////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
907 | AAAAAAAA9PT0/yYmJv8AAAD/AAAA/wAAAP99fX3//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
908 | AAAAAAAAAAAAAAAAAAD/////Tk5O/wAAAP8AAAD/AAAA/05OTv/+/v7/AAAAAAAAAAAAAAAAAAAAAAAA
909 | AAAAAAAAAAAAAAAAAAD/////mZmZ/wAAAP8AAAD/AAAA/xUVFf/k5OT//f39/wAAAAAAAAAAAAAAAAAA
910 | AAAAAAAAAAAAAAAAAAAAAAAA/////8zMzP8GBgb/AAAA/wAAAP8CAgL/wMDA//////8AAAAAAAAAAAAA
911 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD09PT/MzMz/wAAAP8AAAD/AAAA/2ZmZv/09PT/6+vr/+vr
912 | 6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/Tk5O/wAAAP8AAAD/AAAA/05OTv//////AAAAAAAA
913 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////+oqKj/AgIC/wEBAf8AAAD/AQEB/xUV
914 | Ff8VFRX/FRUV/xUVFf8VFRX/FRUV/xUVFf8VFRX/FRUV/xUVFf8AAAD/AAAA/wAAAP8CAgL/zMzM////
915 | //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/f8zMzP/AAAA/wAA
916 | AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2Zm
917 | Zv//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////6io
918 | qP8GBgb/AAAA/wAAAP8AAAD/BgYG/wYGBv8CAgL/AgIC/wICAv8GBgb/BgYG/wYGBv8AAAD/AAAA/wAA
919 | AP8MDAz/zMzM//////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
920 | AAAAAAAA/f39/zMzM/8BAQH/AAAA/wAAAP9OTk7/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/Tk5O/wAA
921 | AP8AAAD/AAAA/2ZmZv/+/v7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
922 | AAAAAAAAAAAAAAAAAAD+/v7/wMDA/wAAAP8AAAD/AAAA/xUVFf/r6+v/AAAAAAAAAAAAAAAAAAAAANra
923 | 2v8VFRX/AAAA/wAAAP8MDAz/2tra//////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
924 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////Tk5O/wAAAP8AAAD/AgIC/2ZmZv//////AAAAAAAA
925 | AAD/////ZmZm/wAAAP8AAAD/AAAA/2ZmZv//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
926 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////AwMD/BgYG/wAAAP8AAAD/DAwM/9ra
927 | 2v8AAAAAAAAAAMzMzP8MDAz/AAAA/wAAAP8VFRX/5OTk//7+/v8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
928 | AAD///////7///z7/////v////////39///9/f//AAAAAAAAAAAAAAAAAAAAAP////9OTk7/AQEB/wAA
929 | AP8AAAD/ZmZm////////////ZmZm/wAAAP8AAAD/AAAA/319ff//////AAAAAAAAAAAAAAAAAAAAAAAA
930 | AAAAAAAAAAAAAP/+//+Whvv/alT5/2pU+f9qVPn/alT5/9HK/f//////AAAAAAAAAAAAAAAA/////8zM
931 | zP8GBgb/AAAA/wAAAP8MDAz/5OTk/9ra2v8MDAz/AAAA/wAAAP8dHR3/5OTk//////8AAAAAAAAAAAAA
932 | AAAAAAAAAAAAAAAAAAAAAAAA/////5aG+/8WAPX/HwD2/x8A9v8WAPX/alT5//////8AAAAAAAAAAAAA
933 | AAAAAAAA/f39/2ZmZv8AAAD/AAAA/wAAAP+ZmZn/fX19/wAAAP8AAAD/AAAA/319ff//////AAAAAAAA
934 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7er+/0Ai9/8lBPb/LAv2/ygG9v82F/f/4t7+////
935 | //8AAAAAAAAAAAAAAAD/////2tra/wwMDP8AAAD/AAAA/zMzM/8mJib/AAAA/wAAAP8dHR3/6+vr////
936 | //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////lob7/x8A9v8sC/b/LAv2/x8A
937 | 9v+Bbfr//////wAAAAAAAAAAAAAAAAAAAAD/////ZmZm/wICAv8AAAD/AAAA/wAAAP8AAAD/AAAA/5mZ
938 | mf/9/f3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO3q/v/19P//AAAAAAAAAADt6v7/QCL3/yUE
939 | 9v8sC/b/KAb2/zYX9//i3v7///7//wAAAAAAAAAAAAAAAP/////a2tr/DAwM/wAAAP8AAAD/AAAA/wAA
940 | AP8mJib/9PT0//////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD19P//0cr9//39//8AAAAAAAAAAP/+
941 | //+vo/v/HwD2/ywL9v8sC/b/HwD2/2Zm////////AAAAAAAAAAAAAAAAAAAAAP39/f99fX3/AAAA/wAA
942 | AP8AAAD/AAAA/5mZmf//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////8W8/f/i3v7//////wAA
943 | AAAAAAAAAAAAAP39//9qVPn/HwD2/ywL9v8sC/b/JQT2/6+j+///////AAAAAAAAAAAAAAAA/////+Tk
944 | 5P8VFRX/AAAA/wAAAP8zMzP/9PT0//////8AAAAAAAAAAAAAAAAAAAAAAAAAAP39///Ryv3/r6P7////
945 | //8AAAAAAAAAAAAAAAAAAAAA/////+Le/v82F/f/JQT2/ywL9v8lBPb/Nhf3/+Le/v//////AAAAAAAA
946 | AAAAAAAA/////319ff8AAAD/AAAA/6ioqP/9/f3/AAAAAAAAAAAAAAAAAAAAAAAAAAD/////9fT//5aG
947 | +//t6v7///7//wAAAAAAAAAAAAAAAAAAAAAAAAAA//7//8W8/f8lBPb/JQT2/ywL9v8fAPb/SzL3/+3q
948 | /v//////AAAAAAAAAAD/////6+vr/xUVFf8zMzP/+vr6//////8AAAAAAAAAAAAAAAAAAAAA//////r5
949 | //+Bbfr/xbz9//////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f3//6+j+/8fAPb/KAb2/ywL
950 | 9v8fAPb/SzL3/+3q/v//////AAAAAAAAAAD/////fX19/6ioqP//////AAAAAAAAAAAAAAAAAAAAAP//
951 | ///6+f//gW36/5mZ////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////5mZ
952 | //8lBPb/JQT2/ywL9v8fAPb/SzL3/8W8/f/////////////////9/f3//f39//////8AAAAAAAAAAP/+
953 | ///8+///4t7+/2pU+f+Whvv//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
954 | AAAAAAAA/////6+j+/82F/f/HwD2/ygG9v8lBPb/KAb2/4Ft+v/i3v7////////////////////////+
955 | ///8+///+vn//6+j+/9LMvf/mZn///////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
956 | AAAAAAAAAAAAAAAAAAAAAAAA/////9HK/f9qVPn/HwD2/x8A9v8oBvb/HwD2/zYX9/9qVPn/r6P7/8W8
957 | /f/FvP3/xbz9/5aG+/9LMvf/SzL3/8W8/f//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
958 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////+vo/v/ZjP//ygG9v8fAPb/FgD1/xYA
959 | 9f8WAPX/FgD1/x8A9v8fAPb/SzL3/5mZ///6+f///////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
960 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////v//0cr9/5aG
961 | +/+Bbfr/alT5/2pU+f+Bbfr/lob7/8W8/f///v///////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
962 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
963 | AAD//////////////////////////////////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
964 | AAAAAAAAAAAAAAAAAAAAAAAA//////Af/4DwD/8A+A//AfgH/gH8B/4D/AP8A/4AAAf+AAAH/wAAD/8A
965 | AA//gAAf/4DwH//AYD//wGA/AeAAfwDgAH8A8AD/gHAA/4B4AfzAOAH4wDwD8OAcA+HgDgfB8AYHg/gD
966 | Dwf8AAwP/gAAH/8AAD//gAB//+AB///4B/8=
967 |
968 |
969 |
--------------------------------------------------------------------------------