From d1a9e5ec802426bf42d313b50aa814e26602e96b Mon Sep 17 00:00:00 2001 From: t0815 <10379828+t0815@users.noreply.github.com> Date: Fri, 18 Oct 2024 15:19:48 +0200 Subject: [PATCH] collect metadata validation errors for displaying them al together, replace flow-layout pane --- MyCBZ/Data/DataValidation.cs | 59 ++- .../Events/UpdatePageListViewSortingEvent.cs | 2 + MyCBZ/Forms/MainForm.Designer.cs | 259 +++++++------ MyCBZ/Forms/MainForm.cs | 278 +++++++------- MyCBZ/Forms/MainForm.resx | 346 +++++++++--------- MyCBZ/List/ListViewSorter.cs | 2 + MyCBZ/Models/ProjectModel.cs | 12 +- MyCBZ/Tasks/ProcessImagesTask.cs | 2 - MyCBZ/Win_CBZ.csproj | 26 +- 9 files changed, 531 insertions(+), 455 deletions(-) diff --git a/MyCBZ/Data/DataValidation.cs b/MyCBZ/Data/DataValidation.cs index 1b57f6c4..2e39b4b1 100644 --- a/MyCBZ/Data/DataValidation.cs +++ b/MyCBZ/Data/DataValidation.cs @@ -1,4 +1,6 @@ -using System; +using Microsoft.IdentityModel.Protocols.WsTrust; +using SharpCompress.Common; +using System; using System.Collections; using System.Collections.Generic; using System.Linq; @@ -7,6 +9,7 @@ using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; +using System.Windows.Controls; using System.Windows.Forms; using Win_CBZ.Events; using static Win_CBZ.Handler.AppEventHandler; @@ -114,35 +117,61 @@ public bool ValidateMetaDataInvalidKeys(ref ArrayList metaDataEntryErrors, bool { bool error = false; - foreach (MetaDataEntry entryA in Program.ProjectModel.MetaData.Values) + foreach (MetaDataEntry entry in Program.ProjectModel.MetaData.Values) { - if (Program.ProjectModel.MetaData.ProtectedKeys.IndexOf(entryA.Key.ToLower()) != -1 || - entryA.Key.Length == 0) + try { - metaDataEntryErrors.Add(entryA.Key); - error = true; - } + if (Program.ProjectModel.MetaData.ProtectedKeys.IndexOf(entry.Key.ToLower()) != -1) + { + throw new MetaDataValidationException(entry, null, "Key with name ['" + entry.Key + "'] is not allowed!", showError); + } - if (cancellationToken != null) - { - if (cancellationToken.Value.IsCancellationRequested) + //Regex re = Regex.("/[a-z]+$/gi"); + + if (entry != null && !Regex.IsMatch(entry.Key, @"^[a-z]+$", RegexOptions.IgnoreCase)) { - break; + throw new MetaDataValidationException(entry, null, "Key with name ['" + entry.Key + "'] must contain only values between ['a-zA-Z']!", showError); } + + + if (cancellationToken != null) + { + if (cancellationToken.Value.IsCancellationRequested) + { + break; + } + } + } + catch (MetaDataValidationException ex) + { + metaDataEntryErrors.Add(ex.Message); + error = true; } } + string[] duplicates = ValidateDuplicateStrings(Program.ProjectModel.MetaData.Values.ToArray().Select(s => s.Key).ToArray()); + + if (duplicates.Length > 0) + { + metaDataEntryErrors.Add("Duplicate keys ['" + String.Join(",", duplicates) + "'] not allowed!"); + error = true; + } + if (error) { String lines = string.Join("\r\n", metaDataEntryErrors.ToArray()); - String errorText = string.Join(", ", metaDataEntryErrors.ToArray()); + if (showError) { - MessageLogger.Instance.Log(LogMessageEvent.LOGMESSAGE_TYPE_WARNING, "Metadata Validation failed! Invalid Keys [" + errorText + "] found."); - DialogResult r = ApplicationMessage.ShowWarning("Metadata Validation failed! The folliwing keys are no allowed:\r\n\r\n" + lines, "Metadata Validation Error", ApplicationMessage.DialogType.MT_WARNING, ApplicationMessage.DialogButtons.MB_OK); + MessageLogger.Instance.Log(LogMessageEvent.LOGMESSAGE_TYPE_WARNING, "Metadata validation failed!"); - + foreach (String errorText in metaDataEntryErrors) + { + MessageLogger.Instance.Log(LogMessageEvent.LOGMESSAGE_TYPE_WARNING, errorText); + } + + DialogResult r = ApplicationMessage.ShowWarning("Metadata validation failed!\r\nThe following keys are not valid:\r\n\r\n" + lines, "Metadata Validation Error", ApplicationMessage.DialogType.MT_WARNING, ApplicationMessage.DialogButtons.MB_OK); } } diff --git a/MyCBZ/Events/UpdatePageListViewSortingEvent.cs b/MyCBZ/Events/UpdatePageListViewSortingEvent.cs index b8c9207e..ca81f8a9 100644 --- a/MyCBZ/Events/UpdatePageListViewSortingEvent.cs +++ b/MyCBZ/Events/UpdatePageListViewSortingEvent.cs @@ -1,12 +1,14 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Runtime.Versioning; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Win_CBZ.Events { + [SupportedOSPlatform("windows")] internal class UpdatePageListViewSortingEvent { public int SortColumn { get; set; } = 1; // sort by index by default diff --git a/MyCBZ/Forms/MainForm.Designer.cs b/MyCBZ/Forms/MainForm.Designer.cs index 567c694c..4848cf16 100644 --- a/MyCBZ/Forms/MainForm.Designer.cs +++ b/MyCBZ/Forms/MainForm.Designer.cs @@ -216,19 +216,19 @@ private void InitializeComponent() propertiesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); PageSmallIcons = new System.Windows.Forms.ImageList(components); MetadataPanel = new System.Windows.Forms.TableLayoutPanel(); - MetadataEditorHeaderFlowLayoutPanel = new System.Windows.Forms.FlowLayoutPanel(); - LabelMetadataPanel = new System.Windows.Forms.Label(); - TextBoxMetaDataFilename = new System.Windows.Forms.TextBox(); - TextBoxMetadataKeys = new System.Windows.Forms.Label(); - TextBoxCountKeys = new System.Windows.Forms.TextBox(); - BtnAddMetaData = new System.Windows.Forms.Button(); - SmallIconsImages = new System.Windows.Forms.ImageList(components); + tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); BtnRemoveMetaData = new System.Windows.Forms.Button(); + SmallIconsImages = new System.Windows.Forms.ImageList(components); + BtnAddMetaData = new System.Windows.Forms.Button(); + TextBoxCountKeys = new System.Windows.Forms.TextBox(); + TextBoxMetadataKeys = new System.Windows.Forms.Label(); + TextBoxMetaDataFilename = new System.Windows.Forms.TextBox(); ButtonFilter = new System.Windows.Forms.Button(); + ButtonConfigureKeyFilter = new System.Windows.Forms.Button(); + LabelMetadataPanel = new System.Windows.Forms.Label(); ButtonSelectFilter = new System.Windows.Forms.Button(); ContextMenuUserFilterList = new System.Windows.Forms.ContextMenuStrip(components); requiredToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - ButtonConfigureKeyFilter = new System.Windows.Forms.Button(); MetaDataTableActionsPanel = new System.Windows.Forms.FlowLayoutPanel(); AddMetaDataRowBtn = new System.Windows.Forms.Button(); RemoveMetadataRowBtn = new System.Windows.Forms.Button(); @@ -311,7 +311,7 @@ private void InitializeComponent() SplitBoxItemsList.SuspendLayout(); PageListContextMenu.SuspendLayout(); MetadataPanel.SuspendLayout(); - MetadataEditorHeaderFlowLayoutPanel.SuspendLayout(); + tableLayoutPanel2.SuspendLayout(); ContextMenuUserFilterList.SuspendLayout(); MetaDataTableActionsPanel.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)MetaDataGrid).BeginInit(); @@ -2352,7 +2352,7 @@ private void InitializeComponent() MetadataPanel.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; MetadataPanel.ColumnCount = 1; MetadataPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); - MetadataPanel.Controls.Add(MetadataEditorHeaderFlowLayoutPanel, 0, 0); + MetadataPanel.Controls.Add(tableLayoutPanel2, 0, 0); MetadataPanel.Controls.Add(MetaDataTableActionsPanel, 0, 2); MetadataPanel.Controls.Add(MetaDataGrid, 0, 1); MetadataPanel.Dock = System.Windows.Forms.DockStyle.Fill; @@ -2360,89 +2360,84 @@ private void InitializeComponent() MetadataPanel.Margin = new System.Windows.Forms.Padding(2); MetadataPanel.Name = "MetadataPanel"; MetadataPanel.RowCount = 3; - MetadataPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); - MetadataPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + MetadataPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 18.8073387F)); + MetadataPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 81.19266F)); MetadataPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 45F)); MetadataPanel.Size = new System.Drawing.Size(932, 264); MetadataPanel.TabIndex = 10; + MetadataPanel.Paint += MetadataPanel_Paint; + // + // tableLayoutPanel2 + // + tableLayoutPanel2.ColumnCount = 10; + tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 59F)); + tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 51F)); + tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 162F)); + tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 180F)); + tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 40F)); + tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 60F)); + tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 135F)); + tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 33F)); + tableLayoutPanel2.Controls.Add(BtnRemoveMetaData, 5, 0); + tableLayoutPanel2.Controls.Add(BtnAddMetaData, 4, 0); + tableLayoutPanel2.Controls.Add(TextBoxCountKeys, 3, 0); + tableLayoutPanel2.Controls.Add(TextBoxMetadataKeys, 2, 0); + tableLayoutPanel2.Controls.Add(TextBoxMetaDataFilename, 1, 0); + tableLayoutPanel2.Controls.Add(ButtonFilter, 6, 0); + tableLayoutPanel2.Controls.Add(ButtonConfigureKeyFilter, 7, 0); + tableLayoutPanel2.Controls.Add(LabelMetadataPanel, 0, 0); + tableLayoutPanel2.Controls.Add(ButtonSelectFilter, 8, 0); + tableLayoutPanel2.Location = new System.Drawing.Point(3, 3); + tableLayoutPanel2.Name = "tableLayoutPanel2"; + tableLayoutPanel2.RowCount = 1; + tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle()); + tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + tableLayoutPanel2.Size = new System.Drawing.Size(885, 35); + tableLayoutPanel2.TabIndex = 16; // - // MetadataEditorHeaderFlowLayoutPanel - // - MetadataEditorHeaderFlowLayoutPanel.Controls.Add(LabelMetadataPanel); - MetadataEditorHeaderFlowLayoutPanel.Controls.Add(TextBoxMetaDataFilename); - MetadataEditorHeaderFlowLayoutPanel.Controls.Add(TextBoxMetadataKeys); - MetadataEditorHeaderFlowLayoutPanel.Controls.Add(TextBoxCountKeys); - MetadataEditorHeaderFlowLayoutPanel.Controls.Add(BtnAddMetaData); - MetadataEditorHeaderFlowLayoutPanel.Controls.Add(BtnRemoveMetaData); - MetadataEditorHeaderFlowLayoutPanel.Controls.Add(ButtonFilter); - MetadataEditorHeaderFlowLayoutPanel.Controls.Add(ButtonSelectFilter); - MetadataEditorHeaderFlowLayoutPanel.Controls.Add(ButtonConfigureKeyFilter); - MetadataEditorHeaderFlowLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill; - MetadataEditorHeaderFlowLayoutPanel.Location = new System.Drawing.Point(5, 5); - MetadataEditorHeaderFlowLayoutPanel.Margin = new System.Windows.Forms.Padding(5); - MetadataEditorHeaderFlowLayoutPanel.Name = "MetadataEditorHeaderFlowLayoutPanel"; - MetadataEditorHeaderFlowLayoutPanel.Padding = new System.Windows.Forms.Padding(0, 2, 0, 0); - MetadataEditorHeaderFlowLayoutPanel.Size = new System.Drawing.Size(922, 38); - MetadataEditorHeaderFlowLayoutPanel.TabIndex = 9; - // - // LabelMetadataPanel - // - LabelMetadataPanel.Location = new System.Drawing.Point(2, 2); - LabelMetadataPanel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - LabelMetadataPanel.Name = "LabelMetadataPanel"; - LabelMetadataPanel.Padding = new System.Windows.Forms.Padding(0, 7, 0, 0); - LabelMetadataPanel.Size = new System.Drawing.Size(78, 29); - LabelMetadataPanel.TabIndex = 1; - LabelMetadataPanel.Text = "Metadata"; - // - // TextBoxMetaDataFilename - // - AutoCompleteItems.SetAutocompleteMenu(TextBoxMetaDataFilename, null); - TextBoxMetaDataFilename.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 0); - TextBoxMetaDataFilename.Location = new System.Drawing.Point(84, 5); - TextBoxMetaDataFilename.Margin = new System.Windows.Forms.Padding(2, 3, 2, 2); - TextBoxMetaDataFilename.Name = "TextBoxMetaDataFilename"; - TextBoxMetaDataFilename.ReadOnly = true; - TextBoxMetaDataFilename.Size = new System.Drawing.Size(169, 27); - TextBoxMetaDataFilename.TabIndex = 9; - // - // TextBoxMetadataKeys + // BtnRemoveMetaData // - TextBoxMetadataKeys.AutoSize = true; - TextBoxMetadataKeys.Location = new System.Drawing.Point(263, 2); - TextBoxMetadataKeys.Margin = new System.Windows.Forms.Padding(8, 0, 2, 0); - TextBoxMetadataKeys.Name = "TextBoxMetadataKeys"; - TextBoxMetadataKeys.Padding = new System.Windows.Forms.Padding(0, 7, 5, 0); - TextBoxMetadataKeys.Size = new System.Drawing.Size(47, 27); - TextBoxMetadataKeys.TabIndex = 10; - TextBoxMetadataKeys.Text = "Keys:"; + BtnRemoveMetaData.Dock = System.Windows.Forms.DockStyle.Top; + BtnRemoveMetaData.Enabled = false; + BtnRemoveMetaData.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + BtnRemoveMetaData.ImageIndex = 1; + BtnRemoveMetaData.ImageList = SmallIconsImages; + BtnRemoveMetaData.Location = new System.Drawing.Point(529, 2); + BtnRemoveMetaData.Margin = new System.Windows.Forms.Padding(2); + BtnRemoveMetaData.Name = "BtnRemoveMetaData"; + BtnRemoveMetaData.Padding = new System.Windows.Forms.Padding(3, 0, 0, 0); + BtnRemoveMetaData.RightToLeft = System.Windows.Forms.RightToLeft.No; + BtnRemoveMetaData.Size = new System.Drawing.Size(176, 33); + BtnRemoveMetaData.TabIndex = 8; + BtnRemoveMetaData.Text = "Remove Metadata"; + BtnRemoveMetaData.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + BtnRemoveMetaData.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + BtnRemoveMetaData.UseMnemonic = false; + BtnRemoveMetaData.UseVisualStyleBackColor = true; + BtnRemoveMetaData.Click += BtnRemoveMetaData_Click; // - // TextBoxCountKeys + // SmallIconsImages // - AutoCompleteItems.SetAutocompleteMenu(TextBoxCountKeys, null); - TextBoxCountKeys.BackColor = System.Drawing.SystemColors.Control; - TextBoxCountKeys.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 0); - TextBoxCountKeys.Location = new System.Drawing.Point(315, 5); - TextBoxCountKeys.Margin = new System.Windows.Forms.Padding(3, 3, 9, 3); - TextBoxCountKeys.Name = "TextBoxCountKeys"; - TextBoxCountKeys.ReadOnly = true; - TextBoxCountKeys.Size = new System.Drawing.Size(36, 27); - TextBoxCountKeys.TabIndex = 12; - TextBoxCountKeys.Text = "0"; - TextBoxCountKeys.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + SmallIconsImages.ColorDepth = System.Windows.Forms.ColorDepth.Depth24Bit; + SmallIconsImages.ImageStream = (System.Windows.Forms.ImageListStreamer)resources.GetObject("SmallIconsImages.ImageStream"); + SmallIconsImages.TransparentColor = System.Drawing.Color.Transparent; + SmallIconsImages.Images.SetKeyName(0, "add.png"); + SmallIconsImages.Images.SetKeyName(1, "delete.png"); // // BtnAddMetaData // - BtnAddMetaData.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right; + BtnAddMetaData.Dock = System.Windows.Forms.DockStyle.Top; BtnAddMetaData.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; BtnAddMetaData.ImageIndex = 0; BtnAddMetaData.ImageList = SmallIconsImages; - BtnAddMetaData.Location = new System.Drawing.Point(362, 4); + BtnAddMetaData.Location = new System.Drawing.Point(367, 2); BtnAddMetaData.Margin = new System.Windows.Forms.Padding(2); BtnAddMetaData.Name = "BtnAddMetaData"; BtnAddMetaData.Padding = new System.Windows.Forms.Padding(3, 0, 0, 0); BtnAddMetaData.RightToLeft = System.Windows.Forms.RightToLeft.No; - BtnAddMetaData.Size = new System.Drawing.Size(174, 30); + BtnAddMetaData.Size = new System.Drawing.Size(158, 33); BtnAddMetaData.TabIndex = 7; BtnAddMetaData.Text = "Add Metadata"; BtnAddMetaData.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; @@ -2450,61 +2445,94 @@ private void InitializeComponent() BtnAddMetaData.UseVisualStyleBackColor = true; BtnAddMetaData.Click += BtnAddMetaData_Click; // - // SmallIconsImages + // TextBoxCountKeys // - SmallIconsImages.ColorDepth = System.Windows.Forms.ColorDepth.Depth24Bit; - SmallIconsImages.ImageStream = (System.Windows.Forms.ImageListStreamer)resources.GetObject("SmallIconsImages.ImageStream"); - SmallIconsImages.TransparentColor = System.Drawing.Color.Transparent; - SmallIconsImages.Images.SetKeyName(0, "add.png"); - SmallIconsImages.Images.SetKeyName(1, "delete.png"); + TextBoxCountKeys.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left; + AutoCompleteItems.SetAutocompleteMenu(TextBoxCountKeys, null); + TextBoxCountKeys.BackColor = System.Drawing.SystemColors.Control; + TextBoxCountKeys.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 0); + TextBoxCountKeys.Location = new System.Drawing.Point(317, 4); + TextBoxCountKeys.Margin = new System.Windows.Forms.Padding(3, 4, 9, 3); + TextBoxCountKeys.Name = "TextBoxCountKeys"; + TextBoxCountKeys.ReadOnly = true; + TextBoxCountKeys.Size = new System.Drawing.Size(36, 27); + TextBoxCountKeys.TabIndex = 12; + TextBoxCountKeys.Text = "0"; + TextBoxCountKeys.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; // - // BtnRemoveMetaData + // TextBoxMetadataKeys // - BtnRemoveMetaData.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right; - BtnRemoveMetaData.Enabled = false; - BtnRemoveMetaData.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - BtnRemoveMetaData.ImageIndex = 1; - BtnRemoveMetaData.ImageList = SmallIconsImages; - BtnRemoveMetaData.Location = new System.Drawing.Point(540, 4); - BtnRemoveMetaData.Margin = new System.Windows.Forms.Padding(2); - BtnRemoveMetaData.Name = "BtnRemoveMetaData"; - BtnRemoveMetaData.Padding = new System.Windows.Forms.Padding(3, 0, 0, 0); - BtnRemoveMetaData.RightToLeft = System.Windows.Forms.RightToLeft.No; - BtnRemoveMetaData.Size = new System.Drawing.Size(173, 30); - BtnRemoveMetaData.TabIndex = 8; - BtnRemoveMetaData.Text = "Remove Metadata"; - BtnRemoveMetaData.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - BtnRemoveMetaData.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; - BtnRemoveMetaData.UseMnemonic = false; - BtnRemoveMetaData.UseVisualStyleBackColor = true; - BtnRemoveMetaData.Click += BtnRemoveMetaData_Click; + TextBoxMetadataKeys.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left; + TextBoxMetadataKeys.AutoSize = true; + TextBoxMetadataKeys.Location = new System.Drawing.Point(263, 0); + TextBoxMetadataKeys.Margin = new System.Windows.Forms.Padding(8, 0, 2, 0); + TextBoxMetadataKeys.Name = "TextBoxMetadataKeys"; + TextBoxMetadataKeys.Padding = new System.Windows.Forms.Padding(0, 7, 5, 0); + TextBoxMetadataKeys.Size = new System.Drawing.Size(47, 41); + TextBoxMetadataKeys.TabIndex = 10; + TextBoxMetadataKeys.Text = "Keys:"; + // + // TextBoxMetaDataFilename + // + TextBoxMetaDataFilename.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left; + AutoCompleteItems.SetAutocompleteMenu(TextBoxMetaDataFilename, null); + TextBoxMetaDataFilename.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 0); + TextBoxMetaDataFilename.Location = new System.Drawing.Point(84, 4); + TextBoxMetaDataFilename.Margin = new System.Windows.Forms.Padding(2, 4, 2, 2); + TextBoxMetaDataFilename.Name = "TextBoxMetaDataFilename"; + TextBoxMetaDataFilename.ReadOnly = true; + TextBoxMetaDataFilename.Size = new System.Drawing.Size(169, 27); + TextBoxMetaDataFilename.TabIndex = 9; // // ButtonFilter // ButtonFilter.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; ButtonFilter.FlatStyle = System.Windows.Forms.FlatStyle.Flat; ButtonFilter.Image = Properties.Resources.funnel; - ButtonFilter.Location = new System.Drawing.Point(717, 4); + ButtonFilter.Location = new System.Drawing.Point(709, 2); ButtonFilter.Margin = new System.Windows.Forms.Padding(2); ButtonFilter.Name = "ButtonFilter"; - ButtonFilter.Size = new System.Drawing.Size(36, 29); + ButtonFilter.Size = new System.Drawing.Size(36, 31); ButtonFilter.TabIndex = 13; ButtonFilter.TextImageRelation = System.Windows.Forms.TextImageRelation.TextBeforeImage; ButtonFilter.UseMnemonic = false; ButtonFilter.UseVisualStyleBackColor = true; ButtonFilter.Click += ButtonFilter_Click; // + // ButtonConfigureKeyFilter + // + ButtonConfigureKeyFilter.Image = Properties.Resources.funnel_gearwheels_16; + ButtonConfigureKeyFilter.Location = new System.Drawing.Point(749, 2); + ButtonConfigureKeyFilter.Margin = new System.Windows.Forms.Padding(2); + ButtonConfigureKeyFilter.Name = "ButtonConfigureKeyFilter"; + ButtonConfigureKeyFilter.Size = new System.Drawing.Size(36, 33); + ButtonConfigureKeyFilter.TabIndex = 15; + ButtonConfigureKeyFilter.UseVisualStyleBackColor = true; + ButtonConfigureKeyFilter.Click += ButtonConfigureKeyFilter_Click; + // + // LabelMetadataPanel + // + LabelMetadataPanel.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left; + LabelMetadataPanel.Location = new System.Drawing.Point(2, 0); + LabelMetadataPanel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + LabelMetadataPanel.Name = "LabelMetadataPanel"; + LabelMetadataPanel.Padding = new System.Windows.Forms.Padding(0, 7, 0, 0); + LabelMetadataPanel.Size = new System.Drawing.Size(78, 41); + LabelMetadataPanel.TabIndex = 1; + LabelMetadataPanel.Text = "Metadata"; + // // ButtonSelectFilter // + ButtonSelectFilter.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left; ButtonSelectFilter.AutoEllipsis = true; ButtonSelectFilter.ContextMenuStrip = ContextMenuUserFilterList; ButtonSelectFilter.FlatStyle = System.Windows.Forms.FlatStyle.Flat; ButtonSelectFilter.Image = Properties.Resources.dropdown_arrow; ButtonSelectFilter.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; - ButtonSelectFilter.Location = new System.Drawing.Point(756, 4); + ButtonSelectFilter.Location = new System.Drawing.Point(808, 2); ButtonSelectFilter.Margin = new System.Windows.Forms.Padding(1, 2, 2, 2); ButtonSelectFilter.Name = "ButtonSelectFilter"; - ButtonSelectFilter.Size = new System.Drawing.Size(113, 29); + ButtonSelectFilter.Size = new System.Drawing.Size(34, 37); ButtonSelectFilter.TabIndex = 14; ButtonSelectFilter.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; ButtonSelectFilter.TextImageRelation = System.Windows.Forms.TextImageRelation.TextBeforeImage; @@ -2525,17 +2553,6 @@ private void InitializeComponent() requiredToolStripMenuItem.Size = new System.Drawing.Size(138, 24); requiredToolStripMenuItem.Text = "Required"; // - // ButtonConfigureKeyFilter - // - ButtonConfigureKeyFilter.Image = Properties.Resources.funnel_gearwheels_16; - ButtonConfigureKeyFilter.Location = new System.Drawing.Point(873, 4); - ButtonConfigureKeyFilter.Margin = new System.Windows.Forms.Padding(2); - ButtonConfigureKeyFilter.Name = "ButtonConfigureKeyFilter"; - ButtonConfigureKeyFilter.Size = new System.Drawing.Size(36, 30); - ButtonConfigureKeyFilter.TabIndex = 15; - ButtonConfigureKeyFilter.UseVisualStyleBackColor = true; - ButtonConfigureKeyFilter.Click += ButtonConfigureKeyFilter_Click; - // // MetaDataTableActionsPanel // MetaDataTableActionsPanel.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right; @@ -2602,7 +2619,7 @@ private void InitializeComponent() dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.False; MetaDataGrid.DefaultCellStyle = dataGridViewCellStyle3; MetaDataGrid.Dock = System.Windows.Forms.DockStyle.Fill; - MetaDataGrid.Location = new System.Drawing.Point(2, 50); + MetaDataGrid.Location = new System.Drawing.Point(2, 43); MetaDataGrid.Margin = new System.Windows.Forms.Padding(2); MetaDataGrid.MultiSelect = false; MetaDataGrid.Name = "MetaDataGrid"; @@ -2617,7 +2634,7 @@ private void InitializeComponent() MetaDataGrid.RowHeadersWidth = 51; MetaDataGrid.RowTemplate.Height = 26; MetaDataGrid.RowTemplate.Resizable = System.Windows.Forms.DataGridViewTriState.False; - MetaDataGrid.Size = new System.Drawing.Size(928, 167); + MetaDataGrid.Size = new System.Drawing.Size(928, 173); MetaDataGrid.TabIndex = 12; MetaDataGrid.CellClick += MetaDataGrid_CellClick; MetaDataGrid.CellContentClick += MetaDataGrid_CellContentClick; @@ -3023,8 +3040,8 @@ private void InitializeComponent() PageListContextMenu.ResumeLayout(false); MetadataPanel.ResumeLayout(false); MetadataPanel.PerformLayout(); - MetadataEditorHeaderFlowLayoutPanel.ResumeLayout(false); - MetadataEditorHeaderFlowLayoutPanel.PerformLayout(); + tableLayoutPanel2.ResumeLayout(false); + tableLayoutPanel2.PerformLayout(); ContextMenuUserFilterList.ResumeLayout(false); MetaDataTableActionsPanel.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)MetaDataGrid).EndInit(); @@ -3183,7 +3200,6 @@ private void InitializeComponent() private System.Windows.Forms.TextBox RenamerExcludePages; private System.Windows.Forms.Button btnGetExcludesFromSelectedPages; private System.Windows.Forms.TableLayoutPanel MainPanelTableLayout; - private System.Windows.Forms.FlowLayoutPanel MetadataEditorHeaderFlowLayoutPanel; private System.Windows.Forms.TableLayoutPanel GlobalAlertTableLayout; private System.Windows.Forms.Label LabelGlobalActionStatusMessage; private System.Windows.Forms.Button ExecuteCurrentGlobalAction; @@ -3275,6 +3291,7 @@ private void InitializeComponent() private System.Windows.Forms.ToolStripMenuItem requiredToolStripMenuItem; private System.Windows.Forms.ImageList ComboIcons; private System.Windows.Forms.ToolTip DataGridErrorTooltip; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; } } diff --git a/MyCBZ/Forms/MainForm.cs b/MyCBZ/Forms/MainForm.cs index 7026c25b..31326416 100644 --- a/MyCBZ/Forms/MainForm.cs +++ b/MyCBZ/Forms/MainForm.cs @@ -33,6 +33,7 @@ using Microsoft.VisualBasic.Devices; using Win_CBZ.Extensions; using Win_CBZ.List; +using System.Collections; namespace Win_CBZ { @@ -816,16 +817,16 @@ private void PageChanged(object sender, PageChangedEvent e) { if (!e.Page.Closed && !e.Page.Deleted) { - Task.Factory.StartNew(() => + Task.Factory.StartNew(() => + { + PageThumbsListBox.Invoke(new Action(() => { - PageThumbsListBox.Invoke(new Action(() => - { - CreatePagePreviewFromItem(e.Page, e.OldValue as Page); + CreatePagePreviewFromItem(e.Page, e.OldValue as Page); - return; - })); + return; + })); - }); + }); } } } @@ -1229,7 +1230,7 @@ private void HandleListviewSorting(object sender, UpdatePageListViewSortingEvent Program.ProjectModel.Pages.Sort((x, y) => x.Index.CompareTo(y.Index)); PagesList.ListViewItemSorter = new ListViewSorter(e.SortColumn); - + PagesList.Sorting = e.Order; PagesList.Sort(); PagesList.Sorting = SortOrder.None; @@ -1239,7 +1240,7 @@ private void HandleListviewSorting(object sender, UpdatePageListViewSortingEvent PageThumbsListBox.Sort(e.Order); } - + }); } } @@ -3571,7 +3572,7 @@ private void MetaDataGrid_CellPainting(object sender, DataGridViewCellPaintingEv DataGridView grid = sender as DataGridView; Color sortIconColor = Color.Gold; - if (e.ColumnIndex > - 1 && e.RowIndex == -1) + if (e.ColumnIndex > -1 && e.RowIndex == -1) { DataGridViewColumnHeaderCell headerCell = MetaDataGrid.Columns[e.ColumnIndex].HeaderCell; @@ -3593,7 +3594,7 @@ private void MetaDataGrid_CellPainting(object sender, DataGridViewCellPaintingEv //MetaDataGrid.ColumnHeadersDefaultCellStyle. if (Program.ProjectModel.MetaData.IsColumnFiltered(e.ColumnIndex)) - { + { e.Graphics.DrawImage(Properties.Resources.funnel, e.CellBounds.Right - 32, e.CellBounds.Y + 4, 16, 16); } //e.Graphics.DrawString(MetaDataGrid.Columns[e.ColumnIndex].HeaderText, MetaDataGrid.ColumnHeadersDefaultCellStyle.Font, new SolidBrush(Color.Black), new PointF(e.CellBounds.X, e.CellBounds.Y + 5)); @@ -3609,12 +3610,13 @@ private void MetaDataGrid_CellPainting(object sender, DataGridViewCellPaintingEv { e.PaintBackground(e.CellBounds, false); e.Paint(e.CellBounds, DataGridViewPaintParts.Background | DataGridViewPaintParts.SelectionBackground | DataGridViewPaintParts.Border); - + if (fieldType.FieldType == MetaDataFieldType.METADATA_FIELD_TYPE_RATING) { - - } else + + } + else { e.PaintContent(e.CellBounds); } @@ -4068,9 +4070,15 @@ private void MetaDataEntryChanged(object sender, MetaDataEntryChangedEvent e) { if (e.Index > -1) { - if (ToolBarSearchInput.Text.Length == 0) + if (ToolBarSearchInput.Text.Length == 0 && !ApplyUserKeyFilter) { - MetaDataGrid.Rows.RemoveAt(e.Index); + try + { + MetaDataGrid.Rows.RemoveAt(e.Index); + } catch (Exception e) + { + AppEventHandler.OnMessageLogged(sender, new LogMessageEvent(LogMessageEvent.LOGMESSAGE_TYPE_WARNING, "MainForm::MetaDataEntryChanged(), Error removing row! [" + e.Message + "]")); + } } } else @@ -5837,6 +5845,17 @@ private void TextboxSpecialPageRenamingPattern_TextChanged_1(object sender, Even private void ToolStripButtonShowRawMetadata_Click(object sender, EventArgs e) { + DataValidation dataValidation = new DataValidation(); + ArrayList messages = new ArrayList(); + + bool metaDataValidationFailed = dataValidation.ValidateMetaDataInvalidKeys(ref messages); + if (metaDataValidationFailed) + { + AppEventHandler.OnApplicationStateChanged(this, new ApplicationStatusEvent(null, ApplicationStatusEvent.STATE_READY)); + + return; + } + try { MetaDataForm metaDataDialog = new MetaDataForm(Program.ProjectModel.MetaData, Win_CBZSettings.Default.WriteXmlPageIndex); @@ -6257,7 +6276,7 @@ private void UpdateImageAdjustments(object sender, string selected, bool dontUpd ComboBoxTaskOrderRotation.Tag = dontUpdate; ComboBoxTaskOrderSplit.Tag = dontUpdate; - ComboBoxTaskOrderConversion.SelectedIndex = ((int)selectedImageTasks.TaskOrder.Convert); + ComboBoxTaskOrderConversion.SelectedIndex = ((int)selectedImageTasks.TaskOrder.Convert); ComboBoxTaskOrderResize.SelectedIndex = ((int)selectedImageTasks.TaskOrder.Resize); ComboBoxTaskOrderRotation.SelectedIndex = ((int)selectedImageTasks.TaskOrder.Rotate); ComboBoxTaskOrderSplit.SelectedIndex = ((int)selectedImageTasks.TaskOrder.Split); @@ -6369,120 +6388,120 @@ private void HandleImageAdjustmentsChanged(object sender, ImageAdjustmentsChange if (updateCtls) { - bool dontUpdate = true; + bool dontUpdate = true; //ImageQualityTrackBar.Value = selectedTask.ImageAdjustments.Quality; switch (selectedImageTasks.ImageAdjustments.ResizeMode) - { - case 0: - RadioButtonResizeNever.Tag = dontUpdate; - RadioButtonResizeNever.Checked = true; - break; - case 1: - RadioButtonResizeIfLarger.Tag = dontUpdate; - RadioButtonResizeIfLarger.Checked = true; - break; - case 2: - RadioButtonResizeTo.Tag = dontUpdate; - RadioButtonResizeTo.Checked = true; - break; - case 3: - RadioButtonResizePercent.Tag = dontUpdate; - RadioButtonResizePercent.Checked = true; - break; - - } - - ComboBoxTaskOrderConversion.Tag = dontUpdate; - ComboBoxTaskOrderResize.Tag = dontUpdate; - ComboBoxTaskOrderRotation.Tag = dontUpdate; - ComboBoxTaskOrderSplit.Tag = dontUpdate; - - ComboBoxTaskOrderConversion.SelectedIndex = ((int)selectedImageTasks.TaskOrder.Convert); - ComboBoxTaskOrderResize.SelectedIndex = ((int)selectedImageTasks.TaskOrder.Resize); - ComboBoxTaskOrderRotation.SelectedIndex = ((int)selectedImageTasks.TaskOrder.Rotate); - ComboBoxTaskOrderSplit.SelectedIndex = ((int)selectedImageTasks.TaskOrder.Split); - //PropertyGridTaskOrder.SelectedObject = selectedImageTasks.TaskOrder; - - switch (selectedImageTasks.ImageAdjustments.RotateMode) - { - case 0: - RadioButtonRotateNone.Tag = dontUpdate; - RadioButtonRotateNone.Checked = true; - break; - case 1: - RadioButtonRotate90.Tag = dontUpdate; - RadioButtonRotate90.Checked = true; - break; - case 2: - RadioButtonRotate180.Tag = dontUpdate; - RadioButtonRotate180.Checked = true; - break; - case 3: - RadioButtonRotate270.Tag = dontUpdate; - RadioButtonRotate270.Checked = true; - break; - - } - - CheckBoxSplitDoublePages.Tag = dontUpdate; - TextBoxSplitPageAt.Tag = dontUpdate; - ComboBoxSplitAtType.Tag = dontUpdate; - TextBoxResizePageIndexReference.Tag = dontUpdate; - TextBoxResizeW.Tag = dontUpdate; - TextBoxResizeH.Tag = dontUpdate; - ComboBoxConvertPages.Tag = dontUpdate; - CheckBoxDontStretch.Tag = dontUpdate; - TextboxResizePercentage.Tag = dontUpdate; - CheckboxKeepAspectratio.Tag = dontUpdate; - PictureBoxColorSelect.Tag = dontUpdate; - CheckBoxSplitOnlyIfDoubleSize.Tag = dontUpdate; - CheckBoxSplitDoublepagesFirst.Tag = dontUpdate; + { + case 0: + RadioButtonResizeNever.Tag = dontUpdate; + RadioButtonResizeNever.Checked = true; + break; + case 1: + RadioButtonResizeIfLarger.Tag = dontUpdate; + RadioButtonResizeIfLarger.Checked = true; + break; + case 2: + RadioButtonResizeTo.Tag = dontUpdate; + RadioButtonResizeTo.Checked = true; + break; + case 3: + RadioButtonResizePercent.Tag = dontUpdate; + RadioButtonResizePercent.Checked = true; + break; + } - CheckBoxSplitDoublePages.Checked = selectedImageTasks.ImageAdjustments.SplitPage; - TextBoxSplitPageAt.Text = selectedImageTasks.ImageAdjustments.SplitPageAt.ToString(); - ComboBoxSplitAtType.SelectedIndex = selectedImageTasks.ImageAdjustments.SplitType; - TextBoxResizePageIndexReference.Text = selectedImageTasks.ImageAdjustments.ResizeToPageNumber.ToString(); - TextBoxResizeW.Text = selectedImageTasks.ImageAdjustments.ResizeTo.X.ToString(); - TextBoxResizeH.Text = selectedImageTasks.ImageAdjustments.ResizeTo.Y.ToString(); - ComboBoxConvertPages.SelectedIndex = selectedImageTasks.ImageAdjustments.ConvertType; - CheckBoxDontStretch.Checked = selectedImageTasks.ImageAdjustments.DontStretch; - TextboxResizePercentage.Text = selectedImageTasks.ImageAdjustments.ResizeToPercentage.ToString(); - CheckboxKeepAspectratio.Checked = selectedImageTasks.ImageAdjustments.KeepAspectRatio; - PictureBoxColorSelect.BackColor = selectedImageTasks.ImageAdjustments.DetectSplitAtColor; - CheckBoxSplitOnlyIfDoubleSize.Checked = selectedImageTasks.ImageAdjustments.SplitOnlyDoublePages; - CheckBoxSplitDoublepagesFirst.Checked = selectedImageTasks.ImageAdjustments.SplitDoublePagesFirstResizingToPage; + ComboBoxTaskOrderConversion.Tag = dontUpdate; + ComboBoxTaskOrderResize.Tag = dontUpdate; + ComboBoxTaskOrderRotation.Tag = dontUpdate; + ComboBoxTaskOrderSplit.Tag = dontUpdate; - RadioButtonResizeNever.Tag = false; - RadioButtonResizeIfLarger.Tag = false; - RadioButtonResizeTo.Tag = false; - RadioButtonResizePercent.Tag = false; + ComboBoxTaskOrderConversion.SelectedIndex = ((int)selectedImageTasks.TaskOrder.Convert); + ComboBoxTaskOrderResize.SelectedIndex = ((int)selectedImageTasks.TaskOrder.Resize); + ComboBoxTaskOrderRotation.SelectedIndex = ((int)selectedImageTasks.TaskOrder.Rotate); + ComboBoxTaskOrderSplit.SelectedIndex = ((int)selectedImageTasks.TaskOrder.Split); + //PropertyGridTaskOrder.SelectedObject = selectedImageTasks.TaskOrder; - RadioButtonRotateNone.Tag = false; - RadioButtonRotate90.Tag = false; - RadioButtonRotate180.Tag = false; - RadioButtonRotate270.Tag = false; + switch (selectedImageTasks.ImageAdjustments.RotateMode) + { + case 0: + RadioButtonRotateNone.Tag = dontUpdate; + RadioButtonRotateNone.Checked = true; + break; + case 1: + RadioButtonRotate90.Tag = dontUpdate; + RadioButtonRotate90.Checked = true; + break; + case 2: + RadioButtonRotate180.Tag = dontUpdate; + RadioButtonRotate180.Checked = true; + break; + case 3: + RadioButtonRotate270.Tag = dontUpdate; + RadioButtonRotate270.Checked = true; + break; + } - ComboBoxTaskOrderConversion.Tag = false; - ComboBoxTaskOrderResize.Tag = false; - ComboBoxTaskOrderRotation.Tag = false; - ComboBoxTaskOrderSplit.Tag = false; + CheckBoxSplitDoublePages.Tag = dontUpdate; + TextBoxSplitPageAt.Tag = dontUpdate; + ComboBoxSplitAtType.Tag = dontUpdate; + TextBoxResizePageIndexReference.Tag = dontUpdate; + TextBoxResizeW.Tag = dontUpdate; + TextBoxResizeH.Tag = dontUpdate; + ComboBoxConvertPages.Tag = dontUpdate; + CheckBoxDontStretch.Tag = dontUpdate; + TextboxResizePercentage.Tag = dontUpdate; + CheckboxKeepAspectratio.Tag = dontUpdate; + PictureBoxColorSelect.Tag = dontUpdate; + CheckBoxSplitOnlyIfDoubleSize.Tag = dontUpdate; + CheckBoxSplitDoublepagesFirst.Tag = dontUpdate; + + + CheckBoxSplitDoublePages.Checked = selectedImageTasks.ImageAdjustments.SplitPage; + TextBoxSplitPageAt.Text = selectedImageTasks.ImageAdjustments.SplitPageAt.ToString(); + ComboBoxSplitAtType.SelectedIndex = selectedImageTasks.ImageAdjustments.SplitType; + TextBoxResizePageIndexReference.Text = selectedImageTasks.ImageAdjustments.ResizeToPageNumber.ToString(); + TextBoxResizeW.Text = selectedImageTasks.ImageAdjustments.ResizeTo.X.ToString(); + TextBoxResizeH.Text = selectedImageTasks.ImageAdjustments.ResizeTo.Y.ToString(); + ComboBoxConvertPages.SelectedIndex = selectedImageTasks.ImageAdjustments.ConvertType; + CheckBoxDontStretch.Checked = selectedImageTasks.ImageAdjustments.DontStretch; + TextboxResizePercentage.Text = selectedImageTasks.ImageAdjustments.ResizeToPercentage.ToString(); + CheckboxKeepAspectratio.Checked = selectedImageTasks.ImageAdjustments.KeepAspectRatio; + PictureBoxColorSelect.BackColor = selectedImageTasks.ImageAdjustments.DetectSplitAtColor; + CheckBoxSplitOnlyIfDoubleSize.Checked = selectedImageTasks.ImageAdjustments.SplitOnlyDoublePages; + CheckBoxSplitDoublepagesFirst.Checked = selectedImageTasks.ImageAdjustments.SplitDoublePagesFirstResizingToPage; + + RadioButtonResizeNever.Tag = false; + RadioButtonResizeIfLarger.Tag = false; + RadioButtonResizeTo.Tag = false; + RadioButtonResizePercent.Tag = false; + + RadioButtonRotateNone.Tag = false; + RadioButtonRotate90.Tag = false; + RadioButtonRotate180.Tag = false; + RadioButtonRotate270.Tag = false; + + + ComboBoxTaskOrderConversion.Tag = false; + ComboBoxTaskOrderResize.Tag = false; + ComboBoxTaskOrderRotation.Tag = false; + ComboBoxTaskOrderSplit.Tag = false; + + CheckBoxSplitDoublePages.Tag = false; + TextBoxSplitPageAt.Tag = false; + ComboBoxSplitAtType.Tag = false; + TextBoxResizePageIndexReference.Tag = false; + TextBoxResizeW.Tag = false; + TextBoxResizeH.Tag = false; + ComboBoxConvertPages.Tag = false; + CheckBoxDontStretch.Tag = false; + TextboxResizePercentage.Tag = false; + CheckboxKeepAspectratio.Tag = false; + PictureBoxColorSelect.Tag = false; + CheckBoxSplitOnlyIfDoubleSize.Tag = false; + CheckBoxSplitDoublepagesFirst.Tag = false; - CheckBoxSplitDoublePages.Tag = false; - TextBoxSplitPageAt.Tag = false; - ComboBoxSplitAtType.Tag = false; - TextBoxResizePageIndexReference.Tag = false; - TextBoxResizeW.Tag = false; - TextBoxResizeH.Tag = false; - ComboBoxConvertPages.Tag = false; - CheckBoxDontStretch.Tag = false; - TextboxResizePercentage.Tag = false; - CheckboxKeepAspectratio.Tag = false; - PictureBoxColorSelect.Tag = false; - CheckBoxSplitOnlyIfDoubleSize.Tag = false; - CheckBoxSplitDoublepagesFirst.Tag = false; - } }); } @@ -6548,7 +6567,7 @@ private void PictureBoxColorSelect_Click(object sender, EventArgs e) } if (page != null && selectedImageTasks.PageId == page.Id) - { + { AppEventHandler.OnPageChanged(this, new PageChangedEvent(page, null, PageChangedEvent.IMAGE_STATUS_CHANGED, true)); } @@ -6625,7 +6644,7 @@ private void CheckBoxSplitDoublepagesFirst_CheckedChanged(object sender, EventAr { selectedImageTasks.ImageAdjustments.SplitDoublePagesFirstResizingToPage = CheckBoxSplitDoublepagesFirst.Checked; } - + if (CheckBoxSplitDoublepagesFirst.Checked) { @@ -6683,7 +6702,7 @@ private void CheckBoxSplitOnlyIfDoubleSize_CheckedChanged(object sender, EventAr if (page != null && selectedImageTasks.PageId == page.Id) { - + if (!dontUpdate) { AppEventHandler.OnPageChanged(this, new PageChangedEvent(page, null, PageChangedEvent.IMAGE_STATUS_CHANGED, true)); @@ -6902,7 +6921,7 @@ private void TextBoxResizeW_TextChanged(object sender, EventArgs e) if (page != null && selectedImageTasks.PageId == page.Id) { - + if (!dontUpdate) { AppEventHandler.OnPageChanged(this, new PageChangedEvent(page, null, PageChangedEvent.IMAGE_STATUS_CHANGED, true)); @@ -7200,7 +7219,7 @@ private void CheckBoxSplitDoublePages_CheckedChanged(object sender, EventArgs e) if (oldValue.Value != selectedImageTasks.ImageAdjustments.SplitPage) { if (selectedImageTasks.PageId == "" && !dontUpdate) - { + { Program.ProjectModel.GlobalImageTask = selectedImageTasks; } @@ -8014,5 +8033,10 @@ private void ComboBox_DrawItem(object sender, DrawItemEventArgs e) e.Graphics.DrawString(((ComboBox)sender).Items[e.Index].ToString(), font, new SolidBrush(Color.Black), new PointF(e.Bounds.X + 1, e.Bounds.Y + 1)); } } + + private void MetadataPanel_Paint(object sender, PaintEventArgs e) + { + + } } } diff --git a/MyCBZ/Forms/MainForm.resx b/MyCBZ/Forms/MainForm.resx index 5acef61c..b249302c 100644 --- a/MyCBZ/Forms/MainForm.resx +++ b/MyCBZ/Forms/MainForm.resx @@ -140,7 +140,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAbgoAAAJNU0Z0AUkBTAIBAQMB - AAEIAS8BCAEvARABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMAAUADAAEQAwABAQEAAQgG + AAGwAS8BsAEvARABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMAAUADAAEQAwABAQEAAQgG AAEEGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEAAfABygGmAQABMwUAATMB AAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEAAYABfAH/AQACUAH/AQAB kwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFmAwABmQMAAcwCAAEzAwAC @@ -198,7 +198,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAIkMAAAJNU0Z0AUkBTAIBARIB - AAEIAS8BCAEvARgBAAEYAQAE/wEZAQAI/wFCAU0BNgcAATYDAAEoAwABYAMAAXgDAAEBAQABGAYAAYeE + AAGwAS8BsAEvARgBAAEYAQAE/wEZAQAI/wFCAU0BNgcAATYDAAEoAwABYAMAAXgDAAEBAQABGAYAAYeE AANnEiUDZ/8ACQADJRIAAyXnAB4lAwADnAP+A1wDcAkAAyWZAALUAdUDJzYlAycD1QwAAyUDfQG9Ar4B vQK+Ab0CvgG9Ar4BvQK+Ab0CvgG9A74CvwMAA90DYQYlA3gGAAMlmQADvQMlNr0DJQO+DAADJQG9Ar4B pAHmAfMBaAHdAfMBaAHdAfMBaAHdAfMBaAHdAfMBaAHdAfMBaAHdAfMBzQHtAfMD/wNkCSUDJwN+AwAD @@ -520,174 +520,174 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu - SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAIicAAAJNU0Z0AUkBTAIBAQ8B - AAFgAQ8BYAEPARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAAUADAAEBAQABIAYAAUD/ - ABsAA0wBkAMlAf8DYgHhCAADJAE0AyUB/wMlAf8DKgE/YAABVQJXAbEBXAJlAecBKwJ+AfwBKwJ+AfwB - XAJlAecBVQJXAbFkAAMyAU8DJQH/AyUB/wMaASQEAAQCA1kB7wMlAf8DRgGAJAADBgEIA0EBcgNbAc0D - XAH4A1wB+ANbAc0DQQFyAwYBCBwAAUACQQFxAQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8B - QAJBAXFgAAMQARUDGwEmA0AB/QMlAf8DQAFvAxABFQMQARUDWAG6AyUB/wNaAcQDEAEVAw8BExgAAxYB - HQNbAdMDVQGuAykBPQMHAQkDJQH/AyUB/wMlAf8DWwHTAxYBHRwAAT8CQAFuAy4BSAMuAUgBPwJAAW4D - LQFFA00BkgNbAeQDJgH7AyYB+wNbAeQDVQG0AzEBTUQAA1wB2QMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB - /wMlAf8DJQH/AyUB/wMlAf8DKwH8Aw4BEhAAAwYBCANbAdMDQQFzDAADJQH/AyUB/wMlAf8DJQH/A1sB - 0wMGAQgYAAM2AVkBWgJjAekBWgJjAekDNgFZAy0BRgMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wNBAflE - AANOAZcDJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wMzAVEQAANBAXID - VQGuEAADJQH/AyUB/wMlAf8DJQH/AyUB/wNBAXIYAAFaAmMB6QEAAdIB+gH/AQAB0gH6Af8BWgJjAekD - HQEpAyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/A2AB4EQAAxQBGwMqAT8DQAFxAyUB/wMlAf8DOwFkAyoB - PwMqAT8DYQHrAyUB/wNTAaoDKgE/AxYBHhAAA1sBzQMpAT0QAAMlAf8DJQH/AyUB/wMlAf8DJQH/A1sB - zQwAAzEBTQNVAbQDHAEnAVoCYwHpAQAB0gH6Af8BAAHSAfoB/wFaAmMB6QMbASYDWwHKA0QBegMuAUgD - MAFLA0QBegNbAcoDPAFmTAADCgENA00B+gMlAf8DPgFqCAADVAGrAyUB/wNZAcYYAANcAfgDBwEJEAAD - JQH/AyUB/wMlAf8DJQH/AyUB/wNcAfgMAANBAfkDJQH/Az0BZwMzAVABWgJjAekBWgJjAekDMwFQAzUB - VgMXAR8DNgFXA1oBxANaAcQDOQFeAxgBIFQAA1kBxgMlAf8DVAGrCAADPgFqAyUB/wNNAfoDCgENFAAD - XAH4AwcBCRAAAyUB/wMlAf8DJQH/AyUB/wMlAf8DXAH4DAADYAHgAyUB/wNhAeYDPQFnAyMBMwMjATMD - NgFYA2AB4AM9AWkDgAH+AyUB/wMlAf8DgAH+Az0BaUwAAxYBHgMqAT8DUwGqAyUB/wNhAesDKgE/AyoB - PwM7AWQDJQH/AyUB/wNAAXEDKgE/AxQBGwwAA1sBzQMpAT0QAAMlAf8DJQH/AyUB/wMlAf8DJQH/A1sB - zQwAAzwBZgNbAcoDRAF6Ay4BSAMwAUsDRAF6A1sBygM8AWYDYQHmAyUB/wMlAf8DJQH/AyUB/wNhAeZM - AAMzAVEDJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wNOAZcMAANBAXID - VQGuEAADJQH/AyUB/wMlAf8DJQH/AyUB/wNBAXIQAAMXAR8DNgFXA1oBxANaAcQDOQFeAxgBIAQAA1oB - 9QMlAf8DJQH/AyUB/wMlAf8DWgH1TAADDgESAysB/AMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8D - JQH/AyUB/wMlAf8DXAHZDAADBgEIA1sB0wNBAXMMAAMlAf8DJQH/AyUB/wMlAf8DWwHTAwYBCBAAAz0B - aQOAAf4DJQH/AyUB/wOAAf4DPQFpBAADUQGeAyUB/wMlAf8DJQH/AyUB/wNRAZ5QAAMPARMDEAEVA1oB - xAMlAf8DWAG6AxABFQMQARUDQAFvAyUB/wNAAf0DGwEmAxABFRAAAxYBHQNbAdMDVQGuAykBPQMHAQkD - JQH/AyUB/wMlAf8DWwHTAxYBHRQAA2EB5gMlAf8DJQH/AyUB/wMlAf8DYQHmBAADCAEKA04BmANlAfED - ZQHxA04BmAMIAQpYAANGAYADJQH/A1kB7wQCBAADGgEkAyUB/wMlAf8DMgFPGAADBgEIA0EBcgNbAc0D - XAH4A1wB+ANbAc0DQQFyAwYBCBgAA1oB9QMlAf8DJQH/AyUB/wMlAf8DWgH1dAADKgE/AyUB/wMlAf8D - JAE0CAADYgHhAyUB/wNMAZBQAANRAZ4DJQH/AyUB/wMlAf8DJQH/A1EBnugAAwgBCgNOAZgDZQHxA2UB - 8QNOAZgDCAEK/wB1AAMYASEDUAGcA1oB8gNQAZwDGAEhOAADOAFdAzABSgMEAQUkAAMTARoDSQGIA10B - 1ANBAfkDQQH5A10B1ANJAYgDEwEaIAADEwEaA0kBiANdAdQDQQH5A0EB+QNdAdQDSQGIAxMBGhwAAxgB - IANPAZkDWgHyA1EBogMlAf8DUQGiA1oB8gNPAZkDGAEgMAADOgFiA00B+gNdAdwDJAE0HAADNwFaA2IB - 7gNLAY0DIwEyAwYBBwMGAQcDIwEyA0sBjQNdAeoDNwFaGAADNwFaA2AB8wNNAfoDWAG3A0kBhwNJAYcD - WAG3A00B+gNgAfMDNwFaEAADFQEcA04BlgNaAfIDUQGeAxoBIwMIAQoDJQH/AwgBCgMaASMDUQGeA1oB - 8gNOAZYDFQEcKAADQgF0A1MBqgMzAVEDYAHoAxcBHxQAAzcBWgNbAeQDXQHOAwMBBBAAAzQBUwM2AVcD - YAHgAzcBWhAAAzcBWgOAAf4DWgG/AxgBIRAAAxgBIQNaAb8DgAH+AzcBWgwAA18B5QNRAaQDGwElCAAD - CAEKAyUB/wMIAQoIAAMbASUDUQGkA18B5RgAAysBQQNRAaEDXgHdA00B+gNfAdUDHQEoBAADRgF+A1AB - nBAAAxMBGgNdAeoDPQFnAyUB/wNaAb8DBAEFDAADXAHWAyYB+wMoATsDXQHqAxMBGggAAxMBGgNgAfMD - WgG/AwUBBhgAAwUBBgNaAb8DYAHzAxMBGggAAyUB/wMQARUMAAMIAQoDJQH/AwgBCgwAAxABFQMlAf8Q - AAMOARIDVgGzA1sB2AM/AW0DHQEoAwUBBgwAAxUBHANhAesDDwETDAADSQGIA0IBdANXAcIDJQH/AyUB - /wMlATcMAANeAe0DJQH/A0QBeANLAY0DSQGICAADSQGIA00B+gMYASEgAAMYASEDTQH6A0kBiAgAAyUB - /wMQARUMAAMIAQoDJQH/AwgBCgwAAxABFQMlAf8MAAMIAQoDXQHPA0oBiwMEAQUcAANHAYIDXQHPAwgB - CggAA10B1AM6AWIDJQH/A0AB/QNLAYwDBgEHBAADCwEOAyYBOQMlAf8DJQH/A1oBxwMdASgDXQHUCAAD - XQHUA1gBtygAA1gBtwNdAdQIAAMlAf8DEAEVBAADFwEfAxEBFgMIAQoDJQH/AwgBCgwAAxABFQMlAf8M - AANHAYIDUgGjCQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/CAAD - UwGmA0cBgggAA0EB+QNMAZEDXgHwAzsBZAgAAxYBHgNlAfEDJQH/AyUB/wMlAf8DJQH/AysEQQH5CAAD - QQH5A0kBhxEAAdIB+gH/AQAB0gH6Af8QAANJAYcDQQH5CAADJQH/AxABFQNYAbgBQAK+Af0DIQEvA0sB - jwMlAf8DSwGPAxIBGAgAAxABFQMlAf8MAANdAd8DHgEqKAADHgEqA10B3wgAA0EB+QNbAcoDCwEODAAD - MwFSAyUB/wMlAf8DJQH/AyUB/wMlAf8DPgFrA0EB+QgAA0EB+QNJAYcMAAMEAQUBSAJjAfYBSAJjAfYB - XAJhAdkDMwFSCAADSQGHA0EB+QgAAyUB/wMQARUBUwJoAfQBAAHSAfoB/wFAAkEBcQNFAXwDLgFIA1IB - qANeAfADSgGLAxEBFgMQARUDJQH/DAADQAH9AwIBAwkAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB - +gH/AQAB0gH6Af8BAAHSAfoB/wgAAwIBAwNAAf0IAANdAdQDWQHvAxoBIwwAAxYBHQNgAfMDJQH/A1EB - 9wNbAeQDSAH2A4AB/gNdAdQIAANdAdQDWAG3DAADSwGNAVoCXAHEAyUBNwNFAXwDYgHuAzUBVQQAA1gB - twNdAdQIAAMlAf8DOgFgAVsCXQHKAQAB0gH6Af8BAAHSAfoB/wFbAmEB3gM0AVMEAgMgAS4DVAGrA14B - 8ANOAZcDJQH/DAADXQHfAx4BKigAAx4BKgNdAd8IAANJAYgDJQH/A10B3wMeASoMAAM3AVoDUQGhAzAB - SgNLAY0DYgHuAyUB/wNJAYgIAANJAYgDTQH6AxgBIQQAAxEBFgNiAe4DHAEnCAADCQELAxABFQMYASED - TQH6A0kBiAgAA18B5QNbAcUDGwEmAUoCSwGKAV4CZQHiA4AB/gOAAf4BXgJlAd0DMwFQBAEDNAFTA00B - +gNfAeUMAANHAYIDUgGlCQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB - +gH/CAADUgGlA0cBgggAAxMBGgNgAfMDJQH/A4AB/gMxAU4IAAM2AVgDWgG/A1oB8gMlAf8DJQH/A2AB - 8wMTARoIAAMTARoDYAHzA1oBvwMFAQYBWwJdAcoDSwGNEAADBQEGA1oBvwNgAfMDEwEaCAADFQEcA0QB - eANaAfIDRgF+AxcBHwM4AVsBYAJlAeMDgAH+AQAB0gH6Af8BYAJkAdsBOgI7AWIDQwF2AxUBHAwAAwgB - CgNdAc8DSwGNAwQBBRgAAwQBBQNLAY0DXQHPAwgBCgwAAzcBWgOAAf4DJQH/AysBQgNTAakDTgGYAycB - OgMjATMDXgHSA0oBiwMrAfwDNwFaEAADNwFaA4AB/gNaAb8BQAJBAXADDAEPDAADGAEhA1oBvwOAAf4D - NwFaFAADGAEgA0QBegNaAfIDRQF8Ax0BKAFPAlABmwFbAmEB3gNVAawDEAEVGAADDgESA1YBswNeAdcD - PgFrAxsBJgMEAQUDBAEFAxsBJgM+AWsDXgHXA1YBswMOARIUAAM3AVoDYAHzA10B1ANZAe8DJQH/A1cB - uQMYASADQAFxA10B6gM3AVoYAAM3AVoDYAHzA00B+gNYAbcDSQGHA0kBhwNYAbcDTQH6A2AB8wM3AVog - AAMYASEDRgF9A1oB8gNLAY0EAigAAysBQQNRAaEDXgHdA00B+gNNAfoDXgHdA1EBoQMrAUEgAAMTARoD - SQGIA10B1ANBAfkDQQH5A10B1ANJAYgDEwEaIAADEwEaA0kBiANdAdQDQQH5A0EB+QNdAdQDSQGIAxMB - Gv8A/wAeAAMzAVADWgHpAyUB/wMlAf8DJQH/AyUB/wMlAf8DXAHIGAADMQFNA1UBtANbAeQDJgH7AyYB - +wNbAeQDVQG0AzEBTSQAAzMBUANaAekDJQH/BQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8B - AAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BWQJcAcFUAANaAekDJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8D - JQH/GAADQQH5AyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/A0EB+SQAA1oB6QMlAf8DJQH/BQAB0gH6Af8B - AAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/zAAAxcB - HwNJAYcDXAHWA1wB+ANTAaoQAAMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/GAADYAHgAyUB - /wMlAf8DJQH/AyUB/wMlAf8DJQH/A2AB4CQAAyUB/wMlAf8DJQH/BQAB0gH6Af8BAAHSAfoB/wEAAdIB - +gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/yQAAwkEDAEPA00BkwNNAfoD - JQH/AyUB/wMlAf8DYAHzEAADJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wMzAVIBAAHSAfoB - /wFcAl8ByAwAAzwBZgNbAcoDRAF6Ay4BSAMwAUsDRAF6A1sBygM8AWYkAAMlAf8DJQH/AyUB/wUAAdIB - +gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8c - AAE7AjwBZQNVAa8DNgFYA1wB5wNgAeADPgFqAzoEYAHoAyUB/wNVAa4QAAMlAf8DJQH/AyUB/wMlAf8D - JQH/AyUB/wMlAf8DJQH/AzMBUgEAAdIB+gH/AQAB0gH6Af8QAAMXAR8DNgFXA1oBxANaAcQDOQFeAxgB - IAMbASYBTAJNAZEBIQJfAfsBIQJfAfsBWwJjAeQBVQJXAbQDMQFNDAADJQH/AyUB/wMlAf8FAAHSAfoB - /wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/GAAB - JgInATkBVQJWAa4DRAF6A1oB9QM5AV8DPQFnAWACaQHoAyABLgNXAbkDJgH7AyEBMBAAAyUB/wMlAf8D - JQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DMwFSAQAB0gH6Af8BAAHSAfoB/xAAAz0BaQOAAf4DJQH/AyUB - /wOAAf4DPQFpAxkBIgEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BQQJqAfkM - AAMlAf8DJQH/AyUB/wUAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB - /wEAAdIB+gH/AQAB0gH6Af8YAAMyAU8DQgF1A2AB2wM1AVYBXgJlAeIBAAHSAfoB/wEAAdIB+gH/AVAC - UQGdA0wBkQNGAYAUAAMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/AzMBUgEAAdIB+gH/AQAB - 0gH6Af8QAANhAeYDJQH/AyUB/wMlAf8DJQH/A2EB5gMeASoBAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8B - AAHSAfoB/wEAAdIB+gH/AWACZgHgDAADJQH/AyUB/wMlAf8FAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8B - AAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/FAADBwEJA0oBigNdAc8DOgFgAU0C - fQH6AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/ASsCfgH8AykBPQQCFAADJQH/AyUB/wMlAf8DJQH/AyUB - /wMlAf8DJQH/A1wByAMzAVIBAAHSAfoB/wEAAdIB+gH/EAADWgH1AyUB/wMlAf8DJQH/AyUB/wNaAfUD - KwFCA0QBegMuAUgDMAFLA0QBegFbAl0BygM8AWYMAAMlAf8DJQH/AyUB/wUAAdIB+gH/AQAB0gH6Af8B - AAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8QAAQCA0sBjwNgAeAD - NQFWA4AB/gEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/ASsCfgH8AwQBBRgAAyUB/wMlATcU - AAM7AWUDMwFSAQAB0gH6Af8BAAHSAfoB/xAAA1EBngMlAf8DJQH/AyUB/wMlAf8DUQGeAxcBHwM2AVcB - WgJcAcQBWgJcAcQDOQFeAxgBIBAAAyUB/wMlAf8DJQH/BQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB - 0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/xAAA0EBcwMlAf8DNgFYAWACZgHgAQAB - 0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wFZAlwBwRwAA1oB6QMlATcQAAMLAQ4D - JQH/AzMBUgEAAdIB+gH/AQAB0gH6Af8QAAMIAQoDTgGYA2UB8QNlAfEDTgGYAwgBCgM0AVQDgAH+AQAB - 0gH6Af8BAAHSAfoB/wOAAf4BPQI+AWkQAAMlAf8DJQH/AyUB/wUAAdIB+gH/AQAB0gH6Af8BAAHSAfoB - /wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8MAAMcAScDJgH7A10BzgMbASUB - QQJqAfkBAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wFBAmoB+QEmAicBORwAAzMBUANaAekD - JQH/AyUB/wMlAf8DJQH/AyUB/wNbAcoDRgF+AQAB0gH6Af8BXAJfAcgoAAFhAmoB5gEAAdIB+gH/AQAB - 0gH6Af8BAAHSAfoB/wEAAdIB+gH/AWECagHmEAADJQH/AyUB/wMlAf8EAAOAAf4DgAH+A4AB/gOAAf4D - gAH+AQAB0gH6Af8BAAHSAfoB/wFGAkcBgAwAA1UBrgMlAf8DYAHoAzoBYAMwAUsBWAJaAb0BAAHSAfoB - /wEAAdIB+gH/A14B0gMqAT8sAAM8AWYDBQEGFAADRgF+KAABWgJuAfUBAAHSAfoB/wEAAdIB+gH/AQAB - 0gH6Af8BAAHSAfoB/wFaAm4B9RAAAyUB/wMlATc0AANgAfMDJQH/AyUB/wMlAf8DWgHyAygBPAMRARYD - EQEWNAABWgJjAekDJQE3EAADCwEOAQAB0gH6Af8oAANRAZ4BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8B - AAHSAfoB/wNRAZ4QAANaAekDJQE3IAADCwEOAQAB0gH6Af8MAANTAaoDXAH4A1wB1gNJAYcDFwEfQAAD - MwFQAVoCYwHpAQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wFbAl0ByigAAwgB - CgNOAZgBZQJwAfEBZQJwAfEDTgGYAwgBChAAAzMBUANaAekDJQH/BQAB0gH6Af8BAAHSAfoB/wEAAdIB - +gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BUQJTAaL/AP8AYgADFwEfAyUB/wMlAf8D - CAEKJAADHQEpAz8BbgMGAQgQAAMGAQgDPwFuAx0BKRgAAxMBGQNHAYIDWQHDA1oB6QMrAfwDKwH8A1oB - 6QNZAcMDRgGBAxMBGWAAAxcBHwMlAf8DPAFmA04BlwMlAf8DCAEKIAADUgGoAyUB/wNbAdADHQEoCAAD - HQEoA1sB0AMlAf8DUgGoGAADWwHkAyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DWwHkXAAD - FgEeAyUB/wM7AWUEAAQBA04BlwMlAf8DCAEKHAADPwFsAyUB/wMlAf8DUwH0AzsBYwM7AWMDUwH0AyUB - /wMlAf8DPwFsGAADUQH3AyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DUQH3EAABXAJfAcgB - AAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB - +gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BXAJfAcgQAAMWAR4DJQH/AzwBZgwABAED - TgGXAyUB/wMIAQoYAAMUARsDQAH9AyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/A0AB/QMUARsYAANbAc0D - JQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wNbAc0RAAHSAfoB/zEAAdIB+gH/DAADFgEeAyUB - /wM8AWYUAAQBA04BmAMlAf8cAANZAcYDJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DWQHGHAADNQFWA4AB - /gMlAf8DYQHmA10BzwNdAc8DYQHmAyUB/wOAAf4DNQFWEQAB0gH6Af8EAAMlAf8EAAMlAf8DPAFmAyUB - /wMlAf8EAAMlAf8DPAFmAyUB/wUAAdIB+gH/CAADFgEeAyUB/wM8AWYcAAM2AVkDJQH/BAEUAAQBA1QB - qwMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wNUAasEARwAAzABTAMqAT8DGwElAw0BEQMNAREDHQEpAyoB - PwMwAUwVAAHSAfoB/wQAAyUB/wQAAyUB/wM8AWYDJQH/AyUB/wQAAyUB/wM8AWYDJQH/BQAB0gH6Af8I - AAMlAf8DUgGgHAADNgFXAyUB/wMdASkBVgJYAbMQAAMQARUDVgG1AyUB/wMlAf8DJQH/AyUB/wMlAf8D - JQH/AyUB/wMlAf8DVgG1AxABFRwAAxYBHgM5AV8DWgHHA1oBxwM5AV8DFgEeGQAB0gH6Af8EAAMlAf8E - AAMlAf8DPAFmAyUB/wMlAf8EAAMlAf8DPAFmAyUB/wUAAdIB+gH/CAADJQH/AysB/AM5AV4UAAM2AVcD - JQH/Aw8BEwM9AWgBAAHSAfoB/wwAAysBQgNhAeYDJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB - /wMlAf8DJQH/A2EB5gMrAUIUAAMdASkDXgHwAyUB/wMlAf8DJQH/AyUB/wNeAfADHQEpFQAB0gH6Af8E - AAMlAf8EAAMlAf8DPAFmAyUB/wMlAf8EAAMlAf8DPAFmAyUB/wUAAdIB+gH/CAADJQH/AyUB/wMrAfwD - OQFeDAADNQFWAyUB/wMPARQDPAFmAQAB0gH6Af8DFgEeDAADWgHyAyUB/wMlAf8DJQH/AyUB/wMlAf8D - JQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/A1oB8hQAA1UBsQMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB - /wNVAbEVAAHSAfoB/wQAAyUB/wQAAyUB/wM8AWYDJQH/AyUB/wQAAyUB/wM8AWYDJQH/BQAB0gH6Af8I - AAMlAf8DRgGBA1YBsgMrAfwDOAFdBAADNQFWAyUB/wMPARQDPAFmAQAB0gH6Af8DFgEeEAADPQFpA1AB - nANPAZsDTwGbA1MBpwMlAf8DJQH/AyUB/wMlAf8DUwGnA08BmwNPAZsDUAGcAz0BaRQAA1MB9AMlAf8D - JQH/AyUB/wMlAf8DJQH/AyUB/wNTAfQVAAHSAfoB/wQAAyUB/wQAAyUB/wM8AWYDJQH/AyUB/wQAAyUB - /wM8AWYDJQH/BQAB0gH6Af8IAAOAAf4DGgEjA0IBdQMlAf8DKwH8A04BlgMlAf8DDwEUAzwBZgEAAdIB - +gH/AxYBHigAA14B1wMlAf8DJQH/A14B1ygAA1MB9AMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wNTAfQV - AAHSAfoB/zEAAdIB+gH/CAADTgGVA00B+gMrAfwDJQH/AyUB/wMlAf8DCwEOATsCPAFlAQAB0gH6Af8D - FgEeLAADSQGFAyUB/wMlAf8DSQGGKAADVQGxAyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/A1UBsRQAAVwC - XwHIAQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8B - AAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AVwCXwHICAADBQEGA0cBggMNARED - KwFBAyoBQAE7AjwBZQNSAaABAAHSAfoB/wMXAR8wAAMkATQDJQH/AyUB/wMkATQoAAMdASkDXgHwAyUB - /wMlAf8DJQH/AyUB/wNeAfADHQEpVAAEAQNNAZIDgAH+AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB - 0gH6Af8DFwEfNAAEAQNcAcgDXAHIBAEsAAMdASkDVQGxA1MB9ANTAfQDVQGxAx0BKf8AVQABQgFNAT4H - AAE+AwABKAMAAUADAAFAAwABAQEAAQEGAAECFgAD/wEABv8CAAHGAR8C/wHgAX8CAAHCAR8B8AEPAeAB - fwIAAYABBwHgAQcB8AMAAYABAwHHAQMB8AMAAYABAwHPAQMB8AMAAYABAwHPAQMBgAMAAeEBjwHPAQMB - gAEBAgAB8QGHAc8BAwGAAQECAAHAAQEBzwEDAYABAQIAAcABAQHPAQMBwAGBAgABwAEBAccBAwHAAYEC - AAHgAQEB4AEHAcABgQIAAfgBQwHwAQ8BwAH/AgAB+AFjAv8BwAH/AgAE/wHAAf8CAAj/AfgBPwH/AR8B - 8AEPAfABDwHgAQ8B/wEPAeABBwHgAQcBgAEDAf8BBwTDAYwBYwHwAScBgQHBAYcB4QGcAXMBwAHjAYEB - wQGPAfEBnAFzAYcB8QGBAQEBnwH5AZABcwGYARkBhgEBAZ4BeQGAATMBnwH5AY4BAQGcARkBgAEDAZgB - GQGOAQEBnAEJAYABAwGfAfkBhwEBAYgBwQGAAQMBmAEZAYMBAQGBAeEBgAEDAYcB4QHAAQMBwQHDAeAB - DwHAAQMB4AEHAeABBwH4AT8B8AEPAfABDwHwAQ8Q/wHgAR8BgAF/AcQBAwL/AeABHwGAAX8BxAEDAf8B - wQHgAR8BgAF/AcQBAwH+AQEB4AEDAYABfwHEAQMB+AEBAeABAwHAAQEBxAEDAfABAQHgAQMBwAEBAcQB - AwHwAQMB4AEDAcABAQHEAQMB4AEDAeABAwHAAQEBxAEDAcABBwHnAcMBwAEDAcQBAwHAAQ8B5wGDAcAB - AwHEAQMBgAEPAeABAwH/AQMBxAEDAYABHwH8AfsB/wEDAc8B/wGAAX8B/AHzAf8BAwHPAfMBgwH/AfwB - AwH/AQMBxAEDEv8B/AE/AeMBxwHgAQcC/wH4AR8B4QGHAeABBwL/AfEBDwHgAQcB4AEHAYABAQHjAYcB - 4AEHAeABBwG/Af0CxwHwAQ8B4AEHAagBRQGPAeMB4AEHAfABDwGoAUUBnwHDAcABAwH4AR8BqAFFAY8B - gwGAAQEB8AEPAagBRQGHAQMBgAEBAfABDwGoAUUBggEHAYABAQHwAQ8BqAFFAYABDwH8AT8B8AEPAb8B - /QGAAR8B/AE/AfABDwGAAQEBgAE/AfwBPwHwAQ8C/wGAAX8B/AE/AfgBHwr/Cw== + SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAICcAAAJNU0Z0AUkBTAIBAQ8B + AAEIARABCAIQAQABEAEABP8BIQEACP8BQgFNATYHAAE2AwABKAMAAUADAAFAAwABAQEAASAGAAFA/wAb + AANMAZADJQH/A2IB4QgAAyQBNAMlAf8DJQH/AyoBP2AAAVUCVwGxAVwCZQHnASsCfgH8ASsCfgH8AVwC + ZQHnAVUCVwGxZAADMgFPAyUB/wMlAf8DGgEkBAAEAgNZAe8DJQH/A0YBgCQAAwYBCANBAXIDWwHNA1wB + +ANcAfgDWwHNA0EBcgMGAQgcAAFAAkEBcQEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AUAC + QQFxYAADEAEVAxsBJgNAAf0DJQH/A0ABbwMQARUDEAEVA1gBugMlAf8DWgHEAxABFQMPARMYAAMWAR0D + WwHTA1UBrgMpAT0DBwEJAyUB/wMlAf8DJQH/A1sB0wMWAR0cAAE/AkABbgMuAUgDLgFIAT8CQAFuAy0B + RQNNAZIDWwHkAyYB+wMmAfsDWwHkA1UBtAMxAU1EAANcAdkDJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8D + JQH/AyUB/wMlAf8DJQH/AysB/AMOARIQAAMGAQgDWwHTA0EBcwwAAyUB/wMlAf8DJQH/AyUB/wNbAdMD + BgEIGAADNgFZAVoCYwHpAVoCYwHpAzYBWQMtAUYDJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DQQH5RAAD + TgGXAyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DMwFREAADQQFyA1UB + rhAAAyUB/wMlAf8DJQH/AyUB/wMlAf8DQQFyGAABWgJjAekBAAHSAfoB/wEAAdIB+gH/AVoCYwHpAx0B + KQMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wNgAeBEAAMUARsDKgE/A0ABcQMlAf8DJQH/AzsBZAMqAT8D + KgE/A2EB6wMlAf8DUwGqAyoBPwMWAR4QAANbAc0DKQE9EAADJQH/AyUB/wMlAf8DJQH/AyUB/wNbAc0M + AAMxAU0DVQG0AxwBJwFaAmMB6QEAAdIB+gH/AQAB0gH6Af8BWgJjAekDGwEmA1sBygNEAXoDLgFIAzAB + SwNEAXoDWwHKAzwBZkwAAwoBDQNNAfoDJQH/Az4BaggAA1QBqwMlAf8DWQHGGAADXAH4AwcBCRAAAyUB + /wMlAf8DJQH/AyUB/wMlAf8DXAH4DAADQQH5AyUB/wM9AWcDMwFQAVoCYwHpAVoCYwHpAzMBUAM1AVYD + FwEfAzYBVwNaAcQDWgHEAzkBXgMYASBUAANZAcYDJQH/A1QBqwgAAz4BagMlAf8DTQH6AwoBDRQAA1wB + +AMHAQkQAAMlAf8DJQH/AyUB/wMlAf8DJQH/A1wB+AwAA2AB4AMlAf8DYQHmAz0BZwMjATMDIwEzAzYB + WANgAeADPQFpA4AB/gMlAf8DJQH/A4AB/gM9AWlMAAMWAR4DKgE/A1MBqgMlAf8DYQHrAyoBPwMqAT8D + OwFkAyUB/wMlAf8DQAFxAyoBPwMUARsMAANbAc0DKQE9EAADJQH/AyUB/wMlAf8DJQH/AyUB/wNbAc0M + AAM8AWYDWwHKA0QBegMuAUgDMAFLA0QBegNbAcoDPAFmA2EB5gMlAf8DJQH/AyUB/wMlAf8DYQHmTAAD + MwFRAyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DTgGXDAADQQFyA1UB + rhAAAyUB/wMlAf8DJQH/AyUB/wMlAf8DQQFyEAADFwEfAzYBVwNaAcQDWgHEAzkBXgMYASAEAANaAfUD + JQH/AyUB/wMlAf8DJQH/A1oB9UwAAw4BEgMrAfwDJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB + /wMlAf8DJQH/A1wB2QwAAwYBCANbAdMDQQFzDAADJQH/AyUB/wMlAf8DJQH/A1sB0wMGAQgQAAM9AWkD + gAH+AyUB/wMlAf8DgAH+Az0BaQQAA1EBngMlAf8DJQH/AyUB/wMlAf8DUQGeUAADDwETAxABFQNaAcQD + JQH/A1gBugMQARUDEAEVA0ABbwMlAf8DQAH9AxsBJgMQARUQAAMWAR0DWwHTA1UBrgMpAT0DBwEJAyUB + /wMlAf8DJQH/A1sB0wMWAR0UAANhAeYDJQH/AyUB/wMlAf8DJQH/A2EB5gQAAwgBCgNOAZgDZQHxA2UB + 8QNOAZgDCAEKWAADRgGAAyUB/wNZAe8EAgQAAxoBJAMlAf8DJQH/AzIBTxgAAwYBCANBAXIDWwHNA1wB + +ANcAfgDWwHNA0EBcgMGAQgYAANaAfUDJQH/AyUB/wMlAf8DJQH/A1oB9XQAAyoBPwMlAf8DJQH/AyQB + NAgAA2IB4QMlAf8DTAGQUAADUQGeAyUB/wMlAf8DJQH/AyUB/wNRAZ7oAAMIAQoDTgGYA2UB8QNlAfED + TgGYAwgBCv8AdQADGAEhA1ABnANaAfIDUAGcAxgBITgAAzgBXQMwAUoDBAEFJAADEwEaA0kBiANdAdQD + QQH5A0EB+QNdAdQDSQGIAxMBGiAAAxMBGgNJAYgDXQHUA0EB+QNBAfkDXQHUA0kBiAMTARocAAMYASAD + TwGZA1oB8gNRAaIDJQH/A1EBogNaAfIDTwGZAxgBIDAAAzoBYgNNAfoDXQHcAyQBNBwAAzcBWgNiAe4D + SwGNAyMBMgMGAQcDBgEHAyMBMgNLAY0DXQHqAzcBWhgAAzcBWgNgAfMDTQH6A1gBtwNJAYcDSQGHA1gB + twNNAfoDYAHzAzcBWhAAAxUBHANOAZYDWgHyA1EBngMaASMDCAEKAyUB/wMIAQoDGgEjA1EBngNaAfID + TgGWAxUBHCgAA0IBdANTAaoDMwFRA2AB6AMXAR8UAAM3AVoDWwHkA10BzgMDAQQQAAM0AVMDNgFXA2AB + 4AM3AVoQAAM3AVoDgAH+A1oBvwMYASEQAAMYASEDWgG/A4AB/gM3AVoMAANfAeUDUQGkAxsBJQgAAwgB + CgMlAf8DCAEKCAADGwElA1EBpANfAeUYAAMrAUEDUQGhA14B3QNNAfoDXwHVAx0BKAQAA0YBfgNQAZwQ + AAMTARoDXQHqAz0BZwMlAf8DWgG/AwQBBQwAA1wB1gMmAfsDKAE7A10B6gMTARoIAAMTARoDYAHzA1oB + vwMFAQYYAAMFAQYDWgG/A2AB8wMTARoIAAMlAf8DEAEVDAADCAEKAyUB/wMIAQoMAAMQARUDJQH/EAAD + DgESA1YBswNbAdgDPwFtAx0BKAMFAQYMAAMVARwDYQHrAw8BEwwAA0kBiANCAXQDVwHCAyUB/wMlAf8D + JQE3DAADXgHtAyUB/wNEAXgDSwGNA0kBiAgAA0kBiANNAfoDGAEhIAADGAEhA00B+gNJAYgIAAMlAf8D + EAEVDAADCAEKAyUB/wMIAQoMAAMQARUDJQH/DAADCAEKA10BzwNKAYsDBAEFHAADRwGCA10BzwMIAQoI + AANdAdQDOgFiAyUB/wNAAf0DSwGMAwYBBwQAAwsBDgMmATkDJQH/AyUB/wNaAccDHQEoA10B1AgAA10B + 1ANYAbcoAANYAbcDXQHUCAADJQH/AxABFQQAAxcBHwMRARYDCAEKAyUB/wMIAQoMAAMQARUDJQH/DAAD + RwGCA1IBowkAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wgAA1MB + pgNHAYIIAANBAfkDTAGRA14B8AM7AWQIAAMWAR4DZQHxAyUB/wMlAf8DJQH/AyUB/wMrBEEB+QgAA0EB + +QNJAYcRAAHSAfoB/wEAAdIB+gH/EAADSQGHA0EB+QgAAyUB/wMQARUDWAG4AUACvgH9AyEBLwNLAY8D + JQH/A0sBjwMSARgIAAMQARUDJQH/DAADXQHfAx4BKigAAx4BKgNdAd8IAANBAfkDWwHKAwsBDgwAAzMB + UgMlAf8DJQH/AyUB/wMlAf8DJQH/Az4BawNBAfkIAANBAfkDSQGHDAADBAEFAUgCYwH2AUgCYwH2AVwC + YQHZAzMBUggAA0kBhwNBAfkIAAMlAf8DEAEVAVMCaAH0AQAB0gH6Af8BQAJBAXEDRQF8Ay4BSANSAagD + XgHwA0oBiwMRARYDEAEVAyUB/wwAA0AB/QMCAQMJAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB + /wEAAdIB+gH/AQAB0gH6Af8IAAMCAQMDQAH9CAADXQHUA1kB7wMaASMMAAMWAR0DYAHzAyUB/wNRAfcD + WwHkA0gB9gOAAf4DXQHUCAADXQHUA1gBtwwAA0sBjQFaAlwBxAMlATcDRQF8A2IB7gM1AVUEAANYAbcD + XQHUCAADJQH/AzoBYAFbAl0BygEAAdIB+gH/AQAB0gH6Af8BWwJhAd4DNAFTBAIDIAEuA1QBqwNeAfAD + TgGXAyUB/wwAA10B3wMeASooAAMeASoDXQHfCAADSQGIAyUB/wNdAd8DHgEqDAADNwFaA1EBoQMwAUoD + SwGNA2IB7gMlAf8DSQGICAADSQGIA00B+gMYASEEAAMRARYDYgHuAxwBJwgAAwkBCwMQARUDGAEhA00B + +gNJAYgIAANfAeUDWwHFAxsBJgFKAksBigFeAmUB4gOAAf4DgAH+AV4CZQHdAzMBUAQBAzQBUwNNAfoD + XwHlDAADRwGCA1IBpQkAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB + /wgAA1IBpQNHAYIIAAMTARoDYAHzAyUB/wOAAf4DMQFOCAADNgFYA1oBvwNaAfIDJQH/AyUB/wNgAfMD + EwEaCAADEwEaA2AB8wNaAb8DBQEGAVsCXQHKA0sBjRAAAwUBBgNaAb8DYAHzAxMBGggAAxUBHANEAXgD + WgHyA0YBfgMXAR8DOAFbAWACZQHjA4AB/gEAAdIB+gH/AWACZAHbAToCOwFiA0MBdgMVARwMAAMIAQoD + XQHPA0sBjQMEAQUYAAMEAQUDSwGNA10BzwMIAQoMAAM3AVoDgAH+AyUB/wMrAUIDUwGpA04BmAMnAToD + IwEzA14B0gNKAYsDKwH8AzcBWhAAAzcBWgOAAf4DWgG/AUACQQFwAwwBDwwAAxgBIQNaAb8DgAH+AzcB + WhQAAxgBIANEAXoDWgHyA0UBfAMdASgBTwJQAZsBWwJhAd4DVQGsAxABFRgAAw4BEgNWAbMDXgHXAz4B + awMbASYDBAEFAwQBBQMbASYDPgFrA14B1wNWAbMDDgESFAADNwFaA2AB8wNdAdQDWQHvAyUB/wNXAbkD + GAEgA0ABcQNdAeoDNwFaGAADNwFaA2AB8wNNAfoDWAG3A0kBhwNJAYcDWAG3A00B+gNgAfMDNwFaIAAD + GAEhA0YBfQNaAfIDSwGNBAIoAAMrAUEDUQGhA14B3QNNAfoDTQH6A14B3QNRAaEDKwFBIAADEwEaA0kB + iANdAdQDQQH5A0EB+QNdAdQDSQGIAxMBGiAAAxMBGgNJAYgDXQHUA0EB+QNBAfkDXQHUA0kBiAMTARr/ + AP8AHgADMwFQA1oB6QMlAf8DJQH/AyUB/wMlAf8DJQH/A1wByBgAAzEBTQNVAbQDWwHkAyYB+wMmAfsD + WwHkA1UBtAMxAU0kAAMzAVADWgHpAyUB/wUAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB + 0gH6Af8BAAHSAfoB/wEAAdIB+gH/AVkCXAHBVAADWgHpAyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB + /xgAA0EB+QMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wNBAfkkAANaAekDJQH/AyUB/wUAAdIB+gH/AQAB + 0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8wAAMXAR8D + SQGHA1wB1gNcAfgDUwGqEAADJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/xgAA2AB4AMlAf8D + JQH/AyUB/wMlAf8DJQH/AyUB/wNgAeAkAAMlAf8DJQH/AyUB/wUAAdIB+gH/AQAB0gH6Af8BAAHSAfoB + /wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8kAAMJBAwBDwNNAZMDTQH6AyUB + /wMlAf8DJQH/A2AB8xAAAyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DMwFSAQAB0gH6Af8B + XAJfAcgMAAM8AWYDWwHKA0QBegMuAUgDMAFLA0QBegNbAcoDPAFmJAADJQH/AyUB/wMlAf8FAAHSAfoB + /wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/HAAB + OwI8AWUDVQGvAzYBWANcAecDYAHgAz4BagM6BGAB6AMlAf8DVQGuEAADJQH/AyUB/wMlAf8DJQH/AyUB + /wMlAf8DJQH/AyUB/wMzAVIBAAHSAfoB/wEAAdIB+gH/EAADFwEfAzYBVwNaAcQDWgHEAzkBXgMYASAD + GwEmAUwCTQGRASECXwH7ASECXwH7AVsCYwHkAVUCVwG0AzEBTQwAAyUB/wMlAf8DJQH/BQAB0gH6Af8B + AAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/xgAASYC + JwE5AVUCVgGuA0QBegNaAfUDOQFfAz0BZwFgAmkB6AMgAS4DVwG5AyYB+wMhATAQAAMlAf8DJQH/AyUB + /wMlAf8DJQH/AyUB/wMlAf8DJQH/AzMBUgEAAdIB+gH/AQAB0gH6Af8QAAM9AWkDgAH+AyUB/wMlAf8D + gAH+Az0BaQMZASIBAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AUECagH5DAAD + JQH/AyUB/wMlAf8FAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8B + AAHSAfoB/wEAAdIB+gH/GAADMgFPA0IBdQNgAdsDNQFWAV4CZQHiAQAB0gH6Af8BAAHSAfoB/wFQAlEB + nQNMAZEDRgGAFAADJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wMzAVIBAAHSAfoB/wEAAdIB + +gH/EAADYQHmAyUB/wMlAf8DJQH/AyUB/wNhAeYDHgEqAQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB + 0gH6Af8BAAHSAfoB/wFgAmYB4AwAAyUB/wMlAf8DJQH/BQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB + 0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/xQAAwcBCQNKAYoDXQHPAzoBYAFNAn0B + +gEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wErAn4B/AMpAT0EAhQAAyUB/wMlAf8DJQH/AyUB/wMlAf8D + JQH/AyUB/wNcAcgDMwFSAQAB0gH6Af8BAAHSAfoB/xAAA1oB9QMlAf8DJQH/AyUB/wMlAf8DWgH1AysB + QgNEAXoDLgFIAzABSwNEAXoBWwJdAcoDPAFmDAADJQH/AyUB/wMlAf8FAAHSAfoB/wEAAdIB+gH/AQAB + 0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/EAAEAgNLAY8DYAHgAzUB + VgOAAf4BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wErAn4B/AMEAQUYAAMlAf8DJQE3FAAD + OwFlAzMBUgEAAdIB+gH/AQAB0gH6Af8QAANRAZ4DJQH/AyUB/wMlAf8DJQH/A1EBngMXAR8DNgFXAVoC + XAHEAVoCXAHEAzkBXgMYASAQAAMlAf8DJQH/AyUB/wUAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB + +gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8QAANBAXMDJQH/AzYBWAFgAmYB4AEAAdIB + +gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BWQJcAcEcAANaAekDJQE3EAADCwEOAyUB + /wMzAVIBAAHSAfoB/wEAAdIB+gH/EAADCAEKA04BmANlAfEDZQHxA04BmAMIAQoDNAFUA4AB/gEAAdIB + +gH/AQAB0gH6Af8DgAH+AT0CPgFpEAADJQH/AyUB/wMlAf8FAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8B + AAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/DAADHAEnAyYB+wNdAc4DGwElAUEC + agH5AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BQQJqAfkBJgInATkcAAMzAVADWgHpAyUB + /wMlAf8DJQH/AyUB/wMlAf8DWwHKA0YBfgEAAdIB+gH/AVwCXwHIKAABYQJqAeYBAAHSAfoB/wEAAdIB + +gH/AQAB0gH6Af8BAAHSAfoB/wFhAmoB5hAAAyUB/wMlAf8DJQH/BAADgAH+A4AB/gOAAf4DgAH+A4AB + /gEAAdIB+gH/AQAB0gH6Af8BRgJHAYAMAANVAa4DJQH/A2AB6AM6AWADMAFLAVgCWgG9AQAB0gH6Af8B + AAHSAfoB/wNeAdIDKgE/LAADPAFmAwUBBhQAA0YBfigAAVoCbgH1AQAB0gH6Af8BAAHSAfoB/wEAAdIB + +gH/AQAB0gH6Af8BWgJuAfUQAAMlAf8DJQE3NAADYAHzAyUB/wMlAf8DJQH/A1oB8gMoATwDEQEWAxEB + FjQAAVoCYwHpAyUBNxAAAwsBDgEAAdIB+gH/KAADUQGeAQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB + 0gH6Af8DUQGeEAADWgHpAyUBNyAAAwsBDgEAAdIB+gH/DAADUwGqA1wB+ANcAdYDSQGHAxcBH0AAAzMB + UAFaAmMB6QEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BWwJdAcooAAMIAQoD + TgGYAWUCcAHxAWUCcAHxA04BmAMIAQoQAAMzAVADWgHpAyUB/wUAAdIB+gH/AQAB0gH6Af8BAAHSAfoB + /wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AVECUwGi/wD/AGIAAxcBHwMlAf8DJQH/AwgB + CiQAAx0BKQM/AW4DBgEIEAADBgEIAz8BbgMdASkYAAMTARkDRwGCA1kBwwNaAekDKwH8AysB/ANaAekD + WQHDA0YBgQMTARlgAAMXAR8DJQH/AzwBZgNOAZcDJQH/AwgBCiAAA1IBqAMlAf8DWwHQAx0BKAgAAx0B + KANbAdADJQH/A1IBqBgAA1sB5AMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/A1sB5FwAAxYB + HgMlAf8DOwFlBAAEAQNOAZcDJQH/AwgBChwAAz8BbAMlAf8DJQH/A1MB9AM7AWMDOwFjA1MB9AMlAf8D + JQH/Az8BbBgAA1EB9wMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/A1EB9xAAAVwCXwHIAQAB + 0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB + /wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AVwCXwHIEAADFgEeAyUB/wM8AWYMAAQBA04B + lwMlAf8DCAEKGAADFAEbA0AB/QMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wNAAf0DFAEbGAADWwHNAyUB + /wMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DWwHNEQAB0gH6Af8xAAHSAfoB/wwAAxYBHgMlAf8D + PAFmFAAEAQNOAZgDJQH/HAADWQHGAyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/A1kBxhwAAzUBVgOAAf4D + JQH/A2EB5gNdAc8DXQHPA2EB5gMlAf8DgAH+AzUBVhEAAdIB+gH/BAADJQH/BAADJQH/AzwBZgMlAf8D + JQH/BAADJQH/AzwBZgMlAf8FAAHSAfoB/wgAAxYBHgMlAf8DPAFmHAADNgFZAyUB/wQBFAAEAQNUAasD + JQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DVAGrBAEcAAMwAUwDKgE/AxsBJQMNAREDDQERAx0BKQMqAT8D + MAFMFQAB0gH6Af8EAAMlAf8EAAMlAf8DPAFmAyUB/wMlAf8EAAMlAf8DPAFmAyUB/wUAAdIB+gH/CAAD + JQH/A1IBoBwAAzYBVwMlAf8DHQEpAVYCWAGzEAADEAEVA1YBtQMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB + /wMlAf8DJQH/A1YBtQMQARUcAAMWAR4DOQFfA1oBxwNaAccDOQFfAxYBHhkAAdIB+gH/BAADJQH/BAAD + JQH/AzwBZgMlAf8DJQH/BAADJQH/AzwBZgMlAf8FAAHSAfoB/wgAAyUB/wMrAfwDOQFeFAADNgFXAyUB + /wMPARMDPQFoAQAB0gH6Af8MAAMrAUIDYQHmAyUB/wMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8D + JQH/AyUB/wNhAeYDKwFCFAADHQEpA14B8AMlAf8DJQH/AyUB/wMlAf8DXgHwAx0BKRUAAdIB+gH/BAAD + JQH/BAADJQH/AzwBZgMlAf8DJQH/BAADJQH/AzwBZgMlAf8FAAHSAfoB/wgAAyUB/wMlAf8DKwH8AzkB + XgwAAzUBVgMlAf8DDwEUAzwBZgEAAdIB+gH/AxYBHgwAA1oB8gMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB + /wMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wNaAfIUAANVAbEDJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8D + VQGxFQAB0gH6Af8EAAMlAf8EAAMlAf8DPAFmAyUB/wMlAf8EAAMlAf8DPAFmAyUB/wUAAdIB+gH/CAAD + JQH/A0YBgQNWAbIDKwH8AzgBXQQAAzUBVgMlAf8DDwEUAzwBZgEAAdIB+gH/AxYBHhAAAz0BaQNQAZwD + TwGbA08BmwNTAacDJQH/AyUB/wMlAf8DJQH/A1MBpwNPAZsDTwGbA1ABnAM9AWkUAANTAfQDJQH/AyUB + /wMlAf8DJQH/AyUB/wMlAf8DUwH0FQAB0gH6Af8EAAMlAf8EAAMlAf8DPAFmAyUB/wMlAf8EAAMlAf8D + PAFmAyUB/wUAAdIB+gH/CAADgAH+AxoBIwNCAXUDJQH/AysB/ANOAZYDJQH/Aw8BFAM8AWYBAAHSAfoB + /wMWAR4oAANeAdcDJQH/AyUB/wNeAdcoAANTAfQDJQH/AyUB/wMlAf8DJQH/AyUB/wMlAf8DUwH0FQAB + 0gH6Af8xAAHSAfoB/wgAA04BlQNNAfoDKwH8AyUB/wMlAf8DJQH/AwsBDgE7AjwBZQEAAdIB+gH/AxYB + HiwAA0kBhQMlAf8DJQH/A0kBhigAA1UBsQMlAf8DJQH/AyUB/wMlAf8DJQH/AyUB/wNVAbEUAAFcAl8B + yAEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB + 0gH6Af8BAAHSAfoB/wEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wFcAl8ByAgAAwUBBgNHAYIDDQERAysB + QQMqAUABOwI8AWUDUgGgAQAB0gH6Af8DFwEfMAADJAE0AyUB/wMlAf8DJAE0KAADHQEpA14B8AMlAf8D + JQH/AyUB/wMlAf8DXgHwAx0BKVQABAEDTQGSA4AB/gEAAdIB+gH/AQAB0gH6Af8BAAHSAfoB/wEAAdIB + +gH/AxcBHzQABAEDXAHIA1wByAQBLAADHQEpA1UBsQNTAfQDUwH0A1UBsQMdASn/AFUAAUIBTQE+BwAB + PgMAASgDAAFAAwABQAMAAQEBAAEBBgABAhYAA/8BAAb/AgABxgEfAv8B4AF/AgABwgEfAfABDwHgAX8C + AAGAAQcB4AEHAfADAAGAAQMBxwEDAfADAAGAAQMBzwEDAfADAAGAAQMBzwEDAYADAAHhAY8BzwEDAYAB + AQIAAfEBhwHPAQMBgAEBAgABwAEBAc8BAwGAAQECAAHAAQEBzwEDAcABgQIAAcABAQHHAQMBwAGBAgAB + 4AEBAeABBwHAAYECAAH4AUMB8AEPAcAB/wIAAfgBYwL/AcAB/wIABP8BwAH/AgAI/wH4AT8B/wEfAfAB + DwHwAQ8B4AEPAf8BDwHgAQcB4AEHAYABAwH/AQcEwwGMAWMB8AEnAYEBwQGHAeEBnAFzAcAB4wGBAcEB + jwHxAZwBcwGHAfEBgQEBAZ8B+QGQAXMBmAEZAYYBAQGeAXkBgAEzAZ8B+QGOAQEBnAEZAYABAwGYARkB + jgEBAZwBCQGAAQMBnwH5AYcBAQGIAcEBgAEDAZgBGQGDAQEBgQHhAYABAwGHAeEBwAEDAcEBwwHgAQ8B + wAEDAeABBwHgAQcB+AE/AfABDwHwAQ8B8AEPEP8B4AEfAYABfwHEAQMC/wHgAR8BgAF/AcQBAwH/AcEB + 4AEfAYABfwHEAQMB/gEBAeABAwGAAX8BxAEDAfgBAQHgAQMBwAEBAcQBAwHwAQEB4AEDAcABAQHEAQMB + 8AEDAeABAwHAAQEBxAEDAeABAwHgAQMBwAEBAcQBAwHAAQcB5wHDAcABAwHEAQMBwAEPAecBgwHAAQMB + xAEDAYABDwHgAQMB/wEDAcQBAwGAAR8B/AH7Af8BAwHPAf8BgAF/AfwB8wH/AQMBzwHzAYMB/wH8AQMB + /wEDAcQBAxL/AfwBPwHjAccB4AEHAv8B+AEfAeEBhwHgAQcC/wHxAQ8B4AEHAeABBwGAAQEB4wGHAeAB + BwHgAQcBvwH9AscB8AEPAeABBwGoAUUBjwHjAeABBwHwAQ8BqAFFAZ8BwwHAAQMB+AEfAagBRQGPAYMB + gAEBAfABDwGoAUUBhwEDAYABAQHwAQ8BqAFFAYIBBwGAAQEB8AEPAagBRQGAAQ8B/AE/AfABDwG/Af0B + gAEfAfwBPwHwAQ8BgAEBAYABPwH8AT8B8AEPAv8BgAF/AfwBPwH4AR8K/ws= @@ -712,7 +712,7 @@ Note: If writing XML-Pageindex is set to FALSE, this option will be forced and c AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAlgYAAAJNU0Z0AUkBTAIBAQIB - AAG4AQ4BuAEOARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAARADAAEBAQABIAYAARD/ + AAFgAQ8BYAEPARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAARADAAEBAQABIAYAARD/ ACcAAxgBIQNQAZwDWgHyA1ABnAMYASHkAAMYASADTwGZA1oB8gNRAaIDJQH/A1EBogNaAfIDTwGZAxgB IBQAA1kBwANZAcADWQHAA1kBwANZAcADWQHAA1kBwANZAcADWQHAA1kBwANZAcADWQHAA1kBwAMlAf8D KgFAhAADFQEcA04BlgNaAfIDUQGeAxoBIwMIAQoDJQH/AwgBCgMaASMDUQGeA1oB8gNOAZYDFQEcDAAD @@ -750,7 +750,7 @@ Note: If writing XML-Pageindex is set to FALSE, this option will be forced and c AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAACgMAAAJNU0Z0AUkBTAIBAQIB - AAF4AS4BeAEuARABAAEQAQAE/wEZAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAARADAAEBAQABGAYAAQwh + AAEgAS8BIAEvARABAAEQAQAE/wEZAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAARADAAEBAQABGAYAAQwh AAP3A9kDxAO/A9ID7QP+pQAD/gO5AywPJQN/A/0SAAPnAVIBVAFVA/oPAAO4AbYCuG8AA/sDhgYlA0kD qwOtA38GJQNEA+MMAAPmA1ADJQN9A/oGAAP9A7QDKwMlA7ppAAP+A2MJJQObBgAD3wklA0QD/QYAA+cM JQNGA/oDAAO0DCUBtgK4ZgAD1AwlA5sGAAPfDCUDfwP+AwAD6AM1DCUDfQO0AysJJQMrA7hmAAOGDCUD @@ -779,7 +779,7 @@ Note: If writing XML-Pageindex is set to FALSE, this option will be forced and c AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAuAsAAAJNU0Z0AUkBTAIBAQQB - AAGgAQwBoAEMARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAASADAAEBAQABIAYAASD/ + AAFIAQ0BSAENARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAASADAAEBAQABIAYAASD/ AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/ADYAAxgBIAM4AVsDRAF4A0YBfgM8AWYDJQE3AwQB BdwAAwQBBQNJAYUDTQH6A1wB5wNRAaQDTgGWA10BzAMlAf8DWAG9AwcBCVwAAxMBGgNJAYgBXQJhAdQB RQFoAWoB+QFFAWgBagH5AV0CYQHUA0kBiAMTARowAAM4AV0DMAFKAwQBBRwAAw4BEgNVAbQDVQGsAy0B diff --git a/MyCBZ/List/ListViewSorter.cs b/MyCBZ/List/ListViewSorter.cs index 1c0661d1..5e08ae88 100644 --- a/MyCBZ/List/ListViewSorter.cs +++ b/MyCBZ/List/ListViewSorter.cs @@ -2,12 +2,14 @@ using System.Collections; using System.Collections.Generic; using System.Linq; +using System.Runtime.Versioning; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Win_CBZ.List { + [SupportedOSPlatform("windows")] internal class ListViewSorter : IComparer { private int col; diff --git a/MyCBZ/Models/ProjectModel.cs b/MyCBZ/Models/ProjectModel.cs index 2bd87a50..3367cab4 100644 --- a/MyCBZ/Models/ProjectModel.cs +++ b/MyCBZ/Models/ProjectModel.cs @@ -795,7 +795,7 @@ protected void OpenArchiveProc(object threadParams) OpenArchiveThreadParams tParams = threadParams as OpenArchiveThreadParams; ArrayList missingPages = new ArrayList(); - long itemSize = 0; + int index = 0; long totalSize = 0; MetaDataPageIndexMissingData = false; @@ -1097,6 +1097,7 @@ public bool SaveAs(String path, ZipArchiveMode mode, MetaData.PageIndexVersion m } } + /* metaDataValidationFailed = Validation.ValidateMetaDataDuplicateKeys(ref invalidKeys); if (metaDataValidationFailed) { @@ -1104,6 +1105,7 @@ public bool SaveAs(String path, ZipArchiveMode mode, MetaData.PageIndexVersion m return false; } + */ metaDataValidationFailed = Validation.ValidateMetaDataInvalidKeys(ref invalidKeys); if (metaDataValidationFailed) @@ -1115,6 +1117,7 @@ public bool SaveAs(String path, ZipArchiveMode mode, MetaData.PageIndexVersion m if (Program.ProjectModel.MetaData.Exists()) { + /* string defaultKeys = String.Join("", Program.ProjectModel.MetaData.Values.Select(k => k.Key).ToArray()); if (!Regex.IsMatch(defaultKeys, @"^[a-z]+$", RegexOptions.IgnoreCase)) { @@ -1126,6 +1129,7 @@ public bool SaveAs(String path, ZipArchiveMode mode, MetaData.PageIndexVersion m return false; } + */ foreach (MetaDataEntry entry in MetaData.Values) { @@ -1804,7 +1808,7 @@ public void ValidateProc(object threadParams) { foreach (String key in invalidKeys) { - problems.Add("Metadata->Values: invalid Key '" + key + "'"); + problems.Add("Metadata->Values: " + key + "'"); } } @@ -1926,9 +1930,9 @@ public void CancelAllThreads() public Page AddPageFromFile(LocalFile localFile, PageIndexVersion version, int insertAt = -1) { int pageStatus = 0; - bool pageError = false; + FileInfo targetPath; - FileInfo localPath; + int realNewIndex = Pages.Count; Page page; Page insertPage = null; diff --git a/MyCBZ/Tasks/ProcessImagesTask.cs b/MyCBZ/Tasks/ProcessImagesTask.cs index a42982af..b7a8db19 100644 --- a/MyCBZ/Tasks/ProcessImagesTask.cs +++ b/MyCBZ/Tasks/ProcessImagesTask.cs @@ -32,8 +32,6 @@ public static Task ProcessImages(List pages, ImageTask gl }; Page taskPage = null; - Page secondPage = null; - string convertFormatName = null; AppEventHandler.OnApplicationStateChanged(null, new ApplicationStatusEvent(Program.ProjectModel, ApplicationStatusEvent.STATE_PROCESSING)); diff --git a/MyCBZ/Win_CBZ.csproj b/MyCBZ/Win_CBZ.csproj index 0823e48c..08d89528 100644 --- a/MyCBZ/Win_CBZ.csproj +++ b/MyCBZ/Win_CBZ.csproj @@ -110,32 +110,32 @@ - + - - - - - + + + + + - + - + - + - + - + - + - +