Initial project's source code check-in.
|
@ -0,0 +1,166 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Configuration;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.DirectoryServices;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
public class ADUtils
|
||||
{
|
||||
public static string ADUsername
|
||||
{
|
||||
get
|
||||
{
|
||||
return ConfigurationManager.AppSettings["AD.Username"];
|
||||
}
|
||||
}
|
||||
|
||||
public static string ADPassword
|
||||
{
|
||||
get
|
||||
{
|
||||
return ConfigurationManager.AppSettings["AD.Password"];
|
||||
}
|
||||
}
|
||||
|
||||
public static string ADRootDomain
|
||||
{
|
||||
get { return Global.ADRootDomain; }
|
||||
}
|
||||
|
||||
public static string PrimaryDomainController
|
||||
{
|
||||
get { return Global.PrimaryDomainController; }
|
||||
}
|
||||
|
||||
public static string RootOU
|
||||
{
|
||||
get { return Global.RootOU; }
|
||||
}
|
||||
|
||||
public static DirectoryEntry GetRootOU()
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
// append provider
|
||||
AppendProtocol(sb);
|
||||
AppendDomainController(sb);
|
||||
AppendOUPath(sb, RootOU);
|
||||
AppendDomainPath(sb, ADRootDomain);
|
||||
|
||||
DirectoryEntry de = GetADObject(sb.ToString());
|
||||
//ExchangeLog.LogEnd("GetRootOU");
|
||||
return de;
|
||||
}
|
||||
|
||||
private static void AppendProtocol(StringBuilder sb)
|
||||
{
|
||||
sb.Append("LDAP://");
|
||||
}
|
||||
|
||||
private static void AppendDomainController(StringBuilder sb)
|
||||
{
|
||||
string dc = PrimaryDomainController;
|
||||
if (dc.IndexOf(".") != -1)
|
||||
dc = dc.Substring(0, dc.IndexOf("."));
|
||||
sb.Append(dc + "/");
|
||||
}
|
||||
|
||||
private static void AppendOUPath(StringBuilder sb, string ou)
|
||||
{
|
||||
if (string.IsNullOrEmpty(ou))
|
||||
return;
|
||||
|
||||
string path = ou.Replace("/", "\\");
|
||||
string[] parts = path.Split('\\');
|
||||
for (int i = parts.Length - 1; i != -1; i--)
|
||||
sb.Append("OU=").Append(parts[i]).Append(",");
|
||||
}
|
||||
|
||||
private static void AppendDomainPath(StringBuilder sb, string domain)
|
||||
{
|
||||
if (string.IsNullOrEmpty(domain))
|
||||
return;
|
||||
|
||||
string[] parts = domain.Split('.');
|
||||
for (int i = 0; i < parts.Length; i++)
|
||||
{
|
||||
sb.Append("DC=").Append(parts[i]);
|
||||
|
||||
if (i < (parts.Length - 1))
|
||||
sb.Append(",");
|
||||
}
|
||||
}
|
||||
|
||||
private static DirectoryEntry GetADObject(string path)
|
||||
{
|
||||
DirectoryEntry de = null;
|
||||
de = new DirectoryEntry(path, ADUsername, ADPassword);
|
||||
de.RefreshCache();
|
||||
return de;
|
||||
}
|
||||
|
||||
public static string RemoveADPrefix(string path)
|
||||
{
|
||||
string dn = path;
|
||||
if (dn.ToUpper().StartsWith("LDAP://"))
|
||||
{
|
||||
dn = dn.Substring(7);
|
||||
}
|
||||
int index = dn.IndexOf("/");
|
||||
|
||||
if (index != -1)
|
||||
{
|
||||
dn = dn.Substring(index + 1);
|
||||
}
|
||||
return dn;
|
||||
}
|
||||
|
||||
public static string GetAddressListsContainer()
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
AppendProtocol(sb);
|
||||
AppendDomainController(sb);
|
||||
sb.Append("CN=Microsoft Exchange,CN=Services,CN=Configuration,");
|
||||
AppendDomainPath(sb, ADRootDomain);
|
||||
DirectoryEntry exchEntry = GetADObject(sb.ToString());
|
||||
DirectoryEntry orgEntry = null;
|
||||
foreach (DirectoryEntry child in exchEntry.Children)
|
||||
{
|
||||
orgEntry = child;
|
||||
break;
|
||||
}
|
||||
string ret = "CN=Address Lists Container," + RemoveADPrefix(orgEntry.Path);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,327 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Data;
|
||||
using System.Windows.Forms;
|
||||
using System.Threading;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
/// <summary>
|
||||
/// Animated Icon.
|
||||
/// </summary>
|
||||
[ToolboxItem(true)]
|
||||
public class AnimatedIcon : System.Windows.Forms.UserControl
|
||||
{
|
||||
private Thread thread = null;
|
||||
//private ImageList imageList = null;
|
||||
private List<Image> images;
|
||||
private int currentFrame = 0;
|
||||
private int delayInterval = 50;
|
||||
private int pause = 0;
|
||||
private int loopCount = 0;
|
||||
private int currentLoop = 0;
|
||||
private int firstFrame = 0;
|
||||
private int lastFrame = 0;
|
||||
|
||||
private System.ComponentModel.Container components = null;
|
||||
|
||||
|
||||
/// <summary>Gets the <see cref="List"/> that contains
|
||||
/// the <see cref="Image"/> objects used to display animation.</summary>
|
||||
/// <value>The <see cref="List"/> that contains the <see cref="Image"/>
|
||||
/// objects used to display animated frames.</value>
|
||||
[Browsable(false)]
|
||||
public List<Image> Images
|
||||
{
|
||||
get
|
||||
{
|
||||
return images;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>Gets or sets delay in milliseconds between the frames.</summary>
|
||||
/// <value>The default value is 50 milliseconds.</value>
|
||||
[Category("Animated Icon")]
|
||||
[DefaultValue(50), Description("Delay in milliseconds between the frames.")]
|
||||
|
||||
public int Delay
|
||||
{
|
||||
get { return delayInterval; }
|
||||
set
|
||||
{
|
||||
if( value != delayInterval )
|
||||
{
|
||||
delayInterval = Math.Abs( value );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>Gets or sets pause in milliseconds after every loop.</summary>
|
||||
/// <value>The default value is 0 milliseconds.</value>
|
||||
[Category("Animated Icon")]
|
||||
[DefaultValue(0), Description("Pause in milliseconds after the loop ends.")]
|
||||
|
||||
public int Pause
|
||||
{
|
||||
get { return pause; }
|
||||
set
|
||||
{
|
||||
if( value != pause )
|
||||
{
|
||||
pause = Math.Abs( value );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>Gets or sets loop counter.</summary>
|
||||
/// <value>The default value is 0, i.e. infinitive loop.</value>
|
||||
[Category("Animated Icon")]
|
||||
[DefaultValue(0), Description("Loop counter. 0 means infinitive loop.")]
|
||||
|
||||
public int LoopCount
|
||||
{
|
||||
get { return loopCount; }
|
||||
set
|
||||
{
|
||||
if( value != loopCount )
|
||||
{
|
||||
loopCount = Math.Abs( value );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>Gets or sets the first frame of the animation.</summary>
|
||||
/// <value>The default value is 0.</value>
|
||||
[Category("Animated Icon")]
|
||||
[DefaultValue(0), Description("First frame of the animation.")]
|
||||
|
||||
public int FirstFrame
|
||||
{
|
||||
get { return firstFrame; }
|
||||
set
|
||||
{
|
||||
if( value != firstFrame )
|
||||
{
|
||||
firstFrame = Math.Abs( value );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>Gets or sets the last frame of the animation.</summary>
|
||||
/// <value>The default value is 0.</value>
|
||||
[Category("Animated Icon")]
|
||||
[DefaultValue(0), Description("Last frame of the animation.")]
|
||||
|
||||
public int LastFrame
|
||||
{
|
||||
get { return lastFrame; }
|
||||
set
|
||||
{
|
||||
if( value != lastFrame )
|
||||
{
|
||||
lastFrame = Math.Abs( value );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>Initializes a new instance of the <b>AnimatedIcon</b> class.
|
||||
/// </summary>
|
||||
public AnimatedIcon()
|
||||
{
|
||||
CheckForIllegalCrossThreadCalls = false;
|
||||
InitializeComponent();
|
||||
images = new List<Image>();
|
||||
|
||||
this.SetStyle(ControlStyles.UserPaint, true);
|
||||
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
this.SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
this.SetStyle(ControlStyles.ResizeRedraw, true);
|
||||
}
|
||||
|
||||
#region Dispose
|
||||
/// <summary>Clean up any resources being used.</summary>
|
||||
/// <param name="disposing"><see langword="true"/> to release both managed
|
||||
/// and unmanaged resources; <see langword="false"/> to release
|
||||
/// only unmanaged resources.</param>
|
||||
protected override void Dispose( bool disposing )
|
||||
{
|
||||
if( disposing )
|
||||
{
|
||||
if( components != null )
|
||||
components.Dispose();
|
||||
|
||||
if( thread != null )
|
||||
thread.Abort();
|
||||
}
|
||||
base.Dispose( disposing );
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Component 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()
|
||||
{
|
||||
//
|
||||
// AnimatedIcon
|
||||
//
|
||||
this.Name = "AnimatedIcon";
|
||||
this.Size = new System.Drawing.Size(16, 16);
|
||||
}
|
||||
#endregion
|
||||
|
||||
/// <summary>Starts animation from the beginning.
|
||||
/// </summary>
|
||||
public void StartAnimation()
|
||||
{
|
||||
StopAnimation();
|
||||
CheckRange(); // Check the first and the last frames
|
||||
|
||||
thread = new Thread( new ThreadStart( threadFunc ) );
|
||||
thread.IsBackground = true;
|
||||
thread.Start();
|
||||
}
|
||||
|
||||
/// <summary>Stops animation not changing current frame number.
|
||||
/// </summary>
|
||||
public void StopAnimation()
|
||||
{
|
||||
if( thread != null )
|
||||
{
|
||||
thread.Abort();
|
||||
thread = null;
|
||||
}
|
||||
currentLoop = 0;
|
||||
}
|
||||
|
||||
/// <summary>Displays the specified frame.</summary>
|
||||
/// <param name="frame">An index of the image stored in the <see cref="ImageList"/>.</param>
|
||||
public void ShowFrame(int frame)
|
||||
{
|
||||
StopAnimation();
|
||||
|
||||
if( frame >= 0 && frame < images.Count )
|
||||
currentFrame = frame;
|
||||
else
|
||||
currentFrame = 0;
|
||||
|
||||
Refresh();
|
||||
}
|
||||
|
||||
/// <summary>Occurs when the control is redrawn.</summary>
|
||||
/// <param name="e">A <see cref="PaintEventArgs"/> that contains
|
||||
/// the event data.</param>
|
||||
/// <remarks>The <b>OnPaint</b> method draws current image from
|
||||
/// the <see cref="ImageList"/> if exists.</remarks>
|
||||
protected override void OnPaint(PaintEventArgs e)
|
||||
{
|
||||
// Draw a crossed rectangle if there is no frame to display
|
||||
|
||||
if( images == null ||
|
||||
currentFrame < 0 ||
|
||||
currentFrame >= images.Count )
|
||||
{
|
||||
if( this.Size.Width == 0 || this.Size.Height == 0 )
|
||||
return;
|
||||
|
||||
Pen pen = new Pen( SystemColors.ControlText );
|
||||
e.Graphics.DrawRectangle( pen, 0, 0, this.Size.Width-1, this.Size.Height-1 );
|
||||
e.Graphics.DrawLine( pen, 0, 0, this.Size.Width, this.Size.Height );
|
||||
e.Graphics.DrawLine( pen, 0, this.Size.Height-1, this.Size.Width-1, 0 );
|
||||
pen.Dispose();
|
||||
}
|
||||
else
|
||||
{
|
||||
// Draw the current frame
|
||||
|
||||
e.Graphics.DrawImage( images[currentFrame], 0, 0, this.Size.Width, this.Size.Height );
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>The method to be invoked when the thread begins executing.
|
||||
/// </summary>
|
||||
private void threadFunc()
|
||||
{
|
||||
bool wasPause = false;
|
||||
currentFrame = firstFrame;
|
||||
|
||||
while( thread != null && thread.IsAlive )
|
||||
{
|
||||
Refresh(); // Redraw the current frame
|
||||
wasPause = false;
|
||||
|
||||
if( images != null )
|
||||
{
|
||||
currentFrame++;
|
||||
if( currentFrame > lastFrame ||
|
||||
currentFrame >= images.Count )
|
||||
{
|
||||
if( pause > 0 ) // Sleep after every loop
|
||||
{
|
||||
Thread.Sleep( pause );
|
||||
wasPause = true;
|
||||
}
|
||||
|
||||
currentFrame = firstFrame;
|
||||
if( loopCount != 0 ) // 0 is infinitive loop
|
||||
{
|
||||
currentLoop++;
|
||||
}
|
||||
}
|
||||
|
||||
if( loopCount != 0 && currentLoop >= loopCount )
|
||||
{
|
||||
StopAnimation(); // The loop is completed
|
||||
}
|
||||
}
|
||||
if( !wasPause ) // That prevents summation (pause + delayInterval)
|
||||
Thread.Sleep( delayInterval );
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>Check if the last frame is no less than the first one.
|
||||
/// Otherwise, swap them.</summary>
|
||||
private void CheckRange()
|
||||
{
|
||||
if( lastFrame < firstFrame )
|
||||
{
|
||||
int tmp = firstFrame;
|
||||
firstFrame = lastFrame;
|
||||
lastFrame = tmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0"?>
|
||||
<configuration>
|
||||
<!-- Connection strings -->
|
||||
<connectionStrings>
|
||||
<add name="EnterpriseServer" connectionString="Server=(local)\sqlexpress;Database=WebsitePanel;uid=WebsitePanel;pwd=password" providerName="System.Data.SqlClient"/>
|
||||
</connectionStrings>
|
||||
<appSettings>
|
||||
<add key="AD.Username" value="DOMAIN\Administrator"/>
|
||||
<add key="AD.Password" value="password"/>
|
||||
<!-- Encryption util settings -->
|
||||
<add key="WebsitePanel.CryptoKey" value="q26125qpakxmxmk477wb"/>
|
||||
<!-- Encryption -->
|
||||
<add key="WebsitePanel.EncryptionEnabled" value="true"/>
|
||||
<!-- Web Applications -->
|
||||
<add key="WebsitePanel.EnterpriseServer.WebApplicationsPath" value="~/WebApplications"/>
|
||||
<!-- Communication settings -->
|
||||
<!-- Maximum waiting time when sending request to the remote server
|
||||
The value is in seconds. "-1" - infinite. -->
|
||||
<add key="WebsitePanel.EnterpriseServer.ServerRequestTimeout" value="3600"/>
|
||||
<add key="ClientSettingsProvider.ServiceUri" value=""/>
|
||||
</appSettings>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
|
351
WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/ApplicationForm.Designer.cs
generated
Normal file
|
@ -0,0 +1,351 @@
|
|||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
partial class ApplicationForm
|
||||
{
|
||||
/// <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.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ApplicationForm));
|
||||
this.lblSpace = new System.Windows.Forms.Label();
|
||||
this.txtSpace = new System.Windows.Forms.TextBox();
|
||||
this.btnBrowseSpace = new System.Windows.Forms.Button();
|
||||
this.btnBrowseOU = new System.Windows.Forms.Button();
|
||||
this.txtOU = new System.Windows.Forms.TextBox();
|
||||
this.lblOU = new System.Windows.Forms.Label();
|
||||
this.grpOrganization = new System.Windows.Forms.GroupBox();
|
||||
this.btnSelectAll = new System.Windows.Forms.Button();
|
||||
this.btnDeselectAll = new System.Windows.Forms.Button();
|
||||
this.rbCreateAndImport = new System.Windows.Forms.RadioButton();
|
||||
this.rbImport = new System.Windows.Forms.RadioButton();
|
||||
this.lvUsers = new System.Windows.Forms.ListView();
|
||||
this.columnHeader1 = new System.Windows.Forms.ColumnHeader();
|
||||
this.columnHeader2 = new System.Windows.Forms.ColumnHeader();
|
||||
this.columnHeader3 = new System.Windows.Forms.ColumnHeader();
|
||||
this.images = new System.Windows.Forms.ImageList(this.components);
|
||||
this.txtOrgName = new System.Windows.Forms.TextBox();
|
||||
this.lblOrgName = new System.Windows.Forms.Label();
|
||||
this.txtOrgId = new System.Windows.Forms.TextBox();
|
||||
this.lblOrgId = new System.Windows.Forms.Label();
|
||||
this.btnStart = new System.Windows.Forms.Button();
|
||||
this.progressBar = new System.Windows.Forms.ProgressBar();
|
||||
this.lblMessage = new System.Windows.Forms.Label();
|
||||
this.grpOrganization.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// lblSpace
|
||||
//
|
||||
this.lblSpace.Location = new System.Drawing.Point(15, 15);
|
||||
this.lblSpace.Name = "lblSpace";
|
||||
this.lblSpace.Size = new System.Drawing.Size(125, 23);
|
||||
this.lblSpace.TabIndex = 0;
|
||||
this.lblSpace.Text = "Target Hosting Space:";
|
||||
//
|
||||
// txtSpace
|
||||
//
|
||||
this.txtSpace.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.txtSpace.Location = new System.Drawing.Point(146, 12);
|
||||
this.txtSpace.Name = "txtSpace";
|
||||
this.txtSpace.ReadOnly = true;
|
||||
this.txtSpace.Size = new System.Drawing.Size(429, 20);
|
||||
this.txtSpace.TabIndex = 1;
|
||||
this.txtSpace.TextChanged += new System.EventHandler(this.OnDataChanged);
|
||||
//
|
||||
// btnBrowseSpace
|
||||
//
|
||||
this.btnBrowseSpace.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnBrowseSpace.Location = new System.Drawing.Point(581, 10);
|
||||
this.btnBrowseSpace.Name = "btnBrowseSpace";
|
||||
this.btnBrowseSpace.Size = new System.Drawing.Size(24, 22);
|
||||
this.btnBrowseSpace.TabIndex = 2;
|
||||
this.btnBrowseSpace.Text = "...";
|
||||
this.btnBrowseSpace.UseVisualStyleBackColor = true;
|
||||
this.btnBrowseSpace.Click += new System.EventHandler(this.OnBrowseSpace);
|
||||
//
|
||||
// btnBrowseOU
|
||||
//
|
||||
this.btnBrowseOU.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnBrowseOU.Location = new System.Drawing.Point(581, 36);
|
||||
this.btnBrowseOU.Name = "btnBrowseOU";
|
||||
this.btnBrowseOU.Size = new System.Drawing.Size(24, 22);
|
||||
this.btnBrowseOU.TabIndex = 5;
|
||||
this.btnBrowseOU.Text = "...";
|
||||
this.btnBrowseOU.UseVisualStyleBackColor = true;
|
||||
this.btnBrowseOU.Click += new System.EventHandler(this.OnBrowseOU);
|
||||
//
|
||||
// txtOU
|
||||
//
|
||||
this.txtOU.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.txtOU.Location = new System.Drawing.Point(146, 38);
|
||||
this.txtOU.Name = "txtOU";
|
||||
this.txtOU.ReadOnly = true;
|
||||
this.txtOU.Size = new System.Drawing.Size(429, 20);
|
||||
this.txtOU.TabIndex = 4;
|
||||
this.txtOU.TextChanged += new System.EventHandler(this.OnDataChanged);
|
||||
//
|
||||
// lblOU
|
||||
//
|
||||
this.lblOU.Location = new System.Drawing.Point(15, 41);
|
||||
this.lblOU.Name = "lblOU";
|
||||
this.lblOU.Size = new System.Drawing.Size(125, 23);
|
||||
this.lblOU.TabIndex = 3;
|
||||
this.lblOU.Text = "Organizational Unit:";
|
||||
//
|
||||
// grpOrganization
|
||||
//
|
||||
this.grpOrganization.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.grpOrganization.Controls.Add(this.btnSelectAll);
|
||||
this.grpOrganization.Controls.Add(this.btnDeselectAll);
|
||||
this.grpOrganization.Controls.Add(this.rbCreateAndImport);
|
||||
this.grpOrganization.Controls.Add(this.rbImport);
|
||||
this.grpOrganization.Controls.Add(this.lvUsers);
|
||||
this.grpOrganization.Controls.Add(this.txtOrgName);
|
||||
this.grpOrganization.Controls.Add(this.lblOrgName);
|
||||
this.grpOrganization.Controls.Add(this.txtOrgId);
|
||||
this.grpOrganization.Controls.Add(this.lblOrgId);
|
||||
this.grpOrganization.Location = new System.Drawing.Point(15, 67);
|
||||
this.grpOrganization.Name = "grpOrganization";
|
||||
this.grpOrganization.Size = new System.Drawing.Size(590, 328);
|
||||
this.grpOrganization.TabIndex = 6;
|
||||
this.grpOrganization.TabStop = false;
|
||||
//
|
||||
// btnSelectAll
|
||||
//
|
||||
this.btnSelectAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnSelectAll.Location = new System.Drawing.Point(417, 282);
|
||||
this.btnSelectAll.Name = "btnSelectAll";
|
||||
this.btnSelectAll.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnSelectAll.TabIndex = 7;
|
||||
this.btnSelectAll.Text = "Select All";
|
||||
this.btnSelectAll.UseVisualStyleBackColor = true;
|
||||
this.btnSelectAll.Click += new System.EventHandler(this.OnSelectAllClick);
|
||||
//
|
||||
// btnDeselectAll
|
||||
//
|
||||
this.btnDeselectAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnDeselectAll.Location = new System.Drawing.Point(498, 282);
|
||||
this.btnDeselectAll.Name = "btnDeselectAll";
|
||||
this.btnDeselectAll.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnDeselectAll.TabIndex = 8;
|
||||
this.btnDeselectAll.Text = "Unselect All";
|
||||
this.btnDeselectAll.UseVisualStyleBackColor = true;
|
||||
this.btnDeselectAll.Click += new System.EventHandler(this.OnDeselectAllClick);
|
||||
//
|
||||
// rbCreateAndImport
|
||||
//
|
||||
this.rbCreateAndImport.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.rbCreateAndImport.AutoSize = true;
|
||||
this.rbCreateAndImport.Checked = true;
|
||||
this.rbCreateAndImport.Enabled = false;
|
||||
this.rbCreateAndImport.Location = new System.Drawing.Point(19, 282);
|
||||
this.rbCreateAndImport.Name = "rbCreateAndImport";
|
||||
this.rbCreateAndImport.Size = new System.Drawing.Size(261, 17);
|
||||
this.rbCreateAndImport.TabIndex = 5;
|
||||
this.rbCreateAndImport.TabStop = true;
|
||||
this.rbCreateAndImport.Text = "Create new organization and import selected items";
|
||||
this.rbCreateAndImport.UseVisualStyleBackColor = true;
|
||||
this.rbCreateAndImport.CheckedChanged += new System.EventHandler(this.OnCheckedChanged);
|
||||
//
|
||||
// rbImport
|
||||
//
|
||||
this.rbImport.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.rbImport.AutoSize = true;
|
||||
this.rbImport.Enabled = false;
|
||||
this.rbImport.Location = new System.Drawing.Point(19, 305);
|
||||
this.rbImport.Name = "rbImport";
|
||||
this.rbImport.Size = new System.Drawing.Size(237, 17);
|
||||
this.rbImport.TabIndex = 6;
|
||||
this.rbImport.Text = "Import selected items for existing organization";
|
||||
this.rbImport.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// lvUsers
|
||||
//
|
||||
this.lvUsers.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lvUsers.CheckBoxes = true;
|
||||
this.lvUsers.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
||||
this.columnHeader1,
|
||||
this.columnHeader2,
|
||||
this.columnHeader3});
|
||||
this.lvUsers.FullRowSelect = true;
|
||||
this.lvUsers.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
|
||||
this.lvUsers.Location = new System.Drawing.Point(19, 74);
|
||||
this.lvUsers.MultiSelect = false;
|
||||
this.lvUsers.Name = "lvUsers";
|
||||
this.lvUsers.Size = new System.Drawing.Size(554, 202);
|
||||
this.lvUsers.SmallImageList = this.images;
|
||||
this.lvUsers.TabIndex = 4;
|
||||
this.lvUsers.UseCompatibleStateImageBehavior = false;
|
||||
this.lvUsers.View = System.Windows.Forms.View.Details;
|
||||
//
|
||||
// columnHeader1
|
||||
//
|
||||
this.columnHeader1.Text = "Name";
|
||||
this.columnHeader1.Width = 229;
|
||||
//
|
||||
// columnHeader2
|
||||
//
|
||||
this.columnHeader2.Text = "Email";
|
||||
this.columnHeader2.Width = 163;
|
||||
//
|
||||
// columnHeader3
|
||||
//
|
||||
this.columnHeader3.Text = "Type";
|
||||
this.columnHeader3.Width = 152;
|
||||
//
|
||||
// images
|
||||
//
|
||||
this.images.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("images.ImageStream")));
|
||||
this.images.TransparentColor = System.Drawing.Color.Transparent;
|
||||
this.images.Images.SetKeyName(0, "UserSmallIcon.ico");
|
||||
this.images.Images.SetKeyName(1, "contact.ico");
|
||||
this.images.Images.SetKeyName(2, "DL.ico");
|
||||
//
|
||||
// txtOrgName
|
||||
//
|
||||
this.txtOrgName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.txtOrgName.Location = new System.Drawing.Point(155, 45);
|
||||
this.txtOrgName.Name = "txtOrgName";
|
||||
this.txtOrgName.Size = new System.Drawing.Size(418, 20);
|
||||
this.txtOrgName.TabIndex = 3;
|
||||
//
|
||||
// lblOrgName
|
||||
//
|
||||
this.lblOrgName.Location = new System.Drawing.Point(19, 48);
|
||||
this.lblOrgName.Name = "lblOrgName";
|
||||
this.lblOrgName.Size = new System.Drawing.Size(130, 23);
|
||||
this.lblOrgName.TabIndex = 2;
|
||||
this.lblOrgName.Text = "Organization Name:";
|
||||
//
|
||||
// txtOrgId
|
||||
//
|
||||
this.txtOrgId.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.txtOrgId.Location = new System.Drawing.Point(155, 19);
|
||||
this.txtOrgId.Name = "txtOrgId";
|
||||
this.txtOrgId.ReadOnly = true;
|
||||
this.txtOrgId.Size = new System.Drawing.Size(418, 20);
|
||||
this.txtOrgId.TabIndex = 1;
|
||||
//
|
||||
// lblOrgId
|
||||
//
|
||||
this.lblOrgId.Location = new System.Drawing.Point(19, 22);
|
||||
this.lblOrgId.Name = "lblOrgId";
|
||||
this.lblOrgId.Size = new System.Drawing.Size(130, 23);
|
||||
this.lblOrgId.TabIndex = 0;
|
||||
this.lblOrgId.Text = "Organization Id:";
|
||||
//
|
||||
// btnStart
|
||||
//
|
||||
this.btnStart.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnStart.Location = new System.Drawing.Point(527, 461);
|
||||
this.btnStart.Name = "btnStart";
|
||||
this.btnStart.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnStart.TabIndex = 9;
|
||||
this.btnStart.Text = "Start";
|
||||
this.btnStart.UseVisualStyleBackColor = true;
|
||||
this.btnStart.Click += new System.EventHandler(this.OnImportClick);
|
||||
//
|
||||
// progressBar
|
||||
//
|
||||
this.progressBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.progressBar.Location = new System.Drawing.Point(15, 427);
|
||||
this.progressBar.Name = "progressBar";
|
||||
this.progressBar.Size = new System.Drawing.Size(587, 23);
|
||||
this.progressBar.TabIndex = 8;
|
||||
//
|
||||
// lblMessage
|
||||
//
|
||||
this.lblMessage.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lblMessage.Location = new System.Drawing.Point(12, 401);
|
||||
this.lblMessage.Name = "lblMessage";
|
||||
this.lblMessage.Size = new System.Drawing.Size(593, 23);
|
||||
this.lblMessage.TabIndex = 7;
|
||||
//
|
||||
// ApplicationForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(617, 496);
|
||||
this.Controls.Add(this.lblMessage);
|
||||
this.Controls.Add(this.progressBar);
|
||||
this.Controls.Add(this.btnStart);
|
||||
this.Controls.Add(this.grpOrganization);
|
||||
this.Controls.Add(this.btnBrowseOU);
|
||||
this.Controls.Add(this.txtOU);
|
||||
this.Controls.Add(this.lblOU);
|
||||
this.Controls.Add(this.btnBrowseSpace);
|
||||
this.Controls.Add(this.txtSpace);
|
||||
this.Controls.Add(this.lblSpace);
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.MinimumSize = new System.Drawing.Size(630, 500);
|
||||
this.Name = "ApplicationForm";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "WebsitePanel Enterprise Import Tool";
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.OnFormClosing);
|
||||
this.grpOrganization.ResumeLayout(false);
|
||||
this.grpOrganization.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Label lblSpace;
|
||||
private System.Windows.Forms.TextBox txtSpace;
|
||||
private System.Windows.Forms.Button btnBrowseSpace;
|
||||
private System.Windows.Forms.Button btnBrowseOU;
|
||||
private System.Windows.Forms.TextBox txtOU;
|
||||
private System.Windows.Forms.Label lblOU;
|
||||
private System.Windows.Forms.GroupBox grpOrganization;
|
||||
private System.Windows.Forms.TextBox txtOrgId;
|
||||
private System.Windows.Forms.Label lblOrgId;
|
||||
private System.Windows.Forms.TextBox txtOrgName;
|
||||
private System.Windows.Forms.Label lblOrgName;
|
||||
private System.Windows.Forms.ListView lvUsers;
|
||||
private System.Windows.Forms.ColumnHeader columnHeader1;
|
||||
private System.Windows.Forms.ImageList images;
|
||||
private System.Windows.Forms.ColumnHeader columnHeader2;
|
||||
private System.Windows.Forms.ColumnHeader columnHeader3;
|
||||
internal System.Windows.Forms.Button btnStart;
|
||||
internal System.Windows.Forms.ProgressBar progressBar;
|
||||
internal System.Windows.Forms.Label lblMessage;
|
||||
private System.Windows.Forms.RadioButton rbCreateAndImport;
|
||||
private System.Windows.Forms.RadioButton rbImport;
|
||||
internal System.Windows.Forms.Button btnSelectAll;
|
||||
internal System.Windows.Forms.Button btnDeselectAll;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,333 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Collections.Specialized;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.Reflection;
|
||||
|
||||
using System.DirectoryServices;
|
||||
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
using WebsitePanel.Providers.HostedSolution;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
public partial class ApplicationForm : BaseForm
|
||||
{
|
||||
private string username;
|
||||
private string password;
|
||||
private OrganizationImporter importer;
|
||||
internal bool ImportStarted = false;
|
||||
|
||||
|
||||
public ApplicationForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
CheckForIllegalCrossThreadCalls = false;
|
||||
}
|
||||
|
||||
public void InitializeForm(string username, string password)
|
||||
{
|
||||
this.username = username;
|
||||
this.password = password;
|
||||
UserInfo info = UserController.GetUser(username);
|
||||
SecurityContext.SetThreadPrincipal(info);
|
||||
|
||||
importer = new OrganizationImporter();
|
||||
|
||||
Assembly assembly = Assembly.GetExecutingAssembly();
|
||||
this.Text += " v" + assembly.GetName().Version.ToString(3);
|
||||
UpdateForm();
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void OnBrowseSpace(object sender, EventArgs e)
|
||||
{
|
||||
SelectSpace();
|
||||
}
|
||||
|
||||
private void SelectSpace()
|
||||
{
|
||||
SpaceForm form = new SpaceForm();
|
||||
form.InitializeForm(username, password);
|
||||
if (form.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
Global.Space = form.SelectedSpace;
|
||||
txtSpace.Text = Global.Space.PackageName;
|
||||
LoadSpaceData(Global.Space);
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadSpaceData(PackageInfo packageInfo)
|
||||
{
|
||||
int serviceId = PackageController.GetPackageServiceId(packageInfo.PackageId, ResourceGroups.HostedOrganizations);
|
||||
ServiceInfo serviceInfo = ServerController.GetServiceInfo(serviceId);
|
||||
StringDictionary serviceSettings = ServerController.GetServiceSettingsAdmin(serviceId);
|
||||
Global.RootOU = serviceSettings["RootOU"];
|
||||
Global.PrimaryDomainController = serviceSettings["PrimaryDomainController"];
|
||||
Global.TempDomain = serviceSettings["TempDomain"];
|
||||
ServerInfo serverInfo = ServerController.GetServerById(serviceInfo.ServerId);
|
||||
Global.ADRootDomain = serverInfo.ADRootDomain;
|
||||
}
|
||||
|
||||
private void OnBrowseOU(object sender, EventArgs e)
|
||||
{
|
||||
SelectOU();
|
||||
}
|
||||
|
||||
private void SelectOU()
|
||||
{
|
||||
if (string.IsNullOrEmpty(txtSpace.Text))
|
||||
{
|
||||
ShowWarning("Please select hosting space first.");
|
||||
return;
|
||||
}
|
||||
OUForm form = new OUForm();
|
||||
form.InitializeForm();
|
||||
if (form.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
Global.OrgDirectoryEntry = form.DirectoryEntry;
|
||||
string orgId = (string)Global.OrgDirectoryEntry.Properties["name"].Value;
|
||||
txtOU.Text = form.DirectoryEntry.Path;
|
||||
Global.OrganizationId = orgId;
|
||||
|
||||
|
||||
LoadOrganizationData(Global.OrgDirectoryEntry);
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadOrganizationData(DirectoryEntry parent)
|
||||
{
|
||||
string orgId = (string)parent.Properties["name"].Value;
|
||||
txtOrgId.Text = orgId;
|
||||
|
||||
Organization org = OrganizationController.GetOrganizationById(orgId);
|
||||
if (org != null)
|
||||
{
|
||||
rbCreateAndImport.Checked = false;
|
||||
rbImport.Checked = true;
|
||||
txtOrgName.Text = org.Name;
|
||||
}
|
||||
else
|
||||
{
|
||||
rbCreateAndImport.Checked = true;
|
||||
rbImport.Checked = false;
|
||||
txtOrgName.Text = orgId;
|
||||
}
|
||||
LoadOrganizationAccounts(parent);
|
||||
}
|
||||
|
||||
private void LoadOrganizationAccounts(DirectoryEntry ou)
|
||||
{
|
||||
lvUsers.Items.Clear();
|
||||
ListViewItem item = null;
|
||||
string email;
|
||||
string type;
|
||||
string name;
|
||||
PropertyValueCollection typeProp;
|
||||
string ouName = (string)ou.Properties["name"].Value;
|
||||
foreach (DirectoryEntry child in ou.Children)
|
||||
{
|
||||
type = null;
|
||||
email = null;
|
||||
name = (string)child.Properties["name"].Value;
|
||||
//account type
|
||||
typeProp = child.Properties["msExchRecipientDisplayType"];
|
||||
|
||||
switch (child.SchemaClassName)
|
||||
{
|
||||
case "user":
|
||||
email = (string)child.Properties["userPrincipalName"].Value;
|
||||
if (typeProp == null || typeProp.Value == null)
|
||||
{
|
||||
type = "User";
|
||||
}
|
||||
else
|
||||
{
|
||||
int mailboxType = (int)typeProp.Value;
|
||||
|
||||
switch (mailboxType)
|
||||
{
|
||||
case 1073741824:
|
||||
type = "User Mailbox";
|
||||
break;
|
||||
case 7:
|
||||
type = "Room Mailbox";
|
||||
break;
|
||||
case 8:
|
||||
type = "Equipment Mailbox";
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!string.IsNullOrEmpty(type))
|
||||
{
|
||||
|
||||
item = new ListViewItem(name);
|
||||
item.ImageIndex = 0;
|
||||
item.Checked = true;
|
||||
item.Tag = child;
|
||||
item.SubItems.Add(email);
|
||||
item.SubItems.Add(type);
|
||||
lvUsers.Items.Add(item);
|
||||
}
|
||||
break;
|
||||
case "contact":
|
||||
if (typeProp != null && typeProp.Value != null && 6 == (int)typeProp.Value)
|
||||
{
|
||||
type = "Mail Contact";
|
||||
if (child.Properties["targetAddress"] != null)
|
||||
{
|
||||
email = (string)child.Properties["targetAddress"].Value;
|
||||
if (email != null && email.ToLower().StartsWith("smtp:"))
|
||||
email = email.Substring(5);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(type))
|
||||
{
|
||||
|
||||
item = new ListViewItem(name);
|
||||
item.ImageIndex = 1;
|
||||
item.Checked = true;
|
||||
item.Tag = child;
|
||||
item.SubItems.Add(email);
|
||||
item.SubItems.Add(type);
|
||||
lvUsers.Items.Add(item);
|
||||
}
|
||||
break;
|
||||
case "group":
|
||||
if (child.Properties["mail"] != null)
|
||||
email = (string)child.Properties["mail"].Value;
|
||||
if ((typeProp != null) && (typeProp.Value != null) && (1073741833 == (int)typeProp.Value))
|
||||
{
|
||||
//Universal Security Group
|
||||
type = "Mail-Enabled Universal Security Group";
|
||||
//email
|
||||
PropertyValueCollection proxyAddresses = child.Properties["proxyAddresses"];
|
||||
if (proxyAddresses != null)
|
||||
{
|
||||
foreach (string address in proxyAddresses)
|
||||
{
|
||||
if (address != null && address.StartsWith("SMTP:"))
|
||||
{
|
||||
email = address.Substring(5);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(type) && name != ouName)
|
||||
{
|
||||
|
||||
item = new ListViewItem(name);
|
||||
item.ImageIndex = 2;
|
||||
item.Checked = true;
|
||||
item.Tag = child;
|
||||
item.SubItems.Add(email);
|
||||
item.SubItems.Add(type);
|
||||
lvUsers.Items.Add(item);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void OnDataChanged(object sender, EventArgs e)
|
||||
{
|
||||
UpdateForm();
|
||||
}
|
||||
|
||||
private void UpdateForm()
|
||||
{
|
||||
if (string.IsNullOrEmpty(txtSpace.Text) ||
|
||||
string.IsNullOrEmpty(txtOU.Text))
|
||||
{
|
||||
btnStart.Enabled = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
btnStart.Enabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnImportClick(object sender, EventArgs e)
|
||||
{
|
||||
List<DirectoryEntry> accounts = new List<DirectoryEntry>();
|
||||
foreach (ListViewItem item in lvUsers.Items)
|
||||
{
|
||||
if (item.Checked)
|
||||
{
|
||||
accounts.Add((DirectoryEntry)item.Tag);
|
||||
}
|
||||
}
|
||||
Global.SelectedAccounts = accounts;
|
||||
Global.OrganizationName = txtOrgName.Text;
|
||||
Global.ImportAccountsOnly = rbImport.Checked;
|
||||
Global.HasErrors = false;
|
||||
importer.Initialize(this.username, this);
|
||||
importer.Start();
|
||||
|
||||
}
|
||||
|
||||
private void OnFormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
e.Cancel = ImportStarted;
|
||||
}
|
||||
|
||||
private void OnCheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
txtOrgName.ReadOnly = !rbCreateAndImport.Checked;
|
||||
}
|
||||
|
||||
private void OnSelectAllClick(object sender, EventArgs e)
|
||||
{
|
||||
foreach (ListViewItem item in lvUsers.Items)
|
||||
{
|
||||
item.Checked = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnDeselectAllClick(object sender, EventArgs e)
|
||||
{
|
||||
foreach (ListViewItem item in lvUsers.Items)
|
||||
{
|
||||
item.Checked = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
using System.Text;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
public class BaseForm : Form
|
||||
{
|
||||
public DialogResult ShowError(string text, Exception ex)
|
||||
{
|
||||
Log.WriteError(text, ex);
|
||||
return MessageBox.Show(this, text, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
|
||||
}
|
||||
|
||||
public DialogResult ShowWarning(string text)
|
||||
{
|
||||
return MessageBox.Show(this, text, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
|
||||
}
|
||||
}
|
||||
}
|
170
WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/ConnectForm.Designer.cs
generated
Normal file
|
@ -0,0 +1,170 @@
|
|||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
partial class ConnectForm
|
||||
{
|
||||
/// <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()
|
||||
{
|
||||
WebsitePanel.Import.Enterprise.LineBox lineBox;
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ConnectForm));
|
||||
this.btnCancel = new System.Windows.Forms.Button();
|
||||
this.btnConnect = new System.Windows.Forms.Button();
|
||||
this.pictureBox = new System.Windows.Forms.PictureBox();
|
||||
this.txtUserName = new System.Windows.Forms.TextBox();
|
||||
this.lblUserName = new System.Windows.Forms.Label();
|
||||
this.lblPassword = new System.Windows.Forms.Label();
|
||||
this.txtPassword = new System.Windows.Forms.TextBox();
|
||||
this.animatedIcon = new WebsitePanel.Import.Enterprise.AnimatedIcon();
|
||||
lineBox = new WebsitePanel.Import.Enterprise.LineBox();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// lineBox
|
||||
//
|
||||
lineBox.Location = new System.Drawing.Point(12, 147);
|
||||
lineBox.Name = "lineBox";
|
||||
lineBox.Size = new System.Drawing.Size(387, 2);
|
||||
lineBox.TabIndex = 8;
|
||||
lineBox.TabStop = false;
|
||||
lineBox.Text = "lineBox1";
|
||||
//
|
||||
// btnCancel
|
||||
//
|
||||
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.btnCancel.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
||||
this.btnCancel.Location = new System.Drawing.Point(323, 162);
|
||||
this.btnCancel.Name = "btnCancel";
|
||||
this.btnCancel.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnCancel.TabIndex = 10;
|
||||
this.btnCancel.Text = "Cancel";
|
||||
this.btnCancel.UseVisualStyleBackColor = true;
|
||||
this.btnCancel.Click += new System.EventHandler(this.OnCancelClick);
|
||||
//
|
||||
// btnConnect
|
||||
//
|
||||
this.btnConnect.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
||||
this.btnConnect.Location = new System.Drawing.Point(242, 162);
|
||||
this.btnConnect.Name = "btnConnect";
|
||||
this.btnConnect.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnConnect.TabIndex = 9;
|
||||
this.btnConnect.Text = "&Connect";
|
||||
this.btnConnect.UseVisualStyleBackColor = true;
|
||||
this.btnConnect.Click += new System.EventHandler(this.OnConnectClick);
|
||||
//
|
||||
// pictureBox
|
||||
//
|
||||
this.pictureBox.Image = global::WebsitePanel.Import.Enterprise.Properties.Resources.ConnectLogo;
|
||||
this.pictureBox.Location = new System.Drawing.Point(0, 0);
|
||||
this.pictureBox.Name = "pictureBox";
|
||||
this.pictureBox.Size = new System.Drawing.Size(410, 67);
|
||||
this.pictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
||||
this.pictureBox.TabIndex = 3;
|
||||
this.pictureBox.TabStop = false;
|
||||
//
|
||||
// txtUserName
|
||||
//
|
||||
this.txtUserName.Location = new System.Drawing.Point(146, 84);
|
||||
this.txtUserName.Name = "txtUserName";
|
||||
this.txtUserName.Size = new System.Drawing.Size(253, 20);
|
||||
this.txtUserName.TabIndex = 4;
|
||||
this.txtUserName.Text = "serveradmin";
|
||||
this.txtUserName.TextChanged += new System.EventHandler(this.OnUserNameTextChanged);
|
||||
//
|
||||
// lblUserName
|
||||
//
|
||||
this.lblUserName.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
||||
this.lblUserName.Location = new System.Drawing.Point(11, 84);
|
||||
this.lblUserName.Name = "lblUserName";
|
||||
this.lblUserName.Size = new System.Drawing.Size(100, 21);
|
||||
this.lblUserName.TabIndex = 3;
|
||||
this.lblUserName.Text = "&User name:";
|
||||
//
|
||||
// lblPassword
|
||||
//
|
||||
this.lblPassword.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
||||
this.lblPassword.Location = new System.Drawing.Point(11, 112);
|
||||
this.lblPassword.Name = "lblPassword";
|
||||
this.lblPassword.Size = new System.Drawing.Size(100, 21);
|
||||
this.lblPassword.TabIndex = 5;
|
||||
this.lblPassword.Text = "&Password:";
|
||||
//
|
||||
// txtPassword
|
||||
//
|
||||
this.txtPassword.Location = new System.Drawing.Point(146, 112);
|
||||
this.txtPassword.Name = "txtPassword";
|
||||
this.txtPassword.PasswordChar = '*';
|
||||
this.txtPassword.Size = new System.Drawing.Size(253, 20);
|
||||
this.txtPassword.TabIndex = 6;
|
||||
this.txtPassword.Text = "serveradmin";
|
||||
//
|
||||
// animatedIcon
|
||||
//
|
||||
this.animatedIcon.Delay = 100;
|
||||
this.animatedIcon.Location = new System.Drawing.Point(0, 67);
|
||||
this.animatedIcon.Name = "animatedIcon";
|
||||
this.animatedIcon.Size = new System.Drawing.Size(410, 3);
|
||||
this.animatedIcon.TabIndex = 0;
|
||||
this.animatedIcon.TabStop = false;
|
||||
//
|
||||
// ConnectForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(410, 195);
|
||||
this.Controls.Add(this.animatedIcon);
|
||||
this.Controls.Add(this.txtPassword);
|
||||
this.Controls.Add(this.lblPassword);
|
||||
this.Controls.Add(this.txtUserName);
|
||||
this.Controls.Add(this.lblUserName);
|
||||
this.Controls.Add(this.pictureBox);
|
||||
this.Controls.Add(lineBox);
|
||||
this.Controls.Add(this.btnConnect);
|
||||
this.Controls.Add(this.btnCancel);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "ConnectForm";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Connect to Server";
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Button btnCancel;
|
||||
private System.Windows.Forms.Button btnConnect;
|
||||
private System.Windows.Forms.PictureBox pictureBox;
|
||||
private System.Windows.Forms.TextBox txtUserName;
|
||||
private System.Windows.Forms.Label lblUserName;
|
||||
private System.Windows.Forms.Label lblPassword;
|
||||
private System.Windows.Forms.TextBox txtPassword;
|
||||
private AnimatedIcon animatedIcon;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,188 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Configuration;
|
||||
using System.Threading;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
public partial class ConnectForm : Form
|
||||
{
|
||||
private Thread connectThread;
|
||||
|
||||
public ConnectForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
if (DesignMode)
|
||||
{
|
||||
return;
|
||||
}
|
||||
InitializeForm();
|
||||
UpdateFormState();
|
||||
}
|
||||
|
||||
private void InitializeForm()
|
||||
{
|
||||
animatedIcon.Images.Add(WebsitePanel.Import.Enterprise.Properties.Resources.ProgressImage1);
|
||||
animatedIcon.Images.Add(WebsitePanel.Import.Enterprise.Properties.Resources.ProgressImage2);
|
||||
animatedIcon.Images.Add(WebsitePanel.Import.Enterprise.Properties.Resources.ProgressImage3);
|
||||
animatedIcon.Images.Add(WebsitePanel.Import.Enterprise.Properties.Resources.ProgressImage4);
|
||||
animatedIcon.Images.Add(WebsitePanel.Import.Enterprise.Properties.Resources.ProgressImage5);
|
||||
animatedIcon.Images.Add(WebsitePanel.Import.Enterprise.Properties.Resources.ProgressImage6);
|
||||
animatedIcon.Images.Add(WebsitePanel.Import.Enterprise.Properties.Resources.ProgressImage7);
|
||||
animatedIcon.Images.Add(WebsitePanel.Import.Enterprise.Properties.Resources.ProgressImage8);
|
||||
animatedIcon.LastFrame = 8;
|
||||
}
|
||||
|
||||
private void OnConnectClick(object sender, EventArgs e)
|
||||
{
|
||||
DisableForm();
|
||||
animatedIcon.StartAnimation();
|
||||
ThreadStart threadDelegate = new ThreadStart(Connect);
|
||||
connectThread = new Thread(threadDelegate);
|
||||
connectThread.Start();
|
||||
}
|
||||
|
||||
|
||||
|
||||
public string Username
|
||||
{
|
||||
get { return txtUserName.Text; }
|
||||
}
|
||||
|
||||
public string Password
|
||||
{
|
||||
get { return txtPassword.Text; }
|
||||
}
|
||||
|
||||
private void Connect()
|
||||
{
|
||||
int status = -1;
|
||||
try
|
||||
{
|
||||
status = UserController.AuthenticateUser(txtUserName.Text, txtPassword.Text, string.Empty);
|
||||
if (status == 0)
|
||||
{
|
||||
UserInfo userInfo = UserController.GetUser(txtUserName.Text);
|
||||
SecurityContext.SetThreadPrincipal(userInfo);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.WriteError("Authentication error", ex);
|
||||
status = -1;
|
||||
}
|
||||
finally
|
||||
{
|
||||
animatedIcon.StopAnimation();
|
||||
}
|
||||
|
||||
string errorMessage = "Check configuration settings.";
|
||||
if (status != 0)
|
||||
{
|
||||
switch (status)
|
||||
{
|
||||
case BusinessErrorCodes.ERROR_USER_WRONG_USERNAME:
|
||||
case BusinessErrorCodes.ERROR_USER_WRONG_PASSWORD:
|
||||
errorMessage = "Wrong username or password.";
|
||||
break;
|
||||
case BusinessErrorCodes.ERROR_USER_ACCOUNT_CANCELLED:
|
||||
errorMessage = "Account cancelled.";
|
||||
break;
|
||||
case BusinessErrorCodes.ERROR_USER_ACCOUNT_PENDING:
|
||||
errorMessage = "Account pending.";
|
||||
break;
|
||||
case -1:
|
||||
errorMessage = "Authentication error.";
|
||||
break;
|
||||
}
|
||||
MessageBox.Show(this,
|
||||
string.Format("Cannot connect to the Enterprise Server.\n{0}", errorMessage),
|
||||
Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
EnableForm();
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.DialogResult = DialogResult.OK;
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void DisableForm()
|
||||
{
|
||||
foreach(Control ctrl in Controls)
|
||||
{
|
||||
ctrl.Enabled = false;
|
||||
}
|
||||
btnCancel.Enabled = true;
|
||||
}
|
||||
|
||||
private void EnableForm()
|
||||
{
|
||||
foreach (Control ctrl in Controls)
|
||||
{
|
||||
ctrl.Enabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateFormState()
|
||||
{
|
||||
btnConnect.Enabled = (txtUserName.Text.Length > 0 );
|
||||
}
|
||||
|
||||
private void OnCancelClick(object sender, EventArgs e)
|
||||
{
|
||||
if (connectThread != null)
|
||||
{
|
||||
connectThread.Abort();
|
||||
}
|
||||
this.DialogResult = DialogResult.Cancel;
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private void OnServerNameTextChanged(object sender, EventArgs e)
|
||||
{
|
||||
UpdateFormState();
|
||||
}
|
||||
|
||||
private void OnUserNameTextChanged(object sender, EventArgs e)
|
||||
{
|
||||
UpdateFormState();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,152 @@
|
|||
<?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>
|
||||
<metadata name="lineBox.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAUjgpAGM8IQBjQSkAY0UxAHNVQgB7WUIAc1lKAHthSgBzYVIAe3VrAMY0AADeUQgA51UIAPdV
|
||||
AAD3YRAA/20YAP9xIQD/dSEA93UpAP99MQCMZVIAhGlSAIxpUgCEaVoAjHFjAJR5awCceWsAAJYpAEq2
|
||||
awD/gjEA/4Y5AJSCawCchnMApYJjALWKawClhnMApYpzAPeCQgD/ikIA/5JKAP+WSgD/llIA95paAN6W
|
||||
cwDWmnsA95pjAP+eYwDnmnsA/6JjAP+iawD3pnMA/6p7AKWShACtloQArZqMALWWhAC1lowArZqUALWe
|
||||
lAC1opQAtaKcAL2mnAC1pqUAva6tAL2ypQC9sq0Avba1AMamlADWrpwA56aMAP+qhAD/roQA96aMAP+y
|
||||
jAD/rpQA77acAPeylAD/spQA/7acAMaupQDGsq0AzratAMa6rQDOuq0A1rqtAMa2tQDOurUAzr61AOe6
|
||||
rQD/vqUAzse9AN7DtQDWw70A/8OlAP/HpQD/x60A98e1APfLvQD3z70A/8u9AMDAwADGx8YAzsfGAM7P
|
||||
zgDWy8YA1s/OANbTxgDe084A1tPWANbX1gDe294A58/GAO/TxgD308YA/9PGAPfbzgDv39YA99/WAPfj
|
||||
3gD/494A3t/nAM77/wDn5+cA/+fnAP/r5wDn8+cA//PvAOf/9wDn//8A//v3AP/7/wD///8ASjAYAID2
|
||||
gnywDYN8/////6cNg3wPD4N8AQAAABwUjACkFIwAAAAFAAAAAAAA3P1/KAIAAEUAAADRwwEAcBOMAIAA
|
||||
EMBIFowAgPaCfOD5gnz/////AAAAAJv4gny8FIwAJcTmdwAAAAABAAAAAgAAADgWjAAYAAAAAAAAAKQU
|
||||
jABCAAAAAAAAAIgUjAAAAAAAAAAAAAAAAAAAAAAADAAAAAIAAAABAYN8ANz9fxwAAAAAAAAAAgAAACQA
|
||||
GgJQnAgAAgAAAAAAAABQnAgABQAAAOAUjAAGG+R3AAEAAAAAAMAAAAAAAAAAAAIAAAAAAAAAAAAAACAW
|
||||
jACv1EoAoCnqAAAAAMAAAAAAFBaMAAIAAACAAAAAAAAAAHRVjADs9aYAAgAAAEM6XGNvbm5lY3QuaWNv
|
||||
AACYFYwASBWMAEp+SgAEBwkAmBWMAMjEOXeYxDl3BQAAAAQHCQACAAAAJAAAAAAAAAAAAAAAeLTpAHAA
|
||||
AABUIYJ8bfTmdwABAAAAAAAAAAAAAAAAAACcFYwAeLTpABYAAAAAAAAAjfTmdxYAAAA4FowAAQAAACAA
|
||||
AAAWAAAAAAAAABYAAACIFYwABAcJAEgWjACYt+Z3kPTmd/////+N9OZ3RtVKAAABAAB4tOkAFgAAAOwV
|
||||
jAAAAAAAAAAAABwcHBwcHBwcHBwAAAAAAAAcAAAAAAAAAAAcAAAAAAAAHAAAAAAAAAAAHAAAfTklGxcI
|
||||
BQSFQQAAABwAAFd+a2ZcRDgiIwIAHBwcHBxYgIF6hHFVREUDAAAcHBwAfV1XUDw3NSQVQQAAABwAAGdz
|
||||
XlpPS0YtTAYAQRgJAQpoTScpFBANCywWADp/dx0HbVovMiofEQwwGQA9g392Fm5gNEoxKB4PSRoAP4OD
|
||||
fBlvYkpfSC8oEk4hAEBsU1EgeWQuMysmEw5HNQBWhH1yNnuCeHZ0cmNhczsAQ3VwWT59b25qaWdnW1R9
|
||||
AGxCQD1SAAAAAAAAAAAAAAAAAAAAAPADAAD3+wAA9/sAAAA7AAAAIAAAADEAAAA7AAAAIAAAACAAAAAg
|
||||
AAAAIAAAACAAAAAgAAAAIAAAACAAAP//AAA=
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
|
@ -0,0 +1,63 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
using System.Text;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
public class DataNode : TreeNode
|
||||
{
|
||||
private bool populated;
|
||||
public bool Populated
|
||||
{
|
||||
get
|
||||
{
|
||||
return populated;
|
||||
}
|
||||
set
|
||||
{
|
||||
populated = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string nodeType;
|
||||
public string NodeType
|
||||
{
|
||||
get
|
||||
{
|
||||
return nodeType;
|
||||
}
|
||||
set
|
||||
{
|
||||
nodeType = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,79 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
using System.DirectoryServices;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
class Global
|
||||
{
|
||||
private static string rootOU;
|
||||
public static string RootOU
|
||||
{
|
||||
get { return rootOU; }
|
||||
set { rootOU = value; }
|
||||
}
|
||||
|
||||
private static string primaryDomainController;
|
||||
public static string PrimaryDomainController
|
||||
{
|
||||
get { return primaryDomainController; }
|
||||
set { primaryDomainController = value; }
|
||||
}
|
||||
|
||||
private static string aDRootDomain;
|
||||
|
||||
public static string ADRootDomain
|
||||
{
|
||||
get { return aDRootDomain; }
|
||||
set { aDRootDomain = value; }
|
||||
}
|
||||
|
||||
public static PackageInfo Space;
|
||||
public static string TempDomain;
|
||||
|
||||
public static string MailboxCluster;
|
||||
public static string StorageGroup;
|
||||
public static string MailboxDatabase;
|
||||
public static string KeepDeletedMailboxesDays;
|
||||
public static string KeepDeletedItemsDays;
|
||||
public static DirectoryEntry OrgDirectoryEntry;
|
||||
public static List<DirectoryEntry> SelectedAccounts;
|
||||
public static string OrganizationId;
|
||||
public static string OrganizationName;
|
||||
public static int ItemId;
|
||||
public static string ErrorMessage;
|
||||
public static bool ImportAccountsOnly;
|
||||
public static bool HasErrors;
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,101 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.DirectoryServices;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
public enum ActionTypes
|
||||
{
|
||||
None,
|
||||
ImportOrganization,
|
||||
ImportOrganizationDomain,
|
||||
ImportMailbox,
|
||||
ImportContact,
|
||||
ImportGroup
|
||||
}
|
||||
|
||||
public class ImportAction
|
||||
{
|
||||
public ImportAction(ActionTypes type)
|
||||
{
|
||||
this.ActionType = type;
|
||||
}
|
||||
|
||||
private ActionTypes actionType;
|
||||
|
||||
public ActionTypes ActionType
|
||||
{
|
||||
get { return actionType; }
|
||||
set { actionType = value; }
|
||||
}
|
||||
|
||||
private string name;
|
||||
|
||||
public string Name
|
||||
{
|
||||
get { return name; }
|
||||
set { name = value; }
|
||||
}
|
||||
|
||||
private string description;
|
||||
|
||||
public string Description
|
||||
{
|
||||
get { return description; }
|
||||
set { description = value; }
|
||||
}
|
||||
|
||||
private DirectoryEntry entry;
|
||||
|
||||
public DirectoryEntry DirectoryEntry
|
||||
{
|
||||
get { return entry; }
|
||||
set { entry = value; }
|
||||
}
|
||||
|
||||
private string path;
|
||||
|
||||
public string Path
|
||||
{
|
||||
get { return path; }
|
||||
set { path = value; }
|
||||
}
|
||||
|
||||
private string userName;
|
||||
|
||||
public string UserName
|
||||
{
|
||||
get { return userName; }
|
||||
set { userName = value; }
|
||||
}
|
||||
}
|
||||
}
|
36
WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/LineBox.Designer.cs
generated
Normal file
|
@ -0,0 +1,36 @@
|
|||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
partial class LineBox
|
||||
{
|
||||
/// <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 Component 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()
|
||||
{
|
||||
components = new System.ComponentModel.Container();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
|
@ -0,0 +1,96 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
/// <summary>
|
||||
/// 3D line box.
|
||||
/// </summary>
|
||||
[ToolboxItem(true)]
|
||||
public partial class LineBox : Control
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the LineBox class.
|
||||
/// </summary>
|
||||
public LineBox() : base()
|
||||
{
|
||||
SetStyle(ControlStyles.UserPaint, true);
|
||||
SetStyle(ControlStyles.FixedHeight, true);
|
||||
SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
SetStyle(ControlStyles.ResizeRedraw, true);
|
||||
SetStyle(ControlStyles.StandardClick, false);
|
||||
SetStyle(ControlStyles.Selectable, false);
|
||||
this.TabStop = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Raises the Paint event.
|
||||
/// </summary>
|
||||
/// <param name="e">A PaintEventArgs that contains the event data.</param>
|
||||
protected override void OnPaint(PaintEventArgs e)
|
||||
{
|
||||
Graphics graphics = e.Graphics;
|
||||
Rectangle rectangle = this.ClientRectangle;
|
||||
Pen lightPen = new Pen(ControlPaint.Light(this.BackColor, 1));
|
||||
Pen darkPen = new Pen(ControlPaint.Dark(this.BackColor, 0));
|
||||
graphics.DrawLine(darkPen, rectangle.X, rectangle.Y, rectangle.X+rectangle.Width, rectangle.Y);
|
||||
graphics.DrawLine(lightPen, rectangle.X, rectangle.Y+1, rectangle.X+rectangle.Width, rectangle.Y+1);
|
||||
base.OnPaint(e);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the default size of the control.
|
||||
/// </summary>
|
||||
protected override Size DefaultSize
|
||||
{
|
||||
get
|
||||
{
|
||||
return new Size(10, 2);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Performs the work of setting the specified bounds of this control.
|
||||
/// </summary>
|
||||
/// <param name="x">The new Left property value of the control.</param>
|
||||
/// <param name="y">The new Right property value of the control.</param>
|
||||
/// <param name="width">The new Width property value of the control.</param>
|
||||
/// <param name="height">The new Height property value of the control.</param>
|
||||
/// <param name="specified">A bitwise combination of the BoundsSpecified values.</param>
|
||||
[EditorBrowsable(EditorBrowsableState.Advanced)]
|
||||
protected override void SetBoundsCore(int x, int y, int width, int height, BoundsSpecified specified)
|
||||
{
|
||||
base.SetBoundsCore(x, y, width, 2, specified);
|
||||
}
|
||||
}
|
||||
}
|
205
WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/Log.cs
Normal file
|
@ -0,0 +1,205 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Configuration;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
/// <summary>
|
||||
/// Installer Log.
|
||||
/// </summary>
|
||||
public sealed class Log
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the class.
|
||||
/// </summary>
|
||||
private Log()
|
||||
{
|
||||
}
|
||||
|
||||
private static string logFile = "WebsitePanel.Import.Enterprise.log";
|
||||
|
||||
/// <summary>
|
||||
/// Initializes trace listeners.
|
||||
/// </summary>
|
||||
static Log()
|
||||
{
|
||||
//FileStream fileLog = new FileStream(logFile, FileMode.Append);
|
||||
FileStream fileLog = new FileStream(logFile, FileMode.Create);
|
||||
TextWriterTraceListener fileListener = new TextWriterTraceListener(fileLog);
|
||||
fileListener.TraceOutputOptions = TraceOptions.DateTime;
|
||||
Trace.UseGlobalLock = true;
|
||||
Trace.Listeners.Clear();
|
||||
Trace.Listeners.Add(fileListener);
|
||||
Trace.AutoFlush = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Write error to the log.
|
||||
/// </summary>
|
||||
/// <param name="message">Error message.</param>
|
||||
/// <param name="ex">Exception.</param>
|
||||
internal static void WriteError(string message, Exception ex)
|
||||
{
|
||||
try
|
||||
{
|
||||
string line = string.Format("[{0:G}] ERROR: {1}", DateTime.Now, message);
|
||||
Trace.WriteLine(line);
|
||||
Trace.WriteLine(ex);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Write error to the log.
|
||||
/// </summary>
|
||||
/// <param name="message">Error message.</param>
|
||||
internal static void WriteError(string message)
|
||||
{
|
||||
try
|
||||
{
|
||||
string line = string.Format("[{0:G}] ERROR: {1}", DateTime.Now, message);
|
||||
Trace.WriteLine(line);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Write to log
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
internal static void Write(string message)
|
||||
{
|
||||
try
|
||||
{
|
||||
string line = string.Format("[{0:G}] {1}", DateTime.Now, message);
|
||||
Trace.Write(line);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Write line to log
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
internal static void WriteLine(string message)
|
||||
{
|
||||
try
|
||||
{
|
||||
string line = string.Format("[{0:G}] {1}", DateTime.Now, message);
|
||||
Trace.WriteLine(line);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Write info message to log
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
internal static void WriteInfo(string message)
|
||||
{
|
||||
try
|
||||
{
|
||||
string line = string.Format("[{0:G}] INFO: {1}", DateTime.Now, message);
|
||||
Trace.WriteLine(line);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Write start message to log
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
internal static void WriteStart(string message)
|
||||
{
|
||||
try
|
||||
{
|
||||
string line = string.Format("[{0:G}] START: {1}", DateTime.Now, message);
|
||||
Trace.WriteLine(line);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Write end message to log
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
internal static void WriteEnd(string message)
|
||||
{
|
||||
try
|
||||
{
|
||||
string line = string.Format("[{0:G}] END: {1}", DateTime.Now, message);
|
||||
Trace.WriteLine(line);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
internal static void WriteApplicationStart()
|
||||
{
|
||||
try
|
||||
{
|
||||
Assembly assembly = Assembly.GetExecutingAssembly();
|
||||
string name = assembly.GetName().Name;
|
||||
string version = assembly.GetName().Version.ToString();
|
||||
string line = string.Format("[{0:G}] {1} {2} Started", DateTime.Now, name, version);
|
||||
Trace.WriteLine(line);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
internal static void WriteApplicationEnd()
|
||||
{
|
||||
try
|
||||
{
|
||||
Assembly assembly = Assembly.GetExecutingAssembly();
|
||||
string name = assembly.GetName().Name;
|
||||
string line = string.Format("[{0:G}] {1} Ended", DateTime.Now, name);
|
||||
Trace.WriteLine(line);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Opens notepad to view log file.
|
||||
/// </summary>
|
||||
public static void ShowLogFile()
|
||||
{
|
||||
try
|
||||
{
|
||||
string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, logFile);
|
||||
Process.Start("notepad.exe", path);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
}
|
||||
}
|
164
WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/OUForm.Designer.cs
generated
Normal file
|
@ -0,0 +1,164 @@
|
|||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
partial class OUForm
|
||||
{
|
||||
/// <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.components = new System.ComponentModel.Container();
|
||||
System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("Node3", 3, 3);
|
||||
System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("Node2", 2, 2, new System.Windows.Forms.TreeNode[] {
|
||||
treeNode1});
|
||||
System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("Node1", 1, 1, new System.Windows.Forms.TreeNode[] {
|
||||
treeNode2});
|
||||
System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("Node0", new System.Windows.Forms.TreeNode[] {
|
||||
treeNode3});
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OUForm));
|
||||
this.ouTree = new System.Windows.Forms.TreeView();
|
||||
this.images = new System.Windows.Forms.ImageList(this.components);
|
||||
this.images2 = new System.Windows.Forms.ImageList(this.components);
|
||||
this.pnlButtons = new System.Windows.Forms.Panel();
|
||||
this.btnCancel = new System.Windows.Forms.Button();
|
||||
this.btnSelect = new System.Windows.Forms.Button();
|
||||
this.pnlButtons.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// ouTree
|
||||
//
|
||||
this.ouTree.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.ouTree.ImageIndex = 2;
|
||||
this.ouTree.ImageList = this.images;
|
||||
this.ouTree.Location = new System.Drawing.Point(10, 10);
|
||||
this.ouTree.Name = "ouTree";
|
||||
treeNode1.ImageIndex = 3;
|
||||
treeNode1.Name = "Node3";
|
||||
treeNode1.SelectedImageIndex = 3;
|
||||
treeNode1.Text = "Node3";
|
||||
treeNode2.ImageIndex = 2;
|
||||
treeNode2.Name = "Node2";
|
||||
treeNode2.SelectedImageIndex = 2;
|
||||
treeNode2.Text = "Node2";
|
||||
treeNode3.ImageIndex = 1;
|
||||
treeNode3.Name = "Node1";
|
||||
treeNode3.SelectedImageIndex = 1;
|
||||
treeNode3.Text = "Node1";
|
||||
treeNode4.Name = "Node0";
|
||||
treeNode4.Text = "Node0";
|
||||
this.ouTree.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
|
||||
treeNode4});
|
||||
this.ouTree.SelectedImageIndex = 2;
|
||||
this.ouTree.ShowLines = false;
|
||||
this.ouTree.Size = new System.Drawing.Size(399, 319);
|
||||
this.ouTree.TabIndex = 0;
|
||||
this.ouTree.BeforeExpand += new System.Windows.Forms.TreeViewCancelEventHandler(this.OnBeforeExpand);
|
||||
//
|
||||
// images
|
||||
//
|
||||
this.images.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("images.ImageStream")));
|
||||
this.images.TransparentColor = System.Drawing.Color.Transparent;
|
||||
this.images.Images.SetKeyName(0, "");
|
||||
this.images.Images.SetKeyName(1, "OU.ico");
|
||||
this.images.Images.SetKeyName(2, "Folder.ico");
|
||||
this.images.Images.SetKeyName(3, "");
|
||||
this.images.Images.SetKeyName(4, "UserSmallIcon.ico");
|
||||
this.images.Images.SetKeyName(5, "UsersSmallIcon.ico");
|
||||
this.images.Images.SetKeyName(6, "");
|
||||
this.images.Images.SetKeyName(7, "");
|
||||
this.images.Images.SetKeyName(8, "contact1.ico");
|
||||
//
|
||||
// images2
|
||||
//
|
||||
this.images2.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("images2.ImageStream")));
|
||||
this.images2.TransparentColor = System.Drawing.Color.Transparent;
|
||||
this.images2.Images.SetKeyName(0, "UserSmallIcon.ico");
|
||||
this.images2.Images.SetKeyName(1, "UsersSmallIcon.ico");
|
||||
this.images2.Images.SetKeyName(2, "FolderSmallIcon.ico");
|
||||
this.images2.Images.SetKeyName(3, "SpaceSmallIcon.ico");
|
||||
//
|
||||
// pnlButtons
|
||||
//
|
||||
this.pnlButtons.Controls.Add(this.btnCancel);
|
||||
this.pnlButtons.Controls.Add(this.btnSelect);
|
||||
this.pnlButtons.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.pnlButtons.Location = new System.Drawing.Point(10, 329);
|
||||
this.pnlButtons.Name = "pnlButtons";
|
||||
this.pnlButtons.Size = new System.Drawing.Size(399, 32);
|
||||
this.pnlButtons.TabIndex = 1;
|
||||
//
|
||||
// btnCancel
|
||||
//
|
||||
this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.btnCancel.Location = new System.Drawing.Point(324, 9);
|
||||
this.btnCancel.Name = "btnCancel";
|
||||
this.btnCancel.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnCancel.TabIndex = 1;
|
||||
this.btnCancel.Text = "Cancel";
|
||||
this.btnCancel.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// btnSelect
|
||||
//
|
||||
this.btnSelect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnSelect.Location = new System.Drawing.Point(243, 9);
|
||||
this.btnSelect.Name = "btnSelect";
|
||||
this.btnSelect.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnSelect.TabIndex = 0;
|
||||
this.btnSelect.Text = "Select";
|
||||
this.btnSelect.UseVisualStyleBackColor = true;
|
||||
this.btnSelect.Click += new System.EventHandler(this.OnSelectClick);
|
||||
//
|
||||
// OUForm
|
||||
//
|
||||
this.AcceptButton = this.btnSelect;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.CancelButton = this.btnCancel;
|
||||
this.ClientSize = new System.Drawing.Size(419, 371);
|
||||
this.Controls.Add(this.ouTree);
|
||||
this.Controls.Add(this.pnlButtons);
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "OUForm";
|
||||
this.Padding = new System.Windows.Forms.Padding(10);
|
||||
this.ShowIcon = false;
|
||||
this.ShowInTaskbar = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Select Organizational Unit";
|
||||
this.pnlButtons.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.TreeView ouTree;
|
||||
private System.Windows.Forms.Panel pnlButtons;
|
||||
private System.Windows.Forms.Button btnCancel;
|
||||
private System.Windows.Forms.Button btnSelect;
|
||||
private System.Windows.Forms.ImageList images2;
|
||||
private System.Windows.Forms.ImageList images;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,196 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using System.DirectoryServices;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
public partial class OUForm : BaseForm
|
||||
{
|
||||
public const string OU = "organizationalUnit";
|
||||
public const string CONTAINER = "container";
|
||||
public const string COMPUTER = "computer";
|
||||
public const string USER = "user";
|
||||
public const string CONTACT = "contact";
|
||||
public const string GROUP = "group";
|
||||
public const string TMP = "Tmp";
|
||||
|
||||
public OUForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
}
|
||||
|
||||
public void InitializeForm()
|
||||
{
|
||||
PopulateRootNode();
|
||||
}
|
||||
|
||||
private void PopulateRootNode()
|
||||
{
|
||||
ouTree.Nodes.Clear();
|
||||
DirectoryEntry root = null;
|
||||
try
|
||||
{
|
||||
root = ADUtils.GetRootOU();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ShowError("Unable to load root OU.", ex);
|
||||
}
|
||||
if (root != null)
|
||||
{
|
||||
DataNode rootNode = AddTreeNode(null, root);
|
||||
rootNode.Expand();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnBeforeExpand(object sender, TreeViewCancelEventArgs e)
|
||||
{
|
||||
DataNode node = e.Node as DataNode;
|
||||
ExpandNode(node);
|
||||
}
|
||||
|
||||
private void ExpandNode(DataNode node)
|
||||
{
|
||||
if (node == null || node.Populated)
|
||||
return;
|
||||
|
||||
node.Nodes.Clear();
|
||||
ouTree.Update();
|
||||
try
|
||||
{
|
||||
DirectoryEntry parent = node.Tag as DirectoryEntry;
|
||||
|
||||
foreach (DirectoryEntry child in parent.Children)
|
||||
{
|
||||
AddTreeNode(node, child);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ShowError("Unable to load Active Directory data.", ex);
|
||||
}
|
||||
|
||||
node.Populated = true;
|
||||
node.Expand();
|
||||
}
|
||||
|
||||
private DataNode AddTreeNode(DataNode parentNode, DirectoryEntry entry)
|
||||
{
|
||||
bool hasChildren = true;
|
||||
DataNode node = new DataNode();
|
||||
node.Text = (string)entry.Properties["name"].Value;
|
||||
|
||||
node.NodeType = entry.SchemaClassName;
|
||||
int imageIndex = 2;
|
||||
switch (entry.SchemaClassName)
|
||||
{
|
||||
case OU:
|
||||
imageIndex = 1;
|
||||
break;
|
||||
case CONTAINER:
|
||||
imageIndex = 2;
|
||||
break;
|
||||
case COMPUTER:
|
||||
imageIndex = 3;
|
||||
break;
|
||||
case USER:
|
||||
imageIndex = 4;
|
||||
hasChildren = false;
|
||||
break;
|
||||
case CONTACT:
|
||||
imageIndex = 8;
|
||||
hasChildren = false;
|
||||
break;
|
||||
case GROUP:
|
||||
imageIndex = 5;
|
||||
hasChildren = false;
|
||||
break;
|
||||
default:
|
||||
imageIndex = 6;
|
||||
break;
|
||||
}
|
||||
|
||||
node.SelectedImageIndex = imageIndex;
|
||||
node.ImageIndex = imageIndex;
|
||||
node.Tag = entry;
|
||||
if (hasChildren)
|
||||
{
|
||||
node.Populated = false;
|
||||
DataNode tmpNode = new DataNode();
|
||||
tmpNode.Text = "Expanding...";
|
||||
tmpNode.SelectedImageIndex = 2;
|
||||
tmpNode.ImageIndex = 2;
|
||||
tmpNode.NodeType = TMP;
|
||||
node.Nodes.Add(tmpNode);
|
||||
}
|
||||
else
|
||||
{
|
||||
node.Populated = true;
|
||||
}
|
||||
if (parentNode != null)
|
||||
parentNode.Nodes.Add(node);
|
||||
else
|
||||
ouTree.Nodes.Add(node);
|
||||
return node;
|
||||
}
|
||||
|
||||
private void OnSelectClick(object sender, EventArgs e)
|
||||
{
|
||||
DataNode node = ouTree.SelectedNode as DataNode;
|
||||
if (node == null || node.NodeType != OU)
|
||||
{
|
||||
ShowWarning("Please select Organizational Unit.");
|
||||
return;
|
||||
}
|
||||
|
||||
this.directoryEntry = (DirectoryEntry)node.Tag;
|
||||
this.DialogResult = DialogResult.OK;
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private DirectoryEntry directoryEntry;
|
||||
|
||||
public DirectoryEntry DirectoryEntry
|
||||
{
|
||||
get { return directoryEntry; }
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,390 @@
|
|||
<?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>
|
||||
<metadata name="images.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>107, 17</value>
|
||||
</metadata>
|
||||
<data name="images.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADQ
|
||||
KQAAAk1TRnQBSQFMAgEBCQEAAQwBAAEEAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
|
||||
AwABMAMAAQEBAAEgBgABMP8A/wAUAAG9AcMBtQH/AUkBSAFJAf8BSQFIAUkB/wFJAUgBSQH/AUkBSAFJ
|
||||
Af8BSQFIAUkB/wFJAUgBSQH/AUkBSAFJAf8BSQFIAUkB/wFJAUgBSQH/AUkBSAFJAf8BSQFIAUkB/wFJ
|
||||
AUgBSQH/AUkBSAFJAf8BSQFIAUkB/wFJAUgBSQH/wAABvQHDAbUL/wH3A/8B9wP/AfcD/wH3A/8B9wP/
|
||||
AfcD/wH3A/8B9wP/AfcD/wH3A/8B9wL/AfcB7wH/AZwBngGUAf/AAAG9AcMBtQX/AfcB7wHnAf8B9wHv
|
||||
AecB/wH3Ae8B5wH/AfcB7wHnAf8B9wHvAecB/wH3Ae8B5wH/AfcB7wHnAf8B9wHvAecB/wH3Ae8B5wH/
|
||||
AfcB7wHnAf8B9wHvAecB/wH3Ae8B5wH/AfcB7wHnAf8BnAGeAZQB/8AAAb0BwwG1Bf8B7wHfAdYB/wHW
|
||||
Ab4BrQH/AcYBsgGlAf8BxgGyAaUB/wHOAboBpQH/AecB3wHWAf8B9wHvAecB/wH3Ae8B5wH/AfcB7wHn
|
||||
Af8B9wHvAecB/wH3Ae8B5wH/AfcB7wHnAf8B9wHvAecB/wGcAZ4BlAH/wAABvQHDAbUF/wHGAa4BnBH/
|
||||
AdYBvgGtAf8B9wHvAecB/wH3Ae8B5wH/AfcB7wHnAf8B9wHvAecB/wH3Ae8B5wH/AfcB7wHnAf8B9wHv
|
||||
AecB/wGcAZ4BlAH/wAABvQHDAbUC/wL3Af8BxgGuAZwR/wHeAcMBvQH/AfcB7wHnAf8BxgGyAaUB/wHG
|
||||
AbIBpQH/AcYBsgGlAf8BxgGyAaUB/wHGAbIBpQH/AfcB7wHnAf8BnAGeAZQB/8AAAb0BwwG1Av8C9wH/
|
||||
Ac4BugGlEf8B3gHDAb0B/wH3Ae8B5wH/AdYBwwG1Af8B1gHHAb0B/wHWAccBvQH/AdYBxwG9Af8B1gHD
|
||||
AbUB/wH3Ae8B5wH/AZwBngGUAf/AAAG9AcMBtQP/AfcB/wHOAcMBtRH/AdYBxwG9Af8B9wHvAecB/wHW
|
||||
AcMBtQH/AdYBwwG1Af8B1gHDAbUB/wHWAccBvQH/AdYBwwG1Av8B9wHvAf8BnAGeAZQB/8AAAb0BwwG1
|
||||
Bf8B7wHfAdYB/wHGAbIBpQH/AcYBsgGlAf8BxgGyAaUB/wHGAa4BnAH/Ae8B3wHWAf8B9wHvAecB/wHG
|
||||
AbIBpQH/AcYBsgGlAf8BxgGyAaUB/wHGAbIBpQH/AcYBsgGlAv8B9wHvAf8BnAGWAZQB/8AAAb0BwwG1
|
||||
Bf8B9wHvAecC/wHvAecB/wH3Ae8B5wL/AfcB7wH/AfcB7wHnAf8B9wHvAecH/wH3Av8C9wH/A/cB/wH3
|
||||
AfMB7wH/AfcB7wHnA/8B9wH/AZwBngGUAf/AAAG9AcMBtR3/AZwBngGUAf8BvQG+AbUB/wG9Ab4BtQH/
|
||||
Ab0BwwG1Af8BvQG+AbUB/wG9Ab4BtQH/Ab0BvgG1Af8BvQG+AbUB/8AAAb0BwwG1Af8BvQHDAbUB/wG9
|
||||
AcMBtQH/Ab0BwwG1Af8BvQHDAbUB/wG9AcMBtQH/Ab0BwwG1Af8BvQHDAbUB/wG9AcMBtQH//wD/AP8A
|
||||
fwABgwFyAWcB/wGDAXIBZwH/AYMBcgFnAf9gAAMYASEDTQGRAVwBWwFYAcEBeAFvAWgB5gGSAX4BcgH8
|
||||
AXgBbwFoAeYBXAFbAVgBwQNMAZADKAE9LAADGAEhA00BkQFcAVsBWAHBAXgBbwFnAeYBlQF+AW8B/AF4
|
||||
AW8BZwHmAVwBWwFYAcEDTAGQAygBPRwAAYMBcgFnAf8BwwGbAW0B/wGrAYUBWwH/AYMBcgFnAf8cAANo
|
||||
Af8DaAH/OAADAwEEAWABXQFcAc0BqgGTAW8B/QHmAcsBtAH/Ad4BtwGQAf8B4wG7AZQB/wHgAboBlAH/
|
||||
Ac4BqwGIAf8BuAGZAXcB/wFfAV0BXAHFGAADCAELAxQBGwMWAR4DFAEcAw4BEwFgAV0BXAHNAa8BlAFs
|
||||
Af0B9AHVAboB/wHqAb4BkQH/AfABwgGVAf8B7QHBAZUB/wHYAbABiAH/Ab8BmwF1Af8BXwFdAVwBxRgA
|
||||
AYMBcgFnAf8BsQGZAYEB/wHcAbcBkgH/AZ4BhQFlAf8DZQH/GAABcwFZAeoB/wEjAQAB3wH/ATkBIgGm
|
||||
Af8DXwH/HAABXAFKAbIB/wEoAQEB2AH/EAADBAEFAV0BXAFaAb4BxgGlAYUB/wHmAdABvQH/AeIBvQGc
|
||||
Af8B5gG/AZcB/wHoAcMBnwH/AdsBugGYAf8BwAGfAXoB/wFkAV8BXgHMEAADFwEgA0gBhAFTAWEBWQHX
|
||||
AVEBawFhAeYBTwFsAV8B6AFYAWsBYQHmAVABXwFXAd8BrAGRAWwB/wHPAakBhAH/AfQB2gHEAf8B7wHE
|
||||
AZ8B/wH0AccBmQH/AfYBywGiAf8B5wHBAZoB/wHIAaIBeAH/AWQBXwFcAcwQAAGHAXcBbQH/AZMBeAFj
|
||||
Af8BogGMAXAB/wHGAakBiQH/AeoBxAGfAf8BvgGeAXYB/wFhAVQBRgH/A0wB/wNqAf8QAAFzAVkB6gH/
|
||||
ASMBAAHfAf8BKgEEAdsB/wFNAUgBZAH/A18B/xQAAUABIwHDAf8BIwEAAd8B/wFUAUABtgH/EwABAQFV
|
||||
AVQBUwGqAdkBsQGQAf8B5gHUAcEB/wHzAdIBswH/AeoBwQGYAf8B7QHMAaoB/wHgAcIBpAH/AcMBowGC
|
||||
Af8BbAFoAWIB3RAAAyoBQAFnAcMBmQH/AV8BwAGRAf8BVwG4AYkB/wFPAbIBhAH/AaABwQGoAf8BVQGn
|
||||
AXgB/wGvAaABbAH/AeUBtwGRAf8B9AHfAckC/wHdAbkB/wH4AckBmgH/AfwB1gGvAf8B7QHKAagB/wHL
|
||||
AacBgQH/AW8BZwFhAd0IAAGrAZABbgH/AasBkAFuAf8BwQGkAYoB/wHPAa8BkgH/Ad4BvwGdAf8B8wHO
|
||||
AaoC/wHnAcAB/wHkAcMBoAH/AcQBpgGFAf8BsQGQAWgB/wFpAVgBRwH/A1YB/xAAAXMBWQHqAf8BIwEA
|
||||
Ad8B/wE3ARYB0gH/A1kB/xAAATQBEgHNAf8BKAEBAdgB/wFUAUABtgH/FAADAQECAwEBAgGTAYcBeQHl
|
||||
AdABwwGyAf8ByAHDAbsB/wHXAbcBlwH/AesBxAGdAf8B4QG+AZsB/wHOAaYBegH/A00BkRAAAxcBIAFu
|
||||
AcoBoAH/AWUBwgGWAf8BYAG/AZMB/wFnAcABkQH/AdEB4wHGAf8BYAG1AZAB/wGNAasBcgL/AdIBpQH/
|
||||
AdoBywG4Af8B0QHLAcIB/wHiAb4BmQH/AfkBzAGgAf8B7gHGAZ0B/wHYAaoBeAH/A00BkQQAAasBkAFu
|
||||
Af8BuQGiAYkB/wHcAcMBqQH/AfwB3AG9Av8B7wHOAf8B4wG2AZMB/wGdATQBCwH/AcgBbwFBAv8B3QG4
|
||||
Av8B3gG6Af8B5AHFAaUB/wHDAaQBhgH/AYUBZwFOAf8DVwH/EAABdAFaAesB/wEjAQAB3wH/AUwBMgHD
|
||||
Af8DXgH/CAABNAESAc0B/wEoAQEB2AH/AVQBQAG2Af8fAAEBAx8BLQFeAl8ByQEWAUYBdwH/AUoBZAGD
|
||||
Af8BxgGmAYcB/wGZAYQBbwHuA04BmAMHAQoQAAMMARABdQG2AZcB+AFuAcoBoAH/AWQBxAGVAf8BggHD
|
||||
AagB/wGyAcoBvwH/AVsBqgGFAf8BSAGoAXIB/wJpAV8B2QFsAW4BdwH1AQUBPAF1Af8BQQFfAYIB/wHP
|
||||
AaoBhgH/AZwBhwFuAe4DTgGYAwcBCgQAAbgBpQGQAf8B4wHNAbcC/wHqAc0C/wHoAcsC/wH0AdcB/wHT
|
||||
AakBiAH/AUMCAAH/AWoBGQEAAv8B4QG8Av8B6AHHAv8B4wG/Af8B7QHNAa8B/wHCAaUBhwH/AWgBWgFM
|
||||
Af8DXwH/EAABdAFaAesB/wEjAQAB3wH/AUsBMQHDAf8BTQFKAVgB/wEtAQwBxwH/ASYBAAHXAf8BVAFA
|
||||
AbYB/x8AAQEDAAEBAxABFgNQAZoBKwFQAXcB/wEiAUwBdwH/A1UBtQM/AWwEAAMCAQMUAANKAYkBbwG9
|
||||
AZIB/AFiAbwBkQH/AVsBkQGyAf8BUgGAAaUB/wFAAXMBUwH9AVgBXwFcAckDTwGbATsBWQFzAfUBHQFI
|
||||
AXUB/wETAUMBdQH/AlQBVQG1Az8BbAQAAwIBAwG4AaUBkAH/AdkBxwG1Av8B7AHUAv8B6wHRAv8B5gHN
|
||||
Av8B6QHPAv8B7wHWAf8B3AG2AZkB/wHxAdEBtgL/Ae8B0gL/AeMBxQL/AeMBxQL/AeUBxgH/AeUBygGt
|
||||
Af8BtQGZAXYB/wM+Af8UAAFzAVkB6gH/ASMBAAHfAf8BJgEAAdcB/wElAQAB1gH/AWQBXAGMAf8gAAMD
|
||||
AQQDAgEDAyEBMAFYAWYBdQHjAUcBbgGbAf8BQgFnAZMB/wEwAVYBgQH/AyQBNiAAAzEBTgFgAZ0BigH5
|
||||
AUoBdwGoAf8BUgF2AY4B9ANTAagDKAE9AVgBZQF1AeMBPgFqAZ0B/wE4AWIBlAH/ASMBTwGAAf8DJAE2
|
||||
DAABygG4AakB/wH2AeIB0QL/AfEB3QL/AesB1gL/AeoB1QL/AesB1AL/AfsB5gH/AcsBiQFaAf8B6AG/
|
||||
AZ8D/wHpAv8B5wHNAv8B5AHKAv8B6AHLAf8B+wHhAcQB/wHWAbsBoAH/AVcBVQFSAf8YAAEpAQIB2QH/
|
||||
ASMBAAHfAf8BQQElAcQB/wFkAVwBjAH/IAADBAEGBAADRwGCAWIBgQGcAfYBZQGQAbYB/wFWAYEBpwH/
|
||||
ATwBZAGQAf8DUgGhAwUBBxwAAUQCRQF8AToBZQF/AfkBcAGhAcwB/wFzAZsBxQH7AU8BaQGBAfADTAGP
|
||||
AWIBgwGhAfYBYAGRAbwB/wFPAYABqwH/ATEBXwGRAf8DUgGhAwUBBwgAAc8BxQG5Af8B+wHsAd0C/wHz
|
||||
AeMC/wHuAd4C/wHuAdwC/wHxAd8D/wH4Af8BzgGgAYIB/wGlAUABEwL/AesBzwL/AfgB5AL/AekB0wL/
|
||||
AeoB0AL/AegBzgH/Ad4BxgGwAf8BhAF3AW8B/xQAATQBEgHNAf8BKAEBAdgB/wFUAUABtgH/ATABCQHg
|
||||
Af8BUwE3AdYB/wFkAVwBjAH/HAADBAEGAwABAQM/AWwBfgGbAbgB+AGCAagBzgH/AWUBkQG4Af8BRwFp
|
||||
AZIB/wEsATwBTAH/AyQBNRgAAwoBDgFVAW8BdwHnAVMBjAGvAf8BoQHLAfkB/wGWAcMB8QH/AWcBiAG0
|
||||
AfwDQgFzAX4BnQG+AfgBgQGsAdgB/wFgAZIBvwH/AT4BZQGTAf8BHwExAUMB/wMkATUIAAHSAckBvwH/
|
||||
AfwB8QHmAv8B9wHrAv8B8gHlAv8B9AHnAv8B9gHnAv8B8gHeAv8B/gHvAf8BiAEuAQkB/wGnATUBCQH/
|
||||
Ae0B0gG4Av8B+AHnAv8B7QHZAv8B8AHaAf8B3QHHAbIB/wGAAXUBcAH/EAABNAESAc0B/wEjAQAB3wH/
|
||||
AVQBQAG2Af8IAAE9ARkB4gH/AUQBIgHdAf8BZAFcAYwB/xgAAwEBAgMAAQEBwwHQAdoB/wGQAbABzgH5
|
||||
AZsBvwHlAf8BbgGdAccB/wFGAVoBbwH/AS4BKgEnAf8DMgFQGAADDgETAVgBdgF+AekBjgG5Ad8B/wHM
|
||||
AfQC/wGqAdYB/gH/AWgBdgGBAeEEAAGSAbYB1wH5AZ0BxwHyAf8BagGgAdAB/wE8AVMBbAH/ASEBHAEZ
|
||||
Af8DMgFQCAAB0gHJAb8B/wH0Ae8B6QP/AfYC/wH3Ae0F/wHFAZkBeQH/AY0BFwEAAf8B6wHTAb4B/wGr
|
||||
AXQBWAH/AV4CAAH/Ab0BiAFkA/8B+AL/AfkB6QH/AfoB8AHhAf8B1gHAAasB/wGEAXcBbwH/DAABMwER
|
||||
AcwB/wEjAQAB3wH/AVQBQAG2Af8QAAFZAToB5wH/AS8BCAHfAf8BZAFcAYwB/xcAAQEIAAF/AYkBlwH1
|
||||
AXoBkgGmAf8BZAF3AY4B/wFKAU0BUQH/ATQBMwEyAf8DJAE1GAADAQECAV0BYwFnAcoBZwGnAcIB/wG8
|
||||
AeMB9AH/AaoB0gH5Af8BZQFwAYEB4wQAAX8BiQGbAfUBeAGTAaoB/wFfAXUBjgH/AUEBRQFJAf8BKAEn
|
||||
ASYB/wMkATUMAAHjAeIB4AL/Af4B/AP/AfsF/wG9AZgBhQH/AVYCAAH/AeIBxQGyAf8BhQE4ARsB/wFR
|
||||
AgAB/wHSAbMBnQf/Af0B/wHwAeUB2gH/AbUBpwGZAf8MAAEzAREBzAH/ASMBAAHfAf8BVAFAAbYB/xgA
|
||||
AVkBOgHnAf8BIwEAAd8B/xsAAQEEAANMAZICbAFqAekBZwFlAWIB/ANZAfIDUQGcAwQBBRwAA0IBdQFy
|
||||
Ab4B0QH/AVYBoAG1Af8BUwGTAbAB/wFAAXQBigH+BAADTAGSAWwCagHpAWIBYAFdAfwCVwFWAfIDUQGc
|
||||
AwQBBQwAAdIByQG/Af8C6wHsDf8BxQGaAYQB/wG5AWsBRwH/AZABSAEwAf8BwgGnAZcJ/wH1AfEB7QH/
|
||||
AdQBxgG4Af8MAAE7ARcB4AH/ASMBAAHfAf8BQAEjAcMB/zgAAwoBDQQAAwoBDQQAAxUBHQMoATwDHgEr
|
||||
JAADCgEOA1cBqwGCAaMBqwHvAXABoAGqAfMBYQF4AX4B4QNHAYIEAAMVAR0DKAE8Ax4BKxgAAdIByQG/
|
||||
Af8B7wHtAewB/wH6AfwB/hn/AfUB8AHsAf8B3QHTAckB/xAAATABCgHhAf8BRwEmAeEB/8QAAdIByQG/
|
||||
Af8B7wHsAegB/wL1AfYB/wH2AfkB+gH/AfgC+QH/AfQB7wHqAf8B7QHoAeIB/wHSAckBvwH/WAABhAKA
|
||||
Af8BhAKAAf8BhAKAAf8BhAKAAf8UAAGEAoAB/wGEAoAB/wGEAoAB/wGEAoAB/4wAA4UB/wNzAf8DSQH/
|
||||
Az0B/wM9Af8DVgH/A4UB/yAAAYQCgAH/AbYCpQH/AbYCpQH/AXECXAH/A2oB/wGEAoAB/wwAAYQCgAH/
|
||||
AbYCpQH/AbYCpQH/AXECXAH/A2oB/wGEAoAB/4QAAa4CowH/AaMClAH/AcECrQH/AcsCsgH/AcECrQH/
|
||||
AbICkwH/AYcCZgH/AU4CSAH/A2gB/xgAAYQCgAH/AdIBtwG2Af8BwQGjAaEB/wHBAaMBoQH/AboBmQGY
|
||||
Af8BggJoAf8BhAKAAf8IAAGEAoAB/wHSAbcBtgH/AcEBowGhAf8BwQGjAaEB/wG6AZkBmAH/AYICaAH/
|
||||
AYQCgAH/BAABYAGiAb0B/wFgAaIBvQH/AWABogG9Af8BYAGiAb0B/wFgAaIBvQH/AWABogG9Af8BYAGe
|
||||
AbUB/wFXAZoBtQH/AU8BkgGtAf8BTwGOAaUB/wFHAYoBpQH/AUcBggGcAf8BPwF6AZQB/wE/AXoBlAH/
|
||||
CAABYAGiAb0B/wFgAaIBvQH/AWABogG9Af8BYAGiAb0B/wFgAaIBvQH/AWABogG9Af8BYAGeAbUB/wFX
|
||||
AZoBtQH/AU8BkgGtAf8BTwGOAaUB/wFHAYoBpQH/AUcBggGcAf8BPwF6AZQB/wE/AXoBlAH/BAAB2gLS
|
||||
Af8B3gLcAf8D4gH/Ad4C3AH/AdoC0gH/AcsCsgH/Aa0CngH/AbYCjwH/Ab8CjAH/AVkCTwH/GAABhAKA
|
||||
Af8D7AH/AesC4QH/AdACvQH/AcQCmAH/AakChwH/DAABhAKAAf8D7AH/AesC4QH/AdACvQH/AcQCmAH/
|
||||
AakChwH/CAABeAGyAc4B/wGMAeMC/wGEAdMB9wH/AYQB0wH3Af8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3
|
||||
Af8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3Af8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3Af8BVwGaAbUB/wgA
|
||||
AXgBsgHOAf8BjAHjAv8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3Af8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3
|
||||
Af8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3Af8BhAHTAfcB/wGEAdMB9wH/AVcBmgG1Af8EAAHLArIB/wPs
|
||||
Af8D8QH/A+wB/wHeAtwB/wHWAr8B/wGlAo0B/wGoAocB/wHOAqQB/wGHAmYB/wNuAf8BgQJyAf8DVgH/
|
||||
A24B/wwAAYQCgAH/AdMBqwGpAf8BzQKUAf8BuAFzAW4B/wFTAk0B/xAAAdIBowGZAf8B0wGrAakB/wHN
|
||||
ApQB/wG4AXMBbgH/AVcCVgH/CAABeAGyAc4B/wGUAecC/wGEAdMB9wH/AQABWgGEAf8BAAFaAYQB/wEA
|
||||
AVoBhAH/AQABWgGEAf8BAAFaAYQB/wGEAdMB9wH/AYQB0wH3Af8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3
|
||||
Af8BYAGeAb0B/wgAAXgBsgHOAf8BlAHnAv8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3Af8BhAHTAfcB/wGE
|
||||
AdMB9wH/AYQB0wH3Af8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3Af8BhAHTAfcB/wGEAdMB9wH/AWABngG9
|
||||
Af8IAAHLArIB/wHwAuIB/wPsAf8B1QLFAf8B1AKyAf8BsgJ1Af8BvAKFAf8BzgKkAf8BkAJtAf8BqQKN
|
||||
Af8BvgKqAf8BnAKQAf8BXAJSAf8DUAH/A24B/wHSAbcBtgH/Ad0BmwFuAf8B7gGhAT8B/wHnAbABZwH/
|
||||
Ad0BmwFuAf8BlgFhAWAB/wFXAlYB/wFXAlYB/wFXAlYB/wFXAlYB/wHdAZsBbgH/Ae4BoQE/Af8B5wGw
|
||||
AWcB/wHdAZsBbgH/AYMCUwH/A3YB/wQAAXgBsgHOAf8BnAHrAv8BhAHTAfcB/wE/AYoBpQH/AVcBogGt
|
||||
Af8BNgGWAa0B/wEuAZIBpQH/AQABWgGEAf8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3Af8BhAHTAfcB/wGE
|
||||
AdMB9wH/AWABngG9Af8IAAF4AbIBzgH/AZwB6wL/AYQB0wH3Af8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3
|
||||
Af8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3Af8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3Af8BhAHTAfcB/wFg
|
||||
AZ4BvQH/DAAB1gKrAf8B3AK5Af8BzgKkAf8BygKMAf8BwgJnAf8ByQJ3Af8B1AKyAf8B3ALEAf8B3AK5
|
||||
Af8BvQKdAf8BrQKeAf8BrgKjAf8BiwGDAXgB/wM9Af8BzgKkAf8B2QG9AZIC/wG+AUYC/wHIAVcC/wHI
|
||||
AVcB/wHTAYEBYQH/AyAB/wEoAW8BtAH/ASgBbwG0Af8DIAH/AdkBvQGSAv8BvgFGAv8ByAFXAv8ByAFX
|
||||
Af8B0wGBAWEB/wNqAf8EAAF4AboB1gH/AZwB6wL/AYwB2wL/AYQBzwHnAf8BnAHnAfcB/wGEAdsB7wH/
|
||||
AXgB1wHvAf8BLgGiAcYB/wGMAdsC/wGEAdcC/wGEAdcC/wGEAdcC/wGEAdMB9wH/AWABngG9Af8IAAF4
|
||||
AboB1gH/AZwB6wL/AYwB2wL/AYwB2wL/AYwB2wL/AYwB2wL/AYwB2wL/AYwB2wL/AYwB2wL/AYQB1wL/
|
||||
AYQB1wL/AYQB1wL/AYQB0wH3Af8BYAGeAb0B/wwAAfABowE8Af8B/QG6AU0B/wHwAcABjgH/AckBkwGd
|
||||
Af8ByQJnAf8BxQJuAf8B3ALEAf8B1gKrAf8BzwKdAf8BvAKTAf8BngJqAf8BpQKBAf8BngGwAZYB/wM9
|
||||
Af8BzgKkAf8B2AG9AaQC/wHbAYIC/wHiAZMC/wHdAYgB/wHdAZsBbgH/A48B/wE/AbEB6AH/AT8BsQHo
|
||||
Af8BhAKAAf8B2AG9AaQC/wHbAYIC/wHiAZMC/wHdAYgB/wHdAZsBbgH/A2oB/wQAAYQBvgHWAf8BpQHv
|
||||
Av8BjAHfAv8BhAHPAecB/wFwAccB3gH/AcYD/wFwAccB3gH/AS4BogHGAf8BjAHfAv8BjAHfAv8BjAHf
|
||||
Av8BjAHfAv8BhAHbAfcB/wFgAZ4BvQH/CAABhAG+AdYB/wGlAe8C/wGMAd8C/wGMAd8C/wGMAd8C/wGM
|
||||
Ad8C/wGMAd8C/wGMAd8C/wGMAd8C/wGMAd8C/wGMAd8C/wGMAd8C/wGEAdsB9wH/AWABngG9Af8IAAHc
|
||||
AsQB/wHzAaoBOgL/AdYBcwL/AdYBcwL/AdYBcwH/AfEBvAFxAf8B1wGXAYcB/wHKAowB/wHWAqsB/wHc
|
||||
ArkB/wG9Ap0B/wGvAnYB/wGnAnEB/wGeAmgB/wM9Af8BzgKkAf8B2AG9AaQB/wHzAd8BoAL/Ae8BqwL/
|
||||
AewBpAH/AecBsAFnAf8EAAHNAsIB/wMgAf8BzgKkAf8B2AG9AaQB/wHzAd8BoAL/Ae8BqwL/AewBpAH/
|
||||
AecBsAFnAf8DlAH/BAABhAHDAd4B/wGtAfMC/wGMAeMC/wGEAc8B5wH/AYwBzwHnAf8BVwG+AdYB/wFP
|
||||
AbYB1gH/AS4BogHGAf8BjAHfAv8BjAHfAv8BjAHfAv8BjAHfAv8BjAHbAfcB/wFgAZ4BvQH/CAABhAHD
|
||||
Ad4B/wGtAfMC/wGMAeMC/wGMAd8C/wGMAd8C/wGMAd8C/wGMAd8C/wGMAd8C/wGMAd8C/wGMAd8C/wGM
|
||||
Ad8C/wGMAd8C/wGMAdsB9wH/AWABngG9Af8IAAHUArIC/wG6ATwC/wHWAXMC/wHWAXMC/wHWAXMC/wHA
|
||||
AUkC/wG9AUIB/wHzAbIBUgH/AdUBjAF3Af8B3AK5Af8BxgKTAf8BxgKTAf8BzwKdAf8BswKCAf8DPQH/
|
||||
Ac4CpAH/Ac4CpAH/Ac4CpAH/Ac4CpAH/Ac4CpAH/AdYBogGDAf8EAAHJAbwBuAH/AyAB/wHOAqQB/wHO
|
||||
AqQB/wHOAqQB/wHOAqQB/wHOAqQB/wHWAaIBgwH/CAABhAHDAd4B/wGtAfMC/wGMAeMC/wE/AYoBpQH/
|
||||
AT8BigGlAf8BPwGKAaUB/wE/AYoBpQH/AT8BigGlAf8BjAHjAv8BjAHjAv8BjAHjAv8BjAHjAv8BjAHb
|
||||
AfcB/wFgAZ4BvQH/CAABhAHDAd4B/wGtAfMC/wGMAeMC/wGMAeMC/wGMAeMC/wGMAeMC/wGMAeMC/wGM
|
||||
AeMC/wGMAeMC/wGMAeMC/wGMAeMC/wGMAeMC/wGMAdsB9wH/AWABngG9Af8IAAHgAb4BqQH/Ad8BrAFZ
|
||||
Av8B1gFzAv8B1gFzAv8B1gFzAf8B7wG/AWMC/wHJAVkC/wHCAU0B/wHXAZQBeAH/AdwCuQH/AcYCkwH/
|
||||
Aa8CdgH/Aa8CdgH/AbICdQH/Az0B/xgAA2oB/wG8AbsBuAH/AyAB/wFJAkYB/wNqAf8DagH/FAABhAHD
|
||||
Ad4B/wG1AfMC/wGUAecC/wGUAecC/wGUAecC/wGUAesC/wGUAesC/wGtAfMC/wGtAfMC/wGtAfMC/wGt
|
||||
AfMC/wGtAfMC/wGtAfMC/wFgAZ4BvQH/CAABhAHDAd4B/wG1AfMC/wGUAecC/wGUAecC/wGUAecC/wGU
|
||||
AesC/wGUAesC/wGtAfMC/wGtAfMC/wGtAfMC/wGtAfMC/wGtAfMC/wGtAfMC/wFgAZ4BvQH/BAAB3ALE
|
||||
Af8B5gHFAaUC/wHPAWYC/wHWAXMC/wHaAYEC/wHWAXMC/wHWAXMC/wHTAW8C/wHNAWEB/wHPApcB/wHc
|
||||
ArkB/wG8AoUB/wG/AowB/wGvAnYB/wGyAnUB/wM9Af8UAAHSAbcBtgH/Ad0BmwFuAf8B7gGhAT8B/wHn
|
||||
AbABZwH/Ad0BmwFuAf8BgwJTAf8DdgH/FAABhAHPAecB/wG1AfMC/wGUAecC/wGUAecC/wGUAesC/wGU
|
||||
AesC/wG1AfMC/wFPAZIBrQH/AWABngG9Af8BaAGqAcYB/wFoAaoBxgH/AWgBqgHGAf8BaAGqAcYB/wF4
|
||||
AboB1gH/CAABhAHPAecB/wG1AfMC/wGUAecC/wGUAecC/wGUAesC/wGUAesC/wG1AfMC/wFPAZIBrQH/
|
||||
AWABngG9Af8BaAGqAcYB/wFoAaoBxgH/AWgBqgHGAf8BaAGqAcYB/wF4AboB1gH/BAAB3ALEAf8B6gHK
|
||||
AZoC/wHYAXgC/wHgAY4C/wHWAXMC/wHWAXMC/wHWAXMC/wHeAYkB/wH7Ac8BcwH/Ac8CnQH/AdwCuQH/
|
||||
AcYChAH/AbICdQH/AbwChQH/AbgCcQH/Az0B/xQAAc4CpAH/AdkBvQGSAv8BvgFGAv8ByAFXAv8ByAFX
|
||||
Af8B0wGBAWEB/wNqAf8UAAF4AcMB3gH/AYwB2wH3Af8BtQHzAv8BtQHzAv8BtQHzAv8BtQHzAv8BYAGe
|
||||
Ab0B/wGEAdMB9wH/AYQB0wH3Af8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3Af8BhAHTAfcB/wF4AboB1gH/
|
||||
CAABeAHDAd4B/wGMAdsB9wH/AbUB8wL/AbUB8wL/AbUB8wL/AbUB8wL/AWABngG9Af8BhAHTAfcB/wGE
|
||||
AdMB9wH/AYQB0wH3Af8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3Af8BeAG6AdYB/wQAAdwCxAH/AfcB1wGS
|
||||
Av8B4AGOAv8B6gGhAv8B1gFzAv8B1gFzAv8B1gFzAv8B1gFzAf8B7gHEAYQB/wHcArkB/wHuAt0B/wHh
|
||||
AsQB/wHZApwB/wHJAmcB/wHCAmcB/wNWAf8UAAHOAqQB/wHYAb0BpAL/AdsBggL/AeIBkwL/Ad0BiAH/
|
||||
Ad0BmwFuAf8DagH/GAABaAGqAcYB/wFoAaoBxgH/AWgBqgHGAf8BaAGqAcYB/wFoAaoBxgH/AXABvgHe
|
||||
Af8BnAHbAfcK/wGuAXgB/wHOAaIBPwH/AZwB2wH3Af8BeAG6AdYB/wwAAWgBqgHGAf8BaAGqAcYB/wFo
|
||||
AaoBxgH/AWgBqgHGAf8BaAGqAcYB/wFwAb4B3gH/AZwB2wH3Cv8BrgF4Af8BzgGiAT8B/wGcAdsB9wH/
|
||||
AXgBugHWAf8EAAHcAsQB/wG8AawBlgH/AdYBwAGVAf8B6AHXAaUC/wHWAXMC/wHWAXMC/wHWAXMC/wHW
|
||||
AXMB/wHpAcIBigH/AeECxAH/Ae4C3QH/Ae4C3QH/Ae4C3QH/AeoC1wH/AdACmgH/GAABzgKkAf8B2AG9
|
||||
AaQB/wHzAd8BoAL/Ae8BqwL/AewBpAH/AecBsAFnAf8DlAH/MAABaAG2Ad4B/wFoAbYB3gH/AWgBtgHe
|
||||
Af8BaAG2Ad4B/wFoAbYB3gH/AWABtgHeAf8oAAFoAbYB3gH/AWgBtgHeAf8BaAG2Ad4B/wFoAbYB3gH/
|
||||
AWgBtgHeAf8BYAG2Ad4B/wgAAdwCxAH/AdwCxAH/AdwCxAH/AdYCyQH/AcwCuAH/Ac4BuQGvAf8B1gHA
|
||||
AasB/wHcAb8BmQH/AdABpQGHAf8BxAKlAf8B1AKyAf8B1AKyAf8B1AKyAf8B1AKyAf8cAAHOAqQB/wHO
|
||||
AqQB/wHOAqQB/wHOAqQB/wHOAqQB/wHWAaIBgwH/oAAB3ALEAf8B3ALEAf8B3ALEAf8B3ALEAf8B3ALE
|
||||
Af8BwAKZAf8cAAFCAU0BPgcAAT4DAAEoAwABQAMAATADAAEBAQABAQUAAYABARYAA/8BAAL/BgAC/18A
|
||||
AX8GAAL/BgAC/wYABf8BHwL/AeABDwH+AQAB/gEfAc8B/wHAAQ8BwAEAAfwBHwGHAfMBwAEPAgAB8AEH
|
||||
AYMB4wHAAQ8CAAHAAQMBwwHHAcABDwIAAYABAQHhAY8B4AEPAgABgAEAAfABHwHAAS8BgAECAgAB+AE/
|
||||
AcABPwHAAQcCAAH8AT8B0AEfAcABAwIAAfgBHwHAAR8BgAEDAgAB8QGPAcABHwGBAQMCAAHjAccB2AEf
|
||||
AYEBAwGAAQEBxwHnAegBHwHBAQMBgAEDAY8B/wHUAX8BwAGPAcABBwGfBf8B8AEPAv8BwwHhBP8BwAF/
|
||||
AYEBwAT/AYABPwEBAoABAQGAAQEBAAE/AQMBgQGAAQEBgAEBAQABAwGDAcEBgAEBAYABAQGAAwABgAEB
|
||||
AYABAQHAAwABgAEBAYABAQHAAwABgAEBAYABAQGAAQABAgEAAYABAQGAAQEBgAEAAQIBAQGAAQEBgAEB
|
||||
AYABAAH8AQ8BgAEBAYABAQIAAfgBDwGAAQEBgAEBAgAB+AEPAYABAQGAAQECAAH4AQ8BwAEBAcABAQEA
|
||||
AQEB+AEPAf8BAwH/AQMBAAEDAfgBHwT/AeABfws=
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="images2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<data name="images2.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACK
|
||||
EAAAAk1TRnQBSQFMAgEBBAEAAQwBAAEEAQABEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA
|
||||
AwABIAMAAQEBAAEYBgABGP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/ALoAA/sD7wHeAdsB2AHVAc8ByQHX
|
||||
AdMBzgHlAeMB4gP2GAAB+QL4AcwBxgHBAbYBrAGhAaoBmQGKAaEBiwF6AaoBmQGKAbYBrAGhAckBxAG/
|
||||
Ae8B7gHtIQAB+QL4AcwBxAG/AbcBqgGeAawBmAGGAaQBiwF3AawBmAGGAbcBqgGeAckBwwG9Ae8B7gHt
|
||||
OQAB8gLxAb8BpQGMAdIBkgFKAeoBpAFSAe8BrQFaAe8BrgFYAekBqQFUAckBnQFnAdEByAG9A/0PAAP+
|
||||
Aa8BoQGVAbEBlQF6AeYBywG0Ad4BtwGQAeMBuwGUAeABugGUAc4BqwGIAbgBmQF8AcABsgGkEgAD/QP4
|
||||
A/cD+AP7Aa8BnwGRAbYBlgF3AfQB1QG6AeoBvgGRAfABwgGVAe0BwQGVAdgBsAGIAb8BmwF6AcEBsgGi
|
||||
AwABdQGEAY8BbAF6AYUBYAFtAXcBUQFdAWYBQgFMAVQBMQE6AUEBIwEqATABFgEcASEBDgETARgBDgET
|
||||
ARgBDgETARgBDgETARgBDgETARgBDgETARgBDgETARgGAAHzAe4B6gHiAZcBTQHnAZgBRAHiAZsBSQHh
|
||||
AZ8BTgHjAaQBUwHkAacBUgHmAakBTwHvAbcBXQH2Ab0BZQHkAb0BkQP9DAAD/gHGAbkBqQHGAaUBhQHm
|
||||
AdABvQHiAb0BnAHmAb8BlwHoAcMBnwHbAboBmAHAAZ8BfwG7AasBnQwAA/YBtAG/AboBZgGWAX8BWgGV
|
||||
AXcBVAGSAXQBagGVAX8BWQGFAWwBrAGRAXEBzwGpAYQB9AHaAcQB7wHEAZ8B9AHHAZkB9gHLAaIB5wHB
|
||||
AZoByAGiAX0BvQGqAZoDAAF3AYcBkgGiAd8B8AFwAc0B6gFJAbgB4gE3Aa4B2wEtAakB2QEmAaEB0gEh
|
||||
AZgBxwEgAY4BvAEeAYMBrgEZAX8BqwEVAXwBqQEbAXcBnwEfAXIBlgEWARwBIQMAAfcB8wHvAdsBiAE6
|
||||
AdUBfAEmAdUBfgEjAdcBggEjAdkBiAEmAdwBkAEuAeABmgE8AeMBoQFFAeMBoQE+AecBrQFRAeoBsgFX
|
||||
AekBwAGRDAAD/wHPAcoBtwHZAbEBkAHmAdQBwQHzAdIBswHqAcEBmAHtAcwBqgHgAcIBpAHDAaMBggGu
|
||||
AZwBjAwAA+cBbAHDAZkBZAHAAZEBXAG4AYkBVAGyAYQBoAHBAagBWgGnAX0BrwGgAXEB5QG3AZEB9AHf
|
||||
AckB/wHdAbkB+AHJAZoB/AHWAa8B7QHKAagBywGnAYEBrwGbAYkDAAF6AYoBlQGqAegB9gGVAeUB/AGE
|
||||
Ad8B+wF1AdYB+gFqAdAB9wFdAcYB9AFQAb4B8AFBAbQB7AE1AaoB6AErAaQB5gEgAZoB3wEWAZAB1wEb
|
||||
AXcBnwEgAScBLQP/Ad4BrAF8AdABcgEeAdMBeAEgAdQBewEgAdYBfwEgAdcBgwEfAdkBhQEeAdoBiQEe
|
||||
Ad0BkQEoAeABmgE0AeEBnAEzAecBrAFQAeQBpAFAAe4B4QHSCQAG/wHwAdABsAHQAcMBsgHIAcMBuwHX
|
||||
AbcBlwHrAcQBnQHhAb4BmwHOAaYBfwHSAcoBwgwAA/YBcwHKAaABagHCAZYBZQG/AZMBbAHAAZEB0QHj
|
||||
AcYBZQG1AZABjQGrAXcB/wHSAaUB2gHLAbgB0QHLAcIB4gG+AZkB+QHMAaAB7gHGAZ0B2AGqAX0B0gHJ
|
||||
AcADAAF9AY4BmAGwAeoB9gGfAekB+wGSAeQB/AGBAd0B+wF1AdYB+gFoAc4B9wFdAcYB9AFNAbwB8AFB
|
||||
AbQB7AE1AaoB6AEqAaMB5gEdAZYB3AEVAXwBqQEtATQBOwH0Ae8B6QHiAacBcwHTAXkBKwHSAXQBHgHU
|
||||
AXoBIQHVAX4BIQHXAYEBIQHYAYUBIQHaAYgBIAHbAYoBHwHcAY8BIgHeAZQBKAHgAZoBMgHlAagBSgHi
|
||||
Aa8BbwP+CQAD/wL1AfQBpAGnAawBGwFLAXwBTwFpAYMBxgGmAYcB1AGxAY4B0QHIAb8D/QwAA/sBgQHP
|
||||
AagBcwHKAaABaQHEAZUBggHDAagBsgHKAb8BYAGqAYUBTQGoAXcBsgGuAY4BfAGCAYwBCgFBAXoBRgFk
|
||||
AYIBzwGqAYYB3AG0AY0B0gHHAb0D/QMAAYABkQGcAbYB7QH4AaoB7AH7AZsB6AH7AY8B4wH8AYEB3QH7
|
||||
AXEB1QH5AWgBzgH3AVsBxQH0AU0BvAHwAT0BsgHsATIBqQHoASQBngHiARABggG0ATsBQwFLAesB1wHB
|
||||
AeoBvgGdAeEBpAFwAdEBcwEfAdIBdwEeAdQBfAEhAdYBfwEhAdcBggEhAdkBhQEgAdoBiAEgAdsBigEg
|
||||
AdwBjQEhAdwBjgEhAeIBnwFAAd4BmAE3AfYB8wHvBgAG/wP6Aa0BugHHATABVQF8AScBUQF8AZUBmQGb
|
||||
AeYB4QHcAwAD/g8AAdMB6AHeAXcBzAGhAWcBvAGRAWABkQGyAVcBgAGlAUEBfgFcAYABsQGWAaABrgGz
|
||||
ATwBYQGKASIBTQF6ARgBSAF6AY8BlAGWAegB4QHbAwAD/gMAAYMBlQGfAb4B8AH5AasB8AH3AaUB7AH7
|
||||
AZgB5wH7AYkB4QH8AX8B3QH7AXEB1QH5AWUBzQH3AVgBxAHzAUsBuwHwAT0BsgHsASwBpAHjAQwBigG/
|
||||
AUkBUwFcAegBywGuAewBxQGpAekBvwGcAeABoQFqAdIBdgEhAdIBdgEcAdUBfAEgAdYBfwEhAdcBggEg
|
||||
AdgBhQEgAdkBhwEgAdoBiQEgAdoBiQEdAd8BlgE1Ad8BlwE3AfEB6AHeBgAG/gH0AvUBcwGRAa8BTAFz
|
||||
AZsBRwFsAZMBNQFbAYEC8AHxGAAB6AHxAe0BZwGyAZUBTwF8AagBYAGJAa0BrAHAAb0B8ALyAW0BjgGx
|
||||
AUMBbwGdAT0BZwGUASgBVAGAAvAB8QwAAYYBmQGjAb4B8AH5AbYB7QH4AbAB7gH6AaQB6wH6AZUB5gH7
|
||||
AYkB4QH8AX0B3AH8AXEB1QH5AWUBzQH3AVgBxAHzAUkBuQHvATUBqQHnAQwBjwHHAVcBYwFrAegBzgGv
|
||||
Ae4BzQG2AesBwwGjAekBvwGbAeMBqwF4AdgBiAE8AdMBeAEfAdQBeQEbAdUBfgEeAdcBgQEfAdgBgwEg
|
||||
AdkBhQEgAdkBhgEeAdwBkQEyAd4BlAE3AfEB6AHcBgAD/gMAAcwB0wHZAXUBmQG8AWoBkAG2AVsBgQGn
|
||||
AUEBaQGQAbsBwgHJA/4VAAHFAdAB1wE5AWwBiQF1AaEBzAGDAasB2QFfAYQBpgHCAcsB1AFxAZoBwwFl
|
||||
AZEBvAFUAYABqwE2AWQBkQG6AcEByQP+CQABiQGcAaYBvgHwAfkBtgHtAfgBtgHtAfgBqwHwAfcBogHs
|
||||
AfoBlQHmAfsBiQHhAfwBfQHcAfwBbwHTAfoBYwHMAfcBVQHDAfMBSQG5Ae8BGQGZAc8BYwFwAXoB6wHY
|
||||
AcEB8AHUAcEB7QHLAbEB6wHDAaIB6QG+AZoB5wG4AYwB4QGkAWsB3AGRAUgB2AGGATEB1wGBAScB1wGB
|
||||
ASIB1wGCASEB1wGCAR4B2wGOATMB3AGRATcB9QHwAesGAAP+A/8B2wHhAeUBjwGxAdQBggGoAc4BagGR
|
||||
AbgBTAFuAZIBMQFBAVED8xIAAfwC/QFlAZgBqgFYAYwBrwGhAcsB+QGWAcMB8QFvAZcBvwHWAd4B4wGP
|
||||
AbYB3wGBAawB2AFlAZIBvwFDAWoBkwEkATYBSAPzCQABiwGgAagBvgHwAfkBvgHwAfkBvgHwAfkBvgHw
|
||||
AfkBtAHyAfgBqgHsAfsBoAHpAfsBlQHlAfwBigHfAfwBfwHYAfsBdAHSAfgBaAHKAfQBXQHAAfEBYwFw
|
||||
AXoB8QHqAeAB8QHUAb4B8QHWAcMB7gHMAbMB6wHDAaMB6QG8AZYB5wG3AYwB5gGxAYEB4wGpAXEB4AGh
|
||||
AWEB3gGZAVIB3AGUAUYB2wGOATsB3QGWAUkB4QGpAWgB/AL7BgAG/wHDAdAB2gGkAccB6wGbAb8B5QFz
|
||||
AZ0BxwFLAV8BdAEzAS8BLAPrEgAB+wL8AWwBoQG0AY4BuQHfAcwB9AH/AaoB1gH+AZYBtQHWAwABpwHQ
|
||||
AfkBnQHHAfIBbwGgAdABQQFYAXEBJgEhAR4D6wkAAY0BoQGqAY0BoQGqAY0BoQGqAY0BoQGqAY0BoQGq
|
||||
AYsBnwGoAYkBnAGmAYkBmwGmAYcBmgGkAYYBmQGjAYQBlgGgAYQBlgGgAYMBlQGgAYMBlQGgAXUBhAGP
|
||||
Af0C/AHrAc0BqgH1AeEB1gHyAdgBxAHvAc4BtQHrAcUBpQHpAbwBlgHmAbUBiQHkAa4BfAHiAacBcAHg
|
||||
AaEBYwHeAZoBVgHdAZYBUAHfAZwBVwHsAdoBwwkAA/8GAAGSAaQBtgF/AZIBpgFpAXwBjgFPAVIBVgE5
|
||||
ATgBNwPyEgAD/wGbAcQBzwFsAacBwgG8AeMB9AGqAdIB+QGMAasBzgMAAZIBpwG8AX0BkwGqAWQBegGO
|
||||
AUYBSgFOAS0BLAErA/IJAAGPAaQBrAGyAeQB7AG2Ae0B+AG2Ae0B+AGpAewB9gGSAeEB8wGNAaEBqgHw
|
||||
AfEB8hgAAfIB6wHhAfMB2QHAAfYB5QHbAfMB2wHJAfAB0gG7Ae0ByQGsAeoBwQGeAegBugGSAeYBtAGH
|
||||
AeUBrwF+AeQBrQF5AeIBqAF0AeUBuAGCA/wMAAP/AwAB1gHUAdMBkQGPAY0BbwFtAWoBZgFlAWQDxAP+
|
||||
FQAB5AHtAe8BdwG+AdEBWwGgAbUBWAGTAbABQgF2AZMDAAHWAdUB1AGQAY0BjAFqAWgBZQFfAV4BXQPD
|
||||
A/4JAAHsAe0B7gGPAaQBrAGPAaQBrAGPAaQBrAGPAaQBrAGPAaQBrAHwAfEB8h4AAe8B4wHRAfMB2wHE
|
||||
AfcB6AHhAfQB4AHSAfIB2AHDAfAB0QG4Ae4BywGvAewByAGpAewBxgGoAeoBvwGcAecBuwGHAfgB9gHz
|
||||
DAAD/QMAA/0DAAP5A/AD9RsAA/0B4AHyAfYBqQHhAe4BiAHLAdkBgwG/Ac0B0wHhAeUDAAP5Au8B8AP1
|
||||
RQAB8wHuAeYB7gHUAbAB9AHdAcgB9QHhAdQB8wHdAc4B8gHXAcUB7wHQAbcB6wHFAZoB6wHVAbQC+gH5
|
||||
pQAD/gH0AfEB6gHvAeEBzAHtAdoBvQHtAdoBvwHwAeYB1wH5AfcB9Q8AAUIBTQE+BwABPgMAASgDAAFA
|
||||
AwABIAMAAQEBAAEBBgABARYAA/+BAAb/AfABHwHgAQ8B/gEAAv8B4AEHAcABDwHAAQABgAEAAcABAwHA
|
||||
AQ8CAAGAAQABgAEDAcABDwIAAYACAAEBAcABDwIAAYADAAHgAQ8CAAGAAwABwAEvAYABAgGAAwABwAE/
|
||||
AcABBwGAAwAB0AEfAcABAwGAAwABwAEfAYABAwGAAwABwAEfAYEBAwGAAgABAQHYAR8BgQEDAYABfwGA
|
||||
AQEB6AEfAcEBAwGAAf8BwAEDAdQBfwHAAY8C/wHgAQcG/wHwAR8L
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
|
@ -0,0 +1,966 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Diagnostics;
|
||||
using System.Collections;
|
||||
using System.Collections.Specialized;
|
||||
using System.Windows.Forms;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
using WebsitePanel.Providers.HostedSolution;
|
||||
using WebsitePanel.Providers;
|
||||
using System.Threading;
|
||||
using System.DirectoryServices;
|
||||
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
public class OrganizationImporter
|
||||
{
|
||||
public const int EXCHANGE_CONTAINER_ERROR = -2790;
|
||||
|
||||
private Label lblProcess;
|
||||
private ProgressBar progressBar;
|
||||
private ApplicationForm appForm;
|
||||
private Button btnImport;
|
||||
|
||||
private Thread thread;
|
||||
|
||||
|
||||
public OrganizationImporter()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void Initialize(string username, ApplicationForm appForm)
|
||||
{
|
||||
this.appForm = appForm;
|
||||
this.lblProcess = appForm.lblMessage;
|
||||
this.progressBar = appForm.progressBar;
|
||||
this.btnImport = appForm.btnStart;
|
||||
try
|
||||
{
|
||||
UserInfo info = UserController.GetUser(username);
|
||||
SecurityContext.SetThreadPrincipal(info);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ShowError("Unable to authenticate user", ex);
|
||||
Cancel();
|
||||
}
|
||||
}
|
||||
|
||||
public void Start()
|
||||
{
|
||||
Log.WriteInfo("Import started");
|
||||
btnImport.Enabled = false;
|
||||
appForm.ImportStarted = true;
|
||||
thread = new Thread(new ThreadStart(this.StartThread));
|
||||
thread.Start();
|
||||
}
|
||||
|
||||
public void Cancel()
|
||||
{
|
||||
Log.WriteInfo("Import canceled");
|
||||
appForm.ImportStarted = false;
|
||||
btnImport.Enabled = true;
|
||||
this.lblProcess.Text = string.Empty;
|
||||
this.progressBar.Value = 0;
|
||||
}
|
||||
|
||||
public void Abort()
|
||||
{
|
||||
Cancel();
|
||||
AbortThread();
|
||||
|
||||
}
|
||||
|
||||
private void AbortThread()
|
||||
{
|
||||
if (this.thread != null)
|
||||
{
|
||||
if (this.thread.IsAlive)
|
||||
{
|
||||
this.thread.Abort();
|
||||
}
|
||||
this.thread.Join();
|
||||
}
|
||||
}
|
||||
|
||||
public DialogResult ShowError(string text, Exception ex)
|
||||
{
|
||||
Log.WriteError(text, ex);
|
||||
return MessageBox.Show(appForm, text, appForm.Text, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Displays process progress.
|
||||
/// </summary>
|
||||
public void StartThread()
|
||||
{
|
||||
this.progressBar.Value = 0;
|
||||
|
||||
try
|
||||
{
|
||||
this.lblProcess.Text = "Creating import script...";
|
||||
appForm.Update();
|
||||
|
||||
//default actions
|
||||
List<ImportAction> actions = GetImportActions();
|
||||
|
||||
//process actions
|
||||
for (int i = 0; i < actions.Count; i++)
|
||||
{
|
||||
ImportAction action = actions[i];
|
||||
this.lblProcess.Text = action.Description;
|
||||
this.progressBar.Value = i * 100 / actions.Count;
|
||||
appForm.Update();
|
||||
|
||||
switch (action.ActionType)
|
||||
{
|
||||
case ActionTypes.ImportOrganization:
|
||||
ImportOrganization();
|
||||
break;
|
||||
|
||||
case ActionTypes.ImportOrganizationDomain:
|
||||
ImportDomain(action.Name);
|
||||
break;
|
||||
|
||||
case ActionTypes.ImportMailbox:
|
||||
ImportMailbox(action.DirectoryEntry);
|
||||
break;
|
||||
|
||||
case ActionTypes.ImportContact:
|
||||
ImportContact(action.DirectoryEntry);
|
||||
break;
|
||||
|
||||
case ActionTypes.ImportGroup:
|
||||
ImportGroup(action.DirectoryEntry);
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
this.progressBar.Value = 100;
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (Utils.IsThreadAbortException(ex))
|
||||
return;
|
||||
|
||||
string message = Global.ErrorMessage;
|
||||
if ( string.IsNullOrEmpty(message))
|
||||
message = "An unexpected error has occurred during import.";
|
||||
ShowError(message, ex);
|
||||
Cancel();
|
||||
return;
|
||||
}
|
||||
|
||||
this.lblProcess.Text = string.Empty;
|
||||
DialogResult dialogResult = DialogResult.No;
|
||||
if (Global.HasErrors)
|
||||
{
|
||||
dialogResult = MessageBox.Show(appForm, "Import completed with errors. Would you like to see import log?", appForm.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
|
||||
}
|
||||
else
|
||||
{
|
||||
dialogResult = MessageBox.Show(appForm, "Import completed successfully. Would you like to see import log?", appForm.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Information);
|
||||
}
|
||||
if (dialogResult == DialogResult.Yes)
|
||||
{
|
||||
Log.ShowLogFile();
|
||||
}
|
||||
|
||||
btnImport.Enabled = true;
|
||||
appForm.ImportStarted = false;
|
||||
this.progressBar.Value = 0;
|
||||
}
|
||||
|
||||
public static bool IsThreadAbortException(Exception ex)
|
||||
{
|
||||
Exception innerException = ex;
|
||||
while (innerException != null)
|
||||
{
|
||||
if (innerException is System.Threading.ThreadAbortException)
|
||||
return true;
|
||||
innerException = innerException.InnerException;
|
||||
}
|
||||
|
||||
string str = ex.ToString();
|
||||
return str.Contains("System.Threading.ThreadAbortException");
|
||||
}
|
||||
|
||||
private List<ImportAction> GetImportActions()
|
||||
{
|
||||
List<ImportAction> list = new List<ImportAction>();
|
||||
ImportAction action = null;
|
||||
|
||||
if (Global.ImportAccountsOnly)
|
||||
{
|
||||
ServiceProviderItem item = PackageController.GetPackageItemByName(Global.Space.PackageId, ResourceGroups.HostedOrganizations, Global.OrganizationName, typeof(Organization));
|
||||
if (item == null)
|
||||
{
|
||||
Global.ErrorMessage = string.Format("Organization {0} not found.", Global.OrganizationName);
|
||||
throw new Exception(Global.ErrorMessage);
|
||||
}
|
||||
Global.ItemId = item.Id;
|
||||
}
|
||||
else
|
||||
{
|
||||
action = new ImportAction(ActionTypes.ImportOrganization);
|
||||
action.Description = "Importing organization...";
|
||||
list.Add(action);
|
||||
|
||||
DirectoryEntry org = Global.OrgDirectoryEntry;
|
||||
PropertyValueCollection props = org.Properties["uPNSuffixes"];
|
||||
if (props != null)
|
||||
{
|
||||
foreach (string domainName in props)
|
||||
{
|
||||
action = new ImportAction(ActionTypes.ImportOrganizationDomain);
|
||||
action.Description = "Importing organization domains...";
|
||||
action.Name = domainName;
|
||||
list.Add(action);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (Global.SelectedAccounts != null)
|
||||
{
|
||||
foreach (DirectoryEntry entry in Global.SelectedAccounts)
|
||||
{
|
||||
switch (entry.SchemaClassName)
|
||||
{
|
||||
case "user":
|
||||
action = new ImportAction(ActionTypes.ImportMailbox);
|
||||
action.Description = "Importing mailbox...";
|
||||
action.DirectoryEntry = entry;
|
||||
list.Add(action);
|
||||
break;
|
||||
case "contact":
|
||||
action = new ImportAction(ActionTypes.ImportContact);
|
||||
action.Description = "Importing contact...";
|
||||
action.DirectoryEntry = entry;
|
||||
list.Add(action);
|
||||
break;
|
||||
case "group":
|
||||
action = new ImportAction(ActionTypes.ImportGroup);
|
||||
action.Description = "Importing group...";
|
||||
action.DirectoryEntry = entry;
|
||||
list.Add(action);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
private void ImportOrganization()
|
||||
{
|
||||
|
||||
PackageInfo packageInfo = Global.Space;
|
||||
int serviceId = PackageController.GetPackageServiceId(packageInfo.PackageId, ResourceGroups.HostedOrganizations);
|
||||
ServiceInfo serviceInfo = ServerController.GetServiceInfo(serviceId);
|
||||
StringDictionary serviceSettings = ServerController.GetServiceSettingsAdmin(serviceId);
|
||||
|
||||
string tempDomain = serviceSettings["TempDomain"];
|
||||
ServerInfo serverInfo = ServerController.GetServerById(serviceInfo.ServerId);
|
||||
|
||||
serviceId = PackageController.GetPackageServiceId(packageInfo.PackageId, ResourceGroups.Exchange);
|
||||
serviceSettings = ServerController.GetServiceSettingsAdmin(serviceId);
|
||||
Global.MailboxCluster = serviceSettings["MailboxCluster"];
|
||||
Global.StorageGroup = serviceSettings["StorageGroup"];
|
||||
Global.MailboxDatabase = serviceSettings["MailboxDatabase"];
|
||||
Global.KeepDeletedMailboxesDays = serviceSettings["KeepDeletedMailboxesDays"];
|
||||
Global.KeepDeletedItemsDays = serviceSettings["KeepDeletedItemsDays"];
|
||||
|
||||
int ret = CreateOrganization(Global.Space.PackageId, Global.OrganizationId, Global.OrganizationName);
|
||||
if (ret > 0)
|
||||
{
|
||||
Global.ItemId = ret;
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (ret)
|
||||
{
|
||||
case BusinessErrorCodes.ERROR_USER_ACCOUNT_DEMO:
|
||||
Global.ErrorMessage = "You cannot import organization in demo account";
|
||||
break;
|
||||
case BusinessErrorCodes.ERROR_USER_ACCOUNT_PENDING:
|
||||
case BusinessErrorCodes.ERROR_USER_ACCOUNT_SUSPENDED:
|
||||
case BusinessErrorCodes.ERROR_USER_ACCOUNT_CANCELLED:
|
||||
case BusinessErrorCodes.ERROR_USER_ACCOUNT_SHOULD_BE_ADMINISTRATOR:
|
||||
Global.ErrorMessage = "User account is disabled or does not have enough permissions";
|
||||
break;
|
||||
case BusinessErrorCodes.ERROR_PACKAGE_NOT_FOUND:
|
||||
Global.ErrorMessage = "Space not found";
|
||||
break;
|
||||
|
||||
|
||||
case BusinessErrorCodes.ERROR_PACKAGE_CANCELLED:
|
||||
case BusinessErrorCodes.ERROR_PACKAGE_SUSPENDED:
|
||||
Global.ErrorMessage = "Space is cancelled or suspended";
|
||||
break;
|
||||
|
||||
case BusinessErrorCodes.ERROR_ORGS_RESOURCE_QUOTA_LIMIT:
|
||||
Global.ErrorMessage = "Organizations quota limit";
|
||||
break;
|
||||
|
||||
case BusinessErrorCodes.ERROR_DOMAIN_QUOTA_LIMIT:
|
||||
case BusinessErrorCodes.ERROR_SUBDOMAIN_QUOTA_LIMIT:
|
||||
Global.ErrorMessage = "Domains quota limit";
|
||||
break;
|
||||
|
||||
case BusinessErrorCodes.ERROR_ORG_ID_EXISTS:
|
||||
Global.ErrorMessage = "Organization with specified Id already exists";
|
||||
break;
|
||||
|
||||
case BusinessErrorCodes.ERROR_ORGANIZATION_TEMP_DOMAIN_IS_NOT_SPECIFIED:
|
||||
Global.ErrorMessage = "Organization temp domain name is not specified";
|
||||
break;
|
||||
case BusinessErrorCodes.ERROR_DOMAIN_ALREADY_EXISTS:
|
||||
case BusinessErrorCodes.ERROR_ORGANIZATION_DOMAIN_IS_IN_USE:
|
||||
Global.ErrorMessage = "Domain already exists or is in use";
|
||||
break;
|
||||
}
|
||||
throw new Exception(string.Format("Unable to create organization. Error code: {0}", ret));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static int CreateOrganization(int packageId, string organizationId, string organizationName)
|
||||
{
|
||||
int itemId;
|
||||
int errorCode;
|
||||
|
||||
// place log record
|
||||
Log.WriteStart(string.Format("Importing organization {0}...", organizationName));
|
||||
if (!CheckQuotas(packageId, out errorCode))
|
||||
return errorCode;
|
||||
|
||||
string addressListsContainer = null;
|
||||
try
|
||||
{
|
||||
addressListsContainer = ADUtils.GetAddressListsContainer();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.WriteError("Cannot load Exchange 2007 Address Lists Container", ex);
|
||||
return EXCHANGE_CONTAINER_ERROR;
|
||||
}
|
||||
|
||||
Organization org = PopulateOrganization(packageId, organizationId, addressListsContainer);
|
||||
|
||||
// Check if organization exitsts.
|
||||
if (OrganizationIdentifierExists(organizationId))
|
||||
return BusinessErrorCodes.ERROR_ORG_ID_EXISTS;
|
||||
|
||||
|
||||
int serviceId = PackageController.GetPackageServiceId(packageId, ResourceGroups.HostedOrganizations);
|
||||
|
||||
//create temprory domain name;
|
||||
|
||||
string domainName = CreateTemporyDomainName(serviceId, organizationId);
|
||||
|
||||
Log.WriteInfo(string.Format("Importing temp domain {0}", domainName));
|
||||
if (string.IsNullOrEmpty(domainName))
|
||||
return BusinessErrorCodes.ERROR_ORGANIZATION_TEMP_DOMAIN_IS_NOT_SPECIFIED;
|
||||
|
||||
bool domainCreated;
|
||||
int domainId = CreateDomain(domainName, packageId, out domainCreated);
|
||||
//create domain
|
||||
if (domainId < 0)
|
||||
return domainId;
|
||||
|
||||
|
||||
//add organization to package items
|
||||
itemId = AddOrganizationToPackageItems(org, serviceId, packageId, organizationName, organizationId, domainName);
|
||||
|
||||
// register org ID
|
||||
|
||||
DataProvider.AddExchangeOrganization(itemId, organizationId);
|
||||
|
||||
// register domain
|
||||
DataProvider.AddExchangeOrganizationDomain(itemId, domainId, true);
|
||||
|
||||
// register organization domain service item
|
||||
OrganizationDomain orgDomain = new OrganizationDomain();
|
||||
orgDomain.Name = domainName;
|
||||
orgDomain.PackageId = packageId;
|
||||
orgDomain.ServiceId = serviceId;
|
||||
|
||||
PackageController.AddPackageItem(orgDomain);
|
||||
Log.WriteEnd("Organization imported");
|
||||
return itemId;
|
||||
}
|
||||
|
||||
private static Organization PopulateOrganization(int packageId, string organizationId, string addressListsContainer)
|
||||
{
|
||||
Organization org = new Organization();
|
||||
org.OrganizationId = organizationId;
|
||||
org.AddressList = string.Format("CN={0} Address List,CN=All Address Lists,{1}", organizationId, addressListsContainer);
|
||||
org.GlobalAddressList = string.Format("CN={0} Global Address List,CN=All Global Address Lists,{1}", organizationId, addressListsContainer);
|
||||
org.OfflineAddressBook = string.Format("CN={0} Offline Address Book,CN=Offline Address Lists,{1}", organizationId, addressListsContainer);
|
||||
org.Database = GetDatabaseName();
|
||||
org.DistinguishedName = ADUtils.RemoveADPrefix(Global.OrgDirectoryEntry.Path);
|
||||
org.SecurityGroup = string.Format("CN={0},{1}", organizationId, org.DistinguishedName);
|
||||
|
||||
|
||||
PackageContext cntx = PackageController.GetPackageContext(packageId);
|
||||
// organization limits
|
||||
org.IssueWarningKB = cntx.Quotas[Quotas.EXCHANGE2007_DISKSPACE].QuotaAllocatedValue;
|
||||
if (org.IssueWarningKB > 0) org.IssueWarningKB *= 1024;
|
||||
org.ProhibitSendKB = cntx.Quotas[Quotas.EXCHANGE2007_DISKSPACE].QuotaAllocatedValue;
|
||||
if (org.ProhibitSendKB > 0) org.ProhibitSendKB *= 1024;
|
||||
org.ProhibitSendReceiveKB = cntx.Quotas[Quotas.EXCHANGE2007_DISKSPACE].QuotaAllocatedValue;
|
||||
if (org.ProhibitSendReceiveKB > 0) org.ProhibitSendReceiveKB *= 1024;
|
||||
|
||||
PackageSettings settings = PackageController.GetPackageSettings(packageId, PackageSettings.EXCHANGE_SERVER);
|
||||
org.KeepDeletedItemsDays = Utils.ParseInt(settings["KeepDeletedItemsDays"], 14);
|
||||
return org;
|
||||
}
|
||||
|
||||
private static string GetDatabaseName()
|
||||
{
|
||||
string ret;
|
||||
if (String.IsNullOrEmpty(Global.MailboxCluster))
|
||||
{
|
||||
ret = string.Format("{0}\\{1}", Global.StorageGroup, Global.MailboxDatabase);
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = string.Format("{0}\\{1}\\{2}", Global.MailboxCluster, Global.StorageGroup, Global.MailboxDatabase);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
private static bool CheckQuotas(int packageId, out int errorCode)
|
||||
{
|
||||
|
||||
// check account
|
||||
errorCode = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
|
||||
if (errorCode < 0) return false;
|
||||
|
||||
// check package
|
||||
errorCode = SecurityContext.CheckPackage(packageId, DemandPackage.IsActive);
|
||||
if (errorCode < 0) return false;
|
||||
|
||||
// check organizations quota
|
||||
QuotaValueInfo quota = PackageController.GetPackageQuota(packageId, Quotas.ORGANIZATIONS);
|
||||
if (quota.QuotaExhausted)
|
||||
{
|
||||
errorCode = BusinessErrorCodes.ERROR_ORGS_RESOURCE_QUOTA_LIMIT;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// check sub-domains quota (for temporary domain)
|
||||
quota = PackageController.GetPackageQuota(packageId, Quotas.OS_SUBDOMAINS);
|
||||
if (quota.QuotaExhausted)
|
||||
{
|
||||
errorCode = BusinessErrorCodes.ERROR_SUBDOMAIN_QUOTA_LIMIT;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private static bool OrganizationIdentifierExists(string organizationId)
|
||||
{
|
||||
return DataProvider.ExchangeOrganizationExists(organizationId);
|
||||
}
|
||||
|
||||
private static string CreateTemporyDomainName(int serviceId, string organizationId)
|
||||
{
|
||||
// load service settings
|
||||
StringDictionary serviceSettings = ServerController.GetServiceSettingsAdmin(serviceId);
|
||||
|
||||
string tempDomain = serviceSettings["TempDomain"];
|
||||
return String.IsNullOrEmpty(tempDomain) ? null : organizationId + "." + tempDomain;
|
||||
}
|
||||
|
||||
private static int CreateDomain(string domainName, int packageId, out bool domainCreated)
|
||||
{
|
||||
// trying to locate (register) temp domain
|
||||
DomainInfo domain = null;
|
||||
int domainId = 0;
|
||||
domainCreated = false;
|
||||
|
||||
// check if the domain already exists
|
||||
int checkResult = ServerController.CheckDomain(domainName);
|
||||
if (checkResult == BusinessErrorCodes.ERROR_DOMAIN_ALREADY_EXISTS)
|
||||
{
|
||||
// domain exists
|
||||
// check if it belongs to the same space
|
||||
domain = ServerController.GetDomain(domainName);
|
||||
if (domain == null)
|
||||
return checkResult;
|
||||
|
||||
if (domain.PackageId != packageId)
|
||||
return checkResult;
|
||||
|
||||
if (DataProvider.ExchangeOrganizationDomainExists(domain.DomainId))
|
||||
return BusinessErrorCodes.ERROR_ORGANIZATION_DOMAIN_IS_IN_USE;
|
||||
|
||||
domainId = domain.DomainId;
|
||||
}
|
||||
else if (checkResult < 0)
|
||||
{
|
||||
return checkResult;
|
||||
}
|
||||
|
||||
// create domain if required
|
||||
if (domain == null)
|
||||
{
|
||||
domain = CreateNewDomain(packageId, domainName);
|
||||
// add domain
|
||||
domainId = ServerController.AddDomain(domain);
|
||||
|
||||
if (domainId < 0)
|
||||
return domainId;
|
||||
|
||||
domainCreated = true;
|
||||
}
|
||||
|
||||
return domainId;
|
||||
}
|
||||
|
||||
private static DomainInfo CreateNewDomain(int packageId, string domainName)
|
||||
{
|
||||
// new domain
|
||||
DomainInfo domain = new DomainInfo();
|
||||
domain.PackageId = packageId;
|
||||
domain.DomainName = domainName;
|
||||
domain.IsInstantAlias = true;
|
||||
domain.IsSubDomain = true;
|
||||
|
||||
return domain;
|
||||
}
|
||||
|
||||
private static int AddOrganizationToPackageItems(Organization org, int serviceId, int packageId, string organizationName, string organizationId, string domainName)
|
||||
{
|
||||
org.ServiceId = serviceId;
|
||||
org.PackageId = packageId;
|
||||
org.Name = organizationName;
|
||||
org.OrganizationId = organizationId;
|
||||
org.DefaultDomain = domainName;
|
||||
|
||||
int itemId = PackageController.AddPackageItem(org);
|
||||
return itemId;
|
||||
}
|
||||
|
||||
private void ImportDomain(string domainName)
|
||||
{
|
||||
int ret = -1;
|
||||
try
|
||||
{
|
||||
ret = AddOrganizationDomain(Global.ItemId, domainName);
|
||||
if (ret < 0)
|
||||
{
|
||||
Log.WriteError(string.Format("Unable to import domain {0}. Error code: {1}", domainName, ret));
|
||||
Global.HasErrors = true;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (Utils.IsThreadAbortException(ex))
|
||||
return;
|
||||
|
||||
Log.WriteError(string.Format("Unable to import domain {0}. Error code: {1}", domainName, ret), ex);
|
||||
Global.HasErrors = true;
|
||||
}
|
||||
}
|
||||
|
||||
private static int AddOrganizationDomain(int itemId, string domainName)
|
||||
{
|
||||
Log.WriteStart(string.Format("Importing domain {0}...", domainName));
|
||||
|
||||
// load organization
|
||||
Organization org = (Organization)PackageController.GetPackageItem(itemId);
|
||||
if (org == null)
|
||||
return -1;
|
||||
|
||||
// check package
|
||||
int packageCheck = SecurityContext.CheckPackage(org.PackageId, DemandPackage.IsActive);
|
||||
if (packageCheck < 0) return packageCheck;
|
||||
|
||||
DomainInfo domain = null;
|
||||
|
||||
// check if the domain already exists
|
||||
int checkResult = ServerController.CheckDomain(domainName);
|
||||
if (checkResult == BusinessErrorCodes.ERROR_DOMAIN_ALREADY_EXISTS)
|
||||
{
|
||||
// domain exists
|
||||
// check if it belongs to the same space
|
||||
domain = ServerController.GetDomain(domainName);
|
||||
if (domain == null)
|
||||
return checkResult;
|
||||
|
||||
if (domain.PackageId != org.PackageId)
|
||||
return checkResult;
|
||||
|
||||
if (DataProvider.ExchangeOrganizationDomainExists(domain.DomainId))
|
||||
return BusinessErrorCodes.ERROR_ORGANIZATION_DOMAIN_IS_IN_USE;
|
||||
}
|
||||
else if (checkResult == BusinessErrorCodes.ERROR_RESTRICTED_DOMAIN)
|
||||
{
|
||||
return checkResult;
|
||||
}
|
||||
|
||||
// create domain if required
|
||||
if (domain == null)
|
||||
{
|
||||
domain = new DomainInfo();
|
||||
domain.PackageId = org.PackageId;
|
||||
domain.DomainName = domainName;
|
||||
domain.IsInstantAlias = false;
|
||||
domain.IsSubDomain = false;
|
||||
|
||||
// add domain
|
||||
domain.DomainId = ServerController.AddDomain(domain);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// register domain
|
||||
DataProvider.AddExchangeOrganizationDomain(itemId, domain.DomainId, false);
|
||||
|
||||
// register service item
|
||||
OrganizationDomain exchDomain = new OrganizationDomain();
|
||||
exchDomain.Name = domainName;
|
||||
exchDomain.PackageId = org.PackageId;
|
||||
exchDomain.ServiceId = org.ServiceId;
|
||||
PackageController.AddPackageItem(exchDomain);
|
||||
Log.WriteEnd("Domain imported");
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
private static void ImportMailbox(DirectoryEntry directoryEntry)
|
||||
{
|
||||
int ret = -1;
|
||||
string name = null;
|
||||
try
|
||||
{
|
||||
name = (string)directoryEntry.Properties["name"].Value;
|
||||
ret = AddMailbox(Global.ItemId, directoryEntry);
|
||||
if (ret < 0)
|
||||
{
|
||||
Log.WriteError(string.Format("Unable to import mailbox {0}. Error code: {1}", name, ret));
|
||||
Global.HasErrors = true;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (Utils.IsThreadAbortException(ex))
|
||||
return;
|
||||
|
||||
Log.WriteError(string.Format("Unable to import mailbox {0}. Error code: {1}", name, ret), ex);
|
||||
Global.HasErrors = true;
|
||||
}
|
||||
}
|
||||
|
||||
private static void ImportContact(DirectoryEntry directoryEntry)
|
||||
{
|
||||
int ret = -1;
|
||||
string name = null;
|
||||
try
|
||||
{
|
||||
name = (string)directoryEntry.Properties["name"].Value;
|
||||
ret = AddContact(Global.ItemId, directoryEntry);
|
||||
if (ret < 0)
|
||||
{
|
||||
Log.WriteError(string.Format("Unable to import contact {0}. Error code: {1}", name, ret));
|
||||
Global.HasErrors = true;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (Utils.IsThreadAbortException(ex))
|
||||
return;
|
||||
|
||||
Log.WriteError(string.Format("Unable to import contact {0}. Error code: {1}", name, ret), ex);
|
||||
Global.HasErrors = true;
|
||||
}
|
||||
}
|
||||
|
||||
private static void ImportGroup(DirectoryEntry directoryEntry)
|
||||
{
|
||||
int ret = -1;
|
||||
string name = null;
|
||||
try
|
||||
{
|
||||
name = (string)directoryEntry.Properties["name"].Value;
|
||||
ret = AddGroup(Global.ItemId, directoryEntry);
|
||||
if (ret < 0)
|
||||
{
|
||||
Log.WriteError(string.Format("Unable to import group {0}. Error code: {1}", name, ret));
|
||||
Global.HasErrors = true;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (Utils.IsThreadAbortException(ex))
|
||||
return;
|
||||
|
||||
Log.WriteError(string.Format("Unable to import group {0}. Error code: {1}", name, ret), ex);
|
||||
Global.HasErrors = true;
|
||||
}
|
||||
}
|
||||
|
||||
private static int AddMailbox(int itemId, DirectoryEntry entry)
|
||||
{
|
||||
string accountName = (string)entry.Properties["name"].Value;
|
||||
Log.WriteStart(string.Format("Importing user {0}...", accountName));
|
||||
|
||||
Organization org = (Organization)PackageController.GetPackageItem(itemId);
|
||||
if (org == null)
|
||||
return -1;
|
||||
|
||||
// e-mail
|
||||
string email = (string)entry.Properties["userPrincipalName"].Value;
|
||||
if (string.IsNullOrEmpty(email))
|
||||
throw new Exception("UPN is not specified");
|
||||
|
||||
if (EmailAddressExists(email))
|
||||
return BusinessErrorCodes.ERROR_EXCHANGE_EMAIL_EXISTS;
|
||||
|
||||
|
||||
|
||||
if (AccountExists(accountName))
|
||||
throw new Exception(string.Format("Account {0} already exists", accountName));
|
||||
|
||||
string displayName = (string)entry.Properties["displayName"].Value;
|
||||
|
||||
|
||||
int userId = AddOrganizationUser(itemId, accountName, displayName, email, string.Empty);
|
||||
AddAccountEmailAddress(userId, email);
|
||||
|
||||
//account type
|
||||
PropertyValueCollection type = entry.Properties["msExchRecipientDisplayType"];
|
||||
if (type == null || type.Value == null)
|
||||
{
|
||||
Log.WriteInfo("Account type : user");
|
||||
return userId;
|
||||
}
|
||||
int mailboxType = (int)type.Value;
|
||||
ExchangeAccountType accountType = ExchangeAccountType.Undefined;
|
||||
switch (mailboxType)
|
||||
{
|
||||
case 1073741824:
|
||||
Log.WriteInfo("Account type : mailbox");
|
||||
accountType = ExchangeAccountType.Mailbox;
|
||||
break;
|
||||
case 7:
|
||||
Log.WriteInfo("Account type : room");
|
||||
accountType = ExchangeAccountType.Room;
|
||||
break;
|
||||
case 8:
|
||||
Log.WriteInfo("Account type : equipment");
|
||||
accountType = ExchangeAccountType.Equipment;
|
||||
break;
|
||||
default:
|
||||
Log.WriteInfo("Account type : unknown");
|
||||
return userId;
|
||||
}
|
||||
|
||||
UpdateExchangeAccount(userId, accountName, accountType, displayName, email, false, string.Empty, string.Empty, string.Empty);
|
||||
|
||||
string defaultEmail = (string)entry.Properties["extensionAttribute3"].Value;
|
||||
|
||||
PropertyValueCollection emails = entry.Properties["proxyAddresses"];
|
||||
if (emails != null)
|
||||
{
|
||||
foreach (string mail in emails)
|
||||
{
|
||||
string emailAddress = mail;
|
||||
if (emailAddress.ToLower().StartsWith("smtp:"))
|
||||
emailAddress = emailAddress.Substring(5);
|
||||
|
||||
|
||||
if (!emailAddress.Equals(defaultEmail, StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
if (EmailAddressExists(emailAddress))
|
||||
{
|
||||
Log.WriteInfo(string.Format("Email address {0} already exists. Skipped", emailAddress));
|
||||
continue;
|
||||
}
|
||||
// register email address
|
||||
Log.WriteInfo(string.Format("Importing email {0}", emailAddress));
|
||||
AddAccountEmailAddress(userId, emailAddress);
|
||||
}
|
||||
}
|
||||
}
|
||||
Log.WriteEnd("User imported");
|
||||
return userId;
|
||||
|
||||
|
||||
}
|
||||
|
||||
private static int AddContact(int itemId, DirectoryEntry entry)
|
||||
{
|
||||
string accountName = (string)entry.Properties["name"].Value;
|
||||
Log.WriteStart(string.Format("Importing contact {0}...", accountName));
|
||||
|
||||
Organization org = (Organization)PackageController.GetPackageItem(itemId);
|
||||
if (org == null)
|
||||
return -1;
|
||||
|
||||
|
||||
if (AccountExists(accountName))
|
||||
throw new Exception(string.Format("Account {0} already exists", accountName));
|
||||
|
||||
string displayName = (string)entry.Properties["displayName"].Value;
|
||||
string email = (string)entry.Properties["targetAddress"].Value;
|
||||
if (email != null && email.ToLower().StartsWith("smtp:"))
|
||||
email = email.Substring(5);
|
||||
|
||||
|
||||
int accountId = AddAccount(itemId, ExchangeAccountType.Contact, accountName, displayName, email, false, 0, string.Empty, null);
|
||||
|
||||
Log.WriteEnd("Contact imported");
|
||||
return accountId;
|
||||
}
|
||||
|
||||
private static int AddGroup(int itemId, DirectoryEntry entry)
|
||||
{
|
||||
string accountName = (string)entry.Properties["name"].Value;
|
||||
Log.WriteStart(string.Format("Importing group {0}...", accountName));
|
||||
|
||||
Organization org = (Organization)PackageController.GetPackageItem(itemId);
|
||||
if (org == null)
|
||||
return -1;
|
||||
|
||||
if (AccountExists(accountName))
|
||||
throw new Exception(string.Format("Account {0} already exists", accountName));
|
||||
|
||||
string displayName = (string)entry.Properties["displayName"].Value;
|
||||
string email = null;
|
||||
PropertyValueCollection proxyAddresses = entry.Properties["proxyAddresses"];
|
||||
if (proxyAddresses != null)
|
||||
{
|
||||
foreach (string address in proxyAddresses)
|
||||
{
|
||||
if (address != null && address.StartsWith("SMTP:"))
|
||||
{
|
||||
email = address.Substring(5);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (string.IsNullOrEmpty(email))
|
||||
throw new Exception("Email is not specified");
|
||||
|
||||
if (EmailAddressExists(email))
|
||||
return BusinessErrorCodes.ERROR_EXCHANGE_EMAIL_EXISTS;
|
||||
|
||||
int accountId = AddAccount(itemId, ExchangeAccountType.DistributionList, accountName, displayName, email, false, 0, string.Empty, null);
|
||||
AddAccountEmailAddress(accountId, email);
|
||||
|
||||
string defaultEmail = (string)entry.Properties["extensionAttribute3"].Value;
|
||||
|
||||
PropertyValueCollection emails = entry.Properties["proxyAddresses"];
|
||||
if (emails != null)
|
||||
{
|
||||
foreach (string mail in emails)
|
||||
{
|
||||
string emailAddress = mail;
|
||||
if (emailAddress.ToLower().StartsWith("smtp:"))
|
||||
emailAddress = emailAddress.Substring(5);
|
||||
|
||||
|
||||
if (!emailAddress.Equals(defaultEmail, StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
if (EmailAddressExists(emailAddress))
|
||||
{
|
||||
Log.WriteInfo(string.Format("Email address {0} already exists. Skipped", emailAddress));
|
||||
continue;
|
||||
}
|
||||
// register email address
|
||||
Log.WriteInfo(string.Format("Importing email {0}", emailAddress));
|
||||
AddAccountEmailAddress(accountId, emailAddress);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Log.WriteEnd("Group imported");
|
||||
return accountId;
|
||||
}
|
||||
|
||||
private static bool EmailAddressExists(string emailAddress)
|
||||
{
|
||||
return DataProvider.ExchangeAccountEmailAddressExists(emailAddress);
|
||||
}
|
||||
|
||||
private static bool AccountExists(string accountName)
|
||||
{
|
||||
return DataProvider.ExchangeAccountExists(accountName);
|
||||
}
|
||||
|
||||
private static int AddAccount(int itemId, ExchangeAccountType accountType,
|
||||
string accountName, string displayName, string primaryEmailAddress, bool mailEnabledPublicFolder,
|
||||
MailboxManagerActions mailboxManagerActions, string samAccountName, string accountPassword)
|
||||
{
|
||||
return DataProvider.AddExchangeAccount(itemId, (int)accountType,
|
||||
accountName, displayName, primaryEmailAddress, mailEnabledPublicFolder,
|
||||
mailboxManagerActions.ToString(), samAccountName, CryptoUtils.Encrypt(accountPassword));
|
||||
}
|
||||
|
||||
private static int AddOrganizationUser(int itemId, string accountName, string displayName, string email, string accountPassword)
|
||||
{
|
||||
return DataProvider.AddExchangeAccount(itemId, (int)ExchangeAccountType.User, accountName, displayName, email, false, string.Empty,
|
||||
string.Empty, CryptoUtils.Encrypt(accountPassword));
|
||||
|
||||
}
|
||||
|
||||
private static void AddAccountEmailAddress(int accountId, string emailAddress)
|
||||
{
|
||||
DataProvider.AddExchangeAccountEmailAddress(accountId, emailAddress);
|
||||
}
|
||||
|
||||
private static void UpdateExchangeAccount(int accountId, string accountName, ExchangeAccountType accountType,
|
||||
string displayName, string primaryEmailAddress, bool mailEnabledPublicFolder,
|
||||
string mailboxManagerActions, string samAccountName, string accountPassword)
|
||||
{
|
||||
DataProvider.UpdateExchangeAccount(accountId,
|
||||
accountName,
|
||||
accountType,
|
||||
displayName,
|
||||
primaryEmailAddress,
|
||||
mailEnabledPublicFolder,
|
||||
mailboxManagerActions,
|
||||
samAccountName,
|
||||
CryptoUtils.Encrypt(accountPassword));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,115 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Windows.Forms;
|
||||
using System.Threading;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
static class Program
|
||||
{
|
||||
private static ApplicationForm appForm;
|
||||
private delegate void ExceptionDelegate(Exception ex);
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
Log.WriteApplicationStart();
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
|
||||
Application.ApplicationExit += new EventHandler(OnApplicationExit);
|
||||
appForm = new ApplicationForm();
|
||||
Application.ThreadException += new ThreadExceptionEventHandler(OnThreadException);
|
||||
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(OnApplicationException);
|
||||
|
||||
ConnectForm connectForm = new ConnectForm();
|
||||
if (connectForm.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
appForm.InitializeForm(connectForm.Username, connectForm.Password);
|
||||
Application.Run(appForm);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Writes to log on application exit
|
||||
/// </summary>
|
||||
private static void OnApplicationExit(object sender, EventArgs e)
|
||||
{
|
||||
Log.WriteApplicationEnd();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Thread exception handler
|
||||
/// </summary>
|
||||
private static void OnThreadException(object sender, ThreadExceptionEventArgs e)
|
||||
{
|
||||
Exception ex = e.Exception;
|
||||
PublishOnMainThread(ex);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Application domain exception handler
|
||||
/// </summary>
|
||||
private static void OnApplicationException(object sender, UnhandledExceptionEventArgs e)
|
||||
{
|
||||
Exception ex = e.ExceptionObject as Exception;
|
||||
PublishOnMainThread(ex);
|
||||
}
|
||||
|
||||
private static void PublishOnMainThread(Exception exception)
|
||||
{
|
||||
if (appForm.InvokeRequired)
|
||||
{
|
||||
appForm.Invoke(new ExceptionDelegate(HandleException), new object[] { exception });
|
||||
}
|
||||
else
|
||||
{
|
||||
HandleException(exception);
|
||||
}
|
||||
}
|
||||
|
||||
private static void HandleException(Exception exception)
|
||||
{
|
||||
Log.WriteError("Fatal error occured.", exception);
|
||||
string message = "A fatal error has occurred. We apologize for this inconvenience.\n" +
|
||||
"Please contact Technical Support at support@websitepanel.net.\n\n" +
|
||||
"Make sure you include a copy of the log file from the \n" +
|
||||
"application home directory.";
|
||||
MessageBox.Show(message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
|
||||
Application.Exit();
|
||||
Environment.Exit(0);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,248 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Data;
|
||||
using System.Windows.Forms;
|
||||
using System.Threading;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
/// <summary>
|
||||
/// Animated Icon.
|
||||
/// </summary>
|
||||
[ToolboxItem(true)]
|
||||
public class ProgressIcon : System.Windows.Forms.UserControl
|
||||
{
|
||||
private Thread thread = null;
|
||||
private int currentFrame = 0;
|
||||
private int delayInterval = 50;
|
||||
private int pause = 0;
|
||||
private int loopCount = 0;
|
||||
private int currentLoop = 0;
|
||||
private int firstFrame = 0;
|
||||
private int lastFrame = 13;
|
||||
private ImageList images;
|
||||
private IContainer components;
|
||||
|
||||
/// <summary>Initializes a new instance of the <b>AnimatedIcon</b> class.
|
||||
/// </summary>
|
||||
public ProgressIcon()
|
||||
{
|
||||
CheckForIllegalCrossThreadCalls = false;
|
||||
InitializeComponent();
|
||||
|
||||
this.SetStyle(ControlStyles.UserPaint, true);
|
||||
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
this.SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
this.SetStyle(ControlStyles.ResizeRedraw, true);
|
||||
}
|
||||
|
||||
#region Dispose
|
||||
/// <summary>Clean up any resources being used.</summary>
|
||||
/// <param name="disposing"><see langword="true"/> to release both managed
|
||||
/// and unmanaged resources; <see langword="false"/> to release
|
||||
/// only unmanaged resources.</param>
|
||||
protected override void Dispose( bool disposing )
|
||||
{
|
||||
if( disposing )
|
||||
{
|
||||
if( components != null )
|
||||
components.Dispose();
|
||||
|
||||
if( thread != null )
|
||||
thread.Abort();
|
||||
}
|
||||
base.Dispose( disposing );
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Component 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.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ProgressIcon));
|
||||
this.images = new System.Windows.Forms.ImageList(this.components);
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// images
|
||||
//
|
||||
this.images.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("images.ImageStream")));
|
||||
this.images.TransparentColor = System.Drawing.Color.Transparent;
|
||||
this.images.Images.SetKeyName(0, "ProgressImage00.bmp");
|
||||
this.images.Images.SetKeyName(1, "ProgressImage01.bmp");
|
||||
this.images.Images.SetKeyName(2, "ProgressImage02.bmp");
|
||||
this.images.Images.SetKeyName(3, "ProgressImage03.bmp");
|
||||
this.images.Images.SetKeyName(4, "ProgressImage04.bmp");
|
||||
this.images.Images.SetKeyName(5, "ProgressImage05.bmp");
|
||||
this.images.Images.SetKeyName(6, "ProgressImage06.bmp");
|
||||
this.images.Images.SetKeyName(7, "ProgressImage07.bmp");
|
||||
this.images.Images.SetKeyName(8, "ProgressImage08.bmp");
|
||||
this.images.Images.SetKeyName(9, "ProgressImage09.bmp");
|
||||
this.images.Images.SetKeyName(10, "ProgressImage10.bmp");
|
||||
this.images.Images.SetKeyName(11, "ProgressImage11.bmp");
|
||||
this.images.Images.SetKeyName(12, "ProgressImage12.bmp");
|
||||
//
|
||||
// ProgressIcon
|
||||
//
|
||||
this.Name = "ProgressIcon";
|
||||
this.Size = new System.Drawing.Size(30, 30);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
/// <summary>Starts animation from the beginning.
|
||||
/// </summary>
|
||||
public void StartAnimation()
|
||||
{
|
||||
StopAnimation();
|
||||
CheckRange(); // Check the first and the last frames
|
||||
|
||||
thread = new Thread( new ThreadStart( threadFunc ) );
|
||||
thread.IsBackground = true;
|
||||
thread.Start();
|
||||
}
|
||||
|
||||
/// <summary>Stops animation not changing current frame number.
|
||||
/// </summary>
|
||||
public void StopAnimation()
|
||||
{
|
||||
if( thread != null )
|
||||
{
|
||||
thread.Abort();
|
||||
thread = null;
|
||||
}
|
||||
currentLoop = 0;
|
||||
}
|
||||
|
||||
/// <summary>Displays the specified frame.</summary>
|
||||
/// <param name="frame">An index of the image stored in the <see cref="ImageList"/>.</param>
|
||||
public void ShowFrame2(int frame)
|
||||
{
|
||||
StopAnimation();
|
||||
|
||||
if( frame >= 0 && frame < images.Images.Count )
|
||||
currentFrame = frame;
|
||||
else
|
||||
currentFrame = 0;
|
||||
|
||||
Refresh();
|
||||
}
|
||||
|
||||
/// <summary>Occurs when the control is redrawn.</summary>
|
||||
/// <param name="e">A <see cref="PaintEventArgs"/> that contains
|
||||
/// the event data.</param>
|
||||
/// <remarks>The <b>OnPaint</b> method draws current image from
|
||||
/// the <see cref="ImageList"/> if exists.</remarks>
|
||||
protected override void OnPaint(PaintEventArgs e)
|
||||
{
|
||||
// Draw a crossed rectangle if there is no frame to display
|
||||
|
||||
if( images == null ||
|
||||
currentFrame < 0 ||
|
||||
currentFrame >= images.Images.Count )
|
||||
{
|
||||
if( this.Size.Width == 0 || this.Size.Height == 0 )
|
||||
return;
|
||||
|
||||
Pen pen = new Pen( SystemColors.ControlText );
|
||||
e.Graphics.DrawRectangle( pen, 0, 0, this.Size.Width-1, this.Size.Height-1 );
|
||||
e.Graphics.DrawLine( pen, 0, 0, this.Size.Width, this.Size.Height );
|
||||
e.Graphics.DrawLine( pen, 0, this.Size.Height-1, this.Size.Width-1, 0 );
|
||||
pen.Dispose();
|
||||
}
|
||||
else
|
||||
{
|
||||
// Draw the current frame
|
||||
|
||||
e.Graphics.DrawImage( images.Images[currentFrame], 0, 0, this.Size.Width, this.Size.Height );
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>The method to be invoked when the thread begins executing.
|
||||
/// </summary>
|
||||
private void threadFunc()
|
||||
{
|
||||
bool wasPause = false;
|
||||
currentFrame = firstFrame;
|
||||
|
||||
while( thread != null && thread.IsAlive )
|
||||
{
|
||||
Refresh(); // Redraw the current frame
|
||||
wasPause = false;
|
||||
|
||||
if( images != null )
|
||||
{
|
||||
currentFrame++;
|
||||
if( currentFrame > lastFrame ||
|
||||
currentFrame >= images.Images.Count )
|
||||
{
|
||||
if( pause > 0 ) // Sleep after every loop
|
||||
{
|
||||
Thread.Sleep( pause );
|
||||
wasPause = true;
|
||||
}
|
||||
|
||||
currentFrame = firstFrame;
|
||||
if( loopCount != 0 ) // 0 is infinitive loop
|
||||
{
|
||||
currentLoop++;
|
||||
}
|
||||
}
|
||||
|
||||
if( loopCount != 0 && currentLoop >= loopCount )
|
||||
{
|
||||
StopAnimation(); // The loop is completed
|
||||
}
|
||||
}
|
||||
if( !wasPause ) // That prevents summation (pause + delayInterval)
|
||||
Thread.Sleep( delayInterval );
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>Check if the last frame is no less than the first one.
|
||||
/// Otherwise, swap them.</summary>
|
||||
private void CheckRange()
|
||||
{
|
||||
if( lastFrame < firstFrame )
|
||||
{
|
||||
int tmp = firstFrame;
|
||||
firstFrame = lastFrame;
|
||||
lastFrame = tmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,855 @@
|
|||
<?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>
|
||||
<metadata name="images.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<data name="images.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADc
|
||||
qQAAAk1TRnQBSQFMAgEBDQEAAQ4BAAEEAQABHgEAAR4BAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAF4
|
||||
AwABeAMAAQEBAAEgBgAB4RIAIP8D/gH/A/4B/wP5Af8D8QH/A+kB/wPiAf8D7AH/A/EB/wPiAf8D4gH/
|
||||
A+wB/wP5Af8D/gH/A/4h//8AaQAY/wP+Af8D/gH/AfUB9AH1Af8D4gH/A9kB/wPZAf8D2QH/A9YB/wPp
|
||||
Af8D7AH/A9YB/wPZAf8D2QH/A9kB/wPiAf8D8QH/A/4B/wP+Gf//AGkAFP8D/gH/AfUB9AH1Af8B9QH0
|
||||
AfUB/wPsAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wPpAf8D7AH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D4gH/
|
||||
AfUB9AH1Af8B9QH0AfUB/wP+Ff//AGkAEP8D/gH/A/EB/wPZAf8D3AH/A/kB/wPiAf8D2QH/A9kB/wPZ
|
||||
Af8D2QH/A+kB/wPsAf8D2QH/A9kB/wPZAf8D2QH/A9wB/wH1AfQB9QH/A+IB/wPZAf8D7AH/A/4R//8A
|
||||
aQAM/wP+Af8D7AH/A9kB/wPZAf8D2QH/A+wB/wPxAf8D2QH/A9kB/wPZAf8D1gH/A+kB/wPsAf8D1gH/
|
||||
A9kB/wPZAf8D2QH/A+wB/wPxAf8D2QH/A9kB/wPZAf8D6QH/A/4N//8AaQAI/wP+Af8D8QH/A9kB/wPZ
|
||||
Af8D2QH/A9kB/wPZAf8B9QH0AfUB/wPiAf8D1gH/A9wB/wPiAf8D8QH/AfUB9AH1Af8D4gH/A9wB/wPZ
|
||||
Af8D3AH/A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wP+Cf//AGkABP8D/gH/A/kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPiAf8D+QH/A/EB/wP+Af8D/gH/A/4B/wP+Af8D/gH/A/4B/wPxAf8B9QH0
|
||||
AfUB/wPpAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wPZAf8B9QH0AfUB/wP+Bf//AGkABP8D/gH/A/kB/wPp
|
||||
Af8D2QH/A9kB/wPZAf8D2QH/A9kB/wPsAf8D/gH/A/4Z/wP+Af8D/gH/A+wB/wPZAf8D2QH/A9kB/wPZ
|
||||
Af8D2QH/A+IB/wP5Af8D/gX//wBpAAP+Af8D8QH/A+IB/wH1AfQB9QH/AfUB9AH1Af8D4gH/A9kB/wPZ
|
||||
Af8D8QH/A/4p/wP+Af8D8QH/A9kB/wPZAf8D4gH/AfUB9AH1Af8B9QH0AfUB/wPiAf8D8QH/A/4B//8A
|
||||
aQAD/gH/A+IB/wPWAf8D2QH/A+IB/wH1AfQB9QH/A/EB/wPsAf8D/jH/A/4B/wPsAf8D8QH/A/kB/wPp
|
||||
Af8D2QH/A9YB/wPiAf8D/gH//wBpAAP5Af8D3AH/A9kB/wPZAf8D2QH/A9kB/wPsAf8D/jn/A/4B/wPx
|
||||
Af8D3AH/A9kB/wPZAf8D2QH/A9kB/wP5Af//AGkAA/EB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wP+
|
||||
Of8D/gH/A+wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+wB//8AaQAD6QH/A9kB/wPZAf8D2QH/A9kB/wPZ
|
||||
Af8D+UH/A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A+IB//8AaQAD4gH/A9kB/wPZAf8D2QH/A9kB/wPi
|
||||
Af8D/kH/A/4B/wPiAf8D2QH/A9kB/wPZAf8D2QH/A+IB//8AaQAB9QH0AfUB/wPxAf8D8QH/A/EB/wPx
|
||||
Af8B9QH0AfUB/wP+Qf8D/gH/AfUB9AH1Af8D8QH/A/EB/wPxAf8D8QH/AfUB9AH1Af//AGkAA+kB/wPi
|
||||
Af8D4gH/A+IB/wPiAf8D7AH/A/5B/wP+Af8D7AH/A+IB/wPiAf8D4gH/A+IB/wPpAf//AGkAA+IB/wPW
|
||||
Af8D2QH/A9kB/wPWAf8D3AH/A/5B/wP+Af8D4gH/A9YB/wPZAf8D2QH/A9YB/wPiAf//AGkAA+kB/wPZ
|
||||
Af8D2QH/A9kB/wPZAf8D2QH/A/lB/wP5Af8D3AH/A9kB/wPZAf8D2QH/A9kB/wPiAf//AGkAA/EB/wPZ
|
||||
Af8D2QH/A9kB/wPZAf8D1gH/A+wB/wP+Of8D/gH/A+wB/wPWAf8D2QH/A9kB/wPZAf8D2QH/A+wB//8A
|
||||
aQAD+QH/A9wB/wPZAf8D2QH/A9kB/wHoAeQB6AH/AfUB9AH1Af8B+QH8Afk5/wP+Af8D+QH/A+kB/wPZ
|
||||
Af8D2QH/A9kB/wPZAf8D+QH//wBpAAP+Af8D4gH/A9YB/wHhAd4B4QH/AfgB8gH3Af8B6gH4AesB/wF8
|
||||
Ad4BgQH/AYUB2gGKAf8D/jH/A/4B/wPpAf8D4gH/AfUB9AH1Af8B9QH0AfUB/wPiAf8D1gH/A+IB/wP+
|
||||
Af//AGkAA/4B/wH1AfQB9QH/AfAB6wHvAf8B8AH5AfEB/wG8AfsBwQH/AYkB+gGRAf8BagHoAXQB/wE1
|
||||
AcUBPgH/AZsB4gGgAf8D/in/A/4B/wPxAf8D2QH/A9kB/wPZAf8D6QH/A/kB/wPxAf8B9QH0AfUB/wP+
|
||||
Af//AGkABP8D/gH/AeAB+AHiAf8BkgH7AZkB/wGDAfkBjAH/AYMB+QGMAf8BiQH6AZEB/wFqAegBdAH/
|
||||
ATUBxQE+Af8BjwHdAZQB/wP+Af8D/hn/A/4B/wP+Af8D7AH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A/EB/wP+Bf//AGkABP8D/gH/AeoB+AHrAf8BkgH7AZkB/wGDAfkBjAH/AYkB+gGRAf8BiQH6AZEB/wGJ
|
||||
AfoBkQH/AWoB6AF0Af8BoQHqAaYB/wGqAdIBqwH/AYIBvQGDAf8B2wHsAdsB/wH5AfwB+QH/A/4B/wP+
|
||||
Af8D/gH/A/kB/wPsAf8D7AH/A/EB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wP5Af8D/gX//wBpAAj/
|
||||
A/4B/wHYAfoB2wH/AYkB+gGRAf8BiQH6AZEB/wGJAfoBkQH/AYMB+QGMAf8BmgH5AaEB/wHmAfsB6AH/
|
||||
AUIBogFEAf8BDwGGAREB/wEhAYwBIwH/ATQBlQE2Af8BkgHJAZMB/wH4AfIB+AH/A9wB/wPZAf8D2QH/
|
||||
A9kB/wP5Af8D4gH/A9kB/wPZAf8D2QH/A9kB/wPxAf8D/gn//wBpAAz/A/4B/wHRAfoB1AH/AYkB+gGR
|
||||
Af8BgwH5AYwB/wGDAfkBjAH/AdgB+gHbAf8BmQHLAZkB/wEyAaMBNAH/ATsBqQE9Af8BMgGjATQB/wEc
|
||||
AZABHgH/AXwBwgF9Af8B9AHwAfQB/wPWAf8D2QH/A9kB/wPZAf8D4gH/AfUB9AH1Af8D2QH/A9kB/wPZ
|
||||
Af8D7AH/A/4N//8AaQAQ/wP+Af8B2AH6AdsB/wGSAfsBmQH/AaoB/AGxAf8B0gHqAdIB/wFDAasBRQH/
|
||||
ATsBqQE9Af8BOwGpAT0B/wE7AakBPQH/ATIBowE0Af8BiQHIAYoB/wH0AfAB9AH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D8QH/A+kB/wPZAf8D8QH/A/4R//8AaQAU/wP+Af8B6gH4AesB/wHqAfgB6wH/AXwBwgF9
|
||||
Af8BKQGgASwB/wE7AakBPQH/ATsBqQE9Af8BOwGpAT0B/wEuAaIBMgH/AYkByAGKAf8B9AHwAfQB/wPZ
|
||||
Af8D2QH/A9kB/wPZAf8D1gH/A+IB/wP5Af8D+QH/A/4V//8AaQAY/wP+Af8D/gH/Ac4B6wHQAf8BhAHI
|
||||
AYYB/wFLAbABTQH/ATgBqAE6Af8BLgGiATIB/wEnAaABKQH/AYQByAGGAf8B8QHsAfEB/wPWAf8D1gH/
|
||||
A9kB/wPcAf8D4gH/AfUB9AH1Af8D/gH/A/4Z//8AaQAg/wP+Af8D/gH/AeoB+AHrAf8BuQHgAboB/wGS
|
||||
AdABkwH/AW0BwAFvAf8BpAHYAaUB/wH0AfAB9AH/A+IB/wPpAf8D8QH/A/kB/wP+Af8D/iH//wBpACD/
|
||||
A/4B/wP+Af8B2wHsAdsB/wGgAdEBoQH/AXIBvAF0Af8BSQGlAUwB/wGZAcsBmQH/AaoB0gGrAf8BQgGi
|
||||
AUQB/wFqAbQBawH/AZkBywGZAf8B2wHsAdsB/wP+Af8D/kH/A/4B/wP+Af8B3AHwAd0B/wGgAdEBoQH/
|
||||
AXIBvAF0Af8BSQGlAUwB/wGZAcsBmQH/AaoB0gGrAf8BQgGiAUQB/wFqAbQBawH/AZkBywGZAf8B2wHs
|
||||
AdsB/wP+Af8D/kH/A/4B/wP+Af8B4AH4AeIB/wG0AewBuAH/AZAB5gGWAf8BbAHbAXQB/wGkAesBqQH/
|
||||
AfQB8AH0Af8D4gH/A+IB/wPsAf8D+QH/A/4B/wP+Qf8D/gH/A/4B/wP5Af8D8QH/A+kB/wPiAf8D7AH/
|
||||
A/EB/wPiAf8D4gH/A+wB/wP5Af8D/gH/A/45/wP+Af8D/gH/Ab8B4AHAAf8BYQGxAWIB/wEqAZoBLQH/
|
||||
ARwBkAEeAf8BFwGMARkB/wEQAYgBEQH/AYUBwgGGAf8BkgHJAZMB/wEKAYMBDAH/ARMBiAEVAf8BEwGI
|
||||
ARUB/wEiAZIBJAH/AVkBrAFbAf8BswHbAbQB/wP+Af8D/jH/A/4B/wP+Af8BvwHgAcAB/wFhAbEBYgH/
|
||||
ASoBmgEtAf8BHAGQAR4B/wEXAYwBGQH/ARABiAERAf8BhQHCAYYB/wGSAckBkwH/AQoBgwEMAf8BEwGI
|
||||
ARUB/wETAYgBFQH/ASIBkgEkAf8BWQGsAVsB/wGzAdsBtAH/A/4B/wP+Mf8D/gH/A/4B/wHNAfMB0AH/
|
||||
AYMB4QGJAf8BWgHdAWMB/wFLAdkBVAH/AUkB0gFSAf8BQgHQAUsB/wGVAeoBmwH/AfEB7AHxAf8D1gH/
|
||||
A9kB/wPZAf8D2QH/A+IB/wPxAf8D/gH/A/4x/wP+Af8D/gH/AfUB9AH1Af8D4gH/A9kB/wPZAf8D2QH/
|
||||
A9YB/wPpAf8D7AH/A9YB/wPZAf8D2QH/A9kB/wPiAf8D8QH/A/4B/wP+Lf8D/gH/AckB4gHJAf8BuQHg
|
||||
AboB/wGSAckBkwH/ARMBiAEVAf8BIgGSASQB/wEiAZIBJAH/ASIBkgEkAf8BFwGMARkB/wGJAcIBigH/
|
||||
AZkBywGZAf8BEwGIARUB/wEiAZIBJAH/ASIBkgEkAf8BGgGMARwB/wEKAYMBDAH/AWoBtAFrAf8ByQHi
|
||||
AckB/wHBAeIBwgH/A/4p/wP+Af8ByQHiAckB/wG/AeABwAH/AZIByQGTAf8BEwGIARUB/wEiAZIBJAH/
|
||||
ASIBkgEkAf8BIgGSASQB/wEXAYwBGQH/AYkBwgGKAf8BmQHLAZkB/wETAYgBFQH/ASIBkgEkAf8BIgGS
|
||||
ASQB/wEaAYwBHAH/AQoBgwEMAf8BagG0AWsB/wHWAfQB2AH/AdAB8wHTAf8D/in/A/4B/wHJAeIByQH/
|
||||
AbgB3QG5Af8BrQHyAbIB/wFLAdkBVAH/AVUB2wFeAf8BVQHbAV4B/wFVAdsBXgH/AUkB0gFSAf8BmAHq
|
||||
AZ0B/wHxAewB8QH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D4gH/AfUB9AH1Af8B9QH0AfUB/wP+Kf8D/gH/
|
||||
AfUB9AH1Af8B9QH0AfUB/wPsAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wPpAf8D7AH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPWAf8D4gH/AfUB9AH1Af8B9QH0AfUB/wP+Jf8D/gH/AasB2AGsAf8BLgGcATEB/wE5AaEBOwH/
|
||||
AdcB6gHYAf8BTwGqAVEB/wEiAZIBJAH/AScBlgEpAf8BIgGSASQB/wEXAYwBGQH/AYkBwgGKAf8BmQHL
|
||||
AZkB/wETAYgBFQH/ASIBkgEkAf8BIgGSASQB/wEaAYwBHAH/ASwBlQEuAf8B0AHnAdAB/wFJAaUBTAH/
|
||||
ARoBjAEcAf8BmQHLAZkB/wP+If8D/gH/AasB2AGsAf8BLgGcATEB/wE5AaEBOwH/AdcB6gHYAf8BTwGq
|
||||
AVEB/wEiAZIBJAH/AScBlgEpAf8BIgGSASQB/wEXAYwBGQH/AYkBwgGKAf8BmQHLAZkB/wETAYgBFQH/
|
||||
ASIBkgEkAf8BIgGSASQB/wEaAYwBHAH/ASwBlQEuAf8B0gHqAdIB/wFsAdsBdAH/AUIBywFKAf8BrAHq
|
||||
AbAB/wP+If8D/gH/AasB2AGsAf8BLgGcATEB/wE5AaEBOwH/AdwB8AHdAf8BfAHnAYMB/wFVAdsBXgH/
|
||||
AVoB3QFjAf8BVQHbAV4B/wFJAdIBUgH/AZUB6gGbAf8B8QHsAfEB/wPZAf8D2QH/A9kB/wPZAf8D3AH/
|
||||
AfUB9AH1Af8D4gH/A9kB/wPsAf8D/iH/A/4B/wPxAf8D2QH/A9wB/wP5Af8D4gH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPpAf8D7AH/A9kB/wPZAf8D2QH/A9kB/wPcAf8B9QH0AfUB/wPiAf8D2QH/A+wB/wP+Hf8D/gH/
|
||||
AZoB0gGbAf8BIwGZASYB/wEmAZgBKQH/AR8BkgEhAf8BkgHJAZMB/wG5AeABugH/ASIBkgEkAf8BJgGY
|
||||
ASkB/wEmAZgBKQH/ARwBkAEeAf8BiQHIAYoB/wGaAdIBmwH/ARwBkAEeAf8BJgGYASkB/wEiAZIBJAH/
|
||||
ARMBiAEVAf8BlgHJAZgB/wGqAdIBqwH/ARMBiAEVAf8BGgGMARwB/wETAYgBFQH/AYcBwgGIAf8D/hn/
|
||||
A/4B/wGaAdIBmwH/ASMBmQEmAf8BJgGYASkB/wEfAZIBIQH/AZIByQGTAf8BuAHdAbkB/wEiAZIBJAH/
|
||||
ASIBkgEkAf8BJgGYASkB/wEcAZABHgH/AYkByAGKAf8BmgHSAZsB/wEcAZABHgH/ASYBmAEpAf8BIgGS
|
||||
ASQB/wETAYgBFQH/AZABxQGRAf8BvAHxAcAB/wFCAdABSwH/AUIBywFKAf8BPAHLAUUB/wGbAeIBoAH/
|
||||
A/4Z/wP+Af8BmgHSAZsB/wEjAZkBJgH/ASYBmAEpAf8BHwGSASEB/wGJAcIBigH/Ac4B+gHRAf8BVQHb
|
||||
AV4B/wFaAd0BYwH/AVoB4AFjAf8BWgHgAWMB/wGlAfIBqgH/AfEB7AHxAf8D1gH/A9kB/wPZAf8D2QH/
|
||||
A+wB/wPxAf8D2QH/A9kB/wPZAf8D6QH/A/4Z/wP+Af8D7AH/A9kB/wPZAf8D2QH/A+wB/wPxAf8D2QH/
|
||||
A9kB/wPZAf8D1gH/A+kB/wPsAf8D1gH/A9kB/wPZAf8D2QH/A+wB/wPxAf8D2QH/A9kB/wPZAf8D6QH/
|
||||
A/4V/wP+Af8BqwHYAawB/wEmAZgBKQH/ASoBmgEtAf8BKgGaAS0B/wEqAZoBLQH/ATEBnQEzAf8B0gHq
|
||||
AdIB/wFpAbsBawH/ASMBmQEmAf8BSAGtAUsB/wFiAboBYwH/AbkB4AG6Af8BwQHiAcIB/wFtAcABbwH/
|
||||
AVIBsgFUAf8BMgGjATQB/wFTAakBVQH/AdsB7AHbAf8BPwGdAUEB/wEaAYwBHAH/ASIBkgEkAf8BGgGM
|
||||
ARwB/wESAYQBFAH/AZIByQGTAf8D/hH/A/4B/wGrAdgBrAH/ASYBmAEpAf8BKgGaAS0B/wEuAZwBMQH/
|
||||
ASoBmgEtAf8BMQGdATMB/wHSAeoB0gH/AWkBuwFrAf8BIwGZASYB/wFIAa0BSwH/AWIBugFjAf8BuQHg
|
||||
AboB/wHBAeIBwgH/AW0BwAFvAf8BUgGyAVQB/wEyAaMBNAH/AU8BqgFRAf8B3AHwAd0B/wFlAdoBbQH/
|
||||
AUIB0AFLAf8BSQHSAVIB/wFCAdABSwH/ATwBywFFAf8BqQHpAa0B/wP+Ef8D/gH/AasB2AGsAf8BJgGY
|
||||
ASkB/wEqAZoBLQH/ASoBmgEtAf8BKgGaAS0B/wExAZ0BMwH/AdIB6gHSAf8BlAHwAZoB/wFnAewBcQH/
|
||||
AYIB8QGKAf8BmgH5AaEB/wHRAfoB1AH/AfQB8AH0Af8D4gH/A9wB/wPZAf8D3AH/A/kB/wPcAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A+wB/wP+Ef8D/gH/A/EB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfUB9AH1Af8D4gH/
|
||||
A9YB/wPcAf8D4gH/A/EB/wH1AfQB9QH/A+IB/wPcAf8D2QH/A9wB/wP5Af8D3AH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPsAf8D/g3/A/4B/wHcAfAB3QH/ATIBowE0Af8BJgGYASkB/wEuAZwBMQH/AS4BnAExAf8BLgGc
|
||||
ATEB/wEfAZIBIQH/AWEBsQFiAf8B0gHqAdIB/wGrAdgBrAH/AegB9QHoAf8D/gH/A/4B/wP+Af8D/gH/
|
||||
AfAB+QHxAf8BswHbAbQB/wHLAegBywH/AZIB0AGTAf8BHwGSASEB/wEfAZIBIQH/ASIBkgEkAf8BIQGM
|
||||
ASMB/wEaAYwBHAH/ARoBjAEcAf8ByQHiAckB/wP+Cf8D/gH/AdwB8AHdAf8BMgGjATQB/wEmAZgBKQH/
|
||||
AS4BnAExAf8BLgGcATEB/wEuAZwBMQH/AR8BkgEhAf8BYQGxAWIB/wHSAeoB0gH/AasB2AGsAf8B6gH4
|
||||
AesB/wP+Af8D/gH/A/4B/wP+Af8B8AH5AfEB/wGzAdsBtAH/AcsB6AHLAf8BxQH6AckB/wFaAeABYwH/
|
||||
AUkB0gFSAf8BSQHSAVIB/wFJAdIBUgH/AUIBywFKAf8BQgHLAUoB/wHWAfQB2AH/A/4J/wP+Af8B3AHw
|
||||
Ad0B/wEyAaMBNAH/ASYBmAEpAf8BLgGcATEB/wEuAZwBMQH/AS4BnAExAf8BHwGSASEB/wFhAbEBYgH/
|
||||
AeAB+AHiAf8BxQH6AckB/wHwAfkB8QH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D8QH/AfUB9AH1Af8D6QH/
|
||||
A9YB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfUB9AH1Af8D/gn/A/4B/wP5Af8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D4gH/A/kB/wPxAf8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D8QH/AfUB9AH1Af8D6QH/
|
||||
A9YB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfUB9AH1Af8D/gn/A/4B/wHgAfEB4QH/AZIByQGTAf8BMgGj
|
||||
ATQB/wEjAZkBJgH/AS4BnAExAf8BJgGYASkB/wEmAZgBKQH/AZIByQGTAf8D/gH/A/4Z/wP+Af8D/gH/
|
||||
AasB2AGsAf8BRQGwAUcB/wEqAZoBLQH/AR8BigEhAf8BFwGMARkB/wEaAYwBHAH/AWoBtAFrAf8B3AHw
|
||||
Ad0B/wP+Cf8D/gH/AeAB8QHhAf8BkgHJAZMB/wEyAaMBNAH/ASMBmQEmAf8BKgGaAS0B/wEmAZgBKQH/
|
||||
ASYBmAEpAf8BkgHJAZMB/wP+Af8D/hn/A/4B/wP+Af8B0QH6AdQB/wGaAfkBoQH/AWsB5QF0Af8BSAHS
|
||||
AVEB/wFCAdABSwH/AUIBywFKAf8BgQHgAYYB/wHgAfgB4gH/A/4J/wP+Af8B4AHxAeEB/wGSAckBkwH/
|
||||
ATIBowE0Af8BIwGZASYB/wEuAZwBMQH/ASoBmgEtAf8BJgGYASkB/wGSAckBkwH/A/4B/wP+Gf8D/gH/
|
||||
A/4B/wPsAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPiAf8D+QH/A/4J/wP+Af8B8AH5AfEB/wHxAewB8QH/
|
||||
AdwB2gHcAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wP+Af8D/hn/A/4B/wP+Af8D7AH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D4gH/A/kB/wP+Bf8D/gH/AbkB4AG6Af8BUgGyAVQB/wHBAeIBwgH/AdIB6gHSAf8BcgG8
|
||||
AXQB/wEjAZkBJgH/ARwBkAEeAf8BqgHSAasB/wP+Kf8D/gH/AcEB4gHCAf8BRQGwAUcB/wEiAZIBJAH/
|
||||
AVMBqQFVAf8BwQHiAcIB/wHJAeIByQH/AVMBqQFVAf8BqgHSAasB/wP+Af8D/gH/AbkB4AG6Af8BUgGy
|
||||
AVQB/wHBAeIBwgH/AdIB6gHSAf8BcgG8AXQB/wEjAZkBJgH/ARwBkAEeAf8BqgHSAasB/wP+Kf8D/gH/
|
||||
Ad0B+wHgAf8BmgH5AaEB/wFaAeABYwH/AWwB2wF0Af8BxQH6AckB/wH4AfIB+AH/A+IB/wPxAf8D/gH/
|
||||
A/4B/wG5AeABugH/AVIBsgFUAf8BwQHiAcIB/wHSAeoB0gH/AXIBvAF0Af8BIwGZASYB/wEcAZABHgH/
|
||||
AaoB0gGrAf8D/in/A/4B/wPxAf8D2QH/A9kB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A+IB/wPxAf8D/gH/
|
||||
A/4B/wHRAfoB1AH/AYIB8QGKAf8BzgH6AdEB/wH4AfIB+AH/AegB5AHoAf8D2QH/A9kB/wPxAf8D/in/
|
||||
A/4B/wPxAf8D2QH/A9kB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A+IB/wPxAf8D/gH/A/4B/wFyAbwBdAH/
|
||||
ASMBmQEmAf8BKgGaAS0B/wFwAbkBcgH/AdIB6gHSAf8BswHbAbQB/wGZAcsBmQH/A/4x/wP+Af8BswHb
|
||||
AbQB/wGzAdsBtAH/AdsB7AHbAf8BeQG8AXsB/wEiAZIBJAH/AQoBgwEMAf8BUwGpAVUB/wP+Af8D/gH/
|
||||
AXIBvAF0Af8BIwGZASYB/wEqAZoBLQH/AXABuQFyAf8B0gHqAdIB/wGzAdsBtAH/AZkBywGZAf8D/jH/
|
||||
A/4B/wHRAfoB1AH/Ac4B+gHRAf8B8AH5AfEB/wHxAewB8QH/A9kB/wPWAf8D4gH/A/4B/wP+Af8BcgG8
|
||||
AXQB/wEjAZkBJgH/ASoBmgEtAf8BcAG5AXIB/wHSAeoB0gH/AbMB2wG0Af8BmQHLAZkB/wP+Mf8D/gH/
|
||||
A+wB/wPxAf8D+QH/A+kB/wPZAf8D1gH/A+IB/wP+Af8D/gH/AZ4B8wGkAf8BagHoAXQB/wFqAegBdAH/
|
||||
AZQB8AGaAf8B4AH4AeIB/wH0AfAB9AH/A+wB/wP+Mf8D/gH/A+wB/wPxAf8D+QH/A+kB/wPZAf8D1gH/
|
||||
A+IB/wP+Af8B4AHxAeEB/wE/AakBQQH/ATIBowE0Af8BMgGjATQB/wEqAZoBLQH/ASYBmAEpAf8BmQHL
|
||||
AZkB/wP+Of8D/gH/AcEB4gHCAf8BPwGpAUEB/wETAYgBFQH/AR8BigEhAf8BGgGMARwB/wEiAZIBJAH/
|
||||
AdIB6gHSAf8B4AHxAeEB/wE/AakBQQH/ATIBowE0Af8BMgGjATQB/wEqAZoBLQH/ASYBmAEpAf8BmQHL
|
||||
AZkB/wP+Of8D/gH/AfQB8AH0Af8D3AH/A9kB/wPZAf8D2QH/A9kB/wP5Af8B4AHxAeEB/wE/AakBQQH/
|
||||
ATIBowE0Af8BMgGjATQB/wEqAZoBLQH/ASYBmAEpAf8BmQHLAZkB/wP+Of8D/gH/A/EB/wPcAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A/kB/wHqAfgB6wH/AXoB8gGBAf8BdQHxAX4B/wFxAesBegH/AWoB6AF0Af8BWgHd
|
||||
AWMB/wGkAesBqQH/A/45/wP+Af8D8QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D+QH/AasB2AGsAf8BLgGi
|
||||
ATIB/wE2AaQBOQH/ATYBpAE5Af8BMgGjATQB/wETAYgBFQH/AZIByQGTAf8D/jn/A/4B/wGzAdsBtAH/
|
||||
ATIBowE0Af8BIgGSASQB/wEiAZIBJAH/ASIBkgEkAf8BEwGIARUB/wGSAckBkwH/AasB2AGsAf8BLgGi
|
||||
ATIB/wE2AaQBOQH/ATYBpAE5Af8BMgGjATQB/wETAYgBFQH/AZIByQGTAf8D/jn/A/4B/wPsAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPsAf8BqwHYAawB/wEuAaIBMgH/ATYBpAE5Af8BNgGkATkB/wEyAaMBNAH/
|
||||
ARMBiAEVAf8BkgHJAZMB/wP+Of8D/gH/A+wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wHKAfkBzQH/
|
||||
AXUB8QF+Af8BegHyAYEB/wF6AfIBgQH/AXEB6wF6Af8BQAHPAUoB/wGkAeYBqAH/A/45/wP+Af8D7AH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPZAf8D7AH/AYQByAGGAf8BKQGgASwB/wE2AaQBOQH/ATYBpAE5Af8BKgGa
|
||||
AS0B/wEhAYwBIwH/AdsB7AHbQf8B6AH1AegB/wFLAbABTQH/ASYBmAEpAf8BIgGSASQB/wEiAZIBJAH/
|
||||
ARMBiAEVAf8BagG0AWsB/wGEAcgBhgH/ASkBoAEsAf8BNgGkATkB/wE2AaQBOQH/ASoBmgEtAf8BIQGM
|
||||
ASMB/wHbAewB20H/A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wGEAcgBhgH/ASkBoAEsAf8BNgGk
|
||||
ATkB/wE2AaQBOQH/ASoBmgEtAf8BIQGMASMB/wHbAewB20H/A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A+IB/wGqAfwBsQH/AXUB8QF+Af8BegHyAYEB/wF6AfIBgQH/AWgB5QFxAf8BQgHLAUoB/wHgAfEB4UH/
|
||||
A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wFpAbsBawH/AS4BogEyAf8BNgGkATkB/wE2AaQBOQH/
|
||||
ASIBkgEkAf8BPgGbAUAB/wH5AfwB+UH/A/4B/wFtAcABbwH/ASMBmQEmAf8BHwGKASEB/wEfAZIBIQH/
|
||||
ARcBjAEZAf8BSQGlAUwB/wFpAbsBawH/AS4BogEyAf8BNgGkATkB/wE2AaQBOQH/ASIBkgEkAf8BPgGb
|
||||
AUAB/wH5AfwB+UH/A/4B/wPiAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wFpAbsBawH/AS4BogEyAf8BNgGk
|
||||
ATkB/wE2AaQBOQH/ASIBkgEkAf8BPgGbAUAB/wH5AfwB+UH/A/4B/wPiAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A+IB/wGaAfkBoQH/AXoB8gGBAf8BegHyAYEB/wF6AfIBgQH/AVoB4AFjAf8BWwHQAWIB/wH5AfwB+UH/
|
||||
A/4B/wPiAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wHLAegBywH/AbkB4AG6Af8BuQHgAboB/wG5AeABugH/
|
||||
AbMB2wG0Af8BwQHiAcIB/wP+Qf8D/gH/AdIB6gHSAf8BuAHdAbkB/wGzAdsBtAH/AbMB2wG0Af8BswHb
|
||||
AbQB/wG/AeABwAH/AcsB6AHLAf8BuQHgAboB/wG5AeABugH/AbkB4AG6Af8BswHbAbQB/wHBAeIBwgH/
|
||||
A/5B/wP+Af8B9QH0AfUB/wPxAf8D8QH/A/EB/wPxAf8B9QH0AfUB/wHLAegBywH/AbkB4AG6Af8BuQHg
|
||||
AboB/wG5AeABugH/AbMB2wG0Af8BwQHiAcIB/wP+Qf8D/gH/AfUB9AH1Af8D8QH/A/EB/wPxAf8D8QH/
|
||||
AfUB9AH1Af8B3QH7AeAB/wHRAfoB1AH/AdQB/AHYAf8B1AH8AdgB/wHFAfIByAH/Ac0B8wHQAf8D/kH/
|
||||
A/4B/wH1AfQB9QH/A/EB/wPxAf8D8QH/A/EB/wH1AfQB9QH/AZIB0AGTAf8BfAHCAX0B/wF8AcIBfQH/
|
||||
AXwBwgF9Af8BaQG7AWsB/wGJAcIBigH/A/5B/wP+Af8BzgH6AdEB/wGeAfMBpAH/AYwB5gGSAf8BjAHm
|
||||
AZIB/wGMAeYBkgH/AZwB7AGhAf8BkgHQAZMB/wF8AcIBfQH/AXwBwgF9Af8BfAHCAX0B/wFpAbsBawH/
|
||||
AYkBwgGKAf8D/kH/A/4B/wPsAf8D4gH/A+IB/wPiAf8D4gH/A+kB/wGSAdABkwH/AXwBwgF9Af8BfAHC
|
||||
AX0B/wF8AcIBfQH/AWkBuwFrAf8BiQHCAYoB/wP+Qf8D/gH/A+wB/wPiAf8D4gH/A+IB/wPiAf8D6QH/
|
||||
AZIByQGTAf8BdQHAAXYB/wF4AcABeQH/AXwBwgF9Af8BagG0AWsB/wGIAb8BiQH/A/5B/wP+Af8D7AH/
|
||||
A+IB/wPiAf8D4gH/A+IB/wPpAf8BaQG7AWsB/wEpAaABLAH/ATIBowE0Af8BMgGjATQB/wEcAZABHgH/
|
||||
ATQBlQE2Af8B+QH8AflB/wP+Af8BngHzAaQB/wFfAeIBaQH/AUkB0gFSAf8BSwHZAVQB/wFCAdABSwH/
|
||||
AWwB2wF0Af8BaQG7AWsB/wEpAaABLAH/ATIBowE0Af8BMgGjATQB/wEcAZABHgH/ATQBlQE2Af8B8AH5
|
||||
AfFB/wP+Af8D4gH/A9YB/wPZAf8D2QH/A9YB/wPiAf8BaQG7AWsB/wEpAaABLAH/ATIBowE0Af8BMgGj
|
||||
ATQB/wEcAZABHgH/ATQBlQE2Af8B8AH5AfFB/wP+Af8D4gH/A9YB/wPZAf8D2QH/A9YB/wPiAf8BaQG7
|
||||
AWsB/wEpAaABLAH/ATIBowE0Af8BMgGjATQB/wEcAZABHgH/ATQBlQE2Af8B8AH5AfFB/wP+Af8D4gH/
|
||||
A9YB/wPZAf8D2QH/A9YB/wPiAf8BiQHIAYoB/wEyAaMBNAH/ATsBqQE9Af8BOwGpAT0B/wEyAaMBNAH/
|
||||
AR8BigEhAf8B1wHqAdhB/wHvAfwB8AH/AYIB8QGKAf8BXwHiAWkB/wFVAdsBXgH/AVUB2wFeAf8BSQHS
|
||||
AVIB/wGMAeYBkgH/AYkByAGKAf8BMgGjATQB/wE7AakBPQH/ATsBqQE9Af8BMgGjATQB/wEfAYoBIQH/
|
||||
AdcB6gHYQf8D+QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D4gH/AYkByAGKAf8BMgGjATQB/wE7AakBPQH/
|
||||
ATsBqQE9Af8BMgGjATQB/wEfAYoBIQH/AdcB6gHYQf8D+QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D4gH/
|
||||
AYkByAGKAf8BMgGjATQB/wE7AakBPQH/ATsBqQE9Af8BMgGjATQB/wEfAYoBIQH/AdcB6gHYQf8D+QH/
|
||||
A9wB/wPZAf8D2QH/A9kB/wPZAf8D4gH/AbMB2wG0Af8BMgGjATQB/wE7AakBPQH/ATsBqQE9Af8BOwGp
|
||||
AT0B/wEKAYMBDAH/AYkBwgGKAf8D/jn/A/4B/wHFAfoByQH/AWcB7AFxAf8BWgHdAWMB/wFaAd0BYwH/
|
||||
AVUB2wFeAf8BSwHZAVQB/wGwAewBtAH/AbMB2wG0Af8BMgGjATQB/wE7AakBPQH/ATsBqQE9Af8BOQGh
|
||||
ATsB/wEKAYMBDAH/AYkBwgGKAf8D/jn/A/4B/wPsAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wPsAf8BswHb
|
||||
AbQB/wEyAaMBNAH/ATsBqQE9Af8BOwGpAT0B/wE5AaEBOwH/AQoBgwEMAf8BiQHCAYoB/wP+Of8D/gH/
|
||||
A+wB/wPWAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wGzAdsBtAH/ATIBowE0Af8BOwGpAT0B/wE7AakBPQH/
|
||||
ATkBoQE7Af8BCgGDAQwB/wGJAcIBigH/A/45/wP+Af8D7AH/A9YB/wPZAf8D2QH/A9kB/wPZAf8D7AH/
|
||||
AegB9QHoAf8BSwGwAU0B/wE7AakBPQH/ATIBowE0Af8BMgGjATQB/wFnAbYBaQH/AckB4gHJAf8B+QH8
|
||||
Afk5/wP+Af8B6gH4AesB/wGeAfMBpAH/AVoB3QFjAf8BVQHbAV4B/wFVAdsBXgH/AVoB3QFjAf8B4AH4
|
||||
AeIB/wHoAfUB6AH/AUsBsAFNAf8BOwGpAT0B/wEyAaMBNAH/ATIBowE0Af8BZwG2AWkB/wHJAeIByQH/
|
||||
AfkB/AH5Of8D/gH/A/kB/wPpAf8D2QH/A9kB/wPZAf8D2QH/A/kB/wHoAfUB6AH/AUsBsAFNAf8BOwGp
|
||||
AT0B/wEyAaMBNAH/ATIBowE0Af8BZwG2AWkB/wHJAeIByQH/AfkB/AH5Of8D/gH/A/kB/wPpAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A/kB/wHoAfUB6AH/AUsBsAFNAf8BOwGpAT0B/wEyAaMBNAH/ATIBowE0Af8BZwG2
|
||||
AWkB/wHJAeIByQH/AfkB/AH5Of8D/gH/A/kB/wPpAf8D2QH/A9kB/wPZAf8D2QH/A/kB/wP+Af8BfAHC
|
||||
AX0B/wEpAaABLAH/AVsBsQFdAf8BuQHgAboB/wHgAfEB4QH/AWEBsQFiAf8BdAG1AXUB/wP+Mf8D/gH/
|
||||
A+kB/wPiAf8B+AHyAfgB/wHRAfoB1AH/AXwB5wGDAf8BSwHZAVQB/wGDAeEBiQH/A/4B/wP+Af8BfAHC
|
||||
AX0B/wEpAaABLAH/AVsBsQFdAf8BuQHgAboB/wHgAfEB4QH/AWEBsQFiAf8BdAG1AXUB/wP+Mf8D/gH/
|
||||
A+kB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A+IB/wPWAf8D4gH/A/4B/wP+Af8BfAHCAX0B/wEpAaABLAH/
|
||||
AVsBsQFdAf8BuQHgAboB/wHgAfEB4QH/AWEBsQFiAf8BdAG1AXUB/wP+Mf8D/gH/A+kB/wPiAf8B9QH0
|
||||
AfUB/wH1AfQB9QH/A+IB/wPWAf8D4gH/A/4B/wP+Af8BfAHCAX0B/wEpAaABLAH/AVsBsQFdAf8BuQHg
|
||||
AboB/wHgAfEB4QH/AWEBsQFiAf8BdAG1AXUB/wP+Mf8D/gH/A+kB/wPiAf8B9QH0AfUB/wH1AfQB9QH/
|
||||
A+IB/wPWAf8D4gH/A/4B/wP+Af8BzgHrAdAB/wGfAdUBoQH/AdwB8AHdAf8BmgHSAZsB/wFDAasBRQH/
|
||||
ASYBmAEpAf8BEgGEARQB/wGQAcUBkQH/A/4p/wP+Af8D8QH/A9kB/wPZAf8D2QH/Ae0B6AHtAf8B9QH0
|
||||
AfUB/wG0AfMBuAH/AdAB8wHTAf8D/gH/A/4B/wHLAegBywH/AZ8B1QGhAf8B3AHwAd0B/wGaAdIBmwH/
|
||||
AUMBqwFFAf8BJgGYASkB/wESAYQBFAH/AZABxQGRAf8D/in/A/4B/wPxAf8D2QH/A9kB/wPZAf8D6QH/
|
||||
A/kB/wPxAf8B9QH0AfUB/wP+Af8D/gH/AcsB6AHLAf8BnwHVAaEB/wHcAfAB3QH/AZoB0gGbAf8BQwGr
|
||||
AUUB/wEmAZgBKQH/ARIBhAEUAf8BkAHFAZEB/wP+Kf8D/gH/A/EB/wPZAf8D2QH/A9kB/wPpAf8D+QH/
|
||||
A/EB/wH1AfQB9QH/A/4B/wP+Af8BywHoAcsB/wGfAdUBoQH/AdwB8AHdAf8BmgHSAZsB/wFDAasBRQH/
|
||||
ASYBmAEpAf8BEgGEARQB/wGQAcUBkQH/A/4p/wP+Af8D8QH/A9kB/wPZAf8D2QH/A+kB/wP5Af8D8QH/
|
||||
AfUB9AH1Af8D/gX/A/4B/wHSAeoB0gH/AVIBsgFUAf8BMgGjATQB/wE7AakBPQH/AT8BqQFBAf8BLgGc
|
||||
ATEB/wESAYQBFAH/AYIBvQGDAf8D/gH/A/4Z/wP+Af8D/gH/A+wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9wB/wH0AfAB9AH/A/4J/wP+Af8B0gHqAdIB/wFSAbIBVAH/ATIBowE0Af8BOwGpAT0B/wE/AakBQQH/
|
||||
AS4BnAExAf8BEgGEARQB/wF/AbwBgQH/A/4B/wP+Gf8D/gH/A/4B/wPsAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D8QH/A/4J/wP+Af8B0gHqAdIB/wFSAbIBVAH/ATIBowE0Af8BOwGpAT0B/wE/AakBQQH/
|
||||
AS4BnAExAf8BEgGEARQB/wF/AbwBgQH/A/4B/wP+Gf8D/gH/A/4B/wPsAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D8QH/A/4J/wP+Af8B0gHqAdIB/wFSAbIBVAH/ATIBowE0Af8BOwGpAT0B/wE/AakBQQH/
|
||||
AS4BnAExAf8BEgGEARQB/wF/AbwBgQH/A/4B/wP+Gf8D/gH/A/4B/wPsAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D8QH/A/4J/wP+Af8B4AHxAeEB/wFLAbABTQH/ATgBqAE6Af8BPwGpAUEB/wE7AakBPQH/
|
||||
AT8BqQFBAf8BIwGZASYB/wGJAcIBigH/AaoB0gGrAf8BggG9AYMB/wHbAewB2wH/AfkB/AH5Af8D/gH/
|
||||
A/4B/wP+Af8D+QH/A+wB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A/kB/wP+Cf8D/gH/
|
||||
AeAB8QHhAf8BSwGwAU0B/wE4AagBOgH/AT8BqQFBAf8BOwGpAT0B/wE/AakBQQH/ASMBmQEmAf8BiQHC
|
||||
AYoB/wGqAdIBqwH/AYIBvQGDAf8B2wHsAdsB/wH5AfwB+QH/A/4B/wP+Af8D/gH/A/kB/wPsAf8D7AH/
|
||||
A/EB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wP5Af8D/gn/A/4B/wHgAfEB4QH/AUsBsAFNAf8BOAGo
|
||||
AToB/wE/AakBQQH/ATsBqQE9Af8BPwGpAUEB/wEjAZkBJgH/AYkBwgGKAf8BqgHSAasB/wGCAb0BgwH/
|
||||
AdsB7AHbAf8B+QH8AfkB/wP+Af8D/gH/A/4B/wP5Af8D7AH/A+wB/wPxAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D+QH/A/4J/wP+Af8B4AHxAeEB/wFLAbABTQH/ATsBqQE9Af8BPwGpAUEB/wE7AakBPQH/
|
||||
AT8BqQFBAf8BIwGZASYB/wGJAcIBigH/AaoB0gGrAf8BggG9AYMB/wHbAewB2wH/AfkB/AH5Af8D/gH/
|
||||
A/4B/wP+Af8D+QH/A+wB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A/kB/wP+Df8D/gH/
|
||||
AbkB4AG6Af8BOwGpAT0B/wE7AakBPQH/AT8BqQFBAf8BNgGkATkB/wFfAboBYQH/AeAB8QHhAf8BQgGi
|
||||
AUQB/wEQAYgBEQH/ASEBjAEjAf8BNAGVATYB/wGSAckBkwH/AfgB8gH4Af8D3AH/A9kB/wPZAf8D2QH/
|
||||
A/kB/wPiAf8D2QH/A9kB/wPZAf8D2QH/A/EB/wP+Ef8D/gH/AbkB4AG6Af8BOwGpAT0B/wE7AakBPQH/
|
||||
AT8BqQFBAf8BNgGkATkB/wFfAboBYQH/AeAB8QHhAf8BQgGiAUQB/wEPAYYBEQH/ASEBjAEjAf8BNAGV
|
||||
ATYB/wGSAckBkwH/AfgB8gH4Af8D3AH/A9kB/wPZAf8D2QH/A/kB/wPiAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A/EB/wP+Ef8D/gH/AbkB4AG6Af8BOwGpAT0B/wE7AakBPQH/AT8BqQFBAf8BNgGkATkB/wFfAboBYQH/
|
||||
AeAB8QHhAf8BQgGiAUQB/wEPAYYBEQH/ASEBjAEjAf8BNAGVATYB/wGSAckBkwH/AfgB8gH4Af8D3AH/
|
||||
A9kB/wPZAf8D2QH/A/kB/wPiAf8D2QH/A9kB/wPZAf8D2QH/A/EB/wP+Ef8D/gH/AbkB4AG6Af8BOwGp
|
||||
AT0B/wE7AakBPQH/AT8BqQFBAf8BNgGkATkB/wFfAboBYQH/AeAB8QHhAf8BQgGiAUQB/wEPAYYBEQH/
|
||||
ASEBjAEjAf8BNAGVATYB/wGSAckBkwH/AfgB8gH4Af8D3AH/A9kB/wPZAf8D2QH/A/kB/wPiAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A/EB/wP+Ff8D/gH/AbMB2wG0Af8BOwGpAT0B/wE4AagBOgH/ATYBpAE5Af8BuQHg
|
||||
AboB/wGaAdIBmwH/ATIBowE0Af8BOwGpAT0B/wEyAaMBNAH/ARwBkAEeAf8BfAHCAX0B/wH0AfAB9AH/
|
||||
A9YB/wPZAf8D2QH/A9kB/wPiAf8B9QH0AfUB/wPZAf8D2QH/A9kB/wPsAf8D/hn/A/4B/wGzAdsBtAH/
|
||||
ATsBqQE9Af8BOAGoAToB/wE2AaQBOQH/AbkB4AG6Af8BmgHSAZsB/wEyAaMBNAH/ATsBqQE9Af8BMgGj
|
||||
ATQB/wEcAZABHgH/AXwBwgF9Af8B9AHwAfQB/wPWAf8D2QH/A9kB/wPZAf8D4gH/AfUB9AH1Af8D2QH/
|
||||
A9kB/wPZAf8D7AH/A/4Z/wP+Af8BswHbAbQB/wE7AakBPQH/ATgBqAE6Af8BNgGkATkB/wG5AeABugH/
|
||||
AZoB0gGbAf8BMgGjATQB/wE7AakBPQH/ATIBowE0Af8BHAGQAR4B/wF8AcIBfQH/AfQB8AH0Af8D1gH/
|
||||
A9kB/wPZAf8D2QH/A+IB/wH1AfQB9QH/A9kB/wPZAf8D2QH/A+wB/wP+Gf8D/gH/AbMB2wG0Af8BOwGp
|
||||
AT0B/wE4AagBOgH/ATYBpAE5Af8BuQHgAboB/wGaAdIBmwH/ATIBowE0Af8BOwGpAT0B/wEyAaMBNAH/
|
||||
ARwBkAEeAf8BfAHCAX0B/wH0AfAB9AH/A9YB/wPZAf8D2QH/A9kB/wPiAf8B9QH0AfUB/wPZAf8D2QH/
|
||||
A9kB/wPsAf8D/h3/A/4B/wHBAeIBwgH/AUsBsAFNAf8BbQHAAW8B/wHSAeoB0gH/AUMBqwFFAf8BOwGp
|
||||
AT0B/wE7AakBPQH/ATsBqQE9Af8BLgGiATIB/wGJAcgBigH/AfQB8AH0Af8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPxAf8D6QH/A9kB/wPxAf8D/iH/A/4B/wHBAeIBwgH/AUsBsAFNAf8BbQHAAW8B/wHSAeoB0gH/
|
||||
AUMBqwFFAf8BOwGpAT0B/wE7AakBPQH/ATsBqQE9Af8BLgGiATIB/wGJAcgBigH/AfQB8AH0Af8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPxAf8D6QH/A9kB/wPxAf8D/iH/A/4B/wHBAeIBwgH/AUsBsAFNAf8BbQHA
|
||||
AW8B/wHSAeoB0gH/AUMBqwFFAf8BOwGpAT0B/wE7AakBPQH/ATsBqQE9Af8BLgGiATIB/wGJAcgBigH/
|
||||
AfQB8AH0Af8D2QH/A9kB/wPZAf8D2QH/A9kB/wPxAf8D6QH/A9kB/wPxAf8D/iH/A/4B/wHBAeIBwgH/
|
||||
AUsBsAFNAf8BbQHAAW8B/wHSAeoB0gH/AUMBqwFFAf8BOwGpAT0B/wE7AakBPQH/ATsBqQE9Af8BMgGj
|
||||
ATQB/wGJAcgBigH/AfQB8AH0Af8D2QH/A9kB/wPZAf8D2QH/A9kB/wPxAf8D6QH/A9kB/wPxAf8D/iX/
|
||||
A/4B/wHgAfEB4QH/AdwB8AHdAf8BfAHCAX0B/wEpAaABLAH/ATsBqQE9Af8BOwGpAT0B/wE7AakBPQH/
|
||||
AS4BogEyAf8BiQHIAYoB/wH0AfAB9AH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D4gH/A/kB/wP5Af8D/in/
|
||||
A/4B/wHgAfEB4QH/AdwB8AHdAf8BfAHCAX0B/wEpAaABLAH/ATsBqQE9Af8BOwGpAT0B/wE7AakBPQH/
|
||||
AS4BogEyAf8BiQHIAYoB/wH0AfAB9AH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D4gH/A/kB/wP5Af8D/in/
|
||||
A/4B/wHgAfEB4QH/AdwB8AHdAf8BfAHCAX0B/wEpAaABLAH/ATsBqQE9Af8BOwGpAT0B/wE7AakBPQH/
|
||||
AS4BogEyAf8BiQHIAYoB/wH0AfAB9AH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D4gH/A/kB/wP5Af8D/in/
|
||||
A/4B/wHgAfEB4QH/AdwB8AHdAf8BfAHCAX0B/wEpAaABLAH/ATsBqQE9Af8BOwGpAT0B/wE7AakBPQH/
|
||||
AS4BogEyAf8BiQHIAYoB/wH0AfAB9AH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D4gH/A/kB/wP5Af8D/i3/
|
||||
A/4B/wP+Af8BzgHrAdAB/wGEAcgBhgH/AUsBsAFNAf8BOAGoAToB/wEuAaIBMgH/AScBoAEpAf8BhAHI
|
||||
AYYB/wHxAewB8QH/A9YB/wPWAf8D2QH/A9wB/wPiAf8B9AHwAfQB/wP+Af8D/jH/A/4B/wP+Af8BzgHr
|
||||
AdAB/wGEAcgBhgH/AUsBsAFNAf8BOAGoAToB/wEuAaIBMgH/AScBoAEpAf8BhAHIAYYB/wH0AfAB9AH/
|
||||
A9YB/wPWAf8D2QH/A9wB/wPiAf8B9QH0AfUB/wP+Af8D/jH/A/4B/wP+Af8BzgHrAdAB/wGEAcgBhgH/
|
||||
AUsBsAFNAf8BOAGoAToB/wEuAaIBMgH/AScBoAEpAf8BhAHIAYYB/wHxAewB8QH/A9YB/wPWAf8D2QH/
|
||||
A9wB/wPiAf8B9QH0AfUB/wP+Af8D/jH/A/4B/wP+Af8BzgHrAdAB/wGEAcgBhgH/AUsBsAFNAf8BOAGo
|
||||
AToB/wEuAaIBMgH/AScBoAEpAf8BhAHIAYYB/wHxAewB8QH/A9YB/wPWAf8D2QH/A9wB/wPiAf8B9QH0
|
||||
AfUB/wP+Af8D/jn/A/4B/wP+Af8B8AH5AfEB/wG5AeABugH/AZIB0AGTAf8BbQHAAW8B/wGkAdgBpQH/
|
||||
AfQB8AH0Af8D4gH/A+kB/wPxAf8D+QH/A/4B/wP+Qf8D/gH/A/4B/wHqAfgB6wH/AbkB4AG6Af8BkgHQ
|
||||
AZMB/wFtAcABbwH/AaQB2AGlAf8B9AHwAfQB/wPiAf8D6QH/A/EB/wP5Af8D/gH/A/5B/wP+Af8D/gH/
|
||||
AeoB+AHrAf8BuQHgAboB/wGSAdABkwH/AW0BwAFvAf8BpAHYAaUB/wH0AfAB9AH/A+IB/wPpAf8D8QH/
|
||||
A/kB/wP+Af8D/kH/A/4B/wP+Af8B6gH4AesB/wG5AeABugH/AZIB0AGTAf8BbQHAAW8B/wGkAdgBpQH/
|
||||
AfQB8AH0Af8D4gH/A+kB/wPxAf8D+QH/A/4B/wP+Qf8D/gH/A/4B/wHgAfgB4gH/AbQB7AG4Af8BkAHm
|
||||
AZYB/wFsAdsBdAH/AbEB8QG1Af8BoAHRAaEB/wFCAaIBRAH/AWoBtAFrAf8BmQHLAZkB/wHbAewB2wH/
|
||||
A/4B/wP+Qf8D/gH/A/4B/wHbAewB2wH/AaAB0QGhAf8BcgG8AXQB/wFJAaUBTAH/AZkBywGZAf8BqgHS
|
||||
AasB/wFCAaIBRAH/AWoBtAFrAf8BmQHLAZkB/wHbAewB2wH/A/4B/wP+Qf8D/gH/A/4B/wHcAfAB3QH/
|
||||
AaAB0QGhAf8BcgG8AXQB/wFJAaUBTAH/AZkBywGZAf8BqgHSAasB/wFCAaIBRAH/AWoBtAFrAf8BmQHL
|
||||
AZkB/wHbAewB2wH/A/4B/wP+Qf8D/gH/A/4B/wHcAfAB3QH/AaAB0QGhAf8BcgG8AXQB/wFJAaUBTAH/
|
||||
AZkBywGZAf8BqgHSAasB/wFCAaIBRAH/AWoBtAFrAf8BmQHLAZkB/wHbAewB2wH/A/4B/wP+Of8D/gH/
|
||||
A/4B/wHNAfMB0AH/AYMB4QGJAf8BWgHdAWMB/wFLAdkBVAH/AUkB0gFSAf8BQgHQAUsB/wGhAeoBpgH/
|
||||
AZIByQGTAf8BCgGDAQwB/wETAYgBFQH/ARMBiAEVAf8BIgGSASQB/wFZAawBWwH/AbMB2wG0Af8D/gH/
|
||||
A/4x/wP+Af8D/gH/Ab8B4AHAAf8BYQGxAWIB/wEqAZoBLQH/ARoBjAEcAf8BFwGMARkB/wEQAYgBEQH/
|
||||
AYUBwgGGAf8BkgHJAZMB/wEKAYMBDAH/ARMBiAEVAf8BEwGIARUB/wEiAZIBJAH/AVkBrAFbAf8BswHb
|
||||
AbQB/wP+Af8D/jH/A/4B/wP+Af8BvwHgAcAB/wFhAbEBYgH/ASoBmgEtAf8BGgGMARwB/wEXAYwBGQH/
|
||||
ARABiAERAf8BhQHCAYYB/wGSAckBkwH/AQoBgwEMAf8BEwGIARUB/wETAYgBFQH/ASIBkgEkAf8BWQGs
|
||||
AVsB/wGzAdsBtAH/A/4B/wP+Mf8D/gH/A/4B/wHBAeIBwgH/AWEBsQFiAf8BKgGaAS0B/wEcAZABHgH/
|
||||
ARcBjAEZAf8BEAGIAREB/wGFAcIBhgH/AZYByQGYAf8BCgGDAQwB/wETAYgBFQH/ARMBiAEVAf8BIgGS
|
||||
ASQB/wFZAawBWwH/AbMB2wG0Af8D/gH/A/4t/wP+Af8B9QH0AfUB/wH4AfIB+AH/AakB6QGtAf8BSwHZ
|
||||
AVQB/wFVAdsBXgH/AVUB2wFeAf8BVQHbAV4B/wFJAdIBUgH/AaQB6wGpAf8BlgHJAZgB/wETAYgBFQH/
|
||||
ASIBkgEkAf8BHwGSASEB/wEaAYwBHAH/AQoBgwEMAf8BagG0AWsB/wHJAeIByQH/AcEB4gHCAf8D/in/
|
||||
A/4B/wHJAeIByQH/AbkB4AG6Af8BkgHJAZMB/wETAYgBFQH/ASIBkgEkAf8BIgGSASQB/wEiAZIBJAH/
|
||||
ARcBjAEZAf8BiQHCAYoB/wGZAcsBmQH/ARMBiAEVAf8BIgGSASQB/wEfAZIBIQH/ARoBjAEcAf8BCgGD
|
||||
AQwB/wFqAbQBawH/AckB4gHJAf8BwQHiAcIB/wP+Kf8D/gH/AckB4gHJAf8BvwHgAcAB/wGSAckBkwH/
|
||||
ARMBiAEVAf8BIgGSASQB/wEiAZIBJAH/ASIBkgEkAf8BFwGMARkB/wGJAcIBigH/AZkBywGZAf8BEwGI
|
||||
ARUB/wEiAZIBJAH/ASIBkgEkAf8BGgGMARwB/wEKAYMBDAH/AWoBtAFrAf8ByQHiAckB/wHBAeIBwgH/
|
||||
A/4p/wP+Af8ByQHiAckB/wG5AeABugH/AZIByQGTAf8BEwGIARUB/wEiAZIBJAH/ASIBkgEkAf8BIgGS
|
||||
ASQB/wEXAYwBGQH/AYkBwgGKAf8BmQHLAZkB/wETAYgBFQH/ASIBkgEkAf8BHwGSASEB/wEaAYwBHAH/
|
||||
AQoBgwEMAf8BagG0AWsB/wHJAeIByQH/AcEB4gHCAf8D/iX/A/4B/wPxAf8D2QH/A9wB/wHvAfwB8AH/
|
||||
AXUB5QF9Af8BVQHbAV4B/wFaAd0BYwH/AVUB2wFeAf8BSQHSAVIB/wGkAesBqQH/AZIByQGTAf8BEwGI
|
||||
ARUB/wEiAZIBJAH/ASIBkgEkAf8BGgGMARwB/wEsAZUBLgH/AdAB5wHQAf8BSQGlAUwB/wEaAYwBHAH/
|
||||
AZkBywGZAf8D/iH/A/4B/wGrAdgBrAH/AS4BnAExAf8BOQGhATsB/wHXAeoB2AH/AU8BqgFRAf8BIgGS
|
||||
ASQB/wEnAZYBKQH/AScBlgEpAf8BFwGMARkB/wGJAcIBigH/AZkBywGZAf8BEwGIARUB/wEiAZIBJAH/
|
||||
ASIBkgEkAf8BGgGMARwB/wEsAZUBLgH/AdAB5wHQAf8BSQGlAUwB/wEaAYwBHAH/AZkBywGZAf8D/iH/
|
||||
A/4B/wGrAdgBrAH/AS4BnAExAf8BOQGhATsB/wHXAeoB2AH/AU8BqgFRAf8BIgGSASQB/wEnAZYBKQH/
|
||||
ASIBkgEkAf8BFwGMARkB/wGJAcIBigH/AZkBywGZAf8BEwGIARUB/wEiAZIBJAH/ASIBkgEkAf8BGgGM
|
||||
ARwB/wEsAZUBLgH/AdAB5wHQAf8BSQGlAUwB/wEaAYwBHAH/AZkBywGZAf8D/iH/A/4B/wGrAdgBrAH/
|
||||
AS4BnAExAf8BOQGhATsB/wHXAeoB2AH/AU8BqgFRAf8BIgGSASQB/wEnAZYBKQH/AScBlgEpAf8BFwGM
|
||||
ARkB/wGJAcIBigH/AZkBywGZAf8BEwGIARUB/wEiAZIBJAH/ASIBkgEkAf8BGgGMARwB/wEsAZUBLgH/
|
||||
AdAB5wHQAf8BSQGlAUwB/wEaAYwBHAH/AZkBywGZAf8D/h3/A/4B/wPsAf8D2QH/A9kB/wPZAf8B8QHs
|
||||
AfEB/wHFAfIByAH/AVUB2wFeAf8BWgHdAWMB/wFaAeABYwH/AVoB4AFjAf8BsQH7AbYB/wGZAcsBmQH/
|
||||
ARwBkAEeAf8BJwGWASkB/wEiAZIBJAH/ARMBiAEVAf8BlgHJAZgB/wGqAdIBqwH/ARMBiAEVAf8BGgGM
|
||||
ARwB/wETAYgBFQH/AYcBwgGIAf8D/hn/A/4B/wGaAdIBmwH/ASMBmQEmAf8BJgGYASkB/wEfAZIBIQH/
|
||||
AZIByQGTAf8BuAHdAbkB/wEiAZIBJAH/AScBlgEpAf8BJgGYASkB/wEcAZABHgH/AYkByAGKAf8BmgHS
|
||||
AZsB/wEcAZABHgH/AScBlgEpAf8BIgGSASQB/wETAYgBFQH/AZYByQGYAf8BqgHSAasB/wETAYgBFQH/
|
||||
ARoBjAEcAf8BEgGEARQB/wGHAcIBiAH/A/4Z/wP+Af8BmgHSAZsB/wEjAZkBJgH/ASYBmAEpAf8BHwGS
|
||||
ASEB/wGSAckBkwH/AbgB3QG5Af8BIgGSASQB/wEnAZYBKQH/ASYBmAEpAf8BHAGQAR4B/wGJAcgBigH/
|
||||
AZoB0gGbAf8BHAGQAR4B/wEnAZYBKQH/ASIBkgEkAf8BEwGIARUB/wGWAckBmAH/AaoB0gGrAf8BEwGI
|
||||
ARUB/wEaAYwBHAH/ARIBhAEUAf8BhwHCAYgB/wP+Gf8D/gH/AZoB0gGbAf8BIwGZASYB/wEmAZgBKQH/
|
||||
AR8BkgEhAf8BkgHJAZMB/wG4Ad0BuQH/ASIBkgEkAf8BJwGWASkB/wEmAZgBKQH/ARwBkAEeAf8BiQHI
|
||||
AYoB/wGaAdIBmwH/ARwBkAEeAf8BJwGWASkB/wEiAZIBJAH/ARMBiAEVAf8BlgHJAZgB/wGqAdIBqwH/
|
||||
ARMBiAEVAf8BGgGMARwB/wETAYgBFQH/AYcBwgGIAf8D/hX/A/4B/wPxAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
AdwB2gHcAf8B9QH0AfUB/wGKAewBkQH/AWcB7AFxAf8BggHxAYoB/wGaAfkBoQH/AdgB+gHbAf8BwQHi
|
||||
AcIB/wFtAcABbwH/AVIBsgFUAf8BMgGjATQB/wFTAakBVQH/AdsB7AHbAf8BPwGdAUEB/wEaAYwBHAH/
|
||||
ASIBkgEkAf8BGgGMARwB/wESAYQBFAH/AZYByQGYAf8D/hH/A/4B/wGrAdgBrAH/ASYBmAEpAf8BKgGa
|
||||
AS0B/wEqAZoBLQH/ASoBmgEtAf8BMQGdATMB/wHSAeoB0gH/AWkBuwFrAf8BIwGZASYB/wFIAa0BSwH/
|
||||
AWIBugFjAf8BuQHgAboB/wHBAeIBwgH/AW0BwAFvAf8BUgGyAVQB/wEyAaMBNAH/AVMBqQFVAf8B2wHs
|
||||
AdsB/wE/AZ0BQQH/ARoBjAEcAf8BIgGSASQB/wEaAYwBHAH/ARIBhAEUAf8BlgHJAZgB/wP+Ef8D/gH/
|
||||
AasB2AGsAf8BJgGYASkB/wEqAZoBLQH/ASoBmgEtAf8BKgGaAS0B/wExAZ0BMwH/AdIB6gHSAf8BaQG7
|
||||
AWsB/wEjAZkBJgH/AUoBrAFNAf8BYgG6AWMB/wG5AeABugH/AcEB4gHCAf8BbQHAAW8B/wFSAbIBVAH/
|
||||
ATIBowE0Af8BUwGpAVUB/wHbAewB2wH/AT8BnQFBAf8BGgGMARwB/wEiAZIBJAH/ARoBjAEcAf8BEgGE
|
||||
ARQB/wGWAckBmAH/A/4R/wP+Af8BqwHYAawB/wEmAZgBKQH/ASoBmgEtAf8BKgGaAS0B/wEqAZoBLQH/
|
||||
ATEBnQEzAf8B0gHqAdIB/wFpAbsBawH/ASMBmQEmAf8BSAGtAUsB/wFiAboBYwH/AbkB4AG6Af8BwQHi
|
||||
AcIB/wFtAcABbwH/AVIBsgFUAf8BMgGjATQB/wFTAakBVQH/AdsB7AHbAf8BPwGdAUEB/wEaAYwBHAH/
|
||||
ASIBkgEkAf8BGgGMARwB/wETAYgBFQH/AZYByQGYAf8D/g3/A/4B/wP5Af8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D4gH/AeAB+AHiAf8BxQH6AckB/wHwAfkB8QH/A/4B/wP+Af8D/gH/A/4B/wHwAfkB8QH/
|
||||
AbMB2wG0Af8BywHoAcsB/wGSAdABkwH/AR8BkgEhAf8BHwGSASEB/wEfAZIBIQH/ASEBjAEjAf8BGgGM
|
||||
ARwB/wEaAYwBHAH/AckB4gHJAf8D/gn/A/4B/wHbAewB2wH/ATIBowE0Af8BJgGYASkB/wEuAZwBMQH/
|
||||
AS4BnAExAf8BLgGcATEB/wEfAZIBIQH/AWEBsQFiAf8B0gHqAdIB/wGrAdgBrAH/AegB9QHoAf8D/gH/
|
||||
A/4B/wP+Af8D/gH/AfAB+QHxAf8BswHbAbQB/wHLAegBywH/AZIB0AGTAf8BHwGSASEB/wEfAZIBIQH/
|
||||
AR8BkgEhAf8BHwGSASEB/wEaAYwBHAH/ARoBjAEcAf8ByQHiAckB/wP+Cf8D/gH/AdwB8AHdAf8BMgGj
|
||||
ATQB/wEmAZgBKQH/AS4BnAExAf8BLgGcATEB/wEuAZwBMQH/AR8BkgEhAf8BYQGxAWIB/wHSAeoB0gH/
|
||||
AasB2AGsAf8B6AH1AegB/wP+Af8D/gH/A/4B/wP+Af8B8AH5AfEB/wGzAdsBtAH/AcsB6AHLAf8BkgHQ
|
||||
AZMB/wEfAZIBIQH/AR8BkgEhAf8BIgGSASQB/wEiAZIBJAH/ARoBjAEcAf8BGgGMARwB/wHJAeIByQH/
|
||||
A/4J/wP+Af8B3AHwAd0B/wEyAaMBNAH/ASYBmAEpAf8BLgGcATEB/wEuAZwBMQH/AS4BnAExAf8BHwGS
|
||||
ASEB/wFhAbEBYgH/AdIB6gHSAf8BqwHYAawB/wHqAfgB6wH/A/4B/wP+Af8D/gH/A/4B/wHqAfgB6wH/
|
||||
AbMB2wG0Af8BywHoAcsB/wGSAdABkwH/AR8BkgEhAf8BHwGSASEB/wEiAZIBJAH/ASEBjAEjAf8BGgGM
|
||||
ARwB/wEaAYwBHAH/AckB4gHJAf8D/gn/A/4B/wP5Af8D6QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D7AH/
|
||||
A/4B/wP+Gf8D/gH/A/4B/wGrAdgBrAH/AUUBsAFHAf8BKgGaAS0B/wEfAZIBIQH/ARcBjAEZAf8BGgGM
|
||||
ARwB/wFqAbQBawH/AdsB7AHbAf8D/gn/A/4B/wHgAfEB4QH/AYkByAGKAf8BMgGjATQB/wEjAZkBJgH/
|
||||
AS4BnAExAf8BKgGaAS0B/wEnAZYBKQH/AZIByQGTAf8D/gH/A/4Z/wP+Af8D/gH/AasB2AGsAf8BRQGw
|
||||
AUcB/wEqAZoBLQH/AR8BkgEhAf8BFwGMARkB/wEaAYwBHAH/AWoBtAFrAf8B2wHsAdsB/wP+Cf8D/gH/
|
||||
AeAB8QHhAf8BkgHJAZMB/wEyAaMBNAH/ASMBmQEmAf8BLgGcATEB/wEqAZoBLQH/AScBlgEpAf8BkgHJ
|
||||
AZMB/wP+Af8D/hn/A/4B/wP+Af8BqwHYAawB/wFFAbABRwH/ASoBmgEtAf8BHwGKASEB/wEXAYwBGQH/
|
||||
ARoBjAEcAf8BagG0AWsB/wHcAfAB3QH/A/4J/wP+Af8B4AHxAeEB/wGSAckBkwH/ATIBowE0Af8BIwGZ
|
||||
ASYB/wEuAZwBMQH/ASoBmgEtAf8BJwGWASkB/wGSAckBkwH/A/4B/wP+Gf8D/gH/A/4B/wGrAdgBrAH/
|
||||
AUUBsAFHAf8BKgGaAS0B/wEfAYoBIQH/ARcBjAEZAf8BGgGMARwB/wFqAbQBawH/AdwB8AHdAf8D/gX/
|
||||
A/4B/wPxAf8D4gH/AfUB9AH1Af8B9QH0AfUB/wPiAf8D2QH/A9kB/wPxAf8D/in/A/4B/wHBAeIBwgH/
|
||||
AUUBsAFHAf8BIgGSASQB/wFTAakBVQH/AcEB4gHCAf8ByQHiAckB/wFTAakBVQH/AaoB0gGrAf8D/gH/
|
||||
A/4B/wHRAfoB1AH/AYkB8wGQAf8B1AH8AdgB/wHSAeoB0gH/AXIBvAF0Af8BIgGSASQB/wEcAZABHgH/
|
||||
AaoB0gGrAf8D/in/A/4B/wHBAeIBwgH/AUUBsAFHAf8BIgGSASQB/wFTAakBVQH/AcEB4gHCAf8ByQHi
|
||||
AckB/wFTAakBVQH/AaoB0gGrAf8D/gH/A/4B/wG5AeABugH/AVYBsQFZAf8BwQHiAcIB/wHSAeoB0gH/
|
||||
AXIBvAF0Af8BIwGZASYB/wEcAZABHgH/AaoB0gGrAf8D/in/A/4B/wHBAeIBwgH/AUUBsAFHAf8BIgGS
|
||||
ASQB/wFTAakBVQH/AcEB4gHCAf8ByQHiAckB/wFTAakBVQH/AaoB0gGrAf8D/gH/A/4B/wG5AeABugH/
|
||||
AVIBsgFUAf8BwQHiAcIB/wHSAeoB0gH/AXIBvAF0Af8BIwGZASYB/wEcAZABHgH/AaoB0gGrAf8D/in/
|
||||
A/4B/wHBAeIBwgH/AUUBsAFHAf8BIgGSASQB/wFTAakBVQH/AcEB4gHCAf8ByQHiAckB/wFTAakBVQH/
|
||||
AaoB0gGrAf8D/gH/A/4B/wPiAf8D1gH/A9kB/wPiAf8B9QH0AfUB/wPxAf8D7AH/A/4x/wP+Af8BswHb
|
||||
AbQB/wGzAdsBtAH/AdsB7AHbAf8BeQG8AXsB/wEiAZIBJAH/AQoBgwEMAf8BUwGpAVUB/wP+Af8D/gH/
|
||||
AZ4B8wGkAf8BagHoAXQB/wFqAegBdAH/AZ4B8wGkAf8B4AH4AeIB/wGzAdsBtAH/AZkBywGZAf8D/jH/
|
||||
A/4B/wGzAdsBtAH/AbMB2wG0Af8B2wHsAdsB/wF5AbwBewH/ASIBkgEkAf8BCgGDAQwB/wFTAakBVQH/
|
||||
A/4B/wP+Af8BcgG8AXQB/wEjAZkBJgH/ASoBmgEtAf8BcAG5AXIB/wHSAeoB0gH/AbMB2wG0Af8BmQHL
|
||||
AZkB/wP+Mf8D/gH/AbMB2wG0Af8BswHbAbQB/wHbAewB2wH/AXkBvAF7Af8BIgGSASQB/wEKAYMBDAH/
|
||||
AVMBqQFVAf8D/gH/A/4B/wFyAbwBdAH/ASMBmQEmAf8BKgGaAS0B/wFwAbkBcgH/AdIB6gHSAf8BswHb
|
||||
AbQB/wGZAcsBmQH/A/4x/wP+Af8BswHbAbQB/wGzAdsBtAH/AdsB7AHbAf8BeQG8AXsB/wEiAZIBJAH/
|
||||
AQoBgwEMAf8BUwGpAVUB/wP+Af8D+QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D7AH/A/45/wP+Af8BwQHi
|
||||
AcIB/wFCAaIBRAH/ARMBiAEVAf8BHwGKASEB/wEaAYwBHAH/ASIBkgEkAf8B0gHqAdIB/wHqAfgB6wH/
|
||||
AXoB8gGBAf8BdQHxAX4B/wFxAesBegH/AWoB6AF0Af8BWgHgAWMB/wGsAeoBsAH/A/45/wP+Af8BwQHi
|
||||
AcIB/wFCAaIBRAH/ARMBiAEVAf8BHwGKASEB/wEaAYwBHAH/ASIBkgEkAf8B0gHqAdIB/wHgAfEB4QH/
|
||||
AT8BqQFBAf8BMgGjATQB/wEyAaMBNAH/ASoBmgEtAf8BJgGYASkB/wGZAcsBmQH/A/45/wP+Af8BwQHi
|
||||
AcIB/wE/AakBQQH/ARMBiAEVAf8BHwGKASEB/wEaAYwBHAH/ASIBkgEkAf8B0gHqAdIB/wHgAfEB4QH/
|
||||
AT8BqQFBAf8BMgGjATQB/wEyAaMBNAH/ASoBmgEtAf8BJgGYASkB/wGZAcsBmQH/A/45/wP+Af8BwQHi
|
||||
AcIB/wE/AakBQQH/ARMBiAEVAf8BHwGKASEB/wEaAYwBHAH/ASIBkgEkAf8B0gHqAdIB/wPxAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPsAf8D/jn/A/4B/wGzAdsBtAH/ATIBowE0Af8BIgGSASQB/wEiAZIBJAH/
|
||||
ASIBkgEkAf8BEwGIARUB/wGSAckBkwH/AcgB9AHMAf8BdQHxAX4B/wF6AfIBgQH/AXoB8gGBAf8BcQHr
|
||||
AXoB/wFAAc8BSgH/AaQB5gGoAf8D/jn/A/4B/wGzAdsBtAH/ATIBowE0Af8BIgGSASQB/wEiAZIBJAH/
|
||||
ASIBkgEkAf8BEwGIARUB/wGSAckBkwH/AasB2AGsAf8BLgGiATIB/wE2AaQBOQH/ATYBpAE5Af8BMgGj
|
||||
ATQB/wESAYQBFAH/AZIByQGTAf8D/jn/A/4B/wGzAdsBtAH/ATIBowE0Af8BIgGSASQB/wEiAZIBJAH/
|
||||
ASIBkgEkAf8BEwGIARUB/wGSAckBkwH/AasB2AGsAf8BLgGiATIB/wE2AaQBOQH/ATYBpAE5Af8BMgGj
|
||||
ATQB/wETAYgBFQH/AZIByQGTAf8D/jn/A/4B/wGzAdsBtAH/ATIBowE0Af8BIgGSASQB/wEiAZIBJAH/
|
||||
ASIBkgEkAf8BEwGIARUB/wGSAckBkwH/A+kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A/lB/wHoAfUB6AH/
|
||||
AUsBsAFNAf8BJgGYASkB/wEfAZIBIQH/AR8BkgEhAf8BEwGIARUB/wFqAbQBawH/AaoB/AGxAf8BdQHx
|
||||
AX4B/wF6AfIBgQH/AXoB8gGBAf8BaAHlAXEB/wFCAcsBSgH/AeAB8QHhQf8B6AH1AegB/wFLAbABTQH/
|
||||
ASYBmAEpAf8BHwGSASEB/wEfAZIBIQH/ARMBiAEVAf8BagG0AWsB/wGEAcgBhgH/ASkBoAEsAf8BNgGk
|
||||
ATkB/wE2AaQBOQH/ASoBmgEtAf8BIgGSASQB/wHbAewB20H/AegB9QHoAf8BSwGwAU0B/wEmAZgBKQH/
|
||||
ASIBkgEkAf8BIgGSASQB/wETAYgBFQH/AWoBtAFrAf8BhAHIAYYB/wEpAaABLAH/ATYBpAE5Af8BNgGk
|
||||
ATkB/wEqAZoBLQH/ASEBjAEjAf8B2wHsAdtB/wHoAfUB6AH/AUsBsAFNAf8BJgGYASkB/wEiAZIBJAH/
|
||||
ASIBkgEkAf8BEwGIARUB/wFqAbQBawH/A+IB/wPZAf8D2QH/A9kB/wPZAf8D4gH/A/5B/wP+Af8BbQHA
|
||||
AW8B/wEmAZgBKQH/AR8BigEhAf8BHwGSASEB/wEXAYwBGQH/AUkBpQFMAf8BmgH5AaEB/wF4AfIBgQH/
|
||||
AXoB8gGBAf8BegHyAYEB/wFaAeABYwH/AVkBzwFhAf8B+QH8AflB/wP+Af8BbQHAAW8B/wEmAZgBKQH/
|
||||
AR8BigEhAf8BHwGSASEB/wEXAYwBGQH/AUkBpQFMAf8BaQG7AWsB/wEuAaIBMgH/ATYBpAE5Af8BNgGk
|
||||
ATkB/wEiAZIBJAH/AT8BnQFBAf8B+QH8AflB/wP+Af8BbQHAAW8B/wEmAZgBKQH/AR8BigEhAf8BIgGS
|
||||
ASQB/wEXAYwBGQH/AUkBpQFMAf8BaQG7AWsB/wEuAaIBMgH/ATYBpAE5Af8BNgGkATkB/wEiAZIBJAH/
|
||||
AT4BmwFAAf8B+QH8AflB/wP+Af8BbQHAAW8B/wEjAZkBJgH/AR8BigEhAf8BHwGSASEB/wEXAYwBGQH/
|
||||
AUkBpQFMAf8B9QH0AfUB/wPxAf8D8QH/A/EB/wPxAf8B9QH0AfUB/wP+Qf8D/gH/AdIB6gHSAf8BuAHd
|
||||
AbkB/wGzAdsBtAH/AbMB2wG0Af8BswHbAbQB/wHBAeIBwgH/Ad0B+wHgAf8B0QH6AdQB/wHRAfoB1AH/
|
||||
AdQB/AHYAf8ByAH0AcwB/wHIAfQBzAH/A/5B/wP+Af8B0gHqAdIB/wG5AeABugH/AbMB2wG0Af8BswHb
|
||||
AbQB/wGzAdsBtAH/AcEB4gHCAf8ByQHiAckB/wG5AeABugH/AbkB4AG6Af8BuQHgAboB/wGzAdsBtAH/
|
||||
AcEB4gHCAf8D/kH/A/4B/wHSAeoB0gH/AbkB4AG6Af8BswHbAbQB/wGzAdsBtAH/AbMB2wG0Af8BvwHg
|
||||
AcAB/wHJAeIByQH/AbkB4AG6Af8BuQHgAboB/wG5AeABugH/AbMB2wG0Af8BwQHiAcIB/wP+Qf8D/gH/
|
||||
AdIB6gHSAf8BuAHdAbkB/wGzAdsBtAH/AbMB2wG0Af8BswHbAbQB/wHBAeIBwgH/A+kB/wPiAf8D4gH/
|
||||
A+IB/wPiAf8D7AH/A/5B/wP+Af8BpAHYAaUB/wFwAbkBcgH/AWoBtAFrAf8BagG0AWsB/wFqAbQBawH/
|
||||
AX8BvAGBAf8B7QHoAe0B/wHoAeQB6AH/AegB5AHoAf8B6AHkAegB/wHoAeQB6AH/AfEB7AHxAf8D/kH/
|
||||
A/4B/wGkAdgBpQH/AXABuQFyAf8BagG0AWsB/wFqAbQBawH/AWoBtAFrAf8BfwG8AYEB/wGSAdABkwH/
|
||||
AXwBwgF9Af8BfAHCAX0B/wF8AcIBfQH/AWkBuwFrAf8BiQHCAYoB/wP+Qf8D/gH/AaQB2AGlAf8BcAG5
|
||||
AXIB/wFqAbQBawH/AWoBtAFrAf8BagG0AWsB/wF/AcEBgQH/AZIB0AGTAf8BfAHCAX0B/wF8AcIBfQH/
|
||||
AXwBwgF9Af8BaQG7AWsB/wGJAcIBigH/A/5B/wP+Af8BpAHYAaUB/wFwAbkBcgH/AWoBtAFrAf8BagG0
|
||||
AWsB/wFqAbQBawH/AX8BvAGBAf8D4gH/A9YB/wPZAf8D2QH/A9YB/wPcAf8D/kH/A/4B/wFiAboBYwH/
|
||||
AR8BkgEhAf8BGgGMARwB/wEcAZABHgH/ARMBiAEVAf8BSQGlAUwB/wPiAf8D1gH/A9kB/wPZAf8D1gH/
|
||||
A9wB/wP+Qf8B+QH8AfkB/wFiAboBYwH/AR8BkgEhAf8BGgGMARwB/wEcAZABHgH/ARMBiAEVAf8BSQGl
|
||||
AUwB/wFpAbsBawH/ASkBoAEsAf8BMgGjATQB/wEyAaMBNAH/ARwBkAEeAf8BNAGVATYB/wH5AfwB+UH/
|
||||
AfkB/AH5Af8BYgG6AWMB/wEfAZIBIQH/ARoBjAEcAf8BHAGQAR4B/wETAYgBFQH/AUkBpQFMAf8BaQG7
|
||||
AWsB/wEpAaABLAH/ATIBowE0Af8BMgGjATQB/wEcAZABHgH/ATQBlQE2Af8B+QH8AflB/wH7Af4B/AH/
|
||||
AWIBugFjAf8BHwGSASEB/wEaAYwBHAH/ARwBkAEeAf8BEwGIARUB/wFJAaUBTAH/A+kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A/lB/wHgAfEB4QH/AUMBqwFFAf8BKgGaAS0B/wEiAZIBJAH/ASIBkgEkAf8BGgGM
|
||||
ARwB/wFwAbkBcgH/A+kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A/lB/wHgAfEB4QH/AUMBqwFFAf8BKgGa
|
||||
AS0B/wEiAZIBJAH/ASIBkgEkAf8BFwGMARkB/wFwAbkBcgH/AYkByAGKAf8BMgGjATQB/wE7AakBPQH/
|
||||
ATsBqQE9Af8BMgGjATQB/wEfAYoBIQH/AdcB6gHYQf8B5wH1AegB/wFDAasBRQH/ASoBmgEtAf8BIgGS
|
||||
ASQB/wEiAZIBJAH/ARcBjAEZAf8BcAG5AXIB/wGJAcgBigH/ATIBowE0Af8BOwGpAT0B/wE7AakBPQH/
|
||||
ATIBowE0Af8BHwGKASEB/wHXAeoB2EH/AeAB8QHhAf8BQwGrAUUB/wEqAZoBLQH/ASIBkgEkAf8BIgGS
|
||||
ASQB/wEXAYwBGQH/AXABuQFyAf8D8QH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D7AH/A/45/wP+Af8BqwHY
|
||||
AawB/wEjAZkBJgH/AScBlgEpAf8BJwGWASkB/wEnAZYBKQH/ARoBjAEcAf8BmQHLAZkB/wPxAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9YB/wPsAf8D/jn/A/4B/wGrAdgBrAH/ASMBmQEmAf8BJwGWASkB/wEnAZYBKQH/
|
||||
AScBlgEpAf8BGgGMARwB/wGZAcsBmQH/AbMB2wG0Af8BMgGjATQB/wE7AakBPQH/ATsBqQE9Af8BOwGp
|
||||
AT0B/wEKAYMBDAH/AYkBwgGKAf8D/jn/A/4B/wGrAdgBrAH/ASMBmQEmAf8BJwGWASkB/wEnAZYBKQH/
|
||||
AScBlgEpAf8BGgGMARwB/wGZAcsBmQH/AbMB2wG0Af8BMgGjATQB/wE7AakBPQH/ATsBqQE9Af8BOwGp
|
||||
AT0B/wEKAYMBDAH/AYkBwgGKAf8D/jn/A/4B/wGrAdgBrAH/ASMBmQEmAf8BJwGWASkB/wEnAZYBKQH/
|
||||
AScBlgEpAf8BGgGMARwB/wGZAcsBmQH/A/4B/wPcAf8D2QH/A9kB/wPZAf8D4gH/AfUB9AH1Af8D/jn/
|
||||
AfkB/AH5Af8B2wHsAdsB/wF/AcEBgQH/AScBlgEpAf8BHwGSASEB/wEiAZIBJAH/ASoBmgEtAf8B2wHs
|
||||
AdsB/wP5Af8D3AH/A9kB/wPZAf8D2QH/A+IB/wH1AfQB9QH/A/45/wH5AfwB+QH/AdsB7AHbAf8BfwHB
|
||||
AYEB/wEnAZYBKQH/AR8BkgEhAf8BIgGSASQB/wEqAZoBLQH/AdsB7AHbAf8B5wH1AegB/wFKAawBTQH/
|
||||
ATsBqQE9Af8BMgGjATQB/wEyAaMBNAH/AWEBsQFiAf8ByQHiAckB/wP+Of8B+QH8AfkB/wHbAewB2wH/
|
||||
AX8BwQGBAf8BJwGWASkB/wEfAZIBIQH/ASIBkgEkAf8BKgGaAS0B/wHbAewB2wH/AeAB8QHhAf8BSwGw
|
||||
AU0B/wE7AakBPQH/ATIBowE0Af8BMgGjATQB/wFnAbYBaQH/AckB4gHJAf8B+QH8Afk5/wH5AfwB+QH/
|
||||
AdsB7AHbAf8BfwHBAYEB/wEnAZYBKQH/AR8BkgEhAf8BIgGSASQB/wEqAZoBLQH/AdsB7AHbAf8D/gH/
|
||||
A+IB/wPWAf8D4gH/A/EB/wP5Af8D4gH/A+kB/wP+Mf8D/gH/AYkByAGKAf8BWwGxAV0B/wHSAeoB0gH/
|
||||
AckB4gHJAf8BWwGxAV0B/wETAYgBFQH/AWEBsQFiAf8D/gH/A/4B/wPiAf8D1gH/A+IB/wPxAf8D+QH/
|
||||
A+IB/wPpAf8D/jH/A/4B/wGJAcgBigH/AVsBsQFdAf8B0gHqAdIB/wHJAeIByQH/AVsBsQFdAf8BEwGI
|
||||
ARUB/wFhAbEBYgH/A/4B/wP+Af8BfAHCAX0B/wEpAaABLAH/AVsBsQFdAf8BuQHgAboB/wHqAfgB6wH/
|
||||
AYMB4QGJAf8BhQHaAYoB/wP+Mf8D/gH/AYkByAGKAf8BWwGxAV0B/wHSAeoB0gH/AckB4gHJAf8BWwGx
|
||||
AV0B/wETAYgBFQH/AWEBsQFiAf8D/gH/A/4B/wF8AcIBfQH/ASkBoAEsAf8BWwGxAV0B/wG5AeABugH/
|
||||
AeAB8QHhAf8BYQGxAWIB/wF0AbUBdQH/A/4x/wP+Af8BiQHIAYoB/wFbAbEBXQH/AdIB6gHSAf8ByQHi
|
||||
AckB/wFbAbEBXQH/ARMBiAEVAf8BYQGxAWIB/wP+Af8D/gH/AfUB9AH1Af8D7AH/A/kB/wPsAf8D3AH/
|
||||
A9kB/wPZAf8D7AH/A/4p/wP+Af8BoAHRAaEB/wEjAZkBJgH/ASIBkgEkAf8BKgGaAS0B/wF8AcIBfQH/
|
||||
AdIB6gHSAf8BoAHRAaEB/wHBAeIBwgH/A/4B/wP+Af8B9QH0AfUB/wPsAf8D+QH/A+wB/wPcAf8D2QH/
|
||||
A9kB/wPsAf8D/in/A/4B/wGgAdEBoQH/ASIBkgEkAf8BIgGSASQB/wEqAZoBLQH/AXwBwgF9Af8B0gHq
|
||||
AdIB/wGgAdEBoQH/AcEB4gHCAf8D/gH/A/4B/wHLAegBywH/AZoB0gGbAf8B4AH4AeIB/wHFAfoByQH/
|
||||
AZIB+wGZAf8BagHoAXQB/wE1AcUBPgH/AZsB4gGgAf8D/in/A/4B/wGgAdEBoQH/ASMBmQEmAf8BIgGS
|
||||
ASQB/wEqAZoBLQH/AXwBwgF9Af8B0gHqAdIB/wGgAdEBoQH/AcEB4gHCAf8D/gH/A/4B/wHOAesB0AH/
|
||||
AZoB0gGbAf8B3AHwAd0B/wGaAdIBmwH/AUUBsAFHAf8BJgGYASkB/wESAYQBFAH/AZABxQGRAf8D/in/
|
||||
A/4B/wGgAdEBoQH/ASMBmQEmAf8BIgGSASQB/wEqAZoBLQH/AXwBwgF9Af8B0gHqAdIB/wGgAdEBoQH/
|
||||
AcEB4gHCAf8D/gX/A/4B/wH1AfQB9QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+kB/wP+Af8D/hn/
|
||||
A/4B/wP+Af8BmQHLAZkB/wEcAZABHgH/ASoBmgEtAf8BLgGcATEB/wEqAZoBLQH/AR8BkgEhAf8BLgGc
|
||||
ATEB/wG4Ad0BuQH/A/4J/wP+Af8B9QH0AfUB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPpAf8D/gH/
|
||||
A/4Z/wP+Af8D/gH/AZkBywGZAf8BHAGQAR4B/wEqAZoBLQH/AS4BnAExAf8BKgGaAS0B/wEfAZIBIQH/
|
||||
AS4BnAExAf8BuAHdAbkB/wP+Cf8D/gH/AeoB+AHrAf8BkgH7AZkB/wGDAfkBjAH/AYMB+QGMAf8BiQH6
|
||||
AZEB/wFqAegBdAH/ATUBxQE+Af8BjwHdAZQB/wP+Af8D/hn/A/4B/wP+Af8BmQHLAZkB/wEcAZABHgH/
|
||||
ASoBmgEtAf8BLgGcATEB/wEqAZoBLQH/AR8BkgEhAf8BLgGcATEB/wG4Ad0BuQH/A/4J/wP+Af8B0gHq
|
||||
AdIB/wFSAbIBVAH/ATIBowE0Af8BOwGpAT0B/wE/AakBQQH/AS4BnAExAf8BEgGEARQB/wF/AbwBgQH/
|
||||
A/4B/wP+Gf8D/gH/A/4B/wGZAcsBmQH/ARwBkAEeAf8BKgGaAS0B/wEuAZwBMQH/ASoBmgEtAf8BHwGS
|
||||
ASEB/wEuAZwBMQH/AbgB3QG5Af8D/gn/A/4B/wP5Af8D3AH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D6QH/
|
||||
A/EB/wPsAf8D+QH/A/4B/wP+Af8D/gH/AfkB/AH5Af8B4AHvAeAB/wGJAcIBigH/AZYByQGYAf8BqgHS
|
||||
AasB/wEjAZkBJgH/AS4BnAExAf8BLgGcATEB/wEqAZoBLQH/ASYBmAEpAf8BMQGdATMB/wHSAeoB0gH/
|
||||
A/4J/wP+Af8D+QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D1gH/A+kB/wPxAf8D7AH/A/kB/wP+Af8D/gH/
|
||||
A/4B/wH5AfwB+QH/AeAB7wHgAf8BiQHCAYoB/wGWAckBmAH/AaoB0gGrAf8BIwGZASYB/wEuAZwBMQH/
|
||||
AS4BnAExAf8BKgGaAS0B/wEmAZgBKQH/AS4BnAExAf8B0gHqAdIB/wP+Cf8D/gH/AeoB+AHrAf8BkgH7
|
||||
AZkB/wGDAfkBjAH/AYkB+gGRAf8BiQH6AZEB/wGJAfoBkQH/AWoB6AF0Af8BmAHlAZwB/wH1AfQB9QH/
|
||||
A+wB/wP5Af8D/gH/A/4B/wP+Af8B+QH8AfkB/wHgAfEB4QH/AYkBwgGKAf8BlgHJAZgB/wGqAdIBqwH/
|
||||
ASMBmQEmAf8BLgGcATEB/wEuAZwBMQH/ASoBmgEtAf8BJgGYASkB/wEuAZwBMQH/AdIB6gHSAf8D/gn/
|
||||
A/4B/wHgAfEB4QH/AUsBsAFNAf8BOAGoAToB/wE/AakBQQH/ATsBqQE9Af8BPwGpAUEB/wEjAZkBJgH/
|
||||
AYkBwgGKAf8BqgHSAasB/wGCAb0BgwH/AdsB7AHbAf8B+QH8AfkB/wP+Af8D/gH/A/4B/wHgAfEB4QH/
|
||||
AZ4B8wGkAf8BqQHpAa0B/wGqAdIBqwH/ASIBkgEkAf8BLgGcATEB/wEuAZwBMQH/ASoBmgEtAf8BJgGY
|
||||
ASkB/wEuAZwBMQH/AdIB6gHSAf8D/g3/A/4B/wPxAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wP5Af8D3AH/
|
||||
A9YB/wPZAf8D3AH/AfgB8gH4Af8BqgHSAasB/wE0AZUBNgH/ASEBjAEjAf8BEwGIARUB/wEqAZoBLQH/
|
||||
AdIB6gHSAf8BcgG8AXQB/wEmAZgBKQH/AS4BnAExAf8BKgGaAS0B/wEmAZgBKQH/AasB2AGsAf8D/hH/
|
||||
A/4B/wPxAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wP5Af8D3AH/A9YB/wPZAf8D3AH/AfgB8gH4Af8BqgHS
|
||||
AasB/wE0AZUBNgH/ASEBjAEjAf8BEwGIARUB/wEqAZoBLQH/AdIB6gHSAf8BcgG8AXQB/wEmAZgBKQH/
|
||||
AS4BnAExAf8BKgGaAS0B/wEmAZgBKQH/AasB2AGsAf8D/hH/A/4B/wHYAfoB2wH/AYkB+gGRAf8BiQH6
|
||||
AZEB/wGJAfoBkQH/AYMB+QGMAf8BmgH5AaEB/wHwAfkB8QH/AeEB3gHhAf8D1gH/AdwB2gHcAf8D3AH/
|
||||
AfgB8gH4Af8BqgHSAasB/wE0AZUBNgH/ASEBjAEjAf8BEwGIARUB/wEqAZoBLQH/AdIB6gHSAf8BcgG8
|
||||
AXQB/wEmAZgBKQH/AS4BnAExAf8BKgGaAS0B/wEmAZgBKQH/AasB2AGsAf8D/hH/A/4B/wG5AeABugH/
|
||||
ATsBqQE9Af8BOwGpAT0B/wE/AakBQQH/ATYBpAE5Af8BXwG6AWEB/wHgAfEB4QH/AUIBogFEAf8BEAGI
|
||||
AREB/wEfAYoBIQH/ATQBlQE2Af8BmQHLAZkB/wG5AewBvAH/AUwBzQFUAf8BTAHNAVQB/wFMAc0BVAH/
|
||||
AWIB4gFsAf8B4AH4AeIB/wFyAbwBdAH/ASYBmAEpAf8BLgGcATEB/wEqAZoBLQH/ASYBmAEpAf8BqwHY
|
||||
AawB/wP+Ff8D/gH/A/EB/wPZAf8D2QH/A9kB/wPxAf8D7AH/A9kB/wPZAf8D2QH/A9YB/wHxAewB8QH/
|
||||
AZIByQGTAf8BFwGRARoB/wEuAZwBMQH/ATIBowE0Af8BKgGaAS0B/wFyAbwBdAH/AdIB6gHSAf8BMgGj
|
||||
ATQB/wEmAZgBKQH/ASoBmgEtAf8BoAHRAaEB/wP+Gf8D/gH/A/EB/wPZAf8D2QH/A9kB/wPxAf8D7AH/
|
||||
A9kB/wPZAf8D2QH/A9YB/wHxAewB8QH/AZIByQGTAf8BFwGRARoB/wEuAZwBMQH/ATIBowE0Af8BKgGa
|
||||
AS0B/wFyAbwBdAH/AdIB6gHSAf8BMgGjATQB/wEmAZgBKQH/ASoBmgEtAf8BoAHRAaEB/wP+Gf8D/gH/
|
||||
AdEB+gHUAf8BiQH6AZEB/wGDAfkBjAH/AYMB+QGMAf8B0QH6AdQB/wHxAewB8QH/A9kB/wPZAf8D2QH/
|
||||
A9YB/wHxAewB8QH/AZIByQGTAf8BFwGRARoB/wEuAZwBMQH/ATIBowE0Af8BKgGaAS0B/wFyAbwBdAH/
|
||||
AdIB6gHSAf8BMgGjATQB/wEmAZgBKQH/ASoBmgEtAf8BoAHRAaEB/wP+Gf8D/gH/AbMB2wG0Af8BOwGp
|
||||
AT0B/wE4AagBOgH/ATYBpAE5Af8BuQHgAboB/wGaAdIBmwH/ATIBowE0Af8BOwGpAT0B/wEyAaMBNAH/
|
||||
ARwBkAEeAf8BhQHCAYYB/wG0AfMBuAH/AVQB4AFdAf8BagHoAXQB/wFxAesBegH/AWoB6AF0Af8BngHz
|
||||
AaQB/wHSAeoB0gH/ATIBowE0Af8BJgGYASkB/wEqAZoBLQH/AaAB0QGhAf8D/h3/A/4B/wPxAf8D3AH/
|
||||
A+IB/wH1AfQB9QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8B8QHsAfEB/wGaAdIBmwH/ASkBoAEsAf8BNgGk
|
||||
ATkB/wE2AaQBOQH/ATIBowE0Af8BKgGaAS0B/wG5AeABugH/AYkByAGKAf8BNgGkATkB/wGzAdsBtAH/
|
||||
A/4h/wP+Af8D8QH/A9wB/wPiAf8B9QH0AfUB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfEB7AHxAf8BmgHS
|
||||
AZsB/wEpAaABLAH/ATYBpAE5Af8BNgGkATkB/wEyAaMBNAH/ASoBmgEtAf8BuQHgAboB/wGJAcgBigH/
|
||||
ATYBpAE5Af8BswHbAbQB/wP+If8D/gH/AdgB+gHbAf8BkgH7AZkB/wGkAfoBqwH/AfUB9AH1Af8B3AHa
|
||||
AdwB/wPZAf8D2QH/A9kB/wPZAf8B8QHsAfEB/wGaAdIBmwH/ASkBoAEsAf8BNgGkATkB/wE2AaQBOQH/
|
||||
ATIBowE0Af8BKgGaAS0B/wG5AeABugH/AYkByAGKAf8BNgGkATkB/wGzAdsBtAH/A/4h/wP+Af8BwQHi
|
||||
AcIB/wFLAbABTQH/AW0BwAFvAf8B0gHqAdIB/wFDAasBRQH/ATsBqQE9Af8BOwGpAT0B/wE7AakBPQH/
|
||||
AS4BogEyAf8BkgHJAZMB/wHFAfoByQH/AXUB8QF+Af8BegHyAYEB/wF6AfIBgQH/AXEB6wF6Af8BagHo
|
||||
AXQB/wHRAfoB1AH/AYUBwgGGAf8BNgGkATkB/wGzAdsBtAH/A/4l/wP+Af8D+QH/A/kB/wPiAf8D1gH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wHxAewB8QH/AZoB0gGbAf8BKQGgASwB/wE2AaQBOQH/ATYBpAE5Af8BMgGj
|
||||
ATQB/wEjAZkBJgH/AVYBsQFZAf8B4AHxAeEB/wHgAfEB4QH/A/4p/wP+Af8D+QH/A/kB/wPiAf8D1gH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wHxAewB8QH/AZoB0gGbAf8BKQGgASwB/wE2AaQBOQH/ATYBpAE5Af8BMgGj
|
||||
ATQB/wEjAZkBJgH/AVYBsQFZAf8B4AHxAeEB/wHgAfEB4QH/A/4p/wP+Af8B6gH4AesB/wHqAfgB6wH/
|
||||
AegB5AHoAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wHxAewB8QH/AZoB0gGbAf8BKQGgASwB/wE2AaQBOQH/
|
||||
ATYBpAE5Af8BMgGjATQB/wEjAZkBJgH/AVYBsQFZAf8B4AHxAeEB/wHgAfEB4QH/A/4p/wP+Af8B4AHx
|
||||
AeEB/wHcAfAB3QH/AXwBwgF9Af8BKQGgASwB/wE7AakBPQH/ATsBqQE9Af8BOwGpAT0B/wEuAaIBMgH/
|
||||
AZIByQGTAf8BxQH6AckB/wF1AfEBfgH/AXoB8gGBAf8BegHyAYEB/wFxAesBegH/AWoB6AF0Af8BggHx
|
||||
AYoB/wHgAfEB4QH/AdwB8AHdAf8D/i3/A/4B/wP+Af8B9QH0AfUB/wPpAf8D3AH/A9kB/wPWAf8D1gH/
|
||||
AfEB7AHxAf8BmgHSAZsB/wEjAZkBJgH/ASkBoAEsAf8BMgGjATQB/wFDAasBRQH/AXwBwgF9Af8BxwHl
|
||||
AcgB/wP+Af8D/jH/A/4B/wP+Af8B9QH0AfUB/wPpAf8D3AH/A9kB/wPWAf8D1gH/AfEB7AHxAf8BmgHS
|
||||
AZsB/wEjAZkBJgH/ASkBoAEsAf8BMgGjATQB/wFDAasBRQH/AXwBwgF9Af8BxwHlAcgB/wP+Af8D/jH/
|
||||
A/4B/wP+Af8B9QH0AfUB/wHoAeQB6AH/A9wB/wPZAf8D1gH/A9YB/wHxAewB8QH/AZoB0gGbAf8BIwGZ
|
||||
ASYB/wEpAaABLAH/ATIBowE0Af8BQwGrAUUB/wF8AcIBfQH/AccB5QHIAf8D/gH/A/4x/wP+Af8D/gH/
|
||||
Ac4B6wHQAf8BhAHIAYYB/wFLAbABTQH/ATgBqAE6Af8BLgGiATIB/wEnAaABKQH/AYkByAGKAf8BxQH6
|
||||
AckB/wF1AfEBfgH/AXUB8QF+Af8BdQHxAX4B/wGCAfEBigH/AaUB8gGqAf8B2AH6AdsB/wP+Af8D/jn/
|
||||
A/4B/wP+Af8D/gH/A/EB/wPpAf8D4gH/AfgB8gH4Af8BswHbAbQB/wFpAbsBawH/AY4BzQGQAf8BuQHg
|
||||
AboB/wHoAfUB6AH/A/4B/wP+Qf8D/gH/A/4B/wP+Af8D8QH/A+kB/wPiAf8B+AHyAfgB/wGzAdsBtAH/
|
||||
AWkBuwFrAf8BjgHNAZAB/wG5AeABugH/AegB9QHoAf8D/gH/A/5B/wP+Af8D/gH/A/4B/wH1AfQB9QH/
|
||||
A+wB/wPiAf8B+AHyAfgB/wGzAdsBtAH/AWkBuwFrAf8BjgHNAZAB/wG5AeABugH/AegB9QHoAf8D/gH/
|
||||
A/5B/wP+Af8D/gH/AeoB+AHrAf8BuQHgAboB/wGSAdABkwH/AW0BwAFvAf8BqgHSAasB/wHRAfoB1AH/
|
||||
AZ4B8wGkAf8BtAHzAbgB/wHRAfoB1AH/AfAB+QHxAf8D/gH/A/5J/wP+Af8D9gH/A+wB/wPjAf8D9QH/
|
||||
A/cB/wPiAf8D6wH/A/YB/wP+Sf8D/gH/A/4B/wP5Af8D8QH/A+kB/wPiAf8D7AH/A/EB/wPiAf8D4gH/
|
||||
A+wB/wP5Af8D/gH/A/5B/wP+Af8D/gH/A/kB/wPxAf8D6QH/A+IB/wPsAf8D8QH/A+IB/wPiAf8D7AH/
|
||||
A/kB/wP+Af8D/kH/A/4B/wP+Af8D+QH/A/EB/wPpAf8D4gH/A+wB/wPxAf8D4gH/A+IB/wPsAf8D+QH/
|
||||
A/4B/wP+Qf8D+wH/A+cB/wPbAf8D2gH/A9oB/wPaAf8D8AH/A/QB/wPaAf8D2gH/A9oB/wPbAf8D5gH/
|
||||
A/k5/wP+Af8D/gH/AfUB9AH1Af8D4gH/A9kB/wPZAf8D2QH/A9YB/wPpAf8D7AH/A9YB/wPZAf8D2QH/
|
||||
A9kB/wPiAf8D8QH/A/4B/wP+Mf8D/gH/A/4B/wH1AfQB9QH/A+IB/wPZAf8D2QH/A9kB/wPWAf8D6QH/
|
||||
A+wB/wPWAf8D2QH/A9kB/wPZAf8D4gH/A/EB/wP+Af8D/jH/A/4B/wP+Af8B9QH0AfUB/wPiAf8D2QH/
|
||||
A9kB/wPZAf8D1gH/A+kB/wPsAf8D1gH/A9kB/wPZAf8D2QH/A+IB/wPxAf8D/gH/A/4x/wP9Af8D+wH/
|
||||
A/MB/wPaAf8D2gH/A9oB/wPaAf8D2gH/A/AB/wP0Af8D2gH/A9oB/wPaAf8D2gH/A9oB/wPsAf8D/QH/
|
||||
A/wt/wP+Af8B9QH0AfUB/wH1AfQB9QH/A+wB/wPWAf8D2QH/A9kB/wPZAf8D2QH/A+kB/wPsAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9YB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A/4p/wP+Af8B9QH0AfUB/wH1AfQB9QH/
|
||||
A+wB/wPWAf8D2QH/A9kB/wPZAf8D2QH/A+kB/wPsAf8D2QH/A9kB/wPZAf8D2QH/A9YB/wPiAf8B9QH0
|
||||
AfUB/wH1AfQB9QH/A/4p/wP+Af8B9QH0AfUB/wH1AfQB9QH/A+wB/wPWAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A+kB/wPsAf8D2QH/A9kB/wPZAf8D2QH/A9YB/wHoAeQB6AH/AdAB8wHTAf8BzQHzAdAB/wP+Kf8D9wH/
|
||||
A9sB/wPeAf8D/gH/A+IB/wPaAf8D2gH/A9oB/wPaAf8D8AH/A/QB/wPaAf8D2gH/A9oB/wPaAf8D3QH/
|
||||
A/0B/wPlAf8D2gH/A/Ul/wP+Af8D8QH/A9kB/wPcAf8D+QH/A+IB/wPZAf8D2QH/A9kB/wPZAf8D6QH/
|
||||
A+wB/wPZAf8D2QH/A9kB/wPZAf8D3AH/AfUB9AH1Af8D4gH/A9kB/wPsAf8D/iH/A/4B/wPxAf8D2QH/
|
||||
A9wB/wP5Af8D4gH/A9kB/wPZAf8D2QH/A9kB/wPpAf8D7AH/A9kB/wPZAf8D2QH/A9kB/wPcAf8B9QH0
|
||||
AfUB/wPiAf8D2QH/A+wB/wP+If8D/gH/A/EB/wPZAf8D3AH/A/kB/wPiAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A+kB/wPsAf8D2QH/A9kB/wPZAf8D2QH/A9wB/wHzAfcB8wH/AWwB2wF0Af8BQgHLAUoB/wGsAeoBsAH/
|
||||
A/4h/wPzAf8D2gH/A9oB/wPaAf8D8gH/A/sB/wPaAf8D2gH/A9oB/wPaAf8D8AH/A/QB/wPaAf8D2gH/
|
||||
A9oB/wPaAf8D9QH/A/kB/wPaAf8D2gH/A9oB/wPwHf8D/gH/A+wB/wPZAf8D2QH/A9kB/wPsAf8D8QH/
|
||||
A9kB/wPZAf8D2QH/A9YB/wPpAf8D7AH/A9YB/wPZAf8D2QH/A9kB/wPsAf8D8QH/A9kB/wPZAf8D2QH/
|
||||
A+kB/wP+Gf8D/gH/A+wB/wPZAf8D2QH/A9kB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A9YB/wPpAf8D7AH/
|
||||
A9YB/wPZAf8D2QH/A9kB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A+kB/wP+Gf8D/gH/A+wB/wPZAf8D2QH/
|
||||
A9kB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A9YB/wPpAf8D7AH/A9YB/wPZAf8D2QH/A9kB/wHxAewB8QH/
|
||||
AbQB7AG4Af8BQgHLAUoB/wFCAcsBSgH/ATwBywFFAf8BmwHiAaAB/wP+Gf8D9wH/A9oB/wPaAf8D2gH/
|
||||
A9oB/wPcAf8D/QH/A+kB/wPaAf8D3QH/A+UB/wP6Af8D+wH/A+UB/wPeAf8D2gH/A+EB/wP+Af8D4AH/
|
||||
A9oB/wPaAf8D2gH/A9oB/wP0Ff8D/gH/A/EB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfUB9AH1Af8D4gH/
|
||||
A9YB/wPcAf8D4gH/A/EB/wH1AfQB9QH/A+IB/wPcAf8D2QH/A9wB/wP5Af8D3AH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPsAf8D/hH/A/4B/wPxAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wH1AfQB9QH/A+IB/wPWAf8D3AH/
|
||||
A+IB/wPxAf8B9QH0AfUB/wPiAf8D3AH/A9kB/wPcAf8D+QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D7AH/
|
||||
A/4R/wP+Af8D8QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8B9QH0AfUB/wPiAf8D1gH/A9wB/wPiAf8D8QH/
|
||||
AfUB9AH1Af8D4gH/A9wB/wPZAf8B4QHeAeEB/wHqAfgB6wH/AVoB3QFjAf8BQgHQAUsB/wFJAdIBUgH/
|
||||
AUIB0AFLAf8BPAHLAUUB/wGpAekBrQH/A/4R/wP+Af8D3AH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D6AH/
|
||||
A/0B/wP5Gf8D+QH/A/wB/wPwAf8D2gH/A9oB/wPaAf8D2gH/A9oB/wPbAf8D/Q3/A/4B/wP5Af8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPZAf8D4gH/A/kB/wPxAf8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D8QH/
|
||||
AfUB9AH1Af8D6QH/A9YB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfUB9AH1Af8D/gn/A/4B/wP5Af8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPZAf8D4gH/A/kB/wPxAf8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D8QH/
|
||||
AfUB9AH1Af8D6QH/A9YB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfUB9AH1Af8D/gn/A/4B/wP5Af8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPZAf8D4gH/A/kB/wPxAf8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D8QH/
|
||||
AfgB8gH4Af8BvAH7AcEB/wFaAeABYwH/AUkB0gFSAf8BSQHSAVIB/wFJAdIBUgH/AUIBywFKAf8BQgHL
|
||||
AUoB/wHWAfQB2AH/A/4N/wP+Af8D8AH/A9sB/wPaAf8D2gH/A9oB/wPaAf8D9Cn/A/YB/wPbAf8D2gH/
|
||||
A9oB/wPaAf8D2gH/A+oB/wP+Df8D/gH/A/kB/wPpAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPsAf8D/gH/
|
||||
A/4Z/wP+Af8D/gH/A+wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wP5Af8D/gn/A/4B/wP5Af8D6QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPZAf8D7AH/A/4B/wP+Gf8D/gH/A/4B/wPsAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPiAf8D+QH/A/4J/wP+Af8D+QH/A+kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wP+Af8D/hn/
|
||||
A/4B/wP+Af8B0QH6AdQB/wGaAfkBoQH/AWsB5QF0Af8BSAHSAVEB/wFCAdABSwH/AUIB0AFLAf8BiAHi
|
||||
AY8B/wHgAfgB4gH/A/4J/wP6Af8D4QH/A/oB/wP9Af8D6QH/A9oB/wPaAf8D+TH/A/sB/wPbAf8D2gH/
|
||||
A+QB/wP8Af8D/AH/A+UB/wP5Bf8D/gH/A/EB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A+IB/wPZAf8D2QH/
|
||||
A/EB/wP+Kf8D/gH/A/EB/wPZAf8D2QH/A+IB/wH1AfQB9QH/AfUB9AH1Af8D4gH/A/EB/wP+Af8D/gH/
|
||||
A/EB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A+IB/wPZAf8D2QH/A/EB/wP+Kf8D/gH/A/EB/wPZAf8D2QH/
|
||||
A+IB/wH1AfQB9QH/AfUB9AH1Af8D4gH/A/EB/wP+Af8D/gH/A/EB/wPiAf8B9QH0AfUB/wH1AfQB9QH/
|
||||
A+IB/wPZAf8D2QH/A/EB/wP+Kf8D/gH/Ad0B+wHgAf8BmgH5AaEB/wFaAeABYwH/AXQB3AF7Af8BzQHz
|
||||
AdAB/wHJAeIByQH/AVQBpwFVAf8BqgHSAasB/wP+Bf8D6AH/A9oB/wPaAf8D6AH/A/0B/wP5Af8D9zn/
|
||||
A/cB/wP2Af8D/gH/A+4B/wPbAf8D2gH/A+UF/wP+Af8D4gH/A9YB/wPZAf8D4gH/AfUB9AH1Af8D8QH/
|
||||
A+wB/wP+Mf8D/gH/A+wB/wPxAf8D+QH/A+kB/wPZAf8D1gH/A+IB/wP+Af8D/gH/A+IB/wPWAf8D2QH/
|
||||
A+IB/wH1AfQB9QH/A/EB/wPsAf8D/jH/A/4B/wPsAf8D8QH/A/kB/wPpAf8D2QH/A9YB/wPiAf8D/gH/
|
||||
A/4B/wPiAf8D1gH/A9kB/wPiAf8B9QH0AfUB/wPxAf8D7AH/A/4x/wP+Af8B0QH6AdQB/wHUAfwB2AH/
|
||||
AdsB7AHbAf8BcgG8AXQB/wEfAYoBIQH/AQoBgwEMAf8BUwGpAVUB/wP+Af8D/gH/A9wB/wPaAf8D2gH/
|
||||
A9oB/wPaAf8D9kH/A/oB/wPdAf8D2gH/A9oB/wPaAf8D2wH/A/0B/wP5Af8D3AH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPsAf8D/jn/A/4B/wPxAf8D3AH/A9kB/wPZAf8D2QH/A9kB/wP5Af8D+QH/A9wB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D7AH/A/45/wP+Af8D8QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D+QH/A/kB/wPcAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A+wB/wP+Of8D/gH/AbkB4AG6Af8BQAGnAUIB/wETAYgBFQH/AR8BigEhAf8BGgGM
|
||||
ARwB/wEiAZIBJAH/AdIB6gHSAf8D+AH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D9kH/A/kB/wPaAf8D2gH/
|
||||
A9oB/wPaAf8D2gH/A/UB/wPxAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPsAf8D/jn/A/4B/wPsAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D7AH/A/45/wP+Af8D7AH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPZAf8D7AH/A/EB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wP+Of8D/gH/
|
||||
AbMB2wG0Af8BMgGjATQB/wEiAZIBJAH/ASIBkgEkAf8BIgGSASQB/wETAYgBFQH/AZIByQGTAf8D7QH/
|
||||
A9oB/wPaAf8D2gH/A9oB/wPcSf8D3QH/A9oB/wPaAf8D2gH/A9oB/wPrAf8D6QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D+UH/A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wPpAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wP5Qf8D+QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D4gH/A+kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A/lB/wHoAfUB6AH/AUsBsAFNAf8BJgGYASkB/wEiAZIBJAH/ASIBkgEkAf8BEwGIARUB/wFqAbQBawH/
|
||||
A+YB/wPaAf8D2gH/A9oB/wPaAf8D4kn/A+YB/wPaAf8D2gH/A9oB/wPaAf8D4wH/A+IB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D4gH/A/5B/wP+Af8D4gH/A9kB/wPZAf8D2QH/A9kB/wPiAf8D4gH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPiAf8D/kH/A/4B/wPiAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wPiAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A+IB/wP+Qf8D/gH/AW0BwAFvAf8BJgGYASkB/wEfAYoBIQH/AR8BkgEhAf8BFwGMARkB/wFJAaUBTAH/
|
||||
A/sB/wP5Af8D+QH/A/kB/wP5Af8D/Un/A/0B/wP5Af8D+QH/A/kB/wP5Af8D+wH/AfUB9AH1Af8D8QH/
|
||||
A/EB/wPxAf8D8QH/AfUB9AH1Af8D/kH/A/4B/wH1AfQB9QH/A/EB/wPxAf8D8QH/A/EB/wH1AfQB9QH/
|
||||
AfUB9AH1Af8D8QH/A/EB/wPxAf8D8QH/AfUB9AH1Af8D/kH/A/4B/wH1AfQB9QH/A/EB/wPxAf8D8QH/
|
||||
AfQB8QHzAf8B9QH0AfUB/wH1AfQB9QH/A/EB/wPxAf8D8QH/A/EB/wH1AfQB9QH/A/5B/wP+Af8B0gHq
|
||||
AdIB/wG4Ad0BuQH/AbMB2wG0Af8BswHbAbQB/wGzAdsBtAH/AcEB4gHCAf8D8AH/A+kB/wPqAf8D6gH/
|
||||
A+kB/wP0Sf8D9gH/A+kB/wPqAf8D6gH/A+kB/wPvAf8D6QH/A+IB/wPiAf8D4gH/A+IB/wPsAf8D/kH/
|
||||
A/4B/wPsAf8D4gH/A+IB/wPiAf8D4gH/A+kB/wPpAf8D4gH/A+IB/wPiAf8D4gH/A+wB/wP+Qf8D/gH/
|
||||
AcUB+gHJAf8BlAHwAZoB/wGDAeEBiQH/AYMB4QGJAf8BgQHgAYYB/wGSAeYBmAH/A+kB/wPiAf8D4gH/
|
||||
A+IB/wPiAf8D7AH/A/5B/wP+Af8BpAHYAaUB/wFwAbkBcgH/AWoBtAFrAf8BagG0AWsB/wFqAbQBawH/
|
||||
AX8BvAGBAf8D5gH/A9oB/wPaAf8D2gH/A9oB/wPhSf8D5QH/A9oB/wPaAf8D2gH/A9oB/wPjAf8D4gH/
|
||||
A9YB/wPZAf8D2QH/A9YB/wPcAf8D/kH/A/4B/wPiAf8D1gH/A9kB/wPZAf8D1gH/A+IB/wPiAf8D1gH/
|
||||
A9kB/wPZAf8D1gH/A9wB/wP+Qf8D/gH/AZoB+QGhAf8BXwHiAWkB/wFJAdIBUgH/AUsB2QFUAf8BQgHQ
|
||||
AUsB/wFsAdsBdAH/A+IB/wPWAf8D2QH/A9kB/wPWAf8D3AH/A/5B/wP+Af8BYgG6AWMB/wEfAZIBIQH/
|
||||
ARoBjAEcAf8BHAGQAR4B/wETAYgBFQH/AUkBpQFMAf8D7gH/A9oB/wPaAf8D2gH/A9oB/wPbAf8D/kX/
|
||||
A90B/wPaAf8D2gH/A9oB/wPaAf8D6wH/A+kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A/lB/wP5Af8D3AH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPiAf8D6QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D+UH/Ae8B/AHwAf8BggHx
|
||||
AYoB/wFiAeIBbAH/AVUB2wFeAf8BVQHbAV4B/wFJAdIBUgH/AYwB5gGSAf8D6QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D+UH/AeAB8QHhAf8BQwGrAUUB/wEqAZoBLQH/ASIBkgEkAf8BIgGSASQB/wEaAYwBHAH/
|
||||
AXABuQFyAf8D+AH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D9kH/A/kB/wPaAf8D2gH/A9oB/wPaAf8D2gH/
|
||||
A/YB/wPxAf8D2QH/A9kB/wPZAf8D2QH/A9YB/wPsAf8D/jn/A/4B/wPsAf8D1gH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D7AH/A/45/wP+Af8BxQH6AckB/wFnAewBcQH/
|
||||
AVoB3QFjAf8BWgHdAWMB/wFVAdsBXgH/AUsB2QFUAf8BsAHsAbQB/wPxAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9YB/wPsAf8D/jn/A/4B/wGrAdgBrAH/ASMBmQEmAf8BJwGWASkB/wEnAZYBKQH/AScBlgEpAf8BGgGM
|
||||
ARwB/wGZAcsBmQH/A/4B/wPdAf8D2gH/A9oB/wPaAf8D5gH/A/1B/wP+Af8D7AH/A9sB/wPaAf8D2gH/
|
||||
A9wB/wP+Af8D+QH/A9wB/wPZAf8D2QH/A9kB/wPiAf8B9QH0AfUB/wP+Of8D/gH/A/kB/wPpAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A/kB/wP5Af8D3AH/A9kB/wPZAf8D2QH/A+IB/wH1AfQB9QH/A/45/wH5AfwB+QH/
|
||||
AeAB+AHiAf8BpQHyAaoB/wFaAd0BYwH/AVUB2wFeAf8BVQHbAV4B/wFaAd0BYwH/AeAB+AHiAf8D+QH/
|
||||
A9wB/wPZAf8D2QH/A9kB/wPiAf8B9QH0AfUB/wP+Of8B+QH8AfkB/wHbAewB2wH/AX8BwQGBAf8BJwGW
|
||||
ASkB/wEfAZIBIQH/ASIBkgEkAf8BKgGaAS0B/wHbAewB2wX/A+oB/wPaAf8D4AH/A/kB/wP+Af8D6gH/
|
||||
A/A5/wPzAf8D5AH/A/0B/wP8Af8D5QH/A9oB/wPnBf8D/gH/A+IB/wPWAf8D4gH/A/EB/wP5Af8D4gH/
|
||||
A+kB/wP+Mf8D/gH/A+kB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A+IB/wPWAf8D4gH/A/4B/wP+Af8D4gH/
|
||||
A9YB/wPiAf8D8QH/A/kB/wPiAf8D6QH/A/4x/wP+Af8BiQHIAYoB/wFZAawBWwH/AckB4gHJAf8B2AH6
|
||||
AdsB/wGDAesBiwH/AUsB2QFUAf8BgwHhAYkB/wP+Af8D/gH/A+IB/wPWAf8D4gH/A/EB/wP5Af8D4gH/
|
||||
A+kB/wP+Mf8D/gH/AYkByAGKAf8BWwGxAV0B/wHSAeoB0gH/AckB4gHJAf8BWwGxAV0B/wETAYgBFQH/
|
||||
AWEBsQFiAf8D/gX/A/wB/wPyAf8D/gH/A/MB/wPcAf8D2gH/A9oB/wP3Mf8D+QH/A9oB/wPaAf8D2gH/
|
||||
A+4B/wP+Af8D9gH/A/sF/wP+Af8B9QH0AfUB/wPsAf8D+QH/A+wB/wPcAf8D2QH/A9kB/wPsAf8D/in/
|
||||
A/4B/wPxAf8D2QH/A9kB/wPZAf8D6QH/A/kB/wPxAf8B9QH0AfUB/wP+Af8D/gH/AfUB9AH1Af8D7AH/
|
||||
A/kB/wPsAf8D3AH/A9kB/wPZAf8D7AH/A/4p/wP+Af8BoAHRAaEB/wEjAZkBJgH/ASIBkgEkAf8BKgGa
|
||||
AS0B/wF5AbwBewH/AdcB6gHYAf8BvAHxAcAB/wHQAfMB0wH/A/4B/wP+Af8B9QH0AfUB/wPsAf8D+QH/
|
||||
A+wB/wPcAf8D2QH/A9kB/wPsAf8D/in/A/4B/wGgAdEBoQH/ASMBmQEmAf8BIgGSASQB/wEqAZoBLQH/
|
||||
AXwBwgF9Af8B0gHqAdIB/wGgAdEBoQH/AcEB4gHCAf8D/gn/A/wB/wPeAf8D2gH/A9oB/wPaAf8D2gH/
|
||||
A9oB/wPyKf8D9gH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D2wH/A/oN/wP+Af8B9QH0AfUB/wPcAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPpAf8D/gH/A/4Z/wP+Af8D/gH/A+wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPxAf8D/gn/A/4B/wH1AfQB9QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+kB/wP+Af8D/hn/
|
||||
A/4B/wP+Af8BmQHLAZkB/wEcAZABHgH/ASoBmgEtAf8BLgGcATEB/wEqAZoBLQH/AR8BkgEhAf8BLgGc
|
||||
ATEB/wG4Ad0BuQH/A/4J/wP+Af8B9QH0AfUB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPpAf8D/gH/
|
||||
A/4Z/wP+Af8D/gH/AZkBywGZAf8BHAGQAR4B/wEqAZoBLQH/AS4BnAExAf8BKgGaAS0B/wEfAZIBIQH/
|
||||
AS4BnAExAf8BuAHdAbkB/wP+Df8D/gH/A90B/wPaAf8D2gH/A9oB/wPaAf8D2gH/A/IB/wP6Af8D9Rn/
|
||||
A/YB/wP2Af8D+AH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D3AH/A/0N/wP+Af8D+QH/A9wB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D1gH/A+kB/wPxAf8D7AH/A/kB/wP+Af8D/gH/A/4B/wH7Af4B/AH/AeAB8QHhAf8BmwHi
|
||||
AaAB/wGhAeoBpgH/AfQB8AH0Af8D2QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D+QH/A/4J/wP+Af8D+QH/
|
||||
A9wB/wPZAf8D2QH/A9kB/wPZAf8D1gH/A+kB/wPxAf8D7AH/A/kB/wP+Af8D/gH/A/4B/wH5AfwB+QH/
|
||||
AeAB7wHgAf8BiQHCAYoB/wGWAckBmAH/AaoB0gGrAf8BIwGZASYB/wEuAZwBMQH/AS4BnAExAf8BKgGa
|
||||
AS0B/wEmAZgBKQH/ATEBnQEzAf8B0gHqAdIB/wP+Cf8D/gH/A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9YB/wPpAf8D8QH/A+wB/wP5Af8D/gH/A/4B/wP+Af8B+QH8AfkB/wHgAe8B4AH/AYkBwgGKAf8BlgHJ
|
||||
AZgB/wGqAdIBqwH/ASMBmQEmAf8BLgGcATEB/wEuAZwBMQH/ASoBmgEtAf8BJgGYASkB/wExAZ0BMwH/
|
||||
AdIB6gHSAf8D/hH/A/kB/wPaAf8D2gH/A9oB/wPaAf8D4gH/A/4B/wPgAf8D2gH/A9sB/wPhAf8D+AH/
|
||||
A/oB/wPhAf8D3AH/A9oB/wPcAf8D/QH/A+kB/wPaAf8D2gH/A9oB/wPaAf8D9xX/A/4B/wPxAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A+IB/wP5Af8D3AH/A9YB/wPZAf8D3AH/AfgB8gH4Af8BtAHsAbgB/wFTAc0BWwH/
|
||||
AUgBzQFRAf8BQgHQAUsB/wFaAeABYwH/AeAB+AHiAf8B6AHkAegB/wPZAf8D2QH/A9kB/wPZAf8D8QH/
|
||||
A/4R/wP+Af8D8QH/A9kB/wPZAf8D2QH/A9kB/wPiAf8D+QH/A9wB/wPWAf8D2QH/A9wB/wH4AfIB+AH/
|
||||
AaoB0gGrAf8BNAGVATYB/wEhAYwBIwH/ARMBiAEVAf8BKgGaAS0B/wHSAeoB0gH/AXIBvAF0Af8BJgGY
|
||||
ASkB/wEuAZwBMQH/ASoBmgEtAf8BJgGYASkB/wGrAdgBrAH/A/4R/wP+Af8D8QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPiAf8D+QH/A9wB/wPWAf8D2QH/A9wB/wH4AfIB+AH/AaoB0gGrAf8BNAGVATYB/wEhAYwBIwH/
|
||||
ARMBiAEVAf8BKgGaAS0B/wHSAeoB0gH/AXIBvAF0Af8BJgGYASkB/wEuAZwBMQH/ASoBmgEtAf8BJgGY
|
||||
ASkB/wGrAdgBrAH/A/4Z/wP3Af8D2gH/A9oB/wPaAf8D+gH/A/MB/wPaAf8D2gH/A9oB/wPaAf8D8AH/
|
||||
A/QB/wPaAf8D2gH/A9oB/wPaAf8D6gH/A/0B/wPbAf8D2gH/A9oB/wP0Hf8D/gH/A/EB/wPZAf8D2QH/
|
||||
A9kB/wPxAf8D7AH/A9kB/wPZAf8D2QH/A9YB/wHxAewB8QH/Aa0B8gGyAf8BVAHgAV0B/wFqAegBdAH/
|
||||
AXEB6wF6Af8BagHoAXQB/wGYAfMBnwH/AfUB9AH1Af8B3AHaAdwB/wPZAf8D2QH/A+wB/wP+Gf8D/gH/
|
||||
A/EB/wPZAf8D2QH/A9kB/wPxAf8D7AH/A9kB/wPZAf8D2QH/A9YB/wHxAewB8QH/AZIByQGTAf8BFwGR
|
||||
ARoB/wEuAZwBMQH/ATIBowE0Af8BKgGaAS0B/wFyAbwBdAH/AdIB6gHSAf8BMgGjATQB/wEmAZgBKQH/
|
||||
ASoBmgEtAf8BoAHRAaEB/wP+Gf8D/gH/A/EB/wPZAf8D2QH/A9kB/wPxAf8D7AH/A9kB/wPZAf8D2QH/
|
||||
A9YB/wHxAewB8QH/AZIByQGTAf8BFwGRARoB/wEuAZwBMQH/ATIBowE0Af8BKgGaAS0B/wFyAbwBdAH/
|
||||
AdIB6gHSAf8BMgGjATQB/wEmAZgBKQH/ASoBmgEtAf8BoAHRAaEB/wP+If8D+gH/A9wB/wPmAf8D/QH/
|
||||
A9wB/wPaAf8D2gH/A9oB/wPaAf8D8AH/A/QB/wPaAf8D2gH/A9oB/wPaAf8D2gH/A/sB/wPvAf8D2wH/
|
||||
A/gl/wP+Af8D8QH/A9wB/wPiAf8B9QH0AfUB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfEB7AHxAf8BwQH9
|
||||
AcUB/wF1AfEBfgH/AXoB8gGBAf8BeAHyAYEB/wFxAesBegH/AWoB6AF0Af8BygH5Ac0B/wHtAegB7QH/
|
||||
A9kB/wPxAf8D/iH/A/4B/wPxAf8D3AH/A+IB/wH1AfQB9QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8B8QHs
|
||||
AfEB/wGaAdIBmwH/ASkBoAEsAf8BNgGkATkB/wE2AaQBOQH/ATIBowE0Af8BKgGaAS0B/wG5AeABugH/
|
||||
AYkByAGKAf8BNgGkATkB/wGzAdsBtAH/A/4h/wP+Af8D8QH/A9wB/wPiAf8B9QH0AfUB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/AfEB7AHxAf8BmgHSAZsB/wEpAaABLAH/ATYBpAE5Af8BNgGkATkB/wEyAaMBNAH/
|
||||
ASoBmgEtAf8BuQHgAboB/wGJAcgBigH/ATYBpAE5Af8BswHbAbQB/wP+Kf8D/gH/A/4B/wPrAf8D2gH/
|
||||
A9oB/wPaAf8D2gH/A9oB/wPwAf8D9AH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D4wH/A/4B/wP+Lf8D/gH/
|
||||
A/kB/wP5Af8D4gH/A9YB/wPZAf8D2QH/A9kB/wPZAf8B8QHsAfEB/wHBAf0BxQH/AXUB8QF+Af8BegHy
|
||||
AYEB/wF6AfIBgQH/AXEB6wF6Af8BagHoAXQB/wGJAfMBkAH/AfAB+QHxAf8D+QH/A/4p/wP+Af8D+QH/
|
||||
A/kB/wPiAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wHxAewB8QH/AZoB0gGbAf8BKQGgASwB/wE2AaQBOQH/
|
||||
ATYBpAE5Af8BMgGjATQB/wEjAZkBJgH/AVYBsQFZAf8B4AHxAeEB/wHgAfEB4QH/A/4p/wP+Af8D+QH/
|
||||
A/kB/wPiAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wHxAewB8QH/AZoB0gGbAf8BKQGgASwB/wE2AaQBOQH/
|
||||
ATYBpAE5Af8BMgGjATQB/wEjAZkBJgH/AVYBsQFZAf8B4AHxAeEB/wHgAfEB4QH/A/41/wP8Af8D6wH/
|
||||
A90B/wPaAf8D2gH/A9oB/wPwAf8D9AH/A9oB/wPaAf8D2gH/A90B/wPqAf8D+zn/A/4B/wP+Af8B9QH0
|
||||
AfUB/wPpAf8D3AH/A9kB/wPWAf8D1gH/AfEB7AHxAf8BvAH7AcEB/wF1AfEBfgH/AXUB8QF+Af8BdQHx
|
||||
AX4B/wGCAfEBigH/AaUB8gGqAf8B2AH6AdsB/wP+Af8D/jH/A/4B/wP+Af8B9QH0AfUB/wPpAf8D3AH/
|
||||
A9kB/wPWAf8D1gH/AfEB7AHxAf8BmgHSAZsB/wEjAZkBJgH/ASkBoAEsAf8BMgGjATQB/wFDAasBRQH/
|
||||
AXwBwgF9Af8BxwHlAcgB/wP+Af8D/jH/A/4B/wP+Af8B9QH0AfUB/wPpAf8D3AH/A9kB/wPWAf8D1gH/
|
||||
AfEB7AHxAf8BmgHSAZsB/wEjAZkBJgH/ASkBoAEsAf8BMgGjATQB/wFDAasBRQH/AXwBwgF9Af8BxwHl
|
||||
AcgB/wP+Af8D/kH/A/4B/wP5Af8D7wH/A+YB/wP1Af8D+AH/A+UB/wPvAf8D+QH/A/5J/wP+Af8D/gH/
|
||||
A/4B/wPxAf8D6QH/A+IB/wHxAewB8QH/Ac4B+gHRAf8BmgH5AaEB/wG0AfsBugH/AdEB+gHUAf8B8AH5
|
||||
AfEB/wP+Af8D/kH/A/4B/wP+Af8D/gH/A/EB/wPpAf8D4gH/AfgB8gH4Af8BswHbAbQB/wFpAbsBawH/
|
||||
AY4BzQGQAf8BuQHgAboB/wHoAfUB6AH/A/4B/wP+Qf8D/gH/A/4B/wP+Af8D8QH/A+kB/wPiAf8B+AHy
|
||||
AfgB/wGzAdsBtAH/AWkBuwFrAf8BjgHNAZAB/wG5AeABugH/AegB9QHoAf8D/gH/A/4h/wFCAU0BPgcA
|
||||
AT4DAAEoAwABeAMAAXgDAAEBAQABAQUAAYABBxYAA///AP8A/wD/AP8A/wD/AIgACw==
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
|
@ -0,0 +1,22 @@
|
|||
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("WebsitePanel.Import.Enterprise")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyProduct("WebsitePanel.Import.Enterprise")]
|
||||
[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("fe8ffa2e-6e29-41c5-a0b2-a553119c5edb")]
|
||||
|
210
WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/Properties/Resources.Designer.cs
generated
Normal file
|
@ -0,0 +1,210 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.1
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise.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", "4.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("WebsitePanel.Import.Enterprise.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;
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap BannerImage {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("BannerImage", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap ConnectImage {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ConnectImage", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap ConnectLogo {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ConnectLogo", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Icon FolderLargeIcon {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("FolderLargeIcon", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Icon FolderSmallIcon {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("FolderSmallIcon", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Icon OU {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("OU", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap ProgressImage1 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ProgressImage1", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap ProgressImage2 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ProgressImage2", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap ProgressImage3 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ProgressImage3", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap ProgressImage4 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ProgressImage4", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap ProgressImage5 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ProgressImage5", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap ProgressImage6 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ProgressImage6", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap ProgressImage7 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ProgressImage7", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap ProgressImage8 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ProgressImage8", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap RefreshImage {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("RefreshImage", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Icon SpaceLargeIcon {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("SpaceLargeIcon", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Icon SpaceSmallIcon {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("SpaceSmallIcon", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Icon UserLargeIcon {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("UserLargeIcon", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Icon UsersLargeIcon {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("UsersLargeIcon", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Icon UserSmallIcon {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("UserSmallIcon", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Icon UsersSmallIcon {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("UsersSmallIcon", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,184 @@
|
|||
<?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>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="BannerImage" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\BannerImage.GIF;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ConnectImage" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ConnectImage.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ConnectLogo" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ConnectLogo.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="FolderLargeIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\FolderLargeIcon.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="FolderSmallIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\FolderSmallIcon.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="OU" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\OU.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ProgressImage1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ProgressImage1.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ProgressImage2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ProgressImage2.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ProgressImage3" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ProgressImage3.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ProgressImage4" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ProgressImage4.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ProgressImage5" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ProgressImage5.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ProgressImage6" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ProgressImage6.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ProgressImage7" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ProgressImage7.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ProgressImage8" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ProgressImage8.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="RefreshImage" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\RefreshImage.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="SpaceLargeIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\SpaceLargeIcon.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="SpaceSmallIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\SpaceSmallIcon.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="UserLargeIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\UserLargeIcon.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="UsersLargeIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\UsersLargeIcon.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="UserSmallIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\UserSmallIcon.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="UsersSmallIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\UsersSmallIcon.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 81 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 1.1 KiB |
148
WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/SpaceForm.Designer.cs
generated
Normal file
|
@ -0,0 +1,148 @@
|
|||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
partial class SpaceForm
|
||||
{
|
||||
/// <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.components = new System.ComponentModel.Container();
|
||||
System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("Node3", 3, 3);
|
||||
System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("Node2", 2, 2, new System.Windows.Forms.TreeNode[] {
|
||||
treeNode1});
|
||||
System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("Node1", 1, 1, new System.Windows.Forms.TreeNode[] {
|
||||
treeNode2});
|
||||
System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("Node0", new System.Windows.Forms.TreeNode[] {
|
||||
treeNode3});
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SpaceForm));
|
||||
this.spaceTree = new System.Windows.Forms.TreeView();
|
||||
this.images = new System.Windows.Forms.ImageList(this.components);
|
||||
this.pnlButtons = new System.Windows.Forms.Panel();
|
||||
this.btnCancel = new System.Windows.Forms.Button();
|
||||
this.btnSelect = new System.Windows.Forms.Button();
|
||||
this.pnlButtons.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// spaceTree
|
||||
//
|
||||
this.spaceTree.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.spaceTree.ImageIndex = 0;
|
||||
this.spaceTree.ImageList = this.images;
|
||||
this.spaceTree.Location = new System.Drawing.Point(10, 10);
|
||||
this.spaceTree.Name = "spaceTree";
|
||||
treeNode1.ImageIndex = 3;
|
||||
treeNode1.Name = "Node3";
|
||||
treeNode1.SelectedImageIndex = 3;
|
||||
treeNode1.Text = "Node3";
|
||||
treeNode2.ImageIndex = 2;
|
||||
treeNode2.Name = "Node2";
|
||||
treeNode2.SelectedImageIndex = 2;
|
||||
treeNode2.Text = "Node2";
|
||||
treeNode3.ImageIndex = 1;
|
||||
treeNode3.Name = "Node1";
|
||||
treeNode3.SelectedImageIndex = 1;
|
||||
treeNode3.Text = "Node1";
|
||||
treeNode4.Name = "Node0";
|
||||
treeNode4.Text = "Node0";
|
||||
this.spaceTree.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
|
||||
treeNode4});
|
||||
this.spaceTree.SelectedImageIndex = 0;
|
||||
this.spaceTree.ShowLines = false;
|
||||
this.spaceTree.Size = new System.Drawing.Size(399, 319);
|
||||
this.spaceTree.TabIndex = 0;
|
||||
this.spaceTree.BeforeExpand += new System.Windows.Forms.TreeViewCancelEventHandler(this.OnBeforeExpand);
|
||||
//
|
||||
// images
|
||||
//
|
||||
this.images.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("images.ImageStream")));
|
||||
this.images.TransparentColor = System.Drawing.Color.Transparent;
|
||||
this.images.Images.SetKeyName(0, "UserSmallIcon.ico");
|
||||
this.images.Images.SetKeyName(1, "UsersSmallIcon.ico");
|
||||
this.images.Images.SetKeyName(2, "FolderSmallIcon.ico");
|
||||
this.images.Images.SetKeyName(3, "SpaceSmallIcon.ico");
|
||||
//
|
||||
// pnlButtons
|
||||
//
|
||||
this.pnlButtons.Controls.Add(this.btnCancel);
|
||||
this.pnlButtons.Controls.Add(this.btnSelect);
|
||||
this.pnlButtons.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.pnlButtons.Location = new System.Drawing.Point(10, 329);
|
||||
this.pnlButtons.Name = "pnlButtons";
|
||||
this.pnlButtons.Size = new System.Drawing.Size(399, 32);
|
||||
this.pnlButtons.TabIndex = 1;
|
||||
//
|
||||
// btnCancel
|
||||
//
|
||||
this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.btnCancel.Location = new System.Drawing.Point(324, 9);
|
||||
this.btnCancel.Name = "btnCancel";
|
||||
this.btnCancel.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnCancel.TabIndex = 1;
|
||||
this.btnCancel.Text = "Cancel";
|
||||
this.btnCancel.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// btnSelect
|
||||
//
|
||||
this.btnSelect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnSelect.Location = new System.Drawing.Point(243, 9);
|
||||
this.btnSelect.Name = "btnSelect";
|
||||
this.btnSelect.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnSelect.TabIndex = 0;
|
||||
this.btnSelect.Text = "Select";
|
||||
this.btnSelect.UseVisualStyleBackColor = true;
|
||||
this.btnSelect.Click += new System.EventHandler(this.OnSelectClick);
|
||||
//
|
||||
// SpaceForm
|
||||
//
|
||||
this.AcceptButton = this.btnSelect;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.CancelButton = this.btnCancel;
|
||||
this.ClientSize = new System.Drawing.Size(419, 371);
|
||||
this.Controls.Add(this.spaceTree);
|
||||
this.Controls.Add(this.pnlButtons);
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "SpaceForm";
|
||||
this.Padding = new System.Windows.Forms.Padding(10);
|
||||
this.ShowIcon = false;
|
||||
this.ShowInTaskbar = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Select Hosting Space";
|
||||
this.pnlButtons.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.TreeView spaceTree;
|
||||
private System.Windows.Forms.Panel pnlButtons;
|
||||
private System.Windows.Forms.Button btnCancel;
|
||||
private System.Windows.Forms.Button btnSelect;
|
||||
private System.Windows.Forms.ImageList images;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,277 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
public partial class SpaceForm : BaseForm
|
||||
{
|
||||
public const string USER = "User";
|
||||
public const string CUSTOMERS = "Customers";
|
||||
public const string SPACES = "Spaces";
|
||||
public const string SPACE = "Space";
|
||||
public const string TMP = "Tmp";
|
||||
|
||||
private string username;
|
||||
private string password;
|
||||
|
||||
public SpaceForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
}
|
||||
|
||||
public void InitializeForm(string username, string password)
|
||||
{
|
||||
this.username = username;
|
||||
this.password = password;
|
||||
PopulateRootNode(username, password);
|
||||
}
|
||||
|
||||
private void PopulateRootNode(string username, string password)
|
||||
{
|
||||
spaceTree.Nodes.Clear();
|
||||
UserInfo info = null;
|
||||
try
|
||||
{
|
||||
info = UserController.GetUser(username);
|
||||
SecurityContext.SetThreadPrincipal(info);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ShowError("Unable to load user.", ex);
|
||||
}
|
||||
if (info != null)
|
||||
{
|
||||
DataNode rootNode = AddTreeNode(null, info.Username, 0, USER, info, true);
|
||||
rootNode.Expand();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnBeforeExpand(object sender, TreeViewCancelEventArgs e)
|
||||
{
|
||||
DataNode node = e.Node as DataNode;
|
||||
ExpandNode(node);
|
||||
}
|
||||
|
||||
private void ExpandNode(DataNode node)
|
||||
{
|
||||
if (node == null || node.Populated)
|
||||
return;
|
||||
|
||||
node.Nodes.Clear();
|
||||
spaceTree.Update();
|
||||
|
||||
switch (node.NodeType)
|
||||
{
|
||||
case USER:
|
||||
PopulateUser(node);
|
||||
break;
|
||||
case CUSTOMERS:
|
||||
PopulateCustomers(node);
|
||||
break;
|
||||
case SPACES:
|
||||
PopulateSpaces(node);
|
||||
break;
|
||||
}
|
||||
|
||||
node.Populated = true;
|
||||
node.Expand();
|
||||
}
|
||||
|
||||
private void PopulateSpaces(DataNode parentNode)
|
||||
{
|
||||
UserInfo info = parentNode.Tag as UserInfo;
|
||||
DataSet ds = null;
|
||||
try
|
||||
{
|
||||
ds = PackageController.GetRawMyPackages(info.UserId);
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
ShowError("Unable to load spaces.", ex);
|
||||
}
|
||||
if (ds != null)
|
||||
{
|
||||
foreach (DataRow dr in ds.Tables[0].Rows)
|
||||
{
|
||||
PackageInfo data = new PackageInfo();
|
||||
data.PackageId = Utils.GetDbInt32(dr["PackageId"]);
|
||||
data.PackageName = Utils.GetDbString(dr["PackageName"]);
|
||||
data.UserId = Utils.GetDbInt32(dr["UserId"]);
|
||||
AddTreeNode(parentNode, data.PackageName, 3, SPACE, data, false);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void PopulateCustomers(DataNode parentNode)
|
||||
{
|
||||
UserInfo info = parentNode.Tag as UserInfo;
|
||||
DataSet ds = null;
|
||||
try
|
||||
{
|
||||
ds = UserController.GetRawUsers(info.UserId, false);
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
ShowError("Unable to load users.", ex);
|
||||
}
|
||||
if (ds != null)
|
||||
{
|
||||
|
||||
foreach (DataRow dr in ds.Tables[0].Rows)
|
||||
{
|
||||
|
||||
UserInfo user = new UserInfo();
|
||||
user.UserId = Utils.GetDbInt32(dr["UserId"]);
|
||||
user.Username = Utils.GetDbString(dr["Username"]);
|
||||
user.RoleId = Utils.GetDbInt32(dr["RoleId"]);
|
||||
AddTreeNode(parentNode, user.Username, 0, USER, user, true);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void PopulateUser(DataNode parentNode)
|
||||
{
|
||||
UserInfo info = parentNode.Tag as UserInfo;
|
||||
if ((UserRole)info.RoleId != UserRole.User)
|
||||
{
|
||||
AddTreeNode(parentNode, CUSTOMERS, 1, CUSTOMERS, info, true);
|
||||
}
|
||||
AddTreeNode(parentNode, SPACES, 2, SPACES, info, true);
|
||||
}
|
||||
|
||||
private DataNode AddTreeNode(DataNode parentNode, string text, int imageIndex, string nodeType, object data, bool hasChildren)
|
||||
{
|
||||
DataNode node = new DataNode();
|
||||
node.Text = text;
|
||||
node.SelectedImageIndex = imageIndex;
|
||||
node.ImageIndex = imageIndex;
|
||||
node.NodeType = nodeType;
|
||||
node.Tag = data;
|
||||
if (hasChildren)
|
||||
{
|
||||
node.Populated = false;
|
||||
DataNode tmpNode = new DataNode();
|
||||
tmpNode.Text = "Expanding...";
|
||||
tmpNode.SelectedImageIndex = 2;
|
||||
tmpNode.ImageIndex = 2;
|
||||
tmpNode.NodeType = TMP;
|
||||
node.Nodes.Add(tmpNode);
|
||||
}
|
||||
else
|
||||
{
|
||||
node.Populated = true;
|
||||
}
|
||||
if (parentNode != null)
|
||||
parentNode.Nodes.Add(node);
|
||||
else
|
||||
spaceTree.Nodes.Add(node);
|
||||
return node;
|
||||
}
|
||||
|
||||
private void OnSelectClick(object sender, EventArgs e)
|
||||
{
|
||||
DataNode node = spaceTree.SelectedNode as DataNode;
|
||||
if (node == null || node.NodeType != SPACE)
|
||||
{
|
||||
ShowWarning("Please select hosting space.");
|
||||
return;
|
||||
}
|
||||
PackageInfo data = node.Tag as PackageInfo;
|
||||
if (data == null || data.PackageId == 0 || data.PackageId == 1)
|
||||
{
|
||||
ShowWarning("Invalid hosting space. Please select hosting space with allowed Exchange organizations.");
|
||||
return;
|
||||
}
|
||||
|
||||
PackageContext cntx = null;
|
||||
try
|
||||
{
|
||||
cntx = PackageController.GetPackageContext(data.PackageId);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ShowError("Unable to load space data", ex);
|
||||
return;
|
||||
}
|
||||
|
||||
if (cntx == null)
|
||||
{
|
||||
ShowWarning("Invalid hosting space. Please select hosting space with allowed Exchange organizations.");
|
||||
return;
|
||||
}
|
||||
|
||||
bool exchangeEnabled = false;
|
||||
bool orgEnabled = false;
|
||||
|
||||
foreach (HostingPlanGroupInfo group in cntx.GroupsArray)
|
||||
{
|
||||
if (!group.Enabled)
|
||||
continue;
|
||||
if (group.GroupName == ResourceGroups.Exchange)
|
||||
{
|
||||
exchangeEnabled = true;
|
||||
continue;
|
||||
}
|
||||
else if (group.GroupName == ResourceGroups.HostedOrganizations)
|
||||
{
|
||||
orgEnabled = true;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (!exchangeEnabled || !orgEnabled)
|
||||
{
|
||||
ShowWarning("Invalid hosting space. Please select hosting space with allowed Exchange organizations.");
|
||||
return;
|
||||
}
|
||||
this.selectedSpace = data;
|
||||
this.DialogResult = DialogResult.OK;
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private PackageInfo selectedSpace;
|
||||
|
||||
public PackageInfo SelectedSpace
|
||||
{
|
||||
get { return selectedSpace; }
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,201 @@
|
|||
<?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>
|
||||
<metadata name="images.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<data name="images.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACK
|
||||
EAAAAk1TRnQBSQFMAgEBBAEAAQwBAAEEAQABEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA
|
||||
AwABIAMAAQEBAAEYBgABGP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/ALoAA/sD7wHeAdsB2AHVAc8ByQHX
|
||||
AdMBzgHlAeMB4gP2GAAB+QL4AcwBxgHBAbYBrAGhAaoBmQGKAaEBiwF6AaoBmQGKAbYBrAGhAckBxAG/
|
||||
Ae8B7gHtIQAB+QL4AcwBxAG/AbcBqgGeAawBmAGGAaQBiwF3AawBmAGGAbcBqgGeAckBwwG9Ae8B7gHt
|
||||
OQAB8gLxAb8BpQGMAdIBkgFKAeoBpAFSAe8BrQFaAe8BrgFYAekBqQFUAckBnQFnAdEByAG9A/0PAAP+
|
||||
Aa8BoQGVAbEBlQF6AeYBywG0Ad4BtwGQAeMBuwGUAeABugGUAc4BqwGIAbgBmQF8AcABsgGkEgAD/QP4
|
||||
A/cD+AP7Aa8BnwGRAbYBlgF3AfQB1QG6AeoBvgGRAfABwgGVAe0BwQGVAdgBsAGIAb8BmwF6AcEBsgGi
|
||||
AwABdQGEAY8BbAF6AYUBYAFtAXcBUQFdAWYBQgFMAVQBMQE6AUEBIwEqATABFgEcASEBDgETARgBDgET
|
||||
ARgBDgETARgBDgETARgBDgETARgBDgETARgBDgETARgGAAHzAe4B6gHiAZcBTQHnAZgBRAHiAZsBSQHh
|
||||
AZ8BTgHjAaQBUwHkAacBUgHmAakBTwHvAbcBXQH2Ab0BZQHkAb0BkQP9DAAD/gHGAbkBqQHGAaUBhQHm
|
||||
AdABvQHiAb0BnAHmAb8BlwHoAcMBnwHbAboBmAHAAZ8BfwG7AasBnQwAA/YBtAG/AboBZgGWAX8BWgGV
|
||||
AXcBVAGSAXQBagGVAX8BWQGFAWwBrAGRAXEBzwGpAYQB9AHaAcQB7wHEAZ8B9AHHAZkB9gHLAaIB5wHB
|
||||
AZoByAGiAX0BvQGqAZoDAAF3AYcBkgGiAd8B8AFwAc0B6gFJAbgB4gE3Aa4B2wEtAakB2QEmAaEB0gEh
|
||||
AZgBxwEgAY4BvAEeAYMBrgEZAX8BqwEVAXwBqQEbAXcBnwEfAXIBlgEWARwBIQMAAfcB8wHvAdsBiAE6
|
||||
AdUBfAEmAdUBfgEjAdcBggEjAdkBiAEmAdwBkAEuAeABmgE8AeMBoQFFAeMBoQE+AecBrQFRAeoBsgFX
|
||||
AekBwAGRDAAD/wHPAcoBtwHZAbEBkAHmAdQBwQHzAdIBswHqAcEBmAHtAcwBqgHgAcIBpAHDAaMBggGu
|
||||
AZwBjAwAA+cBbAHDAZkBZAHAAZEBXAG4AYkBVAGyAYQBoAHBAagBWgGnAX0BrwGgAXEB5QG3AZEB9AHf
|
||||
AckB/wHdAbkB+AHJAZoB/AHWAa8B7QHKAagBywGnAYEBrwGbAYkDAAF6AYoBlQGqAegB9gGVAeUB/AGE
|
||||
Ad8B+wF1AdYB+gFqAdAB9wFdAcYB9AFQAb4B8AFBAbQB7AE1AaoB6AErAaQB5gEgAZoB3wEWAZAB1wEb
|
||||
AXcBnwEgAScBLQP/Ad4BrAF8AdABcgEeAdMBeAEgAdQBewEgAdYBfwEgAdcBgwEfAdkBhQEeAdoBiQEe
|
||||
Ad0BkQEoAeABmgE0AeEBnAEzAecBrAFQAeQBpAFAAe4B4QHSCQAG/wHwAdABsAHQAcMBsgHIAcMBuwHX
|
||||
AbcBlwHrAcQBnQHhAb4BmwHOAaYBfwHSAcoBwgwAA/YBcwHKAaABagHCAZYBZQG/AZMBbAHAAZEB0QHj
|
||||
AcYBZQG1AZABjQGrAXcB/wHSAaUB2gHLAbgB0QHLAcIB4gG+AZkB+QHMAaAB7gHGAZ0B2AGqAX0B0gHJ
|
||||
AcADAAF9AY4BmAGwAeoB9gGfAekB+wGSAeQB/AGBAd0B+wF1AdYB+gFoAc4B9wFdAcYB9AFNAbwB8AFB
|
||||
AbQB7AE1AaoB6AEqAaMB5gEdAZYB3AEVAXwBqQEtATQBOwH0Ae8B6QHiAacBcwHTAXkBKwHSAXQBHgHU
|
||||
AXoBIQHVAX4BIQHXAYEBIQHYAYUBIQHaAYgBIAHbAYoBHwHcAY8BIgHeAZQBKAHgAZoBMgHlAagBSgHi
|
||||
Aa8BbwP+CQAD/wL1AfQBpAGnAawBGwFLAXwBTwFpAYMBxgGmAYcB1AGxAY4B0QHIAb8D/QwAA/sBgQHP
|
||||
AagBcwHKAaABaQHEAZUBggHDAagBsgHKAb8BYAGqAYUBTQGoAXcBsgGuAY4BfAGCAYwBCgFBAXoBRgFk
|
||||
AYIBzwGqAYYB3AG0AY0B0gHHAb0D/QMAAYABkQGcAbYB7QH4AaoB7AH7AZsB6AH7AY8B4wH8AYEB3QH7
|
||||
AXEB1QH5AWgBzgH3AVsBxQH0AU0BvAHwAT0BsgHsATIBqQHoASQBngHiARABggG0ATsBQwFLAesB1wHB
|
||||
AeoBvgGdAeEBpAFwAdEBcwEfAdIBdwEeAdQBfAEhAdYBfwEhAdcBggEhAdkBhQEgAdoBiAEgAdsBigEg
|
||||
AdwBjQEhAdwBjgEhAeIBnwFAAd4BmAE3AfYB8wHvBgAG/wP6Aa0BugHHATABVQF8AScBUQF8AZUBmQGb
|
||||
AeYB4QHcAwAD/g8AAdMB6AHeAXcBzAGhAWcBvAGRAWABkQGyAVcBgAGlAUEBfgFcAYABsQGWAaABrgGz
|
||||
ATwBYQGKASIBTQF6ARgBSAF6AY8BlAGWAegB4QHbAwAD/gMAAYMBlQGfAb4B8AH5AasB8AH3AaUB7AH7
|
||||
AZgB5wH7AYkB4QH8AX8B3QH7AXEB1QH5AWUBzQH3AVgBxAHzAUsBuwHwAT0BsgHsASwBpAHjAQwBigG/
|
||||
AUkBUwFcAegBywGuAewBxQGpAekBvwGcAeABoQFqAdIBdgEhAdIBdgEcAdUBfAEgAdYBfwEhAdcBggEg
|
||||
AdgBhQEgAdkBhwEgAdoBiQEgAdoBiQEdAd8BlgE1Ad8BlwE3AfEB6AHeBgAG/gH0AvUBcwGRAa8BTAFz
|
||||
AZsBRwFsAZMBNQFbAYEC8AHxGAAB6AHxAe0BZwGyAZUBTwF8AagBYAGJAa0BrAHAAb0B8ALyAW0BjgGx
|
||||
AUMBbwGdAT0BZwGUASgBVAGAAvAB8QwAAYYBmQGjAb4B8AH5AbYB7QH4AbAB7gH6AaQB6wH6AZUB5gH7
|
||||
AYkB4QH8AX0B3AH8AXEB1QH5AWUBzQH3AVgBxAHzAUkBuQHvATUBqQHnAQwBjwHHAVcBYwFrAegBzgGv
|
||||
Ae4BzQG2AesBwwGjAekBvwGbAeMBqwF4AdgBiAE8AdMBeAEfAdQBeQEbAdUBfgEeAdcBgQEfAdgBgwEg
|
||||
AdkBhQEgAdkBhgEeAdwBkQEyAd4BlAE3AfEB6AHcBgAD/gMAAcwB0wHZAXUBmQG8AWoBkAG2AVsBgQGn
|
||||
AUEBaQGQAbsBwgHJA/4VAAHFAdAB1wE5AWwBiQF1AaEBzAGDAasB2QFfAYQBpgHCAcsB1AFxAZoBwwFl
|
||||
AZEBvAFUAYABqwE2AWQBkQG6AcEByQP+CQABiQGcAaYBvgHwAfkBtgHtAfgBtgHtAfgBqwHwAfcBogHs
|
||||
AfoBlQHmAfsBiQHhAfwBfQHcAfwBbwHTAfoBYwHMAfcBVQHDAfMBSQG5Ae8BGQGZAc8BYwFwAXoB6wHY
|
||||
AcEB8AHUAcEB7QHLAbEB6wHDAaIB6QG+AZoB5wG4AYwB4QGkAWsB3AGRAUgB2AGGATEB1wGBAScB1wGB
|
||||
ASIB1wGCASEB1wGCAR4B2wGOATMB3AGRATcB9QHwAesGAAP+A/8B2wHhAeUBjwGxAdQBggGoAc4BagGR
|
||||
AbgBTAFuAZIBMQFBAVED8xIAAfwC/QFlAZgBqgFYAYwBrwGhAcsB+QGWAcMB8QFvAZcBvwHWAd4B4wGP
|
||||
AbYB3wGBAawB2AFlAZIBvwFDAWoBkwEkATYBSAPzCQABiwGgAagBvgHwAfkBvgHwAfkBvgHwAfkBvgHw
|
||||
AfkBtAHyAfgBqgHsAfsBoAHpAfsBlQHlAfwBigHfAfwBfwHYAfsBdAHSAfgBaAHKAfQBXQHAAfEBYwFw
|
||||
AXoB8QHqAeAB8QHUAb4B8QHWAcMB7gHMAbMB6wHDAaMB6QG8AZYB5wG3AYwB5gGxAYEB4wGpAXEB4AGh
|
||||
AWEB3gGZAVIB3AGUAUYB2wGOATsB3QGWAUkB4QGpAWgB/AL7BgAG/wHDAdAB2gGkAccB6wGbAb8B5QFz
|
||||
AZ0BxwFLAV8BdAEzAS8BLAPrEgAB+wL8AWwBoQG0AY4BuQHfAcwB9AH/AaoB1gH+AZYBtQHWAwABpwHQ
|
||||
AfkBnQHHAfIBbwGgAdABQQFYAXEBJgEhAR4D6wkAAY0BoQGqAY0BoQGqAY0BoQGqAY0BoQGqAY0BoQGq
|
||||
AYsBnwGoAYkBnAGmAYkBmwGmAYcBmgGkAYYBmQGjAYQBlgGgAYQBlgGgAYMBlQGgAYMBlQGgAXUBhAGP
|
||||
Af0C/AHrAc0BqgH1AeEB1gHyAdgBxAHvAc4BtQHrAcUBpQHpAbwBlgHmAbUBiQHkAa4BfAHiAacBcAHg
|
||||
AaEBYwHeAZoBVgHdAZYBUAHfAZwBVwHsAdoBwwkAA/8GAAGSAaQBtgF/AZIBpgFpAXwBjgFPAVIBVgE5
|
||||
ATgBNwPyEgAD/wGbAcQBzwFsAacBwgG8AeMB9AGqAdIB+QGMAasBzgMAAZIBpwG8AX0BkwGqAWQBegGO
|
||||
AUYBSgFOAS0BLAErA/IJAAGPAaQBrAGyAeQB7AG2Ae0B+AG2Ae0B+AGpAewB9gGSAeEB8wGNAaEBqgHw
|
||||
AfEB8hgAAfIB6wHhAfMB2QHAAfYB5QHbAfMB2wHJAfAB0gG7Ae0ByQGsAeoBwQGeAegBugGSAeYBtAGH
|
||||
AeUBrwF+AeQBrQF5AeIBqAF0AeUBuAGCA/wMAAP/AwAB1gHUAdMBkQGPAY0BbwFtAWoBZgFlAWQDxAP+
|
||||
FQAB5AHtAe8BdwG+AdEBWwGgAbUBWAGTAbABQgF2AZMDAAHWAdUB1AGQAY0BjAFqAWgBZQFfAV4BXQPD
|
||||
A/4JAAHsAe0B7gGPAaQBrAGPAaQBrAGPAaQBrAGPAaQBrAGPAaQBrAHwAfEB8h4AAe8B4wHRAfMB2wHE
|
||||
AfcB6AHhAfQB4AHSAfIB2AHDAfAB0QG4Ae4BywGvAewByAGpAewBxgGoAeoBvwGcAecBuwGHAfgB9gHz
|
||||
DAAD/QMAA/0DAAP5A/AD9RsAA/0B4AHyAfYBqQHhAe4BiAHLAdkBgwG/Ac0B0wHhAeUDAAP5Au8B8AP1
|
||||
RQAB8wHuAeYB7gHUAbAB9AHdAcgB9QHhAdQB8wHdAc4B8gHXAcUB7wHQAbcB6wHFAZoB6wHVAbQC+gH5
|
||||
pQAD/gH0AfEB6gHvAeEBzAHtAdoBvQHtAdoBvwHwAeYB1wH5AfcB9Q8AAUIBTQE+BwABPgMAASgDAAFA
|
||||
AwABIAMAAQEBAAEBBgABARYAA/+BAAb/AfABHwHgAQ8B/gEAAv8B4AEHAcABDwHAAQABgAEAAcABAwHA
|
||||
AQ8CAAGAAQABgAEDAcABDwIAAYACAAEBAcABDwIAAYADAAHgAQ8CAAGAAwABwAEvAYABAgGAAwABwAE/
|
||||
AcABBwGAAwAB0AEfAcABAwGAAwABwAEfAYABAwGAAwABwAEfAYEBAwGAAgABAQHYAR8BgQEDAYABfwGA
|
||||
AQEB6AEfAcEBAwGAAf8BwAEDAdQBfwHAAY8C/wHgAQcG/wHwAR8L
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
|
@ -0,0 +1,149 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
public class Utils
|
||||
{
|
||||
private Utils()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public static int ParseInt(string val, int defaultValue)
|
||||
{
|
||||
int result;
|
||||
if (!Int32.TryParse(val, out result))
|
||||
{
|
||||
result = defaultValue;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static bool IsThreadAbortException(Exception ex)
|
||||
{
|
||||
Exception innerException = ex;
|
||||
while (innerException != null)
|
||||
{
|
||||
if (innerException is System.Threading.ThreadAbortException)
|
||||
return true;
|
||||
innerException = innerException.InnerException;
|
||||
}
|
||||
|
||||
string str = ex.ToString();
|
||||
return str.Contains("System.Threading.ThreadAbortException");
|
||||
}
|
||||
|
||||
#region DB
|
||||
|
||||
/// <summary>
|
||||
/// Converts db value to string
|
||||
/// </summary>
|
||||
/// <param name="val">Value</param>
|
||||
/// <returns>string</returns>
|
||||
public static string GetDbString(object val)
|
||||
{
|
||||
string ret = string.Empty;
|
||||
if ((val != null) && (val != DBNull.Value))
|
||||
ret = (string)val;
|
||||
return ret;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Converts db value to short
|
||||
/// </summary>
|
||||
/// <param name="val">Value</param>
|
||||
/// <returns>short</returns>
|
||||
public static short GetDbShort(object val)
|
||||
{
|
||||
short ret = 0;
|
||||
if ((val != null) && (val != DBNull.Value))
|
||||
ret = (short)val;
|
||||
return ret;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Converts db value to int
|
||||
/// </summary>
|
||||
/// <param name="val">Value</param>
|
||||
/// <returns>int</returns>
|
||||
public static int GetDbInt32(object val)
|
||||
{
|
||||
int ret = 0;
|
||||
if ((val != null) && (val != DBNull.Value))
|
||||
ret = (int)val;
|
||||
return ret;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Converts db value to bool
|
||||
/// </summary>
|
||||
/// <param name="val">Value</param>
|
||||
/// <returns>bool</returns>
|
||||
public static bool GetDbBool(object val)
|
||||
{
|
||||
bool ret = false;
|
||||
if ((val != null) && (val != DBNull.Value))
|
||||
ret = Convert.ToBoolean(val);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Converts db value to decimal
|
||||
/// </summary>
|
||||
/// <param name="val">Value</param>
|
||||
/// <returns>decimal</returns>
|
||||
public static decimal GetDbDecimal(object val)
|
||||
{
|
||||
decimal ret = 0;
|
||||
if ((val != null) && (val != DBNull.Value))
|
||||
ret = (decimal)val;
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Converts db value to datetime
|
||||
/// </summary>
|
||||
/// <param name="val">Value</param>
|
||||
/// <returns>DateTime</returns>
|
||||
public static DateTime GetDbDateTime(object val)
|
||||
{
|
||||
DateTime ret = DateTime.MinValue;
|
||||
if ((val != null) && (val != DBNull.Value))
|
||||
ret = (DateTime)val;
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
|
@ -0,0 +1,224 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>9.0.30729</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{3CC79CB9-C8B9-4658-A3C6-AE023445D091}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>WebsitePanel.Import.Enterprise</RootNamespace>
|
||||
<AssemblyName>WebsitePanel.Import.Enterprise</AssemblyName>
|
||||
<ApplicationIcon>application.ico</ApplicationIcon>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
<UpgradeBackupLocation>
|
||||
</UpgradeBackupLocation>
|
||||
<OldToolsVersion>3.5</OldToolsVersion>
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<StartupObject>WebsitePanel.Import.Enterprise.Program</StartupObject>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<PublishUrl>publish\</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>
|
||||
<ApplicationRevision>0</ApplicationRevision>
|
||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
<TargetFrameworkProfile />
|
||||
</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>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<UseVSHostingProcess>true</UseVSHostingProcess>
|
||||
</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>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.configuration" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.DirectoryServices" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="WebsitePanel.EnterpriseServer">
|
||||
<HintPath>..\..\WebsitePanel.EnterpriseServer\bin\WebsitePanel.EnterpriseServer.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="WebsitePanel.EnterpriseServer.Base">
|
||||
<HintPath>..\..\..\Bin\WebsitePanel.EnterpriseServer.Base.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="WebsitePanel.EnterpriseServer.Client">
|
||||
<HintPath>..\..\..\Bin\WebsitePanel.EnterpriseServer.Client.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="WebsitePanel.Providers.Base">
|
||||
<HintPath>..\..\..\Bin\WebsitePanel.Providers.Base.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="..\..\VersionInfo.cs">
|
||||
<Link>VersionInfo.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="ADUtils.cs" />
|
||||
<Compile Include="AnimatedIcon.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ApplicationForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ApplicationForm.Designer.cs">
|
||||
<DependentUpon>ApplicationForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="BaseForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Global.cs" />
|
||||
<Compile Include="ImportAction.cs" />
|
||||
<Compile Include="OrganizationImporter.cs" />
|
||||
<Compile Include="OUForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="OUForm.Designer.cs">
|
||||
<DependentUpon>OUForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="DataNode.cs" />
|
||||
<Compile Include="SpaceForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SpaceForm.Designer.cs">
|
||||
<DependentUpon>SpaceForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ConnectForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ConnectForm.Designer.cs">
|
||||
<DependentUpon>ConnectForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="LineBox.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LineBox.Designer.cs">
|
||||
<DependentUpon>LineBox.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Log.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="ProgressIcon.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="ApplicationForm.resx">
|
||||
<SubType>Designer</SubType>
|
||||
<DependentUpon>ApplicationForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="ConnectForm.resx">
|
||||
<DependentUpon>ConnectForm.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="OUForm.resx">
|
||||
<DependentUpon>OUForm.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="ProgressIcon.resx">
|
||||
<DependentUpon>ProgressIcon.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SpaceForm.resx">
|
||||
<SubType>Designer</SubType>
|
||||
<DependentUpon>SpaceForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<None Include="App.config" />
|
||||
<Compile Include="Utils.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="application.ico" />
|
||||
<None Include="Resources\OU.ico" />
|
||||
<None Include="Resources\UsersLargeIcon.ico" />
|
||||
<None Include="Resources\UsersSmallIcon.ico" />
|
||||
<None Include="Resources\UserLargeIcon.ico" />
|
||||
<None Include="Resources\SpaceSmallIcon.ico" />
|
||||
<None Include="Resources\SpaceLargeIcon.ico" />
|
||||
<None Include="Resources\RefreshImage.bmp" />
|
||||
<None Include="Resources\ProgressImage8.bmp" />
|
||||
<None Include="Resources\ProgressImage7.bmp" />
|
||||
<None Include="Resources\ProgressImage6.bmp" />
|
||||
<None Include="Resources\ProgressImage5.bmp" />
|
||||
<None Include="Resources\ProgressImage4.bmp" />
|
||||
<None Include="Resources\ProgressImage3.bmp" />
|
||||
<None Include="Resources\ProgressImage2.bmp" />
|
||||
<None Include="Resources\ProgressImage1.bmp" />
|
||||
<None Include="Resources\FolderSmallIcon.ico" />
|
||||
<None Include="Resources\FolderLargeIcon.ico" />
|
||||
<None Include="Resources\ConnectLogo.bmp" />
|
||||
<None Include="Resources\ConnectImage.bmp" />
|
||||
<None Include="Resources\BannerImage.GIF" />
|
||||
<None Include="Resources\UserSmallIcon.ico" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1 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>true</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>false</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\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>
|
After Width: | Height: | Size: 84 KiB |