Work on ASSA set pos - thx Leon :)

This commit is contained in:
niksedk 2021-06-22 20:19:00 +02:00
parent c1148582f0
commit 5f150f0b45
5 changed files with 458 additions and 77 deletions

View File

@ -43,9 +43,26 @@ namespace Nikse.SubtitleEdit.Forms.Assa
this.labelStyleAlignment = new System.Windows.Forms.Label();
this.labelVideoResolution = new System.Windows.Forms.Label();
this.labelCurrentTextPosition = new System.Windows.Forms.Label();
this.numericUpDownRotateX = new System.Windows.Forms.NumericUpDown();
this.labelRotateX = new System.Windows.Forms.Label();
this.numericUpDownRotateY = new System.Windows.Forms.NumericUpDown();
this.labelRotateY = new System.Windows.Forms.Label();
this.numericUpDownRotateZ = new System.Windows.Forms.NumericUpDown();
this.labelRotateZ = new System.Windows.Forms.Label();
this.panelAdvanced = new System.Windows.Forms.Panel();
this.labelDistortX = new System.Windows.Forms.Label();
this.numericUpDownDistortX = new System.Windows.Forms.NumericUpDown();
this.labelDistortY = new System.Windows.Forms.Label();
this.numericUpDownDistortY = new System.Windows.Forms.NumericUpDown();
this.groupBox1.SuspendLayout();
this.groupBoxPreview.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxPreview)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownRotateX)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownRotateY)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownRotateZ)).BeginInit();
this.panelAdvanced.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownDistortX)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownDistortY)).BeginInit();
this.SuspendLayout();
//
// groupBox1
@ -53,9 +70,9 @@ namespace Nikse.SubtitleEdit.Forms.Assa
this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.groupBox1.Controls.Add(this.radioButtonClipboard);
this.groupBox1.Controls.Add(this.radioButtonSelectedLines);
this.groupBox1.Location = new System.Drawing.Point(715, 12);
this.groupBox1.Location = new System.Drawing.Point(763, 12);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(246, 75);
this.groupBox1.Size = new System.Drawing.Size(195, 75);
this.groupBox1.TabIndex = 1;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Apply to";
@ -181,11 +198,180 @@ namespace Nikse.SubtitleEdit.Forms.Assa
this.labelCurrentTextPosition.TabIndex = 10;
this.labelCurrentTextPosition.Text = "Current text position:";
//
// numericUpDownRotateX
//
this.numericUpDownRotateX.DecimalPlaces = 1;
this.numericUpDownRotateX.Location = new System.Drawing.Point(91, 9);
this.numericUpDownRotateX.Maximum = new decimal(new int[] {
360,
0,
0,
0});
this.numericUpDownRotateX.Minimum = new decimal(new int[] {
360,
0,
0,
-2147483648});
this.numericUpDownRotateX.Name = "numericUpDownRotateX";
this.numericUpDownRotateX.Size = new System.Drawing.Size(52, 20);
this.numericUpDownRotateX.TabIndex = 18;
this.numericUpDownRotateX.ValueChanged += new System.EventHandler(this.numericUpDownRotateX_ValueChanged);
//
// labelRotateX
//
this.labelRotateX.AutoSize = true;
this.labelRotateX.Location = new System.Drawing.Point(15, 11);
this.labelRotateX.Name = "labelRotateX";
this.labelRotateX.Size = new System.Drawing.Size(70, 13);
this.labelRotateX.TabIndex = 17;
this.labelRotateX.Text = "Rotate X axis";
//
// numericUpDownRotateY
//
this.numericUpDownRotateY.DecimalPlaces = 1;
this.numericUpDownRotateY.Location = new System.Drawing.Point(91, 34);
this.numericUpDownRotateY.Maximum = new decimal(new int[] {
360,
0,
0,
0});
this.numericUpDownRotateY.Minimum = new decimal(new int[] {
360,
0,
0,
-2147483648});
this.numericUpDownRotateY.Name = "numericUpDownRotateY";
this.numericUpDownRotateY.Size = new System.Drawing.Size(52, 20);
this.numericUpDownRotateY.TabIndex = 20;
this.numericUpDownRotateY.ValueChanged += new System.EventHandler(this.numericUpDownRotateX_ValueChanged);
//
// labelRotateY
//
this.labelRotateY.AutoSize = true;
this.labelRotateY.Location = new System.Drawing.Point(15, 36);
this.labelRotateY.Name = "labelRotateY";
this.labelRotateY.Size = new System.Drawing.Size(70, 13);
this.labelRotateY.TabIndex = 19;
this.labelRotateY.Text = "Rotate Y axis";
//
// numericUpDownRotateZ
//
this.numericUpDownRotateZ.DecimalPlaces = 1;
this.numericUpDownRotateZ.Location = new System.Drawing.Point(91, 60);
this.numericUpDownRotateZ.Maximum = new decimal(new int[] {
360,
0,
0,
0});
this.numericUpDownRotateZ.Minimum = new decimal(new int[] {
360,
0,
0,
-2147483648});
this.numericUpDownRotateZ.Name = "numericUpDownRotateZ";
this.numericUpDownRotateZ.Size = new System.Drawing.Size(52, 20);
this.numericUpDownRotateZ.TabIndex = 22;
this.numericUpDownRotateZ.ValueChanged += new System.EventHandler(this.numericUpDownRotateX_ValueChanged);
//
// labelRotateZ
//
this.labelRotateZ.AutoSize = true;
this.labelRotateZ.Location = new System.Drawing.Point(15, 62);
this.labelRotateZ.Name = "labelRotateZ";
this.labelRotateZ.Size = new System.Drawing.Size(70, 13);
this.labelRotateZ.TabIndex = 21;
this.labelRotateZ.Text = "Rotate Z axis";
//
// panelAdvanced
//
this.panelAdvanced.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.panelAdvanced.Controls.Add(this.labelDistortX);
this.panelAdvanced.Controls.Add(this.numericUpDownDistortX);
this.panelAdvanced.Controls.Add(this.labelDistortY);
this.panelAdvanced.Controls.Add(this.numericUpDownDistortY);
this.panelAdvanced.Controls.Add(this.labelRotateX);
this.panelAdvanced.Controls.Add(this.numericUpDownRotateZ);
this.panelAdvanced.Controls.Add(this.numericUpDownRotateX);
this.panelAdvanced.Controls.Add(this.labelRotateZ);
this.panelAdvanced.Controls.Add(this.labelRotateY);
this.panelAdvanced.Controls.Add(this.numericUpDownRotateY);
this.panelAdvanced.Location = new System.Drawing.Point(458, 11);
this.panelAdvanced.Name = "panelAdvanced";
this.panelAdvanced.Size = new System.Drawing.Size(299, 88);
this.panelAdvanced.TabIndex = 23;
//
// labelDistortX
//
this.labelDistortX.AutoSize = true;
this.labelDistortX.Location = new System.Drawing.Point(175, 11);
this.labelDistortX.Name = "labelDistortX";
this.labelDistortX.Size = new System.Drawing.Size(47, 13);
this.labelDistortX.TabIndex = 23;
this.labelDistortX.Text = "Distort X";
//
// numericUpDownDistortX
//
this.numericUpDownDistortX.DecimalPlaces = 2;
this.numericUpDownDistortX.Increment = new decimal(new int[] {
5,
0,
0,
131072});
this.numericUpDownDistortX.Location = new System.Drawing.Point(231, 9);
this.numericUpDownDistortX.Maximum = new decimal(new int[] {
3,
0,
0,
0});
this.numericUpDownDistortX.Minimum = new decimal(new int[] {
3,
0,
0,
-2147483648});
this.numericUpDownDistortX.Name = "numericUpDownDistortX";
this.numericUpDownDistortX.Size = new System.Drawing.Size(52, 20);
this.numericUpDownDistortX.TabIndex = 24;
this.numericUpDownDistortX.ValueChanged += new System.EventHandler(this.numericUpDownRotateX_ValueChanged);
//
// labelDistortY
//
this.labelDistortY.AutoSize = true;
this.labelDistortY.Location = new System.Drawing.Point(175, 36);
this.labelDistortY.Name = "labelDistortY";
this.labelDistortY.Size = new System.Drawing.Size(47, 13);
this.labelDistortY.TabIndex = 25;
this.labelDistortY.Text = "Distort Y";
//
// numericUpDownDistortY
//
this.numericUpDownDistortY.DecimalPlaces = 2;
this.numericUpDownDistortY.Increment = new decimal(new int[] {
1,
0,
0,
131072});
this.numericUpDownDistortY.Location = new System.Drawing.Point(231, 34);
this.numericUpDownDistortY.Maximum = new decimal(new int[] {
2,
0,
0,
0});
this.numericUpDownDistortY.Minimum = new decimal(new int[] {
3,
0,
0,
-2147483648});
this.numericUpDownDistortY.Name = "numericUpDownDistortY";
this.numericUpDownDistortY.Size = new System.Drawing.Size(52, 20);
this.numericUpDownDistortY.TabIndex = 26;
this.numericUpDownDistortY.ValueChanged += new System.EventHandler(this.numericUpDownRotateX_ValueChanged);
//
// SetPosition
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(973, 734);
this.Controls.Add(this.panelAdvanced);
this.Controls.Add(this.labelCurrentTextPosition);
this.Controls.Add(this.labelVideoResolution);
this.Controls.Add(this.labelStyleAlignment);
@ -198,7 +384,7 @@ namespace Nikse.SubtitleEdit.Forms.Assa
this.KeyPreview = true;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(720, 545);
this.MinimumSize = new System.Drawing.Size(790, 545);
this.Name = "SetPosition";
this.ShowIcon = false;
this.ShowInTaskbar = false;
@ -212,6 +398,13 @@ namespace Nikse.SubtitleEdit.Forms.Assa
this.groupBox1.PerformLayout();
this.groupBoxPreview.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.pictureBoxPreview)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownRotateX)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownRotateY)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownRotateZ)).EndInit();
this.panelAdvanced.ResumeLayout(false);
this.panelAdvanced.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownDistortX)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownDistortY)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
@ -231,5 +424,16 @@ namespace Nikse.SubtitleEdit.Forms.Assa
private System.Windows.Forms.Label labelStyleAlignment;
private System.Windows.Forms.Label labelVideoResolution;
private System.Windows.Forms.Label labelCurrentTextPosition;
private System.Windows.Forms.NumericUpDown numericUpDownRotateX;
private System.Windows.Forms.Label labelRotateX;
private System.Windows.Forms.NumericUpDown numericUpDownRotateY;
private System.Windows.Forms.Label labelRotateY;
private System.Windows.Forms.NumericUpDown numericUpDownRotateZ;
private System.Windows.Forms.Label labelRotateZ;
private System.Windows.Forms.Panel panelAdvanced;
private System.Windows.Forms.Label labelDistortX;
private System.Windows.Forms.NumericUpDown numericUpDownDistortX;
private System.Windows.Forms.Label labelDistortY;
private System.Windows.Forms.NumericUpDown numericUpDownDistortY;
}
}

