diff --git a/AppSettings.cs b/AppSettings.cs
index aa2a224..a1cecab 100644
--- a/AppSettings.cs
+++ b/AppSettings.cs
@@ -284,7 +284,7 @@ namespace SCJMapper_V2
[DefaultSettingValue( "False" )]
public bool UsePTU
{
- get { return false; } // ( bool )this["UsePTU"]; } no longer used
+ get { return ( bool )this["UsePTU"]; }
set { this["UsePTU"] = value; }
}
diff --git a/FormMain.Designer.cs b/FormMain.Designer.cs
index 7b9ffb4..34a3a3d 100644
--- a/FormMain.Designer.cs
+++ b/FormMain.Designer.cs
@@ -158,6 +158,7 @@
this.msSelectMapping = new System.Windows.Forms.ToolStripDropDownButton();
this.tsLblMappings = new System.Windows.Forms.ToolStripLabel();
this.IL2 = new System.Windows.Forms.ImageList(this.components);
+ this.lblPTU = new System.Windows.Forms.Label();
this.cmCopyPaste.SuspendLayout();
this.panel2.SuspendLayout();
this.cmMouseEntry.SuspendLayout();
@@ -883,6 +884,7 @@
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel2.Controls.Add(this.buttonExit, 1, 1);
+ this.tableLayoutPanel2.Controls.Add(this.lblPTU, 1, 0);
this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel2.GrowStyle = System.Windows.Forms.TableLayoutPanelGrowStyle.FixedSize;
this.tableLayoutPanel2.Location = new System.Drawing.Point(386, 772);
@@ -1503,6 +1505,20 @@
this.IL2.Images.SetKeyName(1, "Locked");
this.IL2.Images.SetKeyName(2, "RSI");
//
+ // lblPTU
+ //
+ this.lblPTU.AutoSize = true;
+ this.lblPTU.BackColor = System.Drawing.Color.SandyBrown;
+ this.lblPTU.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.lblPTU.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblPTU.Location = new System.Drawing.Point(155, 0);
+ this.lblPTU.Name = "lblPTU";
+ this.lblPTU.Size = new System.Drawing.Size(146, 48);
+ this.lblPTU.TabIndex = 14;
+ this.lblPTU.Text = "Using PTU";
+ this.lblPTU.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lblPTU.Visible = false;
+ //
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
@@ -1533,6 +1549,7 @@
this.tlpanel.ResumeLayout(false);
this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel2.ResumeLayout(false);
+ this.tableLayoutPanel2.PerformLayout();
this.tableLayoutPanel3.ResumeLayout(false);
this.tableLayoutPanel3.PerformLayout();
this.tableLayoutPanel4.ResumeLayout(false);
@@ -1677,6 +1694,7 @@
private System.Windows.Forms.ToolStripDropDownButton msBtDump;
private System.Windows.Forms.ToolStripMenuItem tdiExpandAll;
private System.Windows.Forms.ToolStripMenuItem meShowDeviceMonitoringDialog;
+ private System.Windows.Forms.Label lblPTU;
}
}
diff --git a/FormMain.cs b/FormMain.cs
index 8ab3019..b94c2ac 100644
--- a/FormMain.cs
+++ b/FormMain.cs
@@ -255,6 +255,11 @@ namespace SCJMapper_V2
log.InfoFormat( "Application Version: {0}", version.ToString( ) );
+ // init PTU folder usage at the very start
+ if ( AppSettings.Instance.UsePTU ) log.Debug( "Using PTU Folders" );
+ lblPTU.Visible = AppSettings.Instance.UsePTU;
+ TheUser.UsesPTU = AppSettings.Instance.UsePTU;
+
// tooltips where needed
toolTip1.SetToolTip( this.linkLblReleases, c_GithubLink ); // allow to see where the link may head
@@ -333,10 +338,6 @@ namespace SCJMapper_V2
int jsIndex = (int)tc1.SelectedTab.Tag; // gets the index into the JS list
if ( jsIndex >= 0 ) DeviceInst.JoystickInst = DeviceInst.JoystickListRef[jsIndex];
- // init PTU folder usage sign
- //lblPTU.Visible = false; // m_AppSettings.UsePTU; no longer used
- if ( AppSettings.Instance.UsePTU ) log.Debug( "Using PTU Folders" );
-
// Auto Tab XML
cbxAutoTabXML.Checked = AppSettings.Instance.AutoTabXML;
@@ -1363,11 +1364,11 @@ namespace SCJMapper_V2
AppSettings.Instance.MyMappingName = txMappingName.Text; AppSettings.Instance.Save( );// last used - persist
txMappingName.BackColor = MyColors.SuccessColor;
- // autosave CSV
- string csvList = string.Format( "-- {0} - SC Joystick Mapping ({1}) --\n{2}", DateTime.Now, txMappingName.Text,
- m_AT.ReportActionsCSV( true, true ) );
- using (StreamWriter sw = File.CreateText(TheUser.MappingCsvFileName(txMappingName.Text)) ) {
- sw.Write( csvList );
+ // autosave our XML
+ string xmlList = string.Format( " \n{2}", DateTime.Now, txMappingName.Text,
+ m_AT.ReportActionsXML( ) );
+ using (StreamWriter sw = File.CreateText(TheUser.MappingXmlFileName( txMappingName.Text)) ) {
+ sw.Write( xmlList );
}
}
diff --git a/FormMain.resx b/FormMain.resx
index 98c54db..5e79115 100644
--- a/FormMain.resx
+++ b/FormMain.resx
@@ -128,7 +128,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAA8
- EAAAAk1TRnQBSQFMAgEBCQEAAUABFAFAARQBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
+ EAAAAk1TRnQBSQFMAgEBCQEAAUgBFAFIARQBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -581,118 +581,118 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
- ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADa
- GQAAAk1TRnQBSQFMAgEBAwIAAQIBAAECATABAAEwAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
- AcADAAEwAwABAQEAAQgGAAEkGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA
- AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA
- AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm
- AwABmQMAAcwCAAEzAwACMwIAATMBZgIAATMBmQIAATMBzAIAATMB/wIAAWYDAAFmATMCAAJmAgABZgGZ
- AgABZgHMAgABZgH/AgABmQMAAZkBMwIAAZkBZgIAApkCAAGZAcwCAAGZAf8CAAHMAwABzAEzAgABzAFm
- AgABzAGZAgACzAIAAcwB/wIAAf8BZgIAAf8BmQIAAf8BzAEAATMB/wIAAf8BAAEzAQABMwEAAWYBAAEz
- AQABmQEAATMBAAHMAQABMwEAAf8BAAH/ATMCAAMzAQACMwFmAQACMwGZAQACMwHMAQACMwH/AQABMwFm
- AgABMwFmATMBAAEzAmYBAAEzAWYBmQEAATMBZgHMAQABMwFmAf8BAAEzAZkCAAEzAZkBMwEAATMBmQFm
- AQABMwKZAQABMwGZAcwBAAEzAZkB/wEAATMBzAIAATMBzAEzAQABMwHMAWYBAAEzAcwBmQEAATMCzAEA
- ATMBzAH/AQABMwH/ATMBAAEzAf8BZgEAATMB/wGZAQABMwH/AcwBAAEzAv8BAAFmAwABZgEAATMBAAFm
- AQABZgEAAWYBAAGZAQABZgEAAcwBAAFmAQAB/wEAAWYBMwIAAWYCMwEAAWYBMwFmAQABZgEzAZkBAAFm
- ATMBzAEAAWYBMwH/AQACZgIAAmYBMwEAA2YBAAJmAZkBAAJmAcwBAAFmAZkCAAFmAZkBMwEAAWYBmQFm
- AQABZgKZAQABZgGZAcwBAAFmAZkB/wEAAWYBzAIAAWYBzAEzAQABZgHMAZkBAAFmAswBAAFmAcwB/wEA
- AWYB/wIAAWYB/wEzAQABZgH/AZkBAAFmAf8BzAEAAcwBAAH/AQAB/wEAAcwBAAKZAgABmQEzAZkBAAGZ
- AQABmQEAAZkBAAHMAQABmQMAAZkCMwEAAZkBAAFmAQABmQEzAcwBAAGZAQAB/wEAAZkBZgIAAZkBZgEz
- AQABmQEzAWYBAAGZAWYBmQEAAZkBZgHMAQABmQEzAf8BAAKZATMBAAKZAWYBAAOZAQACmQHMAQACmQH/
- AQABmQHMAgABmQHMATMBAAFmAcwBZgEAAZkBzAGZAQABmQLMAQABmQHMAf8BAAGZAf8CAAGZAf8BMwEA
- AZkBzAFmAQABmQH/AZkBAAGZAf8BzAEAAZkC/wEAAcwDAAGZAQABMwEAAcwBAAFmAQABzAEAAZkBAAHM
- AQABzAEAAZkBMwIAAcwCMwEAAcwBMwFmAQABzAEzAZkBAAHMATMBzAEAAcwBMwH/AQABzAFmAgABzAFm
- ATMBAAGZAmYBAAHMAWYBmQEAAcwBZgHMAQABmQFmAf8BAAHMAZkCAAHMAZkBMwEAAcwBmQFmAQABzAKZ
- AQABzAGZAcwBAAHMAZkB/wEAAswCAALMATMBAALMAWYBAALMAZkBAAPMAQACzAH/AQABzAH/AgABzAH/
- ATMBAAGZAf8BZgEAAcwB/wGZAQABzAH/AcwBAAHMAv8BAAHMAQABMwEAAf8BAAFmAQAB/wEAAZkBAAHM
- ATMCAAH/AjMBAAH/ATMBZgEAAf8BMwGZAQAB/wEzAcwBAAH/ATMB/wEAAf8BZgIAAf8BZgEzAQABzAJm
- AQAB/wFmAZkBAAH/AWYBzAEAAcwBZgH/AQAB/wGZAgAB/wGZATMBAAH/AZkBZgEAAf8CmQEAAf8BmQHM
- AQAB/wGZAf8BAAH/AcwCAAH/AcwBMwEAAf8BzAFmAQAB/wHMAZkBAAH/AswBAAH/AcwB/wEAAv8BMwEA
- AcwB/wFmAQAC/wGZAQAC/wHMAQACZgH/AQABZgH/AWYBAAFmAv8BAAH/AmYBAAH/AWYB/wEAAv8BZgEA
- ASEBAAGlAQADXwEAA3cBAAOGAQADlgEAA8sBAAOyAQAD1wEAA90BAAPjAQAD6gEAA/EBAAP4AQAB8AH7
- Af8BAAGkAqABAAOAAwAB/wIAAf8DAAL/AQAB/wMAAf8BAAH/AQAC/wIAA/9rABz/CQAB/0gAAf8C9AHz
- BPAB8wL0Af9DAAH/AfMBuhysAboB8wH/SgAB/wHyAQcBtAGLDGsBiwH3AbwB8wH/GgAB9AHwAQcB7wKS
- Ae8BBwHwAfQYAAH/AfMBsiCsAbIB8wH/RgAB8wH3FmsBuwH0FQAB/wHxAfcB7wEHArwC8QK8AQcB7wH3
- AfEB/xQAAf8BCSSsAQkB/0MAAfQBuxprAbsB9BIAAfEBkgHvAfAK8QHwAe8BkgHxEgAB/wEJJqwBCQH/
- QQAB8wJrGooCawH0DwAB/wHwAe8B8A7xAfAB7wHwAf8PAAH/AfMorAHzAf9AAAH3AWscigFrAbsOAAH0
- AbwBBwTxAfAB9wGQAYsCawKLAZEBvATxAQcBvAH0DgAB/yqsAf8/AAH0AWseBgFrAf8MAAH/AbwBBwTx
- AZEKawGRAbwD8QEHAbwB/w0AAfMqrAHzPwAB8wFrHooBawHzDAAB8AEHA/EBuwNrAooBiwLzAYsDigJr
- AZED8QEHAfANAAG6KqwBuj8AAfQBax6KAWsB8wsAAfEB7wPxAfcBawGKBAYBuwL/AbQEBgGKAWsBkQPx
- Ae8B8QsAAf8BsgasF7MOrAH/PgAB/wFrHooBawH0CgAB/wGSAfAC8QHvAWsBBgWKAZAC8wGLBYoBBgFr
- AZEC8QHwAZIB/woAAf8HrAGzAWYCDRlmAbMHrAH/PwABkB6KAYsLAAHxAQcD8QFrEQYBigFrAbwC8QEH
- AfEKAAH/BqwBswGtAQ0BEAUNBkMKZgVDAa0BswasAf89AAH/AfQBBwGKAZAZigGLAZABBgG8CgAB/wGS
- A/EBkROKAQYBkQPxAZIB/wkAAf8GrAGzAa0JDQVDCGYFQwENAa0BswasAf84AAH/ARsBGgF5AVIDKwFr
- ApAXiwKQAYEBkQsAAfMB7wLyAfEBawmKAmsJigFrAbwC8gHvAfMJAAH/BqwBswGtDQ0BQwVmAkMBZgJD
- BA0BrQGzBqwB/zYAAfMBmQIrATEFMgFLAWsCswGQE4sCkAGzAZABawHyCwAB8AEHAvIB7wGKBosBigGL
- AbsCvAG7AYsBigaLAYoBkQLyAQcB8AkAAf8GrAKzDg0CQwNmBEMFDQKzBqwB/zQAAfQBmQErCjIBSwFr
- AZACsxGQA7MBigFrAfIMAAEHAfAC8gGRAYoFkAGKAYsBvATxAbwBiwGKBZABigGLAvIB8AEHCQAB/was
- ArMPDQZDBw0CswasAf8zAAHzASsBMQwyAUwB6gGKBbMJkAWzAYEBawEHAf8NAAH3AfEC8gKLAbMBugGz
- ApABBgHvBvIB7wEGApABswG6AbMBkAFrAvIB8QH3CQAB/wasArMCDQJlBA0EZgFlB2YBDQJmAWUBDQEQ
- Ag0CswasAf8zAAF5EDIBTAHqAWsBigGBAZABsweQAbMBkAGzAYoBawGRAbwB/w8AAZID8gGLAZAB9AH/
- ARkCswFrAfAG8gHxAWsCswH0Af8BGQGzAWsB8ALyAZIJAAH/BqwCswENAUMBswHbAYsCDQFsAboB2wGz
- A4sBtAO6AdsBtAFDAbMB2wGzBA0CswasAf8yAAH/ASsSMgExAUwBSgEGCbMBigG7AfMB/xIAAZID8gGL
- AbMB9AH/ARkCswFrAfIG8wHyAWsCswH0Af8BGQGzAWsB8ALyAZIJAAH/BqwCswINAbQB2wGzAg0BswPb
- ApABiwG0BdsBbAGLAtsBZgIPAQ0CswasAf8yAAHzASsUMgFKAYoJswGKAbsUAAH3AfIB8wHyAYsBkAGz
- AboDswGKAbsB/wTzAf8BuwGKA7MBugKzAWsB8gHzAfIB9wkAAf8GrAKzAg0BkALbAWYBDQG0AtsBtAOL
- AZADtALbAYsBbALbAYsDDwKzBqwB/zIAAfQBKxQyAWwLswFrAf8TAAEHAfAB9AHyAZEBkAazAYsB9AT/
- AfQBiwGQBrMBiwHyAfQB8AEHCQAB/wasArMBDwENAWwC2wG0AYsC2wGzBw0BZgLbAbQBZgLbAZABCgIP
- ArMGrAH/MgAB/wErEzIBUgFrC7MBigHzEwAB8AG8AfQB8wG7AYoGswGKAYsBuwLzAbsBiwGKBrMBgQGR
- AfMB9AG8AfAJAAH/BqwCswEPAQ0BZgbbAYsGDQGLA9sBswENAbQB2wG0AQ0CDwKzBqwB/zMAAVITMgFR
- AYoLswGKAbsTAAHzAe8B/wHzAfIBawGzAbkGswGKAmsBigizAYoB8AHzAfQB7wHzCQAB/wasArMBDwIN
- AboF2wG0AWYEDQGQA9sBtAFmAQ0BkQLbAWYBCgEPArMGrAH/MwABGgExEjIBSgGQDLMBkRMAAf8BkgH0
- Af8B8wG0AYoB2gG5D7MB2gGzAZEB8wH/AfQBkgH/CQAB/wasAbkBswIPAQ0BtALbAbQE2wGQAQ0BZgG0
- A9sBiwENAQ8BCgGLAtsBbAEOAQ8BswG5BqwB/zMAAf8BKwEyAVMQMgFsDbMBawH/EwAB8QG8Af8C8wFr
- AbMB2g65AdoBuQFrAfAB8wH/AbwB8QoAAf8GrAG6AbMBDwEOAQoBiwLbAWYBbAG0A9sBbAG6AtsBugFs
- BA0BZgLbAZABCgEPAbMBugasAf80AAEaASsCWQ9TAWwNswEGAfQTAAH/AZIB9AH/AfMBuwFrAtoFuQL0
- BbkC2gGKAfcB8wH/AfQBkgH/CgAB/wasAboBswEPAgoBbALbAYsBDQEPAYsC2wGQAboB2wG6ARUGDQG6
- AdsBtAENAQ8BswG6BqwB/zUAARoBKwEyAlkNUwFsDbMBigHzFAABkgEHAv8B8wG1AWsBuQLaArkB3AL/
- AdwCuQPaAYoBkQHzAv8BBwGSCwAB/wasAboBswEOAQoBDwFDA9sDugLbArQC2wS6A4sBtALbAQ0BDwGz
- AboGrAH/NgAB9AGZATEFWQlTAWwNswGKAfIUAAH3Ae8BvAL/AfMBuwFrAZAD2gHbAvQE2gGzAWsB9wHz
- Av8BvAHvAZILAAH/BqwBugGzAQ4BCgEOAQ0BugXcAtsBugGRAdwB2wPcAeEBtAKRAbQC3AFsAQoBswG6
- BqwB/zgAAfQBmQErATEBMgFTAVkHUwFZAWwBswy5AYoB8hQAAZIB8QHvAfEC/wLzAbQBawGQArkC3wK5
- AbMBigGRAfEB8wL/AfEB7wHxAZILAAH/BqwBugGzAQ4DCgGRAdwG2wG0AWYBugTbAdwBtAORAboB3AGL
- AQ0BswG6BqwB/zoAAf8B8wEaATEJUwFsAbMMuQGKAfQUAAGSAfIB8AHvAbwC/wH0AvMBuwGRAYsCawGL
- AZABtQHyAfMB9AL/AbwB7wHwAfIBkgsAAf8GrAG6AbMBDgIKAg0HQwMNAkMDZgFDAQ0BQwENAkMCDQGz
- AboGrAH/PAABmQExCVMBSwGQAdoJuQHaAbkBawH/FAABkgLyAfEB7wEHAfQC/wH0CPMB9AL/AfQBBwHv
- AfEC8gGSCwAB/wasAboBswIOAQoHDgEPAg0CDwEOBQ0BDwENAQ8BEAEPAgoBswG6BqwB/zwAAVIKUwFS
- AWsC2gi5AdoBswG7FQABkgTyApIBBwH0Cv8B9AEHApIE8gGSCwAB/wasAboBswoKAg8CDQIOAQ8EDQEP
- Ag4BDwEKAg4BswG6BqwB/zsAAfYBMQtZAUoBgQPaBLkD2gGKAfQVAAGSAfIB8wLyAZIB/wHxAfcB7wG8
- AvMC/wLzAbwB7wH3AfEB/wGSAvIB8wHyAZILAAH/BqwBugG5AQoCDgcKAQ4BDwENAQ8CCgEOAQ8CDQIP
- AQ4BCgEOAgoBDgG5AboGrAH/OwABGwExC1kBUgHsAYEB2gHfBNoB3wG5AQYBvBYAAe8B8QHzAvIB7wH0
- AgAB9AHwAQcB7wKSAe8BBwHwAfQCAAH0Ae8C8gHzAfEB7wsAAf8GrAHbAbkBCgEOAQoFDgEKAQ4DDwEO
- AQoBDgEKAQ4CDwENAQ8DCgMOAbkB2wasAf87AAGZAVILWQFTAXQBvAGLAQYBkAG5AbMBgQEGAZEB8hcA
- AQcB8AH0AvIBBwHyDgAB8gEHAvIB9AHwAQcLAAH/BqwCugEOAQAGCgEOAQoDDgEKAQ4CCgEOAgoCDgEK
- Aw4CAAK6BqwB/zsAAXQBUwxZASsB/wEAAfMB8AG7AbwB8wH/GQAB8QEHAf8C8wK8DgACvALzAf8BBwHx
- CwAB/wasAbMB2wFsGg0BbAHbAbMGrAH/OwABUg1ZATEB/yAAAfQB7wH/AfQB8wHyAe8B8wwAAfMB7wHy
- AfMB9AH/Ae8B9AsAAf8HrAG5AdsaugHbAbkHrAH/OwABUg1ZATEB8yEAAQcB8gH/AvMB8AH3AfQKAAH0
- AfcB8ALzAf8B8gEHDAAB/wisAbIaswGyCKwB/zsAAVINWQExARshAAHzAe8C/wLzAbwB9wHzCAAB8wH3
- AbwC8wL/Ae8B8wwAAf8srAH/OwABUg1ZATEBGyIAAvAB/wH0AvMB8AHvAbwB8gH0Av8B9AHyAbwB7wHw
- AvMB9AH/AvAOAAG6KqwBujwAAXkBUwxZATEB9CIAAfQBkgHzAf8B9APzAfABBwHvApIB7wEHAfAD8wH0
- Af8B8wGSAfQOAAHzKqwB8zwAARoBUgxZASsB/yMAAfIB9wHyAv8M8wL/AfIB9wHyDwAB/yqsAf88AAH/
- ATEMWQGZJQAB8wGSAfAD/wjzA/8B8AGSAfMQAAH/AfMorAHzAf89AAEaAVIBXglZATEB9CYAAfQB8AHv
- AfIE/wL0BP8B8gHvAfAB9BIAAf8BCSasAQkB/z8AAZkBUgFeBuUBWQExARopAAHzAQcB9wG8AfIB8wL/
- AfMB8gG8AfcBBwHzFQAB/wEJJKwBCQH/QQABGgFSATEBUgFZAVgBUgExAXQBGywAAf8B8QEHAe8CkgHv
- AQcB8QH/GAAB/wHzAbIgrAGyAfMB/0QAAfMBGgGZARoB8wH/UgAB/wHzAbsbrAGzAbsB8wH/oQAc/zoA
- AUIBTQE+BwABPgMAASgDAAHAAwABMAMAAQEBAAEBBQABgAEEFgAD/wEADf8BwAIAAQMB/gYAA/8BAAEP
- B/8B/gQAAX8GAAL/AeACAAF/Av8B4AEHAv8B+AQAAR8GAAL/AYACAAEfAv8CAAL/AfAEAAEPBgAB/wH+
- AwABBwH/Af4CAAF/Af8B4AQAAQcGAAH/AfwDAAEDAf8B+AIAAR8B/wHABAABAwYAAf8B/AMAAQMB/wHw
- AgABDwH/AcAEAAEDBgAB/wH4AwABAQH/AeACAAEHAf8BwAQAAQMGAAH/AfgDAAEBAf8B4AIAAQcB/wHA
- BAABAwYAAf8B+AMAAQEB/wHAAgABAwH/AYAEAAEBBgAB/wH4AwABAQH/AYACAAEBAf8BgAQAAQEGAAH/
- AfwDAAEDAf8BgAIAAQEB/wGABAABAQYAAf8B8AMAAQMB/wQAAf8BgAQAAQEGAAH+BAABBwH/BAAB/wGA
- BAABAQYAAfgEAAEHAf8EAAH/AYAEAAEBBgAB4AQAAQ8B/wQAAf8BgAQAAQEGAAHABAABHwH/BAAB/wGA
- BAABAQYAAcAEAAF/Af8EAAH/AYAEAAEBBgABgAMAAQMC/wQAAf8BgAQAAQEGAAGAAwABDwL/BAAB/wGA
- BAABAQYAAYADAAEHAv8EAAH/AYAEAAEBBgABgAMAAQcC/wQAAf8BgAQAAQEGAAHAAwABBwL/BAAB/wGA
- BAABAQYAAcADAAEHAv8EAAH/AYAEAAEBBgABwAMAAQMC/wGAAgABAQH/AYAEAAEBBgAB4AMAAQMC/wGA
- AgABAQH/AYAEAAEBBgAB8AMAAQMC/wHAAgABAwH/AYAEAAEBBgAB+AMAAQMC/wHAAgABAwH/AYAEAAEB
- BgAB/gMAAQMC/wHAAgABAwH/AYAEAAEBBgAB/wGAAgABAwL/AcACAAEDAf8BgAQAAQEGAAH/AeACAAED
- Av8BwAIAAQMB/wGABAABAQYAAf8B4AIAAQcC/wHAAgABAwH/AYAEAAEBBgAB/wHAAgABBwL/AcACAAED
- Af8BgAQAAQEGAAH/AcACAAEPAv8BwAFgAQYBAwH/AYAEAAEBBgAB/wHAAgABHwL/AcABfwH+AQMB/wGA
- BAABAQYAAf8BwAEAASABfwL/AcABfwH+AQMB/wGABAABAQYAAf8BwAEAAT8D/wHAAT8B/AEDAf8BgAQA
- AQEGAAH/AcABAAE/A/8B4AEfAfgBBwH/AYAEAAEBBgAB/wHAAQABPwP/AeABDwHwAQcB/wGABAABAQYA
- Af8BwAEAAT8D/wHwAgABDwH/AcAEAAEDBgAB/wHAAQABPwP/AfACAAEPAf8BwAQAAQMGAAH/AcABAAE/
- A/8B+AIAAR8B/wHABAABAwYAAf8BwAEAAX8D/wH8AgABPwH/AcAEAAEDBgAB/wHgAQABfwP/Af4CAAF/
- Af8B4AQAAQcGAAH/AfABAAX/AYABAQL/AfAEAAEPBgAB/wH4AQEF/wHgAQcC/wH4BAABHwYAAf8B/gEH
- Cf8B/gQAAX8GAA3/AcACAAEDAf8GAAs=
+ ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADc
+ GQAAAk1TRnQBSQFMAgEBAwEAAQgBAgEIAQIBMAEAATABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
+ AwABwAMAATADAAEBAQABCAYAASQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
+ AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
+ AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
+ AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
+ AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
+ AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
+ ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
+ AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
+ AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
+ AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
+ AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
+ AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
+ AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
+ AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
+ AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
+ ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
+ Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
+ AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
+ AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
+ AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
+ ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
+ Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
+ AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
+ AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
+ AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
+ AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
+ AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
+ AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/2sAHP8JAAH/SAAB/wL0
+ AfME8AHzAvQB/0MAAf8B8wG6HKwBugHzAf9KAAH/AfIBBwG0AYsMawGLAfcBvAHzAf8aAAH0AfABBwHv
+ ApIB7wEHAfAB9BgAAf8B8wGyIKwBsgHzAf9GAAHzAfcWawG7AfQVAAH/AfEB9wHvAQcCvALxArwBBwHv
+ AfcB8QH/FAAB/wEJJKwBCQH/QwAB9AG7GmsBuwH0EgAB8QGSAe8B8ArxAfAB7wGSAfESAAH/AQkmrAEJ
+ Af9BAAHzAmsaigJrAfQPAAH/AfAB7wHwDvEB8AHvAfAB/w8AAf8B8yisAfMB/0AAAfcBaxyKAWsBuw4A
+ AfQBvAEHBPEB8AH3AZABiwJrAosBkQG8BPEBBwG8AfQOAAH/KqwB/z8AAfQBax4GAWsB/wwAAf8BvAEH
+ BPEBkQprAZEBvAPxAQcBvAH/DQAB8yqsAfM/AAHzAWseigFrAfMMAAHwAQcD8QG7A2sCigGLAvMBiwOK
+ AmsBkQPxAQcB8A0AAboqrAG6PwAB9AFrHooBawHzCwAB8QHvA/EB9wFrAYoEBgG7Av8BtAQGAYoBawGR
+ A/EB7wHxCwAB/wGyBqwXsw6sAf8+AAH/AWseigFrAfQKAAH/AZIB8ALxAe8BawEGBYoBkALzAYsFigEG
+ AWsBkQLxAfABkgH/CgAB/wesAbMBZgINGWYBswesAf8/AAGQHooBiwsAAfEBBwPxAWsRBgGKAWsBvALx
+ AQcB8QoAAf8GrAGzAa0BDQEQBQ0GQwpmBUMBrQGzBqwB/z0AAf8B9AEHAYoBkBmKAYsBkAEGAbwKAAH/
+ AZID8QGRE4oBBgGRA/EBkgH/CQAB/wasAbMBrQkNBUMIZgVDAQ0BrQGzBqwB/zgAAf8BGwEaAXkBUgMr
+ AWsCkBeLApABgQGRCwAB8wHvAvIB8QFrCYoCawmKAWsBvALyAe8B8wkAAf8GrAGzAa0NDQFDBWYCQwFm
+ AkMEDQGtAbMGrAH/NgAB8wGZAisBMQUyAUsBawKzAZATiwKQAbMBkAFrAfILAAHwAQcC8gHvAYoGiwGK
+ AYsBuwK8AbsBiwGKBosBigGRAvIBBwHwCQAB/wasArMODQJDA2YEQwUNArMGrAH/NAAB9AGZASsKMgFL
+ AWsBkAKzEZADswGKAWsB8gwAAQcB8ALyAZEBigWQAYoBiwG8BPEBvAGLAYoFkAGKAYsC8gHwAQcJAAH/
+ BqwCsw8NBkMHDQKzBqwB/zMAAfMBKwExDDIBTAHqAYoFswmQBbMBgQFrAQcB/w0AAfcB8QLyAosBswG6
+ AbMCkAEGAe8G8gHvAQYCkAGzAboBswGQAWsC8gHxAfcJAAH/BqwCswINAmUEDQRmAWUHZgENAmYBZQEN
+ ARACDQKzBqwB/zMAAXkQMgFMAeoBawGKAYEBkAGzB5ABswGQAbMBigFrAZEBvAH/DwABkgPyAYsBkAH0
+ Af8BGQKzAWsB8AbyAfEBawKzAfQB/wEZAbMBawHwAvIBkgkAAf8GrAKzAQ0BQwGzAdsBiwINAWwBugHb
+ AbMDiwG0A7oB2wG0AUMBswHbAbMEDQKzBqwB/zIAAf8BKxIyATEBTAFKAQYJswGKAbsB8wH/EgABkgPy
+ AYsBswH0Af8BGQKzAWsB8gbzAfIBawKzAfQB/wEZAbMBawHwAvIBkgkAAf8GrAKzAg0BtAHbAbMCDQGz
+ A9sCkAGLAbQF2wFsAYsC2wFmAg8BDQKzBqwB/zIAAfMBKxQyAUoBigmzAYoBuxQAAfcB8gHzAfIBiwGQ
+ AbMBugOzAYoBuwH/BPMB/wG7AYoDswG6ArMBawHyAfMB8gH3CQAB/wasArMCDQGQAtsBZgENAbQC2wG0
+ A4sBkAO0AtsBiwFsAtsBiwMPArMGrAH/MgAB9AErFDIBbAuzAWsB/xMAAQcB8AH0AfIBkQGQBrMBiwH0
+ BP8B9AGLAZAGswGLAfIB9AHwAQcJAAH/BqwCswEPAQ0BbALbAbQBiwLbAbMHDQFmAtsBtAFmAtsBkAEK
+ Ag8CswasAf8yAAH/ASsTMgFSAWsLswGKAfMTAAHwAbwB9AHzAbsBigazAYoBiwG7AvMBuwGLAYoGswGB
+ AZEB8wH0AbwB8AkAAf8GrAKzAQ8BDQFmBtsBiwYNAYsD2wGzAQ0BtAHbAbQBDQIPArMGrAH/MwABUhMy
+ AVEBiguzAYoBuxMAAfMB7wH/AfMB8gFrAbMBuQazAYoCawGKCLMBigHwAfMB9AHvAfMJAAH/BqwCswEP
+ Ag0BugXbAbQBZgQNAZAD2wG0AWYBDQGRAtsBZgEKAQ8CswasAf8zAAEaATESMgFKAZAMswGREwAB/wGS
+ AfQB/wHzAbQBigHaAbkPswHaAbMBkQHzAf8B9AGSAf8JAAH/BqwBuQGzAg8BDQG0AtsBtATbAZABDQFm
+ AbQD2wGLAQ0BDwEKAYsC2wFsAQ4BDwGzAbkGrAH/MwAB/wErATIBUxAyAWwNswFrAf8TAAHxAbwB/wLz
+ AWsBswHaDrkB2gG5AWsB8AHzAf8BvAHxCgAB/wasAboBswEPAQ4BCgGLAtsBZgFsAbQD2wFsAboC2wG6
+ AWwEDQFmAtsBkAEKAQ8BswG6BqwB/zQAARoBKwJZD1MBbA2zAQYB9BMAAf8BkgH0Af8B8wG7AWsC2gW5
+ AvQFuQLaAYoB9wHzAf8B9AGSAf8KAAH/BqwBugGzAQ8CCgFsAtsBiwENAQ8BiwLbAZABugHbAboBFQYN
+ AboB2wG0AQ0BDwGzAboGrAH/NQABGgErATICWQ1TAWwNswGKAfMUAAGSAQcC/wHzAbUBawG5AtoCuQHc
+ Av8B3AK5A9oBigGRAfMC/wEHAZILAAH/BqwBugGzAQ4BCgEPAUMD2wO6AtsCtALbBLoDiwG0AtsBDQEP
+ AbMBugasAf82AAH0AZkBMQVZCVMBbA2zAYoB8hQAAfcB7wG8Av8B8wG7AWsBkAPaAdsC9ATaAbMBawH3
+ AfMC/wG8Ae8BkgsAAf8GrAG6AbMBDgEKAQ4BDQG6BdwC2wG6AZEB3AHbA9wB4QG0ApEBtALcAWwBCgGz
+ AboGrAH/OAAB9AGZASsBMQEyAVMBWQdTAVkBbAGzDLkBigHyFAABkgHxAe8B8QL/AvMBtAFrAZACuQLf
+ ArkBswGKAZEB8QHzAv8B8QHvAfEBkgsAAf8GrAG6AbMBDgMKAZEB3AbbAbQBZgG6BNsB3AG0A5EBugHc
+ AYsBDQGzAboGrAH/OgAB/wHzARoBMQlTAWwBswy5AYoB9BQAAZIB8gHwAe8BvAL/AfQC8wG7AZEBiwJr
+ AYsBkAG1AfIB8wH0Av8BvAHvAfAB8gGSCwAB/wasAboBswEOAgoCDQdDAw0CQwNmAUMBDQFDAQ0CQwIN
+ AbMBugasAf88AAGZATEJUwFLAZAB2gm5AdoBuQFrAf8UAAGSAvIB8QHvAQcB9AL/AfQI8wH0Av8B9AEH
+ Ae8B8QLyAZILAAH/BqwBugGzAg4BCgcOAQ8CDQIPAQ4FDQEPAQ0BDwEQAQ8CCgGzAboGrAH/PAABUgpT
+ AVIBawLaCLkB2gGzAbsVAAGSBPICkgEHAfQK/wH0AQcCkgTyAZILAAH/BqwBugGzCgoCDwINAg4BDwQN
+ AQ8CDgEPAQoCDgGzAboGrAH/OwAB9gExC1kBSgGBA9oEuQPaAYoB9BUAAZIB8gHzAvIBkgH/AfEB9wHv
+ AbwC8wL/AvMBvAHvAfcB8QH/AZIC8gHzAfIBkgsAAf8GrAG6AbkBCgIOBwoBDgEPAQ0BDwIKAQ4BDwIN
+ Ag8BDgEKAQ4CCgEOAbkBugasAf87AAEbATELWQFSAewBgQHaAd8E2gHfAbkBBgG8FgAB7wHxAfMC8gHv
+ AfQCAAH0AfABBwHvApIB7wEHAfAB9AIAAfQB7wLyAfMB8QHvCwAB/wasAdsBuQEKAQ4BCgUOAQoBDgMP
+ AQ4BCgEOAQoBDgIPAQ0BDwMKAw4BuQHbBqwB/zsAAZkBUgtZAVMBdAG8AYsBBgGQAbkBswGBAQYBkQHy
+ FwABBwHwAfQC8gEHAfIOAAHyAQcC8gH0AfABBwsAAf8GrAK6AQ4BAAYKAQ4BCgMOAQoBDgIKAQ4CCgIO
+ AQoDDgIAAroGrAH/OwABdAFTDFkBKwH/AQAB8wHwAbsBvAHzAf8ZAAHxAQcB/wLzArwOAAK8AvMB/wEH
+ AfELAAH/BqwBswHbAWwaDQFsAdsBswasAf87AAFSDVkBMQH/IAAB9AHvAf8B9AHzAfIB7wHzDAAB8wHv
+ AfIB8wH0Af8B7wH0CwAB/wesAbkB2xq6AdsBuQesAf87AAFSDVkBMQHzIQABBwHyAf8C8wHwAfcB9AoA
+ AfQB9wHwAvMB/wHyAQcMAAH/CKwBshqzAbIIrAH/OwABUg1ZATEBGyEAAfMB7wL/AvMBvAH3AfMIAAHz
+ AfcBvALzAv8B7wHzDAAB/yysAf87AAFSDVkBMQEbIgAC8AH/AfQC8wHwAe8BvAHyAfQC/wH0AfIBvAHv
+ AfAC8wH0Af8C8A4AAboqrAG6PAABeQFTDFkBMQH0IgAB9AGSAfMB/wH0A/MB8AEHAe8CkgHvAQcB8APz
+ AfQB/wHzAZIB9A4AAfMqrAHzPAABGgFSDFkBKwH/IwAB8gH3AfIC/wzzAv8B8gH3AfIPAAH/KqwB/zwA
+ Af8BMQxZAZklAAHzAZIB8AP/CPMD/wHwAZIB8xAAAf8B8yisAfMB/z0AARoBUgFeCVkBMQH0JgAB9AHw
+ Ae8B8gT/AvQE/wHyAe8B8AH0EgAB/wEJJqwBCQH/PwABmQFSAV4G5QFZATEBGikAAfMBBwH3AbwB8gHz
+ Av8B8wHyAbwB9wEHAfMVAAH/AQkkrAEJAf9BAAEaAVIBMQFSAVkBWAFSATEBdAEbLAAB/wHxAQcB7wKS
+ Ae8BBwHxAf8YAAH/AfMBsiCsAbIB8wH/RAAB8wEaAZkBGgHzAf9SAAH/AfMBuxusAbMBuwHzAf+hABz/
+ OgABQgFNAT4HAAE+AwABKAMAAcADAAEwAwABAQEAAQEFAAGAAQQWAAP/AQAN/wHAAgABAwH+BgAD/wEA
+ AQ8H/wH+BAABfwYAAv8B4AIAAX8C/wHgAQcC/wH4BAABHwYAAv8BgAIAAR8C/wIAAv8B8AQAAQ8GAAH/
+ Af4DAAEHAf8B/gIAAX8B/wHgBAABBwYAAf8B/AMAAQMB/wH4AgABHwH/AcAEAAEDBgAB/wH8AwABAwH/
+ AfACAAEPAf8BwAQAAQMGAAH/AfgDAAEBAf8B4AIAAQcB/wHABAABAwYAAf8B+AMAAQEB/wHgAgABBwH/
+ AcAEAAEDBgAB/wH4AwABAQH/AcACAAEDAf8BgAQAAQEGAAH/AfgDAAEBAf8BgAIAAQEB/wGABAABAQYA
+ Af8B/AMAAQMB/wGAAgABAQH/AYAEAAEBBgAB/wHwAwABAwH/BAAB/wGABAABAQYAAf4EAAEHAf8EAAH/
+ AYAEAAEBBgAB+AQAAQcB/wQAAf8BgAQAAQEGAAHgBAABDwH/BAAB/wGABAABAQYAAcAEAAEfAf8EAAH/
+ AYAEAAEBBgABwAQAAX8B/wQAAf8BgAQAAQEGAAGAAwABAwL/BAAB/wGABAABAQYAAYADAAEPAv8EAAH/
+ AYAEAAEBBgABgAMAAQcC/wQAAf8BgAQAAQEGAAGAAwABBwL/BAAB/wGABAABAQYAAcADAAEHAv8EAAH/
+ AYAEAAEBBgABwAMAAQcC/wQAAf8BgAQAAQEGAAHAAwABAwL/AYACAAEBAf8BgAQAAQEGAAHgAwABAwL/
+ AYACAAEBAf8BgAQAAQEGAAHwAwABAwL/AcACAAEDAf8BgAQAAQEGAAH4AwABAwL/AcACAAEDAf8BgAQA
+ AQEGAAH+AwABAwL/AcACAAEDAf8BgAQAAQEGAAH/AYACAAEDAv8BwAIAAQMB/wGABAABAQYAAf8B4AIA
+ AQMC/wHAAgABAwH/AYAEAAEBBgAB/wHgAgABBwL/AcACAAEDAf8BgAQAAQEGAAH/AcACAAEHAv8BwAIA
+ AQMB/wGABAABAQYAAf8BwAIAAQ8C/wHAAWABBgEDAf8BgAQAAQEGAAH/AcACAAEfAv8BwAF/Af4BAwH/
+ AYAEAAEBBgAB/wHAAQABIAF/Av8BwAF/Af4BAwH/AYAEAAEBBgAB/wHAAQABPwP/AcABPwH8AQMB/wGA
+ BAABAQYAAf8BwAEAAT8D/wHgAR8B+AEHAf8BgAQAAQEGAAH/AcABAAE/A/8B4AEPAfABBwH/AYAEAAEB
+ BgAB/wHAAQABPwP/AfACAAEPAf8BwAQAAQMGAAH/AcABAAE/A/8B8AIAAQ8B/wHABAABAwYAAf8BwAEA
+ AT8D/wH4AgABHwH/AcAEAAEDBgAB/wHAAQABfwP/AfwCAAE/Af8BwAQAAQMGAAH/AeABAAF/A/8B/gIA
+ AX8B/wHgBAABBwYAAf8B8AEABf8BgAEBAv8B8AQAAQ8GAAH/AfgBAQX/AeABBwL/AfgEAAEfBgAB/wH+
+ AQcJ/wH+BAABfwYADf8BwAIAAQMB/wYACw==
diff --git a/FormSettings.Designer.cs b/FormSettings.Designer.cs
index 4a9fe68..df7ce94 100644
--- a/FormSettings.Designer.cs
+++ b/FormSettings.Designer.cs
@@ -525,7 +525,6 @@
this.cbxPTU.TabIndex = 7;
this.cbxPTU.Text = "Use PTU folders";
this.cbxPTU.UseVisualStyleBackColor = false;
- this.cbxPTU.Visible = false;
//
// cbxDetectGamepad
//
diff --git a/FormSettings.cs b/FormSettings.cs
index cc750d0..fcb875e 100644
--- a/FormSettings.cs
+++ b/FormSettings.cs
@@ -80,7 +80,6 @@ namespace SCJMapper_V2
// Use PTU
cbxPTU.Checked = AppSettings.Instance.UsePTU;
- AppSettings.Instance.UsePTU = false; // no longer used
// AutoTabXML
cbxAutoTabXML.Checked = AppSettings.Instance.AutoTabXML;
@@ -132,10 +131,10 @@ namespace SCJMapper_V2
AppSettings.Instance.DetectGamepad = cbxDetectGamepad.Checked;
//// Use PTU
- //if ( AppSettings.Instance.UsePTU != cbxPTU.Checked ) {
- // MessageBox.Show( "Changing to / from PTU folders needs a restart of the application !!", "Settings Notification", MessageBoxButtons.OK, MessageBoxIcon.Information );
- //}
- //AppSettings.Instance.UsePTU = cbxPTU.Checked; // no longer used
+ if ( AppSettings.Instance.UsePTU != cbxPTU.Checked ) {
+ MessageBox.Show( "Changing to / from PTU folders needs a restart of the application !!", "Settings Notification", MessageBoxButtons.OK, MessageBoxIcon.Information );
+ }
+ AppSettings.Instance.UsePTU = cbxPTU.Checked;
// AutoTabXML
AppSettings.Instance.AutoTabXML = cbxAutoTabXML.Checked;
diff --git a/ReadMe.txt b/ReadMe.txt
index 2452cef..1db424e 100644
--- a/ReadMe.txt
+++ b/ReadMe.txt
@@ -1,12 +1,12 @@
-SC Joystick Mapper V 2.36 - Build 71 BETA
-(c) Cassini, StandardToaster - 05-Feb-2018
+SC Joystick Mapper V 2.37 - Build 72 BETA
+(c) Cassini, StandardToaster - 21-Mar-2018
Contains 14 files + graphics:
-SCJMapper.exe The program (V2.36)
-SCJMapper.exe.config Program config (V2.36) - MUST be in the same folder as the Exe file
-de\SCJMapper.resources.dll German language (V2.36) - MUST be in the same folder as the Exe file
-fr\SCJMapper.resources.dll French language (V2.36) - MUST be in the same folder as the Exe file
+SCJMapper.exe The program (V2.37)
+SCJMapper.exe.config Program config (V2.37) - MUST be in the same folder as the Exe file
+de\SCJMapper.resources.dll German language (V2.37) - MUST be in the same folder as the Exe file
+fr\SCJMapper.resources.dll French language (V2.37) - MUST be in the same folder as the Exe file
Storage\*.scj Folder for collected assets (V2.35) - MUST be in the same folder as the Exe file
SharpDX.DirectInput.dll Managed DirectInput Assembly - MUST be in the same folder as the Exe file
SharpDX.dll Managed DirectX Assembly - MUST be in the same folder as the Exe file
@@ -43,6 +43,10 @@ Scanned for viruses before packing...
cassini@burri-web.org
Changelog:
+V 2.37 - BETA Build 72 - quick update for PTU 3.1
+- added - PTU 3.1 folder is now checked first - then the 'old' 3.0 installation
+ (\StarCitizenPTU\LIVE) then (\StarCitizen\LIVE)
+- NOTE: other new stuff is not complete so you're on your own here
V 2.36 - BETA Build 71
- new feature - window for realtime monitoring of the controls (works also in background)
- add - silently dumps the CSV list along the backup xml file into MyDocuments
diff --git a/SC/SCPath.cs b/SC/SCPath.cs
index 4be1901..a396d19 100644
--- a/SC/SCPath.cs
+++ b/SC/SCPath.cs
@@ -83,9 +83,15 @@ namespace SCJMapper_V2.SC
issue = Tx.Translate( "scpInvalidPath" ); // string.Format( "There is no vaild path given (invalid directory)" );
return issue; // no valid one can be found
}
+ // 20180321 New PTU 3.1 another change in setup path - Testing for PTU first
+ if ( Directory.Exists( Path.Combine( basePath, "StarCitizenPTU" ) ) ) {
+ basePath = Path.Combine( basePath, "StarCitizenPTU" );
+ }
+ else {
+ // then try the retail path (was valid so far..)
+ basePath = Path.Combine( basePath, "StarCitizen" );
+ }
- //
- basePath = Path.Combine( basePath, "StarCitizen" );
string scpX = "";
// SC 3.0 try LIVE
scpX = Path.Combine( basePath, "LIVE" );
@@ -206,8 +212,17 @@ namespace SCJMapper_V2.SC
string issue = "";
if ( string.IsNullOrEmpty( scp ) ) return ""; // no valid one can be found
- //
- scp = Path.Combine( scp, "StarCitizen" );
+
+
+ // 20180321 New PTU 3.1 another change in setup path - Testing for PTU first
+ if (AppSettings.Instance.UsePTU && Directory.Exists( Path.Combine( scp, "StarCitizenPTU" ) ) ) {
+ scp = Path.Combine( scp, "StarCitizenPTU" );
+ }
+ else {
+ // then try the retail path (was valid so far..)
+ scp = Path.Combine( scp, "StarCitizen" );
+ }
+
string scpX = "";
// SC 3.0 try LIVE
scpX = Path.Combine( scp, "LIVE" );
diff --git a/SC/SCfiles.cs b/SC/SCfiles.cs
index f4ff205..ec77002 100644
--- a/SC/SCfiles.cs
+++ b/SC/SCfiles.cs
@@ -116,7 +116,7 @@ namespace SCJMapper_V2.SC
}
///
- /// Update from the pack file (treats is like never read..)
+ /// Update from the pack file (treats it like never read..)
///
private void UpdateDefProfileFile()
{
@@ -160,7 +160,7 @@ namespace SCJMapper_V2.SC
}
///
- /// Update all map files from the pak file (treats is like never read..)
+ /// Update all map files from the pak file (treats it like never read..)
///
private void UpdateMapFiles()
{
@@ -208,7 +208,7 @@ namespace SCJMapper_V2.SC
}
///
- /// Update all language files from the pak file (treats is like never read..)
+ /// Update all language files from the pak file (treats it like never read..)
///
private void UpdateLangFiles()
{
diff --git a/TheUser.cs b/TheUser.cs
index 939adcd..1f34e9c 100644
--- a/TheUser.cs
+++ b/TheUser.cs
@@ -12,8 +12,12 @@ namespace SCJMapper_V2
///
class TheUser
{
+
private static readonly log4net.ILog log = log4net.LogManager.GetLogger( System.Reflection.MethodBase.GetCurrentMethod( ).DeclaringType );
+ // distinguish for some stuff
+ public static bool UsesPTU { get; set; }
+
private static bool hasWriteAccessToFolder( string folderPath )
{
try {
@@ -28,7 +32,7 @@ namespace SCJMapper_V2
}
///
- /// Returns the name of the Personal Program folder in My Documents
+ /// Returns the name of the Personal Program folder in My Documents (depends on PTU use...)
/// Creates the folder if needed
///
/// Path to the Personal Program directory
@@ -38,12 +42,16 @@ namespace SCJMapper_V2
log.Debug( "UserDir - Entry" );
string docPath = Path.Combine( Environment.GetFolderPath( Environment.SpecialFolder.Personal ), Application.ProductName );
if ( !Directory.Exists( docPath ) ) Directory.CreateDirectory( docPath );
+ if ( UsesPTU ) {
+ docPath = Path.Combine( docPath, "PTU" );
+ if ( !Directory.Exists( docPath ) ) Directory.CreateDirectory( docPath );
+ }
return docPath;
}
}
///
- /// The directory to store the assets
+ /// The directory to store the assets (depends on PTU use...)
///
static public string FileStoreDir
{
@@ -53,7 +61,10 @@ namespace SCJMapper_V2
// fallback
if ( !hasWriteAccessToFolder( docPath ) )
docPath = UserDir;
- return Path.Combine( docPath, "Storage");
+ if ( UsesPTU )
+ return Path.Combine( docPath, "PTU_Storage" );
+ else
+ return Path.Combine( docPath, "Storage" );
}
}
@@ -89,6 +100,19 @@ namespace SCJMapper_V2
}
+ ///
+ /// Returns the mapping file name + path into our user dir
+ ///
+ /// The mapping name
+ /// A fully qualified filename
+ static public string MappingXmlFileName( string mapName )
+ {
+ log.Debug( "MappingXmlFileName - Entry" );
+
+ return Path.Combine( UserDir, mapName + ".scjm.xml" );
+ }
+
+
///
/// Create a backupfile from the given file
///
diff --git a/Translation/Strings.Designer.cs b/Translation/Strings.Designer.cs
index 89a4f10..83dd6ca 100644
--- a/Translation/Strings.Designer.cs
+++ b/Translation/Strings.Designer.cs
@@ -339,6 +339,15 @@ namespace SCJMapper_V2.Translation {
}
}
+ ///
+ /// Looks up a localized string similar to List actions.
+ ///
+ public static string chkReport {
+ get {
+ return ResourceManager.GetString("chkReport", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Device Monitor.
///
diff --git a/Translation/Strings.de.resx b/Translation/Strings.de.resx
index 7581428..906fa58 100644
--- a/Translation/Strings.de.resx
+++ b/Translation/Strings.de.resx
@@ -368,7 +368,7 @@
Achtung: Akzeptieren der neuen Einstellungen löscht den aktuellen Aktionsbaum;
benutzen sie Abbrechen um die Arbeit erst zu speichern.
- ä
+ 2-Settings
Sek. pro 360° Drehung
@@ -758,4 +758,8 @@ benutzen sie Abbrechen um die Arbeit erst zu speichern.
Pfad zur Star Citizen Installation
2-Settings SCPath
+
+ Aktionen zeigen
+ 8-DeviceMonitor
+
\ No newline at end of file
diff --git a/Translation/Strings.fr.resx b/Translation/Strings.fr.resx
index 1fe626c..fc387dd 100644
--- a/Translation/Strings.fr.resx
+++ b/Translation/Strings.fr.resx
@@ -758,4 +758,8 @@ Annulez maintenant si vous voulez d'abord enregistrer votre travail.
Chemin du répertoire vers le Star Citizen installation
2-Settings SCPath
+
+ Lister les actions
+ 8-DeviceMonitor
+
\ No newline at end of file
diff --git a/Translation/Strings.resx b/Translation/Strings.resx
index 8242074..e8f5c62 100644
--- a/Translation/Strings.resx
+++ b/Translation/Strings.resx
@@ -758,4 +758,8 @@ Cancel now if you want to save your work first.
Path to the Star Citizen Installation
2-Settings SCPath
+
+ List actions
+ 8-DeviceMonitor
+
\ No newline at end of file
diff --git a/actions/ActionTree.cs b/actions/ActionTree.cs
index 799fe59..3f9303c 100644
--- a/actions/ActionTree.cs
+++ b/actions/ActionTree.cs
@@ -1116,8 +1116,8 @@ namespace SCJMapper_V2.Actions
aMode = string.Format( "{0}", Tx.Translate( "mapDefault" ) );
rtf.RHighlightColor = ( inverse ) ? RTF.RTFformatter.ERColor.ERC_DarkGreen : RTF.RTFformatter.ERColor.ERC_Green;
rtf.Write( Tx.Translate( "mapMapped" ) );
- rtf.WriteTab( SCUiText.Instance.Text( ac.ActionName ));
- rtf.WriteTab( SCUiText.Instance.Text( acm.MapName) );
+ rtf.WriteTab( SCUiText.Instance.Text( ac.ActionName ) );
+ rtf.WriteTab( SCUiText.Instance.Text( acm.MapName ) );
rtf.WriteTab( aMode.PadRight( 80 ) ); rtf.WriteLn( );
rtf.RHighlightColor = RTF.RTFformatter.ERColor.ERC_Black; // background
rtf.WriteLn( );
@@ -1364,7 +1364,77 @@ namespace SCJMapper_V2.Actions
}
return repList;
}
-
+
+ ///
+ /// Reports a list of the mapped items as XML (not CIG style)
+ ///
+ /// XML string
+ public string ReportActionsXML()
+ {
+ log.Debug( "ReportActionsXML - Entry" );
+ /*
+ Format:
+
+
+
+
+
+
+
+ e.g.
+
+
+
+
+
+
+
+
+
+ */
+ string repList = "";
+ repList = string.Format( "\n" );
+ foreach ( ActionMapCls acm in ActionMaps ) {
+ repList += string.Format( "\t\n", acm.MapName );
+ // restart output
+ string actionName = "", devRep = "";
+ foreach ( ActionCls ac in acm ) {
+ if ( ac.ActionName == actionName ) {
+ // same as before
+ // collect further
+ }
+ else {
+ // new action
+ // report
+ if ( !string.IsNullOrEmpty( devRep ) ) {
+ repList += string.Format( "\t\t\n", actionName );
+ repList += devRep;
+ repList += string.Format( "\t\t\n" );
+ }
+ // and reset
+ actionName = ac.ActionName; // new one
+ devRep = "";
+ }
+ foreach ( ActionCommandCls acc in ac.InputList ) {
+ if ( !Act.IsDisabledInput( acc.Input ) ) {
+ if ( !string.IsNullOrEmpty( acc.Input ) ) {
+ devRep += string.Format( "\t\t\t\n", acc.DevID, acc.Input );
+ }
+ }
+ }
+ }
+ // have to report the last one
+ if ( !string.IsNullOrEmpty( devRep ) ) {
+ repList += string.Format( "\t\t\n", actionName );
+ repList += devRep;
+ repList += string.Format( "\t\t\n" );
+ }
+ repList += string.Format( "\t\n" );
+ }
+ repList += string.Format( "\n" );
+ return repList;
+ }
+
///
/// Reports a summary list of the mapped items
///
diff --git a/defaultProfile.xml b/defaultProfile.xml
index 2f0099a..5317ab8 100644
--- a/defaultProfile.xml
+++ b/defaultProfile.xml
@@ -8,7 +8,6 @@
-
@@ -24,7 +23,6 @@
-
@@ -123,7 +121,7 @@
-
+
@@ -362,7 +360,7 @@
-
+
@@ -390,13 +388,13 @@
-
-
+
+
-
-
-
+
+
+
@@ -430,7 +428,7 @@
-
+
@@ -460,8 +458,9 @@
-
-
+
+
+
@@ -517,10 +516,23 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -549,23 +561,19 @@
-
-
-
-
-
-
+
+
-
+
-
+
@@ -587,14 +595,14 @@
-
-
-
-
+
+
+
+
-
-
+
+
@@ -613,17 +621,6 @@
-
-
-
-
-
-
-
-
-
-
-
@@ -669,10 +666,7 @@
-
-
-
-
+
@@ -682,8 +676,8 @@
-
-
+
+
@@ -695,21 +689,21 @@
-
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
@@ -721,30 +715,35 @@
-
+
-
+
+
+
+
+
+
+
-
+
-
-
+
+
-
-
+
-
+
-
-
+
+
@@ -764,22 +763,22 @@
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
+
-
+
@@ -822,7 +821,7 @@
-
+
@@ -835,16 +834,16 @@
-
-
+
+
-
-
+
+
@@ -870,20 +869,22 @@
-
-
-
+
+
+
-
-
+
+
+
+
@@ -903,10 +904,7 @@
-
-
-
-
+
@@ -918,15 +916,15 @@
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
@@ -947,15 +945,19 @@
-
+
+
+
+
-
+
+
@@ -974,8 +976,8 @@
-
-
+
+
@@ -988,7 +990,8 @@
-
+
+
@@ -1000,7 +1003,8 @@
-
+
+
@@ -1012,7 +1016,8 @@
-
+
+
@@ -1102,16 +1107,16 @@
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
@@ -1121,6 +1126,8 @@
+
+
@@ -1139,7 +1146,7 @@
-
+
@@ -1174,6 +1181,7 @@
+
@@ -1187,19 +1195,15 @@
-
-
-
-
-
+
-
-
-
-
+
+
+
+
@@ -1207,7 +1211,7 @@
-
+
@@ -1253,6 +1257,7 @@
+
@@ -1278,11 +1283,11 @@
-
-
-
-
-
+
+
+
+
+