Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/Form1.Designer.cs
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/Form1.Designer.cs	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/Form1.Designer.cs	(revision 31334)
@@ -0,0 +1,403 @@
+﻿namespace PicasaFindMyPhotos
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.SetContactPathBtn = new System.Windows.Forms.Button();
+            this.SetPhotoPathBtn = new System.Windows.Forms.Button();
+            this.SetOutputPathBtn = new System.Windows.Forms.Button();
+            this.ExecuteBtn = new System.Windows.Forms.Button();
+            this.StatusTextBox = new System.Windows.Forms.TextBox();
+            this.GenerateHTMLCheckBox = new System.Windows.Forms.CheckBox();
+            this.BaseURLTextBox = new System.Windows.Forms.TextBox();
+            this.label1 = new System.Windows.Forms.Label();
+            this.label2 = new System.Windows.Forms.Label();
+            this.SetTagsInPiwigoCheckBox = new System.Windows.Forms.CheckBox();
+            this.ServerNameTextBox = new System.Windows.Forms.TextBox();
+            this.label3 = new System.Windows.Forms.Label();
+            this.label4 = new System.Windows.Forms.Label();
+            this.PiwigoDatabaseTextBox = new System.Windows.Forms.TextBox();
+            this.label5 = new System.Windows.Forms.Label();
+            this.PiwigoDBUserNameTextBox = new System.Windows.Forms.TextBox();
+            this.label6 = new System.Windows.Forms.Label();
+            this.PiwigoDBPwdTextBox = new System.Windows.Forms.TextBox();
+            this.ClearPiwigoTagsCheckbox = new System.Windows.Forms.CheckBox();
+            this.groupBox1 = new System.Windows.Forms.GroupBox();
+            this.label7 = new System.Windows.Forms.Label();
+            this.PwigoDBPrefixTextBox = new System.Windows.Forms.TextBox();
+            this.label8 = new System.Windows.Forms.Label();
+            this.PicasaContactsFileTextBox = new System.Windows.Forms.TextBox();
+            this.label9 = new System.Windows.Forms.Label();
+            this.PicasaRootPhotoPathTextBox = new System.Windows.Forms.TextBox();
+            this.label10 = new System.Windows.Forms.Label();
+            this.PicasaOutputPathTextBox = new System.Windows.Forms.TextBox();
+            this.groupBox1.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // SetContactPathBtn
+            // 
+            this.SetContactPathBtn.Location = new System.Drawing.Point(302, 34);
+            this.SetContactPathBtn.Name = "SetContactPathBtn";
+            this.SetContactPathBtn.Size = new System.Drawing.Size(42, 20);
+            this.SetContactPathBtn.TabIndex = 0;
+            this.SetContactPathBtn.Text = "Set";
+            this.SetContactPathBtn.UseVisualStyleBackColor = true;
+            this.SetContactPathBtn.Click += new System.EventHandler(this.SetContactPathBtn_Click);
+            // 
+            // SetPhotoPathBtn
+            // 
+            this.SetPhotoPathBtn.Location = new System.Drawing.Point(302, 90);
+            this.SetPhotoPathBtn.Name = "SetPhotoPathBtn";
+            this.SetPhotoPathBtn.Size = new System.Drawing.Size(40, 20);
+            this.SetPhotoPathBtn.TabIndex = 1;
+            this.SetPhotoPathBtn.Text = "Set";
+            this.SetPhotoPathBtn.UseVisualStyleBackColor = true;
+            this.SetPhotoPathBtn.Click += new System.EventHandler(this.SetPhotoPathBtn_Click);
+            // 
+            // SetOutputPathBtn
+            // 
+            this.SetOutputPathBtn.Location = new System.Drawing.Point(302, 144);
+            this.SetOutputPathBtn.Name = "SetOutputPathBtn";
+            this.SetOutputPathBtn.Size = new System.Drawing.Size(40, 20);
+            this.SetOutputPathBtn.TabIndex = 2;
+            this.SetOutputPathBtn.Text = "Set";
+            this.SetOutputPathBtn.UseVisualStyleBackColor = true;
+            this.SetOutputPathBtn.Click += new System.EventHandler(this.SetOutputPathBtn_Click);
+            // 
+            // ExecuteBtn
+            // 
+            this.ExecuteBtn.Enabled = false;
+            this.ExecuteBtn.Location = new System.Drawing.Point(15, 252);
+            this.ExecuteBtn.Name = "ExecuteBtn";
+            this.ExecuteBtn.Size = new System.Drawing.Size(142, 44);
+            this.ExecuteBtn.TabIndex = 3;
+            this.ExecuteBtn.Text = "Execute";
+            this.ExecuteBtn.UseVisualStyleBackColor = true;
+            this.ExecuteBtn.Click += new System.EventHandler(this.ExecuteBtn_Click);
+            // 
+            // StatusTextBox
+            // 
+            this.StatusTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.StatusTextBox.Location = new System.Drawing.Point(15, 322);
+            this.StatusTextBox.Multiline = true;
+            this.StatusTextBox.Name = "StatusTextBox";
+            this.StatusTextBox.ReadOnly = true;
+            this.StatusTextBox.Size = new System.Drawing.Size(663, 108);
+            this.StatusTextBox.TabIndex = 18;
+            // 
+            // GenerateHTMLCheckBox
+            // 
+            this.GenerateHTMLCheckBox.AutoSize = true;
+            this.GenerateHTMLCheckBox.Location = new System.Drawing.Point(15, 173);
+            this.GenerateHTMLCheckBox.Name = "GenerateHTMLCheckBox";
+            this.GenerateHTMLCheckBox.Size = new System.Drawing.Size(127, 17);
+            this.GenerateHTMLCheckBox.TabIndex = 4;
+            this.GenerateHTMLCheckBox.Text = "Generate HTML Files";
+            this.GenerateHTMLCheckBox.UseVisualStyleBackColor = true;
+            this.GenerateHTMLCheckBox.CheckedChanged += new System.EventHandler(this.GenerateHTMLCheckBox_CheckedChanged);
+            // 
+            // BaseURLTextBox
+            // 
+            this.BaseURLTextBox.Enabled = false;
+            this.BaseURLTextBox.Location = new System.Drawing.Point(15, 213);
+            this.BaseURLTextBox.Name = "BaseURLTextBox";
+            this.BaseURLTextBox.Size = new System.Drawing.Size(281, 20);
+            this.BaseURLTextBox.TabIndex = 6;
+            this.BaseURLTextBox.TextChanged += new System.EventHandler(this.BaseURLTextBox_TextChanged);
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Location = new System.Drawing.Point(12, 197);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(56, 13);
+            this.label1.TabIndex = 5;
+            this.label1.Text = "Base URL";
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Location = new System.Drawing.Point(15, 306);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(40, 13);
+            this.label2.TabIndex = 17;
+            this.label2.Text = "Status:";
+            // 
+            // SetTagsInPiwigoCheckBox
+            // 
+            this.SetTagsInPiwigoCheckBox.AutoSize = true;
+            this.SetTagsInPiwigoCheckBox.Location = new System.Drawing.Point(372, 11);
+            this.SetTagsInPiwigoCheckBox.Name = "SetTagsInPiwigoCheckBox";
+            this.SetTagsInPiwigoCheckBox.Size = new System.Drawing.Size(115, 17);
+            this.SetTagsInPiwigoCheckBox.TabIndex = 7;
+            this.SetTagsInPiwigoCheckBox.Text = "Set Tags In Piwigo";
+            this.SetTagsInPiwigoCheckBox.UseVisualStyleBackColor = true;
+            this.SetTagsInPiwigoCheckBox.CheckedChanged += new System.EventHandler(this.SetTagsInPiwigoCheckBox_CheckedChanged);
+            // 
+            // ServerNameTextBox
+            // 
+            this.ServerNameTextBox.Enabled = false;
+            this.ServerNameTextBox.Location = new System.Drawing.Point(379, 53);
+            this.ServerNameTextBox.Name = "ServerNameTextBox";
+            this.ServerNameTextBox.Size = new System.Drawing.Size(281, 20);
+            this.ServerNameTextBox.TabIndex = 10;
+            this.ServerNameTextBox.TextChanged += new System.EventHandler(this.ServerNameTextBox_TextChanged);
+            // 
+            // label3
+            // 
+            this.label3.AutoSize = true;
+            this.label3.Location = new System.Drawing.Point(376, 37);
+            this.label3.Name = "label3";
+            this.label3.Size = new System.Drawing.Size(69, 13);
+            this.label3.TabIndex = 9;
+            this.label3.Text = "Server Name";
+            // 
+            // label4
+            // 
+            this.label4.AutoSize = true;
+            this.label4.Location = new System.Drawing.Point(376, 83);
+            this.label4.Name = "label4";
+            this.label4.Size = new System.Drawing.Size(53, 13);
+            this.label4.TabIndex = 11;
+            this.label4.Text = "Database";
+            // 
+            // PiwigoDatabaseTextBox
+            // 
+            this.PiwigoDatabaseTextBox.Enabled = false;
+            this.PiwigoDatabaseTextBox.Location = new System.Drawing.Point(379, 99);
+            this.PiwigoDatabaseTextBox.Name = "PiwigoDatabaseTextBox";
+            this.PiwigoDatabaseTextBox.Size = new System.Drawing.Size(281, 20);
+            this.PiwigoDatabaseTextBox.TabIndex = 12;
+            this.PiwigoDatabaseTextBox.TextChanged += new System.EventHandler(this.PiwigoDatabaseTextBox_TextChanged);
+            // 
+            // label5
+            // 
+            this.label5.AutoSize = true;
+            this.label5.Location = new System.Drawing.Point(376, 131);
+            this.label5.Name = "label5";
+            this.label5.Size = new System.Drawing.Size(109, 13);
+            this.label5.TabIndex = 13;
+            this.label5.Text = "Database User Name";
+            // 
+            // PiwigoDBUserNameTextBox
+            // 
+            this.PiwigoDBUserNameTextBox.Enabled = false;
+            this.PiwigoDBUserNameTextBox.Location = new System.Drawing.Point(379, 147);
+            this.PiwigoDBUserNameTextBox.Name = "PiwigoDBUserNameTextBox";
+            this.PiwigoDBUserNameTextBox.Size = new System.Drawing.Size(281, 20);
+            this.PiwigoDBUserNameTextBox.TabIndex = 14;
+            this.PiwigoDBUserNameTextBox.TextChanged += new System.EventHandler(this.PiwigoDBUserNameTextBox_TextChanged);
+            // 
+            // label6
+            // 
+            this.label6.AutoSize = true;
+            this.label6.Location = new System.Drawing.Point(376, 178);
+            this.label6.Name = "label6";
+            this.label6.Size = new System.Drawing.Size(102, 13);
+            this.label6.TabIndex = 15;
+            this.label6.Text = "Database Password";
+            // 
+            // PiwigoDBPwdTextBox
+            // 
+            this.PiwigoDBPwdTextBox.Enabled = false;
+            this.PiwigoDBPwdTextBox.Location = new System.Drawing.Point(379, 194);
+            this.PiwigoDBPwdTextBox.Name = "PiwigoDBPwdTextBox";
+            this.PiwigoDBPwdTextBox.PasswordChar = '*';
+            this.PiwigoDBPwdTextBox.Size = new System.Drawing.Size(281, 20);
+            this.PiwigoDBPwdTextBox.TabIndex = 16;
+            this.PiwigoDBPwdTextBox.TextChanged += new System.EventHandler(this.PiwigoDBPwdTextBox_TextChanged);
+            // 
+            // ClearPiwigoTagsCheckbox
+            // 
+            this.ClearPiwigoTagsCheckbox.AutoSize = true;
+            this.ClearPiwigoTagsCheckbox.Enabled = false;
+            this.ClearPiwigoTagsCheckbox.Location = new System.Drawing.Point(11, 245);
+            this.ClearPiwigoTagsCheckbox.Name = "ClearPiwigoTagsCheckbox";
+            this.ClearPiwigoTagsCheckbox.Size = new System.Drawing.Size(189, 17);
+            this.ClearPiwigoTagsCheckbox.TabIndex = 1;
+            this.ClearPiwigoTagsCheckbox.Text = "Clear Existing Face Tags In Piwigo";
+            this.ClearPiwigoTagsCheckbox.UseVisualStyleBackColor = true;
+            this.ClearPiwigoTagsCheckbox.CheckedChanged += new System.EventHandler(this.ClearPiwigoTagsCheckbox_CheckedChanged);
+            // 
+            // groupBox1
+            // 
+            this.groupBox1.Controls.Add(this.label7);
+            this.groupBox1.Controls.Add(this.ClearPiwigoTagsCheckbox);
+            this.groupBox1.Controls.Add(this.PwigoDBPrefixTextBox);
+            this.groupBox1.Location = new System.Drawing.Point(368, 27);
+            this.groupBox1.Name = "groupBox1";
+            this.groupBox1.Size = new System.Drawing.Size(310, 270);
+            this.groupBox1.TabIndex = 8;
+            this.groupBox1.TabStop = false;
+            // 
+            // label7
+            // 
+            this.label7.AutoSize = true;
+            this.label7.Location = new System.Drawing.Point(8, 194);
+            this.label7.Name = "label7";
+            this.label7.Size = new System.Drawing.Size(112, 13);
+            this.label7.TabIndex = 0;
+            this.label7.Text = "Database Table Prefix";
+            // 
+            // PwigoDBPrefixTextBox
+            // 
+            this.PwigoDBPrefixTextBox.Enabled = false;
+            this.PwigoDBPrefixTextBox.Location = new System.Drawing.Point(11, 210);
+            this.PwigoDBPrefixTextBox.Name = "PwigoDBPrefixTextBox";
+            this.PwigoDBPrefixTextBox.Size = new System.Drawing.Size(281, 20);
+            this.PwigoDBPrefixTextBox.TabIndex = 2;
+            this.PwigoDBPrefixTextBox.TextChanged += new System.EventHandler(this.PwigoDBPrefixTextBox_TextChanged);
+            // 
+            // label8
+            // 
+            this.label8.AutoSize = true;
+            this.label8.Location = new System.Drawing.Point(12, 18);
+            this.label8.Name = "label8";
+            this.label8.Size = new System.Drawing.Size(103, 13);
+            this.label8.TabIndex = 19;
+            this.label8.Text = "Picasa Contacts File";
+            // 
+            // PicasaContactsFileTextBox
+            // 
+            this.PicasaContactsFileTextBox.Enabled = false;
+            this.PicasaContactsFileTextBox.Location = new System.Drawing.Point(15, 34);
+            this.PicasaContactsFileTextBox.Name = "PicasaContactsFileTextBox";
+            this.PicasaContactsFileTextBox.ReadOnly = true;
+            this.PicasaContactsFileTextBox.Size = new System.Drawing.Size(281, 20);
+            this.PicasaContactsFileTextBox.TabIndex = 20;
+            // 
+            // label9
+            // 
+            this.label9.AutoSize = true;
+            this.label9.Location = new System.Drawing.Point(12, 74);
+            this.label9.Name = "label9";
+            this.label9.Size = new System.Drawing.Size(86, 13);
+            this.label9.TabIndex = 22;
+            this.label9.Text = "Root Photo Path";
+            // 
+            // PicasaRootPhotoPathTextBox
+            // 
+            this.PicasaRootPhotoPathTextBox.Enabled = false;
+            this.PicasaRootPhotoPathTextBox.Location = new System.Drawing.Point(15, 90);
+            this.PicasaRootPhotoPathTextBox.Name = "PicasaRootPhotoPathTextBox";
+            this.PicasaRootPhotoPathTextBox.ReadOnly = true;
+            this.PicasaRootPhotoPathTextBox.Size = new System.Drawing.Size(281, 20);
+            this.PicasaRootPhotoPathTextBox.TabIndex = 23;
+            // 
+            // label10
+            // 
+            this.label10.AutoSize = true;
+            this.label10.Location = new System.Drawing.Point(12, 128);
+            this.label10.Name = "label10";
+            this.label10.Size = new System.Drawing.Size(64, 13);
+            this.label10.TabIndex = 24;
+            this.label10.Text = "Output Path";
+            // 
+            // PicasaOutputPathTextBox
+            // 
+            this.PicasaOutputPathTextBox.Enabled = false;
+            this.PicasaOutputPathTextBox.Location = new System.Drawing.Point(15, 144);
+            this.PicasaOutputPathTextBox.Name = "PicasaOutputPathTextBox";
+            this.PicasaOutputPathTextBox.ReadOnly = true;
+            this.PicasaOutputPathTextBox.Size = new System.Drawing.Size(281, 20);
+            this.PicasaOutputPathTextBox.TabIndex = 25;
+            // 
+            // Form1
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(703, 450);
+            this.Controls.Add(this.label10);
+            this.Controls.Add(this.PicasaOutputPathTextBox);
+            this.Controls.Add(this.label9);
+            this.Controls.Add(this.PicasaRootPhotoPathTextBox);
+            this.Controls.Add(this.label8);
+            this.Controls.Add(this.PicasaContactsFileTextBox);
+            this.Controls.Add(this.label6);
+            this.Controls.Add(this.PiwigoDBPwdTextBox);
+            this.Controls.Add(this.label5);
+            this.Controls.Add(this.PiwigoDBUserNameTextBox);
+            this.Controls.Add(this.label4);
+            this.Controls.Add(this.PiwigoDatabaseTextBox);
+            this.Controls.Add(this.label3);
+            this.Controls.Add(this.ServerNameTextBox);
+            this.Controls.Add(this.SetTagsInPiwigoCheckBox);
+            this.Controls.Add(this.label2);
+            this.Controls.Add(this.label1);
+            this.Controls.Add(this.BaseURLTextBox);
+            this.Controls.Add(this.GenerateHTMLCheckBox);
+            this.Controls.Add(this.StatusTextBox);
+            this.Controls.Add(this.ExecuteBtn);
+            this.Controls.Add(this.SetOutputPathBtn);
+            this.Controls.Add(this.SetPhotoPathBtn);
+            this.Controls.Add(this.SetContactPathBtn);
+            this.Controls.Add(this.groupBox1);
+            this.Name = "Form1";
+            this.Text = "Picasa Face Tag Extraction - V1.0 - KenL";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Form1_FormClosed);
+            this.groupBox1.ResumeLayout(false);
+            this.groupBox1.PerformLayout();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Button SetContactPathBtn;
+        private System.Windows.Forms.Button SetPhotoPathBtn;
+        private System.Windows.Forms.Button SetOutputPathBtn;
+        private System.Windows.Forms.Button ExecuteBtn;
+        private System.Windows.Forms.TextBox StatusTextBox;
+        private System.Windows.Forms.CheckBox GenerateHTMLCheckBox;
+        private System.Windows.Forms.TextBox BaseURLTextBox;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.CheckBox SetTagsInPiwigoCheckBox;
+        private System.Windows.Forms.TextBox ServerNameTextBox;
+        private System.Windows.Forms.Label label3;
+        private System.Windows.Forms.Label label4;
+        private System.Windows.Forms.TextBox PiwigoDatabaseTextBox;
+        private System.Windows.Forms.Label label5;
+        private System.Windows.Forms.TextBox PiwigoDBUserNameTextBox;
+        private System.Windows.Forms.Label label6;
+        private System.Windows.Forms.TextBox PiwigoDBPwdTextBox;
+        private System.Windows.Forms.CheckBox ClearPiwigoTagsCheckbox;
+        private System.Windows.Forms.GroupBox groupBox1;
+        private System.Windows.Forms.Label label7;
+        private System.Windows.Forms.TextBox PwigoDBPrefixTextBox;
+        private System.Windows.Forms.Label label8;
+        private System.Windows.Forms.TextBox PicasaContactsFileTextBox;
+        private System.Windows.Forms.Label label9;
+        private System.Windows.Forms.TextBox PicasaRootPhotoPathTextBox;
+        private System.Windows.Forms.Label label10;
+        private System.Windows.Forms.TextBox PicasaOutputPathTextBox;
+    }
+}
+
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/Form1.cs
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/Form1.cs	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/Form1.cs	(revision 31334)
@@ -0,0 +1,1171 @@
+﻿using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using System.Diagnostics;
+using System.Drawing.Imaging;
+using System.IO;
+using MySql.Data.MySqlClient;
+
+namespace PicasaFindMyPhotos
+{    
+    public partial class Form1 : Form
+    {
+
+        const int MAX_DUPLICATE_FILENAMES = 10000;
+        const int MAX_NUMBER_OF_CONTACTS = 512;
+
+
+        bool formhasbeenclosed;
+        public struct PersonIDStruct
+        {
+            public string name;
+            public int index;            
+        }
+        public struct UniqueIDStruct
+        {
+            public string unique_id;
+            public int index;
+        }
+
+        bool ContactPathSet, RootPathSet, OutputPathSet;
+        string ContactPathStr, RootPathStr, OutputPathStr;
+        public Form1()
+        {
+            InitializeComponent();
+            ContactPathSet = false;
+            RootPathSet = false;
+            OutputPathSet = false;  
+        }
+
+        private void SetContactPathBtn_Click(object sender, EventArgs e)
+        {
+            OpenFileDialog openFile1 = new OpenFileDialog();
+            openFile1.Filter = "XML Files|*.xml";
+            if (openFile1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
+            {
+                FormSettings.Default.PicasaContactsFileSetting = openFile1.FileName;
+                FormSettings.Default.Save();
+                ContactPathSet = true;
+                ContactPathStr = openFile1.FileName;
+                PicasaContactsFileTextBox.Text = ContactPathStr;
+                if (ContactPathSet && RootPathSet && OutputPathSet)
+                {                    
+                    ExecuteBtn.Enabled = true;
+                }
+            }
+        }
+
+        private void ExecuteBtn_Click(object sender, EventArgs e)
+        {
+            string filedata, unique_id, person_str, piwigo_album_name, piwigo_photo_name,
+                PiwigoDBVersion;
+            int k, l, i, person_count, unique_id_count, face_tag_id, piwigo_category_id,
+                piwigo_photo_filename_count, piwigo_unique_image_id, face_tags_moved, 
+                processing_loop_count, already_tagged_count;
+            int[] piwigo_image_id = new int[MAX_DUPLICATE_FILENAMES];
+            int[] piwigo_person_tag_count = new int[MAX_NUMBER_OF_CONTACTS];
+            PersonIDStruct[] contact_array = new PersonIDStruct[MAX_NUMBER_OF_CONTACTS];
+            UniqueIDStruct[] picasa_unique_id_arrary = new UniqueIDStruct[MAX_NUMBER_OF_CONTACTS];
+            bool[] found_contact_in_photo_array = new bool[MAX_NUMBER_OF_CONTACTS];
+            bool person_exists, already_tagged;
+            DBConnect PiwigoDBConn = new DBConnect();
+            DialogResult dlgresult;
+
+            formhasbeenclosed = false;
+            ExecuteBtn.Enabled = false;
+            StatusTextBox.Text = "";
+            this.Refresh();
+            this.StatusTextBox.Update();
+            Application.DoEvents();
+
+            //read contacts and create an output file for each
+            System.IO.StreamReader file = new System.IO.StreamReader(ContactPathStr);
+            System.IO.StreamWriter[] outfile = new System.IO.StreamWriter[MAX_NUMBER_OF_CONTACTS];
+
+            for (i = 0; i < MAX_NUMBER_OF_CONTACTS; i++)
+            {
+                piwigo_person_tag_count[i] = 0;
+            }
+            if (SetTagsInPiwigoCheckBox.Checked)
+            {
+                WriteStatusText("Checking Database Connection...");                
+                PiwigoDBConn.InitializeDBConnection(ServerNameTextBox.Text, 
+                    PiwigoDatabaseTextBox.Text, PiwigoDBUserNameTextBox.Text,
+                    PiwigoDBPwdTextBox.Text);
+                i = PiwigoDBConn.OpenDBConnection();
+                if (i == -1)
+                {
+                    WriteStatusText("Database connection ok.");                    
+                }
+                else
+                {
+                    WriteStatusText("Database connection failed.");
+                    switch (i)
+                    {
+                        case 0:
+                            WriteStatusText("Error - Cannot connect to server.");
+                        break;
+                        case 1045:
+                        WriteStatusText("Error - Invalid username/password");
+                        break;
+                        default:
+                        WriteStatusText("Error - unknown error - " + i.ToString());
+                        break;
+                    }
+                    ExecuteBtn.Enabled = true;
+                    return;
+                }
+
+                //validate database version
+                WriteStatusText("Validating Database Version...");
+                PiwigoDBVersion = GetPiwigoDBVersion(PiwigoDBConn, PwigoDBPrefixTextBox.Text);
+                PiwigoDBConn.CloseConnection();
+                if (PiwigoDBVersion != "2.4")
+                {
+                    dlgresult = MessageBox.Show("The Piwigo database vesrsion is " + PiwigoDBVersion +
+                        ".  This does not match the expected version (2.4).  This application was only tested with version 2.4.  Do you want to continue?",
+                        "DB Version Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
+                    if (dlgresult == DialogResult.No)
+                    {
+                        ExecuteBtn.Enabled = true;
+                        return;
+                    }
+                }
+                else
+                {
+                    WriteStatusText("Database version ok.");
+                }
+            }
+
+            person_count = 0;
+            unique_id_count =0;
+            while ((filedata = file.ReadLine()) != null)
+            {
+                //parse name and unique id
+                k = filedata.IndexOf("contact id=");
+                if (k != -1)
+                {                    
+                    unique_id = filedata.Substring(k + 12,  16);
+                    k = filedata.IndexOf("name=");
+                    l = filedata.IndexOf("\"",k+6);
+                    person_str = filedata.Substring(k + 6,  (l - k-6));
+                    Debug.WriteLine("Person: " + person_str + " ID: " + unique_id);
+                    //does this person already exist
+                    person_exists = false;
+                    for (i = 0; i < person_count; i++)
+                    {
+                        if (person_str == contact_array[i].name)
+                        {
+                            person_exists = true;
+                            break;
+                        }
+                    }
+
+                    if (!person_exists)
+                    {
+                        contact_array[person_count].name = person_str;
+                        contact_array[person_count].index = person_count;
+                        picasa_unique_id_arrary[unique_id_count].unique_id = unique_id;
+                        picasa_unique_id_arrary[unique_id_count].index = person_count;
+                        outfile[person_count] = new System.IO.StreamWriter(OutputPathStr + "\\" + person_str + ".txt");
+                        person_count++;
+                    }
+                    else
+                    {
+                        picasa_unique_id_arrary[unique_id_count].unique_id = unique_id;
+                        picasa_unique_id_arrary[unique_id_count].index = i;
+                    }                    
+                    unique_id_count++;
+                }
+                Debug.WriteLine("Number of contacts: " + person_count.ToString());
+            }
+
+            //start traversing directories
+            Stack<string> dirs = new Stack<string>(5000);
+
+            if (!System.IO.Directory.Exists(RootPathStr))
+            {
+                throw new ArgumentException();
+            }
+            dirs.Push(RootPathStr);
+
+            processing_loop_count = 0;
+            while (dirs.Count > 0)
+            {
+                string currentDir = dirs.Pop();
+                string[] subDirs;
+                string inidata, ini_unique_id, photo_file_name, photo_path_filename;                
+                bool[] first_mention_in_dir = new bool[MAX_NUMBER_OF_CONTACTS];
+                bool found_person, finished_faces;
+                int m;
+
+                subDirs = System.IO.Directory.GetDirectories(currentDir);
+                
+                WriteStatusText("Processing Directory:  " + currentDir);
+                this.StatusTextBox.Update();
+                Application.DoEvents();
+                if (formhasbeenclosed)
+                {
+                    return;
+                }
+                if (currentDir.IndexOf(".picasaoriginals") != -1)
+                {
+                    WriteStatusTextAppend(" (ignored)");
+                }
+                if (currentDir.IndexOf(".picasaoriginals") == -1)
+                {
+                    string[] files = null;
+                    files = System.IO.Directory.GetFiles(currentDir);
+                    foreach (string fileindir in files)
+                    {
+                        if (fileindir.IndexOf(".picasa.ini") != -1)
+                        {
+                            for (k = 0; k < person_count; k++)
+                            {
+                                first_mention_in_dir[k] = false;
+                            }
+                            System.IO.StreamReader inifile = new System.IO.StreamReader(fileindir);                
+                            k = 0;
+                            photo_file_name = "";
+                            while ((inidata = inifile.ReadLine()) != null)
+                            {
+                                processing_loop_count++;
+                                if (processing_loop_count >= 10)
+                                {
+                                    WriteStatusTextAppend(" .");
+                                    processing_loop_count = 0;
+                                }
+                                if (inidata.Length > 4)
+                                {
+                                    if (inidata.Substring(0, 1) == "[")
+                                    {
+                                        k = inidata.IndexOf("]");
+                                        if (k != -1)
+                                        {
+                                            photo_file_name = inidata.Substring(1, k - 1);
+                                        }
+                                        if (photo_file_name.IndexOf(".jpg", StringComparison.OrdinalIgnoreCase) != -1 ||
+                                            photo_file_name.IndexOf(".gif", StringComparison.OrdinalIgnoreCase) != -1 ||
+                                            photo_file_name.IndexOf(".png", StringComparison.OrdinalIgnoreCase) != -1 ||
+                                            photo_file_name.IndexOf(".tga", StringComparison.OrdinalIgnoreCase) != -1 ||
+                                            photo_file_name.IndexOf(".tif", StringComparison.OrdinalIgnoreCase) != -1 ||
+                                            photo_file_name.IndexOf(".tiff", StringComparison.OrdinalIgnoreCase) != -1 ||
+                                            photo_file_name.IndexOf(".psd", StringComparison.OrdinalIgnoreCase) != -1)
+                                        {
+                                            for (k = 0; k < person_count; k++)
+                                            {
+                                                found_contact_in_photo_array[k] = false;
+                                            }
+                                            k = fileindir.LastIndexOf("\\");
+                                            photo_path_filename = fileindir.Substring(0, k);
+                                            photo_path_filename += "\\" + photo_file_name;
+                                            Application.DoEvents();
+                                            if (formhasbeenclosed)
+                                            {
+                                                return;
+                                            }
+                                            SearchForNamesInExif(ref found_contact_in_photo_array, contact_array, photo_path_filename, person_count);
+                                            for (k = 0; k < person_count; k++)
+                                            {
+                                                if (found_contact_in_photo_array[k])
+                                                {
+                                                    if (photo_file_name.Length > 3)
+                                                    {
+                                                        if (!first_mention_in_dir[k])
+                                                        {
+                                                            m = currentDir.IndexOf(':');
+                                                            if (m != -1)
+                                                            {
+                                                                //regular path
+                                                                m = currentDir.IndexOf('\\');
+                                                                first_mention_in_dir[k] = true;
+                                                                if (m == -1)
+                                                                {
+                                                                    m = 0;
+                                                                }
+                                                                outfile[k].WriteLine(currentDir.Substring(m + 1));
+                                                            }
+                                                            else
+                                                            {
+                                                                //unc path
+                                                                m = currentDir.IndexOf('\\',2);
+                                                                first_mention_in_dir[k] = true;
+                                                                if (m == -1)
+                                                                {
+                                                                    m = 0;
+                                                                }
+                                                                outfile[k].WriteLine(currentDir.Substring(m + 1));
+                                                            }
+                                                        }
+                                                        outfile[k].WriteLine("\t" + photo_file_name);
+                                                    }
+                                                }
+                                            }
+                                        }
+                                    }
+                                    else if (inidata.Substring(0, 6) == "faces=")
+                                    {
+                                        finished_faces = false;
+                                        k = 0;
+                                        do
+                                        {
+                                            k = inidata.IndexOf("),", k);
+                                            if (k != -1)
+                                            {
+                                                l = inidata.IndexOf(";", k);
+                                                if (l == -1)
+                                                {
+                                                    l = inidata.Length;
+                                                }
+                                                if (l != -1)
+                                                {
+                                                    ini_unique_id = inidata.Substring(k + 2, l - k - 2);
+
+                                                    //found face in a picture, but who?
+                                                    l = 0;
+                                                    found_person = false;
+                                                    do
+                                                    {
+                                                        if (picasa_unique_id_arrary[l].unique_id == ini_unique_id)
+                                                        {
+                                                            //did we already find this person?
+                                                            if (found_contact_in_photo_array[l] == false)
+                                                            {
+                                                                found_person = true;
+                                                                break;
+                                                            }                                                            
+                                                        }
+                                                        l++;
+                                                    } while (l < unique_id_count);
+
+                                                    //found person
+                                                    if (found_person)
+                                                    {
+                                                        if (photo_file_name.Length > 3)
+                                                        {
+                                                            if (!first_mention_in_dir[picasa_unique_id_arrary[l].index])
+                                                            {
+                                                                m = currentDir.IndexOf("\\photo\\");
+                                                                first_mention_in_dir[picasa_unique_id_arrary[l].index] = true;
+                                                                outfile[picasa_unique_id_arrary[l].index].WriteLine(currentDir.Substring(m + 7));
+                                                            }
+                                                            outfile[picasa_unique_id_arrary[l].index].WriteLine("\t" + photo_file_name);
+                                                        }
+                                                    }
+                                                }
+                                                k++;
+                                            }
+                                            else
+                                            {
+                                                finished_faces = true;
+                                            }
+                                        } while (!finished_faces);
+                                    }
+                                }
+                            }
+                            inifile.Close();
+                        }
+                    }
+
+                }
+                // Push the subdirectories onto the stack for traversal. 
+                // This could also be done before handing the files. 
+                foreach (string str in subDirs)
+                    dirs.Push(str);
+            }
+
+            file.Close();
+            for (k = 0; k < person_count; k++)
+            {
+                outfile[k].Close();
+            }
+
+
+            //generate html
+            string html_filepath;
+            if (GenerateHTMLCheckBox.Checked)
+            {
+                string pathtoexe = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);
+                WriteStatusText("Generating html");
+                for (k = 0; k < person_count; k++)
+                {                    
+                    System.IO.StreamReader htmlinfile = new System.IO.StreamReader(OutputPathStr + "\\" + contact_array[k].name + ".txt");
+                    System.IO.StreamWriter htmloutfile = new System.IO.StreamWriter(OutputPathStr + "\\" + contact_array[k].name + ".html");
+                    System.IO.StreamReader htmlprotostart = new System.IO.StreamReader(pathtoexe + "\\" + "html_file_start.txt");
+                    System.IO.StreamReader htmlprotoend = new System.IO.StreamReader(pathtoexe + "\\" + "html_file_end.txt");
+                    
+                    //write start of html
+                    while ((filedata = htmlprotostart.ReadLine()) != null)
+                    {
+                        htmloutfile.WriteLine(filedata); 
+                    }
+                    htmlprotostart.Close();
+
+                    htmloutfile.WriteLine("<h3>Photos of:  " + contact_array[k].name + "</h3>");
+
+                    html_filepath = "";
+                    while ((filedata = htmlinfile.ReadLine()) != null)
+                    {
+                        if (filedata.Length != 0)
+                        {
+                            if (filedata.Substring(0,1) != "\t")
+                            {
+                                html_filepath = BaseURLTextBox.Text + filedata.Trim();
+                                html_filepath = html_filepath.Replace("\\", "/");
+                                htmloutfile.WriteLine("<br><b>" + filedata.Trim() + "</b><br>");
+                            }
+                            else
+                            {
+                                filedata = filedata.Substring(1);
+                                filedata.Trim();
+                                string htmlphotofile = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" +
+                                    "<a href=" + "\"" + html_filepath + "/" + filedata + "\"" + ">" + filedata + "</a><br>";
+                                htmlphotofile = htmlphotofile.Replace("\\", "/");
+                                htmloutfile.WriteLine(htmlphotofile);
+                            }
+                        }
+                    }
+
+                    //write end of html
+                    while ((filedata = htmlprotoend.ReadLine()) != null)
+                    {
+                        htmloutfile.WriteLine(filedata);
+                    }
+                    htmlprotoend.Close();
+                    htmloutfile.Close();
+                    htmlinfile.Close();
+                }
+            }
+
+            face_tags_moved = 0;
+            //update piwigo database
+            piwigo_photo_name = "";
+            piwigo_album_name = "";
+            already_tagged_count = 0;
+            if (SetTagsInPiwigoCheckBox.Checked)
+            {                
+                //clear out existing face tags
+                if (ClearPiwigoTagsCheckbox.Checked)
+                {
+                    WriteStatusText("Clearing existing face tags...");
+                    PiwigoDBConn.InitializeDBConnection(ServerNameTextBox.Text,
+                        PiwigoDatabaseTextBox.Text, PiwigoDBUserNameTextBox.Text,
+                        PiwigoDBPwdTextBox.Text);                    
+                    ClearPiwigoTags(person_count, contact_array,
+                        PiwigoDBConn, PwigoDBPrefixTextBox.Text);                    
+                }
+                //now add new tags
+                WriteStatusText("Adding face tags to Piwigo...");
+                if (PiwigoDBConn.OpenDBConnection() != -1)
+                {
+                    WriteStatusText("Error opening database.");
+                }
+                else
+                {                    
+                    for (k = 0; k < person_count; k++)
+                    {
+                        WriteStatusText("Processing " + contact_array[k].name + " ");
+                        this.Refresh();
+                        this.StatusTextBox.Update();
+                        Application.DoEvents();
+                        if (formhasbeenclosed)
+                        {
+                            return;
+                        }
+
+                        System.IO.StreamReader taginfile = new
+                            System.IO.StreamReader(OutputPathStr + "\\" +
+                            contact_array[k].name + ".txt");                        
+                        while ((filedata = taginfile.ReadLine()) != null)
+                        {
+                            this.Refresh();
+                            this.StatusTextBox.Update();
+                            Application.DoEvents();
+                            if (formhasbeenclosed)
+                            {
+                                return;
+                            }
+
+                            //is this an album or a file name
+                            if (filedata.Substring(0, 1) == "\t")
+                            {
+                                //it's a file
+                                piwigo_photo_name = filedata.Trim();
+                            }
+                            else
+                            {
+                                //it's an album
+                                //find last '\'
+                                piwigo_album_name = filedata.Trim();
+                                int index_last_slash = filedata.LastIndexOf('\\');
+                                if (index_last_slash != -1)
+                                {
+                                    piwigo_album_name = filedata.Substring(index_last_slash + 1);
+                                    piwigo_album_name = piwigo_album_name.Trim();
+                                }
+                                continue;
+                            }
+                            //add new tag to db
+                            face_tag_id = -1;
+                            //add a tag for the person
+                            SetPiwigoTag(contact_array[k].name, PiwigoDBConn,
+                                PwigoDBPrefixTextBox.Text, ref face_tag_id);
+                            if (face_tag_id == -1)
+                            {
+                                continue;
+                            }
+
+                            //face tag has been entered in tag list
+                            //now assign tags to photos
+
+                            //correlate the album to a particular category in piwigo
+                            piwigo_category_id = -1;
+                            GetPiwigoCategoryID(piwigo_album_name, PiwigoDBConn,
+                                PwigoDBPrefixTextBox.Text, ref piwigo_category_id);
+                            if (piwigo_category_id == -1)
+                            {
+                                continue;
+                            }
+
+                            //get the image id from the name of the photo.
+                            //it's possible that filenames can be re-used so 
+                            //look for possible matches
+                            for (i = 0; i < MAX_DUPLICATE_FILENAMES; i++)
+                            {
+                                piwigo_image_id[i] = -1;
+                            }
+                            piwigo_photo_filename_count = 0;
+                            GetPiwigoImageID(piwigo_photo_name, PiwigoDBConn,
+                                PwigoDBPrefixTextBox.Text, ref piwigo_image_id,
+                                ref piwigo_photo_filename_count);
+
+                            if (piwigo_photo_filename_count == 0)
+                            {
+                                continue;
+                            }
+
+                            //now there's potential photos but let's see if we can
+                            //track the photo id to the appropriate album id
+                            piwigo_unique_image_id = -1;
+                            GetPiwigoUniqueImageID(piwigo_image_id, piwigo_photo_filename_count,
+                                piwigo_category_id, PiwigoDBConn, PwigoDBPrefixTextBox.Text, ref piwigo_unique_image_id);
+
+                            if (piwigo_unique_image_id == -1)
+                            {
+                                continue;
+                            }
+
+                            //now we have photo id and album id and face tag id
+                            //we can finally add it to the database
+                            already_tagged = false;
+                            SetPiwigoPhotoTag(piwigo_unique_image_id, face_tag_id,
+                                PiwigoDBConn, PwigoDBPrefixTextBox.Text, ref already_tagged);
+                            face_tags_moved++;
+                            piwigo_person_tag_count[k]++;
+                            if ((face_tags_moved % 10) == 0)
+                            {
+                                WriteStatusTextAppend(" .");
+                            }
+                            if (already_tagged)
+                            {
+                                already_tagged_count++;
+                            }
+                        }
+                        taginfile.Close();
+                    }
+                    PiwigoDBConn.CloseConnection();
+                }
+            }
+            
+            if (SetTagsInPiwigoCheckBox.Checked)
+            {
+                WriteStatusText("Piwigo Face Tag Summary:");
+                for (i = 0; i < person_count; i++)
+                {
+                   WriteStatusText("     " + contact_array[i].name + " " + 
+                       piwigo_person_tag_count[i].ToString());                    
+                }
+                WriteStatusText("Number of face tags found that were already in Piwigo: " + 
+                    already_tagged_count.ToString());
+                WriteStatusText("Total number of face tags found:  " + face_tags_moved.ToString());
+            }
+            ExecuteBtn.Enabled = true;
+            WriteStatusText("Finished");         
+            this.Refresh();
+            this.StatusTextBox.Update();
+            Application.DoEvents();
+        }
+
+        public void WriteStatusText(string status_to_write)
+        {
+            StatusTextBox.Text = StatusTextBox.Text + Environment.NewLine + status_to_write; 
+            StatusTextBox.SelectionStart = StatusTextBox.Text.Length - status_to_write.Length - Environment.NewLine.Length;
+            StatusTextBox.ScrollToCaret();
+        }
+        public void WriteStatusTextAppend(string status_to_append)
+        {
+            StatusTextBox.Text = StatusTextBox.Text +  status_to_append;
+            StatusTextBox.SelectionStart = StatusTextBox.Text.Length - status_to_append.Length - Environment.NewLine.Length;
+            StatusTextBox.ScrollToCaret();
+        }
+
+        private void SetPhotoPathBtn_Click(object sender, EventArgs e)
+        {
+            FolderBrowserDialog openFile2 = new FolderBrowserDialog();           
+            if (openFile2.ShowDialog() == System.Windows.Forms.DialogResult.OK)
+            {
+                FormSettings.Default.PicasaPhotoPathSetting = openFile2.SelectedPath;
+                FormSettings.Default.Save();
+                PicasaRootPhotoPathTextBox.Text = openFile2.SelectedPath;
+                RootPathSet = true;
+                RootPathStr = openFile2.SelectedPath;
+                if (ContactPathSet && RootPathSet && OutputPathSet)
+                {
+                    ExecuteBtn.Enabled = true;
+                }
+            }
+        }
+
+        private void SetOutputPathBtn_Click(object sender, EventArgs e)
+        {
+            FolderBrowserDialog openFile3 = new FolderBrowserDialog();
+            if (openFile3.ShowDialog() == System.Windows.Forms.DialogResult.OK)
+            {
+                FormSettings.Default.OutputPathSetting = openFile3.SelectedPath;
+                FormSettings.Default.Save();
+                PicasaOutputPathTextBox.Text = openFile3.SelectedPath;
+                OutputPathSet = true;
+                OutputPathStr = openFile3.SelectedPath;
+                if (ContactPathSet && RootPathSet && OutputPathSet)
+                {
+                    ExecuteBtn.Enabled = true;
+                }
+            }
+
+        }
+        public void SearchForNamesInExif(ref bool[] found_contact_in_photo_array, PersonIDStruct[] contact_array, string filename, int person_count)
+        {
+            byte[] filedata = new byte[100*1024];
+            byte[] name_sig = new byte[] {0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 
+                0x70, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x6D, 0x77, 0x67, 0x2D, 0x72, 0x73, 0x3A, 
+                0x4E, 0x61, 0x6D, 0x65, 0x3D, 0x22 };
+            int temp1, temp2, k, i;
+            UInt16 signature, exif_length;
+            string name_from_photo, tempstr;
+            byte[] temp_array = new byte[1];
+
+            try
+            {
+                BinaryReader b = new BinaryReader(File.Open(filename, FileMode.Open));
+
+                signature = b.ReadUInt16();
+                if (signature != 0xD8FF)
+                {
+                    b.Close();
+                    return;
+                }
+                signature = b.ReadUInt16();
+                if (signature != 0xE1FF && signature != 0xE0FF)
+                {
+                    b.Close();
+                    return;
+                }
+                for (i = 0; i < 2; i++)
+                {
+                    //get length
+                    temp1 = b.ReadByte();
+                    temp2 = b.ReadByte();
+                    exif_length = (UInt16)((temp1 << 8) + temp2);
+                    filedata = b.ReadBytes(exif_length - 1);
+                    k = 0;
+                    do
+                    {
+                        k = SearchForNameXML(filedata, name_sig, k, exif_length);
+                        if (k != -1)
+                        {
+                            name_from_photo = "";
+                            do
+                            {
+                                //found a name
+                                temp_array[0] = filedata[k];
+                                tempstr = Encoding.Default.GetString(temp_array);
+                                if (tempstr != "\"")
+                                {
+                                    name_from_photo += tempstr;
+                                }
+                                else
+                                {
+                                    if (name_from_photo.Substring(0, 1) == "0")
+                                    {
+                                        name_from_photo = name_from_photo.Substring(1);
+                                    }
+                                    //have name, search for it in array
+                                    for (i = 0; i < person_count; i++)
+                                    {
+                                        if (name_from_photo == contact_array[i].name)
+                                        {
+                                            found_contact_in_photo_array[i] = true;
+                                            break;
+                                        }
+                                    }
+                                    break;
+                                }
+                                k++;
+                            } while (tempstr != "\"");
+                        }
+                        k++;
+                    } while (k != 0);
+                    Array.Clear(filedata, 0, exif_length - 1);
+                }
+
+
+                b.Close();
+            }
+            catch (IOException e)
+            {
+                e.ToString();
+                return;
+            }
+            catch (Exception e)
+            {
+                e.ToString();
+                return;
+            }
+        }
+        public int SearchForNameXML(byte[] filedata, byte[] name_sig, int k, int exif_length)
+        {
+
+            byte firstByte = name_sig[0];
+            int index = -1;
+            int n, match_count;
+
+            n = k;            
+            do
+            {
+                match_count = 0;
+                if ((index = Array.IndexOf(filedata, firstByte, n)) >= 0)
+                {
+                    for (int i = 0; i < name_sig.Length; i++)
+                    {
+                        if (index + i > exif_length - 2)
+                        {
+                            break;
+                        }
+                        if (name_sig[i] != filedata[index + i])
+                        {
+                            break;
+                        }
+                        else
+                        {
+                            match_count++;
+                        }
+                    }
+                    if (match_count == name_sig.Length)
+                    {
+                        //found a person
+                        return index + name_sig.Length;                        
+                    }
+                }
+                n = index + 1;
+            }  while (index != -1);
+            return index;
+        }
+
+        private void GenerateHTMLCheckBox_CheckedChanged(object sender, EventArgs e)
+        {
+            if (GenerateHTMLCheckBox.Checked)
+            {
+                BaseURLTextBox.Enabled = true;
+            }
+            else
+            {
+                BaseURLTextBox.Enabled = false;                
+            }
+            FormSettings.Default.GeneratHTMLSetting = GenerateHTMLCheckBox.Checked;
+            FormSettings.Default.Save();
+        }
+
+        private void SetTagsInPiwigoCheckBox_CheckedChanged(object sender, EventArgs e)
+        {
+            if (SetTagsInPiwigoCheckBox.Checked)
+            {
+                ServerNameTextBox.Enabled = true;
+                PiwigoDatabaseTextBox.Enabled = true;
+                PiwigoDBUserNameTextBox.Enabled = true;
+                PiwigoDBPwdTextBox.Enabled = true;
+                ClearPiwigoTagsCheckbox.Enabled = true;
+                PwigoDBPrefixTextBox.Enabled = true;
+            }
+            else
+            {
+                ServerNameTextBox.Enabled = false;
+                PiwigoDatabaseTextBox.Enabled = false;
+                PiwigoDBUserNameTextBox.Enabled = false;
+                PiwigoDBPwdTextBox.Enabled = false;
+                ClearPiwigoTagsCheckbox.Enabled = false;
+                PwigoDBPrefixTextBox.Enabled = false;
+            }
+            FormSettings.Default.SetPiwigoTagSetting = SetTagsInPiwigoCheckBox.Checked;
+            FormSettings.Default.Save();
+        }
+        public bool ClearPiwigoTags(int person_count, PersonIDStruct[] contact_array,
+            DBConnect PiwigoDBConn, string piwigo_table_prefix)
+        {
+            int i;
+            string del_query, sel_query, tag_id;
+
+            //connect to database
+            if (PiwigoDBConn.OpenDBConnection() != -1)
+            {
+                return false;
+            }
+
+            for (i = 0; i < person_count; i++)
+            {
+                //get tag id, for later removal from photos listed in db
+                sel_query = "SELECT * FROM " + piwigo_table_prefix + "_tags WHERE name='" + contact_array[i].name.Replace("'","''") + "'";
+                MySqlCommand cmd_sel = new MySqlCommand(sel_query, PiwigoDBConn.connection);
+                MySqlDataReader dataReader = cmd_sel.ExecuteReader();
+                while (dataReader.Read())
+                {
+                    tag_id = dataReader["id"] + "";
+                    dataReader.Close();
+                    //have tag id from list of tags
+                    //now, delete that tag from list of photos with tags
+                    del_query = "DELETE FROM " + piwigo_table_prefix + "_image_tag WHERE tag_id=" + tag_id.ToString() ;
+                    MySqlCommand deltagcmd = new MySqlCommand(del_query, PiwigoDBConn.connection);
+                    deltagcmd.ExecuteNonQuery();
+                    break;
+                }
+                if (!dataReader.IsClosed)
+                {
+                    dataReader.Close();
+                }
+
+                //finally, delete tag from list of tags
+                del_query = "DELETE FROM " + piwigo_table_prefix + "_tags WHERE name='" + contact_array[i].name.Replace("'", "''") + "'";
+                MySqlCommand cmd = new MySqlCommand(del_query, PiwigoDBConn.connection);
+                cmd.ExecuteNonQuery();
+            }
+
+            PiwigoDBConn.CloseConnection();
+            return true;
+        }
+
+        public void SetPiwigoTag(string tag_string, DBConnect PiwigoDBConn, 
+            string piwigo_table_prefix, ref int face_tag_id)
+        {
+            string sel_query, tag_id_string, ins_query;
+
+            //see if face tag already exists
+            tag_id_string = "";
+            ins_query = "";
+            sel_query = "SELECT * FROM " + piwigo_table_prefix + "_tags WHERE name='" + tag_string.Replace("'", "''") + "'";
+            MySqlCommand cmd_sel = new MySqlCommand(sel_query, PiwigoDBConn.connection);
+            MySqlDataReader dataReader = cmd_sel.ExecuteReader();
+            while (dataReader.Read())
+            {
+                tag_id_string = dataReader["id"] + "";
+            }
+            dataReader.Close();
+            if (tag_id_string.Length != 0)
+            {
+                face_tag_id = Convert.ToInt32(tag_id_string);
+            }            
+            else
+            {
+                //face tag does not exist, so add it
+                ins_query = "INSERT INTO " + piwigo_table_prefix +
+                    "_tags (name, url_name) VALUES('" + tag_string.Replace("'", "''") + "', '" +
+                    tag_string.Replace("'", "''") + "')";
+                MySqlCommand ins_cmd = new MySqlCommand(ins_query, PiwigoDBConn.connection);
+                ins_cmd.ExecuteNonQuery();
+
+                //now get the face tag id back
+                sel_query = "SELECT * FROM " + piwigo_table_prefix + "_tags WHERE name='" + tag_string.Replace("'", "''") + "'";
+                cmd_sel = new MySqlCommand(sel_query, PiwigoDBConn.connection);
+                dataReader = cmd_sel.ExecuteReader();
+                while (dataReader.Read())
+                {
+                    tag_id_string = dataReader["id"] + "";
+                }
+                dataReader.Close();
+                if (tag_id_string.Length != 0)
+                {
+                    face_tag_id = Convert.ToInt32(tag_id_string);
+                }
+                else
+                {
+                    face_tag_id = -1;
+                }
+            }
+        }
+
+        public void GetPiwigoCategoryID(string piwigo_album_name, DBConnect PiwigoDBConn,
+            string piwigo_table_prefix, ref int piwigo_category_id)
+        {
+            string category_id_string, sel_query;
+
+            category_id_string = "";
+            sel_query = "SELECT * FROM " + piwigo_table_prefix + "_categories WHERE name='" + piwigo_album_name.Replace("'", "''") + "'";
+            MySqlCommand cmd_sel = new MySqlCommand(sel_query, PiwigoDBConn.connection);
+            MySqlDataReader dataReader = cmd_sel.ExecuteReader();
+            while (dataReader.Read())
+            {
+                category_id_string = dataReader["id"] + "";
+            }
+            dataReader.Close();
+            if (category_id_string.Length != 0)
+            {
+                piwigo_category_id = Convert.ToInt32(category_id_string);
+            }
+            else
+            {
+                piwigo_category_id = -1;
+            }                            
+        }
+
+        public void GetPiwigoImageID(string photo_name, DBConnect PiwigoDBConn,
+            string piwigo_table_prefix, ref int[] piwigo_image_id, ref int photo_count)
+        {
+            string sel_query, photo_id_string;            
+
+            photo_id_string = "";
+            photo_count = 0;
+            sel_query = "SELECT * FROM " + piwigo_table_prefix + "_images WHERE file='" + photo_name.Replace("'", "''") + "'";
+            MySqlCommand cmd_sel = new MySqlCommand(sel_query, PiwigoDBConn.connection);
+            MySqlDataReader dataReader = cmd_sel.ExecuteReader();
+            while (dataReader.Read())
+            {
+                photo_id_string = dataReader["id"] + "";
+                piwigo_image_id[photo_count] = Convert.ToInt32(photo_id_string);
+                photo_count++;
+                if (photo_count >= MAX_DUPLICATE_FILENAMES)
+                {
+                    break;
+                }
+            }
+            dataReader.Close();
+        }
+        public string GetPiwigoDBVersion(DBConnect PiwigoDBConn, string piwigo_table_prefix)
+        {
+            string dbversion, sel_query;
+            
+            dbversion = "";
+            sel_query = "SELECT value FROM " + piwigo_table_prefix + "_config WHERE param = 'piwigo_db_version'";
+            MySqlCommand cmd_sel = new MySqlCommand(sel_query, PiwigoDBConn.connection);
+            MySqlDataReader dataReader = cmd_sel.ExecuteReader();
+            dataReader.Read();
+            dbversion = dataReader["value"] + "";
+            dataReader.Close();
+            return dbversion;
+        }
+
+        public void GetPiwigoUniqueImageID(int[] piwigo_image_id, int piwigo_photo_filename_count,
+            int piwigo_category_id, DBConnect PiwigoDBConn, string piwigo_table_prefix, ref int piwigo_unique_image_id)
+        {
+            int i;
+            string sel_query;
+
+            piwigo_unique_image_id = -1;
+            for (i = 0; i < MAX_DUPLICATE_FILENAMES; i++)
+            {
+                if (piwigo_image_id[i] == -1)
+                {
+                    break;
+                }
+                sel_query = "SELECT * FROM " + piwigo_table_prefix + "_image_category WHERE category_id=" + piwigo_category_id +
+                    " AND image_id=" + piwigo_image_id[i];
+                MySqlCommand cmd_sel = new MySqlCommand(sel_query, PiwigoDBConn.connection);
+                MySqlDataReader dataReader = cmd_sel.ExecuteReader();
+                while (dataReader.Read())
+                {
+                    piwigo_unique_image_id = piwigo_image_id[i];
+                    break;
+                }
+                if (piwigo_unique_image_id != -1)
+                {
+                    dataReader.Close();
+                    break;
+                }
+                dataReader.Close();
+            }            
+        }
+        public void SetPiwigoPhotoTag(int piwigo_unique_image_id, int face_tag_id,
+            DBConnect PiwigoDBConn, string piwigo_table_prefix, ref bool already_tagged)
+        {
+            string sel_query, ins_query;
+
+            already_tagged = false;
+
+            //let's see if the tag is already in the database
+            sel_query = "SELECT * FROM " + piwigo_table_prefix + "_image_tag WHERE image_id=" + piwigo_unique_image_id +
+                " AND tag_id=" + face_tag_id;
+            MySqlCommand cmd_sel = new MySqlCommand(sel_query, PiwigoDBConn.connection);
+            MySqlDataReader dataReader = cmd_sel.ExecuteReader();
+            while (dataReader.Read())
+            {
+                already_tagged = true;
+                dataReader.Close();
+                return;
+            }
+            dataReader.Close();
+
+            //add tag to photo
+            ins_query = "INSERT INTO " + piwigo_table_prefix +
+                "_image_tag (image_id, tag_id) VALUES(" + piwigo_unique_image_id + ", " +
+                face_tag_id + ")";
+            MySqlCommand ins_cmd = new MySqlCommand(ins_query, PiwigoDBConn.connection);
+            ins_cmd.ExecuteNonQuery();
+        }
+
+        private void Form1_Load(object sender, EventArgs e)
+        {
+            BaseURLTextBox.Text = FormSettings.Default.BaseURLSetting;
+            GenerateHTMLCheckBox.Checked = FormSettings.Default.GeneratHTMLSetting;
+            SetTagsInPiwigoCheckBox.Checked = FormSettings.Default.SetPiwigoTagSetting;
+            ServerNameTextBox.Text = FormSettings.Default.ServerNameSetting;
+            PiwigoDatabaseTextBox.Text = FormSettings.Default.DBNameSetting;
+            PiwigoDBUserNameTextBox.Text = FormSettings.Default.DBUserNameSetting;
+            PiwigoDBPwdTextBox.Text = FormSettings.Default.DBPasswordSetting;
+            PwigoDBPrefixTextBox.Text = FormSettings.Default.DBTablePrefixSetting;
+            ClearPiwigoTagsCheckbox.Checked = FormSettings.Default.ClearFaceTagSetting;
+            PicasaContactsFileTextBox.Text = FormSettings.Default.PicasaContactsFileSetting;
+            PicasaOutputPathTextBox.Text = FormSettings.Default.OutputPathSetting;
+            PicasaRootPhotoPathTextBox.Text = FormSettings.Default.PicasaPhotoPathSetting;
+
+            if (PicasaContactsFileTextBox.Text.Length > 3)
+            {
+                ContactPathSet = true;
+            }
+
+            if (PicasaOutputPathTextBox.Text.Length > 3)
+            {
+                OutputPathSet = true;
+            }
+
+            if (PicasaRootPhotoPathTextBox.Text.Length > 3)
+            {
+                RootPathSet = true;
+            }
+            if (ContactPathSet && OutputPathSet && RootPathSet)
+            {
+                ExecuteBtn.Enabled = true;
+            }
+            ContactPathStr = PicasaContactsFileTextBox.Text;
+            OutputPathStr = PicasaOutputPathTextBox.Text;
+            RootPathStr = PicasaRootPhotoPathTextBox.Text;
+        }
+
+        private void BaseURLTextBox_TextChanged(object sender, EventArgs e)
+        {
+            FormSettings.Default.BaseURLSetting = BaseURLTextBox.Text;
+            FormSettings.Default.Save();
+        }
+
+        private void ServerNameTextBox_TextChanged(object sender, EventArgs e)
+        {
+            FormSettings.Default.ServerNameSetting = ServerNameTextBox.Text;
+            FormSettings.Default.Save();
+
+        }
+
+        private void PiwigoDatabaseTextBox_TextChanged(object sender, EventArgs e)
+        {
+            FormSettings.Default.DBNameSetting = PiwigoDatabaseTextBox.Text;
+            FormSettings.Default.Save();
+        }
+
+        private void PiwigoDBUserNameTextBox_TextChanged(object sender, EventArgs e)
+        {
+            FormSettings.Default.DBUserNameSetting = PiwigoDBUserNameTextBox.Text;
+            FormSettings.Default.Save();
+        }
+
+        private void PiwigoDBPwdTextBox_TextChanged(object sender, EventArgs e)
+        {
+            FormSettings.Default.DBPasswordSetting = PiwigoDBPwdTextBox.Text;
+            FormSettings.Default.Save();
+        }
+
+        private void PwigoDBPrefixTextBox_TextChanged(object sender, EventArgs e)
+        {
+            FormSettings.Default.DBTablePrefixSetting = PwigoDBPrefixTextBox.Text;
+            FormSettings.Default.Save();
+        }
+
+        private void ClearPiwigoTagsCheckbox_CheckedChanged(object sender, EventArgs e)
+        {
+            FormSettings.Default.ClearFaceTagSetting = ClearPiwigoTagsCheckbox.Checked;
+            FormSettings.Default.Save();
+        }
+
+        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
+        {
+            formhasbeenclosed = true;
+        }
+
+
+    }
+    public class DBConnect
+    {
+        public MySqlConnection connection;
+        private string server;
+        private string database;
+        private string uid;
+        private string password;
+
+        //Initialize values
+        public void InitializeDBConnection(string servername, string database_name,
+            string database_username, string database_password)
+        {
+            server = servername;
+            database = database_name;
+            uid = database_username;
+            password = database_password;
+            string connectionString;
+            connectionString = "SERVER=" + server + ";" + "DATABASE=" +
+            database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";port=3306;";
+
+            connection = new MySqlConnection(connectionString);
+        }
+
+        //open connection to database
+        public int OpenDBConnection()
+        {
+            try
+            {
+                connection.Open();
+                return -1;
+            }
+            catch (MySqlException ex)
+            {
+                //When handling errors, you can your application's response based 
+                //on the error number.
+                //The two most common error numbers when connecting are as follows:
+                //0: Cannot connect to server.
+                //1045: Invalid user name and/or password.
+                return ex.Number;
+            }
+        }
+
+        //Close connection
+        public int CloseConnection()
+        {
+            try
+            {
+                connection.Close();
+                return -1;
+            }
+            catch (MySqlException ex)
+            {
+                return ex.Number;
+            }
+        }
+    }
+}
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/Form1.resx
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/Form1.resx	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/Form1.resx	(revision 31334)
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/FormSettings.Designer.cs
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/FormSettings.Designer.cs	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/FormSettings.Designer.cs	(revision 31334)
@@ -0,0 +1,170 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:2.0.50727.3053
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace PicasaFindMyPhotos {
+    
+    
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")]
+    internal sealed partial class FormSettings : global::System.Configuration.ApplicationSettingsBase {
+        
+        private static FormSettings defaultInstance = ((FormSettings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new FormSettings())));
+        
+        public static FormSettings Default {
+            get {
+                return defaultInstance;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("")]
+        public string BaseURLSetting {
+            get {
+                return ((string)(this["BaseURLSetting"]));
+            }
+            set {
+                this["BaseURLSetting"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("")]
+        public string ServerNameSetting {
+            get {
+                return ((string)(this["ServerNameSetting"]));
+            }
+            set {
+                this["ServerNameSetting"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("")]
+        public string DBNameSetting {
+            get {
+                return ((string)(this["DBNameSetting"]));
+            }
+            set {
+                this["DBNameSetting"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("")]
+        public string DBUserNameSetting {
+            get {
+                return ((string)(this["DBUserNameSetting"]));
+            }
+            set {
+                this["DBUserNameSetting"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("")]
+        public string DBPasswordSetting {
+            get {
+                return ((string)(this["DBPasswordSetting"]));
+            }
+            set {
+                this["DBPasswordSetting"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("")]
+        public string DBTablePrefixSetting {
+            get {
+                return ((string)(this["DBTablePrefixSetting"]));
+            }
+            set {
+                this["DBTablePrefixSetting"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("False")]
+        public bool ClearFaceTagSetting {
+            get {
+                return ((bool)(this["ClearFaceTagSetting"]));
+            }
+            set {
+                this["ClearFaceTagSetting"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("False")]
+        public bool GeneratHTMLSetting {
+            get {
+                return ((bool)(this["GeneratHTMLSetting"]));
+            }
+            set {
+                this["GeneratHTMLSetting"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("False")]
+        public bool SetPiwigoTagSetting {
+            get {
+                return ((bool)(this["SetPiwigoTagSetting"]));
+            }
+            set {
+                this["SetPiwigoTagSetting"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("")]
+        public string PicasaContactsFileSetting {
+            get {
+                return ((string)(this["PicasaContactsFileSetting"]));
+            }
+            set {
+                this["PicasaContactsFileSetting"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("")]
+        public string PicasaPhotoPathSetting {
+            get {
+                return ((string)(this["PicasaPhotoPathSetting"]));
+            }
+            set {
+                this["PicasaPhotoPathSetting"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("")]
+        public string OutputPathSetting {
+            get {
+                return ((string)(this["OutputPathSetting"]));
+            }
+            set {
+                this["OutputPathSetting"] = value;
+            }
+        }
+    }
+}
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/FormSettings.cs
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/FormSettings.cs	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/FormSettings.cs	(revision 31334)
@@ -0,0 +1,28 @@
+﻿namespace PicasaFindMyPhotos {
+    
+    
+    // This class allows you to handle specific events on the settings class:
+    //  The SettingChanging event is raised before a setting's value is changed.
+    //  The PropertyChanged event is raised after a setting's value is changed.
+    //  The SettingsLoaded event is raised after the setting values are loaded.
+    //  The SettingsSaving event is raised before the setting values are saved.
+    internal sealed partial class FormSettings {
+        
+        public FormSettings() {
+            // // To add event handlers for saving and changing settings, uncomment the lines below:
+            //
+            // this.SettingChanging += this.SettingChangingEventHandler;
+            //
+            // this.SettingsSaving += this.SettingsSavingEventHandler;
+            //
+        }
+        
+        private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e) {
+            // Add code to handle the SettingChangingEvent event here.
+        }
+        
+        private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) {
+            // Add code to handle the SettingsSaving event here.
+        }
+    }
+}
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/FormSettings.settings
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/FormSettings.settings	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/FormSettings.settings	(revision 31334)
@@ -0,0 +1,42 @@
+﻿<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="PicasaFindMyPhotos" GeneratedClassName="FormSettings">
+  <Profiles />
+  <Settings>
+    <Setting Name="BaseURLSetting" Type="System.String" Scope="User">
+      <Value Profile="(Default)" />
+    </Setting>
+    <Setting Name="ServerNameSetting" Type="System.String" Scope="User">
+      <Value Profile="(Default)" />
+    </Setting>
+    <Setting Name="DBNameSetting" Type="System.String" Scope="User">
+      <Value Profile="(Default)" />
+    </Setting>
+    <Setting Name="DBUserNameSetting" Type="System.String" Scope="User">
+      <Value Profile="(Default)" />
+    </Setting>
+    <Setting Name="DBPasswordSetting" Type="System.String" Scope="User">
+      <Value Profile="(Default)" />
+    </Setting>
+    <Setting Name="DBTablePrefixSetting" Type="System.String" Scope="User">
+      <Value Profile="(Default)" />
+    </Setting>
+    <Setting Name="ClearFaceTagSetting" Type="System.Boolean" Scope="User">
+      <Value Profile="(Default)">False</Value>
+    </Setting>
+    <Setting Name="GeneratHTMLSetting" Type="System.Boolean" Scope="User">
+      <Value Profile="(Default)">False</Value>
+    </Setting>
+    <Setting Name="SetPiwigoTagSetting" Type="System.Boolean" Scope="User">
+      <Value Profile="(Default)">False</Value>
+    </Setting>
+    <Setting Name="PicasaContactsFileSetting" Type="System.String" Scope="User">
+      <Value Profile="(Default)" />
+    </Setting>
+    <Setting Name="PicasaPhotoPathSetting" Type="System.String" Scope="User">
+      <Value Profile="(Default)" />
+    </Setting>
+    <Setting Name="OutputPathSetting" Type="System.String" Scope="User">
+      <Value Profile="(Default)" />
+    </Setting>
+  </Settings>
+</SettingsFile>
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/PicasaMyPhotos.csproj
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/PicasaMyPhotos.csproj	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/PicasaMyPhotos.csproj	(revision 31334)
@@ -0,0 +1,157 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>9.0.30729</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{26E69F21-9BDE-4BD2-9B13-C463E1E8C2AB}</ProjectGuid>
+    <OutputType>WinExe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>PicasaFindMyPhotos</RootNamespace>
+    <AssemblyName>Picasa Face Tag Extraction</AssemblyName>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <ManifestCertificateThumbprint>8DCB91CCD43BFD47947684B22D9CB8C08301A31F</ManifestCertificateThumbprint>
+    <ManifestKeyFile>PicasaMyPhotos_TemporaryKey.pfx</ManifestKeyFile>
+    <GenerateManifests>true</GenerateManifests>
+    <SignManifests>true</SignManifests>
+    <IsWebBootstrapper>false</IsWebBootstrapper>
+    <PublishUrl>c:\temp\pic\</PublishUrl>
+    <Install>true</Install>
+    <InstallFrom>Disk</InstallFrom>
+    <UpdateEnabled>false</UpdateEnabled>
+    <UpdateMode>Foreground</UpdateMode>
+    <UpdateInterval>7</UpdateInterval>
+    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+    <UpdatePeriodically>false</UpdatePeriodically>
+    <UpdateRequired>false</UpdateRequired>
+    <MapFileExtensions>true</MapFileExtensions>
+    <WebPage>publish.htm</WebPage>
+    <ApplicationRevision>4</ApplicationRevision>
+    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+    <UseApplicationTrust>false</UseApplicationTrust>
+    <PublishWizardCompleted>true</PublishWizardCompleted>
+    <BootstrapperEnabled>true</BootstrapperEnabled>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="MySql.Data, Version=6.5.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Xml.Linq">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data.DataSetExtensions">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data" />
+    <Reference Include="System.Deployment" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Form1.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Form1.Designer.cs">
+      <DependentUpon>Form1.cs</DependentUpon>
+    </Compile>
+    <Compile Include="FormSettings.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>
+      <DependentUpon>FormSettings.settings</DependentUpon>
+    </Compile>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <EmbeddedResource Include="Form1.resx">
+      <DependentUpon>Form1.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Resources.resx</DependentUpon>
+      <DesignTime>True</DesignTime>
+    </Compile>
+    <None Include="app.config" />
+    <None Include="FormSettings.settings">
+      <Generator>SettingsSingleFileGenerator</Generator>
+      <LastGenOutput>FormSettings.Designer.cs</LastGenOutput>
+    </None>
+    <None Include="PicasaMyPhotos_TemporaryKey.pfx" />
+    <None Include="Properties\Settings.settings">
+      <Generator>SettingsSingleFileGenerator</Generator>
+      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+    </None>
+    <Compile Include="Properties\Settings.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Settings.settings</DependentUpon>
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework Client Profile</ProductName>
+      <Install>false</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 2.0 %28x86%29</ProductName>
+      <Install>false</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.0 %28x86%29</ProductName>
+      <Install>false</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5</ProductName>
+      <Install>false</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5 SP1</ProductName>
+      <Install>true</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+      <Visible>False</Visible>
+      <ProductName>Windows Installer 3.1</ProductName>
+      <Install>true</Install>
+    </BootstrapperPackage>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/PicasaMyPhotos.csproj.user
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/PicasaMyPhotos.csproj.user	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/PicasaMyPhotos.csproj.user	(revision 31334)
@@ -0,0 +1,18 @@
+﻿<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <ProjectView>ProjectFiles</ProjectView>
+    <PublishUrlHistory>c:\temp\pic\|c:\temp\pic\exec\</PublishUrlHistory>
+    <InstallUrlHistory>
+    </InstallUrlHistory>
+    <SupportUrlHistory>
+    </SupportUrlHistory>
+    <UpdateUrlHistory>
+    </UpdateUrlHistory>
+    <BootstrapperUrlHistory>
+    </BootstrapperUrlHistory>
+    <ErrorReportUrlHistory>
+    </ErrorReportUrlHistory>
+    <FallbackCulture>en-US</FallbackCulture>
+    <VerifyUploadedFiles>false</VerifyUploadedFiles>
+  </PropertyGroup>
+</Project>
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/Program.cs
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/Program.cs	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/Program.cs	(revision 31334)
@@ -0,0 +1,21 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Windows.Forms;
+
+namespace PicasaFindMyPhotos
+{
+    static class Program
+    {
+        /// <summary>
+        /// The main entry point for the application.
+        /// </summary>
+        [STAThread]
+        static void Main()
+        {
+            Application.EnableVisualStyles();
+            Application.SetCompatibleTextRenderingDefault(false);
+            Application.Run(new Form1());
+        }
+    }
+}
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/Properties/AssemblyInfo.cs
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/Properties/AssemblyInfo.cs	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/Properties/AssemblyInfo.cs	(revision 31334)
@@ -0,0 +1,36 @@
+﻿using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Picasa Face Tag Extraction")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Picasas Face Taq Extraction")]
+[assembly: AssemblyCopyright("")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("f1625589-a282-4879-bea3-0094f1a36d74")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/Properties/Resources.Designer.cs
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/Properties/Resources.Designer.cs	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/Properties/Resources.Designer.cs	(revision 31334)
@@ -0,0 +1,63 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:2.0.50727.3053
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace PicasaFindMyPhotos.Properties {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Resources {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Resources() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PicasaFindMyPhotos.Properties.Resources", typeof(Resources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+    }
+}
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/Properties/Resources.resx
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/Properties/Resources.resx	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/Properties/Resources.resx	(revision 31334)
@@ -0,0 +1,117 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/Properties/Settings.Designer.cs
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/Properties/Settings.Designer.cs	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/Properties/Settings.Designer.cs	(revision 31334)
@@ -0,0 +1,26 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:2.0.50727.3053
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace PicasaFindMyPhotos.Properties {
+    
+    
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")]
+    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+        
+        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+        
+        public static Settings Default {
+            get {
+                return defaultInstance;
+            }
+        }
+    }
+}
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/Properties/Settings.settings
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/Properties/Settings.settings	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/Properties/Settings.settings	(revision 31334)
@@ -0,0 +1,7 @@
+﻿<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
+  <Profiles>
+    <Profile Name="(Default)" />
+  </Profiles>
+  <Settings />
+</SettingsFile>
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/app.config
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/app.config	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/app.config	(revision 31334)
@@ -0,0 +1,48 @@
+﻿<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <configSections>
+        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
+            <section name="PicasaFindMyPhotos.FormSettings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
+        </sectionGroup>
+    </configSections>
+    <userSettings>
+        <PicasaFindMyPhotos.FormSettings>
+            <setting name="BaseURLSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="ServerNameSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="DBNameSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="DBUserNameSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="DBPasswordSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="DBTablePrefixSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="ClearFaceTagSetting" serializeAs="String">
+                <value>False</value>
+            </setting>
+            <setting name="GeneratHTMLSetting" serializeAs="String">
+                <value>False</value>
+            </setting>
+            <setting name="SetPiwigoTagSetting" serializeAs="String">
+                <value>False</value>
+            </setting>
+            <setting name="PicasaContactsFileSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="PicasaPhotoPathSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="OutputPathSetting" serializeAs="String">
+                <value />
+            </setting>
+        </PicasaFindMyPhotos.FormSettings>
+    </userSettings>
+</configuration>
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/Picasa Face Tag Extraction.application
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/Picasa Face Tag Extraction.application	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/Picasa Face Tag Extraction.application	(revision 31334)
@@ -0,0 +1,18 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <assemblyIdentity name="Picasa Face Tag Extraction.application" version="1.0.0.4" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
+  <description asmv2:publisher="Picasa Face Tag Extraction" asmv2:product="Picasa Face Tag Extraction" xmlns="urn:schemas-microsoft-com:asm.v1" />
+  <deployment install="true" mapFileExtensions="true" />
+  <dependency>
+    <dependentAssembly dependencyType="install" codebase="Picasa Face Tag Extraction.exe.manifest" size="4720">
+      <assemblyIdentity name="Picasa Face Tag Extraction.exe" version="1.0.0.4" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
+      <hash>
+        <dsig:Transforms>
+          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
+        </dsig:Transforms>
+        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+        <dsig:DigestValue>lz5TrYPMdX+WZieafaJdP+rZX4g=</dsig:DigestValue>
+      </hash>
+    </dependentAssembly>
+  </dependency>
+</asmv1:assembly>
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/Picasa Face Tag Extraction.exe.config
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/Picasa Face Tag Extraction.exe.config	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/Picasa Face Tag Extraction.exe.config	(revision 31334)
@@ -0,0 +1,48 @@
+﻿<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <configSections>
+        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
+            <section name="PicasaFindMyPhotos.FormSettings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
+        </sectionGroup>
+    </configSections>
+    <userSettings>
+        <PicasaFindMyPhotos.FormSettings>
+            <setting name="BaseURLSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="ServerNameSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="DBNameSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="DBUserNameSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="DBPasswordSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="DBTablePrefixSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="ClearFaceTagSetting" serializeAs="String">
+                <value>False</value>
+            </setting>
+            <setting name="GeneratHTMLSetting" serializeAs="String">
+                <value>False</value>
+            </setting>
+            <setting name="SetPiwigoTagSetting" serializeAs="String">
+                <value>False</value>
+            </setting>
+            <setting name="PicasaContactsFileSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="PicasaPhotoPathSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="OutputPathSetting" serializeAs="String">
+                <value />
+            </setting>
+        </PicasaFindMyPhotos.FormSettings>
+    </userSettings>
+</configuration>
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/Picasa Face Tag Extraction.exe.manifest
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/Picasa Face Tag Extraction.exe.manifest	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/Picasa Face Tag Extraction.exe.manifest	(revision 31334)
@@ -0,0 +1,87 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1">
+  <asmv1:assemblyIdentity name="Picasa Face Tag Extraction.exe" version="1.0.0.4" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
+  <application />
+  <entryPoint>
+    <assemblyIdentity name="Picasa Face Tag Extraction" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
+    <commandLine file="Picasa Face Tag Extraction.exe" parameters="" />
+  </entryPoint>
+  <trustInfo>
+    <security>
+      <applicationRequestMinimum>
+        <PermissionSet Unrestricted="true" ID="Custom" SameSite="site" />
+        <defaultAssemblyRequest permissionSetReference="Custom" />
+      </applicationRequestMinimum>
+      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
+        <!--
+          UAC Manifest Options
+          If you want to change the Windows User Account Control level replace the 
+          requestedExecutionLevel node with one of the following.
+
+        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
+        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
+        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
+
+         If you want to utilize File and Registry Virtualization for backward 
+         compatibility then delete the requestedExecutionLevel node.
+    -->
+        <requestedExecutionLevel level="asInvoker" uiAccess="false" />
+      </requestedPrivileges>
+    </security>
+  </trustInfo>
+  <dependency>
+    <dependentOS>
+      <osVersionInfo>
+        <os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />
+      </osVersionInfo>
+    </dependentOS>
+  </dependency>
+  <dependency>
+    <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
+      <assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="2.0.50727.0" />
+    </dependentAssembly>
+  </dependency>
+  <dependency>
+    <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
+      <assemblyIdentity name="System.Core" version="3.5.0.0" publicKeyToken="b77a5c561934e089" language="neutral" processorArchitecture="msil" />
+    </dependentAssembly>
+  </dependency>
+  <dependency>
+    <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
+      <assemblyIdentity name="WindowsBase" version="3.0.0.0" publicKeyToken="31bf3856ad364e35" language="neutral" processorArchitecture="msil" />
+    </dependentAssembly>
+  </dependency>
+  <dependency>
+    <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="MySql.Data.dll" size="379904">
+      <assemblyIdentity name="MySql.Data" version="6.5.5.0" publicKeyToken="C5687FC88969C44D" language="neutral" processorArchitecture="msil" />
+      <hash>
+        <dsig:Transforms>
+          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
+        </dsig:Transforms>
+        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+        <dsig:DigestValue>3iT31tAQ6hWSAc69FSWZcurrxRc=</dsig:DigestValue>
+      </hash>
+    </dependentAssembly>
+  </dependency>
+  <dependency>
+    <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Picasa Face Tag Extraction.exe" size="33792">
+      <assemblyIdentity name="Picasa Face Tag Extraction" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
+      <hash>
+        <dsig:Transforms>
+          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
+        </dsig:Transforms>
+        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+        <dsig:DigestValue>GB8V3hFRTcxE7sDGh8hR0NmcwL0=</dsig:DigestValue>
+      </hash>
+    </dependentAssembly>
+  </dependency>
+  <file name="Picasa Face Tag Extraction.exe.config" size="2183">
+    <hash>
+      <dsig:Transforms>
+        <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
+      </dsig:Transforms>
+      <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+      <dsig:DigestValue>R2lNY2seNUWZ7jd7qc2Hrna3NYk=</dsig:DigestValue>
+    </hash>
+  </file>
+</asmv1:assembly>
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/Picasa Face Tag Extraction.vshost.application
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/Picasa Face Tag Extraction.vshost.application	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/Picasa Face Tag Extraction.vshost.application	(revision 31334)
@@ -0,0 +1,18 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <assemblyIdentity name="Picasa Face Tag Extraction.application" version="1.0.0.4" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
+  <description asmv2:publisher="Picasa Face Tag Extraction" asmv2:product="Picasa Face Tag Extraction" xmlns="urn:schemas-microsoft-com:asm.v1" />
+  <deployment install="true" mapFileExtensions="true" />
+  <dependency>
+    <dependentAssembly dependencyType="install" codebase="Picasa Face Tag Extraction.exe.manifest" size="4720">
+      <assemblyIdentity name="Picasa Face Tag Extraction.exe" version="1.0.0.4" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
+      <hash>
+        <dsig:Transforms>
+          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
+        </dsig:Transforms>
+        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+        <dsig:DigestValue>lz5TrYPMdX+WZieafaJdP+rZX4g=</dsig:DigestValue>
+      </hash>
+    </dependentAssembly>
+  </dependency>
+</asmv1:assembly>
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/Picasa Face Tag Extraction.vshost.exe.config
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/Picasa Face Tag Extraction.vshost.exe.config	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/Picasa Face Tag Extraction.vshost.exe.config	(revision 31334)
@@ -0,0 +1,48 @@
+﻿<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <configSections>
+        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
+            <section name="PicasaFindMyPhotos.FormSettings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
+        </sectionGroup>
+    </configSections>
+    <userSettings>
+        <PicasaFindMyPhotos.FormSettings>
+            <setting name="BaseURLSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="ServerNameSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="DBNameSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="DBUserNameSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="DBPasswordSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="DBTablePrefixSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="ClearFaceTagSetting" serializeAs="String">
+                <value>False</value>
+            </setting>
+            <setting name="GeneratHTMLSetting" serializeAs="String">
+                <value>False</value>
+            </setting>
+            <setting name="SetPiwigoTagSetting" serializeAs="String">
+                <value>False</value>
+            </setting>
+            <setting name="PicasaContactsFileSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="PicasaPhotoPathSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="OutputPathSetting" serializeAs="String">
+                <value />
+            </setting>
+        </PicasaFindMyPhotos.FormSettings>
+    </userSettings>
+</configuration>
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/PicasaFindMyPhotos.application
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/PicasaFindMyPhotos.application	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/PicasaFindMyPhotos.application	(revision 31334)
@@ -0,0 +1,18 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <assemblyIdentity name="PicasaFindMyPhotos.application" version="1.0.0.4" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
+  <description asmv2:publisher="Microsoft" asmv2:product="PicasaFindMyPhotos" xmlns="urn:schemas-microsoft-com:asm.v1" />
+  <deployment install="true" mapFileExtensions="true" />
+  <dependency>
+    <dependentAssembly dependencyType="install" codebase="PicasaFindMyPhotos.exe.manifest" size="4672">
+      <assemblyIdentity name="PicasaFindMyPhotos.exe" version="1.0.0.4" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
+      <hash>
+        <dsig:Transforms>
+          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
+        </dsig:Transforms>
+        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+        <dsig:DigestValue>OiIAXbuOLx3Htbs2Wmo9xnv9WDE=</dsig:DigestValue>
+      </hash>
+    </dependentAssembly>
+  </dependency>
+</asmv1:assembly>
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/PicasaFindMyPhotos.exe.config
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/PicasaFindMyPhotos.exe.config	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/PicasaFindMyPhotos.exe.config	(revision 31334)
@@ -0,0 +1,48 @@
+﻿<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <configSections>
+        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
+            <section name="PicasaFindMyPhotos.FormSettings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
+        </sectionGroup>
+    </configSections>
+    <userSettings>
+        <PicasaFindMyPhotos.FormSettings>
+            <setting name="BaseURLSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="ServerNameSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="DBNameSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="DBUserNameSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="DBPasswordSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="DBTablePrefixSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="ClearFaceTagSetting" serializeAs="String">
+                <value>False</value>
+            </setting>
+            <setting name="GeneratHTMLSetting" serializeAs="String">
+                <value>False</value>
+            </setting>
+            <setting name="SetPiwigoTagSetting" serializeAs="String">
+                <value>False</value>
+            </setting>
+            <setting name="PicasaContactsFileSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="PicasaPhotoPathSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="OutputPathSetting" serializeAs="String">
+                <value />
+            </setting>
+        </PicasaFindMyPhotos.FormSettings>
+    </userSettings>
+</configuration>
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/PicasaFindMyPhotos.exe.manifest
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/PicasaFindMyPhotos.exe.manifest	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/PicasaFindMyPhotos.exe.manifest	(revision 31334)
@@ -0,0 +1,87 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1">
+  <asmv1:assemblyIdentity name="PicasaFindMyPhotos.exe" version="1.0.0.4" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
+  <application />
+  <entryPoint>
+    <assemblyIdentity name="PicasaFindMyPhotos" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
+    <commandLine file="PicasaFindMyPhotos.exe" parameters="" />
+  </entryPoint>
+  <trustInfo>
+    <security>
+      <applicationRequestMinimum>
+        <PermissionSet Unrestricted="true" ID="Custom" SameSite="site" />
+        <defaultAssemblyRequest permissionSetReference="Custom" />
+      </applicationRequestMinimum>
+      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
+        <!--
+          UAC Manifest Options
+          If you want to change the Windows User Account Control level replace the 
+          requestedExecutionLevel node with one of the following.
+
+        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
+        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
+        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
+
+         If you want to utilize File and Registry Virtualization for backward 
+         compatibility then delete the requestedExecutionLevel node.
+    -->
+        <requestedExecutionLevel level="asInvoker" uiAccess="false" />
+      </requestedPrivileges>
+    </security>
+  </trustInfo>
+  <dependency>
+    <dependentOS>
+      <osVersionInfo>
+        <os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />
+      </osVersionInfo>
+    </dependentOS>
+  </dependency>
+  <dependency>
+    <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
+      <assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="2.0.50727.0" />
+    </dependentAssembly>
+  </dependency>
+  <dependency>
+    <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
+      <assemblyIdentity name="System.Core" version="3.5.0.0" publicKeyToken="b77a5c561934e089" language="neutral" processorArchitecture="msil" />
+    </dependentAssembly>
+  </dependency>
+  <dependency>
+    <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
+      <assemblyIdentity name="WindowsBase" version="3.0.0.0" publicKeyToken="31bf3856ad364e35" language="neutral" processorArchitecture="msil" />
+    </dependentAssembly>
+  </dependency>
+  <dependency>
+    <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="MySql.Data.dll" size="379904">
+      <assemblyIdentity name="MySql.Data" version="6.5.5.0" publicKeyToken="C5687FC88969C44D" language="neutral" processorArchitecture="msil" />
+      <hash>
+        <dsig:Transforms>
+          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
+        </dsig:Transforms>
+        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+        <dsig:DigestValue>3iT31tAQ6hWSAc69FSWZcurrxRc=</dsig:DigestValue>
+      </hash>
+    </dependentAssembly>
+  </dependency>
+  <dependency>
+    <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="PicasaFindMyPhotos.exe" size="31744">
+      <assemblyIdentity name="PicasaFindMyPhotos" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
+      <hash>
+        <dsig:Transforms>
+          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
+        </dsig:Transforms>
+        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+        <dsig:DigestValue>dvH5njAMm7fqT7Z4b3NBr8Z+Skg=</dsig:DigestValue>
+      </hash>
+    </dependentAssembly>
+  </dependency>
+  <file name="PicasaFindMyPhotos.exe.config" size="2183">
+    <hash>
+      <dsig:Transforms>
+        <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
+      </dsig:Transforms>
+      <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+      <dsig:DigestValue>R2lNY2seNUWZ7jd7qc2Hrna3NYk=</dsig:DigestValue>
+    </hash>
+  </file>
+</asmv1:assembly>
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/PicasaFindMyPhotos.vshost.application
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/PicasaFindMyPhotos.vshost.application	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/PicasaFindMyPhotos.vshost.application	(revision 31334)
@@ -0,0 +1,18 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <assemblyIdentity name="PicasaFindMyPhotos.application" version="1.0.0.4" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
+  <description asmv2:publisher="Microsoft" asmv2:product="PicasaFindMyPhotos" xmlns="urn:schemas-microsoft-com:asm.v1" />
+  <deployment install="true" mapFileExtensions="true" />
+  <dependency>
+    <dependentAssembly dependencyType="install" codebase="PicasaFindMyPhotos.exe.manifest" size="4672">
+      <assemblyIdentity name="PicasaFindMyPhotos.exe" version="1.0.0.4" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
+      <hash>
+        <dsig:Transforms>
+          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
+        </dsig:Transforms>
+        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+        <dsig:DigestValue>JToxVejjarOzKeZybikAj8glz6U=</dsig:DigestValue>
+      </hash>
+    </dependentAssembly>
+  </dependency>
+</asmv1:assembly>
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/PicasaFindMyPhotos.vshost.exe.config
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/PicasaFindMyPhotos.vshost.exe.config	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/PicasaFindMyPhotos.vshost.exe.config	(revision 31334)
@@ -0,0 +1,48 @@
+﻿<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <configSections>
+        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
+            <section name="PicasaFindMyPhotos.FormSettings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
+        </sectionGroup>
+    </configSections>
+    <userSettings>
+        <PicasaFindMyPhotos.FormSettings>
+            <setting name="BaseURLSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="ServerNameSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="DBNameSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="DBUserNameSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="DBPasswordSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="DBTablePrefixSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="ClearFaceTagSetting" serializeAs="String">
+                <value>False</value>
+            </setting>
+            <setting name="GeneratHTMLSetting" serializeAs="String">
+                <value>False</value>
+            </setting>
+            <setting name="SetPiwigoTagSetting" serializeAs="String">
+                <value>False</value>
+            </setting>
+            <setting name="PicasaContactsFileSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="PicasaPhotoPathSetting" serializeAs="String">
+                <value />
+            </setting>
+            <setting name="OutputPathSetting" serializeAs="String">
+                <value />
+            </setting>
+        </PicasaFindMyPhotos.FormSettings>
+    </userSettings>
+</configuration>
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/PicasaMyPhotos.vshost.exe.manifest
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/PicasaMyPhotos.vshost.exe.manifest	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/PicasaMyPhotos.vshost.exe.manifest	(revision 31334)
@@ -0,0 +1,11 @@
+﻿<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
+  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
+    <security>
+      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
+        <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
+      </requestedPrivileges>
+    </security>
+  </trustInfo>
+</assembly>
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/html_file_end.txt
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/html_file_end.txt	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/html_file_end.txt	(revision 31334)
@@ -0,0 +1,2 @@
+</body>
+</html>
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/html_file_start.txt
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/html_file_start.txt	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/bin/Debug/html_file_start.txt	(revision 31334)
@@ -0,0 +1,3 @@
+<!DOCTYPE html>
+<html>
+<body>
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/obj/Debug/CSCF1A2.tmp
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/obj/Debug/CSCF1A2.tmp	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/obj/Debug/CSCF1A2.tmp	(revision 31334)
@@ -0,0 +1,230 @@
+html,body{margin:0;padding:0}h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,cite,code,del,dfn,em,img,q,s,samp,small,strike,strong,sub,sup,tt,var,dd,dl,dt,li,ol,ul,fieldset,form,label,legend,button,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;font-weight:normal;font-style:normal;font-size:100%;line-height:1;font-family:inherit}table{border-collapse:collapse;border-spacing:0}ol,ul{list-style:none}q:before,q:after,blockquote:before,blockquote:after{content:""}html{overflow-y:scroll;font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted}a:hover,a:active{outline:0}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0;-ms-interpolation-mode:bicubic}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0}.clearfix:after{clear:both}.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;text-indent:-99999px;*text-indent:0;vertical-align:top;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000;filter:alpha(opacity=30);-khtml-opacity:.3;-moz-opacity:.3;opacity:.3;content:"\2193"}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown:hover .caret,.open.dropdown .caret{filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;max-width:220px;_width:160px;padding:4px 0;margin:0;list-style:none;background-color:#fff;border-color:#ccc;border-color:rgba(0,0,0,0.2);border-style:solid;border-width:1px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;*border-right-width:2px;*border-bottom-width:2px}.dropdown-menu.bottom-up{top:auto;bottom:100%;margin-bottom:2px}.dropdown-menu .divider{height:1px;margin:5px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff;*width:100%;*margin:-5px 0 5px}.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:500;line-height:18px;color:#dee2e7;white-space:nowrap}.dropdown-menu li>a:hover,.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#fff;text-decoration:none;background-color:#2e9fff}.dropdown.open{*z-index:1000}.dropdown.open .dropdown-toggle{color:#fff;background:#ccc;background:rgba(0,0,0,0.3)}.dropdown.open .dropdown-menu{display:block}.typeahead{margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert{-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);-moz-box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);background:#a3aebc;padding:8px 35px 8px 14px;margin-bottom:18px;text-shadow:0 -1px 0 rgba(0,0,0,0.1);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;color:white;font-weight:700;font-size:12px}.alert a,.alert a:active,.alert a:visited{color:#fff;font-weight:700;text-decoration:underline}.alert a:hover,.alert a:active:hover,.alert a:visited:hover{color:#fff}.alert.error{background:#ff2e46}.alert.success{background:#4bad00}.alert.info{background:#2e9fff}.alert.realtime{background:#ffc62e}.alert-heading{color:inherit}button.alert{width:100%;display:block;text-align:center}.close{color:#fff!important;text-decoration:none!important;float:right;font-weight:bold;color:white;display:block;font-size:20px;opacity:.8;padding:0!important;background:none!important}.close:hover{opacity:1;cursor:pointer}.alert .close{position:relative;top:-4px;right:-21px;line-height:18px}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.btn-group{position:relative;*zoom:1}.btn-group:before,.btn-group:after{display:table;content:"";line-height:0}.btn-group:after{clear:both}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:9px;margin-bottom:9px}.btn-toolbar .btn-group{display:inline-block}.btn-group>.btn{position:relative;float:left;margin-left:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn:first-child{margin-left:0;-webkit-border-top-left-radius:3px;-moz-border-radius-topleft:3px;border-top-left-radius:3px;-webkit-border-bottom-left-radius:3px;-moz-border-radius-bottomleft:3px;border-bottom-left-radius:3px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:3px;-moz-border-radius-topright:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;-moz-border-radius-bottomright:3px;border-bottom-right-radius:3px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.dropdown-toggle{padding-left:8px;padding-right:8px;*padding-top:4px;*padding-bottom:4px}.btn-group>.btn-mini.dropdown-toggle{padding-left:5px;padding-right:5px}.btn-group>.btn-small.dropdown-toggle{*padding-top:4px;*padding-bottom:4px}.btn-group>.btn-large.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-menu{top:115%!important;display:block}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.btn .caret{margin-top:7px;margin-left:0}.btn:hover .caret,.open.btn-group .caret{filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1}.btn-mini .caret{margin-top:5px}.btn-small .caret{margin-top:6px}.btn-large .caret{margin-top:6px;border-left-width:5px;border-right-width:5px;border-top-width:5px}.dropup .btn-large .caret{border-bottom:5px solid #000;border-top:0}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff;filter:alpha(opacity=75);-khtml-opacity:.75;-moz-opacity:.75;opacity:.75}@font-face{font-family:'embed-icons';src:url("http://mediacdn.disqus.com/1358467057/fonts/next/embed-icons.eot");src:url("http://mediacdn.disqus.com/1358467057/fonts/next/embed-icons.eot?#iefix") format('embedded-opentype'),url("http://mediacdn.disqus.com/1358467057/fonts/next/embed-icons.svg#IcoMoon") format('svg'),url("http://mediacdn.disqus.com/1358467057/fonts/next/embed-icons.woff") format('woff'),url("http://mediacdn.disqus.com/1358467057/fonts/next/embed-icons.ttf") format('truetype');font-weight:normal;font-style:normal}[data-icon]:before{font-family:'embed-icons';content:attr(data-icon);speak:none;font-weight:normal;-webkit-font-smoothing:antialiased}[class^="icon-"]:before,[class*=" icon-"]:before{font-family:'embed-icons';font-style:normal;speak:none;font-weight:normal;-webkit-font-smoothing:antialiased}.icon-forward:before{content:"\3e"}.icon-undo:before{content:"\22"}.icon-cog:before{content:"\23"}.icon-star:before{content:"\2605"}.icon-comment:before{content:"\25"}.icon-play:before{content:"\26"}.icon-pause:before{content:"\27"}.icon-reply:before{content:"\3c"}.icon-list:before{content:"\29"}.icon-flag:before{content:"\2a"}.icon-arrow:before{content:"\25bd"}.icon-plus:before{content:"\2b"}.icon-minus:before{content:"\2d"}.icon-chat:before{content:"\2e"}.icon-pen-alt-fill:before{content:"\2f"}.icon-arrow-2:before{content:"\25b3"}.icon-feed:before{content:"\72"}.icon-checkmark:before{content:"\2714"}.icon-mail:before{content:"\6d"}*{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}html{overflow:hidden}button::-moz-focus-inner{border:0}a:focus{outline:0}body{color:#444;font-family:"Helvetica Neue",arial,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}strong{font-weight:700}strong a{font-weight:700}#layout{overflow:hidden}#layout>section{min-height:125px}.primary{float:left;width:70%;padding-right:30px}.secondary{float:right;width:30%}#no-posts{opacity:.6;line-height:107px;text-align:center}.pull-right{float:right!important}.pull-left{float:right!important}a{text-decoration:none;color:#288ce4;-webkit-transition:color linear .1s;-moz-transition:color linear .1s;-ms-transition:color linear .1s;-o-transition:color linear .1s;transition:color linear .1s}a:hover{color:#1977ca}p{margin:0 0 1.5em}h3{font-weight:600;font-size:16px;margin:0 0 1.5em}h3 a.pull-right{font-size:12px;font-weight:normal}h4{font-weight:600;font-size:18px;line-height:1.2}h5{font-weight:700;font-size:11px;color:#8e949c;margin:0 0 10px;line-height:1}h6{font-weight:600;font-size:11px;color:#8e949c;text-transform:uppercase;margin:0 0 10px;line-height:1}#global-nav{margin:0 0 18px;*zoom:1}#global-nav:before,#global-nav:after{display:table;content:"";line-height:0}#global-nav:after{clear:both}#global-nav li,#global-nav h4{float:left}#global-nav .bullet{float:left;margin:4px 8px;padding:0;color:#ccc;line-height:1.3}#global-nav li a{color:#bbb;color:rgba(0,0,0,0.3)}#global-nav li a:hover{color:#288ce4}#global-nav li.active a{color:#333;cursor:default}#reactions{padding-top:10px}#post-count,#reaction-count{margin:0 0 18px}#reaction-count{padding-top:18px}.btn{background:#e3e3e3 url("http://mediacdn.disqus.com/1358467057/img/next/next-sprite.png") 0 0 repeat-x;display:inline-block;padding:9px 16px;color:#555;line-height:1.1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;border:1px solid #a9b3c0;border:1px solid rgba(75,83,94,0.45);font-weight:700;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.14),inset 0 1px 0 rgba(255,255,255,.25),inset 0 -2px 6px rgba(255,255,255,.55);-moz-box-shadow:0 1px 2px rgba(0,0,0,.14),inset 0 1px 0 rgba(255,255,255,.25),inset 0 -2px 6px rgba(255,255,255,.55);box-shadow:0 1px 2px rgba(0,0,0,.14),inset 0 1px 0 rgba(255,255,255,.25),inset 0 -2px 6px rgba(255,255,255,.55);text-shadow:0 1px 0 rgba(255,255,255,0.6)}.btn:hover{background-position:0 -40px;background-color:#f1f1f1}.btn:active,.btn.active{background-color:#f6f6f6;background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(#e2e2e2),to(#f6f6f6));background-image:-moz-linear-gradient(top,#e2e2e2,#f6f6f6);background-image:-ms-linear-gradient(top,#e2e2e2,#f6f6f6);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#e2e2e2),color-stop(100%,#f6f6f6));background-image:-webkit-linear-gradient(top,#e2e2e2,#f6f6f6);background-image:-o-linear-gradient(top,#e2e2e2,#f6f6f6);background-image:linear-gradient(top,#e2e2e2,#f6f6f6);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}.btn:visited{color:#555}.btn.busy{background:#ebeef2;color:#bbb;text-shadow:none}.btn.busy:hover{background:#ebeef2;text-shadow:none;cursor:not-allowed}.btn.busy:active{background:#ebeef2;text-shadow:none;cursor:not-allowed}.btn.small{font-size:12px;padding:8px 10px;background-position:0 -10px}.btn.small.follow{font-weight:400;font-size:10px;padding:1px 4px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.07);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.07);box-shadow:0 1px 0 rgba(0,0,0,0.07)}.btn.small:hover{background-position:0 -40px}.btn.flat{font-weight:normal;width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;padding:0 10px;background:rgba(0,0,0,0.03);border:1px solid rgba(0,0,0,0.1);height:24px;line-height:24px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.load-more{margin:1.5em 0}.load-more .btn{font-size:13px;font-weight:500;display:block;text-align:center;padding:8px 14px}.loading{background:;background:url("http://mediacdn.disqus.com/1358467057/img/next/loader.gif") no-repeat center center;min-height:100px}.avatar{position:absolute;top:16px;left:0;-webkit-transition:left .2s linear;-moz-transition:left .2s linear;-ms-transition:left .2s linear;-o-transition:left .2s linear;transition:left .2s linear}.avatar .user{display:block;position:relative;z-index:100}.avatar .user img{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;display:block;height:36px;width:36px}.avatar .service{height:16px;width:16px;background:url("http://mediacdn.disqus.com/1358467057/img/next/reaction-twitter.png");position:absolute;z-index:100;bottom:-3px;right:-3px}.input-wrapper input{-webkit-transition:all .2s linear;-moz-transition:all .2s linear;-ms-transition:all .2s linear;-o-transition:all .2s linear;transition:all .2s linear;background:rgba(255,255,255,0.85);padding:7px 8px;margin:0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;border:1px solid #c0c8d2;width:100%;font-size:13px;height:32px;background-color:#fff;background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(#f6f6f6),to(#fff));background-image:-moz-linear-gradient(top,#f6f6f6,#fff);background-image:-ms-linear-gradient(top,#f6f6f6,#fff);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#f6f6f6),color-stop(100%,#fff));background-image:-webkit-linear-gradient(top,#f6f6f6,#fff);background-image:-o-linear-gradient(top,#f6f6f6,#fff);background-image:linear-gradient(top,#f6f6f6,#fff);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.08);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.08);box-shadow:inset 0 1px 2px rgba(0,0,0,0.08)}.input-wrapper input:focus{outline:0;border-color:#a9b3c0}#disqus-thread{margin:2em 0 0}.edit{margin-bottom:9px}.edit .textarea-wrapper{margin:3px 0 9px!important}.textarea-wrapper{-webkit-transition:all .2s linear;-moz-transition:all .2s linear;-ms-transition:all .2s linear;-o-transition:all .2s linear;transition:all .2s linear;position:relative;padding:5px 0 0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;margin:0 0 0 48px;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.12);-moz-box-shadow:inset 0 1px 3px rgba(0,0,0,0.12);box-shadow:inset 0 1px 3px rgba(0,0,0,0.12);background-color:rgba(255,255,255,0.45);background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(rgba(245,245,245,0)),to(rgba(255,255,255,0.45)));background-image:-moz-linear-gradient(top,rgba(245,245,245,0),rgba(255,255,255,0.45));background-image:-ms-linear-gradient(top,rgba(245,245,245,0),rgba(255,255,255,0.45));background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,rgba(245,245,245,0)),color-stop(100%,rgba(255,255,255,0.45)));background-image:-webkit-linear-gradient(top,rgba(245,245,245,0),rgba(255,255,255,0.45));background-image:-o-linear-gradient(top,rgba(245,245,245,0),rgba(255,255,255,0.45));background-image:linear-gradient(top,rgba(245,245,245,0),rgba(255,255,255,0.45));border:1px solid #c0c8d2;border:1px solid rgba(75,83,94,0.45)}.textarea-wrapper .textarea{color:#444;color:rgba(0,0,0,0.8);cursor:text;resize:none;border:0;background:0;display:block;padding:0 8px;margin:0;width:100%;min-height:29px;height:auto;line-height:1.4;font-size:14px;font-family:"Helvetica Neue",helvetica,arial,sans-serif;overflow-y:scroll;-webkit-transition:all .15s ease-in-out;-moz-transition:all .15s ease-in-out;-ms-transition:all .15s ease-in-out;-o-transition:all .15s ease-in-out;transition:all .15s ease-in-out}.textarea-wrapper .textarea .placeholder{color:#999;padding-left:4px;line-height:25px}.textarea-wrapper .textarea p,.textarea-wrapper .textarea div{margin:0;line-height:1.4}.textarea-wrapper .textarea:focus{outline:0}.textarea-wrapper.error{border-color:#ff2e46}.focus .textarea-wrapper .textarea{min-height:39.6px}.focus .textarea-wrapper.error{border-color:#ff2e46}.postbox{position:relative;margin:0 0 18px}.postbox .avatar{top:0}.postbox .media-drag-hover{position:absolute;overflow:hidden;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.4);text-align:center;font-weight:bold;z-index:1000;color:#fff}.postbox .media-drag-hover .drag-text{border:3px dashed #fff;padding:12px;position:absolute;top:50%;left:0;right:0;margin:-22px 30px 0;text-align:center;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;height:45px}.postbox .media-preview{background:#ddd;border-top:1px solid #CCC;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.3);-moz-box-shadow:inset 0 1px 3px rgba(0,0,0,0.3);box-shadow:inset 0 1px 3px rgba(0,0,0,0.3);padding:8px 0}.postbox .media-preview.empty,.postbox .media-preview .empty{display:none}.postbox .media-preview a.media-delete{position:absolute;top:6px;right:6px;font-size:14px;text-align:center;vertical-align:middle;color:#fff;background-color:rgba(0,0,0,0.5);height:16px;width:16px;line-height:15px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;display:none}.postbox .media-preview a.media-delete:hover{background-color:rgba(0,0,0,0.8)}.postbox .media-preview .media-expanded{max-height:300px;margin:8px 8px 0;position:relative;text-align:center}.postbox .media-preview .media-expanded img{max-height:300px;max-width:100%}.postbox .media-preview li{display:inline-block;position:relative;height:52px;width:52px;padding:1px;margin:0 0 0 8px;background:#fff;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 0 0 1px #ccc;-moz-box-shadow:inset 0 0 0 1px #ccc;box-shadow:inset 0 0 0 1px #ccc}.postbox .media-preview li img{height:50px;width:50px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;display:block}.postbox .media-preview li a.media-delete{top:3px;right:3px}.postbox .media-preview li:hover a.media-delete{display:block}.postbox .media-preview li .media-progress{position:absolute;top:47%;left:3px;width:44px;height:5px;background:#eee}.postbox .media-preview li .media-progress .bar{background-color:#bbb;position:absolute;left:0;top:0;bottom:0}.postbox .media-preview li.active{border:1px solid;padding:0}.postbox .media-preview li.active a.media-delete{top:2px;right:2px}.postbox .post-actions{-webkit-transition:opacity linear .2s;-moz-transition:opacity linear .2s;-ms-transition:opacity linear .2s;-o-transition:opacity linear .2s;transition:opacity linear .2s;visibility:hidden;filter:alpha(opacity=0);-khtml-opacity:0;-moz-opacity:0;opacity:0;border-top:1px dotted #c6cdd6;position:absolute;bottom:0;left:0;right:0;height:32px}.postbox .post-actions .wysiwyg{position:absolute;top:0;left:0}.postbox .post-actions .wysiwyg li{float:left;position:relative}.postbox .post-actions .wysiwyg li input[type=file].regular{visibility:hidden}.postbox .post-actions .wysiwyg li input[type=file].ie{display:block;filter:alpha(opacity=0);-khtml-opacity:0;-moz-opacity:0;opacity:0;position:absolute;cursor:pointer;top:5px;left:-190px}.postbox .post-actions .wysiwyg li a{display:block;height:30px;width:34px;position:relative}.postbox .post-actions .wysiwyg li a span{-webkit-transition:opacity .1s linear;-moz-transition:opacity .1s linear;-ms-transition:opacity .1s linear;-o-transition:opacity .1s linear;transition:opacity .1s linear;display:block;height:14px;width:14px;position:absolute;top:9px;left:10px;background:url("http://mediacdn.disqus.com/1358467057/img/next/wysiwyg.png");text-indent:-9999em;filter:alpha(opacity=65);-khtml-opacity:.65;-moz-opacity:.65;opacity:.65}.postbox .post-actions .wysiwyg li a.attach span{background-position:0 -14px}.postbox .post-actions .wysiwyg li a.bold span{background-position:-14px -14px}.postbox .post-actions .wysiwyg li a.italics span{width:10px;background-position:-28px -14px}.postbox .post-actions .wysiwyg li:hover a span{filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1}.postbox .post-actions .wysiwyg li:hover a.attach span{background-position:0 0}.postbox .post-actions .wysiwyg li:hover a.bold span{background-position:-14px 0}.postbox .post-actions .wysiwyg li:hover a.italics span{width:10px;background-position:-28px 0}.postbox .post-actions .wysiwyg li.active a,.postbox .post-actions .wysiwyg li:active a{background-color:#fff;background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(#f3f3f3),to(#fff));background-image:-moz-linear-gradient(top,#f3f3f3,#fff);background-image:-ms-linear-gradient(top,#f3f3f3,#fff);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#f3f3f3),color-stop(100%,#fff));background-image:-webkit-linear-gradient(top,#f3f3f3,#fff);background-image:-o-linear-gradient(top,#f3f3f3,#fff);background-image:linear-gradient(top,#f3f3f3,#fff);-webkit-box-shadow:inset 0 0 3px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 0 3px rgba(0,0,0,0.1);box-shadow:inset 0 0 3px rgba(0,0,0,0.1)}.postbox .post-actions .wysiwyg li.active a span,.postbox .post-actions .wysiwyg li:active a span{filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1}.postbox .post-actions .wysiwyg li.active a.attach span,.postbox .post-actions .wysiwyg li:active a.attach span{background-position:0 0}.postbox .post-actions .wysiwyg li.active a.bold span,.postbox .post-actions .wysiwyg li:active a.bold span{background-position:-16px 0}.postbox .post-actions .wysiwyg li.active a.italics span,.postbox .post-actions .wysiwyg li:active a.italics span{width:10px;background-position:-28px 0}.postbox .post-actions section{padding:0}.postbox .post-actions .auth-section{margin:0;float:right}.postbox .post-actions .btn{position:absolute;top:-1px;right:-1px;white-space:nowrap;height:33px;-webkit-border-radius:0 0 3px 0;-moz-border-radius:0 0 3px 0;border-radius:0 0 3px 0;font-size:12px;padding-top:10px}.postbox section{padding:14px 0 0;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.postbox section label{font-size:13px;color:#838991}.postbox section small{display:block;font-size:11px;line-height:1.2!important;color:#a9adb3;margin:4px 0 0 16px}.postbox section .what-is-disqus{cursor:pointer;display:inline-block;height:16px;width:16px;background:url("http://mediacdn.disqus.com/1358467057/img/next/question-mark.png");text-indent:-9999em;position:absolute;top:107px;left:153px}.postbox section .what-is-disqus:hover #rules{filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1;visibility:visible!important}.postbox section #rules{filter:alpha(opacity=0);-khtml-opacity:0;-moz-opacity:0;opacity:0;visibility:hidden;-webkit-transition:all linear .2s;-moz-transition:all linear .2s;-ms-transition:all linear .2s;-o-transition:all linear .2s;transition:all linear .2s;text-indent:0;z-index:1000;position:absolute;width:340px;left:8px;bottom:30px;margin-left:-170px;padding:10px 12px 2px}.postbox section #rules:after{display:block;content:"";width:30px;height:14px;background:url("http://mediacdn.disqus.com/1358467057/img/next/tooltip-notch.png") bottom center;bottom:-14px;position:absolute;left:50%;margin-left:-15px}.postbox section #rules h3{color:#6f7e8b;border-bottom:2px solid #edeff2;padding:0 4px 11px;margin:0 0 10px;font-weight:600}.postbox section #rules ul{list-style:disc;padding:0 0 0 20px}.postbox section #rules ul li{color:#dee2e7;list-style:disc;margin:0 0 12px;line-height:1.4}.postbox section #rules ul li span{color:#7F8D99}.expanded .postbox .textarea-wrapper{padding:5px 0 32px}.expanded .postbox .textarea{height:auto}.expanded .postbox .post-actions{visibility:visible;filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1}.expanded .postbox .auth-section{display:block}.expanded .postbox .logged-in{display:none}.expanded.authenticated .postbox .logged-in{display:block}.expanded.authenticated .postbox .logged-out{display:none}.auth-section{display:none;position:relative;margin:0 0 0 46px;z-index:200}.auth-section .proceed{position:absolute;right:0;top:34px;font-size:12px}.auth-section .proceed .btn{height:32px;padding:9px 30px}.auth-section .proceed.active{filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1}.auth-section .proceed .next{display:none}.auth-section .post-actions-tabs{*zoom:1;float:right;margin:-25px 0 0 0}.auth-section .post-actions-tabs:before,.auth-section .post-actions-tabs:after{display:table;content:"";line-height:0}.auth-section .post-actions-tabs:after{clear:both}.auth-section .post-actions-tabs li{float:left}.auth-section .post-actions-tabs li a{display:block;font-size:11px;line-height:1.3;color:#848a92;padding:3px 12px 6px;font-weight:700;position:relative}.auth-section .post-actions-tabs li a span{display:block;width:1px;height:14px;background:#dee2e7;position:absolute;right:-1px;top:3px}.auth-section .post-actions-tabs li:last-child a{-webkit-border-radius:0 0 2px;-moz-border-radius:0 0 2px;border-radius:0 0 2px}.auth-section .post-actions-tabs li.active a{border-bottom:2px solid #2e9fff}.auth-section .connect{position:absolute}.auth-section .connect .services{*zoom:1;margin:0 0 18px}.auth-section .connect .services:before,.auth-section .connect .services:after{display:table;content:"";line-height:0}.auth-section .connect .services:after{clear:both}.auth-section .connect .services li{float:left;margin:0 5px 0 0}.auth-section .connect .services a{font-size:11px;display:block;width:32px;height:32px;text-indent:-9999em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.3),0 1px 3px rgba(0,0,0,.08),inset 0 2px 0 rgba(255,255,255,.12);-moz-box-shadow:inset 0 0 0 1px rgba(0,0,0,.3),0 1px 3px rgba(0,0,0,.08),inset 0 2px 0 rgba(255,255,255,.12);box-shadow:inset 0 0 0 1px rgba(0,0,0,.3),0 1px 3px rgba(0,0,0,.08),inset 0 2px 0 rgba(255,255,255,.12)}.auth-section .connect .services li.sso{float:none;margin:0 0 12px}.auth-section .connect .services li.sso a{text-indent:0}.auth-section .connect .services li.sso a.image{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.auth-section .connect .services li.sso a.no-image{text-align:center;background:#e3e3e3 url("http://mediacdn.disqus.com/1358467057/img/next/next-sprite.png") 0 0 repeat-x;display:inline-block;padding:9px 16px;color:#555;line-height:1.1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;border:1px solid #a9b3c0;border:1px solid rgba(75,83,94,0.45);font-weight:700;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.14),inset 0 1px 0 rgba(255,255,255,.25),inset 0 -2px 6px rgba(255,255,255,.55);-moz-box-shadow:0 1px 2px rgba(0,0,0,.14),inset 0 1px 0 rgba(255,255,255,.25),inset 0 -2px 6px rgba(255,255,255,.55);box-shadow:0 1px 2px rgba(0,0,0,.14),inset 0 1px 0 rgba(255,255,255,.25),inset 0 -2px 6px rgba(255,255,255,.55);text-shadow:0 1px 0 rgba(255,255,255,0.6);display:block;width:143px;clear:both}.auth-section .connect .services li.sso a.no-image:hover{background-position:0 -40px;background-color:#f1f1f1}.auth-section .connect .services li.sso a.no-image:active,.auth-section .connect .services li.sso a.no-image.active{background-color:#f6f6f6;background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(#e2e2e2),to(#f6f6f6));background-image:-moz-linear-gradient(top,#e2e2e2,#f6f6f6);background-image:-ms-linear-gradient(top,#e2e2e2,#f6f6f6);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#e2e2e2),color-stop(100%,#f6f6f6));background-image:-webkit-linear-gradient(top,#e2e2e2,#f6f6f6);background-image:-o-linear-gradient(top,#e2e2e2,#f6f6f6);background-image:linear-gradient(top,#e2e2e2,#f6f6f6);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}.auth-section .connect .services li.sso a.no-image:visited{color:#555}.auth-section .connect .services li.sso a.no-image.busy{background:#ebeef2;color:#bbb;text-shadow:none}.auth-section .connect .services li.sso a.no-image.busy:hover{background:#ebeef2;text-shadow:none;cursor:not-allowed}.auth-section .connect .services li.sso a.no-image.busy:active{background:#ebeef2;text-shadow:none;cursor:not-allowed}.auth-section .connect .services li.sso a.no-image.small{font-size:12px;padding:8px 10px;background-position:0 -10px}.auth-section .connect .services li.sso a.no-image.small.follow{font-weight:400;font-size:10px;padding:1px 4px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.07);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.07);box-shadow:0 1px 0 rgba(0,0,0,0.07)}.auth-section .connect .services li.sso a.no-image.small:hover{background-position:0 -40px}.auth-section .connect .services li.sso a.no-image.flat{font-weight:normal;width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;padding:0 10px;background:rgba(0,0,0,0.03);border:1px solid rgba(0,0,0,0.1);height:24px;line-height:24px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.auth-section .connect .services li.auth-twitter a{background:url("http://mediacdn.disqus.com/1358467057/img/next/social-icons.png")}.auth-section .connect .services li.auth-facebook a{background:url("http://mediacdn.disqus.com/1358467057/img/next/social-icons.png") -32px 0}.auth-section .connect .services li.auth-google a{background:url("http://mediacdn.disqus.com/1358467057/img/next/social-icons.png") -64px 0}.auth-section .connect .services li.auth-disqus a{background:url("http://mediacdn.disqus.com/1358467057/img/next/social-icons.png") -96px 0}.auth-section .audiencesync{margin-bottom:.5em;overflow:hidden}.auth-section .audiencesync .icons-container{margin-right:10px;margin-bottom:1.5em;overflow:hidden;float:left}.auth-section .audiencesync .icons-container img{float:left}.auth-section .audiencesync p{font-size:12px;line-height:1.5em;overflow:hidden;float:left;margin:0;max-width:170px}.auth-section .audiencesync .proceed{float:right;clear:right}.auth-section .guest{border-left:1px dotted #cfd5dc;margin:0 98px 0 153px;padding:0 10px 0 10px;min-height:32px;position:relative}.auth-section .guest p{margin:0 0 12px}.auth-section .guest .guest-details{display:none}.auth-section .guest .guest-details.expanded{display:block}.register .proceed .next{display:block}.register .proceed .submit{display:none}.login-content p{margin:0 0 10px}.actions{*zoom:1}.actions:before,.actions:after{display:table;content:"";line-height:0}.actions:after{clear:both}.actions .forgot{color:#a9adb3;font-size:12px;padding:3px 0;text-shadow:0 1px rgba(255,255,255,0.85);line-height:2.5}.row{*zoom:1}.row:before,.row:after{display:table;content:"";line-height:0}.row:after{clear:both}.column{width:49%;float:left;margin:0}.column:first-child{margin:0 2% 0 0}.dropdown-menu{-webkit-transition:opacity .2s;-moz-transition:opacity .2s;-ms-transition:opacity .2s;-o-transition:opacity .2s;transition:opacity .2s;font-size:13px;border:1px solid #94a1b1;border:1px solid rgba(75,83,94,0.45);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background:#fff;background:rgba(255,255,255,0.94);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.2);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.2);box-shadow:0 1px 3px rgba(0,0,0,0.2);min-width:130px;z-index:1001}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu li{border-bottom:1px solid #e2e2e2}.dropdown-menu li:last-child{border-bottom:0}.dropdown-menu .share ul,.dropdown-menu .share ul>li{display:inline}.dropdown-menu a{color:#848a92}.badge{color:#fff;background:#c0c8d2;background:rgba(0,0,0,0.3);padding:1px 3px;font-size:10px;line-height:1.1;font-weight:600;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;display:inline-block;position:relative;top:-1px}#realtime-toggle{float:right}#realtime-toggle .btn{color:#5e5e5e;height:23px;padding-top:5px;padding-left:26px;margin-right:8px;position:relative;background:#D3D8DB;background:rgba(34,59,74,0.19);border:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;text-shadow:none;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}#realtime-toggle .btn:active{padding-top:6px}#realtime-toggle .btn:hover{background:#BDC5C9;background:rgba(34,59,74,0.3)}#realtime-toggle .btn span{display:block;position:absolute;top:2px;left:5px;width:18px;height:19px;background-image:url("http://mediacdn.disqus.com/1358467057/img/next/realtime-toggle.png")}#realtime-toggle .btn.play span{background-position:0 0}#realtime-toggle .btn.pause span{background-position:0 -19px}.thread-likes{padding-left:27px;margin-left:10px}.thread-likes a{display:block;position:relative;height:23px;padding:5px 8px 0 8px;z-index:100;background:#d3d8db;background:rgba(34,59,74,0.2);font-weight:bold;font-size:13px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thread-likes a .icon-star{display:block;position:absolute;left:-27px;top:-7px;font-size:18px;color:#ffbf00;color:#ffbf00;margin:6px 4px 0 0;padding:3px 8px 2px 1px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thread-likes a .counter{color:#5e5e5e;overflow:hidden;padding:0;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thread-likes a .check-mark{position:absolute;right:-20px;top:7px;opacity:0;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thread-likes a .notch{display:block;width:0;height:0;position:absolute;left:-8px;top:8px;border:4px solid transparent;border-right:4px solid #d3d8db;border-right:4px solid rgba(34,59,74,0.2);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thread-likes a:hover{background:#bdc5c9;background:rgba(34,59,74,0.3);-webkit-transform:translate3d(0,0,0)}.thread-likes a:hover .icon-star{color:#ffc600;color:#ffc600;text-shadow:0 0 6px rgba(255,216,0,0.75)}.thread-likes a:hover .counter{color:#333;color:#333}.thread-likes a:hover .notch{border-right:4px solid #bdc5c9;border-right:4px solid rgba(34,59,74,0.3)}.thread-likes a:active{padding:7px 8px 0 8px}.thread-likes a:active .icon-star{padding:5px 8px 0 1px}.thread-likes.upvoted a{background:#8fc847;background:rgba(132,192,62,0.9);-webkit-transform:translate3d(0,0,0)}.thread-likes.upvoted a .icon-star{color:#b2bbc0;color:rgba(34,59,74,0.35)}.thread-likes.upvoted a .counter{color:#fff;color:#fff;padding:0 15px 0 0}.thread-likes.upvoted a .check-mark{right:7px;opacity:1}.thread-likes.upvoted a .notch{border-right:4px solid #8fc847;border-right:4px solid rgba(132,192,62,0.9)}.thread-likes.upvoted a:hover{background:#84c03e;background:#84c03e}.thread-likes.upvoted a:hover .icon-star{color:#9ba7ad;color:rgba(34,59,74,0.45);text-shadow:none}.thread-likes.upvoted a:hover .notch{border-right:4px solid #84c03e;border-right:4px solid #84c03e}.nav{border-bottom:2px solid #e4e4e4;border-bottom:2px solid rgba(0,49,79,0.08);margin:0 0 18px;padding:0;position:relative}.nav .dropdown-toggle{padding-right:10px;position:relative}.nav .dropdown-toggle .caret{display:block;position:absolute;right:14px;top:15px}.nav .notification-count{background:#ff632e;padding:0;margin-right:-2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;color:#fff;line-height:1.3!important;width:15px;display:block;position:absolute;right:10px;top:10px;height:14px}.nav .dropdown-menu{top:32px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav .dropdown-menu.open{display:block}.nav .dropdown-menu li.selected a{position:relative}.nav .dropdown-menu li.selected a:after{content:"";position:absolute;right:10px;top:8px;display:block;width:10px;height:8px;background:url("http://mediacdn.disqus.com/1358467057/img/next/checkmark.png")}.nav .dropdown-menu li.selected a:hover:after{background:url("http://mediacdn.disqus.com/1358467057/img/next/checkmark.png") 0 -8px}.nav .dropdown-toggle{background:transparent!important;color:#777!important}.nav .dropdown-toggle:hover{color:#5e5e5e!important}.nav>ul{*zoom:1;clear:both}.nav>ul:before,.nav>ul:after{display:table;content:"";line-height:0}.nav>ul:after{clear:both}.nav>ul>li{float:left}.nav>ul>li>a{padding:11px 0;color:#777;font-weight:700;width:110px;display:block;font-size:11px;line-height:1;text-align:center;text-shadow:0 1px 0 rgba(255,255,255,0.3);position:relative}.nav>ul>li>a:hover{color:#5e5e5e}.nav>ul>li>a .caret{display:none;margin:0}.nav>ul>li>a .divider{position:absolute;right:0;top:11px;display:block;width:1px;height:11px;border-right:1px solid #b5bec9;border-right:1px solid rgba(75,83,94,0.18)}.nav>ul>li.active>a{color:#5e5e5e!important}.nav>ul>li.active>a:after{content:" ";display:block;width:112px;height:2px;background:#2E9DFF;position:absolute;bottom:-2px;left:-1px}.nav>ul>li.active:first-child>a:after{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px}.nav>ul>li.share-menu{float:right;margin-right:10px}.nav>ul>li.share-menu a{width:auto;padding-right:14px}.nav>ul>li.share-menu .caret{top:16px;right:0}.nav>ul>li.share-menu .dropdown-menu{padding:0}.nav>ul>li.share-menu .dropdown-menu li a{padding:5px 10px}.nav>ul>li.share-menu .dropdown-menu .share{white-space:nowrap;color:#848A92;font-size:13px;padding:5px 10px;position:relative;font-weight:500}.nav>ul>li.share-menu .dropdown-menu .share li{border:0}.nav>ul>li.share-menu .dropdown-menu .share a{padding:0}.nav>ul>li.share-menu .dropdown-menu .share a:hover{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.nav>ul>li.user-menu{float:right}.nav>ul>li.user-menu .cog{font-size:14px}.nav>ul>li.user-menu .dropdown-toggle{width:auto;height:33px;width:28px}.nav>ul>li.user-menu .dropdown-toggle .caret{top:16px;right:0}.nav>ul>li.user-menu .dropdown-menu{left:auto;right:0}.post-list{list-style-type:none;margin:0}.post-list>.post{padding-left:48px}.post-list>.post.minimized,.post-list>.post.collapsed{padding-left:36px;min-height:24px}.post-list>.post.minimized:first-child>.post-content .avatar,.post-list>.post.collapsed:first-child>.post-content .avatar{top:0}.post-list>.post:first-child{border-top:0;padding-top:0}.post-list>.post:first-child>.post-content{padding-top:0}.post-list>.post:first-child>.post-content .indicator{top:0}.post-list>.post:first-child>.post-content .avatar{top:0}.post-list .post{border-top:1px solid #dee2e7;border-top:1px solid rgba(0,0,0,0.1);*zoom:1;position:relative}.post-list .post:before,.post-list .post:after{display:table;content:"";line-height:0}.post-list .post:after{clear:both}.post-list .post .postbox .avatar .user img{height:24px;width:24px}.post-list .post .postbox .auth-section,.post-list .post .postbox .textarea-wrapper{margin:0 0 0 36px}.post-list .post .post{padding-left:36px;*zoom:1}.post-list .post .post:before,.post-list .post .post:after{display:table;content:"";line-height:0}.post-list .post .post:after{clear:both}.post-list .post .post .avatar .tooltip-outer{left:24px;top:- 12px}.post-list .post .post .avatar .user img{height:24px;width:24px}.post-list .post .post .indicator{height:24px;position:absolute}.post-list .post.collapsed .children{display:none}.post-list .post.minimized,.post-list .post.collapsed{padding-left:36px}.post-list .post.minimized .post-media,.post-list .post.collapsed .post-media{display:none}.post-list .post.minimized>.post-content,.post-list .post.collapsed>.post-content{-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none;min-height:24px;margin:0}.post-list .post.minimized>.post-content .collapse,.post-list .post.collapsed>.post-content .collapse{display:none}.post-list .post.minimized>.post-content .expand,.post-list .post.collapsed>.post-content .expand{display:inline!important}.post-list .post.minimized>.post-content .post-message p,.post-list .post.collapsed>.post-content .post-message p{line-height:24px}.post-list .post.minimized>.post-content header,.post-list .post.collapsed>.post-content header{line-height:24px;font-size:12px}.post-list .post.minimized>.post-content footer,.post-list .post.collapsed>.post-content footer{display:none}.post-list .post.minimized>.post-content .avatar,.post-list .post.collapsed>.post-content .avatar{top:15px}.post-list .post.minimized>.post-content .avatar img,.post-list .post.collapsed>.post-content .avatar img{height:24px;width:24px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.post-list .post.minimized>.post-content .indicator,.post-list .post.collapsed>.post-content .indicator{display:none}.post-list .post.collapsed>.post-content .post-message{display:none}.post-list .post.minimized>.post-content .post-message p{opacity:.7;font-size:12px}.children .children .children>.post{padding-left:0!important}.children .children .children>.post .post-body{margin-left:36px}#expand-children{display:none;font-size:12px;text-align:center;margin:0 0 15px}.children .children .children .children>.post #expand-children{display:block}.suggestions{background-color:blue;list-style-type:none;line-height:1;z-index:9999;width:100%;position:absolute;background-color:white;cursor:pointer;border:1px solid #b1b1b1;-webkit-box-shadow:0 2px 5px rgba(0,0,0,0.2);-moz-box-shadow:0 2px 5px rgba(0,0,0,0.2);box-shadow:0 2px 5px rgba(0,0,0,0.2);-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;background-color:#f2f2f2;background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(#fff),to(#f2f2f2));background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-ms-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#fff),color-stop(100%,#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(top,#fff,#f2f2f2);padding:0;zoom:1;margin:-2px 0 0;left:-1px;box-sizing:content-box}.suggestions li{position:relative;color:#666;padding:4px;overflow:hidden;height:26px}.suggestions li span{padding-left:26px;vertical-align:middle}.suggestions li .avatar{top:2px;left:2px;height:22px;width:22px}.suggestions li.active{background-color:#dee2e7}.suggestions li.header{background:#f2f2f2;padding:2px 8px;margin:0;height:18px}.suggestions li.header h5{margin:0;padding:0;border:0;font-weight:normal;font-size:11px;line-height:11px;color:#999;text-shadow:0 1px 0 #fff}.post-content{*zoom:1;padding-top:15px;padding-bottom:15px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.post-content:before,.post-content:after{display:table;content:"";line-height:0}.post-content:after{clear:both}.post-content .indicator{position:absolute;height:36px}.post-content .avatar{top:15px}.post-content.new{padding-left:12px}.post-content.new .avatar{left:12px}.post-content.new .indicator{-webkit-transition:opacity 10s linear;-moz-transition:opacity 10s linear;-ms-transition:opacity 10s linear;-o-transition:opacity 10s linear;transition:opacity 10s linear;width:5px;height:36px;background:#ffc62e;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;top:15px;left:0}.post-content.new.seen .indicator{filter:alpha(opacity=0);-khtml-opacity:0;-moz-opacity:0;opacity:0}.post-content.post-reply .source-avatar{position:absolute;left:4.5px;top:4.5px;height:31.5px;width:31.5px;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,0.12);-moz-box-shadow:0 0 0 1px rgba(0,0,0,0.12);box-shadow:0 0 0 1px rgba(0,0,0,0.12)}.post-content.post-reply .target-avatar{height:31.5px;width:31.5px}.post-content .post-media{margin:.5em 0 0}.post-content .post-media ul{*zoom:1}.post-content .post-media ul:before,.post-content .post-media ul:after{display:table;content:"";line-height:0}.post-content .post-media ul:after{clear:both}.post-content .post-media li{float:left;margin:0 10px 10px 0}.post-content .post-media a{background:#fff;cursor:-moz-zoom-in;cursor:-webkit-zoom-in;position:relative;display:block}.post-content .post-media a:after{display:block;content:"";position:absolute;top:0;left:0;right:0;bottom:0;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,0.12);-moz-box-shadow:inset 0 0 0 1px rgba(0,0,0,0.12);box-shadow:inset 0 0 0 1px rgba(0,0,0,0.12);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;z-index:1000}.post-content .post-media img{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;display:block;height:75px;width:75px;z-index:-1}.post-content footer{clear:both}.post-content .textarea-wrapper{margin:0 0 0 36px}.post-content .auth-section{margin:-4px 0 0 36px}.post-content .bullet{padding:0;font-size:75%;color:#ccc;line-height:1.4}.post-content header{color:#777;line-height:16px;font-size:12px;position:relative}.post-content header .bullet{padding:0 3px}.post-content header a,.post-content header .name{font-weight:600}.post-content header .post-menu{-webkit-transition:.2s linear;-moz-transition:.2s linear;-ms-transition:.2s linear;-o-transition:.2s linear;transition:.2s linear;filter:alpha(opacity=0);-khtml-opacity:0;-moz-opacity:0;opacity:0;visibility:hidden;position:relative;top:-2px;*zoom:1;float:right}.post-content header .post-menu:before,.post-content header .post-menu:after{display:table;content:"";line-height:0}.post-content header .post-menu:after{clear:both}.post-content header .post-menu>li{float:left;margin:0 0 0 8px}.post-content header .post-menu>li a{color:#666!important;color:rgba(0,0,0,0.5)!important}.post-content header .post-menu .collapse a,.post-content header .post-menu .expand a{font-size:20px;filter:alpha(opacity=60);-khtml-opacity:.6;-moz-opacity:.6;opacity:.6;position:relative;top:-7px;padding:10px 0 10px 10px}.post-content header .post-menu .collapse a:hover,.post-content header .post-menu .expand a:hover{filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1}.post-content header .dropdown .dropdown-toggle{border-left:1px dotted #afb8c5;border-left:1px dotted rgba(75,83,94,0.36);padding-left:5px}.post-content header .dropdown .dropdown-toggle .caret{margin-top:4px}.post-content header .dropdown .dropdown-toggle{border-left:1px dotted #afb8c5;border-left:1px dotted rgba(75,83,94,0.36);padding-left:5px}.post-content header .dropdown .dropdown-menu{-webkit-transition:all .1s linear;-moz-transition:all .1s linear;-ms-transition:all .1s linear;-o-transition:all .1s linear;transition:all .1s linear;position:absolute;left:auto;right:0;top:15px;min-width:100px;padding:0}.post-content header .dropdown .dropdown-menu li a{display:block;padding:6px 8px;white-space:nowrap;font-weight:600;font-size:11px}.post-content header .dropdown.open{filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1}.post-content header .dropdown.open .dropdown-toggle{background:0;color:#2e9fff!important}.post-content header .dropdown.open .dropdown-menu{filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1;visibility:visible!important}.post-content header .time-ago,.post-content header .parent-link{font-weight:400;font-size:95%;color:inherit}.post-content header .time-ago i,.post-content header .parent-link i{font-size:80%;padding:0 1px}.post-content .post-message{*zoom:1}.post-content .post-message:before,.post-content .post-message:after{display:table;content:"";line-height:0}.post-content .post-message:after{clear:both}.post-content .post-message.loading{background:url("http://mediacdn.disqus.com/1358467057/img/next/waiting.gif") center left no-repeat;min-height:22px}.post-content .post-message p{line-height:22px;margin:0 0 9px}.post-content .post-message p:last-child{margin:0}.post-content .post-message blockquote,.post-content .post-message pre{line-height:22px;margin:0 0 9px;border-left:4px solid #dee2e7;padding:0 0 0 12px}.post-content .post-message blockquote:last-child,.post-content .post-message pre:last-child{margin:0}.post-content .post-message code{font-size:12px;font-family:monaco,menlo,monospace}.post-content footer{font-size:11px;line-height:1.85;color:#6c6c6c;margin:4px 0 0}.post-content footer .bullet{line-height:1.6}.post-content footer menu{*zoom:1;margin:0;padding:0}.post-content footer menu:before,.post-content footer menu:after{display:table;content:"";line-height:0}.post-content footer menu:after{clear:both}.post-content footer menu li{float:left;list-style-type:none;margin:0 7px 0 0;padding:0}.post-content footer a{color:#999;font-weight:500}.post-content footer a:hover{color:#666}.post-content footer .voting{-webkit-transition:opacity .3s;-moz-transition:opacity .3s;-ms-transition:opacity .3s;-o-transition:opacity .3s;transition:opacity .3s;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;position:relative}.post-content footer .voting a{position:relative;display:inline-block;padding:0 4px;line-height:.85;height:11px;color:inherit;vertical-align:middle}.post-content footer .voting a:after{content:"";display:block;position:absolute;top:-10px;left:0;right:-6px;bottom:-10px}.post-content footer .voting .control{font-size:13px;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;-ms-transition:opacity .2s linear;-o-transition:opacity .2s linear;transition:opacity .2s linear;filter:alpha(opacity=70);-khtml-opacity:.7;-moz-opacity:.7;opacity:.7;border-left:0 solid transparent;border-right:0 solid transparent;vertical-align:middle}.post-content footer .voting .vote-up:hover .control,.post-content footer .voting .vote-down:hover .control{filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1}.post-content footer .voting .vote-up{padding-left:0}.post-content footer .voting .vote-up:after{right:-3px;left:-5px}.post-content footer .voting .vote-up .control{border-bottom:0 solid #495e6f}.post-content footer .voting .vote-down{padding-right:0;padding-left:6px;border-left:1px dotted #afb8c5;border-left:1px dotted rgba(75,83,94,0.36)}.post-content footer .voting .vote-down .count.count-0{display:none}.post-content footer .voting .vote-down .control{border-top:0 solid #495e6f}.post-content footer .voting .vote-down:hover .tooltip,.post-content footer .voting .vote-down:active .tooltip{filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1;visibility:visible!important}.post-content footer .voting .vote-down .tooltip{-webkit-transition:opacity .2s;-moz-transition:opacity .2s;-ms-transition:opacity .2s;-o-transition:opacity .2s;transition:opacity .2s;-webkit-transition-delay:.4s;filter:alpha(opacity=0);-khtml-opacity:0;-moz-opacity:0;opacity:0;visibility:hidden;position:absolute;z-index:100;display:inline-block;width:170px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;line-height:1.1;padding:6px 12px;border:0;font-weight:600;-webkit-box-shadow:0 0 0 2px rgba(18,30,38,.24),0 1px 6px rgba(18,30,38,.44);-moz-box-shadow:0 0 0 2px rgba(18,30,38,.24),0 1px 6px rgba(18,30,38,.44);box-shadow:0 0 0 2px rgba(18,30,38,.24),0 1px 6px rgba(18,30,38,.44);bottom:20px;left:-3px}.post-content footer .voting .vote-up.upvoted .count{color:#2e9fff}.post-content footer .voting .vote-up.upvoted .control{filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1;color:#2e9fff}.post-content footer .voting .vote-down.downvoted .count{color:#ff2e35}.post-content footer .voting .vote-down.downvoted .control{filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1;color:#ff2e35}.post-content footer .share{position:relative}.post-content footer .share .toggle{position:relative;z-index:1000;cursor:pointer}.post-content footer .share ul{top:-10px;left:0;padding:8px 4px 8px 40px;height:30px;width:300px;white-space:nowrap;position:absolute;filter:alpha(opacity=0);-khtml-opacity:0;-moz-opacity:0;opacity:0;visibility:hidden}.post-content footer .share ul li{-webkit-transition:all .4s ease-in-out;-moz-transition:all .4s ease-in-out;-ms-transition:all .4s ease-in-out;-o-transition:all .4s ease-in-out;transition:all .4s ease-in-out;filter:alpha(opacity=0);-khtml-opacity:0;-moz-opacity:0;opacity:0;position:absolute;left:0}.post-content footer .share:hover ul{filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1;visibility:visible!important}.post-content footer .share:hover ul li{filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1}.post-content footer .share:hover ul li.twitter{left:48px}.post-content footer .share:hover ul li.facebook{left:71px}.post-content footer .share:hover ul li.link{left:94px}.post-content .realtime{float:right;margin:0}.post-content .realtime .realtime-replies{color:#999;font-size:85%}.post-content .realtime .btn{-webkit-transition:right .2s ease-in-out;-moz-transition:right .2s ease-in-out;-ms-transition:right .2s ease-in-out;-o-transition:right .2s ease-in-out;transition:right .2s ease-in-out;display:inline;font-size:10px;padding:0 0 0 14px;position:relative;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;background:0;text-shadow:none;border:0;right:-100%}.post-content .realtime .btn.reveal{right:0}.post-content .realtime .btn.reveal .indicator{width:5px!important}.post-content .realtime .btn:hover{color:#444}.post-content .realtime .btn .indicator{-webkit-transition:width .6s ease-in-out;-moz-transition:width .6s ease-in-out;-ms-transition:width .6s ease-in-out;-o-transition:width .6s ease-in-out;transition:width .6s ease-in-out;display:inline-block;width:300px!important;height:9px!important;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;background:#ffc62e;position:absolute!important;left:5px!important;top:2px!important}.post-content:hover header .post-menu{filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1;visibility:visible!important}.mention{font-weight:600}.mention:before{content:"@"}.suggestions{background-color:blue;list-style-type:none;line-height:1;z-index:9999;width:100%;position:absolute;background-color:white;cursor:pointer;border:1px solid #b1b1b1;-webkit-box-shadow:0 2px 5px rgba(0,0,0,0.2);-moz-box-shadow:0 2px 5px rgba(0,0,0,0.2);box-shadow:0 2px 5px rgba(0,0,0,0.2);-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;background-color:#f2f2f2;background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(#fff),to(#f2f2f2));background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-ms-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#fff),color-stop(100%,#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(top,#fff,#f2f2f2);padding:0;zoom:1;margin:-2px 0 0;left:-1px;box-sizing:content-box}.suggestions li{position:relative;color:#666;padding:4px;overflow:hidden;height:26px}.suggestions li span{padding-left:26px;vertical-align:middle}.suggestions li .avatar{top:2px;left:2px;height:22px;width:22px}.suggestions li.active{background-color:#dee2e7}.suggestions li.header{background:#f2f2f2;padding:2px 8px;margin:0;height:18px}.suggestions li.header h5{margin:0;padding:0;border:0;font-weight:normal;font-size:11px;line-height:11px;color:#999;text-shadow:0 1px 0 #fff}.share .twitter a{background:url("http://mediacdn.disqus.com/1358467057/img/next/share.png") 0 0}.share .facebook a{background:url("http://mediacdn.disqus.com/1358467057/img/next/share.png") -18px 0}.share .link a{background:url("http://mediacdn.disqus.com/1358467057/img/next/share.png") -54px 0}.share>* a{display:inline-block;width:18px!important;height:18px!important;filter:alpha(opacity=60);-khtml-opacity:.6;-moz-opacity:.6;opacity:.6;text-indent:-9999em;overflow:hidden;padding:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;-ms-transition:opacity .2s linear;-o-transition:opacity .2s linear;transition:opacity .2s linear}.share>* a:hover{filter:alpha(opacity=80);-khtml-opacity:.8;-moz-opacity:.8;opacity:.8}.invisible{filter:alpha(opacity=0);-khtml-opacity:0;-moz-opacity:0;opacity:0;visibility:hidden}.visible{filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1;visibility:visible!important}#new{-webkit-transition:all .15s ease-in-out;-moz-transition:all .15s ease-in-out;-ms-transition:all .15s ease-in-out;-o-transition:all .15s ease-in-out;transition:all .15s ease-in-out}.fresh{background-color:#ffc;background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(#ffe),to(#ffc));background-image:-moz-linear-gradient(top,#ffe,#ffc);background-image:-ms-linear-gradient(top,#ffe,#ffc);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ffe),color-stop(100%,#ffc));background-image:-webkit-linear-gradient(top,#ffe,#ffc);background-image:-o-linear-gradient(top,#ffe,#ffc);background-image:linear-gradient(top,#ffe,#ffc);padding:5px;border:1px solid #ff0;margin:0 0 1em;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.fresh .post-footer p,.fresh li{margin:0}.moderate{*zoom:1;border:1px solid #d2d8de;background:#f2f2f2;background:rgba(0,0,0,0.03);padding:8px;margin:1em 0 0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.06);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.06);box-shadow:inset 0 1px 2px rgba(0,0,0,0.06)}.moderate:before,.moderate:after{display:table;content:"";line-height:0}.moderate:after{clear:both}.moderate.loading{background:url("http://mediacdn.disqus.com/1358467057/img/next/waiting.gif") center center no-repeat;min-height:22px}.moderate.loading *{display:none}.moderate h5{font-weight:600;margin:0 0 9px}.moderate p{margin:0;color:#666}.moderate label{width:50%;float:left;display:block;margin:0 0 9px 0;min-width:150px;white-space:nowrap}.moderate .btn.small{font-size:11px;padding:4px 6px;line-height:1;text-align:center;min-width:65px}.moderate .pull-right{padding-top:6px}.moderate .actions{clear:both;border-top:1px solid #dee2e7;padding:8px;margin:-8px}#community .avatar{top:1px}#community h3{font-size:11px;color:#999;text-transform:uppercase;font-weight:700}#community h3 strong{color:#666}#community h4{margin-bottom:4px;font-size:16px}#community h4 a{font-weight:600}#community h5{line-height:1.4;margin:0 0 1px}#community h5 a{font-weight:600}#community li{margin-bottom:20px}#community p{line-height:1.4;margin:0}#top-threads .top-thread-post{position:relative;padding-left:48px}#top-threads .top-thread-post p{min-height:36px}#top-threads strong a{color:inherit;filter:alpha(opacity=60);-khtml-opacity:.6;-moz-opacity:.6;opacity:.6}#top-threads .likes{position:relative;padding-left:20px;margin-left:-1px}#top-threads span.votes{display:block;position:absolute;left:0;top:-2px;height:15px;width:15px;overflow:hidden;text-indent:9999em;background:url("http://mediacdn.disqus.com/1358467057/img/next/star.png");filter:alpha(opacity=70);-khtml-opacity:.7;-moz-opacity:.7;opacity:.7}#top-threads>li{padding-bottom:15px;margin-bottom:15px;border-bottom:1px dotted #dee2e7;border-bottom:1px dotted rgba(0,0,0,0.2)}#top-threads>li:last-child{border-bottom:0;margin-bottom:0}#top-threads .meta{*zoom:1;margin:0 0 10px}#top-threads .meta:before,#top-threads .meta:after{display:table;content:"";line-height:0}#top-threads .meta:after{clear:both}#top-threads .meta li{float:left;margin:0;line-height:1.1;font-size:12px}#top-threads .meta li.bullet{margin:0 6px;padding:0;font-size:75%;color:#ccc;line-height:1.3}#top-threads .meta li a{color:inherit;line-height:1}#top-users .avatar img{height:36px;width:36px}#top-users .top-user{min-height:36px;position:relative;margin:0 0 18px;padding-left:48px;padding-bottom:5px;margin-bottom:10px;list-style:none}#top-users .top-user h5{padding:1px 0 0}#top-users .top-user h5 a{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:18px}#top-users .top-user p{line-height:1.4;padding:0 0 6px}.captcha{*zoom:1;padding:0 0 10px}.captcha:before,.captcha:after{display:table;content:"";line-height:0}.captcha:after{clear:both}.captcha .primary{width:70%;float:left;padding-right:20px}.captcha .secondary{width:30%;float:left;font-size:85%}.captcha .secondary a{color:#777;text-decoration:underline}.captcha .inputs{position:relative}.captcha .inputs .btn{position:absolute;right:0;top:0;width:80px}.captcha .inputs .input-wrapper{margin-right:90px}.captcha .captcha-image{background:#fff;text-align:center;border:2px solid #ccc;padding:15px 0;margin:0 0 10px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;height:91px}.captcha .captcha-image img{height:57px}.captcha p{margin:0 0 10px}.updatable{-webkit-transition:all .3s linear;-moz-transition:all .3s linear;-ms-transition:all .3s linear;-o-transition:all .3s linear;transition:all .3s linear}.updatable.update{color:#222;text-shadow:0 0 2px rgba(0,0,0,0.2)}.post-count .update{color:#666}.realtime-indicator{font-family:"Helvetica Neue",Helvetica,sans-serif;display:block;width:620px;border:2px solid #ccc;background:#f4f4f4;background-color:rgba(248,248,248,0.98);background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(rgba(253,253,253,0.8)),to(rgba(248,248,248,0.98)));background-image:-moz-linear-gradient(top,rgba(253,253,253,0.8),rgba(248,248,248,0.98));background-image:-ms-linear-gradient(top,rgba(253,253,253,0.8),rgba(248,248,248,0.98));background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,rgba(253,253,253,0.8)),color-stop(100%,rgba(248,248,248,0.98)));background-image:-webkit-linear-gradient(top,rgba(253,253,253,0.8),rgba(248,248,248,0.98));background-image:-o-linear-gradient(top,rgba(253,253,253,0.8),rgba(248,248,248,0.98));background-image:linear-gradient(top,rgba(253,253,253,0.8),rgba(248,248,248,0.98));-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.08);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.08);box-shadow:0 1px 3px rgba(0,0,0,0.08);color:#777;padding:7px 0;margin:0;filter:alpha(opacity=90);-khtml-opacity:.9;-moz-opacity:.9;opacity:.9;cursor:pointer;font-size:13px;line-height:1;z-index:1000;position:fixed;left:50%;margin-left:-310px}.realtime-indicator.up{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;top:0;border-top:0}.realtime-indicator.down{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;bottom:0;border-bottom:0}.realtime-indicator b{font-size:400}.realtime-indicator em{color:#444;font-weight:600;font-style:normal;margin:0 4px}.realtime-indicator:hover{border-color:#bbb}.return{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;float:right;position:relative;z-index:100;top:7px}.user-info{position:relative;padding:0 0 0 88px;min-height:70px;margin:0 0 1.2em}.user-info h2{font-weight:700;font-size:18px;margin:0;line-height:1.2;float:left}.user-info header{*zoom:1}.user-info header:before,.user-info header:after{display:table;content:"";line-height:0}.user-info header:after{clear:both}.user-info .services{float:left;*zoom:1;margin:4px 0 0 10px}.user-info .services:before,.user-info .services:after{display:table;content:"";line-height:0}.user-info .services:after{clear:both}.user-info .services li{float:left;margin:0 5px 0 0}.user-info .services li a{display:block;height:16px;width:16px;text-indent:-9999em}.user-info .services li.facebook a{background:url("http://mediacdn.disqus.com/1358467057/img/next/social-icons-sm.png")}.user-info .services li.twitter a{background:url("http://mediacdn.disqus.com/1358467057/img/next/social-icons-sm.png") -16px 0}.user-info .services li.google a{background:url("http://mediacdn.disqus.com/1358467057/img/next/social-icons-sm.png") -32px 0}.user-info p{margin:4px 0;line-height:1.4}.user-info .avatar{top:0}.user-info .avatar img{height:75px;width:75px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.user-info .bullet{font-size:75%;filter:alpha(opacity=50);-khtml-opacity:.5;-moz-opacity:.5;opacity:.5;padding:0 3px}.user-stats{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;border:1px solid #dee2e7;margin:0 0 1em}.user-stats ul.numbers{*zoom:1}.user-stats ul.numbers:before,.user-stats ul.numbers:after{display:table;content:"";line-height:0}.user-stats ul.numbers:after{clear:both}.user-stats ul.numbers li{float:left;min-width:80px;padding:5px 7px;border-right:1px solid #dee2e7}.user-stats ul.numbers li h6{margin:0;text-transform:lowercase}.user-stats ul.numbers li p{margin:0}.user-stats ul.numbers .number{font-size:20px;font-weight:700;color:#474a4e}.user-stats .follow{padding:6px 5px 0 0}.user-stats .btn{font-size:12px;line-height:1}.user-stats .mute{padding-left:8px;padding-right:8px}.user-stats .mute span{display:block;text-indent:-9999em;height:12px;width:12px;background:url("http://mediacdn.disqus.com/1358467057/img/next/mute.png")}.user-stats .mute:hover span{background:url("http://mediacdn.disqus.com/1358467057/img/next/mute.png") 0 -12px}.tooltip-outer{padding:0 0 0 12px;z-index:2000;position:absolute;top:-20px;left:0;left:36px}.tooltip{position:relative;background:#fff;background:rgba(255,255,255,0.94);-webkit-transition:opacity .25s linear;-moz-transition:opacity .25s linear;-ms-transition:opacity .25s linear;-o-transition:opacity .25s linear;transition:opacity .25s linear;width:290px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 1px 6px rgba(0,0,0,0.28);-moz-box-shadow:0 1px 6px rgba(0,0,0,0.28);box-shadow:0 1px 6px rgba(0,0,0,0.28);border:1px solid #959da4;border:1px solid #97a4b3;padding:8px 8px 0;color:#7f8d99}.tooltip .jump{padding:0 14px 0 0;background:url("http://mediacdn.disqus.com/1358467057/img/next/proceed.png") center right no-repeat}.tooltip .notch{width:14px;height:30px;background:url("http://mediacdn.disqus.com/1358467057/img/next/tooltip-notch.png") left center;position:absolute;top:16px;left:-14px}.tooltip .avatar{top:8px!important;left:8px}.tooltip .avatar img{display:block;height:75px;width:75px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;min-width:75px!important;min-height:75px!important}.tooltip .content{margin-left:84px;min-height:74px}.tooltip .content h3{margin:0 0 5px;font-size:14px;line-height:1}.tooltip .content h3 a{font-weight:700}.tooltip .content h3 .badge{position:relative;top:-1px}.tooltip .content p{margin:0 0 2px;font-size:13px;line-height:1.3}.tooltip .content p.bio{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.tooltip .content p.stats{font-size:10px;font-weight:700}.tooltip .content p.stats .bullet{filter:alpha(opacity=50);-khtml-opacity:.5;-moz-opacity:.5;opacity:.5}.tooltip footer{display:block!important;background:#f8f8f8;border-top:1px solid #cfd5dc;margin:8px -8px 0;padding:4px 7px;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tooltip footer .btn{font-size:12px;padding:0;padding:4px 6px;line-height:1}.tooltip footer .full-profile{color:#7f8d99;font-weight:700;float:right!important;font-size:12px;line-height:1.9;padding:0 13px 0 0;background:url("http://mediacdn.disqus.com/1358467057/img/next/proceed.png") center right no-repeat}.tooltip footer .mute span{display:block;text-indent:-9999em;height:12px;width:12px;background:url("http://mediacdn.disqus.com/1358467057/img/next/mute.png")}.tooltip footer .mute:hover span{background:url("http://mediacdn.disqus.com/1358467057/img/next/mute.png") 0 -12px}.user-activity .avatar{top:0}.user-activity ul{margin-bottom:35px}.user-activity img.user{display:inline-block;position:relative;top:5px;margin-right:5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;height:24px;width:24px}.user-activity li{padding:0 0 0 34px;position:relative;line-height:22px;margin-bottom:20px}.user-activity li header{padding-top:4px;display:block;margin-bottom:9px;font-size:12px;line-height:18px;color:#888}.user-activity li article{display:block}.user-activity li article blockquote{border-left:4px solid #dee2e7;padding-left:12px}.user-activity li article blockquote p{line-height:1.4}.user-info .disqus{padding-right:5px;border-right:1px solid rgba(0,0,0,0.15)}.user-info .disqus a{width:auto!important;text-indent:0!important}.my-disqus-nav{border:0;margin:1.5em 0;*zoom:1}.my-disqus-nav:before,.my-disqus-nav:after{display:table;content:"";line-height:0}.my-disqus-nav:after{clear:both}.my-disqus-nav li{float:left;width:33.33%;border-bottom:2px solid rgba(0,0,0,0.14)}.my-disqus-nav li a{display:block;padding:9px 14px 12px;color:inherit}.my-disqus-nav li a .count,.my-disqus-nav li a .label{filter:alpha(opacity=50);-khtml-opacity:.5;-moz-opacity:.5;opacity:.5}.my-disqus-nav li .count{font-size:125%;line-height:1.4;font-weight:400;display:block}.my-disqus-nav li .label{font-size:100%}.my-disqus-nav li.active{background:rgba(0,0,0,0.05);border-bottom:2px solid rgba(0,0,0,0.3);-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0}.my-disqus-nav li.active .count{filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1}.my-disqus-nav li.active .label{filter:alpha(opacity=70);-khtml-opacity:.7;-moz-opacity:.7;opacity:.7}.my-disqus-nav li:hover .count{filter:alpha(opacity=90);-khtml-opacity:.9;-moz-opacity:.9;opacity:.9}.my-disqus-nav li:hover .label{filter:alpha(opacity=70);-khtml-opacity:.7;-moz-opacity:.7;opacity:.7}.trending-conversations p{margin:0 0 1em}.trending-conversations h4{font-size:12px;margin:0 0 3px}.trending-conversations h4 a{font-weight:bold}.trending-conversations h4 a.site{font-weight:400;color:inherit}.trending-conversations .badge{position:relative;top:-1px}.trending-conversations .meta{font-size:11px;filter:alpha(opacity=70);-khtml-opacity:.7;-moz-opacity:.7;opacity:.7}.trending-conversations .meta a{color:inherit;font-weight:400}.notifications{margin:0 0 1em}.notifications .notification{position:relative;padding:15px 0 15px 34px;border-bottom:1px solid #dee2e7;border-bottom:1px solid rgba(0,0,0,0.08)}.notifications .notification .indicator{position:absolute;left:0;top:19px;height:24px;width:5px;background:#ffc62e;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;display:none}.notifications .notification.unseen{padding-left:44px}.notifications .notification.unseen .indicator{display:block}.notifications .notification.unseen .avatar{left:10px}.notifications .notification:first-child{padding-top:0}.notifications .notification:first-child .avatar{top:4px}.notifications .notification:first-child .indicator{top:4px}.notifications .notification:last-child{border-bottom:0}.notifications .notification .avatar{top:19px}.notifications .notification .avatar img{height:24px;width:24px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.notifications .notification p{font-size:14px;line-height:1.3;margin:0}.notifications .notification p a{font-weight:500}.notifications .notification .notification-meta{font-size:12px}.notifications .notification .notification-meta a{color:inherit;filter:alpha(opacity=70);-khtml-opacity:.7;-moz-opacity:.7;opacity:.7;font-weight:400}.network-activity h5 a{color:inherit;font-weight:700}.network-activity h5 strong a{color:#666}.network-activity h4{line-height:1.1;margin:0 0 12px;font-size:20px}.network-activity h4 a{color:inherit}.network-activity .avatar img{height:36px;width:36px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.network-activity .network-activity-group{margin-top:1em}.network-activity .network-activity-group:first-child{margin-top:0}.who-to-follow{border-bottom:1px solid #dee2e7;border-bottom:1px solid rgba(0,0,0,0.08);margin:0 0 1em}.who-to-follow li{position:relative;padding:0 0 0 36px;min-height:36px;margin:0 0 1em}.who-to-follow li h5{line-height:1;margin:0}.who-to-follow li h5 a{font-weight:600}.who-to-follow .avatar{top:1px}.who-to-follow .avatar img{height:26px;width:26px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.who-to-follow p{font-size:11px;margin:0}.who-to-follow p.extra-info{margin:5px 0;filter:alpha(opacity=80);-khtml-opacity:.8;-moz-opacity:.8;opacity:.8}#guest{margin:0 .25em 1.5;position:relative}#guest .tout{margin:0 0 1.5em}#guest .tout h2{font-size:22px;font-weight:500;line-height:1.2;margin:0 0 .5em}#guest .tout p{margin:0 0 1em;line-height:1.4}#guest .tout p.actions{margin:0 0 1.5em}#guest .tout .btn{font-size:12px;color:#fff!important;display:block;float:left;background:#2e9fff;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;text-shadow:none;margin:0 10px 0 0}#guest .tout span{float:left;line-height:33px}#guest .tout span a{color:#999!important}#guest .tout img.my-disqus-preview{padding:15px 15px 0;max-width:100%;background:#fff;border:1px solid #ccc;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.15);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.15);box-shadow:0 1px 4px rgba(0,0,0,0.15);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}body.dark{color:#fff}body.dark h6{color:#fff;color:rgba(255,255,255,0.6)}body.dark .user-stats ul.numbers .number{color:inherit}body.dark .alert{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}body.dark .thread-likes.upvoted .btn.small,body.dark .thread-likes .btn.small:active{border:0}body.dark .thread-likes .dropdown.open .dropdown-toggle{background:rgba(255,255,255,0.4)}body.dark .thread-likes a{background:#b3b3b3;background:rgba(255,255,255,0.7)}body.dark .thread-likes a .counter{color:#000;color:#000}body.dark .thread-likes a .notch{border-right:4px solid #b3b3b3;border-right:4px solid rgba(255,255,255,0.7)}body.dark .thread-likes a:hover{background:#d9d9d9;background:rgba(255,255,255,0.85)}body.dark .thread-likes a:hover .icon-star{text-shadow:0 0 6px #ffbf00}body.dark .thread-likes a:hover .counter{color:#000;color:#000}body.dark .thread-likes a:hover .notch{border-right:4px solid #d9d9d9;border-right:4px solid rgba(255,255,255,0.85)}body.dark .thread-likes.upvoted a{background:#6fa42a;background:rgba(132,192,62,0.85)}body.dark .thread-likes.upvoted a .icon-star{color:#ccc;color:rgba(255,255,255,0.8);text-shadow:none}body.dark .thread-likes.upvoted a .counter{color:#fff;color:#fff}body.dark .thread-likes.upvoted a .notch{border-right:4px solid #6fa42a;border-right:4px solid rgba(132,192,62,0.85)}body.dark .thread-likes.upvoted a:hover{background:#84c03e;background:#84c03e}body.dark .thread-likes.upvoted a:hover .icon-star{color:#fff;color:#fff}body.dark .textarea-wrapper,body.dark .focus .textarea-wrapper,body.dark .btn,body.dark .btn:hover,body.dark .btn:active{border:0}body.dark .dark #global-nav li a{color:#eee;color:rgba(255,255,255,0.4)}body.dark .bullet{color:rgba(255,255,255,0.22)}body.dark .caret{border-top:4px solid #fff}body.dark .btn .caret{border-top:4px solid #000}body.dark .post{border-top-color:rgba(255,255,255,0.17)}body.dark #top-threads>li{border-bottom-color:rgba(255,255,255,0.17)}body.dark .vote-down,body.dark .post-content header .dropdown .dropdown-toggle{border-left:1px dotted rgba(255,255,255,0.17)!important}body.dark .post-content header,body.dark .post-content header>a,body.dark .post-content footer a,body.dark .post-content footer .voting{color:#fff;color:rgba(255,255,255,0.72)}body.dark .notification{border-bottom:1px solid rgba(255,255,255,0.08)}body.dark .textarea-wrapper{background:#fff;border:0}body.dark .textarea-wrapper .textarea{color:#444}body.dark .textarea-wrapper .textarea::-webkit-input-placeholder{color:#999}body.dark .textarea-wrapper .textarea:-moz-placeholder{color:#999}body.dark .focus .textarea-wrapper,body.dark .active .textarea-wrapper{border:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}body.dark .input-wrapper input{border:0}body.dark .auth-section .connect .services a{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}body.dark .post-content header .post-menu>li>a{color:#fff!important;color:rgba(255,255,255,0.8)!important}body.dark .post-actions{height:34px;border-top:0;background:rgba(0,0,0,0.04);-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,0.16);-moz-box-shadow:inset 0 1px 0 rgba(0,0,0,0.16);box-shadow:inset 0 1px 0 rgba(0,0,0,0.16)}body.dark .post-actions .btn{right:1px;top:1px;-webkit-border-radius:0 0 3px 0;-moz-border-radius:0 0 3px 0;border-radius:0 0 3px 0;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,0.2);-moz-box-shadow:0 0 0 1px rgba(0,0,0,0.2);box-shadow:0 0 0 1px rgba(0,0,0,0.2)}body.dark .auth-section .post-actions-tabs li a{color:#555}body.dark .auth-section .post-actions-tabs li.active a{color:#333}body.dark .auth-section .guest{border-left:1px dotted rgba(255,255,255,0.17)}body.dark .actions .forgot{text-shadow:none}body.dark .dropdown .dropdown-toggle{border:0}body.dark .dropdown .dropdown-menu{border:0}body.dark .dropdown.open .dropdown-toggle{border:0}body.dark .nav{border-bottom-color:rgba(255,255,255,0.17)}body.dark .nav>ul>li.active>a{color:#fff!important}body.dark .nav>ul>li.active>a:hover{color:#fff!important}body.dark .nav>ul>li>a{color:#eee!important;text-shadow:none}body.dark .nav>ul>li>a .divider{border-right:1px dotted rgba(255,255,255,0.17)}body.dark .my-disqus-nav li{border-bottom:2px solid rgba(255,255,255,0.14)}body.dark .my-disqus-nav li.active{border-bottom:2px solid rgba(255,255,255,0.3)}body.dark .network-activity h5{color:#fff;color:rgba(255,255,255,0.7)}body.dark .network-activity h5 strong a{color:#fff;color:rgba(255,255,255,0.8)}body.dark .mention:after{color:#fff!important}body.dark #global-nav .bullet{color:#666}body.dark #global-nav li a{color:#888}body.dark #global-nav li a:hover{color:#288ce4}body.dark #global-nav li.active a{color:#fff}body.dark .full-profile{color:#7f8d99!important}body.dark .tooltip .btn{color:#555;border:1px solid #a9b3c0;border:1px solid rgba(75,83,94,0.45)}body.dark #footer{border-top:2px solid #e4e4e4;border-top:2px solid rgba(255,255,255,0.08)}body.dark #footer ul li a{color:rgba(255,255,255,0.45)}body.dark #footer ul li a:hover{color:rgba(255,255,255,0.6)}body.dark #footer .logo a{height:17px;background-position:bottom right}.touch .post-content header .post-menu{filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1;visibility:visible!important}.touch .post-content footer .share ul{top:-11px;-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none}.touch .post-content footer .share ul li{filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1}.touch .post-content footer .share ul li.twitter{left:42px}.touch .post-content footer .share ul li.facebook{left:65px}.touch .post-content footer .share ul li.link{left:88px}.ie8 .post-content header .post-menu .collapse a,.ie8 .post-content header .post-menu .expand a{top:-5px}.ie9 .post-content header .post-menu .collapse a,.ie9 .post-content header .post-menu .expand a{top:-4px}.ie8 .thread-likes .btn:active,.ie8 .thread-likes .btn:hover{background:#fff!important}.ie8 .thread-likes.upvoted .btn,.ie8 .thread-likes.upvoted .btn:hover{background:#2892ff!important}.ie8 #global-nav{display:block}.parent-link{position:relative}.context-card{display:block;left:-100px;right:0;top:-58px}.context-card .notch{top:auto;left:100px;bottom:-9px;background-position:bottom center;height:14px}.context-card .tooltip{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;padding:5px 5px 0;width:220px}.context-card .tooltip .avatar{left:5px!important;top:5px!important}.context-card .tooltip .avatar img{width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important}.context-card .content{min-height:38px;margin-left:44px}.context-card .content p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#footer{clear:both;border-top:2px solid #e4e4e4;border-top:2px solid rgba(0,49,79,0.08);padding:18px 0}#footer ul{*zoom:1}#footer ul:before,#footer ul:after{display:table;content:"";line-height:0}#footer ul:after{clear:both}#footer li{float:left;margin:0 24px 0 0;position:relative}#footer a{color:inherit;color:rgba(34,59,74,0.4);padding:0 0 0 25px;font-size:12px;font-weight:600}#footer i{position:absolute;left:0}#footer .logo{float:right;margin:0}#footer .logo a{display:block;float:right;text-indent:-9999em;background-image:url("http://mediacdn.disqus.com/1358467057/img/next/powered-by.png");background-position:right top;background-repeat:no-repeat;height:16px;width:86px;padding:0}#footer .rss a,#footer .email a{line-height:1.1;-webkit-transition:color .2s;-moz-transition:color .2s;-ms-transition:color .2s;-o-transition:color .2s;transition:color .2s}#footer .rss a:hover,#footer .email a:hover{color:inherit;color:rgba(34,59,74,0.55)}#footer .rss i{font-size:14px;top:0}#footer .email a{padding:0 0 0 27px}#footer .email i{font-size:18px;top:-2px}#footer .email .input-wrapper input{padding:4px 8px;height:24px;position:relative;top:-5px;font-size:11px}#footer .email .icon-checkmark{filter:alpha(opacity=0);-khtml-opacity:0;-moz-opacity:0;opacity:0;visibility:hidden;-webkit-transition:all .15s ease-in-out;-moz-transition:all .15s ease-in-out;-ms-transition:all .15s ease-in-out;-o-transition:all .15s ease-in-out;transition:all .15s ease-in-out;color:#4bad00;font-size:11px;position:absolute;right:-17px;top:-5px;left:auto}#footer .email>.form{display:none}#footer .email.show-form .default{display:none}#footer .email.show-form .form{display:block}#footer .email.subscribed .default{display:block}#footer .email.subscribed .default a{color:#4bad00}#footer .email.subscribed .default .icon-checkmark{filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1;visibility:visible!important;position:absolute;top:2px}#footer .email.subscribed .form{display:none}.debug{margin-bottom:2em}.debug li{line-height:1.5em}.hashtag{filter:alpha(opacity=60);-khtml-opacity:.6;-moz-opacity:.6;opacity:.6}.serif .post-message p,.serif .top-thread-post p,.serif .top-user p{font-family:Georgia,Times,serif}pre .comment,pre .template_comment,pre .diff .header,pre .javadoc{color:#998;font-style:italic}pre .keyword,pre .css .rule .keyword,pre .winutils,pre .javascript .title,pre .lisp .title,pre .nginx .title,pre .subst,pre .request,pre .status{color:#000;font-weight:bold}pre .number,pre .hexcolor{color:#40a070}pre .string,pre .tag .value,pre .phpdoc,pre .tex .formula{color:#d14}pre .title,pre .id{color:#900;font-weight:bold}pre .javascript .title,pre .lisp .title,pre .subst{font-weight:normal}pre .class .title,pre .haskell .type,pre .vhdl .literal,pre .tex .command{color:#458;font-weight:bold}pre .tag,pre .tag .title,pre .rules .property,pre .django .tag .keyword{color:#000080;font-weight:normal}pre .attribute,pre .variable,pre .instancevar,pre .lisp .body{color:#008080}pre .regexp{color:#009926}pre .class{color:#458;font-weight:bold}pre .symbol,pre .ruby .symbol .string,pre .ruby .symbol .keyword,pre .ruby .symbol .keymethods,pre .lisp .keyword,pre .tex .special,pre .input_number{color:#990073}pre .builtin,pre .built_in,pre .lisp .title{color:#0086b3}pre .preprocessor,pre .pi,pre .doctype,pre .shebang,pre .cdata{color:#999;font-weight:bold}pre .deletion{background:#fdd}pre .addition{background:#dfd}pre .diff .change{background:#0086b3}pre .chunk{color:#aaa}pre .tex .formula{opacity:.5}@media(max-width:480px){.auth-section .column{width:100%}.auth-section .connect{position:relative}.auth-section .guest{margin:0;padding:0;border:0}.auth-section .proceed{*zoom:1;position:static}.auth-section .proceed:before,.auth-section .proceed:after{display:table;content:"";line-height:0}.auth-section .proceed:after{clear:both}.auth-section .proceed .forgot{color:#a9adb3;font-size:12px;padding:3px 0;text-shadow:0 1px rgba(255,255,255,0.85);line-height:2.5}#community-tab{display:none}.auth-section .audiencesync .icons-container img{width:16px}#footer{margin:0 0 10px}#footer li{float:none!important;margin:0;border-bottom:1px solid #E4E4E4;border-bottom:1px solid rgba(0,49,79,0.08);padding:16px 0}#footer .rss i{top:16px}#footer .email i{top:14px}#footer .logo{padding-top:0}#footer .logo a{margin:0 autoe;float:none}#footer .email .icon-checkmark{right:13px}#footer .email.subscribed .default .icon-checkmark{top:16px}.my-disqus-nav li{width:50%}.my-disqus-nav li.user-followers-count{display:none}}\X=
+\XB
+\]]B
+^B
+I]YVY[SJ@
+]^ZA
+^]][\B
+XZH\\Z[^Z^?
+\\I][LZ\^YXH^]HbX\YaE
+J
+
+F]PLXN]VNX\O
+T
+ZX^[Y^YXY^\^[`KN]NYLYI^\^G^\Z\Y[Z-(VX^XZZZ?
+@B\A`Y?
+[\@
+YZ\\`^`W^[A
+^[^\^JJ\>
+\^^\@
+]`\^^A
+NÀ^]^\B
+\^\XDCFÇ©AD\^/,0$
+^F[@\ZZYZVWY\^[^K
+\ZZB^\[ZXDD^^ZL\B3F^\]^D^@
+^\]Z^^]\\ZY\^^\V^^Z`M][ZKM^\]@T
+`KJT4 0
+B
+XR
+H
+
+A
+^D
+][D
+^T
+D]Z^[B\\_Z\^3*N^1*^`J^[\_\X[IR
+T
+R
+\NN3*4*^B
+^[Z\^ZYT
+?
+B[\F
+SR
+]S
+_D
+\]F`^``\^^V
+_^ZCYF0"
+0"
+LL^[PXL
+[Z`\\F\R
+J^^\A
+I\^]bLTN
+P
+^]F
+^`\J`Z^^P
+XXZ^^YHXSÞ§^^][ZY]^b^\Z^\P
+\\Tò\H¾"8^¸[·W0)ð"Í"9Y]ÿ0,]/*]B
+0
+"
+*"
+(
+
+¨Z^Y^£¼\ßZº\\^[NA
+Í[¹ïüG¹
+^¡ö:ú`.`L]NPL
+\3
+..`]I\[\]]b]``@
+`N
+
+MZ`R
+MH^LJ^T
+T
+`]^_^^\I`@
+D
+^__]F
+D
+`X`^\^B
+B\\X[@
+B
+J]^[D\3*D
+6*D
+^\ZÅ\^[J]\\^\^T
+]W\\K$<@
+^]¯¼Dý­°\\Z^]@`]\]@\Z\\HZ`\^..4*0.T
+[`\^]0"K`[Q
+^4
+S
+ 8[^^4*4 
+U
+\^F^O
+T
+=
+
+Z^\\J\FL..ZZ2 
+"*@
+Z]\Z`[^\[/*^\^D[L
+\D_T^^^M[`2(bL`Y`#6L^\]FLDWUY]`NH[b\X
+MR
+T
+^B
+^OX[\T
+^Z >/,^#6]$:4(\I^^^O^D\Z`F[`T
+_^^T
+ZL^^Z]^YGBZ^^\VP
+\US
+ ,^]^^\^`\` <\^]Z\\^^`^[ *^[0( 2B
+[Y\FWZ^XHIB
+>
+Z]]Ba\F\^`^Z]@
+R^T
+L[^L
+L\^b..Z^^\`CJ^`ZR
+>\\Z^\^[I]¡
+[ó]4[$<^R[NE
+bWJ^]\bT
+b]^[[^D[`ZZ^\^X^\^R
+T
+^_W^Z\\X@
+\B
+[^FAA^^YDY=
+ZFZY\<
+\^^Z`[\_][`Y\`\\Z\Z^^XX^\W^\][Z]ZZ\[\^^^`\ZDX^\>[Z^^T
+@
+B
+^J^]^Z\][]T
+\R
+BA
+ZDX
+T
+]T
+]^LY]\\<
+T
+B^XX[]^\^ZZ\`^YX[]B
+^^\N\S
+^O
+^Õ]^Z]\^^[\\[@PN
+P
+XP
+T
+P
+@
+Z^FP>
+[OYZ´\³Yç§*ùU²^ä^¼[\\\\\ZX[X\VZ^Q
+G[]µ
+¼
+Ö7è
+¹Nüî¨ÿ
+â
+Õ¿^^]B
+]^¯é´^ê¶¿`2*J]^X]?Ò¿­{]\^D
+\[b\b¸^\^\ë
+
+ò`Â\¥¢êêê£î£î£î
+²
+ÕíË
+²
+î
+²
+Õí
+²
+ÕíË
+²
+î
+²
+ÕíÂ¸^íQî °
+ë<íQî °
+ë<ÒnCF>/EBEìï
+
+
+
+Þ±ãúJ¼T¶¶ÍêÍê¡¡¡¡¡¡¡¡«{=*ÍÍ;		;		;		;		7		
+â"À³»Ü
+³»Ü
+ê Ê­«áè¶
+uÐí
+1&(ªÿãÄºÍ¨úîÐÇÇ¤ÑÝÌÎ³ÌÍëèÀK´E#8ëãëãëãëãï©ÍÓksÄ&((((((((¶
+
+``ÏÏT					
+T					
+T					
+T					
+P					
+
+]Í|g
+óÀ	¸­X;`ìÿËË%+¤ñðæúÈìÎÒÌµ
++¤ñðæúÈìÎÒÌµ
+
+
+
+
+
+
+
+÷·%ìÍ
+÷ñ?
++ú¤Næ"ÞÉ#×
+ú#'Æ%håÖá)«,ZZXXZ¨)¸6¸Ý'áÂ3Ìì*ÕÑÃü+ïK­¿/7Ã  °!&Ç;±µ
+Âå
+¡&Ì¯RZWZTWV\YS\\X\\ZZYYZYZ
+E
+Þ"ö¿2¥PÊ"¹Õ Ý
+¹8Ë
+ï
+Ñ
+â
+¶!¶0·"ð)CÊ ÚïÖÿ@ª'À\Ú&Öå<ZZXWWWZXVYZXXXTTVZVVWSYXVVVVVVUWXVWXXVXXXXXXVXXXXVS×
+.×²Ï á¾\ò)Tá	÷<íû
+
+ÇAÝ !²*À ë!ÕÞ#ËâHî!
+ª
+²
+£h
+ ²[ZWZZZ\XYYZXYZZYZZWUZZZZUZZZX\YYZZZXXZ[]\YZYZ\ZjÄq´Sõ!¾YÉB³ô
+©=Â6ÞGÂ)Ôë5ø/©$#Ê'¯Ø
+ê
+é!XXZXXZVXY\XXZZXXWWXUXYYXXU\\VVZZWX\\X[[UX[WW[\\ZY§CËG±ÈÇïÍ/Î³¡
+õ!¡V¢6ù:ýü2"¢rÙï ;ïÍ
+²Dý$®$ ""¯"«"ìC#â"ÐDþ!`^^W_]b^^\a\Z\XTTZTVX\^\^\Z\\^ZU[ZXZY\YZ^ZY\\]["ý#úÈ¤ ¬Bõ!½ Þ\ô©"¾"^^]Z\^^Y^Z\VVXXXXZVX\ZUXX[UVXTVXYWX\WXYUUWò«{çVá1¨ðÁÍ6ã/ /ë
+¥êEá/·I«ñ
+°0È/´\YVX]VY^ZUUTZVTZXSZXZ^Z\[`TVVYXVVUTZZZZZZXí
+ýÌñø½ ÊÃ/¶  
+	ÁÌWË?01°3Ú'÷3¨²
+ @â$üAñ,^^^\X]ZZZ^Y\\ZZXXZXVSX\ZZZZXWæÖ ¼
+ô%Ó-Ü
+Ë$Ø§×,Û
+w2ð¼~Ï1²
+*å ©Èâ4ZXV^Z[ZZ`XZZ`ZXXXZYZYZYTXYZW²©$±¹
+ê	¦)Ä²M7ëLñ
+î7ÔLÄþ
+ñ=:ü
+é'¾Ñ§í1YZZZX]
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/obj/Debug/Picasa Face Tag Extraction.application
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/obj/Debug/Picasa Face Tag Extraction.application	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/obj/Debug/Picasa Face Tag Extraction.application	(revision 31334)
@@ -0,0 +1,18 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <assemblyIdentity name="Picasa Face Tag Extraction.application" version="1.0.0.4" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
+  <description asmv2:publisher="Picasa Face Tag Extraction" asmv2:product="Picasa Face Tag Extraction" xmlns="urn:schemas-microsoft-com:asm.v1" />
+  <deployment install="true" mapFileExtensions="true" />
+  <dependency>
+    <dependentAssembly dependencyType="install" codebase="Picasa Face Tag Extraction.exe.manifest" size="4720">
+      <assemblyIdentity name="Picasa Face Tag Extraction.exe" version="1.0.0.4" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
+      <hash>
+        <dsig:Transforms>
+          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
+        </dsig:Transforms>
+        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+        <dsig:DigestValue>lz5TrYPMdX+WZieafaJdP+rZX4g=</dsig:DigestValue>
+      </hash>
+    </dependentAssembly>
+  </dependency>
+</asmv1:assembly>
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/obj/Debug/Picasa Face Tag Extraction.exe.manifest
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/obj/Debug/Picasa Face Tag Extraction.exe.manifest	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/obj/Debug/Picasa Face Tag Extraction.exe.manifest	(revision 31334)
@@ -0,0 +1,87 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1">
+  <asmv1:assemblyIdentity name="Picasa Face Tag Extraction.exe" version="1.0.0.4" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
+  <application />
+  <entryPoint>
+    <assemblyIdentity name="Picasa Face Tag Extraction" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
+    <commandLine file="Picasa Face Tag Extraction.exe" parameters="" />
+  </entryPoint>
+  <trustInfo>
+    <security>
+      <applicationRequestMinimum>
+        <PermissionSet Unrestricted="true" ID="Custom" SameSite="site" />
+        <defaultAssemblyRequest permissionSetReference="Custom" />
+      </applicationRequestMinimum>
+      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
+        <!--
+          UAC Manifest Options
+          If you want to change the Windows User Account Control level replace the 
+          requestedExecutionLevel node with one of the following.
+
+        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
+        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
+        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
+
+         If you want to utilize File and Registry Virtualization for backward 
+         compatibility then delete the requestedExecutionLevel node.
+    -->
+        <requestedExecutionLevel level="asInvoker" uiAccess="false" />
+      </requestedPrivileges>
+    </security>
+  </trustInfo>
+  <dependency>
+    <dependentOS>
+      <osVersionInfo>
+        <os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />
+      </osVersionInfo>
+    </dependentOS>
+  </dependency>
+  <dependency>
+    <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
+      <assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="2.0.50727.0" />
+    </dependentAssembly>
+  </dependency>
+  <dependency>
+    <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
+      <assemblyIdentity name="System.Core" version="3.5.0.0" publicKeyToken="b77a5c561934e089" language="neutral" processorArchitecture="msil" />
+    </dependentAssembly>
+  </dependency>
+  <dependency>
+    <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
+      <assemblyIdentity name="WindowsBase" version="3.0.0.0" publicKeyToken="31bf3856ad364e35" language="neutral" processorArchitecture="msil" />
+    </dependentAssembly>
+  </dependency>
+  <dependency>
+    <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="MySql.Data.dll" size="379904">
+      <assemblyIdentity name="MySql.Data" version="6.5.5.0" publicKeyToken="C5687FC88969C44D" language="neutral" processorArchitecture="msil" />
+      <hash>
+        <dsig:Transforms>
+          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
+        </dsig:Transforms>
+        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+        <dsig:DigestValue>3iT31tAQ6hWSAc69FSWZcurrxRc=</dsig:DigestValue>
+      </hash>
+    </dependentAssembly>
+  </dependency>
+  <dependency>
+    <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Picasa Face Tag Extraction.exe" size="33792">
+      <assemblyIdentity name="Picasa Face Tag Extraction" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
+      <hash>
+        <dsig:Transforms>
+          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
+        </dsig:Transforms>
+        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+        <dsig:DigestValue>GB8V3hFRTcxE7sDGh8hR0NmcwL0=</dsig:DigestValue>
+      </hash>
+    </dependentAssembly>
+  </dependency>
+  <file name="Picasa Face Tag Extraction.exe.config" size="2183">
+    <hash>
+      <dsig:Transforms>
+        <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
+      </dsig:Transforms>
+      <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+      <dsig:DigestValue>R2lNY2seNUWZ7jd7qc2Hrna3NYk=</dsig:DigestValue>
+    </hash>
+  </file>
+</asmv1:assembly>
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/obj/Debug/PicasaFindMyPhotos.application
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/obj/Debug/PicasaFindMyPhotos.application	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/obj/Debug/PicasaFindMyPhotos.application	(revision 31334)
@@ -0,0 +1,18 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <assemblyIdentity name="PicasaFindMyPhotos.application" version="1.0.0.4" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
+  <description asmv2:publisher="Microsoft" asmv2:product="PicasaFindMyPhotos" xmlns="urn:schemas-microsoft-com:asm.v1" />
+  <deployment install="true" mapFileExtensions="true" />
+  <dependency>
+    <dependentAssembly dependencyType="install" codebase="PicasaFindMyPhotos.exe.manifest" size="4672">
+      <assemblyIdentity name="PicasaFindMyPhotos.exe" version="1.0.0.4" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
+      <hash>
+        <dsig:Transforms>
+          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
+        </dsig:Transforms>
+        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+        <dsig:DigestValue>OiIAXbuOLx3Htbs2Wmo9xnv9WDE=</dsig:DigestValue>
+      </hash>
+    </dependentAssembly>
+  </dependency>
+</asmv1:assembly>
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/obj/Debug/PicasaFindMyPhotos.exe.manifest
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/obj/Debug/PicasaFindMyPhotos.exe.manifest	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/obj/Debug/PicasaFindMyPhotos.exe.manifest	(revision 31334)
@@ -0,0 +1,87 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1">
+  <asmv1:assemblyIdentity name="PicasaFindMyPhotos.exe" version="1.0.0.4" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
+  <application />
+  <entryPoint>
+    <assemblyIdentity name="PicasaFindMyPhotos" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
+    <commandLine file="PicasaFindMyPhotos.exe" parameters="" />
+  </entryPoint>
+  <trustInfo>
+    <security>
+      <applicationRequestMinimum>
+        <PermissionSet Unrestricted="true" ID="Custom" SameSite="site" />
+        <defaultAssemblyRequest permissionSetReference="Custom" />
+      </applicationRequestMinimum>
+      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
+        <!--
+          UAC Manifest Options
+          If you want to change the Windows User Account Control level replace the 
+          requestedExecutionLevel node with one of the following.
+
+        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
+        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
+        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
+
+         If you want to utilize File and Registry Virtualization for backward 
+         compatibility then delete the requestedExecutionLevel node.
+    -->
+        <requestedExecutionLevel level="asInvoker" uiAccess="false" />
+      </requestedPrivileges>
+    </security>
+  </trustInfo>
+  <dependency>
+    <dependentOS>
+      <osVersionInfo>
+        <os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />
+      </osVersionInfo>
+    </dependentOS>
+  </dependency>
+  <dependency>
+    <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
+      <assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="2.0.50727.0" />
+    </dependentAssembly>
+  </dependency>
+  <dependency>
+    <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
+      <assemblyIdentity name="System.Core" version="3.5.0.0" publicKeyToken="b77a5c561934e089" language="neutral" processorArchitecture="msil" />
+    </dependentAssembly>
+  </dependency>
+  <dependency>
+    <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
+      <assemblyIdentity name="WindowsBase" version="3.0.0.0" publicKeyToken="31bf3856ad364e35" language="neutral" processorArchitecture="msil" />
+    </dependentAssembly>
+  </dependency>
+  <dependency>
+    <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="MySql.Data.dll" size="379904">
+      <assemblyIdentity name="MySql.Data" version="6.5.5.0" publicKeyToken="C5687FC88969C44D" language="neutral" processorArchitecture="msil" />
+      <hash>
+        <dsig:Transforms>
+          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
+        </dsig:Transforms>
+        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+        <dsig:DigestValue>3iT31tAQ6hWSAc69FSWZcurrxRc=</dsig:DigestValue>
+      </hash>
+    </dependentAssembly>
+  </dependency>
+  <dependency>
+    <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="PicasaFindMyPhotos.exe" size="31744">
+      <assemblyIdentity name="PicasaFindMyPhotos" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
+      <hash>
+        <dsig:Transforms>
+          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
+        </dsig:Transforms>
+        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+        <dsig:DigestValue>dvH5njAMm7fqT7Z4b3NBr8Z+Skg=</dsig:DigestValue>
+      </hash>
+    </dependentAssembly>
+  </dependency>
+  <file name="PicasaFindMyPhotos.exe.config" size="2183">
+    <hash>
+      <dsig:Transforms>
+        <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
+      </dsig:Transforms>
+      <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+      <dsig:DigestValue>R2lNY2seNUWZ7jd7qc2Hrna3NYk=</dsig:DigestValue>
+    </hash>
+  </file>
+</asmv1:assembly>
Index: /extensions/Picasa2Piwigo/PicasaMyPhotos/obj/Debug/PicasaMyPhotos.csproj.FileListAbsolute.txt
===================================================================
--- /extensions/Picasa2Piwigo/PicasaMyPhotos/obj/Debug/PicasaMyPhotos.csproj.FileListAbsolute.txt	(revision 31334)
+++ /extensions/Picasa2Piwigo/PicasaMyPhotos/obj/Debug/PicasaMyPhotos.csproj.FileListAbsolute.txt	(revision 31334)
@@ -0,0 +1,31 @@
+D:\Ken\pic\PicasaMyPhotos\PicasaMyPhotos\obj\Debug\ResolveAssemblyReference.cache
+D:\Ken\pic\PicasaMyPhotos\PicasaMyPhotos\obj\Debug\PicasaFindMyPhotos.Form1.resources
+D:\Ken\pic\PicasaMyPhotos\PicasaMyPhotos\obj\Debug\PicasaFindMyPhotos.Properties.Resources.resources
+D:\Ken\pic\PicasaMyPhotos\PicasaMyPhotos\obj\Debug\PicasaMyPhotos.csproj.GenerateResource.Cache
+D:\Ken\pic\PicasaMyPhotos\PicasaMyPhotos\bin\Debug\PicasaFindMyPhotos.exe
+D:\Ken\pic\PicasaMyPhotos\PicasaMyPhotos\bin\Debug\PicasaFindMyPhotos.pdb
+D:\Ken\pic\PicasaMyPhotos\PicasaMyPhotos\obj\Debug\PicasaFindMyPhotos.exe
+D:\Ken\pic\PicasaMyPhotos\PicasaMyPhotos\obj\Debug\PicasaFindMyPhotos.pdb
+D:\Ken\pic\PicasaMyPhotos\PicasaMyPhotos\bin\Debug\PicasaFindMyPhotos.exe.manifest
+D:\Ken\pic\PicasaMyPhotos\PicasaMyPhotos\bin\Debug\PicasaFindMyPhotos.application
+D:\Ken\pic\PicasaMyPhotos\PicasaMyPhotos\obj\Debug\PicasaFindMyPhotos.exe.manifest
+D:\Ken\pic\PicasaMyPhotos\PicasaMyPhotos\obj\Debug\PicasaFindMyPhotos.application
+D:\Ken\pic\PicasaMyPhotos\PicasaMyPhotos\bin\Debug\MySql.Data.dll
+D:\Ken\pic\PicasaMyPhotos\PicasaMyPhotos\bin\Debug\PicasaFindMyPhotos.exe.config
+C:\pic\PicasaMyPhotos\PicasaMyPhotos\bin\Debug\MySql.Data.dll
+C:\pic\PicasaMyPhotos\PicasaMyPhotos\obj\Debug\ResolveAssemblyReference.cache
+C:\pic\PicasaMyPhotos\PicasaMyPhotos\obj\Debug\PicasaFindMyPhotos.Form1.resources
+C:\pic\PicasaMyPhotos\PicasaMyPhotos\obj\Debug\PicasaFindMyPhotos.Properties.Resources.resources
+C:\pic\PicasaMyPhotos\PicasaMyPhotos\obj\Debug\PicasaMyPhotos.csproj.GenerateResource.Cache
+C:\pic\PicasaMyPhotos\PicasaMyPhotos\bin\Debug\Picasa Face Tag Extraction.exe.config
+C:\pic\PicasaMyPhotos\PicasaMyPhotos\bin\Debug\Picasa Face Tag Extraction.exe.manifest
+C:\pic\PicasaMyPhotos\PicasaMyPhotos\bin\Debug\Picasa Face Tag Extraction.application
+C:\pic\PicasaMyPhotos\PicasaMyPhotos\bin\Debug\Picasa Face Tag Extraction.exe
+C:\pic\PicasaMyPhotos\PicasaMyPhotos\bin\Debug\Picasa Face Tag Extraction.pdb
+C:\pic\PicasaMyPhotos\PicasaMyPhotos\obj\Debug\Picasa Face Tag Extraction.exe.manifest
+C:\pic\PicasaMyPhotos\PicasaMyPhotos\obj\Debug\Picasa Face Tag Extraction.application
+C:\pic\PicasaMyPhotos\PicasaMyPhotos\obj\Debug\Picasa Face Tag Extraction.exe
+C:\pic\PicasaMyPhotos\PicasaMyPhotos\obj\Debug\Picasa Face Tag Extraction.pdb
+D:\Ken\pic\PicasaMyPhotos\PicasaMyPhotos\bin\Debug\Picasa Face Tag Extraction.exe.config
+D:\Ken\pic\PicasaMyPhotos\PicasaMyPhotos\obj\Debug\Picasa Face Tag Extraction.exe
+D:\Ken\pic\PicasaMyPhotos\PicasaMyPhotos\obj\Debug\Picasa Face Tag Extraction.pdb