View File

@ -30,6 +30,7 @@ namespace Nikse.SubtitleEdit.Forms.Assa
private readonly string _videoFileName;
private readonly VideoInfo _videoInfo;
private bool _positionChanged;
private bool _loading = true;
public SetPosition(Subtitle subtitle, int[] selectedIndices, string videoFileName, VideoInfo videoInfo)
{
@ -50,6 +51,13 @@ namespace Nikse.SubtitleEdit.Forms.Assa
groupBoxPreview.Text = LanguageSettings.Current.General.Preview;
buttonOK.Text = LanguageSettings.Current.General.Ok;
buttonCancel.Text = LanguageSettings.Current.General.Cancel;
numericUpDownRotateX.Left = labelRotateX.Left + labelRotateX.Width + 3;
numericUpDownRotateY.Left = labelRotateY.Left + labelRotateY.Width + 3;
numericUpDownRotateZ.Left = labelRotateZ.Left + labelRotateZ.Width + 3;
numericUpDownDistortX.Left = labelDistortX.Left + labelDistortX.Width + 3;
numericUpDownDistortY.Left = labelDistortY.Left + labelDistortY.Width + 3;
UiUtil.FixLargeFonts(this, buttonOK);
if (_videoInfo == null)
@ -85,8 +93,13 @@ namespace Nikse.SubtitleEdit.Forms.Assa
UiUtil.OpenUrl("https://www.nikse.dk/SubtitleEdit/AssaOverrideTags#pos");
e.SuppressKeyPress = true;
}
else if (e.KeyData == Keys.F2)
{
panelAdvanced.Visible = !panelAdvanced.Visible;
VideoLoaded(null, null);
}
if (e.Modifiers == Keys.Alt || e.Modifiers == Keys.Control)
if (e.Modifiers == Keys.Alt || e.Modifiers == Keys.Control && !_updatePos)
{
var v = e.Modifiers == Keys.Alt ? 1 : 10;
@ -95,24 +108,28 @@ namespace Nikse.SubtitleEdit.Forms.Assa
_y -= v;
e.SuppressKeyPress = true;
VideoLoaded(null, null);
labelCurrentTextPosition.Text = string.Format(LanguageSettings.Current.AssaSetPosition.CurrentTextPositionX, $"{_x},{_y}");
}
else if (e.KeyCode == Keys.Down && _x != -1 && _y != -1)
{
_y += v;
e.SuppressKeyPress = true;
VideoLoaded(null, null);
labelCurrentTextPosition.Text = string.Format(LanguageSettings.Current.AssaSetPosition.CurrentTextPositionX, $"{_x},{_y}");
}
else if (e.KeyCode == Keys.Left && _x != -1 && _y != -1)
{
_x -= v;
e.SuppressKeyPress = true;
VideoLoaded(null, null);
labelCurrentTextPosition.Text = string.Format(LanguageSettings.Current.AssaSetPosition.CurrentTextPositionX, $"{_x},{_y}");
}
else if (e.KeyCode == Keys.Right && _x != -1 && _y != -1)
{
_x += v;
e.SuppressKeyPress = true;
VideoLoaded(null, null);
labelCurrentTextPosition.Text = string.Format(LanguageSettings.Current.AssaSetPosition.CurrentTextPositionX, $"{_x},{_y}");
}
}
}
@ -132,6 +149,13 @@ namespace Nikse.SubtitleEdit.Forms.Assa
{
var styleToApply = $"{{\\pos({_x},{_y})}}";
var advancedVisible = panelAdvanced.Visible;
if (advancedVisible)
{
styleToApply = AddAdvancedTags(styleToApply);
}
if (radioButtonClipboard.Checked)
{
Clipboard.SetText(styleToApply);
@ -150,9 +174,12 @@ namespace Nikse.SubtitleEdit.Forms.Assa
var p = UpdatedSubtitle.Paragraphs[i];
// remove old position tags
p.Text = Regex.Replace(p.Text, @"{\\pos(.*)}", string.Empty);
p.Text = Regex.Replace(p.Text, @"\\pos(.*)", string.Empty);
RemoveOldPosTags(p);
if (advancedVisible)
{
RemoveAdvancedTags(p);
}
if (p.Text.StartsWith("{\\", StringComparison.Ordinal) && styleToApply.EndsWith('}'))
{
@ -165,6 +192,12 @@ namespace Nikse.SubtitleEdit.Forms.Assa
}
}
private static void RemoveOldPosTags(Paragraph p)
{
p.Text = Regex.Replace(p.Text, @"{\\pos\([\d,\.-]*\)}", string.Empty);
p.Text = Regex.Replace(p.Text, @"\\pos\([\d,\.-]*\)", string.Empty);
}
private int[] GetIndices(Subtitle subtitle)
{
return _selectedIndices;
@ -237,17 +270,24 @@ namespace Nikse.SubtitleEdit.Forms.Assa
var subtitle = new Subtitle();
var indices = GetIndices(subtitle);
var styleToApply = $"{{\\pos({_x},{_y})}}";
var p = indices.Length > 0 ?
new Paragraph(_subtitleWithNewHeader.Paragraphs[indices[0]]) :
new Paragraph(Configuration.Settings.General.PreviewAssaText, 0, 1000);
// remove old position tags
p.Text = Regex.Replace(p.Text, @"{\\pos(.*)}", string.Empty);
p.Text = Regex.Replace(p.Text, @"\\pos(.*)", string.Empty);
RemoveOldPosTags(p);
// remove fade tags
p.Text = Regex.Replace(p.Text, @"{\\fad(.*)}", string.Empty);
p.Text = Regex.Replace(p.Text, @"\\fade(.*)", string.Empty);
p.Text = Regex.Replace(p.Text, @"{\\fad\([\d\.,]*\)}", string.Empty);
p.Text = Regex.Replace(p.Text, @"\\fad\([\d\.,]*\)", string.Empty);
p.Text = Regex.Replace(p.Text, @"{\\fade\([\d\.,]*\)}", string.Empty);
p.Text = Regex.Replace(p.Text, @"\\fade\([\d\.,]*\)", string.Empty);
if (panelAdvanced.Visible)
{
RemoveAdvancedTags(p);
styleToApply = AddAdvancedTags(styleToApply);
}
p.Text = styleToApply + p.Text;
subtitle.Paragraphs.Add(p);
@ -269,10 +309,64 @@ namespace Nikse.SubtitleEdit.Forms.Assa
}
}
private string AddAdvancedTags(string styleToApply)
{
if (numericUpDownRotateX.Value != 0)
{
styleToApply += $"{{\\frx{numericUpDownRotateX.Value.ToString(CultureInfo.InvariantCulture)}}}";
}
if (numericUpDownRotateY.Value != 0)
{
styleToApply += $"{{\\fry{numericUpDownRotateY.Value.ToString(CultureInfo.InvariantCulture)}}}";
}
if (numericUpDownRotateZ.Value != 0)
{
styleToApply += $"{{\\frz{numericUpDownRotateZ.Value.ToString(CultureInfo.InvariantCulture)}}}";
}
if (numericUpDownDistortX.Value != 0)
{
styleToApply += $"{{\\fax{numericUpDownDistortX.Value.ToString(CultureInfo.InvariantCulture)}}}";
}
if (numericUpDownDistortY.Value != 0)
{
styleToApply += $"{{\\fay{numericUpDownDistortY.Value.ToString(CultureInfo.InvariantCulture)}}}";
}
styleToApply = styleToApply.Replace("}{", string.Empty);
return styleToApply;
}
private static void RemoveAdvancedTags(Paragraph p)
{
p.Text = Regex.Replace(p.Text, @"{\\frx[\d+\.-]*}", string.Empty);
p.Text = Regex.Replace(p.Text, @"\\frx[\d+\.-]*\\", "\\");
p.Text = Regex.Replace(p.Text, @"\\frx[\d+\.-]*}", "}");
p.Text = Regex.Replace(p.Text, @"{\\fry[\d+\.-]*}", string.Empty);
p.Text = Regex.Replace(p.Text, @"\\fry[\d+\.-]*\\", "\\");
p.Text = Regex.Replace(p.Text, @"\\fry[\d+\.-]*}", "}");
p.Text = Regex.Replace(p.Text, @"{\\frz[\d+\.-]*}", string.Empty);
p.Text = Regex.Replace(p.Text, @"\\frz[\d+\.-]*\\", "\\");
p.Text = Regex.Replace(p.Text, @"\\frz[\d+\.-]*}", "}");
p.Text = Regex.Replace(p.Text, @"{\\fax[\d+\.-]*}", string.Empty);
p.Text = Regex.Replace(p.Text, @"\\fax[\d+\.-]*\\", "\\");
p.Text = Regex.Replace(p.Text, @"\\fax[\d+\.-]*}", "}");
p.Text = Regex.Replace(p.Text, @"{\\fay[\d+\.-]*}", string.Empty);
p.Text = Regex.Replace(p.Text, @"\\fay[\d+\.-]*\\", "\\");
p.Text = Regex.Replace(p.Text, @"\\fay[\d+\.-]*}", "}");
}
private void ApplyCustomStyles_FormClosing(object sender, FormClosingEventArgs e)
{
_closing = true;
Application.DoEvents();
Configuration.Settings.Tools.AssaSetPositionTarget = radioButtonClipboard.Checked ? "Clipboard" : "SelectedLines";
_mpv?.Dispose();
}
@ -284,7 +378,6 @@ namespace Nikse.SubtitleEdit.Forms.Assa
return;
}
if (_updatePos && (_x != _tempX || _y != _tempY))
{
_x = _tempX;
@ -311,6 +404,7 @@ namespace Nikse.SubtitleEdit.Forms.Assa
}
GeneratePreviewViaMpv();
_loading = false;
}
private void ShowCurrentPosition()
@ -322,7 +416,7 @@ namespace Nikse.SubtitleEdit.Forms.Assa
}
var p = _subtitleWithNewHeader.Paragraphs[indices[0]];
var match = Regex.Match(p.Text, @"\\pos(.*)");
var match = Regex.Match(p.Text, @"\\pos\([\d\.,-]*");
if (match.Success)
{
var arr = match.Value.Split('(', ')', ',');
@ -337,6 +431,71 @@ namespace Nikse.SubtitleEdit.Forms.Assa
}
}
}
match = Regex.Match(p.Text, @"\\frx[\d\.-]*");
if (match.Success)
{
var arr = match.Value.Split('x', '\\', '}');
if (arr.Length > 2)
{
if (decimal.TryParse(arr[2], NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign, CultureInfo.InvariantCulture, out var x))
{
numericUpDownRotateX.Value = x;
}
}
}
match = Regex.Match(p.Text, @"\\fry[\d\.-]*");
if (match.Success)
{
var arr = match.Value.Split('y', '\\', '}');
if (arr.Length > 2)
{
if (decimal.TryParse(arr[2], NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign, CultureInfo.InvariantCulture, out var x))
{
numericUpDownRotateY.Value = x;
}
}
}
match = Regex.Match(p.Text, @"\\frz[\d\.-]*");
if (match.Success)
{
var arr = match.Value.Split('z', '\\', '}');
if (arr.Length > 2)
{
if (decimal.TryParse(arr[2], NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign, CultureInfo.InvariantCulture, out var x))
{
numericUpDownRotateZ.Value = x;
}
}
}
match = Regex.Match(p.Text, @"\\fax[\d\.-]*");
if (match.Success)
{
var arr = match.Value.Split('x', '\\', '}');
if (arr.Length > 2)
{
if (decimal.TryParse(arr[2], NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign, CultureInfo.InvariantCulture, out var x))
{
numericUpDownDistortX.Value = x;
}
}
}
match = Regex.Match(p.Text, @"\\fay[\d\.-]*");
if (match.Success)
{
var arr = match.Value.Split('y', '\\', '}');
if (arr.Length > 2)
{
if (decimal.TryParse(arr[2], NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign, CultureInfo.InvariantCulture, out var x))
{
numericUpDownDistortY.Value = x;
}
}
}
}
private void ShowStyleAlignment()
@ -381,5 +540,16 @@ namespace Nikse.SubtitleEdit.Forms.Assa
var newWidth = pictureBoxPreview.Height * aspectRatio;
Width += (int)(newWidth - pictureBoxPreview.Width);
}
private void numericUpDownRotateX_ValueChanged(object sender, EventArgs e)
{
if (_loading || !panelAdvanced.Visible)
{
return;
}
_positionChanged = true;
VideoLoaded(null, null);
}
}
}

View File

@ -2564,7 +2564,7 @@ namespace Nikse.SubtitleEdit.Forms
this.toolStripMenuItemSelectedLines,
this.toolStripMenuItemGoogleMicrosoftTranslateSelLine});
this.contextMenuStripListView.Name = "contextMenuStripListView";
this.contextMenuStripListView.Size = new System.Drawing.Size(285, 754);
this.contextMenuStripListView.Size = new System.Drawing.Size(285, 732);
this.contextMenuStripListView.Closed += new System.Windows.Forms.ToolStripDropDownClosedEventHandler(this.MenuClosed);
this.contextMenuStripListView.Opening += new System.ComponentModel.CancelEventHandler(this.ContextMenuStripListViewOpening);
this.contextMenuStripListView.Opened += new System.EventHandler(this.MenuOpened);

View File

@ -31213,9 +31213,16 @@ namespace Nikse.SubtitleEdit.Forms
private void setPositionToolStripMenuItem_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(VideoFileName))
{
MessageBox.Show(LanguageSettings.Current.General.NoVideoLoaded);
return;
}
using (var form = new SetPosition(_subtitle, SubtitleListview1.GetSelectedIndices(), VideoFileName, _videoInfo))
{
if (form.ShowDialog(this) != DialogResult.OK)
var result = form.ShowDialog(this);
if (result != DialogResult.OK)
{
return;
}

View File

@ -464,75 +464,75 @@
<data name="toolStripButtonAssStyleManager.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAOhSURBVFhH7VdJaBRBFG2XuIKKIWokmaru1hiDoiKCIBgC
IoYEBC8qAVGEoGQmXd1BCYiMJxEPHgTBBfFklukm0UAQ4iHRmyIRUSSI4tI9IxrEg0YJYtr/9Uc7VVlm
stx88Bi6/6v6j1/Vv2q0/5gMHlZXnfNt0R5l2hbXQ02bRZKZg8dYaXJ9yZBvJcK0I0ZSiN0kmzm4Zuyy
Z/Kwd99exUDgWHdINjNoK12df9PkA2igc9MGxcA1RwxlGhrKSD798Ex2CpMP81nNQcVExhFXST69SJWV
zWsxeSZq4O72bYqBtHP0WyaRKKBh04eUyQ9FkyNbzKIPgW09lU1AFU7TsOmDp/Ne2YBrsjOw8Q7LBgLL
ev8ikZhPQ6cOWPsKOTnwe5Our8REmFAxYdcfoeFTR8pgHaMYuE5hLYCSywagMT2h8NTQrOslkOxnNHnS
5EOtur6RJBpuOtx8solAiF0kmTxcg1+KJkfC2ndR+C+gClcVA47VSeHJobWoaLln8K+KAYNVkuQvsAFh
I4oauGZb8OyUkiR3eAZrVJPz52MdOtiKowaQUJnLFM4NV7ZuzXN1HsgGgLUkUYCHkWygzxEDQWNdPkmy
R0qP1cjJXcb6YVkWkkQBViawhdKYoDKnSJI9XJM/kg3cYOxHs8k/j8fu8vJB1UBd5lkyOY+mnhge5zvl
5Nmyba0Zvqk7PsIA0retQzT9xEjpvH20ybPlg6o9ioG0ZfXS9OOjbU2xCeUf0Xhy5e2ydaEv6hUTvp2o
oDRjw9XZRWXSWOwj9IPHufDpwf2BbCBt13dQmtHRztgyuPN9kQ24ul5NkqzxzrY3yo0JNujPwHFKSKIC
nJ+Qk3tmcV9S02aTJCf4QnRFDSB9y7pE4ZEAd3Mh2VvFgM6OkyRnZBqsStnAy2PHvkJ1lpPkH+DIPaAk
N/injsLCRSTJGWEYzvId8Vw2Ae8aSfIPcN1+IBuAvn+WwpNGpkHUygYCJx6EtbV5JMG1j+2Qk3sFBYO3
1hWvJkkUeBCNRQVQ7oWv4/F+2cQ7R9SQ5PfmOwl3vm7XiPWkjNi9VoPdb9LZeQgtBi4B4pqtABYCi4Ax
IANy+sVnfI9x1KF+KRDHL3hVH7d9O34PzoQeuCl1I+EyewFiCnC3Y2nwwBlOvBKIk+tA/ITwjwfehjYD
t9AvPuN7jBvAYuAqIJ6COA/uIzwLcvqahsuKg+YA0RhOgsQb74II8RmJMdTNBeI45KhL8wea9gvZg00l
kkBKxwAAAABJRU5ErkJggg==
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAOgSURBVFhH7VddSBRRFJ5+7BcqDCtD996ZKbWlqJAgCAoh
oigIeikRpAikcNe5M1IIEdtTRA89BEEG0VOaO4OWIEE9WL0VYUQiEkU/M7tREj2kRURO59SxxnvVdv15
64OPZeZ8956Pc++ce1f7j8ng0b6953xbdESZscXVUNNmkWTm4DFWkVpXNuxbyTDjiNEUYhfJZg6uGbvs
mTzsObBfMRA41m2SzQzaK1Yvv27yITTQtXG9YqDZEcPZxsY4yacfnslOYfIR9tZUKyayjrhC8ulFOh6f
d8Pk2aiBu1u3KAYyztEv2WSyiIZNH9Imr40mR94wS94HtvVMNgFVOE3Dpg+ezntkA67JzsDGOywbCCzr
3fNkcj4NnTpg7avk5MCvLbq+EhNhQsWE3XCEhk8daYN1jmHgKoW1AEouG4DG9JTCU0OrrpdBsh/R5CmT
D7fp+gaSaLjpcPPJJgIhdpJk8nANfimaHAlrf4fCfwBVuKIYcKwuCk8ObSUlhZ7BBxUDBttDkj/ABoSN
KGqg2bbg2akgSf7wDNakJud94x062IqjBpBQmcsUzg/NlZUFrs4D2QCwjiQK8DCSDfQ7Yihoql9OktyR
1mM1cnKXsQFYloUkUYCVCWyhNCaozCmS5A7X5I9lA9cY+95q8k8TsXvHjm+qgfpsbyo1j6b+NzzOt8vJ
c2X7WjN8XX98lAGkb1u1NP2/kdZ5x1iT58qHe3crBjKW1UPTT4z2NaUmlH9U48mXt+LloS8aFBO+nayi
NOPD1dlFZdJY7AP0gyf58Fn1wUA2kLEbOinN2OhgbBnc+T7LBlxd30eSnPHWtjfIjQk26I/AccpIogKc
n5CTe2Zpf0rTZpMkL/hC3IkaQPqWdYnCowHu5kKyN4oBnR0nSd7INlp7ZAMvjh0bhOoUkuQv4Mg9pCQ3
+MfO4uJFJMkbYRjO8h3RJ5uAd00k+Qu4bj+UDUDfP0vhSSPbKOpkA4GTCMK6ugKS4NrHtsnJvaKibzfL
S1eTJAo8iMajAij3wleJxIBs4q0jakjya/OdhDtft2vE7qWN2P02gz1o0dl5CC0GLgHimq0AFgNLgDEg
A3L6xWd8j3HUoX4pEMcveNmQsH07cR/OhHtwU+pGwmX2AsQU4G7H0uCBM5J4JRAn14H4CeEfD7wNbQJu
pl98xvcYN4ClwFVAPAVxHtxHeBbk9TWNlBUHzQGiMZwEiTfeBRHiMxJjqJsLxHHIMZfmNzTtJ5ObTR3V
76r1AAAAAElFTkSuQmCC
</value>
</data>
<data name="toolStripButtonAssProperties.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAQZSURBVFhH1VdbaBNZGI5aVt1lYVHwwlYzSYSiIoioWHel
VXHBBdEnH0SoBUUR4kwj2odqwwpiH7wgupVq3a661trEttiqpbaV1tYq9qIx1jZN0iaTSdrmQR8WfFB7
/L/JtJQ4uTF58YOPM/9/zvn/79wT3XcJxtgMKRQqfN7X737x+s2wJIX+It8spVobQqEQ5/X5q98Oep7E
pMv7sqK+jV2518yu1rWystoW1j/k7lNtq9AzItaEw+EsJU1siJL0j7W8jhWW2uLywp1GRmIvEE+V2ptV
20znyas1DCKUNLFBjWrVAkSz5FYDE0WxTgwGK8+TGLU20cRMKGliI1kB4Ol/69mZmw2qdWpMSYDtcRd7
1NGTFiJWygJKaGRnbz9MCxErZQHY5VVNz9JCxEpZQI/TNTA2NrY6HUSslAV0v3X1KS7NQKzvVwCd9czR
0dFyYgUYDAZPTn4nIrX9EzE0CaBAu3Ddwld8rZaRLZewExEiEEOTABrFul6HK9ze5XzfQaSg3ShhJyL1
PYEYmgSkA5oE4Jmlo/Q7PTq5Crlp37lUt9Fqtc6UO8eAJgHYSI86e9mNB+2ssrGDOZ3Ozyhhg83PXzGI
QNuObZsfSxaBXbMIE/6CglXwAZoE0Ch31LS+YJdsTayspkXehChhg/XtL9n4+PimWoNhlXWZYcJz8ACD
CNEilMsBCZoESJL0IyXdS0L20UjzyN6EEjZIdXtomX6wm7jrRNa5YsVnCJB4/mPo6NEFiKFJQDKoNBgW
UvKPEHB/5fIiEvAeIgIFfDHqnQOeZ0Vl95jL43sod4iHaAE02tWDHm8L1IO0J66jHHCPtFLdb2hjN3LF
SG43Lf5Ql5X1syQI52QBPB9ymc2zqU+OGAj8RzO2Hu3jQmUP7MNawzf9IsIzS99ChV4/x2b6dRQCbEbu
rNyH57nhvLxPkVk4kg9f0lARsP7NgKcHdnf/UB/ZdpSOd+5e+t5SbdTnIzkJ+WTnOL0chEDJq2UBFv4V
0+lmKO7ESGUPILDdtPQ1BFSZMsdoKS5PsiV7QxMERERYtipdEiMVATbj0q2RtVfnYH6eLMAv8PVKl8RI
SYCJa0AiKoeJd6LZtf2PRgh4kpPzJXCMT/yfAJgS4Bzy0ibbFcWdtO4c2t3luCyriZtQBOyWO0eBWa0Z
PovgiywF/7fijo9JAZdp5+MZjuZTh/MDifiJkpZGpnqJj0aYoXT/BpT8OAS4Dx36n67neYo7NvyBwMXK
xs6puz6anQ5HuPrw4UVVRu5dlV4vlnNLCqnbfCJuvUXExUoJe37R5my9VzjiHjGb/SOCeT/54p8IulYz
aKqzaZRTL94k6ddRbltbGxLMJf5CRCIcPawvHp81xLVKCRt+1C8koj36YbaSP5ZJAgFjMQ50uq8Bjvia
/ugqywAAAABJRU5ErkJggg==
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAQcSURBVFhH1VddaFNnGI6zuKkMZII/WM1JMigqBRlTrD+0
TjaYIHq1iyHUgmNSiOc0or2oNmwg9qJORO2oq+t+tNYmtsVWW/on7Vqr2B+NsbZpkjY5OUnbXNgLwQtd
P9/n5LSUePLHyY0PPHznfb/ve9/n+090HyUYY0ukUKj40fCI+/Gz5xOSFPqFfEuVam0IhUKc1+evezHm
eRCTLu+T6qZu9vudDnatsYtVNnSykXH3sGpbhZ5JsT4cDmcpaWJDlKQ/rVWNrLjCFpcXb7UyEnuR+GuF
vUO1zWKevVbPIEJJExvUqEEtQDTL/m1moig2isFgzW8kRq1NNDETSprYSFYAeO6vJnb+n2bVOjWmJMDW
3s9aegfTQsRKWUAZjaz85v20ELFSFoBdXtv2MC1ErJQFDDpdo9PT09vSQcRKWcDAC9ew4tIMxPp4BdBZ
z5yamqoiVoPBYPDs/HciUtsDiKFJAAU6jOsWvtI/GhjZcgk7ESECMTQJoFFsH3K4wj39zle9RAo6gBJ2
IlLfM4ihSUA6oEkAnlk6Snvo0clTyC36zqO6XVar9RO5cwxoEoCN1NI3xP6+18NqWnuZ0+l8hxI22PHo
KYMItO39dl+7ZBFYpUWY8xcVZcMHaBJAozxY3/WYXba1scr6TnkTooQNNvU8YTMzM3sbDIZs65eGOc/P
PzGIEC1ClRyQoEmAJEkrKOkREnKURppP9l6UsEGq+5GWaZndxF0nsr4tW95BgMTzb0InT65BDE0CkkGN
wbCWkr+BgLtbN5eQgFcQESjiS1HvHPU8LKm8w1we3325QzxEC6DRbhvzeDuhHqQ9cR3lqHuyi+p2o43d
yJUiud20frYxK+tzSRAuyAJ4PuQymz+lPrliIHCDZmwH2seFyh44irWGb/FFhGeWvoVqvf4zm2nDFATY
jFy53IfnuYn8/LeRWThRAF/SUBGw4/moZxD2wMj4MNl2lI6X7iH6/qbOqC9AchLy1s5xejkIgZLXyQIs
/FOm0y1R3ImRyh5AYLtp0zMIqDVlTtNSXJlnZ87ONgiIiLDsV7okRioCbMZN+yNrr86xgnxZgF/gm5Qu
iZGSABPXjERUThBvRbP/++9aIeBBbu7/gVN84v8EwIIA57iXNtnhKB6idefQ7jbHZVlN3Jwi4Ae5cxSY
1Zrhswi+yFLwVxV3fMwLuEI7H89wNP9zOGdJxEpKWhGZ6o0+GmGG0v0DUPLTEOA+fvw1Xc9fKO7Y8AcC
l2pa+xbu+mj2ORzhusLCdbVG7mWtXi9WcRuLqdtqIm69dcT1Sgl7dcm+HL1XOOGeNJv9k4L5GPninwi6
VjNoqnNolAsv3jzp11Fed3c3EiwnriIiEY4e1hePz1fEr5USNvyoX0tEe/TDbCV/LJMEAsZiHOh07wHz
C/iYmdCxWgAAAABJRU5ErkJggg==
</value>
</data>
<data name="toolStripButtonAssAttachments.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAUnSURBVFhH1VdrbFRFFN5iA2gESbHiurt3Znera5YQiNFE
TLRWFFMTfESrMfyoLW13753d3u02YAza9QeJL4zRKD9IFZ9Y2EYRSSQarVF8RwOmsbZue2duu5Ya5aEo
YEuv58wd9gcR04XLD7/kZHvnzMz5zjlzzkx9/2dUkJR1JWXidi3Fb6o2Ji5U4+ceNDWyVGP8SzDulCRZ
OKIZfIMv11eppp0bEMNaFmgRhykbPKAZ9sNEt+pA7tSYvQOJhAz+hs/nVKjpHqPBOY8kre+1BP8lkChc
rkZLIIZ4AkmEdbFKDXkLwqy7ZLgN3hpIjwapztdB2NdG2osa6mvS03NIy/CvMG+bXOA1ZN7bCsWwbl9D
E+IgZd3TrkA6EjyOcyBFn0BKvpELvAQ1Rm5Q3q8luthDwVOaGFmKZwI8/gPC/xrOg+8hyvh7cpGXwE0D
Lfww1cVKJEKYeEipfDQpvgUSn8rIIEnGH1QqbxAyxGJqYKj5Y2BoJ4GSC66xq1Ane0Ft34kQExsx95T9
+OdlbGyhXOgVwNvXqw1+nOijddKYzjcqFeo2VxviODVsSFH/FKToBaXyBnja/Yz/DeW3GSKwBf+OtA/L
U6+1cn/VanEMSLxKmb2JNFqTJGFRudArwKF6Dr2GcltRtZofAw9fUiqs+8cxNRD6G+ma/r+A4Fal8gbB
DrsKcvs7eJgHY08hkTCzl6CuJj0038/EIRjfBR1xA5YjMcaWyYVeATzqkifesG7Duoffd5TKh03IPfH2
rdT46TdN57uVyhv424oXgIFxkI+wrNBYOCmuR1081z8bGxKQ+Byik0Udpkgu9ApEtw25MeN3ozFsPkqF
HbFFGb0nyASHM/C1pxdQbc6pJPpIIaSLvWCkFY1RQ9whlbncLPj+AYUYdrPU6eI+VO25pe6DYjbjvJzN
TNsdHfKsnBFwQ9wYDtgDWpIPojGf43oIpFZJo0AMIrEP9fgGeDscXpKrCU8PJ1odJDGaNbvlZuXDqcDW
Cve60FKiwSViNSulL97QPxs8v/+kDkgwHO+N0Bd7o9T5LB6fQgJF0zw63tl5iVxUDjRd3CyNMpGB8H+F
+cdDp9QlgO7jgM73Q/OZuzUcXgTGjyKBnYtj64HAQSQx1mF2qekzh/uyGTwAna/e9d7uVKoSoOSuk2lI
2Y/gN3jfhcZ7o/5DO2KxecVM5mlJwDTHh9LpOXLRTIGXDNXtWqxrvP0ibcMXKVUJUH5vyQZlWgu2EDI3
Hw3sRwL5SEjeEeOmSa3Gxkk3Cu1NclE5gC5XjV0P0vCkGiqBpIry9gMSz+D39ghpQuNAZLKXUiInAcD4
diRQzJp7HXhBq+GZQUv/HJchZqJNDZUAldGNF1IgPRTEjXuj2j4k0BMNTkAqnj8pHy6/9n2XAEQh215e
k8KTHmR8Akrtu1jzwDw17MO3n7yWmfUKfucj2go39/8ug02NkoCdMd+VG5QDtxf0T8FjREAqHsWqgLEB
iMrRMBu+Aufko2QXGspHqQXy5qnyRf3K3Uigr7b2BBzImNy4HOBFgw9M9zUk3/wCXkD1qNtGaSwXpdOK
wL1ywSlwcrlKkc0IdRbO/KECF9PF8umdc2apIfCebnJDHRLg4Wn/GwLj65BAIZk8Au1ZPuPOFhXP1lTN
74nQgR5CRrtpAB+g+AbErncpiF/94vfC9XXLyUimvcDTadvOpFtg7KwvLfT2fJAFIGgISw/zi5fPVSBX
q1/8xnHULwLB+bgO13v+rxtueDr5D/h8/wA6QcU3cAhsnwAAAABJRU5ErkJggg==
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAUnSURBVFhH1VdrbFRFFN5iA2gEyWLFdXfvzO5W1ywhEKOJ
mGitKKYm+IhWY/hRW9ru3ju73e02YAza9QeJL4zRKD+aCvGFhW0UkUSi0RrFdzRgGmvrtnfmtmupUR6K
Fmzp9Zy5w/4gYrpw+eGXnGzvnJk53zlnzpmp5/+MCpI0r6ZM3Kkl+S1VxsTFavz8gyZHlmuMfwnG7ZIk
Csc0g2/y5Poq1bTzA2KYK/zN4ihlg4c0w3qU6GYtyN0as3YhkaDB3/B47Ao13WXU2xeQhPm9Fue/+OOF
K9VoCcQQTyGJkC7WqCF3QZh5jwy3wVv8qdEA1fkGCPv6cFtRQ311amYeaR7+FebtkAvchsx7a6EY0q3r
aFwcpqxrxhFIR5zHcA6k6BNIyTdygZugxshNyvv1RBf7KHhK4yPL8UyAx39A+F/DefA9RBl/Ty5yE7ip
v5kfpbpYjUQIE48olYcmxLdA4lMZGSTJ+MNK5Q6ChlhKDQw1fwIM7SZQcoF1lhd1shfU9J0MMrEZc0/Z
j39ewcYWy4VuAbx9vcrgJ4g+WiuN6XyzUqGuq8oQJ6hhQYr6pyFFLymVO8DT7mP8byi/LojANvw73DYs
T73Wwn3eteI4kHiVMmsLaTCnSNykcqFbgEP1AnoN5bbKu5YfBw+3KhXW/ZOYGgj9zXRd/19AcLtSuYNA
u+WF3P4OHubB2DNIJMSsZairTg0t9DFxBMb3QEfchOVIjLEVcqFbAI865Yk3zDuw7uH3HaXyYBNyTrx1
OzV++k3T+V6lcge+1uJFYGAc5CMsKzQWSogbURfL9c/FhgQkPofoZFGHKZIL3QLRLUNuzPi9aAybj1Jh
R2xWRu8LMMHhDHzt6gVUk7MriT5SCOpiPxhpQWPUEHdJZS43B75/QCGG1SR1ungAVftuq/2gmM3YW7OZ
Gau9XZ6VswJuiBvDAXtIS/BBNOaxHQ+B1BppFIhBJA6gHt8Ab4dCy3LVoZnheIuNJEaz6W65WfmwK7C1
wr0utKSod4iYTUrpidX3zwXPHzylAxIMx3vD9OXeCLU/i8WmkUAxnZ4c7+i4TC4qB5oubpVGmchA+L/C
/OOhU+oSQPexX+cHofnM3x4KLQHjk0hg99LoRiBwGEmMtac71fTZw3nZDB6CzlfneG91KFUJUHI3yDQk
rcfwG7zvROO9Ed+RXdHogmIm86wkkE6PD6VS8+Si2QIvGapbNVjXePuFW4cvUaoSoPzekg0qbS7aRsj8
fMR/EAnkw0F5R4yn09RsaJhyotDWKBeVA+hyVdj1IA1Pq6ESSLIobz8g8Rx+7wyTRjQORKZ6KSVyEgCM
70QCxWx6vw0vaDU8O2ipn2MyxEy0qqESoDK68ULyp4YCuHFvRDuABHoigQlIxYun5MOV17/vEIAoZNvK
a1J40gOMT0CpfRdtGlighj349pPXMjNfwe98WFvl5P7fZbCxQRKwMul35QblwOkF/dPwGBGQisexKmBs
AKIyGWLDV+GcfITsQUP5CDVB3jxdvqhbvRcJ9NXUnIQDGZUblwO8aPCB6byG5JtfwAuoDnU7KI3mInRG
EbhfLjgNdi5XKbIZoc7C2T9U4GK6VD69c/YcNQTe0y1OqIMCPDzjf0NgfAMSKCQSx6A9y2fcuaLi+Wrv
wp4wHeghZLSb+vEBim9A7HqXg/jUL34v3li7koxk2go8lbKsTKoZxs750kJvLwRZBIKGsPQwv3j5XANy
rfrFbxxH/RIQnI/rcL3r/7rhhmeS/4DH8w+2lMUprQGnowAAAABJRU5ErkJggg==
</value>
</data>
<data name="toolStripButtonNetflixQualityCheck.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@ -775,7 +775,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD2
CAAAAk1TRnQBSQFMAgEBAgEAAXQBKgF0ASoBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
CAAAAk1TRnQBSQFMAgEBAgEAAYQBKgGEASoBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA