From 9b8dd96206a8601f5366ebb74ba1af398cdd091d Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sun, 19 Feb 2023 18:19:29 -0600 Subject: [PATCH 01/71] updated SpellFixer to support RtL languages (now that it's used natively in the Ptx plugin for BTs) --- src/SpellingFixerEC/AssemblyInfo.cs | 10 +- src/SpellingFixerEC/LoginSF.cs | 189 +++++---- src/SpellingFixerEC/LoginSF.resx | 303 ++------------- .../QueryFindReplaceDialog.Designer.cs | 285 ++++++++++++++ src/SpellingFixerEC/QueryFindReplaceDialog.cs | 190 +++++++++ ...lling.resx => QueryFindReplaceDialog.resx} | 293 +++++++------- src/SpellingFixerEC/QueryGoodSpelling.cs | 367 ------------------ src/SpellingFixerEC/SpellingFixerEC.cs | 39 +- src/SpellingFixerEC/SpellingFixerEC.csproj | 11 +- src/SpellingFixerEC/ViewBadGoodPairsDlg.cs | 22 +- 10 files changed, 835 insertions(+), 874 deletions(-) create mode 100644 src/SpellingFixerEC/QueryFindReplaceDialog.Designer.cs create mode 100644 src/SpellingFixerEC/QueryFindReplaceDialog.cs rename src/SpellingFixerEC/{QueryGoodSpelling.resx => QueryFindReplaceDialog.resx} (92%) delete mode 100644 src/SpellingFixerEC/QueryGoodSpelling.cs diff --git a/src/SpellingFixerEC/AssemblyInfo.cs b/src/SpellingFixerEC/AssemblyInfo.cs index 355e8d83..49c88e23 100644 --- a/src/SpellingFixerEC/AssemblyInfo.cs +++ b/src/SpellingFixerEC/AssemblyInfo.cs @@ -8,12 +8,12 @@ // associated with an assembly. // [assembly: AssemblyTitle("SIL Spelling fixer plug-in")] -[assembly: AssemblyDescription("SIL Spelling fixer plug-in (for use with EncConverters)")] +[assembly: AssemblyDescription("SIL Spelling fixer plug-in (for use with EncConverters). A GUI wrapper on CC (Consistent changes)")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("SIL")] [assembly: AssemblyProduct("SpellingFixerEC")] -[assembly: AssemblyCopyright("Copyright © 2004-2021 SIL. All rights reserved.")] -[assembly: AssemblyTrademark("Copyright © 2004-2021 SIL. All rights reserved.")] +[assembly: AssemblyCopyright("Copyright © 2004-2023 SIL. All rights reserved.")] +[assembly: AssemblyTrademark("Copyright © 2004-2023 SIL. All rights reserved.")] [assembly: AssemblyCulture("")] // @@ -27,7 +27,7 @@ // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("4.0.0.0")] +[assembly: AssemblyVersion("5.0.0.0")] // // In order to sign your assembly you must specify a key to use. Refer to the @@ -57,5 +57,5 @@ [assembly: AssemblyDelaySign(false)] // [assembly: AssemblyKeyFile("")] [assembly: AssemblyKeyName("")] -[assembly: AssemblyFileVersion("4.5.0.0")] +[assembly: AssemblyFileVersion("5.0.0.0")] [assembly: NeutralResourcesLanguageAttribute("en")] diff --git a/src/SpellingFixerEC/LoginSF.cs b/src/SpellingFixerEC/LoginSF.cs index 62f43bb1..aec4ba34 100644 --- a/src/SpellingFixerEC/LoginSF.cs +++ b/src/SpellingFixerEC/LoginSF.cs @@ -43,6 +43,7 @@ internal class LoginSF : System.Windows.Forms.Form private System.ComponentModel.IContainer components; private bool m_bLegacy; + private bool m_isRightToleft; private int m_cp = 1252; private Font m_font; private string m_strConverterSpec; @@ -60,6 +61,7 @@ internal class LoginSF : System.Windows.Forms.Form private System.Windows.Forms.Label label2; private System.Windows.Forms.TextBox textBoxAddlPunctuation; private string m_strNonWordCharacters; + private CheckBox checkBoxRtL; private string cstrProjectMostRecentProject = "MostRecentProject"; public LoginSF() @@ -151,6 +153,11 @@ public string WordBoundaryDelimiter get { return m_strWordBoundaryDelimiter; } } + public bool IsRightToLeft + { + get { return m_isRightToleft; } + } + public string Punctuation { get { return m_strNonWordCharacters; } @@ -179,7 +186,7 @@ protected override void Dispose( bool disposing ) private void InitializeComponent() { this.components = new System.ComponentModel.Container(); - System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(LoginSF)); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LoginSF)); this.checkedListBoxProjects = new System.Windows.Forms.CheckedListBox(); this.buttonOK = new System.Windows.Forms.Button(); this.buttonCancel = new System.Windows.Forms.Button(); @@ -205,27 +212,29 @@ private void InitializeComponent() this.menuItemDeleteAll = new System.Windows.Forms.MenuItem(); this.menuItemEdit = new System.Windows.Forms.MenuItem(); this.labelInstructions = new System.Windows.Forms.Label(); + this.checkBoxRtL = new System.Windows.Forms.CheckBox(); this.groupBoxNewProject.SuspendLayout(); this.SuspendLayout(); // // checkedListBoxProjects // this.checkedListBoxProjects.Cursor = System.Windows.Forms.Cursors.Hand; - this.checkedListBoxProjects.Location = new System.Drawing.Point(16, 16); + this.checkedListBoxProjects.Location = new System.Drawing.Point(32, 30); this.checkedListBoxProjects.Name = "checkedListBoxProjects"; - this.checkedListBoxProjects.Size = new System.Drawing.Size(360, 154); + this.checkedListBoxProjects.Size = new System.Drawing.Size(720, 256); this.checkedListBoxProjects.TabIndex = 0; this.checkedListBoxProjects.ThreeDCheckBoxes = true; this.toolTips.SetToolTip(this.checkedListBoxProjects, "List of existing projects"); - this.checkedListBoxProjects.DoubleClick += new System.EventHandler(this.checkedListBoxProjects_DoubleClick); this.checkedListBoxProjects.SelectedIndexChanged += new System.EventHandler(this.checkedListBoxProjects_SelectedIndexChanged); + this.checkedListBoxProjects.DoubleClick += new System.EventHandler(this.checkedListBoxProjects_DoubleClick); this.checkedListBoxProjects.MouseUp += new System.Windows.Forms.MouseEventHandler(this.checkedListBoxProjects_MouseUp); // // buttonOK // - this.buttonOK.Location = new System.Drawing.Point(115, 464); + this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonOK.Location = new System.Drawing.Point(230, 913); this.buttonOK.Name = "buttonOK"; - this.buttonOK.Size = new System.Drawing.Size(75, 24); + this.buttonOK.Size = new System.Drawing.Size(150, 44); this.buttonOK.TabIndex = 11; this.buttonOK.Text = "OK"; this.toolTips.SetToolTip(this.buttonOK, "Click to use the checked project"); @@ -233,10 +242,11 @@ private void InitializeComponent() // // buttonCancel // + this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.buttonCancel.Location = new System.Drawing.Point(203, 464); + this.buttonCancel.Location = new System.Drawing.Point(406, 913); this.buttonCancel.Name = "buttonCancel"; - this.buttonCancel.Size = new System.Drawing.Size(75, 24); + this.buttonCancel.Size = new System.Drawing.Size(150, 44); this.buttonCancel.TabIndex = 12; this.buttonCancel.Text = "Cancel"; this.toolTips.SetToolTip(this.buttonCancel, "Click to cancel this operation"); @@ -244,19 +254,18 @@ private void InitializeComponent() // // labelName // - this.labelName.Location = new System.Drawing.Point(32, 216); + this.labelName.Location = new System.Drawing.Point(64, 399); this.labelName.Name = "labelName"; - this.labelName.Size = new System.Drawing.Size(56, 23); + this.labelName.Size = new System.Drawing.Size(112, 42); this.labelName.TabIndex = 1; this.labelName.Text = "&Name:"; // // textBoxNewProjectName // - this.textBoxNewProjectName.Location = new System.Drawing.Point(88, 216); + this.textBoxNewProjectName.Location = new System.Drawing.Point(176, 399); this.textBoxNewProjectName.Name = "textBoxNewProjectName"; - this.textBoxNewProjectName.Size = new System.Drawing.Size(272, 20); + this.textBoxNewProjectName.Size = new System.Drawing.Size(544, 31); this.textBoxNewProjectName.TabIndex = 2; - this.textBoxNewProjectName.Text = ""; this.toolTips.SetToolTip(this.textBoxNewProjectName, "Enter the name of a new projects (e.g. \'Hindi\')"); this.textBoxNewProjectName.TextChanged += new System.EventHandler(this.textBoxNewProjectName_TextChanged); // @@ -266,9 +275,9 @@ private void InitializeComponent() this.checkBoxUnicode.Checked = true; this.checkBoxUnicode.CheckState = System.Windows.Forms.CheckState.Checked; this.checkBoxUnicode.Cursor = System.Windows.Forms.Cursors.Hand; - this.checkBoxUnicode.Location = new System.Drawing.Point(16, 120); + this.checkBoxUnicode.Location = new System.Drawing.Point(32, 222); this.checkBoxUnicode.Name = "checkBoxUnicode"; - this.checkBoxUnicode.Size = new System.Drawing.Size(72, 24); + this.checkBoxUnicode.Size = new System.Drawing.Size(144, 44); this.checkBoxUnicode.TabIndex = 7; this.checkBoxUnicode.Text = "&Unicode:"; this.toolTips.SetToolTip(this.checkBoxUnicode, "Check this if the data is Unicode-encoded (otherwise, it is Legacy-encoded)"); @@ -276,9 +285,9 @@ private void InitializeComponent() // // buttonAddNewProject // - this.buttonAddNewProject.Location = new System.Drawing.Point(116, 224); + this.buttonAddNewProject.Location = new System.Drawing.Point(232, 468); this.buttonAddNewProject.Name = "buttonAddNewProject"; - this.buttonAddNewProject.Size = new System.Drawing.Size(128, 23); + this.buttonAddNewProject.Size = new System.Drawing.Size(256, 42); this.buttonAddNewProject.TabIndex = 10; this.buttonAddNewProject.Text = "&Add New Project"; this.toolTips.SetToolTip(this.buttonAddNewProject, "Click to add new project"); @@ -286,6 +295,10 @@ private void InitializeComponent() // // groupBoxNewProject // + this.groupBoxNewProject.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBoxNewProject.Controls.Add(this.checkBoxRtL); this.groupBoxNewProject.Controls.Add(this.textBoxAddlPunctuation); this.groupBoxNewProject.Controls.Add(this.label2); this.groupBoxNewProject.Controls.Add(this.textBoxWordBoundaryDelimiter); @@ -298,82 +311,80 @@ private void InitializeComponent() this.groupBoxNewProject.Controls.Add(this.textBoxCP); this.groupBoxNewProject.Controls.Add(this.listBoxFontSize); this.groupBoxNewProject.Controls.Add(this.buttonAddNewProject); - this.groupBoxNewProject.Location = new System.Drawing.Point(16, 184); + this.groupBoxNewProject.Location = new System.Drawing.Point(32, 340); this.groupBoxNewProject.Name = "groupBoxNewProject"; - this.groupBoxNewProject.Size = new System.Drawing.Size(360, 264); + this.groupBoxNewProject.Size = new System.Drawing.Size(720, 549); this.groupBoxNewProject.TabIndex = 9; this.groupBoxNewProject.TabStop = false; this.groupBoxNewProject.Text = "New Project"; // // textBoxAddlPunctuation // - this.textBoxAddlPunctuation.Location = new System.Drawing.Point(232, 184); + this.textBoxAddlPunctuation.Location = new System.Drawing.Point(464, 394); this.textBoxAddlPunctuation.Name = "textBoxAddlPunctuation"; - this.textBoxAddlPunctuation.Size = new System.Drawing.Size(112, 20); + this.textBoxAddlPunctuation.Size = new System.Drawing.Size(224, 31); this.textBoxAddlPunctuation.TabIndex = 14; - this.textBoxAddlPunctuation.Text = ""; this.toolTips.SetToolTip(this.textBoxAddlPunctuation, "Enter any additional punctuation or whitespace characters needed for this languag" + - "e, separated by spaces"); + "e, separated by spaces"); // // label2 // - this.label2.Location = new System.Drawing.Point(16, 184); + this.label2.Location = new System.Drawing.Point(32, 394); this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(208, 24); + this.label2.Size = new System.Drawing.Size(416, 44); this.label2.TabIndex = 13; this.label2.Text = "Additional &punctuation and whitespace:"; // // textBoxWordBoundaryDelimiter // - this.textBoxWordBoundaryDelimiter.Location = new System.Drawing.Point(232, 152); + this.textBoxWordBoundaryDelimiter.Location = new System.Drawing.Point(464, 335); this.textBoxWordBoundaryDelimiter.Name = "textBoxWordBoundaryDelimiter"; - this.textBoxWordBoundaryDelimiter.Size = new System.Drawing.Size(24, 20); + this.textBoxWordBoundaryDelimiter.Size = new System.Drawing.Size(48, 31); this.textBoxWordBoundaryDelimiter.TabIndex = 12; - this.textBoxWordBoundaryDelimiter.Text = SpellingFixerEC.cstrDefaultWordBoundaryDelimiter; - this.toolTips.SetToolTip(this.textBoxWordBoundaryDelimiter, "Enter the character(s) to use as a word boundary delimiter (e.g. with a delimiter" + - " of \"#\", you can enter the \"bad spelling\" words like: #car#, which will only mat" + - "ch if the search string is \"car\", but not \"cars\" or \"sportscar\")"); + this.textBoxWordBoundaryDelimiter.Text = "#"; + this.toolTips.SetToolTip(this.textBoxWordBoundaryDelimiter, resources.GetString("textBoxWordBoundaryDelimiter.ToolTip")); this.textBoxWordBoundaryDelimiter.TextChanged += new System.EventHandler(this.textBoxWordBoundaryDelimiter_TextChanged); // // label1 // - this.label1.Location = new System.Drawing.Point(16, 154); + this.label1.Location = new System.Drawing.Point(32, 338); this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(136, 16); + this.label1.Size = new System.Drawing.Size(272, 30); this.label1.TabIndex = 11; this.label1.Text = "&Word boundary delimiter:"; // // labelFont // - this.labelFont.Location = new System.Drawing.Point(16, 64); + this.labelFont.Location = new System.Drawing.Point(32, 118); this.labelFont.Name = "labelFont"; + this.labelFont.Size = new System.Drawing.Size(200, 43); this.labelFont.TabIndex = 3; this.labelFont.Text = "&Font:"; // // comboBoxFont // this.comboBoxFont.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.comboBoxFont.Location = new System.Drawing.Point(24, 88); + this.comboBoxFont.Location = new System.Drawing.Point(48, 162); this.comboBoxFont.Name = "comboBoxFont"; - this.comboBoxFont.Size = new System.Drawing.Size(232, 21); + this.comboBoxFont.Size = new System.Drawing.Size(464, 33); this.comboBoxFont.TabIndex = 4; this.toolTips.SetToolTip(this.comboBoxFont, "Choose the font to be used for displaying the words whose spelling is to be corre" + - "cted (e.g. \'Arial Unicode MS\')"); + "cted (e.g. \'Arial Unicode MS\')"); this.comboBoxFont.SelectedIndexChanged += new System.EventHandler(this.comboBoxFont_SelectedIndexChanged); // // labelFontSize // - this.labelFontSize.Location = new System.Drawing.Point(264, 64); + this.labelFontSize.Location = new System.Drawing.Point(528, 118); this.labelFontSize.Name = "labelFontSize"; - this.labelFontSize.Size = new System.Drawing.Size(64, 23); + this.labelFontSize.Size = new System.Drawing.Size(128, 43); this.labelFontSize.TabIndex = 5; this.labelFontSize.Text = "Font &Size:"; // // labelCP // - this.labelCP.Location = new System.Drawing.Point(120, 120); + this.labelCP.Location = new System.Drawing.Point(240, 222); this.labelCP.Name = "labelCP"; - this.labelCP.Size = new System.Drawing.Size(80, 23); + this.labelCP.Size = new System.Drawing.Size(160, 42); this.labelCP.TabIndex = 8; this.labelCP.Text = "&Code page:"; this.labelCP.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; @@ -381,39 +392,39 @@ private void InitializeComponent() // // textBoxCP // - this.textBoxCP.Location = new System.Drawing.Point(200, 120); + this.textBoxCP.Location = new System.Drawing.Point(400, 222); this.textBoxCP.Name = "textBoxCP"; - this.textBoxCP.Size = new System.Drawing.Size(56, 20); + this.textBoxCP.Size = new System.Drawing.Size(112, 31); this.textBoxCP.TabIndex = 9; - this.textBoxCP.Text = ""; this.toolTips.SetToolTip(this.textBoxCP, "Enter the code page used by this legacy font"); this.textBoxCP.Visible = false; this.textBoxCP.TextChanged += new System.EventHandler(this.textBoxCP_TextChanged); // // listBoxFontSize // + this.listBoxFontSize.ItemHeight = 25; this.listBoxFontSize.Items.AddRange(new object[] { - "8", - "9", - "10", - "10.5", - "11", - "12", - "14", - "16", - "18", - "20", - "22", - "24", - "26", - "28", - "36", - "48", - "72"}); - this.listBoxFontSize.Location = new System.Drawing.Point(272, 88); + "8", + "9", + "10", + "10.5", + "11", + "12", + "14", + "16", + "18", + "20", + "22", + "24", + "26", + "28", + "36", + "48", + "72"}); + this.listBoxFontSize.Location = new System.Drawing.Point(544, 162); this.listBoxFontSize.Name = "listBoxFontSize"; this.listBoxFontSize.ScrollAlwaysVisible = true; - this.listBoxFontSize.Size = new System.Drawing.Size(72, 82); + this.listBoxFontSize.Size = new System.Drawing.Size(144, 129); this.listBoxFontSize.TabIndex = 6; this.toolTips.SetToolTip(this.listBoxFontSize, "Choose the font size"); this.listBoxFontSize.SelectedIndexChanged += new System.EventHandler(this.listBoxFontSize_SelectedIndexChanged); @@ -427,10 +438,10 @@ private void InitializeComponent() // contextMenu // this.contextMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { - this.menuItemClick, - this.menuItemDelete, - this.menuItemDeleteAll, - this.menuItemEdit}); + this.menuItemClick, + this.menuItemDelete, + this.menuItemDeleteAll, + this.menuItemEdit}); // // menuItemClick // @@ -459,18 +470,29 @@ private void InitializeComponent() // // labelInstructions // - this.labelInstructions.Location = new System.Drawing.Point(32, 64); + this.labelInstructions.Location = new System.Drawing.Point(64, 118); this.labelInstructions.Name = "labelInstructions"; - this.labelInstructions.Size = new System.Drawing.Size(336, 64); + this.labelInstructions.Size = new System.Drawing.Size(672, 118); this.labelInstructions.TabIndex = 13; this.labelInstructions.Text = "Fill in the details below and click the Add New Project button."; // + // checkBoxRtL + // + this.checkBoxRtL.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; + this.checkBoxRtL.Cursor = System.Windows.Forms.Cursors.Hand; + this.checkBoxRtL.Location = new System.Drawing.Point(37, 272); + this.checkBoxRtL.Name = "checkBoxRtL"; + this.checkBoxRtL.Size = new System.Drawing.Size(195, 44); + this.checkBoxRtL.TabIndex = 15; + this.checkBoxRtL.Text = "&Right-to-Left"; + this.toolTips.SetToolTip(this.checkBoxRtL, "Check this if the data is right-to-left"); + // // LoginSF // this.AcceptButton = this.buttonOK; - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.AutoScaleBaseSize = new System.Drawing.Size(10, 24); this.CancelButton = this.buttonCancel; - this.ClientSize = new System.Drawing.Size(392, 502); + this.ClientSize = new System.Drawing.Size(788, 981); this.Controls.Add(this.checkedListBoxProjects); this.Controls.Add(this.labelName); this.Controls.Add(this.textBoxNewProjectName); @@ -482,7 +504,9 @@ private void InitializeComponent() this.Name = "LoginSF"; this.Text = "Choose or Add New Fix Spelling Project"; this.groupBoxNewProject.ResumeLayout(false); + this.groupBoxNewProject.PerformLayout(); this.ResumeLayout(false); + this.PerformLayout(); } #endregion @@ -721,7 +745,9 @@ private void buttonAddNewProject_Click(object sender, System.EventArgs e) // get the delimiter for word boundaries and disallow the /"/ character m_strWordBoundaryDelimiter = this.textBoxWordBoundaryDelimiter.Text; - if( m_strWordBoundaryDelimiter.IndexOf('"') != -1 ) + m_isRightToleft = checkBoxRtL.Checked; + + if ( m_strWordBoundaryDelimiter.IndexOf('"') != -1 ) { MessageBox.Show("Can't use the double-quote character for the word boundary delimiter",SpellingFixerEC.cstrCaption); return; @@ -851,6 +877,7 @@ private void buttonAddNewProject_Click(object sender, System.EventArgs e) // add this 'displaying font' information to the converter as properties/attributes ECAttributes aECAttrs = aECs.Attributes(strEncConverterName,AttributeType.Converter); aECAttrs.Add(SpellingFixerEC.cstrAttributeFontToUse,font.Name); + aECAttrs.Add(SpellingFixerEC.cstrAttributeFontRightToLeft, m_isRightToleft); aECAttrs.Add(SpellingFixerEC.cstrAttributeFontSizeToUse, font.Size); aECAttrs.Add(SpellingFixerEC.cstrAttributeWordBoundaryDelimiter, m_strWordBoundaryDelimiter); aECAttrs.Add(SpellingFixerEC.cstrAttributeNonWordChars, m_strNonWordCharacters); @@ -948,7 +975,17 @@ internal bool LoadProject(string strProjectName) { // get the EncConverter that should have been added above by 'AddNewProject' button EncConverters aECs = new EncConverters(); - IEncConverter aEC = aECs[FullName(strProjectName)]; + var converterName = strProjectName; + if (strProjectName.StartsWith(SpellingFixerEC.cstrSFConverterPrefix)) + { + strProjectName = strProjectName.Substring(SpellingFixerEC.cstrSFConverterPrefix.Length); + } + else + { + converterName = FullName(strProjectName); + } + + IEncConverter aEC = aECs[converterName]; if( aEC != null ) { m_strEncConverterName = aEC.Name; @@ -956,6 +993,7 @@ internal bool LoadProject(string strProjectName) ECAttributes aECAttrs = aECs.Attributes(aEC.Name,AttributeType.Converter); string strFontName = aECAttrs[SpellingFixerEC.cstrAttributeFontToUse]; string sFontSize = aECAttrs[SpellingFixerEC.cstrAttributeFontSizeToUse]; + m_isRightToleft = aECAttrs.ContainsKey(SpellingFixerEC.cstrAttributeFontRightToLeft) && (aECAttrs[SpellingFixerEC.cstrAttributeFontRightToLeft] == "true"); m_strWordBoundaryDelimiter = aECAttrs[SpellingFixerEC.cstrAttributeWordBoundaryDelimiter]; m_strNonWordCharacters = aECAttrs[SpellingFixerEC.cstrAttributeNonWordChars]; @@ -992,7 +1030,7 @@ internal bool LoadProject(string strProjectName) m_cp = aECs.CodePage(strFontName); RegistryKey keyLastSFProject = Registry.CurrentUser.CreateSubKey(cstrProjectMemoryKey); - keyLastSFProject.SetValue(cstrProjectMostRecentProject,strProjectName); + keyLastSFProject.SetValue(cstrProjectMostRecentProject, strProjectName); return true; } @@ -1131,6 +1169,7 @@ private void menuItemEdit_Click(object sender, System.EventArgs e) string strFontName = aECAttrs[SpellingFixerEC.cstrAttributeFontToUse]; string sFontSize = aECAttrs[SpellingFixerEC.cstrAttributeFontSizeToUse]; + m_isRightToleft = aECAttrs.ContainsKey(SpellingFixerEC.cstrAttributeFontRightToLeft) && (aECAttrs[SpellingFixerEC.cstrAttributeFontRightToLeft] == "true"); m_strWordBoundaryDelimiter = aECAttrs[SpellingFixerEC.cstrAttributeWordBoundaryDelimiter]; m_strNonWordCharacters = aECAttrs[SpellingFixerEC.cstrAttributeNonWordChars]; @@ -1161,6 +1200,8 @@ private void DoEdit(EncConverters aECs, IEncConverter aEC, string strProjectName this.textBoxCP.Text = aECs.CodePage(strFontName).ToString(); } + checkBoxRtL.Checked = m_isRightToleft; + // update the "Add New Project" button to say "Update Project" this.groupBoxNewProject.Text = "Edit Project Settings"; this.buttonAddNewProject.Text = "Update &Project"; diff --git a/src/SpellingFixerEC/LoginSF.resx b/src/SpellingFixerEC/LoginSF.resx index 1fb7e94a..d1a32f38 100644 --- a/src/SpellingFixerEC/LoginSF.resx +++ b/src/SpellingFixerEC/LoginSF.resx @@ -3,7 +3,7 @@ <!-- Microsoft ResX Schema - Version 1.3 + Version 2.0 The primary goals of this format is to allow a simple XML format that is mostly human readable. The generation and parsing of the @@ -14,16 +14,17 @@ ... ado.net/XML headers & schema ... <resheader name="resmimetype">text/microsoft-resx</resheader> - <resheader name="version">1.3</resheader> + <resheader name="version">2.0</resheader> <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> - <data name="Name1">this is my long string</data> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> - [base64 mime encoded serialized .NET Framework object] + <value>[base64 mime encoded serialized .NET Framework object]</value> </data> <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> - [base64 mime encoded string representing a byte array form of the .NET Framework object] + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> </data> There are any number of "resheader" rows that contain simple @@ -35,7 +36,7 @@ Classes that don't support this are serialized and stored with the mimetype set. - The mimetype is used forserialized objects, and tells the + The mimetype is used for serialized objects, and tells the ResXResourceReader how to depersist the object. This is currently not extensible. For a given mimetype the value must be set accordingly: @@ -45,7 +46,7 @@ mimetype: application/x-microsoft.net.object.binary.base64 value : The object must be serialized with - : System.Serialization.Formatters.Binary.BinaryFormatter + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter : and then encoded with base64 encoding. mimetype: application/x-microsoft.net.object.soap.base64 @@ -59,18 +60,37 @@ : and then encoded with base64 encoding. --> <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> <xsd:element name="root" msdata:IsDataSet="true"> <xsd:complexType> <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> <xsd:element name="data"> <xsd:complexType> <xsd:sequence> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> </xsd:sequence> - <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" /> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> </xsd:complexType> </xsd:element> <xsd:element name="resheader"> @@ -89,267 +109,28 @@ <value>text/microsoft-resx</value> </resheader> <resheader name="version"> - <value>1.3</value> + <value>2.0</value> </resheader> <resheader name="reader"> - <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <resheader name="writer"> - <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> - <data name="checkedListBoxProjects.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>False</value> - </data> - <data name="checkedListBoxProjects.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="checkedListBoxProjects.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="buttonOK.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>False</value> - </data> - <data name="buttonOK.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="buttonOK.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="buttonCancel.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>False</value> - </data> - <data name="buttonCancel.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="buttonCancel.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="labelName.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>False</value> - </data> - <data name="labelName.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="labelName.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="textBoxNewProjectName.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="textBoxNewProjectName.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>False</value> - </data> - <data name="textBoxNewProjectName.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="checkBoxUnicode.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>False</value> - </data> - <data name="checkBoxUnicode.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="checkBoxUnicode.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="buttonAddNewProject.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>False</value> - </data> - <data name="buttonAddNewProject.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="buttonAddNewProject.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="groupBoxNewProject.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="groupBoxNewProject.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> - <value>8, 8</value> - </data> - <data name="groupBoxNewProject.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>True</value> - </data> - <data name="groupBoxNewProject.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>False</value> - </data> - <data name="groupBoxNewProject.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>True</value> - </data> - <data name="groupBoxNewProject.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="textBoxAddlPunctuation.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="textBoxAddlPunctuation.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>False</value> - </data> - <data name="textBoxAddlPunctuation.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="label2.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>False</value> - </data> - <data name="label2.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="label2.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="textBoxWordBoundaryDelimiter.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="textBoxWordBoundaryDelimiter.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="textBoxWordBoundaryDelimiter.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>False</value> - </data> - <data name="label1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>False</value> - </data> - <data name="label1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="label1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="labelFont.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>False</value> - </data> - <data name="labelFont.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="labelFont.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="comboBoxFont.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="comboBoxFont.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="comboBoxFont.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>False</value> - </data> - <data name="labelFontSize.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>False</value> - </data> - <data name="labelFontSize.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="labelFontSize.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="labelCP.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>False</value> - </data> - <data name="labelCP.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="labelCP.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="textBoxCP.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="textBoxCP.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>False</value> - </data> - <data name="textBoxCP.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="listBoxFontSize.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>False</value> - </data> - <data name="listBoxFontSize.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="listBoxFontSize.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="toolTips.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="toolTips.Location" type="System.Drawing.Point, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <metadata name="toolTips.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>17, 17</value> + </metadata> + <metadata name="toolTips.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>17, 17</value> + </metadata> + <data name="textBoxWordBoundaryDelimiter.ToolTip" xml:space="preserve"> + <value>Enter the character(s) to use as a word boundary delimiter (e.g. with a delimiter of "#", you can enter the "bad spelling" words like: #car#, which will only match if the search string is "car", but not "cars" or "sportscar")</value> </data> - <data name="toolTips.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="contextMenu.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="contextMenu.Location" type="System.Drawing.Point, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <metadata name="contextMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>107, 17</value> - </data> - <data name="contextMenu.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="menuItemClick.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="menuItemClick.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="menuItemDelete.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="menuItemDelete.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="menuItemDeleteAll.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="menuItemDeleteAll.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="menuItemEdit.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="menuItemEdit.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="labelInstructions.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>False</value> - </data> - <data name="labelInstructions.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="labelInstructions.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="$this.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>False</value> - </data> - <data name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>(Default)</value> - </data> - <data name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>False</value> - </data> - <data name="$this.Localizable" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>False</value> - </data> - <data name="$this.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> - <value>8, 8</value> - </data> - <data name="$this.Name"> - <value>LoginSF</value> - </data> - <data name="$this.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>True</value> - </data> - <data name="$this.TrayHeight" type="System.Int32, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>80</value> - </data> - <data name="$this.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>True</value> - </data> - <data name="$this.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>Private</value> - </data> - <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" mimetype="application/x-microsoft.net.object.bytearray.base64"> + </metadata> + <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> + <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <value> AAABAAIAICAQAAAAAADoAgAAJgAAABAQEAAAAAAAKAEAAA4DAAAoAAAAIAAAAEAAAAABAAQAAAAAAIAC AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/ diff --git a/src/SpellingFixerEC/QueryFindReplaceDialog.Designer.cs b/src/SpellingFixerEC/QueryFindReplaceDialog.Designer.cs new file mode 100644 index 00000000..ff645da9 --- /dev/null +++ b/src/SpellingFixerEC/QueryFindReplaceDialog.Designer.cs @@ -0,0 +1,285 @@ +namespace SpellingFixerEC +{ + partial class QueryFindReplaceDialog + { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(QueryFindReplaceDialog)); + this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel(); + this.labelFind = new System.Windows.Forms.Label(); + this.textBoxFindWord = new SilEncConverters40.EcTextBox(); + this.labelReplace = new System.Windows.Forms.Label(); + this.textBoxReplaceWord = new SilEncConverters40.EcTextBox(); + this.groupBoxWordBoundaries = new System.Windows.Forms.GroupBox(); + this.checkBoxWordFinal = new System.Windows.Forms.CheckBox(); + this.checkBoxWordInitial = new System.Windows.Forms.CheckBox(); + this.labelUnicodeCodes = new System.Windows.Forms.Label(); + this.labelAddedFromOriginalWord = new System.Windows.Forms.Label(); + this.textBoxOriginalWord = new System.Windows.Forms.TextBox(); + this.buttonDelete = new System.Windows.Forms.Button(); + this.buttonOk = new System.Windows.Forms.Button(); + this.buttonCancel = new System.Windows.Forms.Button(); + this.textBoxWordBoundaryFindText = new System.Windows.Forms.TextBox(); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + this.tableLayoutPanel.SuspendLayout(); + this.groupBoxWordBoundaries.SuspendLayout(); + this.SuspendLayout(); + // + // tableLayoutPanel + // + this.tableLayoutPanel.ColumnCount = 5; + this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel.Controls.Add(this.labelFind, 0, 0); + this.tableLayoutPanel.Controls.Add(this.textBoxFindWord, 1, 0); + this.tableLayoutPanel.Controls.Add(this.labelReplace, 0, 1); + this.tableLayoutPanel.Controls.Add(this.textBoxReplaceWord, 1, 1); + this.tableLayoutPanel.Controls.Add(this.groupBoxWordBoundaries, 0, 2); + this.tableLayoutPanel.Controls.Add(this.labelUnicodeCodes, 0, 3); + this.tableLayoutPanel.Controls.Add(this.labelAddedFromOriginalWord, 0, 4); + this.tableLayoutPanel.Controls.Add(this.textBoxOriginalWord, 2, 4); + this.tableLayoutPanel.Controls.Add(this.buttonDelete, 0, 5); + this.tableLayoutPanel.Controls.Add(this.buttonOk, 3, 5); + this.tableLayoutPanel.Controls.Add(this.buttonCancel, 4, 5); + this.tableLayoutPanel.Controls.Add(this.textBoxWordBoundaryFindText, 2, 2); + this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel.Name = "tableLayoutPanel"; + this.tableLayoutPanel.Padding = new System.Windows.Forms.Padding(25); + this.tableLayoutPanel.RowCount = 6; + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel.Size = new System.Drawing.Size(993, 598); + this.tableLayoutPanel.TabIndex = 0; + // + // labelFind + // + this.labelFind.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.labelFind.AutoSize = true; + this.labelFind.Location = new System.Drawing.Point(94, 31); + this.labelFind.Name = "labelFind"; + this.labelFind.Size = new System.Drawing.Size(60, 25); + this.labelFind.TabIndex = 0; + this.labelFind.Text = "Find:"; + // + // textBoxFindWord + // + this.tableLayoutPanel.SetColumnSpan(this.textBoxFindWord, 4); + this.textBoxFindWord.Dock = System.Windows.Forms.DockStyle.Fill; + this.textBoxFindWord.Location = new System.Drawing.Point(160, 28); + this.textBoxFindWord.Name = "textBoxFindWord"; + this.textBoxFindWord.Size = new System.Drawing.Size(805, 31); + this.textBoxFindWord.TabIndex = 3; + this.toolTip.SetToolTip(this.textBoxFindWord, "The word (or part of a word) to replace"); + this.textBoxFindWord.TextChanged += new System.EventHandler(this.textBoxFindWord_TextChanged); + this.textBoxFindWord.Enter += new System.EventHandler(this.textBoxFindWord_Enter); + // + // labelReplace + // + this.labelReplace.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.labelReplace.AutoSize = true; + this.labelReplace.Location = new System.Drawing.Point(57, 68); + this.labelReplace.Name = "labelReplace"; + this.labelReplace.Size = new System.Drawing.Size(97, 25); + this.labelReplace.TabIndex = 1; + this.labelReplace.Text = "Replace:"; + // + // textBoxReplaceWord + // + this.tableLayoutPanel.SetColumnSpan(this.textBoxReplaceWord, 4); + this.textBoxReplaceWord.Dock = System.Windows.Forms.DockStyle.Fill; + this.textBoxReplaceWord.Location = new System.Drawing.Point(160, 65); + this.textBoxReplaceWord.Name = "textBoxReplaceWord"; + this.textBoxReplaceWord.Size = new System.Drawing.Size(805, 31); + this.textBoxReplaceWord.TabIndex = 4; + this.toolTip.SetToolTip(this.textBoxReplaceWord, "The replacement word"); + this.textBoxReplaceWord.TextChanged += new System.EventHandler(this.textBoxReplaceWord_TextChanged); + this.textBoxReplaceWord.Enter += new System.EventHandler(this.textBoxReplaceWord_Enter); + // + // groupBoxWordBoundaries + // + this.tableLayoutPanel.SetColumnSpan(this.groupBoxWordBoundaries, 2); + this.groupBoxWordBoundaries.Controls.Add(this.checkBoxWordFinal); + this.groupBoxWordBoundaries.Controls.Add(this.checkBoxWordInitial); + this.groupBoxWordBoundaries.Location = new System.Drawing.Point(28, 102); + this.groupBoxWordBoundaries.Name = "groupBoxWordBoundaries"; + this.groupBoxWordBoundaries.Padding = new System.Windows.Forms.Padding(10); + this.groupBoxWordBoundaries.Size = new System.Drawing.Size(301, 101); + this.groupBoxWordBoundaries.TabIndex = 10; + this.groupBoxWordBoundaries.TabStop = false; + this.groupBoxWordBoundaries.Text = "Word Boundaries"; + // + // checkBoxWordFinal + // + this.checkBoxWordFinal.AutoSize = true; + this.checkBoxWordFinal.Location = new System.Drawing.Point(187, 37); + this.checkBoxWordFinal.Name = "checkBoxWordFinal"; + this.checkBoxWordFinal.Size = new System.Drawing.Size(82, 29); + this.checkBoxWordFinal.TabIndex = 1; + this.checkBoxWordFinal.Text = "End"; + this.checkBoxWordFinal.UseVisualStyleBackColor = true; + this.checkBoxWordFinal.CheckedChanged += new System.EventHandler(this.checkBoxWordBoundary_CheckedChanged); + // + // checkBoxWordInitial + // + this.checkBoxWordInitial.AutoSize = true; + this.checkBoxWordInitial.Location = new System.Drawing.Point(28, 37); + this.checkBoxWordInitial.Name = "checkBoxWordInitial"; + this.checkBoxWordInitial.Size = new System.Drawing.Size(140, 29); + this.checkBoxWordInitial.TabIndex = 0; + this.checkBoxWordInitial.Text = "Beginning"; + this.toolTip.SetToolTip(this.checkBoxWordInitial, "Click to force the find to use use an initial "); + this.checkBoxWordInitial.UseVisualStyleBackColor = true; + this.checkBoxWordInitial.CheckedChanged += new System.EventHandler(this.checkBoxWordBoundary_CheckedChanged); + // + // labelUnicodeCodes + // + this.labelUnicodeCodes.AutoSize = true; + this.labelUnicodeCodes.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.tableLayoutPanel.SetColumnSpan(this.labelUnicodeCodes, 5); + this.labelUnicodeCodes.Dock = System.Windows.Forms.DockStyle.Fill; + this.labelUnicodeCodes.Location = new System.Drawing.Point(28, 206); + this.labelUnicodeCodes.Name = "labelUnicodeCodes"; + this.labelUnicodeCodes.Padding = new System.Windows.Forms.Padding(10); + this.labelUnicodeCodes.Size = new System.Drawing.Size(937, 278); + this.labelUnicodeCodes.TabIndex = 5; + this.labelUnicodeCodes.Text = "labelUnicodeCodes"; + this.toolTip.SetToolTip(this.labelUnicodeCodes, "This area shows the Unicode code point values for the characters in the box above" + + " which has focus. You can use this to see hidden characters (e.g. zero width joi" + + "ner)."); + // + // labelAddedFromOriginalWord + // + this.labelAddedFromOriginalWord.AutoSize = true; + this.tableLayoutPanel.SetColumnSpan(this.labelAddedFromOriginalWord, 2); + this.labelAddedFromOriginalWord.Location = new System.Drawing.Point(28, 484); + this.labelAddedFromOriginalWord.Name = "labelAddedFromOriginalWord"; + this.labelAddedFromOriginalWord.Size = new System.Drawing.Size(275, 25); + this.labelAddedFromOriginalWord.TabIndex = 6; + this.labelAddedFromOriginalWord.Text = "Added while Clipboard had:"; + this.toolTip.SetToolTip(this.labelAddedFromOriginalWord, "This word was on the clipboard when the dialog opened."); + this.labelAddedFromOriginalWord.Visible = false; + // + // textBoxOriginalWord + // + this.tableLayoutPanel.SetColumnSpan(this.textBoxOriginalWord, 3); + this.textBoxOriginalWord.Dock = System.Windows.Forms.DockStyle.Fill; + this.textBoxOriginalWord.Location = new System.Drawing.Point(335, 487); + this.textBoxOriginalWord.Name = "textBoxOriginalWord"; + this.textBoxOriginalWord.ReadOnly = true; + this.textBoxOriginalWord.Size = new System.Drawing.Size(630, 31); + this.textBoxOriginalWord.TabIndex = 7; + this.toolTip.SetToolTip(this.textBoxOriginalWord, "Word originally on the Clipboard when this dialog opened."); + this.textBoxOriginalWord.Visible = false; + // + // buttonDelete + // + this.buttonDelete.DialogResult = System.Windows.Forms.DialogResult.Abort; + this.buttonDelete.Location = new System.Drawing.Point(28, 524); + this.buttonDelete.Name = "buttonDelete"; + this.buttonDelete.Size = new System.Drawing.Size(126, 46); + this.buttonDelete.TabIndex = 2; + this.buttonDelete.Text = "Delete"; + this.buttonDelete.UseVisualStyleBackColor = true; + this.buttonDelete.Click += new System.EventHandler(this.buttonDelete_Click); + // + // buttonOk + // + this.buttonOk.DialogResult = System.Windows.Forms.DialogResult.OK; + this.buttonOk.Location = new System.Drawing.Point(713, 524); + this.buttonOk.Name = "buttonOk"; + this.buttonOk.Size = new System.Drawing.Size(123, 46); + this.buttonOk.TabIndex = 8; + this.buttonOk.Text = "OK"; + this.buttonOk.UseVisualStyleBackColor = true; + // + // buttonCancel + // + this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonCancel.Location = new System.Drawing.Point(842, 524); + this.buttonCancel.Name = "buttonCancel"; + this.buttonCancel.Size = new System.Drawing.Size(123, 46); + this.buttonCancel.TabIndex = 8; + this.buttonCancel.Text = "Cancel"; + this.buttonCancel.UseVisualStyleBackColor = true; + // + // textBoxWordBoundaryFindText + // + this.textBoxWordBoundaryFindText.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.tableLayoutPanel.SetColumnSpan(this.textBoxWordBoundaryFindText, 3); + this.textBoxWordBoundaryFindText.Location = new System.Drawing.Point(335, 137); + this.textBoxWordBoundaryFindText.Name = "textBoxWordBoundaryFindText"; + this.textBoxWordBoundaryFindText.ReadOnly = true; + this.textBoxWordBoundaryFindText.Size = new System.Drawing.Size(630, 31); + this.textBoxWordBoundaryFindText.TabIndex = 2; + // + // QueryFindReplaceDialog + // + this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 25F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(993, 598); + this.Controls.Add(this.tableLayoutPanel); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "QueryFindReplaceDialog"; + this.Text = "Find & Replace (CC)"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.QueryFindReplaceDialog_FormClosing); + this.tableLayoutPanel.ResumeLayout(false); + this.tableLayoutPanel.PerformLayout(); + this.groupBoxWordBoundaries.ResumeLayout(false); + this.groupBoxWordBoundaries.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel; + private System.Windows.Forms.Label labelFind; + private System.Windows.Forms.Label labelReplace; + private System.Windows.Forms.Button buttonDelete; + private SilEncConverters40.EcTextBox textBoxFindWord; + private System.Windows.Forms.ToolTip toolTip; + private SilEncConverters40.EcTextBox textBoxReplaceWord; + private System.Windows.Forms.Label labelUnicodeCodes; + private System.Windows.Forms.Label labelAddedFromOriginalWord; + private System.Windows.Forms.TextBox textBoxOriginalWord; + private System.Windows.Forms.Button buttonOk; + private System.Windows.Forms.Button buttonCancel; + private System.Windows.Forms.CheckBox checkBoxWordInitial; + private System.Windows.Forms.CheckBox checkBoxWordFinal; + private System.Windows.Forms.GroupBox groupBoxWordBoundaries; + private System.Windows.Forms.TextBox textBoxWordBoundaryFindText; + } +} \ No newline at end of file diff --git a/src/SpellingFixerEC/QueryFindReplaceDialog.cs b/src/SpellingFixerEC/QueryFindReplaceDialog.cs new file mode 100644 index 00000000..e199da1c --- /dev/null +++ b/src/SpellingFixerEC/QueryFindReplaceDialog.cs @@ -0,0 +1,190 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace SpellingFixerEC +{ + public partial class QueryFindReplaceDialog : Form + { + private string _findWhat; + public string FindWhat + { + get + { + return $"{BoundaryInitial}{_findWhat}{BoundaryFinal}"; + } + set + { + _findWhat = value; + } + } + public string ReplaceWith { get; set; } + public string BoundaryCharacter { get; set; } + + private String BoundaryInitial + { + get + { + return (_isBoundaryInitial) ? BoundaryCharacter : String.Empty; + } + } + + private String BoundaryFinal + { + get + { + return (_isBoundaryFinal) ? BoundaryCharacter : String.Empty; + } + } + + public QueryFindReplaceDialog(Font font) + { + InitializeComponent(); + + textBoxFindWord.Font = font = + textBoxOriginalWord.Font = + textBoxWordBoundaryFindText.Font = + textBoxReplaceWord.Font = font; + } + + public DialogResult ShowDialog(string findWhat, string replaceWith, string originalWord, + bool isRightToLeft, string boundaryCharacter, bool isShowDelete) + { + if (findWhat?.StartsWith(boundaryCharacter) ?? false) + { + _isBoundaryInitial = checkBoxWordInitial.Checked = true; + findWhat = findWhat.Substring(1); + } + + if (findWhat?.EndsWith(boundaryCharacter) ?? false) + { + _isBoundaryFinal = checkBoxWordFinal.Checked = true; + findWhat = findWhat.Substring(0, findWhat.Length - 1); + } + + if (originalWord?.StartsWith(boundaryCharacter) ?? false) + { + originalWord = originalWord.Substring(1); + } + + if (originalWord?.EndsWith(boundaryCharacter) ?? false) + { + originalWord = originalWord.Substring(0, originalWord.Length - 1); + } + + FindWhat = textBoxFindWord.Text = findWhat; + textBoxReplaceWord.Text = replaceWith; + textBoxOriginalWord.Text = originalWord; + BoundaryCharacter = boundaryCharacter; + + if (isRightToLeft) + { + textBoxFindWord.RightToLeft = RightToLeft.Yes; + textBoxReplaceWord.RightToLeft = RightToLeft.Yes; + textBoxOriginalWord.RightToLeft = RightToLeft.Yes; + textBoxWordBoundaryFindText.RightToLeft = RightToLeft.Yes; + } + + buttonDelete.Visible = isShowDelete; + + if (findWhat != replaceWith) + { + this.Text = "Existing Replacement Rule"; + if (!String.IsNullOrEmpty(originalWord)) + { + labelAddedFromOriginalWord.Visible = + textBoxOriginalWord.Visible = true; + this.textBoxOriginalWord.Text = originalWord; + } + } + + UpdateFindWhatDisplay(); + var res = base.ShowDialog(); + return res; + } + + private void UpdateUniCodes(string strInputString) + { + int nLenString = strInputString.Length; + + string strWhole = null, strPiece = null, strUPiece = null; + foreach (char ch in strInputString) + { + if (ch == 0) // sometimes it's null (esp. for utf32) + strPiece = "nul (u0000) "; + else + { + strUPiece = String.Format("{0:X}", (int)ch); + + // left pad with 0's (there may be a better way to do this, but + // I don't know what it is) + while (strUPiece.Length < 4) strUPiece = "0" + strUPiece; + + strPiece = String.Format("{0:#} (u{1,4}) ", ch, strUPiece); + } + strWhole += strPiece; + } + + labelUnicodeCodes.Text = strWhole; + } + + private void checkBoxWordBoundary_CheckedChanged(object sender, EventArgs e) + { + UpdateFindWhatDisplay(); + } + + private void textBoxFindWord_TextChanged(object sender, EventArgs e) + { + FindWhat = textBoxFindWord.Text; + UpdateFindWhatDisplay(); + UpdateUniCodes(textBoxFindWord.Text); + } + + private void textBoxReplaceWord_TextChanged(object sender, EventArgs e) + { + UpdateUniCodes(textBoxReplaceWord.Text); + ReplaceWith = textBoxReplaceWord.Text; + } + + private void textBoxFindWord_Enter(object sender, EventArgs e) + { + UpdateUniCodes(textBoxFindWord.Text); + } + + private void textBoxReplaceWord_Enter(object sender, EventArgs e) + { + UpdateUniCodes(textBoxReplaceWord.Text); + } + + private bool _isBoundaryInitial { get; set; } + private bool _isBoundaryFinal { get; set; } + + private void UpdateFindWhatDisplay() + { + _isBoundaryInitial = checkBoxWordInitial.Checked; + _isBoundaryFinal = checkBoxWordFinal.Checked; + + textBoxWordBoundaryFindText.Text = FindWhat; + } + + private void QueryFindReplaceDialog_FormClosing(object sender, FormClosingEventArgs e) + { + if (String.IsNullOrEmpty(FindWhat) && (DialogResult == DialogResult.OK)) + { + MessageBox.Show("You can't have an empty value for the \"Find What\" text. Click Cancel if you didn't mean to add a rule.", SpellingFixerEC.cstrCaption); + e.Cancel = true; + } + } + + private void buttonDelete_Click(object sender, EventArgs e) + { + Close(); // button has DialogResult.Abort associated w/ it, which triggers the caller to delete + } + } +} diff --git a/src/SpellingFixerEC/QueryGoodSpelling.resx b/src/SpellingFixerEC/QueryFindReplaceDialog.resx similarity index 92% rename from src/SpellingFixerEC/QueryGoodSpelling.resx rename to src/SpellingFixerEC/QueryFindReplaceDialog.resx index 42f91293..dc496dc4 100644 --- a/src/SpellingFixerEC/QueryGoodSpelling.resx +++ b/src/SpellingFixerEC/QueryFindReplaceDialog.resx @@ -1,149 +1,146 @@ -<?xml version="1.0" encoding="utf-8"?> -<root> - <!-- - Microsoft ResX Schema - - Version 2.0 - - The primary goals of this format is to allow a simple XML format - that is mostly human readable. The generation and parsing of the - various data types are done through the TypeConverter classes - associated with the data types. - - Example: - - ... ado.net/XML headers & schema ... - <resheader name="resmimetype">text/microsoft-resx</resheader> - <resheader name="version">2.0</resheader> - <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> - <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> - <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> - <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> - <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> - <value>[base64 mime encoded serialized .NET Framework object]</value> - </data> - <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> - <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> - <comment>This is a comment</comment> - </data> - - There are any number of "resheader" rows that contain simple - name/value pairs. - - Each data row contains a name, and value. The row also contains a - type or mimetype. Type corresponds to a .NET class that support - text/value conversion through the TypeConverter architecture. - Classes that don't support this are serialized and stored with the - mimetype set. - - The mimetype is used for serialized objects, and tells the - ResXResourceReader how to depersist the object. This is currently not - extensible. For a given mimetype the value must be set accordingly: - - Note - application/x-microsoft.net.object.binary.base64 is the format - that the ResXResourceWriter will generate, however the reader can - read any of the formats listed below. - - mimetype: application/x-microsoft.net.object.binary.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.soap.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Soap.SoapFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.bytearray.base64 - value : The object must be serialized into a byte array - : using a System.ComponentModel.TypeConverter - : and then encoded with base64 encoding. - --> - <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> - <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> - <xsd:element name="root" msdata:IsDataSet="true"> - <xsd:complexType> - <xsd:choice maxOccurs="unbounded"> - <xsd:element name="metadata"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" /> - </xsd:sequence> - <xsd:attribute name="name" use="required" type="xsd:string" /> - <xsd:attribute name="type" type="xsd:string" /> - <xsd:attribute name="mimetype" type="xsd:string" /> - <xsd:attribute ref="xml:space" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="assembly"> - <xsd:complexType> - <xsd:attribute name="alias" type="xsd:string" /> - <xsd:attribute name="name" type="xsd:string" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="data"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> - <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> - </xsd:sequence> - <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> - <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> - <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> - <xsd:attribute ref="xml:space" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="resheader"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> - </xsd:sequence> - <xsd:attribute name="name" type="xsd:string" use="required" /> - </xsd:complexType> - </xsd:element> - </xsd:choice> - </xsd:complexType> - </xsd:element> - </xsd:schema> - <resheader name="resmimetype"> - <value>text/microsoft-resx</value> - </resheader> - <resheader name="version"> - <value>2.0</value> - </resheader> - <resheader name="reader"> - <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </resheader> - <resheader name="writer"> - <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </resheader> - <metadata name="helpProvider.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> - <value>17, 17</value> - </metadata> - <metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> - <value>130, 17</value> - </metadata> - <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> - <value> - AAABAAIAICAQAAAAAADoAgAAJgAAABAQEAAAAAAAKAEAAA4DAAAoAAAAIAAAAEAAAAABAAQAAAAAAIAC - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/ - AAAA//8A/wAAAP8A/wD//wAA////AHd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 - d3f3d3d3d3d3d3d3d3d3d3d//3d3d3d3d3d3d3d3d3d3d//3d3d3d3d3d3d3d3d3d3d//3d3d3d3d3d3 - d3d3d//////3d3d3d3d3d3d3d3f//////3d3d3d3d3d3d3d3//////d3d3d3d3d3d3d3d3d3f/93d3d3 - d3d3d3d3d3d3d//3d3d3d3d3d3d3d3d3d3//d3d3d3d3d3d3d3d3d3d393d3d3d3d3d3d3d3d3d3d3d3 - d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7u7d3e7u7u3d3u7u7t3e7u7u3d3u7u7t3d7u7u7d3u7d3d3d3d3 - d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3f3d3d3d3d3d3d3d3d3d3d//3d3d3d3d3d3d3 - d3d3d3//d3d3d3d3d3d3d3d3d3f/93d3d3d3d3d3d3d3d3d//////3d3d3d3d3d3d3d3//////93d3d3 - d3d3d3d3d3//////d3d3d3d3d3d3d3d3//d3d3d3d3d3d3d3d3d3d3//d3d3d3d3d3d3d3d3d3d3//d3 - d3d3d3d3d3d3d3d3d393d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAoAAAAEAAAACAAAAABAAQAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAA - AACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AHd3d3d3d3d3d3d3d/d3 - d3d3d3d3f3d3d3d3d///93d3d3d3d393d3d3d3d393d3d3d3d3d3d3d3u7t3u7t3u7u7u3e7u3e7u3d3 - d3d3d3d3d3d3f3d3d3d3d3f3d3d3d3d3f///d3d3d3d393d3d3d3d3d/d3d3d3d3d3d3d3d3AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== -</value> - </data> +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>17, 17</value> + </metadata> + <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> + <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAABAAIAICAQAAAAAADoAgAAJgAAABAQEAAAAAAAKAEAAA4DAAAoAAAAIAAAAEAAAAABAAQAAAAAAIAC + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/ + AAAA//8A/wAAAP8A/wD//wAA////AHd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 + d3f3d3d3d3d3d3d3d3d3d3d//3d3d3d3d3d3d3d3d3d3d//3d3d3d3d3d3d3d3d3d3d//3d3d3d3d3d3 + d3d3d//////3d3d3d3d3d3d3d3f//////3d3d3d3d3d3d3d3//////d3d3d3d3d3d3d3d3d3f/93d3d3 + d3d3d3d3d3d3d//3d3d3d3d3d3d3d3d3d3//d3d3d3d3d3d3d3d3d3d393d3d3d3d3d3d3d3d3d3d3d3 + d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7u7d3e7u7u3d3u7u7t3e7u7u3d3u7u7t3d7u7u7d3u7d3d3d3d3 + d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3f3d3d3d3d3d3d3d3d3d3d//3d3d3d3d3d3d3 + d3d3d3//d3d3d3d3d3d3d3d3d3f/93d3d3d3d3d3d3d3d3d//////3d3d3d3d3d3d3d3//////93d3d3 + d3d3d3d3d3//////d3d3d3d3d3d3d3d3//d3d3d3d3d3d3d3d3d3d3//d3d3d3d3d3d3d3d3d3d3//d3 + d3d3d3d3d3d3d3d3d393d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAoAAAAEAAAACAAAAABAAQAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAA + AACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AHd3d3d3d3d3d3d3d/d3 + d3d3d3d3f3d3d3d3d///93d3d3d3d393d3d3d3d393d3d3d3d3d3d3d3u7t3u7t3u7u7u3e7u3e7u3d3 + d3d3d3d3d3d3f3d3d3d3d3f3d3d3d3d3f///d3d3d3d393d3d3d3d3d/d3d3d3d3d3d3d3d3AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +</value> + </data> </root> \ No newline at end of file diff --git a/src/SpellingFixerEC/QueryGoodSpelling.cs b/src/SpellingFixerEC/QueryGoodSpelling.cs deleted file mode 100644 index bcfa84ef..00000000 --- a/src/SpellingFixerEC/QueryGoodSpelling.cs +++ /dev/null @@ -1,367 +0,0 @@ -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Runtime.InteropServices; // for ComVisible -using SilEncConverters40; - -namespace SpellingFixerEC -{ - /// <summary> - /// Summary description for QueryGoodSpelling. - /// </summary> - internal class QueryGoodSpelling : System.Windows.Forms.Form - { - private IContainer components; - private System.Windows.Forms.Label label1 = null; - private EcTextBox textBoxBadWord = null; - private System.Windows.Forms.Label label2 = null; - private EcTextBox textBoxReplacement = null; - private System.Windows.Forms.Button buttonOK = null; - private System.Windows.Forms.Button buttonCancel = null; - private string m_strGoodWord; - private System.Windows.Forms.Label labelUniCodes; - private System.Windows.Forms.Button buttonDelete; - private System.Windows.Forms.TextBox labelOriginalReason; - private System.Windows.Forms.Label labelOrigReasonLabel; - private TableLayoutPanel tableLayoutPanel; - private HelpProvider helpProvider; - private ToolTip toolTip; - private string m_strBadWord; // in case we change it - - public QueryGoodSpelling(Font font) - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - - textBoxBadWord.Font = font; - textBoxReplacement.Font = font; - labelOriginalReason.Font = font; - - helpProvider.SetHelpString(this.textBoxBadWord, Properties.Resources.textBoxBadWordHelp); - helpProvider.SetHelpString(this.textBoxReplacement, Properties.Resources.textBoxReplacementHelp); - } - - public DialogResult ShowDialog(string strBadWord, string strReplacement, string strOriginalWord, bool bShowDelete) - { - textBoxBadWord.Text = strBadWord; - textBoxReplacement.Text = strReplacement; - - textBoxReplacement.Focus(); - textBoxReplacement.SelectAll(); - - this.buttonDelete.Visible = bShowDelete; - - if (strBadWord != strReplacement) - { - this.Text = "Existing Replacement Rule"; - if (!String.IsNullOrEmpty(strOriginalWord)) - { - this.labelOrigReasonLabel.Visible = true; - this.labelOriginalReason.Visible = true; - this.labelOriginalReason.Text = strOriginalWord; - } - } - - return base.ShowDialog(); - } - - public string GoodSpelling - { - get { return m_strGoodWord; } - } - - public string BadSpelling - { - get { return m_strBadWord; } - } - - /// <summary> - /// Clean up any resources being used. - /// </summary> - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// <summary> - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// </summary> - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(QueryGoodSpelling)); - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.buttonOK = new System.Windows.Forms.Button(); - this.buttonCancel = new System.Windows.Forms.Button(); - this.labelUniCodes = new System.Windows.Forms.Label(); - this.buttonDelete = new System.Windows.Forms.Button(); - this.labelOriginalReason = new System.Windows.Forms.TextBox(); - this.labelOrigReasonLabel = new System.Windows.Forms.Label(); - this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel(); - this.textBoxBadWord = new EcTextBox(); - this.textBoxReplacement = new EcTextBox(); - this.helpProvider = new System.Windows.Forms.HelpProvider(); - this.toolTip = new System.Windows.Forms.ToolTip(this.components); - this.tableLayoutPanel.SuspendLayout(); - this.SuspendLayout(); - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.Right; - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(28, 6); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(69, 13); - this.label1.TabIndex = 0; - this.label1.Text = "Bad Spelling:"; - // - // label2 - // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.Right; - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(24, 32); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(73, 13); - this.label2.TabIndex = 2; - this.label2.Text = "Replacement:"; - // - // buttonOK - // - this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK; - this.buttonOK.Location = new System.Drawing.Point(237, 244); - this.buttonOK.Name = "buttonOK"; - this.buttonOK.Size = new System.Drawing.Size(61, 23); - this.buttonOK.TabIndex = 3; - this.buttonOK.Text = "OK"; - this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click); - // - // buttonCancel - // - this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.buttonCancel.Location = new System.Drawing.Point(304, 244); - this.buttonCancel.Name = "buttonCancel"; - this.buttonCancel.Size = new System.Drawing.Size(61, 23); - this.buttonCancel.TabIndex = 4; - this.buttonCancel.Text = "Cancel"; - this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click); - // - // labelUniCodes - // - this.labelUniCodes.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - this.tableLayoutPanel.SetColumnSpan(this.labelUniCodes, 4); - this.labelUniCodes.Dock = System.Windows.Forms.DockStyle.Fill; - this.helpProvider.SetHelpString(this.labelUniCodes, "This area shows the Unicode code point values for the characters in the box above" + - " which has focus. You can use this to see hidden characters (e.g. zero width joi" + - "ner)."); - this.labelUniCodes.Location = new System.Drawing.Point(3, 55); - this.labelUniCodes.Margin = new System.Windows.Forms.Padding(3); - this.labelUniCodes.Name = "labelUniCodes"; - this.labelUniCodes.Padding = new System.Windows.Forms.Padding(3); - this.helpProvider.SetShowHelp(this.labelUniCodes, true); - this.labelUniCodes.Size = new System.Drawing.Size(362, 157); - this.labelUniCodes.TabIndex = 5; - this.labelUniCodes.Text = "labelUniCodes"; - // - // buttonDelete - // - this.buttonDelete.DialogResult = System.Windows.Forms.DialogResult.Abort; - this.buttonDelete.Location = new System.Drawing.Point(3, 244); - this.buttonDelete.Name = "buttonDelete"; - this.buttonDelete.Size = new System.Drawing.Size(67, 23); - this.buttonDelete.TabIndex = 6; - this.buttonDelete.Text = "Delete"; - this.buttonDelete.Visible = false; - this.buttonDelete.Click += new System.EventHandler(this.buttonDelete_Click); - // - // labelOriginalReason - // - this.tableLayoutPanel.SetColumnSpan(this.labelOriginalReason, 3); - this.labelOriginalReason.Dock = System.Windows.Forms.DockStyle.Fill; - this.labelOriginalReason.Location = new System.Drawing.Point(103, 218); - this.labelOriginalReason.Name = "labelOriginalReason"; - this.labelOriginalReason.ReadOnly = true; - this.labelOriginalReason.Size = new System.Drawing.Size(262, 20); - this.labelOriginalReason.TabIndex = 7; - this.labelOriginalReason.Visible = false; - // - // labelOrigReasonLabel - // - this.labelOrigReasonLabel.Anchor = System.Windows.Forms.AnchorStyles.Right; - this.labelOrigReasonLabel.AutoSize = true; - this.labelOrigReasonLabel.Location = new System.Drawing.Point(3, 221); - this.labelOrigReasonLabel.Name = "labelOrigReasonLabel"; - this.labelOrigReasonLabel.Size = new System.Drawing.Size(94, 13); - this.labelOrigReasonLabel.TabIndex = 8; - this.labelOrigReasonLabel.Text = "added while fixing:"; - this.labelOrigReasonLabel.Visible = false; - // - // tableLayoutPanel - // - this.tableLayoutPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tableLayoutPanel.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.tableLayoutPanel.ColumnCount = 4; - this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); - this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); - this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); - this.tableLayoutPanel.Controls.Add(this.labelOriginalReason, 1, 3); - this.tableLayoutPanel.Controls.Add(this.textBoxBadWord, 1, 0); - this.tableLayoutPanel.Controls.Add(this.label2, 0, 1); - this.tableLayoutPanel.Controls.Add(this.labelUniCodes, 0, 2); - this.tableLayoutPanel.Controls.Add(this.buttonDelete, 0, 4); - this.tableLayoutPanel.Controls.Add(this.textBoxReplacement, 1, 1); - this.tableLayoutPanel.Controls.Add(this.buttonOK, 2, 4); - this.tableLayoutPanel.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel.Controls.Add(this.labelOrigReasonLabel, 0, 3); - this.tableLayoutPanel.Controls.Add(this.buttonCancel, 3, 4); - this.tableLayoutPanel.Location = new System.Drawing.Point(12, 12); - this.tableLayoutPanel.Name = "tableLayoutPanel"; - this.tableLayoutPanel.RowCount = 5; - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel.Size = new System.Drawing.Size(368, 270); - this.tableLayoutPanel.TabIndex = 9; - // - // textBoxBadWord - // - this.tableLayoutPanel.SetColumnSpan(this.textBoxBadWord, 3); - this.textBoxBadWord.Dock = System.Windows.Forms.DockStyle.Fill; - this.helpProvider.SetHelpString(this.textBoxBadWord, ""); - this.textBoxBadWord.Location = new System.Drawing.Point(103, 3); - this.textBoxBadWord.Name = "textBoxBadWord"; - this.helpProvider.SetShowHelp(this.textBoxBadWord, true); - this.textBoxBadWord.Size = new System.Drawing.Size(262, 20); - this.textBoxBadWord.TabIndex = 1; - this.textBoxBadWord.Text = "textBoxBadWord"; - this.toolTip.SetToolTip(this.textBoxBadWord, "Contains the bad spelling form"); - this.textBoxBadWord.GotFocus += new System.EventHandler(this.textBoxBadWord_GotFocus); - this.textBoxBadWord.TextChanged += new System.EventHandler(this.textBoxBadWord_TextChanged); - // - // textBoxReplacement - // - this.tableLayoutPanel.SetColumnSpan(this.textBoxReplacement, 3); - this.textBoxReplacement.Dock = System.Windows.Forms.DockStyle.Fill; - this.helpProvider.SetHelpString(this.textBoxReplacement, ""); - this.textBoxReplacement.Location = new System.Drawing.Point(103, 29); - this.textBoxReplacement.Name = "textBoxReplacement"; - this.helpProvider.SetShowHelp(this.textBoxReplacement, true); - this.textBoxReplacement.Size = new System.Drawing.Size(262, 20); - this.textBoxReplacement.TabIndex = 1; - this.textBoxReplacement.Text = "textBoxReplacement"; - this.toolTip.SetToolTip(this.textBoxReplacement, "Contains the good spelling form (i.e. the replacment for when the bad spelling fo" + - "rm occurs)"); - this.textBoxReplacement.GotFocus += new System.EventHandler(this.textBoxReplacement_GotFocus); - this.textBoxReplacement.TextChanged += new System.EventHandler(this.textBoxReplacement_TextChanged); - // - // QueryGoodSpelling - // - this.AcceptButton = this.buttonOK; - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.ClientSize = new System.Drawing.Size(392, 294); - this.Controls.Add(this.tableLayoutPanel); - this.HelpButton = true; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "QueryGoodSpelling"; - this.Text = "Fix Spelling"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.QueryGoodSpelling_FormClosing); - this.tableLayoutPanel.ResumeLayout(false); - this.tableLayoutPanel.PerformLayout(); - this.ResumeLayout(false); - - } - #endregion - - private void buttonOK_Click(object sender, System.EventArgs e) - { - m_strGoodWord = this.textBoxReplacement.Text; - m_strBadWord = this.textBoxBadWord.Text; - this.Close(); - } - - private void QueryGoodSpelling_FormClosing(object sender, FormClosingEventArgs e) - { - if (String.IsNullOrEmpty(m_strBadWord) && (DialogResult == DialogResult.OK)) - { - MessageBox.Show("You can't have an empty Bad Spelling form. Click Cancel if you didn't mean to add a rule.", SpellingFixerEC.cstrCaption); - e.Cancel = true; - } - } - - private void buttonCancel_Click(object sender, System.EventArgs e) - { - // this.DialogResult = DialogResult.Cancel; - this.Close(); - } - - private void textBoxBadWord_GotFocus(object sender, EventArgs e) - { - UpdateUniCodes(this.textBoxBadWord.Text); - } - - private void textBoxReplacement_GotFocus(object sender, EventArgs e) - { - UpdateUniCodes(this.textBoxReplacement.Text); - } - - private void UpdateUniCodes(string strInputString) - { - int nLenString = strInputString.Length; - - string strWhole = null, strPiece = null, strUPiece = null; - foreach(char ch in strInputString) - { - if( ch == 0 ) // sometimes it's null (esp. for utf32) - strPiece = "nul (u0000) "; - else - { - strUPiece = String.Format("{0:X}", (int)ch); - - // left pad with 0's (there may be a better way to do this, but - // I don't know what it is) - while(strUPiece.Length < 4) strUPiece = "0" + strUPiece; - - strPiece = String.Format("{0:#} (u{1,4}) ", ch, strUPiece); - } - strWhole += strPiece; - } - - this.labelUniCodes.Text = strWhole; - } - - private void textBoxBadWord_TextChanged(object sender, EventArgs e) - { - UpdateUniCodes(this.textBoxBadWord.Text); - } - - private void textBoxReplacement_TextChanged(object sender, EventArgs e) - { - UpdateUniCodes(this.textBoxReplacement.Text); - } - - private void buttonDelete_Click(object sender, System.EventArgs e) - { - this.Close(); - } - } -} diff --git a/src/SpellingFixerEC/SpellingFixerEC.cs b/src/SpellingFixerEC/SpellingFixerEC.cs index 0b767ca5..37130052 100644 --- a/src/SpellingFixerEC/SpellingFixerEC.cs +++ b/src/SpellingFixerEC/SpellingFixerEC.cs @@ -25,6 +25,7 @@ public class SpellingFixerEC { public const string cstrAttributeFontToUse = "SpellingFixer Display Font"; public const string cstrAttributeFontSizeToUse = "SpellingFixer Display Font Size"; + public const string cstrAttributeFontRightToLeft = "SpellingFixer Display Right to Left"; public const string cstrAttributeWordBoundaryDelimiter = "SpellingFixer Word Boundary Delimiter"; public const string cstrAttributeNonWordChars = "SpellingFixer punctuation and whitespace characters"; public const string cstrDefaultPunctuationAndWhitespace = "' ' tab nl '.' ',' '!' ':' ';' '-' \"'\" '\"' '‘' '’' '“' '”' '(' ')' '[' ']' '{' '}'"; @@ -46,6 +47,8 @@ public class SpellingFixerEC private string m_strConverterSpec; private string m_strEncConverterName; private bool m_bLegacy; + private bool m_isRightToLeft; + private int m_cp = 1252; // leave a default constructor which *doesn't* automatically log-in to a project for @@ -67,6 +70,7 @@ public void LoginProject() m_bLegacy = login.IsLegacy; if (m_bLegacy) m_cp = login.CpToUse; + m_isRightToLeft = login.IsRightToLeft; m_strConverterSpec = login.ConverterSpec; SpellFixerEncConverterName = login.EncConverterName; WordBoundaryDelimiter = login.WordBoundaryDelimiter; @@ -85,6 +89,7 @@ public SpellingFixerEC(string strProjectName) m_bLegacy = login.IsLegacy; if (m_bLegacy) m_cp = login.CpToUse; + m_isRightToLeft = login.IsRightToLeft; m_strConverterSpec = login.ConverterSpec; SpellFixerEncConverterName = login.EncConverterName; WordBoundaryDelimiter = login.WordBoundaryDelimiter; @@ -97,10 +102,12 @@ public SpellingFixerEC(string strProjectName) public SpellingFixerEC(string strProjectName, Font font, string strConverterSpec, string strEncConverterName, [Optional, DefaultParameterValue(SpellingFixerEC.cstrDefaultWordBoundaryDelimiter)] string strWordBoundaryDelimiter, [Optional, DefaultParameterValue(cstrDefaultPunctuationAndWhitespace)] string strPunctuationAndWhiteSpace, - [Optional, DefaultParameterValue(false)] bool bLegacy, [Optional, DefaultParameterValue(1252)] int cp) + [Optional, DefaultParameterValue(false)] bool bLegacy, [Optional, DefaultParameterValue(1252)] int cp, + [Optional, DefaultParameterValue(false)] bool bRightToLeft) { m_font = font; m_bLegacy = bLegacy; + m_isRightToLeft = bRightToLeft; if (m_bLegacy) m_cp = cp; m_strConverterSpec = strConverterSpec; @@ -167,6 +174,12 @@ private string WordBoundaryDelimiter set { m_strWordBoundaryDelimiter = value; } } + private bool IsRightToLeft + { + get { return m_isRightToLeft; } + set { m_isRightToLeft = value; } + } + private string PunctuationAndWhiteSpace { get { return m_strNonWordChars; } @@ -201,8 +214,12 @@ public void QueryForSpellingCorrectionIfTableEmpty(string strBadWord) protected void QueryAndAppend(string strBadWord) { +#if !OldDialogs + var aQuery = new QueryFindReplaceDialog(m_font); +#else QueryGoodSpelling aQuery = new QueryGoodSpelling(m_font); - if (aQuery.ShowDialog(strBadWord, strBadWord, strBadWord, false) == DialogResult.OK) +#endif + if (aQuery.ShowDialog(strBadWord, strBadWord, strBadWord, IsRightToLeft, WordBoundaryDelimiter, false) == DialogResult.OK) { // if it was legacy encoded, then we need to convert the data to narrow using // the code page the user specified (or we got out of the repository) @@ -210,7 +227,7 @@ protected void QueryAndAppend(string strBadWord) // get a stream writer for these encoding and append StreamWriter sw = new StreamWriter(m_strConverterSpec, true, enc); - sw.WriteLine(FormatSubstitutionRule(aQuery.BadSpelling, aQuery.GoodSpelling, WordBoundaryDelimiter, strBadWord)); + sw.WriteLine(FormatSubstitutionRule(aQuery.FindWhat, aQuery.ReplaceWith, WordBoundaryDelimiter, strBadWord)); sw.Flush(); sw.Close(); } @@ -365,8 +382,12 @@ public void FindReplacementRule(string strWord) else if ((nFoundIndex >= 0) && (nFoundIndex < myTable.Rows.Count)) { DataRow row = myTable.Rows[nFoundIndex]; +#if !OldDialogs + var aQuery = new QueryFindReplaceDialog(m_font); +#else QueryGoodSpelling aQuery = new QueryGoodSpelling(m_font); - DialogResult res = aQuery.ShowDialog((string)row[strColumnLhs], (string)row[strColumnRhs], GetComment(row), true); +#endif + DialogResult res = aQuery.ShowDialog((string)row[strColumnLhs], (string)row[strColumnRhs], GetComment(row), IsRightToLeft, WordBoundaryDelimiter, true); bool bRewrite = false; if (res == DialogResult.Abort) { @@ -377,14 +398,14 @@ public void FindReplacementRule(string strWord) // if the user clicks OK and has made a change... if ((res == DialogResult.OK) - && (((string)row[strColumnLhs] != aQuery.BadSpelling) - || ((string)row[strColumnRhs] != aQuery.GoodSpelling) + && (((string)row[strColumnLhs] != aQuery.FindWhat) + || ((string)row[strColumnRhs] != aQuery.ReplaceWith) ) ) { // update the table and rewrite - row[strColumnLhs] = aQuery.BadSpelling; - row[strColumnRhs] = aQuery.GoodSpelling; + row[strColumnLhs] = aQuery.FindWhat; + row[strColumnRhs] = aQuery.ReplaceWith; row[strColumnCmt] = strWord; bRewrite = true; } @@ -421,7 +442,7 @@ public void EditSpellingFixes() DialogResult res = DialogResult.Cancel; try { - ViewBadGoodPairsDlg dlg = new ViewBadGoodPairsDlg(myTable, m_font); + ViewBadGoodPairsDlg dlg = new ViewBadGoodPairsDlg(myTable, m_font, WordBoundaryDelimiter, IsRightToLeft); res = dlg.ShowDialog(); } #if DEBUG diff --git a/src/SpellingFixerEC/SpellingFixerEC.csproj b/src/SpellingFixerEC/SpellingFixerEC.csproj index e86f8a1f..b9d2c336 100644 --- a/src/SpellingFixerEC/SpellingFixerEC.csproj +++ b/src/SpellingFixerEC/SpellingFixerEC.csproj @@ -101,6 +101,7 @@ <LangVersion>latest</LangVersion> <ErrorReport>prompt</ErrorReport> <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> + <RegisterForComInterop>true</RegisterForComInterop> </PropertyGroup> <ItemGroup> <Reference Include="CcEC"> @@ -149,9 +150,12 @@ <DesignTime>True</DesignTime> <DependentUpon>Resources.resx</DependentUpon> </Compile> - <Compile Include="QueryGoodSpelling.cs"> + <Compile Include="QueryFindReplaceDialog.cs"> <SubType>Form</SubType> </Compile> + <Compile Include="QueryFindReplaceDialog.Designer.cs"> + <DependentUpon>QueryFindReplaceDialog.cs</DependentUpon> + </Compile> <Compile Include="SpellingFixerEC.cs"> </Compile> <Compile Include="ViewBadGoodPairsDlg.cs"> @@ -169,9 +173,8 @@ <Generator>ResXFileCodeGenerator</Generator> <LastGenOutput>Resources.Designer.cs</LastGenOutput> </EmbeddedResource> - <EmbeddedResource Include="QueryGoodSpelling.resx"> - <DependentUpon>QueryGoodSpelling.cs</DependentUpon> - <SubType>Designer</SubType> + <EmbeddedResource Include="QueryFindReplaceDialog.resx"> + <DependentUpon>QueryFindReplaceDialog.cs</DependentUpon> </EmbeddedResource> <EmbeddedResource Include="ViewBadGoodPairsDlg.resx"> <DependentUpon>ViewBadGoodPairsDlg.cs</DependentUpon> diff --git a/src/SpellingFixerEC/ViewBadGoodPairsDlg.cs b/src/SpellingFixerEC/ViewBadGoodPairsDlg.cs index b44de844..ef0fcc82 100644 --- a/src/SpellingFixerEC/ViewBadGoodPairsDlg.cs +++ b/src/SpellingFixerEC/ViewBadGoodPairsDlg.cs @@ -22,11 +22,16 @@ internal partial class ViewBadGoodPairsDlg : Form const int cnBadSpelling = 0; const int cnGoodSpelling = 1; + private string _wordBoundaryDelimiter; + private bool _isRightToLeft; - internal ViewBadGoodPairsDlg(DataTable myTable, Font font) + internal ViewBadGoodPairsDlg(DataTable myTable, Font font, string wordBoundaryDelimiter, bool isRightToLeft) { InitializeComponent(); + _wordBoundaryDelimiter = wordBoundaryDelimiter; + _isRightToLeft = isRightToLeft; + // for this ctor, the columns from the datatable this.dataGridView.Columns.Clear(); @@ -413,8 +418,13 @@ protected void ProcessEditRow(DataGridViewRow theRow) string strBadValue = (string)theBadCell.Value; string strGoodValue = (string)theGoodCell.Value; +#if !OldDialogs + var aQuery = new QueryFindReplaceDialog(dataGridView.RowsDefaultCellStyle.Font); +#else QueryGoodSpelling aQuery = new QueryGoodSpelling(dataGridView.RowsDefaultCellStyle.Font); - DialogResult res = aQuery.ShowDialog(strBadValue, strGoodValue, strBadValue, (strBadValue != null)); +#endif + DialogResult res = aQuery.ShowDialog(strBadValue, strGoodValue, strBadValue, + _isRightToLeft, _wordBoundaryDelimiter, (strBadValue != null)); if (res == DialogResult.Abort) { // this means delete @@ -439,10 +449,10 @@ protected void ProcessEditRow(DataGridViewRow theRow) // o both columns were non-null and now the 'bad' value (only) is changed // -> change the bad value in the row // -> change the bad value in the bad2good list - if (String.IsNullOrEmpty(aQuery.BadSpelling) || String.IsNullOrEmpty(aQuery.GoodSpelling)) + if (String.IsNullOrEmpty(aQuery.FindWhat) || String.IsNullOrEmpty(aQuery.ReplaceWith)) { // if either of them are null... - throw new ApplicationException("The 'Bad' and 'Good' forms are not allowed to be nothing!"); + throw new ApplicationException("The 'Find What' and 'Replace With' values are not allowed to be nothing!"); } #if !TurnOffSF30 /* I don't recall what I was thinking about this one. Sometimes having the good and bad spelling @@ -460,8 +470,8 @@ protected void ProcessEditRow(DataGridViewRow theRow) #endif { // Legacy SpellFixer - theBadCell.Value = aQuery.BadSpelling; - theGoodCell.Value = aQuery.GoodSpelling; + theBadCell.Value = aQuery.FindWhat; + theGoodCell.Value = aQuery.ReplaceWith; } #if !TurnOffSF30 else if (String.IsNullOrEmpty(strBadValue) && m_mapBad2Good.ContainsKey(aQuery.BadSpelling)) From 3b816da6d3b82fdcdd535a2e55556cdca0e69b0e Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sun, 19 Feb 2023 18:20:23 -0600 Subject: [PATCH 02/71] when querying for the current target text, we can have a failure if the user entered a range of verses by using the up/down control at the top of Ptx window (bkz it thinks the verse is just the one specified by the up/down control, whereas the collection of USFMTokens is based on the range... so triangulate to find the range from just the single verse if that's what we have --- .../BackTranslationHelperForm.cs | 28 ++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs index 61811f0f..bcf6a324 100644 --- a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs +++ b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs @@ -49,16 +49,19 @@ public partial class BackTranslationHelperForm : Form, IBackTranslationHelperDat private IVerseRef _verseReferenceLast; /// <summary> - /// this contains the tokens from the source project, but just the verse(s) that we're processing (e.g. v1 or could be v2-5) + /// this contains the tokens from the source project, but just the verse(s) that we're processing (e.g. v1 + /// or could be v2-5) /// Key is the [BookNum]_[ChapterNum]_[VerseNum] (e.g. ACT_001_001) /// </summary> private Dictionary<string, List<IUSFMToken>> UsfmTokensSource { get; set; } = new Dictionary<string, List<IUSFMToken>>(); /// <summary> - /// this contains the tokens from the target project, for all the verses in the current chapter (we need the whole chapter, - /// because we have to Put the entire chapter when we go to write it. + /// this contains the tokens from the target project, for all the verses in the current chapter (we need the + /// whole chapter,because we have to Put the entire chapter when we go to write it. /// Key is the [BookNum]_[ChapterNum] (e.g. 44_001) - /// Key2 (of the SortedDictionary) is [BookNum]_[ChapterNum]_[VerseNum] (e.g. ACT_001_001) + /// Key2 (of the SortedDictionary) is [BookNum]_[ChapterNum]_[VerseNum] (e.g. ACT_001_001 + /// Note: beware that this could be out of date if the user edits the verse (or another) in Ptx after + /// we pulled these values. Cause it to requery if we lose focus. /// </summary> private Dictionary<string, SortedDictionary<string, List<IUSFMToken>>> UsfmTokensTarget { get; set; } = new Dictionary<string, SortedDictionary<string, List<IUSFMToken>>>(); @@ -232,6 +235,7 @@ private string CurrentTargetData // if this fails to return something, it means we can't edit it MessageBox.Show($"You don't have edit privilege on this chapter: {_verseReference}"); } + var bookChapterKey = GetBookChapterKey(_verseReference); if (!UsfmTokensTarget.TryGetValue(bookChapterKey, out SortedDictionary<string, List<IUSFMToken>> vrefTokens)) { @@ -243,6 +247,13 @@ private string CurrentTargetData } var bookChapterVerseKey = GetBookChapterVerseKey(_verseReference); + + // issue: if Ptx is in "I'm just a single verse" mode (e.g. clicking up/down in the combo box at the top) + // then this will show a single verse even if the text is a multi-verse situation + // (e.g. 42_001_006, while the key in vrefTokens might be: 42_001_006-007). So figure out + // which one it *should* be so we can find a hit in vrefTokens + bookChapterVerseKey = TriangulateBookChapterVerseKey(bookChapterVerseKey, vrefTokens); + if (!vrefTokens.ContainsKey(bookChapterVerseKey)) return null; @@ -256,6 +267,15 @@ private string CurrentTargetData } } + private static string TriangulateBookChapterVerseKey(string bookChapterVerseKey, SortedDictionary<string, List<IUSFMToken>> vrefTokens) + { + if (vrefTokens.ContainsKey(bookChapterVerseKey)) + return bookChapterVerseKey; + + var vrefTokenKey = vrefTokens.FirstOrDefault(t => t.Value.Any(v => v.VerseRef.AllVerses.Any(sv => GetBookChapterVerseKey(sv) == bookChapterVerseKey))).Key; + return vrefTokenKey; + } + private static string GetBookChapterKey(IVerseRef verseReference) { // get the key, which for the target data is the entire chapter (we have to Put as a whole chapter) From 37fa61e396d2c3331fc397ed6f422b44df28e2c3 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sun, 19 Feb 2023 18:21:18 -0600 Subject: [PATCH 03/71] fix several bugs related to the dialog thrashing if the user clicks off the dialog and changes things in Ptx, or overwriting data unintentionally --- .../BackTranslationHelperForm.Designer.cs | 4 +- .../BackTranslationHelperForm.cs | 48 +++++++++++++++++-- .../BackTranslationHelperForm.resx | 16 ------- ...ParatextPluginBackTranslationHelper.csproj | 4 +- .../TranslationHelperForm.Designer.cs | 1 - .../TranslationHelperForm.cs | 2 +- 6 files changed, 50 insertions(+), 25 deletions(-) diff --git a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.Designer.cs b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.Designer.cs index eb7a83e0..85b5b4f1 100644 --- a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.Designer.cs +++ b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.Designer.cs @@ -29,7 +29,6 @@ protected override void Dispose(bool disposing) /// </summary> private void InitializeComponent() { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(BackTranslationHelperForm)); this.backTranslationHelperCtrl = new BackTranslationHelper.BackTranslationHelperCtrl(); this.SuspendLayout(); // @@ -41,7 +40,6 @@ private void InitializeComponent() this.backTranslationHelperCtrl.AutoSize = false; this.backTranslationHelperCtrl.Location = new System.Drawing.Point(0, 0); this.backTranslationHelperCtrl.Name = "backTranslationHelperCtrl"; - this.backTranslationHelperCtrl.NewTargetTexts = ((System.Collections.Generic.List<BackTranslationHelper.TargetPossible>)(resources.GetObject("backTranslationHelperCtrl.NewTargetTexts"))); this.backTranslationHelperCtrl.Size = new System.Drawing.Size(790, 449); this.backTranslationHelperCtrl.TabIndex = 1; // @@ -53,6 +51,8 @@ private void InitializeComponent() this.Controls.Add(this.backTranslationHelperCtrl); this.Name = "BackTranslationHelperForm"; this.Text = "Back Translating from {0} - {1} in verse: {2}"; + this.Activated += new System.EventHandler(this.BackTranslationHelperForm_Activated); + this.Deactivate += new System.EventHandler(this.BackTranslationHelperForm_Deactivate); this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.BackTranslationHelperForm_FormClosing); this.ResumeLayout(false); this.PerformLayout(); diff --git a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs index bcf6a324..2382e9b6 100644 --- a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs +++ b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs @@ -1,6 +1,8 @@ // Uncomment this define to enable code that helps in test creation for a new scenario // See UnitTest_PtxBackTrHelper::It_Can_Determine_Correct_Update_To_Target_Project in the TestBwdc project for details +#if DEBUG #define SerializeToCreateTestFiles +#endif using BackTranslationHelper; using Paratext.PluginInterfaces; @@ -29,6 +31,7 @@ public partial class BackTranslationHelperForm : Form, IBackTranslationHelperDat private BackTranslationHelperModel _model; private IWriteLock _writeLock = null; private readonly Action<IVerseRef> _setSyncReferenceGroup; + private bool _isNotInFocus; /// <summary> /// the current verse we're processing. (this generally is the 1st of a range if it is a combined verse). @@ -119,7 +122,15 @@ private void ScriptureDataChangedHandlerTarget(IProject sender, int bookNum, int private void Host_VerseRefChanged(IPluginHost sender, IVerseRef newReference, SyncReferenceGroup group) { - // since this will initialize the _verseReference, which is intended to be the first of a series of verses... + // since this will initialize the _verseReference, which is intended to be the first + // of a series of verses... + // UPDATE: but not if the Form isn't in focus (so we don't thrash around converting stuff while + // the user may be editing stuff in Ptx) + if (_isNotInFocus && backTranslationHelperCtrl.IsModified) + { + return; + } + var newRef = (newReference.RepresentsMultipleVerses) ? newReference.AllVerses.First() : newReference; GetNewReference(newRef); } @@ -186,11 +197,12 @@ BackTranslationHelperModel IBackTranslationHelperDataSource.Model { get { + var currentTargetData = CurrentTargetData; var model = new BackTranslationHelperModel { SourceData = CurrentSourceData ?? "<source data empty>", - TargetData = CurrentTargetData, - TargetDataPreExisting = CurrentTargetData, + TargetData = currentTargetData, + TargetDataPreExisting = currentTargetData, TargetsPossible = new List<TargetPossible>() }; return model; @@ -672,5 +684,35 @@ private void Unlock() temp.Dispose(); } } + + private void BackTranslationHelperForm_Deactivate(object sender, EventArgs e) + { + // if we lose focus, it's possible that the user switched to Ptx to make some edits, + // so purge the source and target tokens which would force us to requery them + _isNotInFocus = true; + + System.Diagnostics.Debug.WriteLine($"BackTranslationHelperForm_Deactivate: _isNotInFocus = '{_isNotInFocus}'"); + + /* + * New plan: don't move from the current verse if it's modified. but this is now handled in GetNewReference + var keyBookChapterVerse = GetBookChapterVerseKey(_verseReference); + if (UsfmTokensSource.ContainsKey(keyBookChapterVerse)) + { + UsfmTokensSource.Remove(keyBookChapterVerse); + } + + var bookChapterKey = GetBookChapterKey(_verseReference); + if (UsfmTokensTarget.ContainsKey(bookChapterKey)) + { + UsfmTokensTarget.Remove(bookChapterKey); + } + */ + } + + private void BackTranslationHelperForm_Activated(object sender, EventArgs e) + { + _isNotInFocus = false; + System.Diagnostics.Debug.WriteLine($"BackTranslationHelperForm_Activated: _isNotInFocus = '{_isNotInFocus}'"); + } } } diff --git a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.resx b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.resx index de129925..1af7de15 100644 --- a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.resx +++ b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.resx @@ -117,20 +117,4 @@ <resheader name="writer"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> - <data name="backTranslationHelperCtrl.NewTargetTexts" mimetype="application/x-microsoft.net.object.binary.base64"> - <value> - AAEAAAD/////AQAAAAAAAAAMAgAAAKcBQmFja1RyYW5zbGF0aW9uSGVscGVyLCBWZXJzaW9uPTEuMC4w - LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49ZjE0NDdiYWUxZTYzZjQ4NV1dLCBtc2Nv - cmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1 - YzU2MTkzNGUwODkMAwAAAFhCYWNrVHJhbnNsYXRpb25IZWxwZXIsIFZlcnNpb249MS4wLjAuMCwgQ3Vs - dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1mMTQ0N2JhZTFlNjNmNDg1BQEAAABHU3lzdGVtLkNv - bGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tCYWNrVHJhbnNsYXRpb25IZWxwZXIuVGFyZ2V0UG9zc2li - bGUDAAAABl9pdGVtcwVfc2l6ZQhfdmVyc2lvbgQAACZCYWNrVHJhbnNsYXRpb25IZWxwZXIuVGFyZ2V0 - UG9zc2libGVbXQMAAAAICAIAAAAJBAAAAAEAAAABAAAABwQAAAAAAQAAAAQAAAAEJEJhY2tUcmFuc2xh - dGlvbkhlbHBlci5UYXJnZXRQb3NzaWJsZQMAAAAJBQAAAA0DBQUAAAAkQmFja1RyYW5zbGF0aW9uSGVs - cGVyLlRhcmdldFBvc3NpYmxlAwAAAB48UG9zc2libGVJbmRleD5rX19CYWNraW5nRmllbGQfPFRyYW5z - bGF0b3JOYW1lPmtfX0JhY2tpbmdGaWVsZBs8VGFyZ2V0RGF0YT5rX19CYWNraW5nRmllbGQAAQEIAwAA - AAAAAAAKBgYAAAAACw== -</value> - </data> </root> \ No newline at end of file diff --git a/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj b/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj index 4892310d..c27ce9a2 100644 --- a/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj +++ b/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj @@ -176,6 +176,7 @@ <ItemGroup> <EmbeddedResource Include="BackTranslationHelperForm.resx"> <DependentUpon>BackTranslationHelperForm.cs</DependentUpon> + <SubType>Designer</SubType> </EmbeddedResource> <EmbeddedResource Include="ProjectListForm.resx"> <DependentUpon>ProjectListForm.cs</DependentUpon> @@ -212,8 +213,7 @@ IF NOT EXIST "%25ParatextInstallDir%25\plugins\$(ProjectName)\$(ProjectName).ptx del "%25ParatextInstallDir%25\plugins\$(ProjectName)\$(ProjectName).ptxplg" :nodelete -@echo Copying files to '%25ParatextInstallDir%25\plugins\$(ProjectName) -' folder +@echo Copying files to '%25ParatextInstallDir%25\plugins\$(ProjectName)' folder xcopy "$(TargetDir)" "%25ParatextInstallDir%25\plugins\$(ProjectName)" /y /i ren "%25ParatextInstallDir%25\plugins\$(ProjectName)\$(TargetFileName)" "$(ProjectName).ptxplg" diff --git a/src/SILConvertersOffice/TranslationHelperForm.Designer.cs b/src/SILConvertersOffice/TranslationHelperForm.Designer.cs index 7081e6cb..92e1f6eb 100644 --- a/src/SILConvertersOffice/TranslationHelperForm.Designer.cs +++ b/src/SILConvertersOffice/TranslationHelperForm.Designer.cs @@ -43,7 +43,6 @@ private void InitializeComponent() this.backTranslationHelperCtrl.Dock = System.Windows.Forms.DockStyle.Fill; this.backTranslationHelperCtrl.Location = new System.Drawing.Point(0, 0); this.backTranslationHelperCtrl.Name = "backTranslationHelperCtrl"; - this.backTranslationHelperCtrl.NewTargetTexts = ((System.Collections.Generic.List<BackTranslationHelper.TargetPossible>)(resources.GetObject("backTranslationHelperCtrl.NewTargetTexts"))); this.backTranslationHelperCtrl.Size = new System.Drawing.Size(790, 449); this.backTranslationHelperCtrl.TabIndex = 0; // diff --git a/src/SILConvertersOffice/TranslationHelperForm.cs b/src/SILConvertersOffice/TranslationHelperForm.cs index 7fe9c4b9..dc12467a 100644 --- a/src/SILConvertersOffice/TranslationHelperForm.cs +++ b/src/SILConvertersOffice/TranslationHelperForm.cs @@ -28,7 +28,7 @@ string IBaseConverterForm.ForwardString get { // TODO: fix this - return backTranslationHelperCtrl.NewTargetTexts.FirstOrDefault()?.TargetData; + return backTranslationHelperCtrl.GetNewTargetTexts().FirstOrDefault()?.TargetData; } set From ca82199caa2d9cd75a88e5933f55c0345a7e07b0 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sun, 19 Feb 2023 20:33:57 -0600 Subject: [PATCH 04/71] added a button to be able to 'pin' the form as topmost (so it'll still show above Ptx if selected) --- .../BackTranslationHelperForm.Designer.cs | 20 ++++++++++++++++ .../BackTranslationHelperForm.cs | 21 ++++++++++++++--- ...ParatextPluginBackTranslationHelper.csproj | 3 +++ .../Properties/Resources.Designer.cs | 22 +++++++++++++++++- .../Properties/Resources.resx | 8 ++++++- .../Properties/Settings.Designer.cs | 14 ++++++++++- .../Properties/Settings.settings | 3 +++ .../{Image1.bmp => SplashScreenImage.bmp} | Bin .../Resources/pindown.bmp | Bin 0 -> 3382 bytes .../Resources/pinup.bmp | Bin 0 -> 3382 bytes .../app.config | 3 +++ 11 files changed, 88 insertions(+), 6 deletions(-) rename src/ParatextPluginBackTranslationHelper/Resources/{Image1.bmp => SplashScreenImage.bmp} (100%) create mode 100644 src/ParatextPluginBackTranslationHelper/Resources/pindown.bmp create mode 100644 src/ParatextPluginBackTranslationHelper/Resources/pinup.bmp diff --git a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.Designer.cs b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.Designer.cs index 85b5b4f1..0ab0c76b 100644 --- a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.Designer.cs +++ b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.Designer.cs @@ -30,6 +30,7 @@ protected override void Dispose(bool disposing) private void InitializeComponent() { this.backTranslationHelperCtrl = new BackTranslationHelper.BackTranslationHelperCtrl(); + this.buttonPinToTop = new System.Windows.Forms.Button(); this.SuspendLayout(); // // backTranslationHelperCtrl @@ -37,17 +38,35 @@ private void InitializeComponent() this.backTranslationHelperCtrl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + // if you edit the form (e.g. to add a control), then the designer auto coding will change this "AutoSize = false" + // to (possibly true) and add an 'AutoSizeMode = GrowAndShrink'... but this will cause the embedded control to + // stop showing properly. It *must* be AutoSize = false. (keep this comment here too, so the next person sees it too) + // (I'm not sure if it's specifically necessary, but you might need to restore the PerformLayout at the bottom, + // which the editing of the form will remove too) this.backTranslationHelperCtrl.AutoSize = false; this.backTranslationHelperCtrl.Location = new System.Drawing.Point(0, 0); this.backTranslationHelperCtrl.Name = "backTranslationHelperCtrl"; this.backTranslationHelperCtrl.Size = new System.Drawing.Size(790, 449); this.backTranslationHelperCtrl.TabIndex = 1; // + // buttonPinToTop + // + this.buttonPinToTop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.buttonPinToTop.Image = global::SIL.ParatextBackTranslationHelperPlugin.Properties.Resources.pinup; + this.buttonPinToTop.Location = new System.Drawing.Point(768, 0); + this.buttonPinToTop.Name = "buttonPinToTop"; + this.buttonPinToTop.Size = new System.Drawing.Size(32, 32); + this.buttonPinToTop.TabIndex = 2; + this.buttonPinToTop.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText; + this.buttonPinToTop.UseVisualStyleBackColor = true; + this.buttonPinToTop.Click += new System.EventHandler(this.ButtonPinToTop_Click); + // // BackTranslationHelperForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(800, 450); + this.Controls.Add(this.buttonPinToTop); this.Controls.Add(this.backTranslationHelperCtrl); this.Name = "BackTranslationHelperForm"; this.Text = "Back Translating from {0} - {1} in verse: {2}"; @@ -61,5 +80,6 @@ private void InitializeComponent() #endregion private BackTranslationHelper.BackTranslationHelperCtrl backTranslationHelperCtrl; + private System.Windows.Forms.Button buttonPinToTop; } } \ No newline at end of file diff --git a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs index 2382e9b6..f7e2182d 100644 --- a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs +++ b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs @@ -649,9 +649,13 @@ private void RequeryWarning(IVerseRef verseReference) protected override void OnShown(EventArgs e) { base.OnShown(e); - // On Windows XP, TXL comes up underneath Paratext. See if this fixes it: - TopMost = true; - TopMost = false; + + if (Properties.Settings.Default.PinnedToTop) + { + buttonPinToTop.Image = global::SIL.ParatextBackTranslationHelperPlugin.Properties.Resources.pindown; + this.TopMost = true; + } + GetNewReference(_verseReference); } @@ -714,5 +718,16 @@ private void BackTranslationHelperForm_Activated(object sender, EventArgs e) _isNotInFocus = false; System.Diagnostics.Debug.WriteLine($"BackTranslationHelperForm_Activated: _isNotInFocus = '{_isNotInFocus}'"); } + + private void ButtonPinToTop_Click(object sender, EventArgs e) + { + var newCheckState = !Properties.Settings.Default.PinnedToTop; + Properties.Settings.Default.PinnedToTop = newCheckState; + Properties.Settings.Default.Save(); + this.TopMost = newCheckState; + buttonPinToTop.Image = (newCheckState) + ? global::SIL.ParatextBackTranslationHelperPlugin.Properties.Resources.pindown + : global::SIL.ParatextBackTranslationHelperPlugin.Properties.Resources.pinup; + } } } diff --git a/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj b/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj index c27ce9a2..01a8395b 100644 --- a/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj +++ b/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj @@ -184,6 +184,7 @@ <EmbeddedResource Include="Properties\Resources.resx"> <Generator>ResXFileCodeGenerator</Generator> <LastGenOutput>Resources.Designer.cs</LastGenOutput> + <SubType>Designer</SubType> </EmbeddedResource> <EmbeddedResource Include="SplashScreenForm.resx"> <DependentUpon>SplashScreenForm.cs</DependentUpon> @@ -202,6 +203,8 @@ <Content Include="$(EcDistFilesPath)\redist\EC\Plugins\Translators 4.0.0.0 Plugin Details.xml"> <Link>EcPlugins\Translators 4.0.0.0 Plugin Details.xml</Link> </Content> + <None Include="Resources\pindown13.bmp" /> + <None Include="Resources\pindown1.bmp" /> </ItemGroup> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <PropertyGroup> diff --git a/src/ParatextPluginBackTranslationHelper/Properties/Resources.Designer.cs b/src/ParatextPluginBackTranslationHelper/Properties/Resources.Designer.cs index d56c8880..f0f46f97 100644 --- a/src/ParatextPluginBackTranslationHelper/Properties/Resources.Designer.cs +++ b/src/ParatextPluginBackTranslationHelper/Properties/Resources.Designer.cs @@ -19,7 +19,7 @@ namespace SIL.ParatextBackTranslationHelperPlugin.Properties { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { @@ -60,6 +60,26 @@ internal Resources() { } } + /// <summary> + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// </summary> + internal static System.Drawing.Bitmap pindown { + get { + object obj = ResourceManager.GetObject("pindown", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// <summary> + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// </summary> + internal static System.Drawing.Bitmap pinup { + get { + object obj = ResourceManager.GetObject("pinup", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// <summary> /// Looks up a localized resource of type System.Drawing.Bitmap. /// </summary> diff --git a/src/ParatextPluginBackTranslationHelper/Properties/Resources.resx b/src/ParatextPluginBackTranslationHelper/Properties/Resources.resx index 18f5ace9..a5b18b56 100644 --- a/src/ParatextPluginBackTranslationHelper/Properties/Resources.resx +++ b/src/ParatextPluginBackTranslationHelper/Properties/Resources.resx @@ -118,7 +118,13 @@ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> + <data name="pindown" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\pindown.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="pinup" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\pinup.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> <data name="SplashScreenImage" type="System.Resources.ResXFileRef, System.Windows.Forms"> - <value>..\Resources\Image1.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + <value>..\Resources\SplashScreenImage.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> </data> </root> \ No newline at end of file diff --git a/src/ParatextPluginBackTranslationHelper/Properties/Settings.Designer.cs b/src/ParatextPluginBackTranslationHelper/Properties/Settings.Designer.cs index b16208eb..71bc027c 100644 --- a/src/ParatextPluginBackTranslationHelper/Properties/Settings.Designer.cs +++ b/src/ParatextPluginBackTranslationHelper/Properties/Settings.Designer.cs @@ -12,7 +12,7 @@ namespace SIL.ParatextBackTranslationHelperPlugin.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.4.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); @@ -58,5 +58,17 @@ public static Settings Default { this["WindowSize"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool PinnedToTop { + get { + return ((bool)(this["PinnedToTop"])); + } + set { + this["PinnedToTop"] = value; + } + } } } diff --git a/src/ParatextPluginBackTranslationHelper/Properties/Settings.settings b/src/ParatextPluginBackTranslationHelper/Properties/Settings.settings index 6abdd3d2..adc4809f 100644 --- a/src/ParatextPluginBackTranslationHelper/Properties/Settings.settings +++ b/src/ParatextPluginBackTranslationHelper/Properties/Settings.settings @@ -11,5 +11,8 @@ <Setting Name="WindowSize" Type="System.Drawing.Size" Scope="User"> <Value Profile="(Default)">800, 450</Value> </Setting> + <Setting Name="PinnedToTop" Type="System.Boolean" Scope="User"> + <Value Profile="(Default)">False</Value> + </Setting> </Settings> </SettingsFile> \ No newline at end of file diff --git a/src/ParatextPluginBackTranslationHelper/Resources/Image1.bmp b/src/ParatextPluginBackTranslationHelper/Resources/SplashScreenImage.bmp similarity index 100% rename from src/ParatextPluginBackTranslationHelper/Resources/Image1.bmp rename to src/ParatextPluginBackTranslationHelper/Resources/SplashScreenImage.bmp diff --git a/src/ParatextPluginBackTranslationHelper/Resources/pindown.bmp b/src/ParatextPluginBackTranslationHelper/Resources/pindown.bmp new file mode 100644 index 0000000000000000000000000000000000000000..3b250237786a3f9453faf6758a91b1b4dcddb50f GIT binary patch literal 3382 zcmeIxF^&^K5QX7FLK-{a3>9($;u1Loq)zH6bqtURO4?b8VD}Cca0tRqk+4LvBm~93 z<5|gg5oDX-wmx^4x~IGK#(w?g)kc=~>bb~EM!I??>jd@Z7f14p;+{y0L`%>|bWjI% zP*+ud_;k}>zJ6;_gM+o2D2x^pC=8B3qA*%qpfETBiNaXVReFOjcaTW>!e~i>!r%xb z3Ztb23WFn%D2$dNP#7G6L}9dvKw)qM5{1#G0)@d5NEAk!2^0oLAW;}?E>IX8fka`n zg+O6&1QLbOmI8&r5l9q9TL}~fM<7ucZ9||iI0A{nSl_qO8~ph0CFu*JLj?+hBakSJ z4ihL0jzFR?I$WSII0A{nSbk>_N^fuk5{1!`0)@d5NEAj#2^0oLAW;|{L!dA?0*S)t z5`O2RFgOB<!st?g!r%xb3Zu&e3WFn%D2y%_C=8B3qA<EbpfETBiNfegfx_SjBnpH7 zs6b(G1hT*X?0)}NmOMqeW%)FNrMMs9soS)f{(9sz|DW^Q>DX@ex9jNln6~rPeBbuF z{nCFt%W2wQug@L3`Rex^r`yeslO2DY=e#`}?oKv1JbFz$G4DPe&)!{K-)&EJTZSyy z&&w7wcR8QEuOH5w=DR;lpUnU9@qf<Wt(iQWb9Tsfvu3;59Zs`YmvR3!+x>2y9xs^4 r<e_a2k8Vgj53|#>p*TN%ez%0Te!bhA&0oq(0+$3X30x9*;skyH&R?3F literal 0 HcmV?d00001 diff --git a/src/ParatextPluginBackTranslationHelper/Resources/pinup.bmp b/src/ParatextPluginBackTranslationHelper/Resources/pinup.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d2c4db2f976b709b3444b4a71cebc6a7ff04771b GIT binary patch literal 3382 zcmeIxJB}1V41i&;gfv8)!67Hu*dm8uPT-^X7?3&WfPh0d;1GmPkqF2MynpxfYDe0~ z2t<OI8hxrNxoWEI>VEhB_O)#7_Laz6M!LI^J;40yn-jTVvJx4Q7zz4_3Fg5(m{-+& z`ut_Seg83{1_x_3QRop9C=8B3qR=BQP#7G6M4|U{mEPdnGe{(Tp+{1nFgOB<LXVU{ zVQ>Tzg&t{v!r%xb3OyzQg~1U>6nabr3WFn%DD;>K6b45iQRp!jC=8B3qR?X@P#7G6 zM4`u0pfETBi9(N+Kw)qM5``XXfx_SjBnrLXx6&K@boY|<g`QA>!r%xb3O!*0g~1U> z6ner13WFn%DD?K8MJT<&5l9qzA_WSABakTcL<tlIM<7w?i54gfjzFT&Q^I>L3WFn% zDD;#H6b45iQRpcXC=8B3qR>+=P#7G6M4_ibpfETBi9%1MKw)qM5{2d)6(|gjK+ex! zGao<5R!@-`*?z-do2&!;XYH^ohnG@bj%N!F%cG^sGKc$rI4sAf;=`J?vF^$Jvz|da zF7t=+(>9KIX8)r&S?`TQ@1O5%|E2gtnrm)*erNlCGyZq-f3ChS-_M2nz4U%OWO^N4 QD{!sAwF1`){Nok41H&2eM*si- literal 0 HcmV?d00001 diff --git a/src/ParatextPluginBackTranslationHelper/app.config b/src/ParatextPluginBackTranslationHelper/app.config index 16eaa4c6..1b50715a 100644 --- a/src/ParatextPluginBackTranslationHelper/app.config +++ b/src/ParatextPluginBackTranslationHelper/app.config @@ -72,6 +72,9 @@ <setting name="WindowSize" serializeAs="String"> <value>800, 450</value> </setting> + <setting name="PinnedToTop" serializeAs="String"> + <value>False</value> + </setting> </SIL.ParatextBackTranslationHelperPlugin.Properties.Settings> </userSettings> </configuration> \ No newline at end of file From 86149ef307bb64a0be02c4b6834c48802763e4fb Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Fri, 24 Feb 2023 15:33:06 -0600 Subject: [PATCH 05/71] don't preview online translators or compound or primary-fallback converters (it takes too much time) --- src/ClipboardEC/ClipboardEncConverter.cs | 31 +++++++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/src/ClipboardEC/ClipboardEncConverter.cs b/src/ClipboardEC/ClipboardEncConverter.cs index 0c32efb7..b19c7dd9 100644 --- a/src/ClipboardEC/ClipboardEncConverter.cs +++ b/src/ClipboardEC/ClipboardEncConverter.cs @@ -856,11 +856,20 @@ private void CreateContextMenu() try { IEncConverter aEC = aECs[strText]; - strOutput = this.ConvertData(aEC,strInput); - // if( strOutput != null ) - // strText += String.Format(":\t{0}", strOutput); + + // if it's a Translator type, then hold off calling to the internet for conversion + // which takes time and is possibly unnecessary), put in a dummy result to see if + // that's really what they want + if (IsOnlineTranslator(aEC)) + { + strOutput = $"Click to convert w/ {aEC.Name}"; + } + else + { + strOutput = this.ConvertData(aEC, strInput); + } } - catch(Exception e) + catch (Exception e) { // since this is just a 'preview' (and exceptions can be expected), don't // allow them to be throw up. @@ -878,6 +887,20 @@ private void CreateContextMenu() } } + private static bool IsOnlineTranslator(IEncConverter aEC) + { + var isOnlineTranslator = (aEC.ProcessType & (int)ProcessTypeFlags.Translation) == (int)ProcessTypeFlags.Translation; + + // it could still be if it's a primary-fallback or daisy-chain converter that has one (but there's no interface way + // to get at the individual converters... :-( (and changing the interface would just break existing clients) + if ((aEC.ImplementType == EncConverters.strTypeSILcomp) || (aEC.ImplementType == EncConverters.strTypeSILfallback)) + { + isOnlineTranslator = true; // for now... + } + + return isOnlineTranslator; + } + private void NormalizeClick(Object sender, EventArgs e) { // Determine if clicked menu item is the Blue menu item. From 05cf027bed067b2f129c3077679ea25a7402f9a0 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Fri, 24 Feb 2023 15:37:01 -0600 Subject: [PATCH 06/71] moved the 'stay on top' pin to the underlying control --- .../BackTranslationHelperForm.cs | 18 +----------------- .../Properties/Settings.Designer.cs | 12 ------------ .../Properties/Settings.settings | 3 --- .../app.config | 3 --- 4 files changed, 1 insertion(+), 35 deletions(-) diff --git a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs index f7e2182d..aa299413 100644 --- a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs +++ b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs @@ -649,13 +649,6 @@ private void RequeryWarning(IVerseRef verseReference) protected override void OnShown(EventArgs e) { base.OnShown(e); - - if (Properties.Settings.Default.PinnedToTop) - { - buttonPinToTop.Image = global::SIL.ParatextBackTranslationHelperPlugin.Properties.Resources.pindown; - this.TopMost = true; - } - GetNewReference(_verseReference); } @@ -717,17 +710,8 @@ private void BackTranslationHelperForm_Activated(object sender, EventArgs e) { _isNotInFocus = false; System.Diagnostics.Debug.WriteLine($"BackTranslationHelperForm_Activated: _isNotInFocus = '{_isNotInFocus}'"); - } - private void ButtonPinToTop_Click(object sender, EventArgs e) - { - var newCheckState = !Properties.Settings.Default.PinnedToTop; - Properties.Settings.Default.PinnedToTop = newCheckState; - Properties.Settings.Default.Save(); - this.TopMost = newCheckState; - buttonPinToTop.Image = (newCheckState) - ? global::SIL.ParatextBackTranslationHelperPlugin.Properties.Resources.pindown - : global::SIL.ParatextBackTranslationHelperPlugin.Properties.Resources.pinup; + GetNewReference(_verseReference); } } } diff --git a/src/ParatextPluginBackTranslationHelper/Properties/Settings.Designer.cs b/src/ParatextPluginBackTranslationHelper/Properties/Settings.Designer.cs index 71bc027c..e9592f50 100644 --- a/src/ParatextPluginBackTranslationHelper/Properties/Settings.Designer.cs +++ b/src/ParatextPluginBackTranslationHelper/Properties/Settings.Designer.cs @@ -58,17 +58,5 @@ public static Settings Default { this["WindowSize"] = value; } } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("False")] - public bool PinnedToTop { - get { - return ((bool)(this["PinnedToTop"])); - } - set { - this["PinnedToTop"] = value; - } - } } } diff --git a/src/ParatextPluginBackTranslationHelper/Properties/Settings.settings b/src/ParatextPluginBackTranslationHelper/Properties/Settings.settings index adc4809f..6abdd3d2 100644 --- a/src/ParatextPluginBackTranslationHelper/Properties/Settings.settings +++ b/src/ParatextPluginBackTranslationHelper/Properties/Settings.settings @@ -11,8 +11,5 @@ <Setting Name="WindowSize" Type="System.Drawing.Size" Scope="User"> <Value Profile="(Default)">800, 450</Value> </Setting> - <Setting Name="PinnedToTop" Type="System.Boolean" Scope="User"> - <Value Profile="(Default)">False</Value> - </Setting> </Settings> </SettingsFile> \ No newline at end of file diff --git a/src/ParatextPluginBackTranslationHelper/app.config b/src/ParatextPluginBackTranslationHelper/app.config index 1b50715a..16eaa4c6 100644 --- a/src/ParatextPluginBackTranslationHelper/app.config +++ b/src/ParatextPluginBackTranslationHelper/app.config @@ -72,9 +72,6 @@ <setting name="WindowSize" serializeAs="String"> <value>800, 450</value> </setting> - <setting name="PinnedToTop" serializeAs="String"> - <value>False</value> - </setting> </SIL.ParatextBackTranslationHelperPlugin.Properties.Settings> </userSettings> </configuration> \ No newline at end of file From 83eb0308bf5f64b82315af75c3401d041a66eef0 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Fri, 24 Feb 2023 15:39:01 -0600 Subject: [PATCH 07/71] change WriteToTarget so that it returns a bool so the ctrl can stop moving forward if it returns false. --- .../BackTranslationHelperForm.cs | 18 +++++++++++++----- .../TranslationHelperForm.cs | 3 ++- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs index aa299413..6577e0f3 100644 --- a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs +++ b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs @@ -370,7 +370,7 @@ void IBackTranslationHelperDataSource.MoveToNext() _setSyncReferenceGroup(_verseReference); } - void IBackTranslationHelperDataSource.WriteToTarget(string text) + bool IBackTranslationHelperDataSource.WriteToTarget(string text) { try { @@ -379,8 +379,9 @@ void IBackTranslationHelperDataSource.WriteToTarget(string text) var vrefTokensTarget = CalculateTargetTokens(_verseReference, _versesReference, text, UsfmTokensSource, UsfmTokensTarget); if (vrefTokensTarget == null) { - RequeryWarning(_verseReference); - return; // nothing to do + var result = RequeryWarning(_verseReference); + System.Diagnostics.Debug.WriteLine($"PtxBTH: RequeryWarning returned {result}"); + return result; } if (_writeLock == null) // it shouldn't be, but if it is, this should warn the user that it isn't going to work @@ -389,11 +390,13 @@ void IBackTranslationHelperDataSource.WriteToTarget(string text) var tokens = vrefTokensTarget.SelectMany(d => d.Value).ToList(); _projectTarget.PutUSFMTokens(_writeLock, tokens, _verseReference.BookNum); Unlock(); + return true; } catch (Exception ex) { MessageBox.Show($"Exception caught:\n{ex.Message}"); } + return false; } /// <summary> @@ -635,15 +638,20 @@ private static bool IsParagraphToken(IUSFMToken token) return (token is IUSFMMarkerToken markerToken) && (markerToken.Type == MarkerType.Paragraph) && _paragraphMarkers.Contains(markerToken.Marker); } - private void RequeryWarning(IVerseRef verseReference) + private bool RequeryWarning(IVerseRef verseReference) { // if we don't already have it... it's probably because something was changed in the project // TODO: do something! (probably just need to Initialize and UpdateData, so we'll have requeried everything) - var res = MessageBox.Show("It seems that something might have changed in the target project, which requires us to requery. Click 'Yes' to requery and start again. Click 'No' if you want to close this box (and copy the current text if you made changes for next time).", + var res = MessageBox.Show("Something might have changed in the source or target projects, which requires us to requery. If you have made changes, you'll want to click 'No', so you can copy the changes to the clipboard first. Then try again, and click 'Yes' next time to requery the projects after which you can paste your changes and continue.", ParatextBackTranslationHelperPlugin.PluginName, MessageBoxButtons.YesNo); if (res == DialogResult.Yes) + { GetNewReference(verseReference); + return true; + } + + return false; } protected override void OnShown(EventArgs e) diff --git a/src/SILConvertersOffice/TranslationHelperForm.cs b/src/SILConvertersOffice/TranslationHelperForm.cs index dc12467a..6a97b80b 100644 --- a/src/SILConvertersOffice/TranslationHelperForm.cs +++ b/src/SILConvertersOffice/TranslationHelperForm.cs @@ -95,10 +95,11 @@ public void Log(string message) // TODO: } - public void WriteToTarget(string text) + public bool WriteToTarget(string text) { ButtonPressed = FormButtons.ReplaceEvery; Close(); + return true; } public void SetDataUpdateProc(Action<BackTranslationHelperModel> updateDataProc) From b7a1123502c1af85c5c34099ba0d9890f815ccf6 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Fri, 24 Feb 2023 15:40:20 -0600 Subject: [PATCH 08/71] missed a file that had changes for moving the pin to top to the control --- .../BackTranslationHelperForm.Designer.cs | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.Designer.cs b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.Designer.cs index 0ab0c76b..c72a28f8 100644 --- a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.Designer.cs +++ b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.Designer.cs @@ -30,7 +30,6 @@ protected override void Dispose(bool disposing) private void InitializeComponent() { this.backTranslationHelperCtrl = new BackTranslationHelper.BackTranslationHelperCtrl(); - this.buttonPinToTop = new System.Windows.Forms.Button(); this.SuspendLayout(); // // backTranslationHelperCtrl @@ -49,24 +48,11 @@ private void InitializeComponent() this.backTranslationHelperCtrl.Size = new System.Drawing.Size(790, 449); this.backTranslationHelperCtrl.TabIndex = 1; // - // buttonPinToTop - // - this.buttonPinToTop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.buttonPinToTop.Image = global::SIL.ParatextBackTranslationHelperPlugin.Properties.Resources.pinup; - this.buttonPinToTop.Location = new System.Drawing.Point(768, 0); - this.buttonPinToTop.Name = "buttonPinToTop"; - this.buttonPinToTop.Size = new System.Drawing.Size(32, 32); - this.buttonPinToTop.TabIndex = 2; - this.buttonPinToTop.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText; - this.buttonPinToTop.UseVisualStyleBackColor = true; - this.buttonPinToTop.Click += new System.EventHandler(this.ButtonPinToTop_Click); - // // BackTranslationHelperForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(800, 450); - this.Controls.Add(this.buttonPinToTop); this.Controls.Add(this.backTranslationHelperCtrl); this.Name = "BackTranslationHelperForm"; this.Text = "Back Translating from {0} - {1} in verse: {2}"; @@ -80,6 +66,5 @@ private void InitializeComponent() #endregion private BackTranslationHelper.BackTranslationHelperCtrl backTranslationHelperCtrl; - private System.Windows.Forms.Button buttonPinToTop; } } \ No newline at end of file From 579286ff0e5c0dd7f61fe2af9f4dfdfc99ad3070 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Fri, 24 Feb 2023 15:41:32 -0600 Subject: [PATCH 09/71] added some debugging statements so I can figure out why we're overwriting data after editing manually in Ptx. --- .../BackTranslationHelperForm.cs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs index 6577e0f3..583539e3 100644 --- a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs +++ b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs @@ -122,6 +122,8 @@ private void ScriptureDataChangedHandlerTarget(IProject sender, int bookNum, int private void Host_VerseRefChanged(IPluginHost sender, IVerseRef newReference, SyncReferenceGroup group) { + System.Diagnostics.Debug.WriteLine($"PtxBTH: In Host_VerseRefChanged {newReference} & {group}, _isNotInFocus: {_isNotInFocus}, IsModified: {backTranslationHelperCtrl.IsModified}"); + // since this will initialize the _verseReference, which is intended to be the first // of a series of verses... // UPDATE: but not if the Form isn't in focus (so we don't thrash around converting stuff while @@ -216,9 +218,14 @@ private string CurrentSourceData var keyBookChapterVerse = GetBookChapterVerseKey(_verseReference); if (!UsfmTokensSource.TryGetValue(keyBookChapterVerse, out List<IUSFMToken> tokens)) { + System.Diagnostics.Debug.WriteLine($"PtxBTH: Loading UsfmTokensSource for {keyBookChapterVerse}"); tokens = _projectSource.GetUSFMTokens(_verseReference.BookNum, _verseReference.ChapterNum, _verseReference.VerseNum).ToList(); UsfmTokensSource.Add(keyBookChapterVerse, tokens); } + else + { + System.Diagnostics.Debug.WriteLine($"PtxBTH: Already load UsfmTokensSource for {keyBookChapterVerse}"); + } var data = tokens.OfType<IUSFMTextToken>() .Where(t => t.IsPublishableVernacular && IsMatchingVerse(t.VerseRef, _verseReference)) @@ -251,12 +258,17 @@ private string CurrentTargetData var bookChapterKey = GetBookChapterKey(_verseReference); if (!UsfmTokensTarget.TryGetValue(bookChapterKey, out SortedDictionary<string, List<IUSFMToken>> vrefTokens)) { + System.Diagnostics.Debug.WriteLine($"PtxBTH: Loading UsfmTokensTarget for {bookChapterKey}"); var chapterTokens = _projectTarget.GetUSFMTokens(_verseReference.BookNum, _verseReference.ChapterNum).ToList(); var dict = chapterTokens.GroupBy(t => t.VerseRef, t => t, (key, g) => new { VerseRef = key, USFMTokens = g.ToList() }) .ToDictionary(t => GetBookChapterVerseKey(t.VerseRef), t => t.USFMTokens); vrefTokens = new SortedDictionary<string, List<IUSFMToken>>(dict); UsfmTokensTarget.Add(bookChapterKey, vrefTokens); } + else + { + System.Diagnostics.Debug.WriteLine($"PtxBTH: Already load UsfmTokensTarget for {bookChapterKey}"); + } var bookChapterVerseKey = GetBookChapterVerseKey(_verseReference); @@ -357,7 +369,7 @@ void IBackTranslationHelperDataSource.SetDataUpdateProc(Action<BackTranslationHe void IBackTranslationHelperDataSource.Log(string message) { - _host.Log(_plugin, message); + _host.Log(_plugin, $"PtxBTH: {message}"); } void IBackTranslationHelperDataSource.MoveToNext() @@ -374,6 +386,8 @@ bool IBackTranslationHelperDataSource.WriteToTarget(string text) { try { + System.Diagnostics.Debug.WriteLine("PtxBTH: In WriteToTarget"); + _buttonPressed = ButtonPressed.WriteToTarget; var vrefTokensTarget = CalculateTargetTokens(_verseReference, _versesReference, text, UsfmTokensSource, UsfmTokensTarget); @@ -696,7 +710,7 @@ private void BackTranslationHelperForm_Deactivate(object sender, EventArgs e) // so purge the source and target tokens which would force us to requery them _isNotInFocus = true; - System.Diagnostics.Debug.WriteLine($"BackTranslationHelperForm_Deactivate: _isNotInFocus = '{_isNotInFocus}'"); + System.Diagnostics.Debug.WriteLine($"PtxBTH: BackTranslationHelperForm_Deactivate: _isNotInFocus = '{_isNotInFocus}', IsModified: {backTranslationHelperCtrl.IsModified}, _verseReference: {_verseReference}"); /* * New plan: don't move from the current verse if it's modified. but this is now handled in GetNewReference @@ -706,6 +720,7 @@ private void BackTranslationHelperForm_Deactivate(object sender, EventArgs e) UsfmTokensSource.Remove(keyBookChapterVerse); } + System.Diagnostics.Debug.WriteLine($"PtxBTH: BackTranslationHelperForm_Activated: _isNotInFocus = '{_isNotInFocus}', IsModified: {backTranslationHelperCtrl.IsModified}, _verseReference: {_verseReference}"); var bookChapterKey = GetBookChapterKey(_verseReference); if (UsfmTokensTarget.ContainsKey(bookChapterKey)) { From 9360e2d880a4601d98380553cdaaf63d91d78083 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Fri, 24 Feb 2023 15:45:25 -0600 Subject: [PATCH 10/71] figured out the fix for overwriting data: don't mark the data dirty until the form comes back in focus. (if you do it when it loses focus, it may get marked clean thru the call from Ptx on change of verse (if the user is editing in different verses in Ptx). By waiting until we get back, we can guarantee it gets refreshed when the Form has focus (by which Ptx editing is finished) --- .../BackTranslationHelperForm.cs | 33 ++++++++++++------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs index 583539e3..6a66ae0f 100644 --- a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs +++ b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs @@ -129,9 +129,7 @@ private void Host_VerseRefChanged(IPluginHost sender, IVerseRef newReference, Sy // UPDATE: but not if the Form isn't in focus (so we don't thrash around converting stuff while // the user may be editing stuff in Ptx) if (_isNotInFocus && backTranslationHelperCtrl.IsModified) - { return; - } var newRef = (newReference.RepresentsMultipleVerses) ? newReference.AllVerses.First() : newReference; GetNewReference(newRef); @@ -663,7 +661,7 @@ private bool RequeryWarning(IVerseRef verseReference) { GetNewReference(verseReference); return true; - } + } return false; } @@ -712,27 +710,38 @@ private void BackTranslationHelperForm_Deactivate(object sender, EventArgs e) System.Diagnostics.Debug.WriteLine($"PtxBTH: BackTranslationHelperForm_Deactivate: _isNotInFocus = '{_isNotInFocus}', IsModified: {backTranslationHelperCtrl.IsModified}, _verseReference: {_verseReference}"); - /* - * New plan: don't move from the current verse if it's modified. but this is now handled in GetNewReference - var keyBookChapterVerse = GetBookChapterVerseKey(_verseReference); + // if nothing's been changed, then no need to show it as needing to be requeried + // WRONG: if they edit something while deactivated, we won’t query it again if we don’t clear it + //if (!backTranslationHelperCtrl.IsModified) + // return; + } + + private void PurgeSourceData(IVerseRef verseReference) + { + var keyBookChapterVerse = GetBookChapterVerseKey(verseReference); if (UsfmTokensSource.ContainsKey(keyBookChapterVerse)) { UsfmTokensSource.Remove(keyBookChapterVerse); } + } + private void BackTranslationHelperForm_Activated(object sender, EventArgs e) + { + _isNotInFocus = false; System.Diagnostics.Debug.WriteLine($"PtxBTH: BackTranslationHelperForm_Activated: _isNotInFocus = '{_isNotInFocus}', IsModified: {backTranslationHelperCtrl.IsModified}, _verseReference: {_verseReference}"); + + // make the source and target data stale, and trigger a requery... + PurgeSourceData(_verseReference); + var bookChapterKey = GetBookChapterKey(_verseReference); if (UsfmTokensTarget.ContainsKey(bookChapterKey)) { UsfmTokensTarget.Remove(bookChapterKey); } - */ - } - private void BackTranslationHelperForm_Activated(object sender, EventArgs e) - { - _isNotInFocus = false; - System.Diagnostics.Debug.WriteLine($"BackTranslationHelperForm_Activated: _isNotInFocus = '{_isNotInFocus}'"); + // unless we were editing it, and then force it to stay the same + if (backTranslationHelperCtrl.IsModified) + return; GetNewReference(_verseReference); } From 57c160905519d164f693f2362cda729f8fd83ebb Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Fri, 24 Feb 2023 17:40:38 -0600 Subject: [PATCH 11/71] the repositioning of the form after startup (from where it was when we shut down last time) wasn't working. Changed it to wait for the Load event before setting the boundaries (rather than the ctor) --- .../BackTranslationHelperForm.Designer.cs | 1 + .../BackTranslationHelperForm.cs | 21 +++++++++++-------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.Designer.cs b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.Designer.cs index c72a28f8..32eec23e 100644 --- a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.Designer.cs +++ b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.Designer.cs @@ -59,6 +59,7 @@ private void InitializeComponent() this.Activated += new System.EventHandler(this.BackTranslationHelperForm_Activated); this.Deactivate += new System.EventHandler(this.BackTranslationHelperForm_Deactivate); this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.BackTranslationHelperForm_FormClosing); + this.Load += new System.EventHandler(this.BackTranslationHelperForm_Load); this.ResumeLayout(false); this.PerformLayout(); } diff --git a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs index 6a66ae0f..ec3cd43b 100644 --- a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs +++ b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs @@ -89,15 +89,6 @@ public BackTranslationHelperForm(IPluginHost host, ParatextBackTranslationHelper _host.VerseRefChanged += Host_VerseRefChanged; _projectSource.ScriptureDataChanged += ScriptureDataChangedHandlerSource; _projectTarget.ScriptureDataChanged += ScriptureDataChangedHandlerTarget; - - Text = GetFrameText(_projectSource, _projectTarget, _verseReference); - Location = Properties.Settings.Default.WindowLocation; - WindowState = Properties.Settings.Default.DefaultWindowState; - if (MinimumSize.Height <= Properties.Settings.Default.WindowSize.Height && - MinimumSize.Width <= Properties.Settings.Default.WindowSize.Width) - { - Size = Properties.Settings.Default.WindowSize; - } } private static string GetFrameText(IProject projectSource, IProject projectTarget, IVerseRef versesReference) @@ -672,6 +663,18 @@ protected override void OnShown(EventArgs e) GetNewReference(_verseReference); } + private void BackTranslationHelperForm_Load(object sender, EventArgs e) + { + Text = GetFrameText(_projectSource, _projectTarget, _verseReference); + Location = Properties.Settings.Default.WindowLocation; + WindowState = Properties.Settings.Default.DefaultWindowState; + if (MinimumSize.Height <= Properties.Settings.Default.WindowSize.Height && + MinimumSize.Width <= Properties.Settings.Default.WindowSize.Width) + { + Size = Properties.Settings.Default.WindowSize; + } + } + private void BackTranslationHelperForm_FormClosing(object sender, FormClosingEventArgs e) { // only allow Cancel or ReplaceEvery From 54313106f1513a96f1bc3c3ddeb50b724043c1ea Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sat, 25 Feb 2023 08:31:11 -0600 Subject: [PATCH 12/71] update LangVersion to 'latest' in projects that are behind --- .../ParatextPluginBackTranslationHelper.csproj | 8 ++++---- .../SecOffice_ManagedAggregator03.csproj | 4 ++-- src/SILConvertersOffice/SILConvertersOffice.csproj | 4 ++-- src/SILConvertersOffice10/SILConvertersOffice10.csproj | 4 ++-- src/SILConvertersOffice13/SILConvertersOffice13.csproj | 4 ++-- src/SILConvertersWordML/TestBwdc/TestBwdc.csproj | 4 ++-- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj b/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj index 01a8395b..b0c2bc89 100644 --- a/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj +++ b/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj @@ -39,7 +39,7 @@ <DefineConstants>DEBUG;TRACE</DefineConstants> <DebugType>full</DebugType> <PlatformTarget>x64</PlatformTarget> - <LangVersion>7.3</LangVersion> + <LangVersion>latest</LangVersion> <ErrorReport>prompt</ErrorReport> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'"> @@ -48,7 +48,7 @@ <Optimize>true</Optimize> <DebugType>pdbonly</DebugType> <PlatformTarget>x64</PlatformTarget> - <LangVersion>7.3</LangVersion> + <LangVersion>latest</LangVersion> <ErrorReport>prompt</ErrorReport> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'"> @@ -57,7 +57,7 @@ <DefineConstants>DEBUG;TRACE</DefineConstants> <DebugType>full</DebugType> <PlatformTarget>x86</PlatformTarget> - <LangVersion>7.3</LangVersion> + <LangVersion>latest</LangVersion> <ErrorReport>prompt</ErrorReport> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'"> @@ -66,7 +66,7 @@ <Optimize>true</Optimize> <DebugType>pdbonly</DebugType> <PlatformTarget>x86</PlatformTarget> - <LangVersion>7.3</LangVersion> + <LangVersion>latest</LangVersion> <ErrorReport>prompt</ErrorReport> </PropertyGroup> <ItemGroup> diff --git a/src/SILConvertersOffice/ManagedAggregator/SecOffice_ManagedAggregator03.csproj b/src/SILConvertersOffice/ManagedAggregator/SecOffice_ManagedAggregator03.csproj index ad3d215f..47eacf59 100644 --- a/src/SILConvertersOffice/ManagedAggregator/SecOffice_ManagedAggregator03.csproj +++ b/src/SILConvertersOffice/ManagedAggregator/SecOffice_ManagedAggregator03.csproj @@ -58,7 +58,7 @@ <DefineConstants>DEBUG;TRACE</DefineConstants> <DebugType>full</DebugType> <PlatformTarget>x64</PlatformTarget> - <LangVersion>7.3</LangVersion> + <LangVersion>latest</LangVersion> <ErrorReport>prompt</ErrorReport> <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet> <CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules> @@ -69,7 +69,7 @@ <Optimize>true</Optimize> <DebugType>pdbonly</DebugType> <PlatformTarget>x86</PlatformTarget> - <LangVersion>7.3</LangVersion> + <LangVersion>latest</LangVersion> <ErrorReport>prompt</ErrorReport> <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet> <CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules> diff --git a/src/SILConvertersOffice/SILConvertersOffice.csproj b/src/SILConvertersOffice/SILConvertersOffice.csproj index 47fc0f92..6b94caf8 100644 --- a/src/SILConvertersOffice/SILConvertersOffice.csproj +++ b/src/SILConvertersOffice/SILConvertersOffice.csproj @@ -69,7 +69,7 @@ <DefineConstants>TRACE</DefineConstants> <Optimize>true</Optimize> <PlatformTarget>x64</PlatformTarget> - <LangVersion>7.3</LangVersion> + <LangVersion>latest</LangVersion> <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'"> @@ -77,7 +77,7 @@ <OutputPath>..\..\output\x64\Debug\</OutputPath> <DefineConstants>DEBUG;TRACE</DefineConstants> <PlatformTarget>x64</PlatformTarget> - <LangVersion>7.3</LangVersion> + <LangVersion>latest</LangVersion> <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> </PropertyGroup> <ItemGroup> diff --git a/src/SILConvertersOffice10/SILConvertersOffice10.csproj b/src/SILConvertersOffice10/SILConvertersOffice10.csproj index 1ebaf8dc..49a653da 100644 --- a/src/SILConvertersOffice10/SILConvertersOffice10.csproj +++ b/src/SILConvertersOffice10/SILConvertersOffice10.csproj @@ -63,7 +63,7 @@ <OutputPath>bin\x64\Debug\</OutputPath> <DefineConstants>TRACE;DEBUG;BUILD_FOR_OFF14</DefineConstants> <PlatformTarget>x64</PlatformTarget> - <LangVersion>7.3</LangVersion> + <LangVersion>latest</LangVersion> <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'"> @@ -71,7 +71,7 @@ <DefineConstants>TRACE;BUILD_FOR_OFF14</DefineConstants> <Optimize>true</Optimize> <PlatformTarget>x64</PlatformTarget> - <LangVersion>7.3</LangVersion> + <LangVersion>latest</LangVersion> <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> </PropertyGroup> <PropertyGroup> diff --git a/src/SILConvertersOffice13/SILConvertersOffice13.csproj b/src/SILConvertersOffice13/SILConvertersOffice13.csproj index 8240e79f..85d4733f 100644 --- a/src/SILConvertersOffice13/SILConvertersOffice13.csproj +++ b/src/SILConvertersOffice13/SILConvertersOffice13.csproj @@ -63,7 +63,7 @@ <OutputPath>..\..\output\x64\Debug\</OutputPath> <DefineConstants>TRACE;DEBUG;BUILD_FOR_OFF15</DefineConstants> <PlatformTarget>x64</PlatformTarget> - <LangVersion>7.3</LangVersion> + <LangVersion>latest</LangVersion> <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'"> @@ -72,7 +72,7 @@ <Optimize>true</Optimize> <RegisterForComInterop>false</RegisterForComInterop> <PlatformTarget>x64</PlatformTarget> - <LangVersion>7.3</LangVersion> + <LangVersion>latest</LangVersion> <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> </PropertyGroup> <PropertyGroup> diff --git a/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj b/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj index 98effa92..1cd54d0d 100644 --- a/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj +++ b/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj @@ -61,7 +61,7 @@ <DefineConstants>DEBUG;TRACE</DefineConstants> <DebugType>full</DebugType> <PlatformTarget>x64</PlatformTarget> - <LangVersion>7.3</LangVersion> + <LangVersion>latest</LangVersion> <ErrorReport>prompt</ErrorReport> <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet> </PropertyGroup> @@ -71,7 +71,7 @@ <Optimize>true</Optimize> <DebugType>pdbonly</DebugType> <PlatformTarget>x64</PlatformTarget> - <LangVersion>7.3</LangVersion> + <LangVersion>latest</LangVersion> <ErrorReport>prompt</ErrorReport> <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet> </PropertyGroup> From dd196408955b72bdf98ee13e0ae41d577e1cd9b8 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sat, 25 Feb 2023 08:35:50 -0600 Subject: [PATCH 13/71] don't bother asking the user if they want to requery the data; just do it for them (it shouldn't overwrite any edited text) --- .../BackTranslationHelperForm.cs | 36 ++++++++----------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs index ec3cd43b..59213190 100644 --- a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs +++ b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs @@ -382,13 +382,23 @@ bool IBackTranslationHelperDataSource.WriteToTarget(string text) var vrefTokensTarget = CalculateTargetTokens(_verseReference, _versesReference, text, UsfmTokensSource, UsfmTokensTarget); if (vrefTokensTarget == null) { - var result = RequeryWarning(_verseReference); - System.Diagnostics.Debug.WriteLine($"PtxBTH: RequeryWarning returned {result}"); - return result; + // if we don't already have it... it's probably because something was changed in the project + // external to this form (we lose the data if we get activated). + System.Diagnostics.Debug.WriteLine($"PtxBTH: RequeryWarning"); + + // Note: if the Target Translation textbox has modified data, the current implementation shouldn't + // overwrite it (see UpdateData in BackTranslationHelperCtrl.cs, which shows that if it's + // modified, it will get it from the edit box instead of the model... i.e. won't change it) + // So if we don't have it, just requery the data and return false (so we don't move on) + GetNewReference(_verseReference); + + // by returning false, we prevent it from doing 'next' if that's the button the user clicked, + // while resetting the IsModified status, so they can click 'Next' next time and have the edited + // text written to Ptx + return false; } - if (_writeLock == null) // it shouldn't be, but if it is, this should warn the user that it isn't going to work - _writeLock = _projectTarget.RequestWriteLock(_plugin, ReleaseRequested, _verseReference.BookNum, _verseReference.ChapterNum); + _writeLock ??= _projectTarget.RequestWriteLock(_plugin, ReleaseRequested, _verseReference.BookNum, _verseReference.ChapterNum); var tokens = vrefTokensTarget.SelectMany(d => d.Value).ToList(); _projectTarget.PutUSFMTokens(_writeLock, tokens, _verseReference.BookNum); @@ -641,22 +651,6 @@ private static bool IsParagraphToken(IUSFMToken token) return (token is IUSFMMarkerToken markerToken) && (markerToken.Type == MarkerType.Paragraph) && _paragraphMarkers.Contains(markerToken.Marker); } - private bool RequeryWarning(IVerseRef verseReference) - { - // if we don't already have it... it's probably because something was changed in the project - // TODO: do something! (probably just need to Initialize and UpdateData, so we'll have requeried everything) - var res = MessageBox.Show("Something might have changed in the source or target projects, which requires us to requery. If you have made changes, you'll want to click 'No', so you can copy the changes to the clipboard first. Then try again, and click 'Yes' next time to requery the projects after which you can paste your changes and continue.", - ParatextBackTranslationHelperPlugin.PluginName, MessageBoxButtons.YesNo); - - if (res == DialogResult.Yes) - { - GetNewReference(verseReference); - return true; - } - - return false; - } - protected override void OnShown(EventArgs e) { base.OnShown(e); From fc0d6f3f2a4fc372824e6cc8ee646791cb4bde46 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sat, 25 Feb 2023 08:50:23 -0600 Subject: [PATCH 14/71] updated projects to the new EcCore nuget 0.5.5 --- .../IndicConverters/IndicConverters.wixproj | 4 +-- .../IndicConverters/packages.config | 2 +- .../IndicConverters64bit.wixproj | 4 +-- .../IndicConverters64bit/packages.config | 2 +- .../SEC Setup 64bit/SEC Setup 64bit.wixproj | 4 +-- Installer/SEC Setup 64bit/packages.config | 2 +- Installer/SEC Setup/SEC Setup.wixproj | 4 +-- Installer/SEC Setup/packages.config | 2 +- Installer/ScHelpMM/ScHelpMM.wixproj | 4 +-- Installer/ScHelpMM/packages.config | 2 +- .../SetupSILConverters.wixproj | 4 +-- Installer/SetupSILConverters/packages.config | 2 +- .../TECkitPackageMM64bit.wixproj | 4 +-- .../TECkitPackage64bitMM/packages.config | 2 +- .../TECkitPackageMM/TECkitPackageMM.wixproj | 4 +-- Installer/TECkitPackageMM/packages.config | 2 +- src/AdaptIt2Unicode/AdaptIt2Unicode.csproj | 4 +-- src/AdaptIt2Unicode/packages.config | 2 +- src/BulkSFMConverter/SFMConv.csproj | 6 ++-- src/BulkSFMConverter/packages.config | 2 +- src/ClipboardEC/ClipboardEC.csproj | 6 ++-- src/ClipboardEC/packages.config | 2 +- src/DChartHelper/DChartHelper.csproj | 6 ++-- src/DChartHelper/packages.config | 2 +- ...ParatextPluginBackTranslationHelper.csproj | 28 +++++++++---------- .../packages.config | 2 +- .../SILConvertersInstaller.vbproj | 6 ++-- src/SILConvertersInstaller/packages.config | 2 +- .../SILConvertersOffice.csproj | 6 ++-- src/SILConvertersOffice/packages.config | 2 +- .../SILConvertersOffice07.csproj | 6 ++-- src/SILConvertersOffice07/packages.config | 2 +- .../SILConvertersOffice10.csproj | 6 ++-- src/SILConvertersOffice10/packages.config | 2 +- .../SILConvertersOffice13.csproj | 6 ++-- src/SILConvertersOffice13/packages.config | 2 +- .../SILConvertersWordML.csproj | 6 ++-- .../TestBwdc/TestBwdc.csproj | 22 ++++++++++----- .../TestBwdc/packages.config | 2 +- src/SILConvertersWordML/packages.config | 2 +- src/SilConvertersXML/SilConvertersXML.csproj | 6 ++-- src/SilConvertersXML/packages.config | 2 +- src/SpellingFixerEC/SpellingFixerEC.csproj | 6 ++-- src/SpellingFixerEC/packages.config | 2 +- .../TECkit Mapping Editor.csproj | 6 ++-- src/TECkit Mapping Editor/packages.config | 2 +- 46 files changed, 118 insertions(+), 86 deletions(-) diff --git a/Installer/Converter Packages/IndicConverters/IndicConverters.wixproj b/Installer/Converter Packages/IndicConverters/IndicConverters.wixproj index 2c520679..34089e77 100644 --- a/Installer/Converter Packages/IndicConverters/IndicConverters.wixproj +++ b/Installer/Converter Packages/IndicConverters/IndicConverters.wixproj @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="..\..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\..\packages\WiX.3.11.2\build\wix.props')" /> - <Import Project="..\..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -81,8 +81,8 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props'))" /> <Error Condition="!Exists('..\..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WiX.3.11.2\build\wix.props'))" /> + <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/Converter Packages/IndicConverters/packages.config b/Installer/Converter Packages/IndicConverters/packages.config index 42f10aa9..d556b890 100644 --- a/Installer/Converter Packages/IndicConverters/packages.config +++ b/Installer/Converter Packages/IndicConverters/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.4" /> + <package id="Encoding-Converters-Core" version="0.5.5" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/Converter Packages/IndicConverters64bit/IndicConverters64bit.wixproj b/Installer/Converter Packages/IndicConverters64bit/IndicConverters64bit.wixproj index 6bb85798..93d4b5fd 100644 --- a/Installer/Converter Packages/IndicConverters64bit/IndicConverters64bit.wixproj +++ b/Installer/Converter Packages/IndicConverters64bit/IndicConverters64bit.wixproj @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="..\..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\..\packages\WiX.3.11.2\build\wix.props')" /> - <Import Project="..\..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> <Platform Condition=" '$(Platform)' == '' ">x64</Platform> @@ -39,8 +39,8 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props'))" /> <Error Condition="!Exists('..\..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WiX.3.11.2\build\wix.props'))" /> + <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/Converter Packages/IndicConverters64bit/packages.config b/Installer/Converter Packages/IndicConverters64bit/packages.config index 42f10aa9..d556b890 100644 --- a/Installer/Converter Packages/IndicConverters64bit/packages.config +++ b/Installer/Converter Packages/IndicConverters64bit/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.4" /> + <package id="Encoding-Converters-Core" version="0.5.5" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/SEC Setup 64bit/SEC Setup 64bit.wixproj b/Installer/SEC Setup 64bit/SEC Setup 64bit.wixproj index ad6cc2c4..b295d21a 100644 --- a/Installer/SEC Setup 64bit/SEC Setup 64bit.wixproj +++ b/Installer/SEC Setup 64bit/SEC Setup 64bit.wixproj @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> <Platform Condition=" '$(Platform)' == '' ">x64</Platform> @@ -58,8 +58,8 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props'))" /> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/SEC Setup 64bit/packages.config b/Installer/SEC Setup 64bit/packages.config index 42f10aa9..d556b890 100644 --- a/Installer/SEC Setup 64bit/packages.config +++ b/Installer/SEC Setup 64bit/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.4" /> + <package id="Encoding-Converters-Core" version="0.5.5" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/SEC Setup/SEC Setup.wixproj b/Installer/SEC Setup/SEC Setup.wixproj index 688af7a5..8c37b8f8 100644 --- a/Installer/SEC Setup/SEC Setup.wixproj +++ b/Installer/SEC Setup/SEC Setup.wixproj @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -66,8 +66,8 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props'))" /> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/SEC Setup/packages.config b/Installer/SEC Setup/packages.config index 42f10aa9..d556b890 100644 --- a/Installer/SEC Setup/packages.config +++ b/Installer/SEC Setup/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.4" /> + <package id="Encoding-Converters-Core" version="0.5.5" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/ScHelpMM/ScHelpMM.wixproj b/Installer/ScHelpMM/ScHelpMM.wixproj index 0242582e..05c3d151 100644 --- a/Installer/ScHelpMM/ScHelpMM.wixproj +++ b/Installer/ScHelpMM/ScHelpMM.wixproj @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -47,8 +47,8 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props'))" /> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/ScHelpMM/packages.config b/Installer/ScHelpMM/packages.config index 42f10aa9..d556b890 100644 --- a/Installer/ScHelpMM/packages.config +++ b/Installer/ScHelpMM/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.4" /> + <package id="Encoding-Converters-Core" version="0.5.5" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/SetupSILConverters/SetupSILConverters.wixproj b/Installer/SetupSILConverters/SetupSILConverters.wixproj index c51cea8e..fc0cf415 100644 --- a/Installer/SetupSILConverters/SetupSILConverters.wixproj +++ b/Installer/SetupSILConverters/SetupSILConverters.wixproj @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> <Import Project="$([MSBuild]::GetPathOfFileAbove(directory.build.props))" Condition="Exists('$([MSBuild]::GetPathOfFileAbove(directory.build.props))')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -65,8 +65,8 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props'))" /> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> </Target> <Target Name="PostBuildCopy" AfterTargets="Build"> <PropertyGroup> diff --git a/Installer/SetupSILConverters/packages.config b/Installer/SetupSILConverters/packages.config index 42f10aa9..d556b890 100644 --- a/Installer/SetupSILConverters/packages.config +++ b/Installer/SetupSILConverters/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.4" /> + <package id="Encoding-Converters-Core" version="0.5.5" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/TECkitPackage64bitMM/TECkitPackageMM64bit.wixproj b/Installer/TECkitPackage64bitMM/TECkitPackageMM64bit.wixproj index f98f4ca9..8d1c0b5f 100644 --- a/Installer/TECkitPackage64bitMM/TECkitPackageMM64bit.wixproj +++ b/Installer/TECkitPackage64bitMM/TECkitPackageMM64bit.wixproj @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x64</Platform> @@ -38,8 +38,8 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props'))" /> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/TECkitPackage64bitMM/packages.config b/Installer/TECkitPackage64bitMM/packages.config index 42f10aa9..d556b890 100644 --- a/Installer/TECkitPackage64bitMM/packages.config +++ b/Installer/TECkitPackage64bitMM/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.4" /> + <package id="Encoding-Converters-Core" version="0.5.5" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/TECkitPackageMM/TECkitPackageMM.wixproj b/Installer/TECkitPackageMM/TECkitPackageMM.wixproj index 6e155aa0..d43e4c88 100644 --- a/Installer/TECkitPackageMM/TECkitPackageMM.wixproj +++ b/Installer/TECkitPackageMM/TECkitPackageMM.wixproj @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -38,8 +38,8 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props'))" /> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/TECkitPackageMM/packages.config b/Installer/TECkitPackageMM/packages.config index 42f10aa9..d556b890 100644 --- a/Installer/TECkitPackageMM/packages.config +++ b/Installer/TECkitPackageMM/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.4" /> + <package id="Encoding-Converters-Core" version="0.5.5" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/src/AdaptIt2Unicode/AdaptIt2Unicode.csproj b/src/AdaptIt2Unicode/AdaptIt2Unicode.csproj index 68e687ce..4a5c7491 100644 --- a/src/AdaptIt2Unicode/AdaptIt2Unicode.csproj +++ b/src/AdaptIt2Unicode/AdaptIt2Unicode.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -204,6 +204,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/AdaptIt2Unicode/packages.config b/src/AdaptIt2Unicode/packages.config index 59d699ac..dce80ccc 100644 --- a/src/AdaptIt2Unicode/packages.config +++ b/src/AdaptIt2Unicode/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.4" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/BulkSFMConverter/SFMConv.csproj b/src/BulkSFMConverter/SFMConv.csproj index d6a36d33..648d7735 100644 --- a/src/BulkSFMConverter/SFMConv.csproj +++ b/src/BulkSFMConverter/SFMConv.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -84,6 +84,8 @@ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> </PropertyGroup> <ItemGroup> + <!--nuget doesn't add the references to the csproj files properly; not sure why. Here is what + you might want to manually add to the csproj file instead--> <Reference Include="ECInterfaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x86" Condition="('$(Platform)' == 'x86' or '$(Platform)' == 'AnyCPU') and ('$(OS)'=='Windows_NT')"> <HintPath>$(EcLibFilesPath)\net48\x86\ECInterfaces.dll</HintPath> </Reference> @@ -205,6 +207,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/BulkSFMConverter/packages.config b/src/BulkSFMConverter/packages.config index 59d699ac..dce80ccc 100644 --- a/src/BulkSFMConverter/packages.config +++ b/src/BulkSFMConverter/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.4" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/ClipboardEC/ClipboardEC.csproj b/src/ClipboardEC/ClipboardEC.csproj index d3f479cc..1f78d241 100644 --- a/src/ClipboardEC/ClipboardEC.csproj +++ b/src/ClipboardEC/ClipboardEC.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <ProjectType>Local</ProjectType> <ProductVersion>9.0.30729</ProductVersion> @@ -109,6 +109,8 @@ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> </PropertyGroup> <ItemGroup> + <!--nuget doesn't add the references to the csproj files properly; not sure why. Here is what + you might want to manually add to the csproj file instead--> <Reference Include="ECInterfaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x86" Condition="('$(Platform)' == 'x86' or '$(Platform)' == 'AnyCPU') and ('$(OS)'=='Windows_NT')"> <HintPath>$(EcLibFilesPath)\net48\x86\ECInterfaces.dll</HintPath> </Reference> @@ -196,6 +198,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/ClipboardEC/packages.config b/src/ClipboardEC/packages.config index 59d699ac..dce80ccc 100644 --- a/src/ClipboardEC/packages.config +++ b/src/ClipboardEC/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.4" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/DChartHelper/DChartHelper.csproj b/src/DChartHelper/DChartHelper.csproj index 32ae205c..3c6263bb 100644 --- a/src/DChartHelper/DChartHelper.csproj +++ b/src/DChartHelper/DChartHelper.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -87,6 +87,8 @@ <Reference Include="AIGuesserEC"> <HintPath>$(EcDistFilesPath)\win-$(Platform)\native\AIGuesserEC.dll</HintPath> </Reference> + <!--nuget doesn't add the references to the csproj files properly; not sure why. Here is what + you might want to manually add to the csproj file instead--> <Reference Include="ECInterfaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x86" Condition="('$(Platform)' == 'x86' or '$(Platform)' == 'AnyCPU') and ('$(OS)'=='Windows_NT')"> <HintPath>$(EcLibFilesPath)\net48\x86\ECInterfaces.dll</HintPath> </Reference> @@ -253,6 +255,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/DChartHelper/packages.config b/src/DChartHelper/packages.config index 59d699ac..dce80ccc 100644 --- a/src/DChartHelper/packages.config +++ b/src/DChartHelper/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.4" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj b/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj index b0c2bc89..c550d7e4 100644 --- a/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj +++ b/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="16.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> @@ -75,6 +75,18 @@ <Reference Include="AIGuesserEC" Condition="('$(Platform)' == 'x64') and ('$(OS)'=='Windows_NT')"> <HintPath>$(EcDistFilesPath)\win-$(Platform)\native\AIGuesserEC.dll</HintPath> </Reference> + <Reference Include="ECInterfaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x86" Condition="('$(Platform)' == 'x86' or '$(Platform)' == 'AnyCPU') and ('$(OS)'=='Windows_NT')"> + <HintPath>$(EcLibFilesPath)\net48\x86\ECInterfaces.dll</HintPath> + </Reference> + <Reference Include="ECInterfaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x64" Condition="('$(Platform)' == 'x64') and ('$(OS)'=='Windows_NT')"> + <HintPath>$(EcLibFilesPath)\net48\x64\ECInterfaces.dll</HintPath> + </Reference> + <Reference Include="SilEncConverters40, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x86" Condition="('$(Platform)' == 'x86' or '$(Platform)' == 'AnyCPU') and ('$(OS)'=='Windows_NT')"> + <HintPath>$(EcLibFilesPath)\net48\x86\SilEncConverters40.dll</HintPath> + </Reference> + <Reference Include="SilEncConverters40, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x64" Condition="('$(Platform)' == 'x64') and ('$(OS)'=='Windows_NT')"> + <HintPath>$(EcLibFilesPath)\net48\x64\SilEncConverters40.dll</HintPath> + </Reference> <Reference Include="EcTranslators" Condition="('$(Platform)' == 'x64') and ('$(OS)'=='Windows_NT')"> <HintPath>$(EcDistFilesPath)\win-$(Platform)\native\EcTranslators.dll</HintPath> </Reference> @@ -84,12 +96,6 @@ <Reference Include="BackTranslationHelper" Condition="('$(OS)'=='Windows_NT')"> <HintPath>$(EcDistFilesPath)\win-$(Platform)\native\BackTranslationHelper.dll</HintPath> </Reference> - <Reference Include="ECInterfaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x86" Condition="('$(Platform)' == 'x86' or '$(Platform)' == 'AnyCPU') and ('$(OS)'=='Windows_NT')"> - <HintPath>$(EcLibFilesPath)\net48\x86\ECInterfaces.dll</HintPath> - </Reference> - <Reference Include="ECInterfaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x64" Condition="('$(Platform)' == 'x64') and ('$(OS)'=='Windows_NT')"> - <HintPath>$(EcLibFilesPath)\net48\x64\ECInterfaces.dll</HintPath> - </Reference> <Reference Include="EmbeddedUiPluginInterfaces, Version=2.0.21.0, Culture=neutral, PublicKeyToken=583bede96b7c94a3, processorArchitecture=MSIL"> <HintPath>..\..\packages\ParatextEmbeddedUiPluginInterfaces.2.0.21\lib\net48\EmbeddedUiPluginInterfaces.dll</HintPath> </Reference> @@ -99,12 +105,6 @@ <Reference Include="PluginInterfaces, Version=2.0.21.0, Culture=neutral, PublicKeyToken=583bede96b7c94a3, processorArchitecture=MSIL"> <HintPath>..\..\packages\ParatextPluginInterfaces.2.0.21\lib\netstandard2.0\PluginInterfaces.dll</HintPath> </Reference> - <Reference Include="SilEncConverters40, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x86" Condition="('$(Platform)' == 'x86' or '$(Platform)' == 'AnyCPU') and ('$(OS)'=='Windows_NT')"> - <HintPath>$(EcLibFilesPath)\net48\x86\SilEncConverters40.dll</HintPath> - </Reference> - <Reference Include="SilEncConverters40, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x64" Condition="('$(Platform)' == 'x64') and ('$(OS)'=='Windows_NT')"> - <HintPath>$(EcLibFilesPath)\net48\x64\SilEncConverters40.dll</HintPath> - </Reference> <Reference Include="Microsoft.VisualBasic" /> <Reference Include="System"> <HintPath>..\..\..\..\..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.8\System.dll</HintPath> @@ -227,6 +227,6 @@ ren "%25ParatextInstallDir%25\plugins\$(ProjectName)\$(TargetFileName)" "$(Proje <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/ParatextPluginBackTranslationHelper/packages.config b/src/ParatextPluginBackTranslationHelper/packages.config index 1c238f83..d0b7a12f 100644 --- a/src/ParatextPluginBackTranslationHelper/packages.config +++ b/src/ParatextPluginBackTranslationHelper/packages.config @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.4" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> <package id="Newtonsoft.Json" version="13.0.1" targetFramework="net48" /> <package id="ParatextEmbeddedUiPluginInterfaces" version="2.0.21" targetFramework="net48" /> <package id="ParatextPluginInterfaces" version="2.0.21" targetFramework="net48" /> diff --git a/src/SILConvertersInstaller/SILConvertersInstaller.vbproj b/src/SILConvertersInstaller/SILConvertersInstaller.vbproj index 75d5f85f..b2b29f2b 100644 --- a/src/SILConvertersInstaller/SILConvertersInstaller.vbproj +++ b/src/SILConvertersInstaller/SILConvertersInstaller.vbproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <ProjectType>Local</ProjectType> <ProductVersion>9.0.30729</ProductVersion> @@ -107,6 +107,8 @@ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> </PropertyGroup> <ItemGroup> + <!--nuget doesn't add the references to the csproj files properly; not sure why. Here is what + you might want to manually add to the csproj file instead--> <Reference Include="ECInterfaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x86" Condition="('$(Platform)' == 'x86' or '$(Platform)' == 'AnyCPU') and ('$(OS)'=='Windows_NT')"> <HintPath>$(EcLibFilesPath)\net48\x86\ECInterfaces.dll</HintPath> </Reference> @@ -242,6 +244,6 @@ xcopy /s /y "$(EcDistFilesPath)\redist\*.*" "$(SolutionDir)output\$(PlatformName <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersInstaller/packages.config b/src/SILConvertersInstaller/packages.config index 59d699ac..dce80ccc 100644 --- a/src/SILConvertersInstaller/packages.config +++ b/src/SILConvertersInstaller/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.4" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SILConvertersOffice/SILConvertersOffice.csproj b/src/SILConvertersOffice/SILConvertersOffice.csproj index 6b94caf8..d0246836 100644 --- a/src/SILConvertersOffice/SILConvertersOffice.csproj +++ b/src/SILConvertersOffice/SILConvertersOffice.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -91,6 +91,8 @@ <SpecificVersion>False</SpecificVersion> <HintPath>DistFiles\DAO.DLL</HintPath> </Reference> + <!--nuget doesn't add the references to the csproj files properly; not sure why. Here is what + you might want to manually add to the csproj file instead--> <Reference Include="ECInterfaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x86" Condition="('$(Platform)' == 'x86' or '$(Platform)' == 'AnyCPU') and ('$(OS)'=='Windows_NT')"> <HintPath>$(EcLibFilesPath)\net48\x86\ECInterfaces.dll</HintPath> </Reference> @@ -313,6 +315,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersOffice/packages.config b/src/SILConvertersOffice/packages.config index 59d699ac..dce80ccc 100644 --- a/src/SILConvertersOffice/packages.config +++ b/src/SILConvertersOffice/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.4" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SILConvertersOffice07/SILConvertersOffice07.csproj b/src/SILConvertersOffice07/SILConvertersOffice07.csproj index 9405bb50..bad6f752 100644 --- a/src/SILConvertersOffice07/SILConvertersOffice07.csproj +++ b/src/SILConvertersOffice07/SILConvertersOffice07.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -82,6 +82,8 @@ <SpecificVersion>False</SpecificVersion> <HintPath>DistFiles\dao.dll</HintPath> </Reference> + <!--nuget doesn't add the references to the csproj files properly; not sure why. Here is what + you might want to manually add to the csproj file instead--> <Reference Include="ECInterfaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x86" Condition="('$(Platform)' == 'x86' or '$(Platform)' == 'AnyCPU') and ('$(OS)'=='Windows_NT')"> <HintPath>$(EcLibFilesPath)\net48\x86\ECInterfaces.dll</HintPath> </Reference> @@ -346,6 +348,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersOffice07/packages.config b/src/SILConvertersOffice07/packages.config index 59d699ac..dce80ccc 100644 --- a/src/SILConvertersOffice07/packages.config +++ b/src/SILConvertersOffice07/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.4" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SILConvertersOffice10/SILConvertersOffice10.csproj b/src/SILConvertersOffice10/SILConvertersOffice10.csproj index 49a653da..a9a994c8 100644 --- a/src/SILConvertersOffice10/SILConvertersOffice10.csproj +++ b/src/SILConvertersOffice10/SILConvertersOffice10.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -78,6 +78,8 @@ <AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects> </PropertyGroup> <ItemGroup> + <!--nuget doesn't add the references to the csproj files properly; not sure why. Here is what + you might want to manually add to the csproj file instead--> <Reference Include="ECInterfaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x86" Condition="('$(Platform)' == 'x86' or '$(Platform)' == 'AnyCPU') and ('$(OS)'=='Windows_NT')"> <HintPath>$(EcLibFilesPath)\net48\x86\ECInterfaces.dll</HintPath> </Reference> @@ -340,6 +342,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersOffice10/packages.config b/src/SILConvertersOffice10/packages.config index 59d699ac..dce80ccc 100644 --- a/src/SILConvertersOffice10/packages.config +++ b/src/SILConvertersOffice10/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.4" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SILConvertersOffice13/SILConvertersOffice13.csproj b/src/SILConvertersOffice13/SILConvertersOffice13.csproj index 85d4733f..b706f0ad 100644 --- a/src/SILConvertersOffice13/SILConvertersOffice13.csproj +++ b/src/SILConvertersOffice13/SILConvertersOffice13.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -85,6 +85,8 @@ <Reference Include="BackTranslationHelper"> <HintPath>$(EcDistFilesPath)\win-$(Platform)\native\BackTranslationHelper.dll</HintPath> </Reference> + <!--nuget doesn't add the references to the csproj files properly; not sure why. Here is what + you might want to manually add to the csproj file instead--> <Reference Include="ECInterfaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x86" Condition="('$(Platform)' == 'x86' or '$(Platform)' == 'AnyCPU') and ('$(OS)'=='Windows_NT')"> <HintPath>$(EcLibFilesPath)\net48\x86\ECInterfaces.dll</HintPath> </Reference> @@ -354,6 +356,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersOffice13/packages.config b/src/SILConvertersOffice13/packages.config index 59d699ac..dce80ccc 100644 --- a/src/SILConvertersOffice13/packages.config +++ b/src/SILConvertersOffice13/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.4" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SILConvertersWordML/SILConvertersWordML.csproj b/src/SILConvertersWordML/SILConvertersWordML.csproj index 2aba7719..73f58ea3 100644 --- a/src/SILConvertersWordML/SILConvertersWordML.csproj +++ b/src/SILConvertersWordML/SILConvertersWordML.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -87,6 +87,8 @@ <Reference Include="AIGuesserEC"> <HintPath>$(EcDistFilesPath)\win-$(Platform)\native\AIGuesserEC.dll</HintPath> </Reference> + <!--nuget doesn't add the references to the csproj files properly; not sure why. Here is what + you might want to manually add to the csproj file instead--> <Reference Include="ECInterfaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x86" Condition="('$(Platform)' == 'x86' or '$(Platform)' == 'AnyCPU') and ('$(OS)'=='Windows_NT')"> <HintPath>$(EcLibFilesPath)\net48\x86\ECInterfaces.dll</HintPath> </Reference> @@ -244,6 +246,6 @@ <ErrorTextMissingPIA>This project references a Microsoft Office PIA file, which is required to be built against or it won't work for older versions of Word. The missing file needing to be restored is {0}.</ErrorTextMissingPIA> </PropertyGroup> <Error Condition="!Exists('..\SILConvertersOffice\DistFiles\Microsoft.Office.Interop.Word.dll')" Text="$([System.String]::Format('$(ErrorTextMissingPIA)', 'Microsoft.Office.Interop.Word, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c expected to be in ..\SILConvertersOffice\DistFiles\Microsoft.Office.Interop.Word.dll'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj b/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj index 1cd54d0d..4215f33d 100644 --- a/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj +++ b/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="16.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="..\..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\..\packages\NUnit3TestAdapter.4.3.1\build\net35\NUnit3TestAdapter.props" Condition="Exists('..\..\..\packages\NUnit3TestAdapter.4.3.1\build\net35\NUnit3TestAdapter.props')" /> <Import Project="..\..\..\packages\NUnit.3.13.3\build\NUnit.props" Condition="Exists('..\..\..\packages\NUnit.3.13.3\build\NUnit.props')" /> - <Import Project="..\..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> @@ -76,8 +76,19 @@ <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet> </PropertyGroup> <ItemGroup> - <Reference Include="ECInterfaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=MSIL"> - <HintPath>..\..\..\packages\Encoding-Converters-Core.0.5.4\lib\net48\x86\ECInterfaces.dll</HintPath> + <!--nuget doesn't add the references to the csproj files properly; not sure why. Here is what + you might want to manually add to the csproj file instead--> + <Reference Include="ECInterfaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x86" Condition="('$(Platform)' == 'x86' or '$(Platform)' == 'AnyCPU') and ('$(OS)'=='Windows_NT')"> + <HintPath>$(EcLibFilesPath)\net48\x86\ECInterfaces.dll</HintPath> + </Reference> + <Reference Include="ECInterfaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x64" Condition="('$(Platform)' == 'x64') and ('$(OS)'=='Windows_NT')"> + <HintPath>$(EcLibFilesPath)\net48\x64\ECInterfaces.dll</HintPath> + </Reference> + <Reference Include="SilEncConverters40, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x86" Condition="('$(Platform)' == 'x86' or '$(Platform)' == 'AnyCPU') and ('$(OS)'=='Windows_NT')"> + <HintPath>$(EcLibFilesPath)\net48\x86\SilEncConverters40.dll</HintPath> + </Reference> + <Reference Include="SilEncConverters40, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x64" Condition="('$(Platform)' == 'x64') and ('$(OS)'=='Windows_NT')"> + <HintPath>$(EcLibFilesPath)\net48\x64\SilEncConverters40.dll</HintPath> </Reference> <Reference Include="EmbeddedUiPluginInterfaces, Version=2.0.21.0, Culture=neutral, PublicKeyToken=583bede96b7c94a3, processorArchitecture=MSIL"> <HintPath>..\..\..\packages\ParatextEmbeddedUiPluginInterfaces.2.0.21\lib\net48\EmbeddedUiPluginInterfaces.dll</HintPath> @@ -93,9 +104,6 @@ <Reference Include="PluginInterfaces, Version=2.0.21.0, Culture=neutral, PublicKeyToken=583bede96b7c94a3, processorArchitecture=MSIL"> <HintPath>..\..\..\packages\ParatextPluginInterfaces.2.0.21\lib\netstandard2.0\PluginInterfaces.dll</HintPath> </Reference> - <Reference Include="SilEncConverters40, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=MSIL"> - <HintPath>..\..\..\packages\Encoding-Converters-Core.0.5.4\lib\net48\x86\SilEncConverters40.dll</HintPath> - </Reference> <Reference Include="System" /> <Reference Include="System.Core"> <RequiredTargetFramework>3.5</RequiredTargetFramework> @@ -422,9 +430,9 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props'))" /> <Error Condition="!Exists('..\..\..\packages\NUnit.3.13.3\build\NUnit.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\NUnit.3.13.3\build\NUnit.props'))" /> <Error Condition="!Exists('..\..\..\packages\NUnit3TestAdapter.4.3.1\build\net35\NUnit3TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\NUnit3TestAdapter.4.3.1\build\net35\NUnit3TestAdapter.props'))" /> + <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> </Target> <ProjectExtensions> <VisualStudio> diff --git a/src/SILConvertersWordML/TestBwdc/packages.config b/src/SILConvertersWordML/TestBwdc/packages.config index aaf29458..0b11be74 100644 --- a/src/SILConvertersWordML/TestBwdc/packages.config +++ b/src/SILConvertersWordML/TestBwdc/packages.config @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.4" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> <package id="Microsoft.CSharp" version="4.7.0" targetFramework="net48" /> <package id="Newtonsoft.Json" version="13.0.1" targetFramework="net48" /> <package id="NUnit" version="3.13.3" targetFramework="net48" /> diff --git a/src/SILConvertersWordML/packages.config b/src/SILConvertersWordML/packages.config index 59d699ac..dce80ccc 100644 --- a/src/SILConvertersWordML/packages.config +++ b/src/SILConvertersWordML/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.4" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SilConvertersXML/SilConvertersXML.csproj b/src/SilConvertersXML/SilConvertersXML.csproj index b1bbda8f..df744f05 100644 --- a/src/SilConvertersXML/SilConvertersXML.csproj +++ b/src/SilConvertersXML/SilConvertersXML.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -83,6 +83,8 @@ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> </PropertyGroup> <ItemGroup> + <!--nuget doesn't add the references to the csproj files properly; not sure why. Here is what + you might want to manually add to the csproj file instead--> <Reference Include="ECInterfaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x86" Condition="('$(Platform)' == 'x86' or '$(Platform)' == 'AnyCPU') and ('$(OS)'=='Windows_NT')"> <HintPath>$(EcLibFilesPath)\net48\x86\ECInterfaces.dll</HintPath> </Reference> @@ -220,6 +222,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SilConvertersXML/packages.config b/src/SilConvertersXML/packages.config index 59d699ac..dce80ccc 100644 --- a/src/SilConvertersXML/packages.config +++ b/src/SilConvertersXML/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.4" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SpellingFixerEC/SpellingFixerEC.csproj b/src/SpellingFixerEC/SpellingFixerEC.csproj index b9d2c336..237fd190 100644 --- a/src/SpellingFixerEC/SpellingFixerEC.csproj +++ b/src/SpellingFixerEC/SpellingFixerEC.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <ProjectType>Local</ProjectType> <ProductVersion>9.0.30729</ProductVersion> @@ -107,6 +107,8 @@ <Reference Include="CcEC"> <HintPath>$(EcDistFilesPath)\win-$(Platform)\native\CcEC.dll</HintPath> </Reference> + <!--nuget doesn't add the references to the csproj files properly; not sure why. Here is what + you might want to manually add to the csproj file instead--> <Reference Include="ECInterfaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x86" Condition="('$(Platform)' == 'x86' or '$(Platform)' == 'AnyCPU') and ('$(OS)'=='Windows_NT')"> <HintPath>$(EcLibFilesPath)\net48\x86\ECInterfaces.dll</HintPath> </Reference> @@ -233,6 +235,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SpellingFixerEC/packages.config b/src/SpellingFixerEC/packages.config index 59d699ac..dce80ccc 100644 --- a/src/SpellingFixerEC/packages.config +++ b/src/SpellingFixerEC/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.4" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/TECkit Mapping Editor/TECkit Mapping Editor.csproj b/src/TECkit Mapping Editor/TECkit Mapping Editor.csproj index 0d173fc2..c013e442 100644 --- a/src/TECkit Mapping Editor/TECkit Mapping Editor.csproj +++ b/src/TECkit Mapping Editor/TECkit Mapping Editor.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -88,6 +88,8 @@ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> </PropertyGroup> <ItemGroup> + <!--nuget doesn't add the references to the csproj files properly; not sure why. Here is what + you might want to manually add to the csproj file instead--> <Reference Include="ECInterfaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x86" Condition="('$(Platform)' == 'x86' or '$(Platform)' == 'AnyCPU') and ('$(OS)'=='Windows_NT')"> <HintPath>$(EcLibFilesPath)\net48\x86\ECInterfaces.dll</HintPath> </Reference> @@ -237,6 +239,6 @@ xcopy /y "$(ProjectDir)UnicodeRanges.xml" "$(SolutionDir)output\$(PlatformName)\ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.4\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/TECkit Mapping Editor/packages.config b/src/TECkit Mapping Editor/packages.config index 59d699ac..dce80ccc 100644 --- a/src/TECkit Mapping Editor/packages.config +++ b/src/TECkit Mapping Editor/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.4" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> </packages> \ No newline at end of file From 390b116932ff075bab1e5864e652980df74ae6c4 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sat, 25 Feb 2023 10:01:25 -0600 Subject: [PATCH 15/71] update to latest ptx plugin nuget --- .../ParatextPluginBackTranslationHelper.csproj | 18 +++++++++--------- .../packages.config | 6 +++--- .../TestBwdc/TestBwdc.csproj | 18 +++++++++--------- .../TestBwdc/packages.config | 6 +++--- 4 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj b/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj index c550d7e4..e8bd3bbc 100644 --- a/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj +++ b/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj @@ -81,6 +81,15 @@ <Reference Include="ECInterfaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x64" Condition="('$(Platform)' == 'x64') and ('$(OS)'=='Windows_NT')"> <HintPath>$(EcLibFilesPath)\net48\x64\ECInterfaces.dll</HintPath> </Reference> + <Reference Include="EmbeddedUiPluginInterfaces, Version=2.0.23.0, Culture=neutral, PublicKeyToken=583bede96b7c94a3, processorArchitecture=MSIL"> + <HintPath>..\..\packages\ParatextEmbeddedUiPluginInterfaces.2.0.23\lib\net48\EmbeddedUiPluginInterfaces.dll</HintPath> + </Reference> + <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> + <HintPath>..\..\packages\Newtonsoft.Json.13.0.2\lib\net45\Newtonsoft.Json.dll</HintPath> + </Reference> + <Reference Include="PluginInterfaces, Version=2.0.23.0, Culture=neutral, PublicKeyToken=583bede96b7c94a3, processorArchitecture=MSIL"> + <HintPath>..\..\packages\ParatextPluginInterfaces.2.0.23\lib\netstandard2.0\PluginInterfaces.dll</HintPath> + </Reference> <Reference Include="SilEncConverters40, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x86" Condition="('$(Platform)' == 'x86' or '$(Platform)' == 'AnyCPU') and ('$(OS)'=='Windows_NT')"> <HintPath>$(EcLibFilesPath)\net48\x86\SilEncConverters40.dll</HintPath> </Reference> @@ -96,15 +105,6 @@ <Reference Include="BackTranslationHelper" Condition="('$(OS)'=='Windows_NT')"> <HintPath>$(EcDistFilesPath)\win-$(Platform)\native\BackTranslationHelper.dll</HintPath> </Reference> - <Reference Include="EmbeddedUiPluginInterfaces, Version=2.0.21.0, Culture=neutral, PublicKeyToken=583bede96b7c94a3, processorArchitecture=MSIL"> - <HintPath>..\..\packages\ParatextEmbeddedUiPluginInterfaces.2.0.21\lib\net48\EmbeddedUiPluginInterfaces.dll</HintPath> - </Reference> - <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> - <HintPath>..\..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> - </Reference> - <Reference Include="PluginInterfaces, Version=2.0.21.0, Culture=neutral, PublicKeyToken=583bede96b7c94a3, processorArchitecture=MSIL"> - <HintPath>..\..\packages\ParatextPluginInterfaces.2.0.21\lib\netstandard2.0\PluginInterfaces.dll</HintPath> - </Reference> <Reference Include="Microsoft.VisualBasic" /> <Reference Include="System"> <HintPath>..\..\..\..\..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.8\System.dll</HintPath> diff --git a/src/ParatextPluginBackTranslationHelper/packages.config b/src/ParatextPluginBackTranslationHelper/packages.config index d0b7a12f..e89a57ae 100644 --- a/src/ParatextPluginBackTranslationHelper/packages.config +++ b/src/ParatextPluginBackTranslationHelper/packages.config @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <packages> <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> - <package id="Newtonsoft.Json" version="13.0.1" targetFramework="net48" /> - <package id="ParatextEmbeddedUiPluginInterfaces" version="2.0.21" targetFramework="net48" /> - <package id="ParatextPluginInterfaces" version="2.0.21" targetFramework="net48" /> + <package id="Newtonsoft.Json" version="13.0.2" targetFramework="net48" /> + <package id="ParatextEmbeddedUiPluginInterfaces" version="2.0.23" targetFramework="net48" /> + <package id="ParatextPluginInterfaces" version="2.0.23" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj b/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj index 4215f33d..78034b5f 100644 --- a/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj +++ b/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj @@ -84,26 +84,26 @@ <Reference Include="ECInterfaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x64" Condition="('$(Platform)' == 'x64') and ('$(OS)'=='Windows_NT')"> <HintPath>$(EcLibFilesPath)\net48\x64\ECInterfaces.dll</HintPath> </Reference> + <Reference Include="EmbeddedUiPluginInterfaces, Version=2.0.23.0, Culture=neutral, PublicKeyToken=583bede96b7c94a3, processorArchitecture=MSIL"> + <HintPath>..\..\..\packages\ParatextEmbeddedUiPluginInterfaces.2.0.23\lib\net48\EmbeddedUiPluginInterfaces.dll</HintPath> + </Reference> + <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> + <HintPath>..\..\..\packages\Newtonsoft.Json.13.0.2\lib\net45\Newtonsoft.Json.dll</HintPath> + </Reference> + <Reference Include="PluginInterfaces, Version=2.0.23.0, Culture=neutral, PublicKeyToken=583bede96b7c94a3, processorArchitecture=MSIL"> + <HintPath>..\..\..\packages\ParatextPluginInterfaces.2.0.23\lib\netstandard2.0\PluginInterfaces.dll</HintPath> + </Reference> <Reference Include="SilEncConverters40, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x86" Condition="('$(Platform)' == 'x86' or '$(Platform)' == 'AnyCPU') and ('$(OS)'=='Windows_NT')"> <HintPath>$(EcLibFilesPath)\net48\x86\SilEncConverters40.dll</HintPath> </Reference> <Reference Include="SilEncConverters40, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x64" Condition="('$(Platform)' == 'x64') and ('$(OS)'=='Windows_NT')"> <HintPath>$(EcLibFilesPath)\net48\x64\SilEncConverters40.dll</HintPath> </Reference> - <Reference Include="EmbeddedUiPluginInterfaces, Version=2.0.21.0, Culture=neutral, PublicKeyToken=583bede96b7c94a3, processorArchitecture=MSIL"> - <HintPath>..\..\..\packages\ParatextEmbeddedUiPluginInterfaces.2.0.21\lib\net48\EmbeddedUiPluginInterfaces.dll</HintPath> - </Reference> <Reference Include="Microsoft.CSharp" /> <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> - <HintPath>..\..\..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> - </Reference> <Reference Include="nunit.framework, Version=3.13.3.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL"> <HintPath>..\..\..\packages\NUnit.3.13.3\lib\net45\nunit.framework.dll</HintPath> </Reference> - <Reference Include="PluginInterfaces, Version=2.0.21.0, Culture=neutral, PublicKeyToken=583bede96b7c94a3, processorArchitecture=MSIL"> - <HintPath>..\..\..\packages\ParatextPluginInterfaces.2.0.21\lib\netstandard2.0\PluginInterfaces.dll</HintPath> - </Reference> <Reference Include="System" /> <Reference Include="System.Core"> <RequiredTargetFramework>3.5</RequiredTargetFramework> diff --git a/src/SILConvertersWordML/TestBwdc/packages.config b/src/SILConvertersWordML/TestBwdc/packages.config index 0b11be74..4115ad13 100644 --- a/src/SILConvertersWordML/TestBwdc/packages.config +++ b/src/SILConvertersWordML/TestBwdc/packages.config @@ -2,9 +2,9 @@ <packages> <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> <package id="Microsoft.CSharp" version="4.7.0" targetFramework="net48" /> - <package id="Newtonsoft.Json" version="13.0.1" targetFramework="net48" /> + <package id="Newtonsoft.Json" version="13.0.2" targetFramework="net48" /> <package id="NUnit" version="3.13.3" targetFramework="net48" /> <package id="NUnit3TestAdapter" version="4.3.1" targetFramework="net48" /> - <package id="ParatextEmbeddedUiPluginInterfaces" version="2.0.21" targetFramework="net48" /> - <package id="ParatextPluginInterfaces" version="2.0.21" targetFramework="net48" /> + <package id="ParatextEmbeddedUiPluginInterfaces" version="2.0.23" targetFramework="net48" /> + <package id="ParatextPluginInterfaces" version="2.0.23" targetFramework="net48" /> </packages> \ No newline at end of file From a48e8cb0848c3aecfde9d6a270d6a19c16db0b33 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Tue, 7 Mar 2023 06:31:52 -0600 Subject: [PATCH 16/71] adjusted how we're marking text dirty -- via the ScriptureDataChangedHandler methods rather than just that we've 'Deactivated' (with the former, we *know* the text has changed). --- .../BackTranslationHelperForm.cs | 44 +++++++++++++++++-- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs index 59213190..949037e0 100644 --- a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs +++ b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs @@ -101,14 +101,39 @@ private static string GetProjectName(IProject projectSource, IProject projectTar return String.Format(ProjectNameFormat, projectSource, projectTarget); } + private bool IsDirty(IVerseRef verseReference, int bookNum, int chapterNum) + { + return ((bookNum == 0) || (verseReference.BookNum == bookNum)) && ((chapterNum == 0) || (verseReference.ChapterNum == chapterNum)); + } + private void ScriptureDataChangedHandlerSource(IProject sender, int bookNum, int chapterNum) { - Unlock(); + System.Diagnostics.Debug.WriteLine($"PtxBTH: ScriptureDataChangedHandlerSource: bookNum = '{bookNum}', chapterNum = ‘{chapterNum}‘, IsModified: {backTranslationHelperCtrl.IsModified}, _verseReference: {_verseReference}"); + + // if the change was in the chapter we're processing, then clear what we think the data is, so we'll repull it later + if (IsDirty(_verseReference, bookNum, chapterNum)) + UsfmTokensSource.Clear(); } private void ScriptureDataChangedHandlerTarget(IProject sender, int bookNum, int chapterNum) { - Unlock(); + System.Diagnostics.Debug.WriteLine($"PtxBTH: ScriptureDataChangedHandlerTarget: bookNum = '{bookNum}', chapterNum = ‘{chapterNum}‘, IsModified: {backTranslationHelperCtrl.IsModified}, _verseReference: {_verseReference}, _isChangingTarget: {_isChangingTarget}"); + if (_isChangingTarget) // if we're the ones who changed it, then ignore + return; + + // if the change was in the chapter we're processing, then clear what we think the data is, so we'll repull it later + if (IsDirty(_verseReference, bookNum, chapterNum)) + UsfmTokensTarget.Clear(); + +#if TriedAndFailed + // UPDATE: Ptx by definition has the write lock right now, so we can't call GetNewReference here + // Go back to calling it in Activate + // unless we were editing it, and then force it to stay the same + if (backTranslationHelperCtrl.IsModified) + return; + + GetNewReference(_verseReference); +#endif } private void Host_VerseRefChanged(IPluginHost sender, IVerseRef newReference, SyncReferenceGroup group) @@ -213,7 +238,7 @@ private string CurrentSourceData } else { - System.Diagnostics.Debug.WriteLine($"PtxBTH: Already load UsfmTokensSource for {keyBookChapterVerse}"); + System.Diagnostics.Debug.WriteLine($"PtxBTH: Already have UsfmTokensSource for {keyBookChapterVerse}"); } var data = tokens.OfType<IUSFMTextToken>() @@ -256,7 +281,7 @@ private string CurrentTargetData } else { - System.Diagnostics.Debug.WriteLine($"PtxBTH: Already load UsfmTokensTarget for {bookChapterKey}"); + System.Diagnostics.Debug.WriteLine($"PtxBTH: Already have UsfmTokensTarget for {bookChapterKey}"); } var bookChapterVerseKey = GetBookChapterVerseKey(_verseReference); @@ -371,6 +396,8 @@ void IBackTranslationHelperDataSource.MoveToNext() _setSyncReferenceGroup(_verseReference); } + private bool _isChangingTarget { get; set; } + bool IBackTranslationHelperDataSource.WriteToTarget(string text) { try @@ -398,9 +425,11 @@ bool IBackTranslationHelperDataSource.WriteToTarget(string text) return false; } + _isChangingTarget = true; _writeLock ??= _projectTarget.RequestWriteLock(_plugin, ReleaseRequested, _verseReference.BookNum, _verseReference.ChapterNum); var tokens = vrefTokensTarget.SelectMany(d => d.Value).ToList(); + _projectTarget.PutUSFMTokens(_writeLock, tokens, _verseReference.BookNum); Unlock(); return true; @@ -409,6 +438,10 @@ bool IBackTranslationHelperDataSource.WriteToTarget(string text) { MessageBox.Show($"Exception caught:\n{ex.Message}"); } + finally + { + _isChangingTarget = false; + } return false; } @@ -727,6 +760,8 @@ private void BackTranslationHelperForm_Activated(object sender, EventArgs e) _isNotInFocus = false; System.Diagnostics.Debug.WriteLine($"PtxBTH: BackTranslationHelperForm_Activated: _isNotInFocus = '{_isNotInFocus}', IsModified: {backTranslationHelperCtrl.IsModified}, _verseReference: {_verseReference}"); +#if false + // THIS is now done in ScriptureDataChangedHandlerSource & ScriptureDataChangedHandlerTarget // make the source and target data stale, and trigger a requery... PurgeSourceData(_verseReference); @@ -735,6 +770,7 @@ private void BackTranslationHelperForm_Activated(object sender, EventArgs e) { UsfmTokensTarget.Remove(bookChapterKey); } +#endif // unless we were editing it, and then force it to stay the same if (backTranslationHelperCtrl.IsModified) From 1d704932e366b9623de2eccf66fa92c743902adf Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Wed, 8 Mar 2023 09:55:45 -0600 Subject: [PATCH 17/71] clean up several things the compiler is warning about (unused functions or standard naming for variables) --- .../BackTranslationHelperForm.cs | 27 +++++-------------- .../ParatextBackTranslationHelperPlugin.cs | 2 +- 2 files changed, 7 insertions(+), 22 deletions(-) diff --git a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs index 949037e0..4fbc24d8 100644 --- a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs +++ b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs @@ -117,8 +117,8 @@ private void ScriptureDataChangedHandlerSource(IProject sender, int bookNum, int private void ScriptureDataChangedHandlerTarget(IProject sender, int bookNum, int chapterNum) { - System.Diagnostics.Debug.WriteLine($"PtxBTH: ScriptureDataChangedHandlerTarget: bookNum = '{bookNum}', chapterNum = ‘{chapterNum}‘, IsModified: {backTranslationHelperCtrl.IsModified}, _verseReference: {_verseReference}, _isChangingTarget: {_isChangingTarget}"); - if (_isChangingTarget) // if we're the ones who changed it, then ignore + System.Diagnostics.Debug.WriteLine($"PtxBTH: ScriptureDataChangedHandlerTarget: bookNum = '{bookNum}', chapterNum = ‘{chapterNum}‘, IsModified: {backTranslationHelperCtrl.IsModified}, _verseReference: {_verseReference}, _isChangingTarget: {AreWeChangingTheTarget}"); + if (AreWeChangingTheTarget) // if we're the ones who changed it, then ignore return; // if the change was in the chapter we're processing, then clear what we think the data is, so we'll repull it later @@ -396,7 +396,7 @@ void IBackTranslationHelperDataSource.MoveToNext() _setSyncReferenceGroup(_verseReference); } - private bool _isChangingTarget { get; set; } + private bool AreWeChangingTheTarget { get; set; } bool IBackTranslationHelperDataSource.WriteToTarget(string text) { @@ -425,7 +425,7 @@ bool IBackTranslationHelperDataSource.WriteToTarget(string text) return false; } - _isChangingTarget = true; + AreWeChangingTheTarget = true; _writeLock ??= _projectTarget.RequestWriteLock(_plugin, ReleaseRequested, _verseReference.BookNum, _verseReference.ChapterNum); var tokens = vrefTokensTarget.SelectMany(d => d.Value).ToList(); @@ -440,7 +440,7 @@ bool IBackTranslationHelperDataSource.WriteToTarget(string text) } finally { - _isChangingTarget = false; + AreWeChangingTheTarget = false; } return false; } @@ -677,19 +677,13 @@ public static IUSFMToken ParagraphToken(Dictionary<string, List<IUSFMToken>> usf return new MarkerToken(paragraphToken, previousTextToken.VerseOffset + previousTextToken.Text.Length, previousTextToken.VerseRef); } - private static readonly List<string> _paragraphMarkers = new List<string> { "p", "m" }; + private static readonly List<string> _paragraphMarkers = new() { "p", "m" }; private static bool IsParagraphToken(IUSFMToken token) { return (token is IUSFMMarkerToken markerToken) && (markerToken.Type == MarkerType.Paragraph) && _paragraphMarkers.Contains(markerToken.Marker); } - protected override void OnShown(EventArgs e) - { - base.OnShown(e); - GetNewReference(_verseReference); - } - private void BackTranslationHelperForm_Load(object sender, EventArgs e) { Text = GetFrameText(_projectSource, _projectTarget, _verseReference); @@ -746,15 +740,6 @@ private void BackTranslationHelperForm_Deactivate(object sender, EventArgs e) // return; } - private void PurgeSourceData(IVerseRef verseReference) - { - var keyBookChapterVerse = GetBookChapterVerseKey(verseReference); - if (UsfmTokensSource.ContainsKey(keyBookChapterVerse)) - { - UsfmTokensSource.Remove(keyBookChapterVerse); - } - } - private void BackTranslationHelperForm_Activated(object sender, EventArgs e) { _isNotInFocus = false; diff --git a/src/ParatextPluginBackTranslationHelper/ParatextBackTranslationHelperPlugin.cs b/src/ParatextPluginBackTranslationHelper/ParatextBackTranslationHelperPlugin.cs index 60b0304c..114b6fd6 100644 --- a/src/ParatextPluginBackTranslationHelper/ParatextBackTranslationHelperPlugin.cs +++ b/src/ParatextPluginBackTranslationHelper/ParatextBackTranslationHelperPlugin.cs @@ -16,7 +16,7 @@ public class ParatextBackTranslationHelperPlugin : IParatextStandalonePlugin public const string PluginName = "Back Translation Helper"; public const string emailAddress = "silconverters_support@sil.org"; public string Name => PluginName; - public Version Version => new Version(1, 0); + public Version Version => new(1, 0); public string VersionString => Version.ToString(); public string Publisher => "SIL/UBS"; From 4a9f51d66a23b410549fdedf1b3bf49c446399fc Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Fri, 10 Mar 2023 10:58:20 -0600 Subject: [PATCH 18/71] redo CalculateTargetTokens so that it always replicates the source markers to replace the target markers. We might not have enough translated lines for the source, but in any case, the source is what we're trying to back-translate; not merging with what's currently in the target (which could be problematic). --- .../BackTranslationHelperForm.cs | 137 +++++------------- 1 file changed, 33 insertions(+), 104 deletions(-) diff --git a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs index 4fbc24d8..de7d01ac 100644 --- a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs +++ b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs @@ -484,117 +484,68 @@ public static SortedDictionary<string, List<IUSFMToken>> CalculateTargetTokens(I if ((translatedValues == null) || !translatedValues.Any()) // nothing to do return null; - // go thru all the ones we had and put the translated text into the text ones and transfer the non-text ones in order into the list to Put + // get the relevant target token collection (for the verse we're editing), so we can replace them. var keyBookChapter = GetBookChapterKey(verseReference); if (!usfmTokensTarget.TryGetValue(keyBookChapter, out SortedDictionary<string, List<IUSFMToken>> vrefTokensTarget)) - { return null; - } - // get the source project tokens (in case we need to copy from them) + // get the source project tokens (so we can use those in the target project) + // if by chance, there are non, then it must be that we marked them 'dirty', so just return mull + // to have them be requeried var keyBookChapterVerse = GetBookChapterVerseKey(verseReference); - var sourceTokensFound = usfmTokensSource.TryGetValue(keyBookChapterVerse, out List<IUSFMToken> tokensSource); - - var keyBookChapterVerses = GetBookChapterVerseKey(versesReference); - // get the USFM tokens for the corresponding verse in the target project (if we don't have at least 1 IUSFMTextToken... - if (!vrefTokensTarget.TryGetValue(keyBookChapterVerses, out List<IUSFMToken> tokensTarget) || - !tokensTarget.Any(t => t is IUSFMTextToken)) - { - // ... it could be that the user didn't put in any verse number/paragraphs/text yet... so just make a copy of the source tokens - // which will be replaced w/ the translated text below - if (!sourceTokensFound) - { - // if we didn't find those, then we'll have to start over + if (!usfmTokensSource.TryGetValue(keyBookChapterVerse, out List<IUSFMToken> tokensSource)) return null; - } - else - tokensTarget = tokensSource; - // it may have some verses, but no IUSFMTextTokens among them... + // NB: for reasons that are not clear, I was trying to maintain the markers that were in the target project + // and put the translated lines in those... but the entire point of this plugin is to make a back translation + // of the *source* project. So why wouldn't I just use the source project's tokens and put the translated + // bits in them. + // There may be fewer translated lines in the 'Target Translation' box than there were IUSFMTextToken in + // the source -- esp. if it the user started with the data from the existing Target project. But we'll just + // have to warn the user thru the UI of that issue. + // Bottom line, fit the translated lines into the IUSFMTextToken tokens of the *source* project in order + // (until we run out), and if there are more translated lines than IUSFMTextToken tokens, just add them as + // '\p's and let the user edit them in Paratext after we write them out to the target project + // BUT one issue does arise: if the source has a multiple combined verses and the target doesn't (or vice-versa) + // then we'll need to purge the existing (target) verse(s) so we can add the new (source-based) ones. + + // get the reference to the USFM tokens for the corresponding verse in the target project. If we don't + // have any, it probably means that the user didn't have any data in the target project yet... But + // it doesn't really matter, bkz we're just going to replace them with a copy of the source tokens + // anyway, which will be replaced w/ the translated text below + var keyBookChapterVerses = GetBookChapterVerseKey(versesReference); + var tokensTarget = tokensSource; if (vrefTokensTarget.ContainsKey(keyBookChapterVerse)) - vrefTokensTarget[keyBookChapterVerse] = tokensTarget; + vrefTokensTarget[keyBookChapterVerse] = tokensSource; else - vrefTokensTarget.Add(keyBookChapterVerses, tokensTarget); - } + vrefTokensTarget.Add(keyBookChapterVerses, tokensSource); - // tokensTarget now contains just the tokens for the current verse + // go thru all the ones we had and put the translated text into the text ones and transfer the non-text ones in order into the list to Put var i = 0; - var purgedSomeParagraphs = false; - var lastTokenWasText = false; TextToken latestTextToken = null; var updatedTokens = new List<IUSFMToken>(); - var countFewerTextTokensInTranslation = (tokensTarget.Count(t => t is IUSFMTextToken) - translatedValues.Count); foreach (var token in tokensTarget) { IUSFMToken updatedToken = token; if ((token is IUSFMTextToken textToken) && textToken.IsPublishableVernacular && IsMatchingVerse((IVerseRef)textToken.VerseRef, verseReference)) { - if ((i >= translatedValues.Count) || (purgedSomeParagraphs && lastTokenWasText)) - { - // this means the source had multiple paragraphs, so ignore this unnecessary (source) text token - purgedSomeParagraphs = true; - continue; - } - latestTextToken = new TextToken(textToken) { - Text = translatedValues[i++] + Text = (i >= translatedValues.Count) + ? String.Empty // empty the source text, bkz we ran out of translated lines + : translatedValues[i++] }; updatedToken = latestTextToken; } - // if we have fewer lines than the source had, then skip adding any more paragraph markers unless it's the final token - if ((countFewerTextTokensInTranslation > 0) && IsParagraphToken(token) && (!IsParagraphToken(tokensTarget.Last()) || (token != tokensTarget.Last()))) - { - // this means we want to skip this paragraph token - purgedSomeParagraphs = true; - countFewerTextTokensInTranslation--; - continue; - } - - lastTokenWasText = IsScriptureTextToken(updatedToken); updatedTokens.Add(updatedToken); } - if (latestTextToken == null) - { - // this means the target (and source) verse had no IUSFMTextToken in it - // so there's nothing to do? - return null; - } - - // if there are still some translated portions we haven't processed yet, then insert them as copies of the last one we did - // just after the last one we did (w/ a paragraph token before it). - // if there are other markers *after* the last text token (e.g. a final paragraph token), then put the text (along - // with a preceding paragraph token) just after the last text token we added above + // if there are still some translated portions we haven't processed yet, then insert them as copies of the last text + // one we did just after the last one we did (w/ a paragraph token before it). var insertionIndex = updatedTokens.Count; - var lastTokenIsParagraph = IsParagraphToken(updatedTokens.Last()); - if (lastTokenIsParagraph) - insertionIndex--; - while (translatedValues.Count > i) { - // first skip past any markers common to both (but not if the final one was a \p - if (!lastTokenIsParagraph) - SkipPastIdenticalTokens(tokensSource, updatedTokens, ref insertionIndex); - - // if the source has one or more (non-scripture) markers at the next insertion point, we want to add them here. - // But the 'NextTokenFromSource*' function below will return a newly created paragraph (e.g. to put before - // a translated lines) if we run out of stuff in the source. In that case, only do this loop once - var isInsertedParagraph = false; - do - { - // first see if the next token in the source is a marker - isInsertedParagraph = NextTokenFromSourceOrTemplateParagraphMarker(out IUSFMToken marker); - - // if it's a text token, then skip adding it here and add it as a text token below - if (IsScriptureTextToken(marker)) - break; - - // add the non-text (read: marker) token first (and repeat of there are others) - updatedTokens.Insert(insertionIndex++, marker); - } while (!isInsertedParagraph); - // using the last text token we saw in the target as a template (which could possibly be from the source (read: untranslated)), // create a new one w/ the next translated value latestTextToken = new TextToken(latestTextToken) @@ -605,15 +556,6 @@ public static SortedDictionary<string, List<IUSFMToken>> CalculateTargetTokens(I updatedTokens.Insert(insertionIndex++, latestTextToken); } - // in case the last one in the target happens to be common... - SkipPastIdenticalTokens(tokensSource, updatedTokens, ref insertionIndex); - - // add any remaining ones that are in the source, but not in the target - while (!purgedSomeParagraphs && (insertionIndex < tokensSource.Count)) - { - updatedTokens.Add(tokensSource[insertionIndex++]); - } - vrefTokensTarget[keyBookChapterVerses] = updatedTokens; #if SerializeToCreateTestFiles @@ -621,6 +563,7 @@ public static SortedDictionary<string, List<IUSFMToken>> CalculateTargetTokens(I #endif return vrefTokensTarget; + } // local function (to reduce the number of parameters needing to be passed) bool NextTokenFromSourceOrTemplateParagraphMarker(out IUSFMToken marker) @@ -645,20 +588,6 @@ private static string ToJson(object obj) } #endif - private static bool IsScriptureTextToken(IUSFMToken token) - { - return (token is IUSFMTextToken textToken) && textToken.IsPublishableVernacular; - } - - private static void SkipPastIdenticalTokens(List<IUSFMToken> tokensSource, List<IUSFMToken> updatedTokens, ref int insertionIndex) - { - while ((insertionIndex < updatedTokens.Count) && (insertionIndex < tokensSource.Count) && - (updatedTokens[insertionIndex].ToString() == tokensSource[insertionIndex].ToString())) - { - insertionIndex++; - } - } - public static IUSFMToken ParagraphToken(Dictionary<string, List<IUSFMToken>> usfmTokensSource, Dictionary<string, SortedDictionary<string, List<IUSFMToken>>> usfmTokensTarget, TextToken previousTextToken) { From 92425b3ed201a52d021d5d2cf6c8ecf317396256 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sat, 11 Mar 2023 05:59:30 -0600 Subject: [PATCH 19/71] re-created a number of Forms used in the 'SpellFixer' (aka. Find-Replace) project to make them more current and behave nicer (also got rid of supporting legacy encodings -- anyone not using Unicode by now needs to feel the pain). Also includes adding a dummy rule (\u001f => \u001f) to the underlying cc table so that it won't generate the 'there are no rules' exception. --- .../AddNewProjectForm.Designer.cs | 250 +++++ src/SpellingFixerEC/AddNewProjectForm.cs | 203 ++++ src/SpellingFixerEC/AddNewProjectForm.resx | 132 +++ src/SpellingFixerEC/LoginSF.Designer.cs | 198 ++++ src/SpellingFixerEC/LoginSF.cs | 949 +++--------------- src/SpellingFixerEC/LoginSF.resx | 6 - .../QueryFindReplaceDialog.Designer.cs | 122 ++- src/SpellingFixerEC/QueryFindReplaceDialog.cs | 39 +- src/SpellingFixerEC/SpellingFixerEC.cs | 108 +- src/SpellingFixerEC/SpellingFixerEC.csproj | 12 + src/SpellingFixerEC/ViewBadGoodPairsDlg.cs | 228 +---- .../ViewBadGoodPairsDlg.designer.cs | 58 +- src/SpellingFixerEC/ViewBadGoodPairsDlg.resx | 16 +- 13 files changed, 1125 insertions(+), 1196 deletions(-) create mode 100644 src/SpellingFixerEC/AddNewProjectForm.Designer.cs create mode 100644 src/SpellingFixerEC/AddNewProjectForm.cs create mode 100644 src/SpellingFixerEC/AddNewProjectForm.resx create mode 100644 src/SpellingFixerEC/LoginSF.Designer.cs diff --git a/src/SpellingFixerEC/AddNewProjectForm.Designer.cs b/src/SpellingFixerEC/AddNewProjectForm.Designer.cs new file mode 100644 index 00000000..78e7e098 --- /dev/null +++ b/src/SpellingFixerEC/AddNewProjectForm.Designer.cs @@ -0,0 +1,250 @@ +namespace SpellingFixerEC +{ + partial class AddNewProjectForm + { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AddNewProjectForm)); + this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel(); + this.labelName = new System.Windows.Forms.Label(); + this.textBoxName = new System.Windows.Forms.TextBox(); + this.labelFont = new System.Windows.Forms.Label(); + this.buttonChooseFont = new System.Windows.Forms.Button(); + this.labelFontChosen = new System.Windows.Forms.Label(); + this.checkBoxRtL = new System.Windows.Forms.CheckBox(); + this.labelWordBoundaryDelimiter = new System.Windows.Forms.Label(); + this.textBoxWordBoundaryDelimiter = new System.Windows.Forms.TextBox(); + this.labelAddlPunct = new System.Windows.Forms.Label(); + this.textBoxAddlPunctuation = new System.Windows.Forms.TextBox(); + this.buttonCancel = new System.Windows.Forms.Button(); + this.buttonOk = new System.Windows.Forms.Button(); + this.toolTips = new System.Windows.Forms.ToolTip(this.components); + this.fontDialog = new System.Windows.Forms.FontDialog(); + this.tableLayoutPanel.SuspendLayout(); + this.SuspendLayout(); + // + // tableLayoutPanel + // + this.tableLayoutPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tableLayoutPanel.ColumnCount = 3; + this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 120F)); + this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel.Controls.Add(this.labelName, 0, 0); + this.tableLayoutPanel.Controls.Add(this.textBoxName, 1, 0); + this.tableLayoutPanel.Controls.Add(this.labelFont, 0, 1); + this.tableLayoutPanel.Controls.Add(this.buttonChooseFont, 1, 1); + this.tableLayoutPanel.Controls.Add(this.labelFontChosen, 2, 1); + this.tableLayoutPanel.Controls.Add(this.checkBoxRtL, 1, 2); + this.tableLayoutPanel.Controls.Add(this.labelWordBoundaryDelimiter, 0, 3); + this.tableLayoutPanel.Controls.Add(this.textBoxWordBoundaryDelimiter, 1, 3); + this.tableLayoutPanel.Controls.Add(this.labelAddlPunct, 0, 4); + this.tableLayoutPanel.Controls.Add(this.textBoxAddlPunctuation, 1, 4); + this.tableLayoutPanel.Controls.Add(this.buttonCancel, 2, 5); + this.tableLayoutPanel.Controls.Add(this.buttonOk, 1, 5); + this.tableLayoutPanel.Location = new System.Drawing.Point(12, 12); + this.tableLayoutPanel.Name = "tableLayoutPanel"; + this.tableLayoutPanel.RowCount = 6; + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 50F)); + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 50F)); + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 50F)); + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 50F)); + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 50F)); + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel.Size = new System.Drawing.Size(439, 291); + this.tableLayoutPanel.TabIndex = 15; + // + // labelName + // + this.labelName.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.labelName.AutoSize = true; + this.labelName.Location = new System.Drawing.Point(79, 18); + this.labelName.Name = "labelName"; + this.labelName.Size = new System.Drawing.Size(38, 13); + this.labelName.TabIndex = 16; + this.labelName.Text = "&Name:"; + // + // textBoxName + // + this.textBoxName.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.tableLayoutPanel.SetColumnSpan(this.textBoxName, 2); + this.textBoxName.Location = new System.Drawing.Point(123, 15); + this.textBoxName.Name = "textBoxName"; + this.textBoxName.Size = new System.Drawing.Size(313, 20); + this.textBoxName.TabIndex = 17; + this.toolTips.SetToolTip(this.textBoxName, "Enter the name of a new projects (e.g. \'Hindi to English fixes\')"); + // + // labelFont + // + this.labelFont.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.labelFont.AutoSize = true; + this.labelFont.Location = new System.Drawing.Point(86, 68); + this.labelFont.Name = "labelFont"; + this.labelFont.Size = new System.Drawing.Size(31, 13); + this.labelFont.TabIndex = 16; + this.labelFont.Text = "Font:"; + // + // buttonChooseFont + // + this.buttonChooseFont.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.buttonChooseFont.Location = new System.Drawing.Point(123, 63); + this.buttonChooseFont.Name = "buttonChooseFont"; + this.buttonChooseFont.Size = new System.Drawing.Size(84, 23); + this.buttonChooseFont.TabIndex = 18; + this.buttonChooseFont.Text = "Choose &Font"; + this.toolTips.SetToolTip(this.buttonChooseFont, "Click to choose the font to be used for displaying the Find-Replace pairs (e.g. \'" + + "Arial Unicode MS, 12 pt\')"); + this.buttonChooseFont.UseVisualStyleBackColor = true; + this.buttonChooseFont.Click += new System.EventHandler(this.ButtonChooseFont_Click); + // + // labelFontChosen + // + this.labelFontChosen.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.labelFontChosen.Location = new System.Drawing.Point(227, 66); + this.labelFontChosen.Name = "labelFontChosen"; + this.labelFontChosen.Size = new System.Drawing.Size(209, 18); + this.labelFontChosen.TabIndex = 19; + // + // checkBoxRtL + // + this.checkBoxRtL.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.checkBoxRtL.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; + this.checkBoxRtL.Cursor = System.Windows.Forms.Cursors.Hand; + this.checkBoxRtL.Location = new System.Drawing.Point(123, 113); + this.checkBoxRtL.Name = "checkBoxRtL"; + this.checkBoxRtL.Size = new System.Drawing.Size(98, 24); + this.checkBoxRtL.TabIndex = 20; + this.checkBoxRtL.Text = "&Right-to-Left"; + this.toolTips.SetToolTip(this.checkBoxRtL, "Check this if the data is right-to-left"); + // + // labelWordBoundaryDelimiter + // + this.labelWordBoundaryDelimiter.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.labelWordBoundaryDelimiter.Location = new System.Drawing.Point(36, 165); + this.labelWordBoundaryDelimiter.Name = "labelWordBoundaryDelimiter"; + this.labelWordBoundaryDelimiter.Size = new System.Drawing.Size(81, 19); + this.labelWordBoundaryDelimiter.TabIndex = 21; + this.labelWordBoundaryDelimiter.Text = "&Word boundary delimiter:"; + // + // textBoxWordBoundaryDelimiter + // + this.textBoxWordBoundaryDelimiter.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.textBoxWordBoundaryDelimiter.Location = new System.Drawing.Point(123, 165); + this.textBoxWordBoundaryDelimiter.Name = "textBoxWordBoundaryDelimiter"; + this.textBoxWordBoundaryDelimiter.Size = new System.Drawing.Size(24, 20); + this.textBoxWordBoundaryDelimiter.TabIndex = 22; + this.textBoxWordBoundaryDelimiter.Text = "#"; + this.toolTips.SetToolTip(this.textBoxWordBoundaryDelimiter, resources.GetString("textBoxWordBoundaryDelimiter.ToolTip")); + // + // labelAddlPunct + // + this.labelAddlPunct.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.labelAddlPunct.AutoSize = true; + this.labelAddlPunct.Location = new System.Drawing.Point(5, 212); + this.labelAddlPunct.Name = "labelAddlPunct"; + this.labelAddlPunct.Size = new System.Drawing.Size(112, 26); + this.labelAddlPunct.TabIndex = 23; + this.labelAddlPunct.Text = "Additional &punctuation and whitespace:"; + this.labelAddlPunct.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // textBoxAddlPunctuation + // + this.textBoxAddlPunctuation.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.tableLayoutPanel.SetColumnSpan(this.textBoxAddlPunctuation, 2); + this.textBoxAddlPunctuation.Location = new System.Drawing.Point(123, 215); + this.textBoxAddlPunctuation.Name = "textBoxAddlPunctuation"; + this.textBoxAddlPunctuation.Size = new System.Drawing.Size(313, 20); + this.textBoxAddlPunctuation.TabIndex = 24; + this.toolTips.SetToolTip(this.textBoxAddlPunctuation, "Enter any additional punctuation or whitespace characters needed for this languag" + + "e, separated by spaces (these are used for boundary condition checking)"); + // + // buttonCancel + // + this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonCancel.Location = new System.Drawing.Point(227, 253); + this.buttonCancel.Name = "buttonCancel"; + this.buttonCancel.Size = new System.Drawing.Size(75, 23); + this.buttonCancel.TabIndex = 25; + this.buttonCancel.Text = "&Cancel"; + this.buttonCancel.UseVisualStyleBackColor = true; + // + // buttonOk + // + this.buttonOk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.buttonOk.DialogResult = System.Windows.Forms.DialogResult.OK; + this.buttonOk.Location = new System.Drawing.Point(146, 253); + this.buttonOk.Name = "buttonOk"; + this.buttonOk.Size = new System.Drawing.Size(75, 23); + this.buttonOk.TabIndex = 16; + this.buttonOk.Text = "OK"; + this.buttonOk.UseVisualStyleBackColor = true; + this.buttonOk.Click += new System.EventHandler(this.ButtonOk_Click); + // + // toolTips + // + this.toolTips.AutoPopDelay = 30000; + this.toolTips.InitialDelay = 500; + this.toolTips.ReshowDelay = 100; + // + // AddNewProjectForm + // + this.AcceptButton = this.buttonOk; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.buttonCancel; + this.ClientSize = new System.Drawing.Size(463, 315); + this.Controls.Add(this.tableLayoutPanel); + this.Name = "AddNewProjectForm"; + this.Text = "Add New Project"; + this.tableLayoutPanel.ResumeLayout(false); + this.tableLayoutPanel.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel; + private System.Windows.Forms.Label labelName; + private System.Windows.Forms.TextBox textBoxName; + private System.Windows.Forms.Label labelFont; + private System.Windows.Forms.Button buttonChooseFont; + private System.Windows.Forms.Label labelFontChosen; + private System.Windows.Forms.CheckBox checkBoxRtL; + private System.Windows.Forms.Label labelWordBoundaryDelimiter; + private System.Windows.Forms.TextBox textBoxWordBoundaryDelimiter; + private System.Windows.Forms.Label labelAddlPunct; + private System.Windows.Forms.TextBox textBoxAddlPunctuation; + private System.Windows.Forms.Button buttonCancel; + private System.Windows.Forms.Button buttonOk; + private System.Windows.Forms.ToolTip toolTips; + private System.Windows.Forms.FontDialog fontDialog; + } +} \ No newline at end of file diff --git a/src/SpellingFixerEC/AddNewProjectForm.cs b/src/SpellingFixerEC/AddNewProjectForm.cs new file mode 100644 index 00000000..51afb257 --- /dev/null +++ b/src/SpellingFixerEC/AddNewProjectForm.cs @@ -0,0 +1,203 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace SpellingFixerEC +{ + public partial class AddNewProjectForm : Form + { + public AddNewProjectForm(string addlPunctuation) + { + InitializeComponent(); + + if (!String.IsNullOrEmpty(addlPunctuation)) + { + textBoxAddlPunctuation.Text = DecodePunctuationForCC(addlPunctuation); + } + } + + public string NewProjectName + { + get { return textBoxName.Text; } + set { textBoxName.Text = value; } + } + + public string WordBoundaryDelimiter + { + get { return textBoxWordBoundaryDelimiter.Text; } + set { textBoxWordBoundaryDelimiter.Text = value; } + } + + public Font SelectedFont + { + get { return fontDialog.Font; } + set + { + fontDialog.Font = value; + labelFontChosen.Text = $"{fontDialog.Font.Name}, with size: {fontDialog.Font.Size}"; + } + } + + public bool IsRightToLeft + { + get { return checkBoxRtL.Checked; } + set { checkBoxRtL.Checked = value; } + } + + public bool UserDefinedPunctuation { get; set; } + + public string GetAddlPunctuation(bool encoded) + { + var addlPunctuation = textBoxAddlPunctuation.Text; + if (encoded) + { + addlPunctuation = EncodePunctuationForCC(addlPunctuation); + } + return addlPunctuation; + } + + private void ButtonChooseFont_Click(object sender, EventArgs e) + { + if (fontDialog.ShowDialog() == DialogResult.OK) + { + textBoxWordBoundaryDelimiter.Font = textBoxAddlPunctuation.Font = SelectedFont = fontDialog.Font; + } + } + + private void ButtonOk_Click(object sender, EventArgs e) + { + if (WordBoundaryDelimiter.Contains('"')) + { + MessageBox.Show("Can't use the double-quote character for the word boundary delimiter", + SpellingFixerEC.cstrCaption); + return; + } + + if (String.IsNullOrEmpty(NewProjectName)) + { + MessageBox.Show("You must define a name for this converter (e.g. 'Hindi fixes')", + SpellingFixerEC.cstrCaption); + return; + } + + if (String.IsNullOrEmpty(labelFontChosen.Text)) + { + if (MessageBox.Show("Did you want to select a font to use when displaying Find-Replace pairs?", + SpellingFixerEC.cstrCaption, MessageBoxButtons.YesNo) + == DialogResult.Yes) + { + return; + } + } + } + + private string EncodePunctuationForCC(string strPunctuation) + { + string strRet = null; + + if (UserDefinedPunctuation) + return strPunctuation; + + else if (!String.IsNullOrEmpty(strPunctuation)) + { + string[] astrChars = strPunctuation.Split(new char[] { ' ' }); + foreach (string strChar in astrChars) + { + if (SpellingFixerEC.GetDefaultPunctuation.IndexOf(strChar) != -1) + { + MessageBox.Show(String.Format("There's no need to add the {0} character as Additional Punctuation because it's there by default,\r\nas are these: {1}", + strChar, DecodePunctuationForCCEx(SpellingFixerEC.GetDefaultPunctuation)), SpellingFixerEC.cstrCaption); + return null; + } + strRet += '\'' + strChar + "\' "; + } + if (!String.IsNullOrEmpty(strRet)) + strRet = strRet.Substring(0, strRet.Length - 1); + + return SpellingFixerEC.GetDefaultPunctuation + ' ' + strRet; + } + + return SpellingFixerEC.GetDefaultPunctuation; + } + + private string DecodePunctuationForCC(string strPunctuation) + { + if (String.IsNullOrEmpty(strPunctuation)) + return null; + + else + { + // initialize it so that *we* take care of delimiting the punctuation + UserDefinedPunctuation = false; + + // the first chunk of this should be the fixed punctuation + int nIndex = strPunctuation.IndexOf(SpellingFixerEC.GetDefaultPunctuation); + if ((nIndex == 0) && (strPunctuation.Length <= SpellingFixerEC.GetDefaultPunctuation.Length)) + { + // if this is all there is, then the 'decoded' string is nothing. + return null; + } + else + { + // pre-v3 + nIndex = strPunctuation.IndexOf(SpellingFixerEC.cstrDefaultPunctuationAndWhitespace); + if (nIndex == 0) + { + // if this is all there is, then the 'decoded' string is nothing. + int nLength = SpellingFixerEC.cstrDefaultPunctuationAndWhitespace.Length; + if (strPunctuation.Length <= nLength) + return null; + + // otherwise, process only the extra + strPunctuation = strPunctuation.Substring(nLength); + if (strPunctuation.IndexOf(SpellingFixerEC.cstrV3DefaultPunctuationAndWhitespaceAdds) == 0) + { + nLength = SpellingFixerEC.cstrV3DefaultPunctuationAndWhitespaceAdds.Length; + if (strPunctuation.Length <= nLength) + return null; + strPunctuation = strPunctuation.Substring(nLength + 1); + } + else + strPunctuation = strPunctuation.Substring(1); + } + else + { + UserDefinedPunctuation = true; + return strPunctuation; // in this case, the user is responsible for delimiting the string him/herself + } + } + } + + return DecodePunctuationForCCEx(strPunctuation); + } + + private string DecodePunctuationForCCEx(string strPunctuation) + { + string strRet = null; + string[] astrDelimitedChars = strPunctuation.Split(new char[] { ' ' }); + + // each string should be in the form 'X', where X is the punctuation + foreach (string strDelimitedChar in astrDelimitedChars) + { + if ((strDelimitedChar.IndexOfAny(new char[] { '\'', '\"' }) != -1) + && (strDelimitedChar.Length > 2)) + strRet += strDelimitedChar.Substring(1, strDelimitedChar.Length - 2); + else + strRet += strDelimitedChar; + + strRet += ' '; + } + + if (!String.IsNullOrEmpty(strRet)) + strRet = strRet.Substring(0, strRet.Length - 1); + + return strRet; + } + } +} diff --git a/src/SpellingFixerEC/AddNewProjectForm.resx b/src/SpellingFixerEC/AddNewProjectForm.resx new file mode 100644 index 00000000..e26d58e6 --- /dev/null +++ b/src/SpellingFixerEC/AddNewProjectForm.resx @@ -0,0 +1,132 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <metadata name="toolTips.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>17, 17</value> + </metadata> + <metadata name="toolTips.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>17, 17</value> + </metadata> + <data name="textBoxWordBoundaryDelimiter.ToolTip" xml:space="preserve"> + <value>Enter the character(s) to use as a word boundary delimiter (e.g. with a delimiter of "#", you can enter the "Find What" text like: #car#, which will only match if the search string is "car", but not "cars" or "sportscar")</value> + </data> + <metadata name="fontDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>112, 17</value> + </metadata> +</root> \ No newline at end of file diff --git a/src/SpellingFixerEC/LoginSF.Designer.cs b/src/SpellingFixerEC/LoginSF.Designer.cs new file mode 100644 index 00000000..468cc51d --- /dev/null +++ b/src/SpellingFixerEC/LoginSF.Designer.cs @@ -0,0 +1,198 @@ +using System.Windows.Forms; + +namespace SpellingFixerEC +{ + partial class LoginSF + { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if(components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LoginSF)); + this.checkedListBoxProjects = new System.Windows.Forms.CheckedListBox(); + this.buttonOK = new System.Windows.Forms.Button(); + this.buttonCancel = new System.Windows.Forms.Button(); + this.toolTips = new System.Windows.Forms.ToolTip(this.components); + this.contextMenu = new System.Windows.Forms.ContextMenu(); + this.menuItemAddNewProject = new System.Windows.Forms.MenuItem(); + this.menuItemClick = new System.Windows.Forms.MenuItem(); + this.menuItemDelete = new System.Windows.Forms.MenuItem(); + this.menuItemDeleteAll = new System.Windows.Forms.MenuItem(); + this.menuItemEdit = new System.Windows.Forms.MenuItem(); + this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel(); + this.buttonAddNewProject = new System.Windows.Forms.Button(); + this.tableLayoutPanel.SuspendLayout(); + this.SuspendLayout(); + // + // checkedListBoxProjects + // + this.tableLayoutPanel.SetColumnSpan(this.checkedListBoxProjects, 3); + this.checkedListBoxProjects.Cursor = System.Windows.Forms.Cursors.Hand; + this.checkedListBoxProjects.Dock = System.Windows.Forms.DockStyle.Fill; + this.checkedListBoxProjects.Location = new System.Drawing.Point(3, 3); + this.checkedListBoxProjects.Name = "checkedListBoxProjects"; + this.checkedListBoxProjects.Size = new System.Drawing.Size(367, 210); + this.checkedListBoxProjects.TabIndex = 0; + this.checkedListBoxProjects.ThreeDCheckBoxes = true; + this.toolTips.SetToolTip(this.checkedListBoxProjects, "List of existing projects"); + this.checkedListBoxProjects.SelectedIndexChanged += new System.EventHandler(this.CheckedListBoxProjects_SelectedIndexChanged); + this.checkedListBoxProjects.DoubleClick += new System.EventHandler(this.CheckedListBoxProjects_DoubleClick); + this.checkedListBoxProjects.MouseUp += new System.Windows.Forms.MouseEventHandler(this.CheckedListBoxProjects_MouseUp); + // + // buttonOK + // + this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK; + this.buttonOK.Location = new System.Drawing.Point(108, 219); + this.buttonOK.Name = "buttonOK"; + this.buttonOK.Size = new System.Drawing.Size(75, 23); + this.buttonOK.TabIndex = 11; + this.buttonOK.Text = "OK"; + this.toolTips.SetToolTip(this.buttonOK, "Click to use the checked project"); + this.buttonOK.Click += new System.EventHandler(this.ButtonOK_Click); + // + // buttonCancel + // + this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonCancel.Location = new System.Drawing.Point(189, 219); + this.buttonCancel.Name = "buttonCancel"; + this.buttonCancel.Size = new System.Drawing.Size(75, 23); + this.buttonCancel.TabIndex = 12; + this.buttonCancel.Text = "Cancel"; + this.toolTips.SetToolTip(this.buttonCancel, "Click to cancel this operation"); + this.buttonCancel.Click += new System.EventHandler(this.ButtonCancel_Click); + // + // toolTips + // + this.toolTips.AutoPopDelay = 30000; + this.toolTips.InitialDelay = 500; + this.toolTips.ReshowDelay = 100; + // + // contextMenu + // + this.contextMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + this.menuItemAddNewProject, + this.menuItemClick, + this.menuItemDelete, + this.menuItemDeleteAll, + this.menuItemEdit}); + // + // menuItemAddNewProject + // + this.menuItemAddNewProject.Index = 0; + this.menuItemAddNewProject.Text = "&Add New Project"; + this.menuItemAddNewProject.Click += new System.EventHandler(this.MenuItemAddNewProject_Click); + // + // menuItemClick + // + this.menuItemClick.DefaultItem = true; + this.menuItemClick.Index = 1; + this.menuItemClick.Text = "&Check Project"; + this.menuItemClick.Click += new System.EventHandler(this.MenuItemClick_Click); + // + // menuItemDelete + // + this.menuItemDelete.Index = 2; + this.menuItemDelete.Text = "&Delete Project"; + this.menuItemDelete.Click += new System.EventHandler(this.MenuItemDelete_Click); + // + // menuItemDeleteAll + // + this.menuItemDeleteAll.Index = 3; + this.menuItemDeleteAll.Text = "Delete &All Projects"; + this.menuItemDeleteAll.Click += new System.EventHandler(this.MenuItemDeleteAll_Click); + // + // menuItemEdit + // + this.menuItemEdit.Index = 4; + this.menuItemEdit.Text = "&Edit Project"; + this.menuItemEdit.Click += new System.EventHandler(this.MenuItemEdit_Click); + // + // tableLayoutPanel + // + this.tableLayoutPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tableLayoutPanel.ColumnCount = 3; + this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel.Controls.Add(this.checkedListBoxProjects, 0, 0); + this.tableLayoutPanel.Controls.Add(this.buttonCancel, 1, 1); + this.tableLayoutPanel.Controls.Add(this.buttonOK, 0, 1); + this.tableLayoutPanel.Controls.Add(this.buttonAddNewProject, 2, 1); + this.tableLayoutPanel.Location = new System.Drawing.Point(12, 12); + this.tableLayoutPanel.Name = "tableLayoutPanel"; + this.tableLayoutPanel.RowCount = 2; + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel.Size = new System.Drawing.Size(373, 245); + this.tableLayoutPanel.TabIndex = 14; + // + // buttonAddNewProject + // + this.buttonAddNewProject.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonAddNewProject.Location = new System.Drawing.Point(295, 219); + this.buttonAddNewProject.Name = "buttonAddNewProject"; + this.buttonAddNewProject.Size = new System.Drawing.Size(75, 23); + this.buttonAddNewProject.TabIndex = 13; + this.buttonAddNewProject.Text = "&Add New Project"; + this.buttonAddNewProject.UseVisualStyleBackColor = true; + this.buttonAddNewProject.Click += new System.EventHandler(this.MenuItemAddNewProject_Click); + // + // LoginSF + // + this.AcceptButton = this.buttonOK; + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.CancelButton = this.buttonCancel; + this.ClientSize = new System.Drawing.Size(397, 269); + this.Controls.Add(this.tableLayoutPanel); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "LoginSF"; + this.Text = "Select Find-Replace Project"; + this.Shown += new System.EventHandler(this.LoginSF_Shown); + this.tableLayoutPanel.ResumeLayout(false); + this.ResumeLayout(false); + + } + #endregion + + private CheckedListBox checkedListBoxProjects; + private Button buttonOK; + private Button buttonCancel; + private ToolTip toolTips; + private MenuItem menuItemDelete; + private MenuItem menuItemClick; + private ContextMenu contextMenu; + private MenuItem menuItemEdit; + private MenuItem menuItemDeleteAll; + private TableLayoutPanel tableLayoutPanel; + private MenuItem menuItemAddNewProject; + private Button buttonAddNewProject; + } +} \ No newline at end of file diff --git a/src/SpellingFixerEC/LoginSF.cs b/src/SpellingFixerEC/LoginSF.cs index aec4ba34..cf8aac12 100644 --- a/src/SpellingFixerEC/LoginSF.cs +++ b/src/SpellingFixerEC/LoginSF.cs @@ -20,31 +20,9 @@ namespace SpellingFixerEC /// Summary description for LoginSF. /// </summary> [ComVisible(false)] - internal class LoginSF : System.Windows.Forms.Form + internal partial class LoginSF : System.Windows.Forms.Form { - private System.Windows.Forms.CheckedListBox checkedListBoxProjects; - private System.Windows.Forms.Button buttonOK; - private System.Windows.Forms.Button buttonCancel; - private System.Windows.Forms.TextBox textBoxNewProjectName; - private System.Windows.Forms.Button buttonAddNewProject; - private System.Windows.Forms.CheckBox checkBoxUnicode; - private System.Windows.Forms.Label labelFont; - private System.Windows.Forms.ListBox listBoxFontSize; - private System.Windows.Forms.GroupBox groupBoxNewProject; - private System.Windows.Forms.Label labelName; - private System.Windows.Forms.ComboBox comboBoxFont; - private System.Windows.Forms.Label labelFontSize; - private System.Windows.Forms.ToolTip toolTips; - private System.Windows.Forms.MenuItem menuItemDelete; - private System.Windows.Forms.MenuItem menuItemClick; - private System.Windows.Forms.ContextMenu contextMenu; - private System.Windows.Forms.Label labelCP; - private System.Windows.Forms.TextBox textBoxCP; - private System.ComponentModel.IContainer components; - - private bool m_bLegacy; private bool m_isRightToleft; - private int m_cp = 1252; private Font m_font; private string m_strConverterSpec; private string m_strEncConverterName; @@ -53,18 +31,11 @@ internal class LoginSF : System.Windows.Forms.Form public const string cstrAddNewProjectButtonToolTipText = "Click to add new project"; public const string cstrNewProjectGroupText = "New Project"; private const string cstrProjectMemoryKey = @"SOFTWARE\SIL\SilEncConverters40\SpellingFixerEC"; - private System.Windows.Forms.Label labelInstructions; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TextBox textBoxWordBoundaryDelimiter; - private System.Windows.Forms.MenuItem menuItemEdit; - private System.Windows.Forms.MenuItem menuItemDeleteAll; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TextBox textBoxAddlPunctuation; private string m_strNonWordCharacters; - private CheckBox checkBoxRtL; - private string cstrProjectMostRecentProject = "MostRecentProject"; + private const string cstrProjectMostRecentProject = "MostRecentProject"; - public LoginSF() + + public LoginSF() { // // Required for Windows Form Designer support @@ -73,11 +44,8 @@ public LoginSF() this.checkedListBoxProjects.ContextMenu = this.contextMenu; - EncConverters aECs = new EncConverters(); - EncConverters myECs = aECs.FilterByProcessType(SpellingFixerEC.SFProcessType); - - // disable the list box (and the OK button) if there's nothing in it - this.buttonOK.Enabled = this.checkedListBoxProjects.Visible = (myECs.Count > 0); + var aECs = new EncConverters(); + var myECs = aECs.FilterByProcessType(SpellingFixerEC.SFProcessType); string strPartialName; foreach(IEncConverter aEC in myECs.Values) @@ -93,49 +61,20 @@ public LoginSF() } catch {} - // TODO: also, add a new ctor to allow choosing the project programmatically. - if( nIndex != -1 ) - checkedListBoxProjects.SetItemChecked(nIndex,true); - else - // if there are no items in the list, then make the "Add New Project" the default button - this.AcceptButton = this.buttonAddNewProject; - - // populate the font name combo box with all the fonts installed (but only if they - // do Regular style). That is, on my system, I choose the "Aharoni" (some sort of - // hebrew font) as a test and the creation of the "Font" object below failed, - // because I was using the ctor that takes only the name and size, but that font - // doesn't have a 'Regular' style (which is the default for that ctor). If I - // wanted to add a query for the font 'style' to this dialog box as well (c.f. - // Word's font dialog box), then this restriction could be removed, but... I'll - // wait until someone complains. - InstalledFontCollection installedFontCollection = new InstalledFontCollection(); - FontFamily[] fontFamilies = installedFontCollection.Families; - foreach(FontFamily fontFamily in fontFamilies) - if( fontFamily.IsStyleAvailable(FontStyle.Regular) ) - comboBoxFont.Items.Add(fontFamily.Name); - - // start with some defaults. - this.listBoxFontSize.SelectedItem = "14"; - this.textBoxCP.Text = "1252"; - this.textBoxWordBoundaryDelimiter.Text = SpellingFixerEC.cstrDefaultWordBoundaryDelimiter; - - // start out pessimmistic - DialogResult = DialogResult.Cancel; - } - - public Font FontToUse - { - get { return m_font; } + if (nIndex != -1) + { + checkedListBoxProjects.SetItemChecked(nIndex, true); + } } - public int CpToUse + public bool ProjectsExist { - get { return m_cp; } + get { return checkedListBoxProjects.Items.Count > 0; } } - public bool IsLegacy + public Font FontToUse { - get { return m_bLegacy; } + get { return m_font; } } public string ConverterSpec @@ -163,354 +102,6 @@ public string Punctuation get { return m_strNonWordCharacters; } } - /// <summary> - /// Clean up any resources being used. - /// </summary> - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// <summary> - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// </summary> - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LoginSF)); - this.checkedListBoxProjects = new System.Windows.Forms.CheckedListBox(); - this.buttonOK = new System.Windows.Forms.Button(); - this.buttonCancel = new System.Windows.Forms.Button(); - this.labelName = new System.Windows.Forms.Label(); - this.textBoxNewProjectName = new System.Windows.Forms.TextBox(); - this.checkBoxUnicode = new System.Windows.Forms.CheckBox(); - this.buttonAddNewProject = new System.Windows.Forms.Button(); - this.groupBoxNewProject = new System.Windows.Forms.GroupBox(); - this.textBoxAddlPunctuation = new System.Windows.Forms.TextBox(); - this.label2 = new System.Windows.Forms.Label(); - this.textBoxWordBoundaryDelimiter = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.labelFont = new System.Windows.Forms.Label(); - this.comboBoxFont = new System.Windows.Forms.ComboBox(); - this.labelFontSize = new System.Windows.Forms.Label(); - this.labelCP = new System.Windows.Forms.Label(); - this.textBoxCP = new System.Windows.Forms.TextBox(); - this.listBoxFontSize = new System.Windows.Forms.ListBox(); - this.toolTips = new System.Windows.Forms.ToolTip(this.components); - this.contextMenu = new System.Windows.Forms.ContextMenu(); - this.menuItemClick = new System.Windows.Forms.MenuItem(); - this.menuItemDelete = new System.Windows.Forms.MenuItem(); - this.menuItemDeleteAll = new System.Windows.Forms.MenuItem(); - this.menuItemEdit = new System.Windows.Forms.MenuItem(); - this.labelInstructions = new System.Windows.Forms.Label(); - this.checkBoxRtL = new System.Windows.Forms.CheckBox(); - this.groupBoxNewProject.SuspendLayout(); - this.SuspendLayout(); - // - // checkedListBoxProjects - // - this.checkedListBoxProjects.Cursor = System.Windows.Forms.Cursors.Hand; - this.checkedListBoxProjects.Location = new System.Drawing.Point(32, 30); - this.checkedListBoxProjects.Name = "checkedListBoxProjects"; - this.checkedListBoxProjects.Size = new System.Drawing.Size(720, 256); - this.checkedListBoxProjects.TabIndex = 0; - this.checkedListBoxProjects.ThreeDCheckBoxes = true; - this.toolTips.SetToolTip(this.checkedListBoxProjects, "List of existing projects"); - this.checkedListBoxProjects.SelectedIndexChanged += new System.EventHandler(this.checkedListBoxProjects_SelectedIndexChanged); - this.checkedListBoxProjects.DoubleClick += new System.EventHandler(this.checkedListBoxProjects_DoubleClick); - this.checkedListBoxProjects.MouseUp += new System.Windows.Forms.MouseEventHandler(this.checkedListBoxProjects_MouseUp); - // - // buttonOK - // - this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.buttonOK.Location = new System.Drawing.Point(230, 913); - this.buttonOK.Name = "buttonOK"; - this.buttonOK.Size = new System.Drawing.Size(150, 44); - this.buttonOK.TabIndex = 11; - this.buttonOK.Text = "OK"; - this.toolTips.SetToolTip(this.buttonOK, "Click to use the checked project"); - this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click); - // - // buttonCancel - // - this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.buttonCancel.Location = new System.Drawing.Point(406, 913); - this.buttonCancel.Name = "buttonCancel"; - this.buttonCancel.Size = new System.Drawing.Size(150, 44); - this.buttonCancel.TabIndex = 12; - this.buttonCancel.Text = "Cancel"; - this.toolTips.SetToolTip(this.buttonCancel, "Click to cancel this operation"); - this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click); - // - // labelName - // - this.labelName.Location = new System.Drawing.Point(64, 399); - this.labelName.Name = "labelName"; - this.labelName.Size = new System.Drawing.Size(112, 42); - this.labelName.TabIndex = 1; - this.labelName.Text = "&Name:"; - // - // textBoxNewProjectName - // - this.textBoxNewProjectName.Location = new System.Drawing.Point(176, 399); - this.textBoxNewProjectName.Name = "textBoxNewProjectName"; - this.textBoxNewProjectName.Size = new System.Drawing.Size(544, 31); - this.textBoxNewProjectName.TabIndex = 2; - this.toolTips.SetToolTip(this.textBoxNewProjectName, "Enter the name of a new projects (e.g. \'Hindi\')"); - this.textBoxNewProjectName.TextChanged += new System.EventHandler(this.textBoxNewProjectName_TextChanged); - // - // checkBoxUnicode - // - this.checkBoxUnicode.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; - this.checkBoxUnicode.Checked = true; - this.checkBoxUnicode.CheckState = System.Windows.Forms.CheckState.Checked; - this.checkBoxUnicode.Cursor = System.Windows.Forms.Cursors.Hand; - this.checkBoxUnicode.Location = new System.Drawing.Point(32, 222); - this.checkBoxUnicode.Name = "checkBoxUnicode"; - this.checkBoxUnicode.Size = new System.Drawing.Size(144, 44); - this.checkBoxUnicode.TabIndex = 7; - this.checkBoxUnicode.Text = "&Unicode:"; - this.toolTips.SetToolTip(this.checkBoxUnicode, "Check this if the data is Unicode-encoded (otherwise, it is Legacy-encoded)"); - this.checkBoxUnicode.CheckedChanged += new System.EventHandler(this.checkBoxUnicode_CheckedChanged); - // - // buttonAddNewProject - // - this.buttonAddNewProject.Location = new System.Drawing.Point(232, 468); - this.buttonAddNewProject.Name = "buttonAddNewProject"; - this.buttonAddNewProject.Size = new System.Drawing.Size(256, 42); - this.buttonAddNewProject.TabIndex = 10; - this.buttonAddNewProject.Text = "&Add New Project"; - this.toolTips.SetToolTip(this.buttonAddNewProject, "Click to add new project"); - this.buttonAddNewProject.Click += new System.EventHandler(this.buttonAddNewProject_Click); - // - // groupBoxNewProject - // - this.groupBoxNewProject.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.groupBoxNewProject.Controls.Add(this.checkBoxRtL); - this.groupBoxNewProject.Controls.Add(this.textBoxAddlPunctuation); - this.groupBoxNewProject.Controls.Add(this.label2); - this.groupBoxNewProject.Controls.Add(this.textBoxWordBoundaryDelimiter); - this.groupBoxNewProject.Controls.Add(this.label1); - this.groupBoxNewProject.Controls.Add(this.labelFont); - this.groupBoxNewProject.Controls.Add(this.comboBoxFont); - this.groupBoxNewProject.Controls.Add(this.labelFontSize); - this.groupBoxNewProject.Controls.Add(this.checkBoxUnicode); - this.groupBoxNewProject.Controls.Add(this.labelCP); - this.groupBoxNewProject.Controls.Add(this.textBoxCP); - this.groupBoxNewProject.Controls.Add(this.listBoxFontSize); - this.groupBoxNewProject.Controls.Add(this.buttonAddNewProject); - this.groupBoxNewProject.Location = new System.Drawing.Point(32, 340); - this.groupBoxNewProject.Name = "groupBoxNewProject"; - this.groupBoxNewProject.Size = new System.Drawing.Size(720, 549); - this.groupBoxNewProject.TabIndex = 9; - this.groupBoxNewProject.TabStop = false; - this.groupBoxNewProject.Text = "New Project"; - // - // textBoxAddlPunctuation - // - this.textBoxAddlPunctuation.Location = new System.Drawing.Point(464, 394); - this.textBoxAddlPunctuation.Name = "textBoxAddlPunctuation"; - this.textBoxAddlPunctuation.Size = new System.Drawing.Size(224, 31); - this.textBoxAddlPunctuation.TabIndex = 14; - this.toolTips.SetToolTip(this.textBoxAddlPunctuation, "Enter any additional punctuation or whitespace characters needed for this languag" + - "e, separated by spaces"); - // - // label2 - // - this.label2.Location = new System.Drawing.Point(32, 394); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(416, 44); - this.label2.TabIndex = 13; - this.label2.Text = "Additional &punctuation and whitespace:"; - // - // textBoxWordBoundaryDelimiter - // - this.textBoxWordBoundaryDelimiter.Location = new System.Drawing.Point(464, 335); - this.textBoxWordBoundaryDelimiter.Name = "textBoxWordBoundaryDelimiter"; - this.textBoxWordBoundaryDelimiter.Size = new System.Drawing.Size(48, 31); - this.textBoxWordBoundaryDelimiter.TabIndex = 12; - this.textBoxWordBoundaryDelimiter.Text = "#"; - this.toolTips.SetToolTip(this.textBoxWordBoundaryDelimiter, resources.GetString("textBoxWordBoundaryDelimiter.ToolTip")); - this.textBoxWordBoundaryDelimiter.TextChanged += new System.EventHandler(this.textBoxWordBoundaryDelimiter_TextChanged); - // - // label1 - // - this.label1.Location = new System.Drawing.Point(32, 338); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(272, 30); - this.label1.TabIndex = 11; - this.label1.Text = "&Word boundary delimiter:"; - // - // labelFont - // - this.labelFont.Location = new System.Drawing.Point(32, 118); - this.labelFont.Name = "labelFont"; - this.labelFont.Size = new System.Drawing.Size(200, 43); - this.labelFont.TabIndex = 3; - this.labelFont.Text = "&Font:"; - // - // comboBoxFont - // - this.comboBoxFont.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.comboBoxFont.Location = new System.Drawing.Point(48, 162); - this.comboBoxFont.Name = "comboBoxFont"; - this.comboBoxFont.Size = new System.Drawing.Size(464, 33); - this.comboBoxFont.TabIndex = 4; - this.toolTips.SetToolTip(this.comboBoxFont, "Choose the font to be used for displaying the words whose spelling is to be corre" + - "cted (e.g. \'Arial Unicode MS\')"); - this.comboBoxFont.SelectedIndexChanged += new System.EventHandler(this.comboBoxFont_SelectedIndexChanged); - // - // labelFontSize - // - this.labelFontSize.Location = new System.Drawing.Point(528, 118); - this.labelFontSize.Name = "labelFontSize"; - this.labelFontSize.Size = new System.Drawing.Size(128, 43); - this.labelFontSize.TabIndex = 5; - this.labelFontSize.Text = "Font &Size:"; - // - // labelCP - // - this.labelCP.Location = new System.Drawing.Point(240, 222); - this.labelCP.Name = "labelCP"; - this.labelCP.Size = new System.Drawing.Size(160, 42); - this.labelCP.TabIndex = 8; - this.labelCP.Text = "&Code page:"; - this.labelCP.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.labelCP.Visible = false; - // - // textBoxCP - // - this.textBoxCP.Location = new System.Drawing.Point(400, 222); - this.textBoxCP.Name = "textBoxCP"; - this.textBoxCP.Size = new System.Drawing.Size(112, 31); - this.textBoxCP.TabIndex = 9; - this.toolTips.SetToolTip(this.textBoxCP, "Enter the code page used by this legacy font"); - this.textBoxCP.Visible = false; - this.textBoxCP.TextChanged += new System.EventHandler(this.textBoxCP_TextChanged); - // - // listBoxFontSize - // - this.listBoxFontSize.ItemHeight = 25; - this.listBoxFontSize.Items.AddRange(new object[] { - "8", - "9", - "10", - "10.5", - "11", - "12", - "14", - "16", - "18", - "20", - "22", - "24", - "26", - "28", - "36", - "48", - "72"}); - this.listBoxFontSize.Location = new System.Drawing.Point(544, 162); - this.listBoxFontSize.Name = "listBoxFontSize"; - this.listBoxFontSize.ScrollAlwaysVisible = true; - this.listBoxFontSize.Size = new System.Drawing.Size(144, 129); - this.listBoxFontSize.TabIndex = 6; - this.toolTips.SetToolTip(this.listBoxFontSize, "Choose the font size"); - this.listBoxFontSize.SelectedIndexChanged += new System.EventHandler(this.listBoxFontSize_SelectedIndexChanged); - // - // toolTips - // - this.toolTips.AutoPopDelay = 30000; - this.toolTips.InitialDelay = 500; - this.toolTips.ReshowDelay = 100; - // - // contextMenu - // - this.contextMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { - this.menuItemClick, - this.menuItemDelete, - this.menuItemDeleteAll, - this.menuItemEdit}); - // - // menuItemClick - // - this.menuItemClick.DefaultItem = true; - this.menuItemClick.Index = 0; - this.menuItemClick.Text = "&Click"; - this.menuItemClick.Click += new System.EventHandler(this.menuItemClick_Click); - // - // menuItemDelete - // - this.menuItemDelete.Index = 1; - this.menuItemDelete.Text = "&Delete"; - this.menuItemDelete.Click += new System.EventHandler(this.menuItemDelete_Click); - // - // menuItemDeleteAll - // - this.menuItemDeleteAll.Index = 2; - this.menuItemDeleteAll.Text = "Delete &All"; - this.menuItemDeleteAll.Click += new System.EventHandler(this.menuItemDeleteAll_Click); - // - // menuItemEdit - // - this.menuItemEdit.Index = 3; - this.menuItemEdit.Text = "&Edit"; - this.menuItemEdit.Click += new System.EventHandler(this.menuItemEdit_Click); - // - // labelInstructions - // - this.labelInstructions.Location = new System.Drawing.Point(64, 118); - this.labelInstructions.Name = "labelInstructions"; - this.labelInstructions.Size = new System.Drawing.Size(672, 118); - this.labelInstructions.TabIndex = 13; - this.labelInstructions.Text = "Fill in the details below and click the Add New Project button."; - // - // checkBoxRtL - // - this.checkBoxRtL.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; - this.checkBoxRtL.Cursor = System.Windows.Forms.Cursors.Hand; - this.checkBoxRtL.Location = new System.Drawing.Point(37, 272); - this.checkBoxRtL.Name = "checkBoxRtL"; - this.checkBoxRtL.Size = new System.Drawing.Size(195, 44); - this.checkBoxRtL.TabIndex = 15; - this.checkBoxRtL.Text = "&Right-to-Left"; - this.toolTips.SetToolTip(this.checkBoxRtL, "Check this if the data is right-to-left"); - // - // LoginSF - // - this.AcceptButton = this.buttonOK; - this.AutoScaleBaseSize = new System.Drawing.Size(10, 24); - this.CancelButton = this.buttonCancel; - this.ClientSize = new System.Drawing.Size(788, 981); - this.Controls.Add(this.checkedListBoxProjects); - this.Controls.Add(this.labelName); - this.Controls.Add(this.textBoxNewProjectName); - this.Controls.Add(this.groupBoxNewProject); - this.Controls.Add(this.buttonOK); - this.Controls.Add(this.buttonCancel); - this.Controls.Add(this.labelInstructions); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Name = "LoginSF"; - this.Text = "Choose or Add New Fix Spelling Project"; - this.groupBoxNewProject.ResumeLayout(false); - this.groupBoxNewProject.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - #endregion - internal string FullName(string strProjName) { return SpellingFixerEC.cstrSFConverterPrefix + strProjName; @@ -525,26 +116,29 @@ internal string PartialName(string strFullName) return null; } - internal static void CreateCCTable(string strCCTableSpec, string strEncConverterName, string strPunctuation, string strCustomCode, bool bUnicode) + internal static void CreateCCTable(string strCCTableSpec, string strEncConverterName, string strPunctuation) { - CreateCCTable(new FileStream(strCCTableSpec, FileMode.Create), strEncConverterName, strPunctuation, strCustomCode, bUnicode); + CreateCCTable(new FileStream(strCCTableSpec, FileMode.Create), strEncConverterName, strPunctuation); } - internal static void CreateCCTable(FileStream fs, string strEncConverterName, string strPunctuation, string strCustomCode, bool bUnicode) + internal static void CreateCCTable(FileStream fs, string strEncConverterName, string strPunctuation) { // write out the header lines. - StreamWriter sw = new StreamWriter(fs); - CreateCCTable(sw, strEncConverterName, strPunctuation, strCustomCode, bUnicode); + var sw = new StreamWriter(fs); + CreateCCTable(sw, strEncConverterName, strPunctuation); sw.Flush(); sw.Close(); } - internal static string cstrLastHeaderLine + internal static string CctableLastHeaderLine { get { return "c Last Header Line: DON'T modify the table beyond this point (or your changes may be overwritten)"; } } - internal static void CreateCCTable(StreamWriter sw, string strEncConverterName, string strPunctuation, string strCustomCode, bool bUnicode) + internal const string DummyRule = $" d31 > d31 c dummy rule so that the table isn't empty (can be removed if you have rules below the Last Header Line below)"; + internal const string CustomRuleEndComment = "c +----------end custom changes----------+"; + + internal static void CreateCCTable(StreamWriter sw, string strEncConverterName, string strPunctuation, string strCustomCode = DummyRule, bool bUnicode = true) { // write out the header lines. string strVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString(); @@ -561,14 +155,14 @@ internal static void CreateCCTable(StreamWriter sw, string strEncConverterName, sw.WriteLine("c +----------start custom changes----------+"); if (!String.IsNullOrEmpty(strCustomCode)) { - sw.Write(strCustomCode); + sw.WriteLine(strCustomCode); } - sw.WriteLine("c +----------end custom changes----------+"); + sw.WriteLine(CustomRuleEndComment); sw.WriteLine(""); - sw.WriteLine(cstrLastHeaderLine); + sw.WriteLine(CctableLastHeaderLine); } - internal static void ReWriteCCTableHeader(string strCCTableSpec, string strPunctuation, Encoding enc) + internal static void ReWriteCCTableHeader(string strCCTableSpec, string strPunctuation, Encoding enc, bool removeDummyRule) { // Open the CC table that has the mappings put them in a new file // while re-writing the first part of the header @@ -576,24 +170,39 @@ internal static void ReWriteCCTableHeader(string strCCTableSpec, string strPunct { const string strTempExt = ".new"; // get a stream writer for these encoding and append - StreamReader sr = new StreamReader(strCCTableSpec,enc); - StreamWriter sw = new StreamWriter(strCCTableSpec + strTempExt, false, enc); + var sr = new StreamReader(strCCTableSpec,enc); + var sw = new StreamWriter(strCCTableSpec + strTempExt, false, enc); // this is for version 1.2.0.0 string strVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString(); + var copiedDummyRule = false; // copy the read stuff to the output and update the 'ws' store line for(string line = sr.ReadLine(); line != null; line = sr.ReadLine()) { - if( line.IndexOf("c This cc table was created by SpellingFixerEC.dll v") != -1 ) + if (line.Contains("c This cc table was created by SpellingFixerEC.dll v")) line = String.Format("c This cc table was created by SpellingFixerEC.dll v{0} on {1}.",strVersion, DateTime.Now.ToShortDateString()); - else if( line.IndexOf("store(ws)") != -1 ) + else if (line.Contains("store(ws)")) line = String.Format(" store(ws) {0} endstore", strPunctuation); + // if we're re-writing the cc table with this method, then if we're going to be adding + // actual rules (i.e. removeDummyRule is true), then we can get rid of the dummy rule. + if (line.Contains(DummyRule)) + { + if (removeDummyRule) + continue; + copiedDummyRule = true; + } + // otherwise, we need to put it back in + else if (line.Contains(CustomRuleEndComment) && !removeDummyRule && !copiedDummyRule) + { + sw.WriteLine(DummyRule); + } + sw.WriteLine(line); // stop when we get past the end of the header - if( line == cstrLastHeaderLine ) + if( line == CctableLastHeaderLine ) break; } @@ -609,121 +218,6 @@ internal static void ReWriteCCTableHeader(string strCCTableSpec, string strPunct } } - private void EnableAddNewProjectButton() - { - this.buttonAddNewProject.Enabled = ( - (this.textBoxNewProjectName.Text != "") - && ((this.comboBoxFont.SelectedItem != null) && (this.comboBoxFont.SelectedItem.ToString() != "")) - && ((this.listBoxFontSize.SelectedItem != null) && (this.listBoxFontSize.SelectedItem.ToString() != "")) - && ((this.checkBoxUnicode.Checked) || (this.textBoxCP.Text != "")) - && (!String.IsNullOrEmpty(this.textBoxWordBoundaryDelimiter.Text)) ); - } - - private bool m_bUserDefinePunctuation = false; - - private string DecodePunctuationForCC(string strPunctuation) - { - if( String.IsNullOrEmpty(strPunctuation) ) - return null; - - else - { - // initialize it so that *we* take care of delimiting the punctuation - m_bUserDefinePunctuation = false; - - // the first chunk of this should be the fixed punctuation - int nIndex = strPunctuation.IndexOf(SpellingFixerEC.GetDefaultPunctuation); - if ((nIndex == 0) && (strPunctuation.Length <= SpellingFixerEC.GetDefaultPunctuation.Length)) - { - // if this is all there is, then the 'decoded' string is nothing. - return null; - } - else - { - // pre-v3 - nIndex = strPunctuation.IndexOf(SpellingFixerEC.cstrDefaultPunctuationAndWhitespace); - if( nIndex == 0 ) - { - // if this is all there is, then the 'decoded' string is nothing. - int nLength = SpellingFixerEC.cstrDefaultPunctuationAndWhitespace.Length; - if (strPunctuation.Length <= nLength) - return null; - - // otherwise, process only the extra - strPunctuation = strPunctuation.Substring(nLength); - if (strPunctuation.IndexOf(SpellingFixerEC.cstrV3DefaultPunctuationAndWhitespaceAdds) == 0) - { - nLength = SpellingFixerEC.cstrV3DefaultPunctuationAndWhitespaceAdds.Length; - if (strPunctuation.Length <= nLength) - return null; - strPunctuation = strPunctuation.Substring(nLength + 1); - } - else - strPunctuation = strPunctuation.Substring(1); - } - else - { - m_bUserDefinePunctuation = true; - return strPunctuation; // in this case, the user is responsible for delimiting the string him/herself - } - } - } - - return DecodePunctuationForCCEx(strPunctuation); - } - - private string DecodePunctuationForCCEx(string strPunctuation) - { - string strRet = null; - string [] astrDelimitedChars = strPunctuation.Split(new char [] {' '}); - - // each string should be in the form 'X', where X is the punctuation - foreach(string strDelimitedChar in astrDelimitedChars) - { - if( (strDelimitedChar.IndexOfAny(new char [] {'\'', '\"' }) != -1) - && (strDelimitedChar.Length > 2) ) - strRet += strDelimitedChar.Substring(1,strDelimitedChar.Length - 2); - else - strRet += strDelimitedChar; - - strRet += ' '; - } - - if( !String.IsNullOrEmpty(strRet) ) - strRet = strRet.Substring(0,strRet.Length - 1); - - return strRet; - } - - private string EncodePunctuationForCC(string strPunctuation) - { - string strRet = null; - - if( m_bUserDefinePunctuation ) - return strPunctuation; - - else if( !String.IsNullOrEmpty(strPunctuation) ) - { - string [] astrChars = strPunctuation.Split(new char [] {' '}); - foreach(string strChar in astrChars) - { - if (SpellingFixerEC.GetDefaultPunctuation.IndexOf(strChar) != -1) - { - MessageBox.Show(String.Format("There's no need to add the {0} character as Additional Punctuation because it's there by default,\r\nas are these: {1}", - strChar, DecodePunctuationForCCEx(SpellingFixerEC.GetDefaultPunctuation)), SpellingFixerEC.cstrCaption); - return null; - } - strRet += '\'' + strChar + "\' "; - } - if( !String.IsNullOrEmpty(strRet) ) - strRet = strRet.Substring(0,strRet.Length - 1); - - return SpellingFixerEC.GetDefaultPunctuation + ' ' + strRet; - } - - return SpellingFixerEC.GetDefaultPunctuation; - } - internal static string GetMapTableFolderPath { get @@ -738,57 +232,63 @@ internal static string GetMapTableFolderPath } } - private void buttonAddNewProject_Click(object sender, System.EventArgs e) + private void MenuItemAddNewProject_Click(object sender, EventArgs e) { - // in case the Add New project button was default, change it to the OK button. - this.AcceptButton = this.buttonOK; - - // get the delimiter for word boundaries and disallow the /"/ character - m_strWordBoundaryDelimiter = this.textBoxWordBoundaryDelimiter.Text; - m_isRightToleft = checkBoxRtL.Checked; + AddNewProject(); + } - if ( m_strWordBoundaryDelimiter.IndexOf('"') != -1 ) + private void AddNewProject() + { + var dlg = new AddNewProjectForm(SpellingFixerEC.GetDefaultPunctuation) { - MessageBox.Show("Can't use the double-quote character for the word boundary delimiter",SpellingFixerEC.cstrCaption); + WordBoundaryDelimiter = SpellingFixerEC.cstrDefaultWordBoundaryDelimiter + }; + var res = dlg.ShowDialog(); + if (res == DialogResult.Cancel) return; - } + + UpdateRepo(false, dlg); + } + + private void UpdateRepo(bool isEditing, AddNewProjectForm dlg) + { + // get the delimiter for word boundaries and disallow the /"/ character + m_strWordBoundaryDelimiter = dlg.WordBoundaryDelimiter; + m_isRightToleft = dlg.IsRightToLeft; bool bRewriteCCTable = false; - string strPunctuation = EncodePunctuationForCC(this.textBoxAddlPunctuation.Text); - if(strPunctuation == null ) + string strPunctuation = dlg.GetAddlPunctuation(true); + if (strPunctuation == null) + { return; // it had a bad character - - else if( strPunctuation != m_strNonWordCharacters ) + } + else if (strPunctuation != m_strNonWordCharacters) { // this means the file must be re-written bRewriteCCTable = true; m_strNonWordCharacters = strPunctuation; } - if( (!m_bLegacy) != this.checkBoxUnicode.Checked ) - { - m_bLegacy = !this.checkBoxUnicode.Checked; - bRewriteCCTable = true; - } - // check for existing EncConverter with this same project information string strCCTableSpec = null; - string strPartialName = this.textBoxNewProjectName.Text; - string strEncConverterName = FullName(strPartialName); - EncConverters aECs = new EncConverters(); + var strPartialName = dlg.NewProjectName; + var strEncConverterName = FullName(strPartialName); + var aECs = new EncConverters(); IEncConverter aEC = aECs[strEncConverterName]; - if( aEC != null ) + if (aEC != null) { // if we're *not* in edit mode - if( this.buttonAddNewProject.Text == cstrAddNewProjectButtonText ) + if (!isEditing) { - if( MessageBox.Show(String.Format("A project already exists by the name {0}. Click 'Yes' to overwrite", this.textBoxNewProjectName.Text),SpellingFixerEC.cstrCaption, MessageBoxButtons.YesNoCancel) == DialogResult.Yes) + if (MessageBox.Show($"A project already exists by the name {strPartialName}. Click 'Yes' to overwrite", + SpellingFixerEC.cstrCaption, MessageBoxButtons.YesNo) + == DialogResult.Yes) { // take it out of the check box list checkedListBoxProjects.Items.Remove(strPartialName); strCCTableSpec = aEC.ConverterIdentifier; - if( File.Exists(strCCTableSpec) ) + if (File.Exists(strCCTableSpec)) { File.Delete(strCCTableSpec); strCCTableSpec = null; @@ -796,14 +296,15 @@ private void buttonAddNewProject_Click(object sender, System.EventArgs e) // remove the existing one and we'll add a new one next aECs.Remove(aEC.Name); - aEC = null; } else return; } else // edit mode { - if( MessageBox.Show(String.Format("Do you want to update the '{0}' project?", this.textBoxNewProjectName.Text),SpellingFixerEC.cstrCaption, MessageBoxButtons.YesNoCancel) == DialogResult.Yes) + if (MessageBox.Show($"Do you want to update the '{strPartialName}' project?", + SpellingFixerEC.cstrCaption, MessageBoxButtons.YesNo) + == DialogResult.Yes) { // take it out of the check box list checkedListBoxProjects.Items.Remove(strPartialName); @@ -813,44 +314,33 @@ private void buttonAddNewProject_Click(object sender, System.EventArgs e) // the remove the converter since we'll add it back again next aECs.Remove(aEC.Name); - aEC = null; } else { - // reset this in case we were just editing it. - ResetNewProjectLook(); return; } } } // if we're aren't using the old cc table, then... - if( strCCTableSpec == null ) + if (String.IsNullOrEmpty(strCCTableSpec)) { // now add it (put it in the normal 'MapsTables' folder in \pf\cf\sil\...) string strMapsTableDir = GetMapTableFolderPath; strCCTableSpec = strMapsTableDir + @"\" + strEncConverterName + ".cct"; - if( File.Exists(strCCTableSpec) ) + if (File.Exists(strCCTableSpec)) { // the converter doesn't exist, but a file with the name we would have // given it does... ask the user if they want to overwrite it. // TODO: this doesn't allow for complete flexibility. It might be nicer to // allow for any arbitrary name, but not if noone complains. - if( MessageBox.Show(String.Format("A file exists by the name {0}. Click 'Yes' to overwrite", strCCTableSpec),SpellingFixerEC.cstrCaption, MessageBoxButtons.YesNoCancel) == DialogResult.Yes) + if (MessageBox.Show($"A file exists by the name {strCCTableSpec}. Click 'Yes' to overwrite", + SpellingFixerEC.cstrCaption, MessageBoxButtons.YesNo) + == DialogResult.Yes) { File.Delete(strCCTableSpec); -#if WriteOnAdd -// if the user goes to add the first record, it'd be better if the file didn't exist because now we do some -// preliminary testing whether the CC table already changes a word before adding a new one, but this causes -// a non-trapable error if there are no rules in the file. So just create it when it is actually needed - CreateCCTable(strCCTableSpec,strEncConverterName,m_strNonWordCharacters, !this.m_bLegacy); -#endif } } -#if WriteOnAdd - else - CreateCCTable(strCCTableSpec,strEncConverterName,m_strNonWordCharacters, !this.m_bLegacy); -#endif bRewriteCCTable = false; } @@ -858,87 +348,35 @@ private void buttonAddNewProject_Click(object sender, System.EventArgs e) // TODO: EncConverters needs a new interface to get the defining encodingID from // a FontName (so we can use it in this call) just like we can 'try' to get the // code page given a font name (see 'CodePage' below) - ConvType eConvType = (m_bLegacy) - ? ConvType.Legacy_to_Legacy : ConvType.Unicode_to_Unicode; + var eConvType = ConvType.Unicode_to_Unicode; - aECs.Add(strEncConverterName,strCCTableSpec,eConvType,null,null,SpellingFixerEC.SFProcessType); - - Font font = null; - try - { - font = new Font(comboBoxFont.SelectedItem.ToString(),Convert.ToSingle(listBoxFontSize.SelectedItem)); - } - catch - { - MessageBox.Show("Couldn't create the selected font. Contact support"); - return; - } + aECs.Add(strEncConverterName, strCCTableSpec, eConvType, null, null, SpellingFixerEC.SFProcessType); + + Font font = dlg.SelectedFont; // add this 'displaying font' information to the converter as properties/attributes - ECAttributes aECAttrs = aECs.Attributes(strEncConverterName,AttributeType.Converter); - aECAttrs.Add(SpellingFixerEC.cstrAttributeFontToUse,font.Name); + ECAttributes aECAttrs = aECs.Attributes(strEncConverterName, AttributeType.Converter); + aECAttrs.Add(SpellingFixerEC.cstrAttributeFontToUse, font.Name); aECAttrs.Add(SpellingFixerEC.cstrAttributeFontRightToLeft, m_isRightToleft); aECAttrs.Add(SpellingFixerEC.cstrAttributeFontSizeToUse, font.Size); aECAttrs.Add(SpellingFixerEC.cstrAttributeWordBoundaryDelimiter, m_strWordBoundaryDelimiter); aECAttrs.Add(SpellingFixerEC.cstrAttributeNonWordChars, m_strNonWordCharacters); - // if it's not Unicode, then we need a code page in order to convert from wide to - // narrow (when writing to the file). - int cp = 0; - if( m_bLegacy ) - { - // try to get the code page from EncConverters - try - { - cp = aECs.CodePage(font.Name); - } - catch - { - // if it fails, it means we don't have a mapping, so add one here. - // TODO: it would be nice to have an encoding, but I'm loath to query - // the user for it here since it isn't extremely relevant to this app. - cp = Convert.ToInt32(this.textBoxCP.Text); - aECs.AddFont(font.Name,cp,null); - } - } - - if(bRewriteCCTable) // we are going to continue using the old file... so we must re-write it. + if (bRewriteCCTable) // we are going to continue using the old file... so we must re-write it. { // if it was legacy encoded, then we need to convert the data to narrow using // the code page the user specified (or we got out of the repository) - Encoding enc = null; - if( m_bLegacy ) - { - if (cp == EncConverters.cnSymbolFontCodePage) - cp = EncConverters.cnIso8859_1CodePage; - enc = Encoding.GetEncoding(cp); - } - else - enc = new UTF8Encoding(); + var enc = new UTF8Encoding(); - DataTable myTable; - if( SpellingFixerEC.InitializeDataTableFromCCTable(strCCTableSpec, enc, m_strWordBoundaryDelimiter, out myTable) ) + if (SpellingFixerEC.InitializeDataTableFromCCTable(strCCTableSpec, enc, m_strWordBoundaryDelimiter, out DataTable myTable)) { - ReWriteCCTableHeader(strCCTableSpec,m_strNonWordCharacters,enc); SpellingFixerEC.AppendCCTableFromDataTable(strCCTableSpec, enc, m_strWordBoundaryDelimiter, m_strNonWordCharacters, myTable); } } // finally, add the new project to the now-visible checkbox list - this.buttonOK.Enabled = checkedListBoxProjects.Visible = true; ClearClickedItems(); - checkedListBoxProjects.Items.Add(strPartialName,CheckState.Checked); - - // reset this in case we were just editing it. - ResetNewProjectLook(); - } - - private void ResetNewProjectLook() - { - this.groupBoxNewProject.Text = cstrNewProjectGroupText; - this.buttonAddNewProject.Text = cstrAddNewProjectButtonText; - this.toolTips.SetToolTip(this.buttonAddNewProject, cstrAddNewProjectButtonToolTipText); - this.textBoxNewProjectName.ReadOnly = false; + checkedListBoxProjects.Items.Add(strPartialName, CheckState.Checked); } private void ClearClickedItems() @@ -947,7 +385,7 @@ private void ClearClickedItems() checkedListBoxProjects.SetItemCheckState(indexChecked,CheckState.Unchecked); } - private void buttonOK_Click(object sender, System.EventArgs e) + private void ButtonOK_Click(object sender, System.EventArgs e) { // When the OK button is clicked, it means the user is choosing the project in // the project checkbox list. So use *that* information only to fill in the @@ -955,16 +393,14 @@ private void buttonOK_Click(object sender, System.EventArgs e) // necessarily true that we added a project during this instantiation, so don't // depend on the internal variables (e.g. m_font, etc.) having something // meaningful) - Debug.Assert( checkedListBoxProjects.Visible ); - CheckedListBox.CheckedItemCollection aCheckedItems = checkedListBoxProjects.CheckedItems; + var aCheckedItems = checkedListBoxProjects.CheckedItems; // should only be once checked item - Debug.Assert(aCheckedItems.Count == 1); if( aCheckedItems.Count != 1 ) return; string strEncConverterName = aCheckedItems[0].ToString(); - if( LoadProject(strEncConverterName) ) + if (LoadProject(strEncConverterName)) { DialogResult = DialogResult.OK; this.Close(); @@ -973,8 +409,11 @@ private void buttonOK_Click(object sender, System.EventArgs e) internal bool LoadProject(string strProjectName) { + if (String.IsNullOrEmpty(strProjectName)) + return false; + // get the EncConverter that should have been added above by 'AddNewProject' button - EncConverters aECs = new EncConverters(); + var aECs = new EncConverters(); var converterName = strProjectName; if (strProjectName.StartsWith(SpellingFixerEC.cstrSFConverterPrefix)) { @@ -986,11 +425,11 @@ internal bool LoadProject(string strProjectName) } IEncConverter aEC = aECs[converterName]; - if( aEC != null ) + if (aEC != null) { m_strEncConverterName = aEC.Name; m_strConverterSpec = aEC.ConverterIdentifier; - ECAttributes aECAttrs = aECs.Attributes(aEC.Name,AttributeType.Converter); + ECAttributes aECAttrs = aECs.Attributes(aEC.Name, AttributeType.Converter); string strFontName = aECAttrs[SpellingFixerEC.cstrAttributeFontToUse]; string sFontSize = aECAttrs[SpellingFixerEC.cstrAttributeFontSizeToUse]; m_isRightToleft = aECAttrs.ContainsKey(SpellingFixerEC.cstrAttributeFontRightToLeft) && (aECAttrs[SpellingFixerEC.cstrAttributeFontRightToLeft] == "true"); @@ -998,36 +437,23 @@ internal bool LoadProject(string strProjectName) m_strNonWordCharacters = aECAttrs[SpellingFixerEC.cstrAttributeNonWordChars]; // new in 1.2 (so it might not exist) - if( m_strNonWordCharacters == null ) - m_strNonWordCharacters = SpellingFixerEC.GetDefaultPunctuation; - - // if this was added (without having been made on this system), then - // these properties doesn't get added automatically. Must go to edit mode! - if((strFontName == null) - || (sFontSize == null) - || (m_strWordBoundaryDelimiter == null) ) - { - MessageBox.Show("It looks like this project was added to the repository incorrectly because it's missing some important properties. You'll need to edit it again to set the font, and other values."); - DoEdit(aECs, aEC, strProjectName, strFontName, sFontSize); + m_strNonWordCharacters ??= SpellingFixerEC.GetDefaultPunctuation; - // make the "Update" button the default button - this.AcceptButton = this.buttonAddNewProject; - return false; - } - - float fFontSize = (float)0.0; - try + // if this was added (without having been made on this computer), then + // these properties don't get added automatically. Must go to edit mode! + if (String.IsNullOrEmpty(strFontName) + || String.IsNullOrEmpty(sFontSize) + || String.IsNullOrEmpty(m_strWordBoundaryDelimiter)) { - fFontSize = (float)Convert.ToSingle(sFontSize); + MessageBox.Show("This converter is missing some important properties. You'll need to edit it again to set the font, and other values."); + DoEdit(strProjectName, strFontName, sFontSize); + return false; } - catch {} - if( (strFontName != "") && (fFontSize != 0.0) ) - m_font = new Font(strFontName,fFontSize); + var fFontSize = GetFloatFontSize(sFontSize); - m_bLegacy = (aEC.ConversionType == ConvType.Legacy_to_Legacy); - if( m_bLegacy ) - m_cp = aECs.CodePage(strFontName); + if (!String.IsNullOrEmpty(strFontName) && (fFontSize != 0.0)) + m_font = new Font(strFontName, fFontSize); RegistryKey keyLastSFProject = Registry.CurrentUser.CreateSubKey(cstrProjectMemoryKey); keyLastSFProject.SetValue(cstrProjectMostRecentProject, strProjectName); @@ -1037,60 +463,25 @@ internal bool LoadProject(string strProjectName) return false; } - private void buttonCancel_Click(object sender, System.EventArgs e) - { - DialogResult = DialogResult.Cancel; - this.Close(); - } - - private void textBoxNewProjectName_TextChanged(object sender, System.EventArgs e) - { - // check to see if the Add button should be enable. - EnableAddNewProjectButton(); - } - - private void comboBoxFont_SelectedIndexChanged(object sender, System.EventArgs e) - { - // check to see if the Add button should be enable. - EnableAddNewProjectButton(); - } - - private void listBoxFontSize_SelectedIndexChanged(object sender, System.EventArgs e) - { - // check to see if the Add button should be enable. - EnableAddNewProjectButton(); - } - - private void checkBoxUnicode_CheckedChanged(object sender, System.EventArgs e) + private static float GetFloatFontSize(string sFontSize) { - // check to see if the Add button should be enable. - EnableAddNewProjectButton(); - bool bIsLegacy = !this.checkBoxUnicode.Checked; - this.labelCP.Visible = this.textBoxCP.Visible = bIsLegacy; - - // if it's a legacy encoding, then see if the repository already has a cp for - // this font - if( bIsLegacy ) + var fFontSize = (float)0.0; + try { - EncConverters aECs = new EncConverters(); - int cp = (this.textBoxCP.Text != "") ? Convert.ToInt32(this.textBoxCP.Text) : 1252; - try - { - if( (comboBoxFont.SelectedItem != null) && (comboBoxFont.SelectedItem.ToString() != "") ) - cp = aECs.CodePage(comboBoxFont.SelectedItem.ToString()); - } - catch {} - this.textBoxCP.Text = cp.ToString(); + fFontSize = (float)Convert.ToSingle(sFontSize); } + catch { } + + return fFontSize; } - private void textBoxCP_TextChanged(object sender, System.EventArgs e) + private void ButtonCancel_Click(object sender, System.EventArgs e) { - // check to see if the Add button should be enable. - EnableAddNewProjectButton(); + DialogResult = DialogResult.Cancel; + this.Close(); } - private void checkedListBoxProjects_SelectedIndexChanged(object sender, System.EventArgs e) + private void CheckedListBoxProjects_SelectedIndexChanged(object sender, System.EventArgs e) { int nIndex = checkedListBoxProjects.SelectedIndex; ClearClickedItems(); @@ -1101,13 +492,13 @@ private void checkedListBoxProjects_SelectedIndexChanged(object sender, System.E // get the point at which the right mouse button was clicked (for subsequent pop-up // menu processing) private Point m_ptRightClicked; - private void checkedListBoxProjects_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) + private void CheckedListBoxProjects_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) { // don't want now that I support double-click if( e.Button == MouseButtons.Right ) m_ptRightClicked = new Point(e.X,e.Y); } - private void menuItemClick_Click(object sender, System.EventArgs e) + private void MenuItemClick_Click(object sender, System.EventArgs e) { int nIndex = checkedListBoxProjects.IndexFromPoint(m_ptRightClicked); if( nIndex >= 0 ) @@ -1117,7 +508,7 @@ private void menuItemClick_Click(object sender, System.EventArgs e) } } - private void menuItemDelete_Click(object sender, System.EventArgs e) + private void MenuItemDelete_Click(object sender, System.EventArgs e) { int nIndex = checkedListBoxProjects.IndexFromPoint(m_ptRightClicked); if( nIndex >= 0 ) @@ -1125,7 +516,7 @@ private void menuItemDelete_Click(object sender, System.EventArgs e) string strProjectName = checkedListBoxProjects.Items[nIndex].ToString(); if( MessageBox.Show(String.Format("Are you sure you want to delete the '{0}' project?",strProjectName), SpellingFixerEC.cstrCaption, MessageBoxButtons.YesNoCancel) == DialogResult.Yes) { - EncConverters aECs = new EncConverters(); + var aECs = new EncConverters(); IEncConverter aEC = aECs[FullName(strProjectName)]; if( aEC != null ) { @@ -1143,15 +534,11 @@ private void menuItemDelete_Click(object sender, System.EventArgs e) } checkedListBoxProjects.Items.Remove(strProjectName); - - if( this.checkedListBoxProjects.Items.Count == 0 ) - this.AcceptButton = this.buttonAddNewProject; - EnableAddNewProjectButton(); } } } - private void menuItemEdit_Click(object sender, System.EventArgs e) + private void MenuItemEdit_Click(object sender, System.EventArgs e) { // Provide a way to edit the info (in case the user wants to change the // font, size, or delimter. @@ -1159,7 +546,7 @@ private void menuItemEdit_Click(object sender, System.EventArgs e) if( nIndex >= 0 ) { string strProjectName = checkedListBoxProjects.Items[nIndex].ToString(); - EncConverters aECs = new EncConverters(); + var aECs = new EncConverters(); IEncConverter aEC = aECs[FullName(strProjectName)]; if( aEC != null ) { @@ -1173,53 +560,40 @@ private void menuItemEdit_Click(object sender, System.EventArgs e) m_strWordBoundaryDelimiter = aECAttrs[SpellingFixerEC.cstrAttributeWordBoundaryDelimiter]; m_strNonWordCharacters = aECAttrs[SpellingFixerEC.cstrAttributeNonWordChars]; - DoEdit(aECs, aEC, strProjectName, strFontName, sFontSize); + DoEdit(strProjectName, strFontName, sFontSize); } - - // make the "Update" button the default button - this.AcceptButton = this.buttonAddNewProject; } } - private void DoEdit(EncConverters aECs, IEncConverter aEC, string strProjectName, string strFontName, string sFontSize) + private void DoEdit(string strProjectName, string strFontName, string sFontSize) { - this.textBoxNewProjectName.Text = strProjectName; - this.textBoxWordBoundaryDelimiter.Text = m_strWordBoundaryDelimiter; + m_font = new Font(strFontName, GetFloatFontSize(sFontSize)); - // new in 1.2 (so it might not exist) - this.textBoxAddlPunctuation.Text = this.DecodePunctuationForCC(m_strNonWordCharacters); - - this.listBoxFontSize.SelectedItem = sFontSize; - this.comboBoxFont.SelectedItem = strFontName; - - m_bLegacy = (aEC.ConversionType == ConvType.Legacy_to_Legacy); - this.checkBoxUnicode.Checked = !m_bLegacy; - if( m_bLegacy ) + var dlg = new AddNewProjectForm(m_strNonWordCharacters) { - this.labelCP.Visible = this.textBoxCP.Visible = true; - this.textBoxCP.Text = aECs.CodePage(strFontName).ToString(); - } - - checkBoxRtL.Checked = m_isRightToleft; + NewProjectName = strProjectName, + WordBoundaryDelimiter = m_strWordBoundaryDelimiter, + SelectedFont = m_font, + IsRightToLeft = m_isRightToleft, + }; + + var res = dlg.ShowDialog(); + if (res == DialogResult.Cancel) + return; - // update the "Add New Project" button to say "Update Project" - this.groupBoxNewProject.Text = "Edit Project Settings"; - this.buttonAddNewProject.Text = "Update &Project"; - this.toolTips.SetToolTip(this.buttonAddNewProject, "Click to update the project information"); - this.textBoxNewProjectName.ReadOnly = true; - EnableAddNewProjectButton(); + UpdateRepo(true, dlg); } - private void menuItemDeleteAll_Click(object sender, System.EventArgs e) + private void MenuItemDeleteAll_Click(object sender, System.EventArgs e) { // verify first! if( MessageBox.Show("Are you sure you want to delete all the existing projects?", SpellingFixerEC.cstrCaption, MessageBoxButtons.YesNoCancel) == DialogResult.Yes) { - EncConverters aECs = new EncConverters(); + var aECs = new EncConverters(); foreach(string strProjectName in checkedListBoxProjects.Items) { IEncConverter aEC = aECs[FullName(strProjectName)]; - if( aEC != null ) + if (aEC != null) { // if they do this, then don't bother querying about saving the files. if( File.Exists(aEC.ConverterIdentifier) ) @@ -1233,21 +607,22 @@ private void menuItemDeleteAll_Click(object sender, System.EventArgs e) // now remove them from the checkbox list while( checkedListBoxProjects.Items.Count > 0 ) checkedListBoxProjects.Items.RemoveAt(0); - - this.buttonOK.Enabled = this.checkedListBoxProjects.Visible = false; - this.AcceptButton = this.buttonAddNewProject; } } // double click means edit - private void checkedListBoxProjects_DoubleClick(object sender, EventArgs e) + private void CheckedListBoxProjects_DoubleClick(object sender, EventArgs e) { - this.menuItemEdit_Click(sender,e); + this.MenuItemEdit_Click(sender,e); } - private void textBoxWordBoundaryDelimiter_TextChanged(object sender, EventArgs e) + private void LoginSF_Shown(object sender, EventArgs e) { - EnableAddNewProjectButton(); + buttonAddNewProject.Visible = !ProjectsExist; + if (buttonAddNewProject.Visible) + { + AddNewProject(); + } } } } \ No newline at end of file diff --git a/src/SpellingFixerEC/LoginSF.resx b/src/SpellingFixerEC/LoginSF.resx index d1a32f38..6c2177b8 100644 --- a/src/SpellingFixerEC/LoginSF.resx +++ b/src/SpellingFixerEC/LoginSF.resx @@ -120,12 +120,6 @@ <metadata name="toolTips.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>17, 17</value> </metadata> - <metadata name="toolTips.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> - <value>17, 17</value> - </metadata> - <data name="textBoxWordBoundaryDelimiter.ToolTip" xml:space="preserve"> - <value>Enter the character(s) to use as a word boundary delimiter (e.g. with a delimiter of "#", you can enter the "bad spelling" words like: #car#, which will only match if the search string is "car", but not "cars" or "sportscar")</value> - </data> <metadata name="contextMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>107, 17</value> </metadata> diff --git a/src/SpellingFixerEC/QueryFindReplaceDialog.Designer.cs b/src/SpellingFixerEC/QueryFindReplaceDialog.Designer.cs index ff645da9..91080157 100644 --- a/src/SpellingFixerEC/QueryFindReplaceDialog.Designer.cs +++ b/src/SpellingFixerEC/QueryFindReplaceDialog.Designer.cs @@ -72,8 +72,9 @@ private void InitializeComponent() this.tableLayoutPanel.Controls.Add(this.textBoxWordBoundaryFindText, 2, 2); this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.tableLayoutPanel.Name = "tableLayoutPanel"; - this.tableLayoutPanel.Padding = new System.Windows.Forms.Padding(25); + this.tableLayoutPanel.Padding = new System.Windows.Forms.Padding(12, 13, 12, 13); this.tableLayoutPanel.RowCount = 6; this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); @@ -81,16 +82,17 @@ private void InitializeComponent() this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel.Size = new System.Drawing.Size(993, 598); + this.tableLayoutPanel.Size = new System.Drawing.Size(496, 311); this.tableLayoutPanel.TabIndex = 0; // // labelFind // this.labelFind.Anchor = System.Windows.Forms.AnchorStyles.Right; this.labelFind.AutoSize = true; - this.labelFind.Location = new System.Drawing.Point(94, 31); + this.labelFind.Location = new System.Drawing.Point(47, 18); + this.labelFind.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.labelFind.Name = "labelFind"; - this.labelFind.Size = new System.Drawing.Size(60, 25); + this.labelFind.Size = new System.Drawing.Size(30, 13); this.labelFind.TabIndex = 0; this.labelFind.Text = "Find:"; // @@ -98,21 +100,23 @@ private void InitializeComponent() // this.tableLayoutPanel.SetColumnSpan(this.textBoxFindWord, 4); this.textBoxFindWord.Dock = System.Windows.Forms.DockStyle.Fill; - this.textBoxFindWord.Location = new System.Drawing.Point(160, 28); + this.textBoxFindWord.Location = new System.Drawing.Point(81, 15); + this.textBoxFindWord.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.textBoxFindWord.Name = "textBoxFindWord"; - this.textBoxFindWord.Size = new System.Drawing.Size(805, 31); - this.textBoxFindWord.TabIndex = 3; + this.textBoxFindWord.Size = new System.Drawing.Size(401, 20); + this.textBoxFindWord.TabIndex = 2; this.toolTip.SetToolTip(this.textBoxFindWord, "The word (or part of a word) to replace"); - this.textBoxFindWord.TextChanged += new System.EventHandler(this.textBoxFindWord_TextChanged); - this.textBoxFindWord.Enter += new System.EventHandler(this.textBoxFindWord_Enter); + this.textBoxFindWord.TextChanged += new System.EventHandler(this.TextBoxFindWord_TextChanged); + this.textBoxFindWord.Enter += new System.EventHandler(this.TextBoxFindWord_Enter); // // labelReplace // this.labelReplace.Anchor = System.Windows.Forms.AnchorStyles.Right; this.labelReplace.AutoSize = true; - this.labelReplace.Location = new System.Drawing.Point(57, 68); + this.labelReplace.Location = new System.Drawing.Point(27, 42); + this.labelReplace.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.labelReplace.Name = "labelReplace"; - this.labelReplace.Size = new System.Drawing.Size(97, 25); + this.labelReplace.Size = new System.Drawing.Size(50, 13); this.labelReplace.TabIndex = 1; this.labelReplace.Text = "Replace:"; // @@ -120,49 +124,53 @@ private void InitializeComponent() // this.tableLayoutPanel.SetColumnSpan(this.textBoxReplaceWord, 4); this.textBoxReplaceWord.Dock = System.Windows.Forms.DockStyle.Fill; - this.textBoxReplaceWord.Location = new System.Drawing.Point(160, 65); + this.textBoxReplaceWord.Location = new System.Drawing.Point(81, 39); + this.textBoxReplaceWord.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.textBoxReplaceWord.Name = "textBoxReplaceWord"; - this.textBoxReplaceWord.Size = new System.Drawing.Size(805, 31); - this.textBoxReplaceWord.TabIndex = 4; + this.textBoxReplaceWord.Size = new System.Drawing.Size(401, 20); + this.textBoxReplaceWord.TabIndex = 1; this.toolTip.SetToolTip(this.textBoxReplaceWord, "The replacement word"); - this.textBoxReplaceWord.TextChanged += new System.EventHandler(this.textBoxReplaceWord_TextChanged); - this.textBoxReplaceWord.Enter += new System.EventHandler(this.textBoxReplaceWord_Enter); + this.textBoxReplaceWord.TextChanged += new System.EventHandler(this.TextBoxReplaceWord_TextChanged); + this.textBoxReplaceWord.Enter += new System.EventHandler(this.TextBoxReplaceWord_Enter); // // groupBoxWordBoundaries // this.tableLayoutPanel.SetColumnSpan(this.groupBoxWordBoundaries, 2); this.groupBoxWordBoundaries.Controls.Add(this.checkBoxWordFinal); this.groupBoxWordBoundaries.Controls.Add(this.checkBoxWordInitial); - this.groupBoxWordBoundaries.Location = new System.Drawing.Point(28, 102); + this.groupBoxWordBoundaries.Location = new System.Drawing.Point(14, 63); + this.groupBoxWordBoundaries.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.groupBoxWordBoundaries.Name = "groupBoxWordBoundaries"; - this.groupBoxWordBoundaries.Padding = new System.Windows.Forms.Padding(10); - this.groupBoxWordBoundaries.Size = new System.Drawing.Size(301, 101); - this.groupBoxWordBoundaries.TabIndex = 10; + this.groupBoxWordBoundaries.Padding = new System.Windows.Forms.Padding(5, 5, 5, 5); + this.groupBoxWordBoundaries.Size = new System.Drawing.Size(150, 53); + this.groupBoxWordBoundaries.TabIndex = 3; this.groupBoxWordBoundaries.TabStop = false; this.groupBoxWordBoundaries.Text = "Word Boundaries"; // // checkBoxWordFinal // this.checkBoxWordFinal.AutoSize = true; - this.checkBoxWordFinal.Location = new System.Drawing.Point(187, 37); + this.checkBoxWordFinal.Location = new System.Drawing.Point(94, 19); + this.checkBoxWordFinal.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.checkBoxWordFinal.Name = "checkBoxWordFinal"; - this.checkBoxWordFinal.Size = new System.Drawing.Size(82, 29); - this.checkBoxWordFinal.TabIndex = 1; + this.checkBoxWordFinal.Size = new System.Drawing.Size(45, 17); + this.checkBoxWordFinal.TabIndex = 5; this.checkBoxWordFinal.Text = "End"; this.checkBoxWordFinal.UseVisualStyleBackColor = true; - this.checkBoxWordFinal.CheckedChanged += new System.EventHandler(this.checkBoxWordBoundary_CheckedChanged); + this.checkBoxWordFinal.CheckedChanged += new System.EventHandler(this.CheckBoxWordBoundary_CheckedChanged); // // checkBoxWordInitial // this.checkBoxWordInitial.AutoSize = true; - this.checkBoxWordInitial.Location = new System.Drawing.Point(28, 37); + this.checkBoxWordInitial.Location = new System.Drawing.Point(14, 19); + this.checkBoxWordInitial.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.checkBoxWordInitial.Name = "checkBoxWordInitial"; - this.checkBoxWordInitial.Size = new System.Drawing.Size(140, 29); - this.checkBoxWordInitial.TabIndex = 0; + this.checkBoxWordInitial.Size = new System.Drawing.Size(73, 17); + this.checkBoxWordInitial.TabIndex = 4; this.checkBoxWordInitial.Text = "Beginning"; this.toolTip.SetToolTip(this.checkBoxWordInitial, "Click to force the find to use use an initial "); this.checkBoxWordInitial.UseVisualStyleBackColor = true; - this.checkBoxWordInitial.CheckedChanged += new System.EventHandler(this.checkBoxWordBoundary_CheckedChanged); + this.checkBoxWordInitial.CheckedChanged += new System.EventHandler(this.CheckBoxWordBoundary_CheckedChanged); // // labelUnicodeCodes // @@ -170,11 +178,12 @@ private void InitializeComponent() this.labelUnicodeCodes.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; this.tableLayoutPanel.SetColumnSpan(this.labelUnicodeCodes, 5); this.labelUnicodeCodes.Dock = System.Windows.Forms.DockStyle.Fill; - this.labelUnicodeCodes.Location = new System.Drawing.Point(28, 206); + this.labelUnicodeCodes.Location = new System.Drawing.Point(14, 118); + this.labelUnicodeCodes.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.labelUnicodeCodes.Name = "labelUnicodeCodes"; - this.labelUnicodeCodes.Padding = new System.Windows.Forms.Padding(10); - this.labelUnicodeCodes.Size = new System.Drawing.Size(937, 278); - this.labelUnicodeCodes.TabIndex = 5; + this.labelUnicodeCodes.Padding = new System.Windows.Forms.Padding(5, 5, 5, 5); + this.labelUnicodeCodes.Size = new System.Drawing.Size(468, 128); + this.labelUnicodeCodes.TabIndex = 9; this.labelUnicodeCodes.Text = "labelUnicodeCodes"; this.toolTip.SetToolTip(this.labelUnicodeCodes, "This area shows the Unicode code point values for the characters in the box above" + " which has focus. You can use this to see hidden characters (e.g. zero width joi" + @@ -184,10 +193,11 @@ private void InitializeComponent() // this.labelAddedFromOriginalWord.AutoSize = true; this.tableLayoutPanel.SetColumnSpan(this.labelAddedFromOriginalWord, 2); - this.labelAddedFromOriginalWord.Location = new System.Drawing.Point(28, 484); + this.labelAddedFromOriginalWord.Location = new System.Drawing.Point(14, 246); + this.labelAddedFromOriginalWord.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.labelAddedFromOriginalWord.Name = "labelAddedFromOriginalWord"; - this.labelAddedFromOriginalWord.Size = new System.Drawing.Size(275, 25); - this.labelAddedFromOriginalWord.TabIndex = 6; + this.labelAddedFromOriginalWord.Size = new System.Drawing.Size(136, 13); + this.labelAddedFromOriginalWord.TabIndex = 10; this.labelAddedFromOriginalWord.Text = "Added while Clipboard had:"; this.toolTip.SetToolTip(this.labelAddedFromOriginalWord, "This word was on the clipboard when the dialog opened."); this.labelAddedFromOriginalWord.Visible = false; @@ -196,42 +206,46 @@ private void InitializeComponent() // this.tableLayoutPanel.SetColumnSpan(this.textBoxOriginalWord, 3); this.textBoxOriginalWord.Dock = System.Windows.Forms.DockStyle.Fill; - this.textBoxOriginalWord.Location = new System.Drawing.Point(335, 487); + this.textBoxOriginalWord.Location = new System.Drawing.Point(168, 248); + this.textBoxOriginalWord.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.textBoxOriginalWord.Name = "textBoxOriginalWord"; this.textBoxOriginalWord.ReadOnly = true; - this.textBoxOriginalWord.Size = new System.Drawing.Size(630, 31); - this.textBoxOriginalWord.TabIndex = 7; + this.textBoxOriginalWord.Size = new System.Drawing.Size(314, 20); + this.textBoxOriginalWord.TabIndex = 11; this.toolTip.SetToolTip(this.textBoxOriginalWord, "Word originally on the Clipboard when this dialog opened."); this.textBoxOriginalWord.Visible = false; // // buttonDelete // this.buttonDelete.DialogResult = System.Windows.Forms.DialogResult.Abort; - this.buttonDelete.Location = new System.Drawing.Point(28, 524); + this.buttonDelete.Location = new System.Drawing.Point(14, 272); + this.buttonDelete.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.buttonDelete.Name = "buttonDelete"; - this.buttonDelete.Size = new System.Drawing.Size(126, 46); - this.buttonDelete.TabIndex = 2; + this.buttonDelete.Size = new System.Drawing.Size(63, 24); + this.buttonDelete.TabIndex = 8; this.buttonDelete.Text = "Delete"; this.buttonDelete.UseVisualStyleBackColor = true; - this.buttonDelete.Click += new System.EventHandler(this.buttonDelete_Click); + this.buttonDelete.Click += new System.EventHandler(this.ButtonDelete_Click); // // buttonOk // this.buttonOk.DialogResult = System.Windows.Forms.DialogResult.OK; - this.buttonOk.Location = new System.Drawing.Point(713, 524); + this.buttonOk.Location = new System.Drawing.Point(354, 272); + this.buttonOk.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.buttonOk.Name = "buttonOk"; - this.buttonOk.Size = new System.Drawing.Size(123, 46); - this.buttonOk.TabIndex = 8; + this.buttonOk.Size = new System.Drawing.Size(62, 24); + this.buttonOk.TabIndex = 6; this.buttonOk.Text = "OK"; this.buttonOk.UseVisualStyleBackColor = true; // // buttonCancel // this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.buttonCancel.Location = new System.Drawing.Point(842, 524); + this.buttonCancel.Location = new System.Drawing.Point(420, 272); + this.buttonCancel.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.buttonCancel.Name = "buttonCancel"; - this.buttonCancel.Size = new System.Drawing.Size(123, 46); - this.buttonCancel.TabIndex = 8; + this.buttonCancel.Size = new System.Drawing.Size(62, 24); + this.buttonCancel.TabIndex = 7; this.buttonCancel.Text = "Cancel"; this.buttonCancel.UseVisualStyleBackColor = true; // @@ -239,19 +253,21 @@ private void InitializeComponent() // this.textBoxWordBoundaryFindText.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.tableLayoutPanel.SetColumnSpan(this.textBoxWordBoundaryFindText, 3); - this.textBoxWordBoundaryFindText.Location = new System.Drawing.Point(335, 137); + this.textBoxWordBoundaryFindText.Location = new System.Drawing.Point(168, 79); + this.textBoxWordBoundaryFindText.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.textBoxWordBoundaryFindText.Name = "textBoxWordBoundaryFindText"; this.textBoxWordBoundaryFindText.ReadOnly = true; - this.textBoxWordBoundaryFindText.Size = new System.Drawing.Size(630, 31); - this.textBoxWordBoundaryFindText.TabIndex = 2; + this.textBoxWordBoundaryFindText.Size = new System.Drawing.Size(314, 20); + this.textBoxWordBoundaryFindText.TabIndex = 8; // // QueryFindReplaceDialog // - this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 25F); + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(993, 598); + this.ClientSize = new System.Drawing.Size(496, 311); this.Controls.Add(this.tableLayoutPanel); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.Name = "QueryFindReplaceDialog"; this.Text = "Find & Replace (CC)"; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.QueryFindReplaceDialog_FormClosing); diff --git a/src/SpellingFixerEC/QueryFindReplaceDialog.cs b/src/SpellingFixerEC/QueryFindReplaceDialog.cs index e199da1c..3b30b2c5 100644 --- a/src/SpellingFixerEC/QueryFindReplaceDialog.cs +++ b/src/SpellingFixerEC/QueryFindReplaceDialog.cs @@ -31,7 +31,7 @@ private String BoundaryInitial { get { - return (_isBoundaryInitial) ? BoundaryCharacter : String.Empty; + return (IsBoundaryInitial) ? BoundaryCharacter : String.Empty; } } @@ -39,7 +39,7 @@ private String BoundaryFinal { get { - return (_isBoundaryFinal) ? BoundaryCharacter : String.Empty; + return (IsBoundaryFinal) ? BoundaryCharacter : String.Empty; } } @@ -47,7 +47,7 @@ public QueryFindReplaceDialog(Font font) { InitializeComponent(); - textBoxFindWord.Font = font = + textBoxFindWord.Font = textBoxOriginalWord.Font = textBoxWordBoundaryFindText.Font = textBoxReplaceWord.Font = font; @@ -58,13 +58,13 @@ public DialogResult ShowDialog(string findWhat, string replaceWith, string origi { if (findWhat?.StartsWith(boundaryCharacter) ?? false) { - _isBoundaryInitial = checkBoxWordInitial.Checked = true; + IsBoundaryInitial = checkBoxWordInitial.Checked = true; findWhat = findWhat.Substring(1); } if (findWhat?.EndsWith(boundaryCharacter) ?? false) { - _isBoundaryFinal = checkBoxWordFinal.Checked = true; + IsBoundaryFinal = checkBoxWordFinal.Checked = true; findWhat = findWhat.Substring(0, findWhat.Length - 1); } @@ -111,16 +111,17 @@ public DialogResult ShowDialog(string findWhat, string replaceWith, string origi private void UpdateUniCodes(string strInputString) { - int nLenString = strInputString.Length; - - string strWhole = null, strPiece = null, strUPiece = null; + string strWhole = null; foreach (char ch in strInputString) { + string strPiece; if (ch == 0) // sometimes it's null (esp. for utf32) + { strPiece = "nul (u0000) "; + } else { - strUPiece = String.Format("{0:X}", (int)ch); + var strUPiece = String.Format("{0:X}", (int)ch); // left pad with 0's (there may be a better way to do this, but // I don't know what it is) @@ -134,41 +135,41 @@ private void UpdateUniCodes(string strInputString) labelUnicodeCodes.Text = strWhole; } - private void checkBoxWordBoundary_CheckedChanged(object sender, EventArgs e) + private void CheckBoxWordBoundary_CheckedChanged(object sender, EventArgs e) { UpdateFindWhatDisplay(); } - private void textBoxFindWord_TextChanged(object sender, EventArgs e) + private void TextBoxFindWord_TextChanged(object sender, EventArgs e) { FindWhat = textBoxFindWord.Text; UpdateFindWhatDisplay(); UpdateUniCodes(textBoxFindWord.Text); } - private void textBoxReplaceWord_TextChanged(object sender, EventArgs e) + private void TextBoxReplaceWord_TextChanged(object sender, EventArgs e) { UpdateUniCodes(textBoxReplaceWord.Text); ReplaceWith = textBoxReplaceWord.Text; } - private void textBoxFindWord_Enter(object sender, EventArgs e) + private void TextBoxFindWord_Enter(object sender, EventArgs e) { UpdateUniCodes(textBoxFindWord.Text); } - private void textBoxReplaceWord_Enter(object sender, EventArgs e) + private void TextBoxReplaceWord_Enter(object sender, EventArgs e) { UpdateUniCodes(textBoxReplaceWord.Text); } - private bool _isBoundaryInitial { get; set; } - private bool _isBoundaryFinal { get; set; } + private bool IsBoundaryInitial { get; set; } + private bool IsBoundaryFinal { get; set; } private void UpdateFindWhatDisplay() { - _isBoundaryInitial = checkBoxWordInitial.Checked; - _isBoundaryFinal = checkBoxWordFinal.Checked; + IsBoundaryInitial = checkBoxWordInitial.Checked; + IsBoundaryFinal = checkBoxWordFinal.Checked; textBoxWordBoundaryFindText.Text = FindWhat; } @@ -182,7 +183,7 @@ private void QueryFindReplaceDialog_FormClosing(object sender, FormClosingEventA } } - private void buttonDelete_Click(object sender, EventArgs e) + private void ButtonDelete_Click(object sender, EventArgs e) { Close(); // button has DialogResult.Abort associated w/ it, which triggers the caller to delete } diff --git a/src/SpellingFixerEC/SpellingFixerEC.cs b/src/SpellingFixerEC/SpellingFixerEC.cs index 37130052..055f59ed 100644 --- a/src/SpellingFixerEC/SpellingFixerEC.cs +++ b/src/SpellingFixerEC/SpellingFixerEC.cs @@ -46,11 +46,8 @@ public class SpellingFixerEC private string m_strNonWordChars; private string m_strConverterSpec; private string m_strEncConverterName; - private bool m_bLegacy; private bool m_isRightToLeft; - private int m_cp = 1252; - // leave a default constructor which *doesn't* automatically log-in to a project for // COM clients that want to use CscProject via SelectProject below. public SpellingFixerEC() @@ -63,13 +60,10 @@ public SpellingFixerEC() /// </summary> public void LoginProject() { - LoginSF login = new LoginSF(); + var login = new LoginSF(); if (login.ShowDialog() == DialogResult.OK) { m_font = login.FontToUse; - m_bLegacy = login.IsLegacy; - if (m_bLegacy) - m_cp = login.CpToUse; m_isRightToLeft = login.IsRightToLeft; m_strConverterSpec = login.ConverterSpec; SpellFixerEncConverterName = login.EncConverterName; @@ -82,13 +76,10 @@ public void LoginProject() public SpellingFixerEC(string strProjectName) { - LoginSF login = new LoginSF(); + var login = new LoginSF(); if (login.LoadProject(strProjectName)) { m_font = login.FontToUse; - m_bLegacy = login.IsLegacy; - if (m_bLegacy) - m_cp = login.CpToUse; m_isRightToLeft = login.IsRightToLeft; m_strConverterSpec = login.ConverterSpec; SpellFixerEncConverterName = login.EncConverterName; @@ -106,10 +97,7 @@ public SpellingFixerEC(string strProjectName, Font font, string strConverterSpec [Optional, DefaultParameterValue(false)] bool bRightToLeft) { m_font = font; - m_bLegacy = bLegacy; m_isRightToLeft = bRightToLeft; - if (m_bLegacy) - m_cp = cp; m_strConverterSpec = strConverterSpec; SpellFixerEncConverterName = strEncConverterName; WordBoundaryDelimiter = strWordBoundaryDelimiter; @@ -150,8 +138,8 @@ public IEncConverter SpellFixerEncConverter if (m_strEncConverterName == null) return null; - EncConverters aECs = new EncConverters(); - IEncConverter aEC = null; + var aECs = new EncConverters(); + IEncConverter aEC; if (aECs.ContainsKey(m_strEncConverterName)) aEC = aECs[m_strEncConverterName]; else @@ -159,9 +147,9 @@ public IEncConverter SpellFixerEncConverter aEC = new CcEncConverter(); string strDummy = null; int nProcType = 0; - ConvType eConvType = (m_bLegacy) ? ConvType.Legacy_to_Legacy : ConvType.Unicode_to_Unicode; + var eConvType = ConvType.Unicode_to_Unicode; aEC.Initialize(m_strEncConverterName, m_strConverterSpec, ref strDummy, ref strDummy, - ref eConvType, ref nProcType, m_cp, m_cp, true); + ref eConvType, ref nProcType, 0, 0, true); } return aEC; @@ -196,9 +184,8 @@ public void QueryForSpellingCorrectionIfTableEmpty(string strBadWord) // even if the file exists, it might have no rules, so double-check if (File.Exists(m_strConverterSpec)) { - DataTable myTable; Encoding enc = GetEncoding; - if ( !InitializeDataTableFromCCTable(m_strConverterSpec, enc, WordBoundaryDelimiter, out myTable) + if ( !InitializeDataTableFromCCTable(m_strConverterSpec, enc, WordBoundaryDelimiter, out DataTable myTable) || (myTable.Rows.Count > 0)) { return; // don't query for a record if there are already spelling corrections in the file @@ -206,7 +193,7 @@ public void QueryForSpellingCorrectionIfTableEmpty(string strBadWord) } else { - LoginSF.CreateCCTable(m_strConverterSpec, SpellFixerEncConverterName, PunctuationAndWhiteSpace, null, !this.m_bLegacy); + LoginSF.CreateCCTable(m_strConverterSpec, SpellFixerEncConverterName, PunctuationAndWhiteSpace); } QueryAndAppend(strBadWord); @@ -226,7 +213,7 @@ protected void QueryAndAppend(string strBadWord) Encoding enc = GetEncoding; // get a stream writer for these encoding and append - StreamWriter sw = new StreamWriter(m_strConverterSpec, true, enc); + var sw = new StreamWriter(m_strConverterSpec, true, enc); sw.WriteLine(FormatSubstitutionRule(aQuery.FindWhat, aQuery.ReplaceWith, WordBoundaryDelimiter, strBadWord)); sw.Flush(); sw.Close(); @@ -259,7 +246,7 @@ public void AssignCorrectSpelling(string strBadWord) } else { - LoginSF.CreateCCTable(m_strConverterSpec, SpellFixerEncConverterName, PunctuationAndWhiteSpace, null, !this.m_bLegacy); + LoginSF.CreateCCTable(m_strConverterSpec, SpellFixerEncConverterName, PunctuationAndWhiteSpace); } QueryAndAppend(strBadWord); @@ -288,7 +275,7 @@ public void AssignCorrectSpelling(string strBadWord, string strReplacement) } else { - LoginSF.CreateCCTable(m_strConverterSpec, SpellFixerEncConverterName, PunctuationAndWhiteSpace, null, !this.m_bLegacy); + LoginSF.CreateCCTable(m_strConverterSpec, SpellFixerEncConverterName, PunctuationAndWhiteSpace); } // if it was legacy encoded, then we need to convert the data to narrow using @@ -296,7 +283,7 @@ public void AssignCorrectSpelling(string strBadWord, string strReplacement) Encoding enc = GetEncoding; // get a stream writer for this encoding and append - StreamWriter sw = new StreamWriter(m_strConverterSpec, true, enc); + var sw = new StreamWriter(m_strConverterSpec, true, enc); sw.WriteLine(FormatSubstitutionRule(strBadWord, strReplacement, WordBoundaryDelimiter, strBadWord)); sw.Flush(); sw.Close(); @@ -311,9 +298,8 @@ public void FindReplacementRule(string strWord) CleanWord(ref strWord); // Open the CC table that has the mappings and put them in a DataTable. - DataTable myTable; Encoding enc = GetEncoding; - if (InitializeDataTableFromCCTable(m_strConverterSpec, enc, WordBoundaryDelimiter, out myTable)) + if (InitializeDataTableFromCCTable(m_strConverterSpec, enc, WordBoundaryDelimiter, out DataTable myTable)) { // temporary filename for temporary CC tables (to check portions of the file at a time) string strTempName = Path.GetTempFileName(); @@ -413,7 +399,6 @@ public void FindReplacementRule(string strWord) if (bRewrite) { // write the newly updated DataTable - LoginSF.ReWriteCCTableHeader(m_strConverterSpec, PunctuationAndWhiteSpace, enc); AppendCCTableFromDataTable(m_strConverterSpec, enc, WordBoundaryDelimiter, PunctuationAndWhiteSpace, myTable); } } @@ -429,20 +414,19 @@ public void EditSpellingFixes() // Open the CC table that has the mappings and put them in a DataTable. if (!File.Exists(m_strConverterSpec)) { - LoginSF.CreateCCTable(m_strConverterSpec, SpellFixerEncConverterName, PunctuationAndWhiteSpace, null, !this.m_bLegacy); + LoginSF.CreateCCTable(m_strConverterSpec, SpellFixerEncConverterName, PunctuationAndWhiteSpace); } // if it was legacy encoded, then we need to convert the data to narrow using // the code page the user specified (or we got out of the repository) Encoding enc = GetEncoding; - DataTable myTable; - if (InitializeDataTableFromCCTable(m_strConverterSpec, enc, WordBoundaryDelimiter, out myTable)) + if (InitializeDataTableFromCCTable(m_strConverterSpec, enc, WordBoundaryDelimiter, out DataTable myTable)) { // now put up an editable grid with this data. DialogResult res = DialogResult.Cancel; try { - ViewBadGoodPairsDlg dlg = new ViewBadGoodPairsDlg(myTable, m_font, WordBoundaryDelimiter, IsRightToLeft); + var dlg = new ViewBadGoodPairsDlg(myTable, m_font, WordBoundaryDelimiter, IsRightToLeft); res = dlg.ShowDialog(); } #if DEBUG @@ -456,7 +440,6 @@ public void EditSpellingFixes() if (res == DialogResult.OK) { - LoginSF.ReWriteCCTableHeader(m_strConverterSpec, PunctuationAndWhiteSpace, enc); AppendCCTableFromDataTable(m_strConverterSpec, enc, WordBoundaryDelimiter, PunctuationAndWhiteSpace, myTable); } } @@ -467,19 +450,7 @@ protected Encoding GetEncoding { get { - // if it was legacy encoded, then we need to convert the data to narrow using - // the code page the user specified (or we got out of the repository) - Encoding enc = null; - if (m_bLegacy) - { - int cp = m_cp; - if (m_cp == EncConverters.cnSymbolFontCodePage) - cp = EncConverters.cnIso8859_1CodePage; - enc = Encoding.GetEncoding(cp); - } - else - enc = new UTF8Encoding(); - + var enc = new UTF8Encoding(); return enc; } } @@ -488,7 +459,7 @@ protected static DataTable GetDataTable { get { - DataTable myTable = new DataTable("SpellingFixesList"); + var myTable = new DataTable("SpellingFixesList"); myTable.Columns.Add(new DataColumn(strColumnLhs, typeof(string))); myTable.Columns.Add(new DataColumn(strColumnRhs, typeof(string))); myTable.Columns.Add(new DataColumn(strColumnCmt, typeof(string))); @@ -502,8 +473,8 @@ private static void CleanWord(ref string str) // then strip off invalid chars (that sometimes come in from Word) if (str != null) { - int nIndexBadChar = 0; char[] aBadChars = new char[] { '\r', '\n' }; + int nIndexBadChar; while ((nIndexBadChar = str.IndexOfAny(aBadChars)) != -1) str = str.Remove(nIndexBadChar, 1); } @@ -527,7 +498,7 @@ private bool ChaChaChaChaChanges(IEncConverter aEC, string strFileName, string s { string strDummy = null; int lProcessType = (int)SpellingFixerEC.SFProcessType; - ConvType eConvType = (m_bLegacy) ? ConvType.Legacy_to_Legacy : ConvType.Unicode_to_Unicode; + var eConvType = ConvType.Unicode_to_Unicode; aEC.Initialize("dummyname", strFileName, ref strDummy, ref strDummy, ref eConvType, ref lProcessType, 0, 0, true); return (aEC.Convert(strWord) != strWord); } @@ -538,20 +509,6 @@ private bool ChaChaChaChaChanges(IEncConverter aEC, string strFileName, Encoding return ChaChaChaChaChanges(aEC, strFileName, strWord); } - private void GetPortionOfTable(DataTable myTable, int nIndex, int nLength, ref DataTable tblTestingRules) - { - tblTestingRules.Clear(); - for (int i = nIndex; (nLength-- > 0); nIndex++) - { - DataRow row = myTable.Rows[nIndex]; - DataRow newRow = tblTestingRules.NewRow(); - newRow[strColumnLhs] = row[strColumnLhs]; - newRow[strColumnRhs] = row[strColumnRhs]; - newRow[strColumnCmt] = row[strColumnCmt]; - tblTestingRules.Rows.Add(newRow); - } - } - internal static string FormatSubstitutionRule(string strBad, string strGood, string strWordBoundaryDelimiter, string strCommentWord) { // if the user indicated a word boundary condition (i.e. #pete, ete#, or #pete#) @@ -603,14 +560,18 @@ internal static void AppendCCTableFromDataTable string strConverterSpec, Encoding enc, string strWordBoundaryDelimiter, - string strPunctuationAndWhiteSpace, + string strNonWordCharacters, DataTable myTable ) { + int rowCount = myTable.Rows.Count; + + LoginSF.ReWriteCCTableHeader(strConverterSpec, strNonWordCharacters, enc, rowCount > 0); + // get a stream writer to write the new pairs - StreamWriter sw = new StreamWriter(strConverterSpec, true, enc); + var sw = new StreamWriter(strConverterSpec, true, enc); - AppendCCTableFromDataTable(sw, strWordBoundaryDelimiter, strPunctuationAndWhiteSpace, myTable, 0, myTable.Rows.Count); + AppendCCTableFromDataTable(sw, strWordBoundaryDelimiter, myTable, 0, rowCount); sw.Flush(); sw.Close(); @@ -621,9 +582,9 @@ internal void WriteCCTableFromDataTable(string strFilename, Encoding enc, DataTa if (File.Exists(strFilename)) File.Delete(strFilename); - StreamWriter sw = new StreamWriter(strFilename, false, enc); - LoginSF.CreateCCTable(sw, SpellFixerEncConverterName, PunctuationAndWhiteSpace, null, !m_bLegacy); - AppendCCTableFromDataTable(sw, WordBoundaryDelimiter, PunctuationAndWhiteSpace, tbl, nTableIndex, nNumRows); + var sw = new StreamWriter(strFilename, false, enc); + LoginSF.CreateCCTable(sw, SpellFixerEncConverterName, PunctuationAndWhiteSpace); + AppendCCTableFromDataTable(sw, WordBoundaryDelimiter, tbl, nTableIndex, nNumRows); sw.Flush(); sw.Close(); } @@ -632,7 +593,6 @@ internal static void AppendCCTableFromDataTable ( StreamWriter sw, string strWordBoundaryDelimiter, - string strPunctuationAndWhiteSpace, DataTable myTable, int nTableIndex, int nNumRows @@ -659,10 +619,10 @@ int nNumRows internal static StreamReader InitReaderPastHeader(string strConverterSpec, Encoding enc) { // get a stream writer for these encoding and append - StreamReader sr = new StreamReader(strConverterSpec, enc); + var sr = new StreamReader(strConverterSpec, enc); // skip past the header lines - string line = null; + string line; do { line = sr.ReadLine(); @@ -670,7 +630,7 @@ internal static StreamReader InitReaderPastHeader(string strConverterSpec, Encod if (line == null) throw new ExternalException(String.Format("The substitution mapping file (i.e. '{0}') appears to be from a previous version of SpellFixer. Create a new project and manually copy over the spelling substitutions from the existing mapping file to the new project mapping file using a text editor like Notepad", strConverterSpec)); - } while (line != LoginSF.cstrLastHeaderLine); + } while (line != LoginSF.CctableLastHeaderLine); return sr; } @@ -687,7 +647,7 @@ out DataTable myTable StreamReader sr = InitReaderPastHeader(strConverterSpec, enc); myTable = GetDataTable; - string line = null; + string line; while ((line = sr.ReadLine()) != null) { string strLhs = null; diff --git a/src/SpellingFixerEC/SpellingFixerEC.csproj b/src/SpellingFixerEC/SpellingFixerEC.csproj index 237fd190..2e639bd9 100644 --- a/src/SpellingFixerEC/SpellingFixerEC.csproj +++ b/src/SpellingFixerEC/SpellingFixerEC.csproj @@ -141,12 +141,21 @@ </Reference> </ItemGroup> <ItemGroup> + <Compile Include="AddNewProjectForm.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="AddNewProjectForm.Designer.cs"> + <DependentUpon>AddNewProjectForm.cs</DependentUpon> + </Compile> <Compile Include="AssemblyInfo.cs"> <SubType>Code</SubType> </Compile> <Compile Include="LoginSF.cs"> <SubType>Form</SubType> </Compile> + <Compile Include="LoginSF.Designer.cs"> + <DependentUpon>LoginSF.cs</DependentUpon> + </Compile> <Compile Include="Properties\Resources.Designer.cs"> <AutoGen>True</AutoGen> <DesignTime>True</DesignTime> @@ -166,6 +175,9 @@ <Compile Include="ViewBadGoodPairsDlg.designer.cs"> <DependentUpon>ViewBadGoodPairsDlg.cs</DependentUpon> </Compile> + <EmbeddedResource Include="AddNewProjectForm.resx"> + <DependentUpon>AddNewProjectForm.cs</DependentUpon> + </EmbeddedResource> <EmbeddedResource Include="LoginSF.resx"> <DependentUpon>LoginSF.cs</DependentUpon> <SubType>Designer</SubType> diff --git a/src/SpellingFixerEC/ViewBadGoodPairsDlg.cs b/src/SpellingFixerEC/ViewBadGoodPairsDlg.cs index ef0fcc82..6245e0ae 100644 --- a/src/SpellingFixerEC/ViewBadGoodPairsDlg.cs +++ b/src/SpellingFixerEC/ViewBadGoodPairsDlg.cs @@ -22,8 +22,8 @@ internal partial class ViewBadGoodPairsDlg : Form const int cnBadSpelling = 0; const int cnGoodSpelling = 1; - private string _wordBoundaryDelimiter; - private bool _isRightToLeft; + private readonly string _wordBoundaryDelimiter; + private readonly bool _isRightToLeft; internal ViewBadGoodPairsDlg(DataTable myTable, Font font, string wordBoundaryDelimiter, bool isRightToLeft) { @@ -99,24 +99,24 @@ protected bool EditingCscBad2GoodList } #endif - private void buttonOK_Click(object sender, EventArgs e) + private void ButtonOK_Click(object sender, EventArgs e) { DialogResult = DialogResult.OK; this.Close(); } - private void buttonCancel_Click(object sender, EventArgs e) + private void ButtonCancel_Click(object sender, EventArgs e) { DialogResult = DialogResult.Cancel; this.Close(); } - private void dataGridView_UserAddedRow(object sender, DataGridViewRowEventArgs e) + private void DataGridView_UserAddedRow(object sender, DataGridViewRowEventArgs e) { buttonOK.Enabled = true; } - private void dataGridView_UserDeletedRow(object sender, DataGridViewRowEventArgs e) + private void DataGridView_UserDeletedRow(object sender, DataGridViewRowEventArgs e) { DeletingRow(e.Row); } @@ -158,7 +158,7 @@ protected bool DeletingRow(DataGridViewRow theRow) protected string m_strBadForm = null; protected string m_strGoodForm = null; protected string m_strWordBeingEdited = null; - private void dataGridView_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) + private void DataGridView_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) { DataGridViewRow theRow = dataGridView.Rows[e.RowIndex]; if (theRow.IsNewRow) @@ -172,7 +172,7 @@ private void dataGridView_CellBeginEdit(object sender, DataGridViewCellCancelEve m_strWordBeingEdited = (e.ColumnIndex == cnBadSpelling) ? m_strBadForm : m_strGoodForm; } - private void dataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e) + private void DataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e) { DataGridViewRow theRow = dataGridView.Rows[e.RowIndex]; string strWordEdited = (string)theRow.Cells[e.ColumnIndex].Value; @@ -180,218 +180,12 @@ private void dataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e return; buttonOK.Enabled = true; - -#if !TurnOffSF30 - // the word was changed... if we're editing the dictionary... - if (EditingDictionary) - { - // if this is a new record... - if (String.IsNullOrEmpty(m_strWordBeingEdited)) - if (!AddToWhiteList(strWordEdited)) // (i.e. so add) - { - // means we didn't add it (because it was already there) - System.Diagnostics.Debug.Assert(m_mapWhiteList.ContainsKey(strWordEdited)); - - // in that case, don't add this new value, but just select and display the existing value. - theRow.Cells[cnGoodSpelling].Value = null; - } - - // ... then we also have to update any entries in the bad2good list that had - // the original good word in them. - DialogResult res = RetaskBad2GoodList(m_strWordBeingEdited, strWordEdited); - - // either if they said 'Yes' or there weren't others... - if (res != DialogResult.Cancel) - { - // update the current value in the known good list with the new value - RetaskWhiteListSfw(m_strWordBeingEdited, strWordEdited); - } - - // if it happened to have been 'No', then we have to have the old value as well - if (res == DialogResult.No) - { - if (AddToWhiteList(m_strWordBeingEdited)) // (i.e. so add) - dataGridView.Rows.Add(new object[] { null, m_strWordBeingEdited }); - } - - // the update to the WordsToCheck will happen by the caller after we're totally done - } - else if (EditingCscBad2GoodList) - { - DataGridViewCell theBadCell = theRow.Cells[cnBadSpelling]; - if (e.ColumnIndex == cnGoodSpelling) - { - string strBadValue = (string)theBadCell.Value; - if (String.IsNullOrEmpty(strBadValue)) - theRow.Cells[cnGoodSpelling].Value = strWordEdited; - else - { - // if this is newly edited (i.e. word being edited is null), then pretend the bad value is - // new too (or it looks like it's already there) - GoodValueEdited(theRow, strBadValue, strBadValue, m_strWordBeingEdited, strWordEdited); - } - } - else // edited the bad spelling cell - { - System.Diagnostics.Debug.Assert(e.ColumnIndex == cnBadSpelling); - if (String.IsNullOrEmpty(m_strWordBeingEdited) && (theRow.Cells[cnGoodSpelling].Value == null)) - // means that this is the new row, so with only a bad value, we have nothing - theRow.Cells[cnBadSpelling].Value = strWordEdited; - else - BadValueOnlyEdited(theBadCell, m_strWordBeingEdited, strWordEdited, (string)theRow.Cells[cnGoodSpelling].Value); - } - } -#endif - } - - private void UpdateGridGoodValues(string strOldValue, string strNewValue) - { - foreach (DataGridViewRow aRow in dataGridView.Rows) - { - DataGridViewCell theGoodCell = aRow.Cells[cnGoodSpelling]; - if (strOldValue == (string)theGoodCell.Value) - theGoodCell.Value = strNewValue; - } - } - -#if !TurnOffSF30 - private DialogResult RetaskBad2GoodList(string strOldValue, string strNewValue) - { - // ... then we also have to update any entries in the bad2good list that had - // the original good word in them. - DialogResult res = DialogResult.None; - if (m_mapBad2Good.ContainsValue(strOldValue)) - { - bool bDeleting = String.IsNullOrEmpty(strNewValue); - string strMsg = String.Format("The word you just {1}, '{2}', is in other records in the bad-to-good list.{0}Would you like to have those record(s) {1} as well?", - Environment.NewLine, (bDeleting) ? "deleted" : "changed", strOldValue); - - if (!bDeleting) - strMsg += String.Format(" (i.e. to '{0}')", strNewValue); - - res = MessageBox.Show(strMsg, CscProject.cstrCaption, MessageBoxButtons.YesNoCancel); - - if (res == DialogResult.Yes) - { - while (m_mapBad2Good.ContainsValue(strOldValue)) - { - foreach (KeyValuePair<string, string> kvp in m_mapBad2Good) - { - if (strOldValue == kvp.Value) - { - m_mapBad2Good.Remove(kvp.Key); - if (!bDeleting) - m_mapBad2Good.Add(kvp.Key, strNewValue); - break; // can't modify the collection without restarting the enumerator - } - } - } - } - } - - return res; - } - - private void RetaskWhiteListSfw(string strKey, string strNewValue) - { - SpellFixerWord sfw = m_mapWhiteList[strKey]; - m_mapWhiteList.Remove(strKey); - if (!m_mapWhiteList.ContainsKey(strNewValue)) - { - sfw.Value = strNewValue; - sfw.InitializeNonStaticData(m_project); - m_mapWhiteList.Add(sfw); - } - } - - private bool AddToWhiteList(string strValue) - { - if (!m_mapWhiteList.ContainsKey(strValue)) - { - SpellFixerWord sfw = m_project.GetNewSpellFixerWord(strValue, null); - m_mapWhiteList.Add(sfw); - return true; - } - return false; - } - - protected void GoodValueEdited(DataGridViewRow theRow, string strBadValue, string strNewBadValue, - string strGoodValue, string strNewGoodValue) - { - // if the new record is already in there, then just select and display the existing value - if (strBadValue != strNewBadValue) - foreach (DataGridViewRow aRow in dataGridView.Rows) - if (strNewBadValue == (string)aRow.Cells[cnBadSpelling].Value) - { - aRow.Selected = true; - dataGridView.FirstDisplayedScrollingRowIndex = aRow.Index; - System.Diagnostics.Debug.Assert(m_mapBad2Good.ContainsKey(strNewBadValue) && m_mapBad2Good[strNewBadValue] == strNewGoodValue); - return; - } - - // remove the one we're editing (so we don't find it below causing us to query the user - // about *that* one) - if (!String.IsNullOrEmpty(strBadValue)) - m_mapBad2Good.Remove(strBadValue); - - // then see if any other records have the same 'good form' and ask the user if they'd like us - // to change those also - DialogResult res = RetaskBad2GoodList(strGoodValue, strNewGoodValue); - if (res == DialogResult.Yes) - UpdateGridGoodValues(strGoodValue, strNewGoodValue); - - // now update the row being edited with the new data - theRow.Cells[cnGoodSpelling].Value = strNewGoodValue; - if (strNewBadValue != strBadValue) - theRow.Cells[cnBadSpelling].Value = strNewBadValue; - - // now add the new data to the collection - m_mapBad2Good.Add(strNewBadValue, strNewGoodValue); - - // also update the known good list with the new good form (if we're changing them all) - System.Diagnostics.Debug.Assert(String.IsNullOrEmpty(strGoodValue) || m_mapWhiteList.ContainsKey(strGoodValue)); - if (!String.IsNullOrEmpty(strGoodValue) - && m_mapWhiteList.ContainsKey(strGoodValue) - && (res != DialogResult.No)) // this means the original good form is still there for other records - { - RetaskWhiteListSfw(strGoodValue, strNewGoodValue); - } - else if (!m_mapWhiteList.ContainsKey(strNewGoodValue)) - AddToWhiteList(strNewGoodValue); - - buttonOK.Enabled = true; - // the update to the WordsToCheck will happen by the caller after we're totally done - } - - protected void BadValueOnlyEdited(DataGridViewCell theBadCell, string strBadValue, string strNewBadValue, - string strNewGoodValue) - { - // update the row value - theBadCell.Value = strNewBadValue; - - // and update the collection - if (!String.IsNullOrEmpty(strBadValue)) - m_mapBad2Good.Remove(strBadValue); - - m_mapBad2Good.Add(strNewBadValue, strNewGoodValue); - - // since we know this can't be a good word (or it wouldn't be the 'bad' form), remove it from the white list if present - if (m_mapWhiteList.ContainsKey(strNewBadValue)) - m_mapWhiteList.Remove(strNewBadValue); - - buttonOK.Enabled = true; } -#else // not in SF30 -#endif - - private void dataGridView_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e) + private void DataGridView_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e) { if ((e.RowIndex < 0) || (e.RowIndex >= dataGridView.Rows.Count) || (e.ColumnIndex < 0) || (e.ColumnIndex >= dataGridView.Columns.Count) -#if !TurnOffSF30 - || (EditingDictionary) -#endif || (e.Button != MouseButtons.Right)) return; @@ -516,7 +310,7 @@ protected void ProcessEditRow(DataGridViewRow theRow) } } - private void dataGridView_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) + private void DataGridView_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) { System.Diagnostics.Trace.WriteLine(String.Format("PreviewKeyDown: sender: {3}, KeyValue: {0}, KeyCode: {1}, KeyData: {2}", e.KeyValue, e.KeyCode, e.KeyData, sender.ToString())); @@ -538,7 +332,7 @@ private void dataGridView_PreviewKeyDown(object sender, PreviewKeyDownEventArgs } } - private void buttonAddCorrection_Click(object sender, EventArgs e) + private void ButtonAddCorrection_Click(object sender, EventArgs e) { DataTable myTable = (DataTable)dataGridView.DataSource; myTable.Rows.Add(new object[] { "incorect", "incorrect" }); diff --git a/src/SpellingFixerEC/ViewBadGoodPairsDlg.designer.cs b/src/SpellingFixerEC/ViewBadGoodPairsDlg.designer.cs index dd730121..76c9d7c3 100644 --- a/src/SpellingFixerEC/ViewBadGoodPairsDlg.designer.cs +++ b/src/SpellingFixerEC/ViewBadGoodPairsDlg.designer.cs @@ -32,12 +32,12 @@ private void InitializeComponent() { this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel(); this.dataGridView = new System.Windows.Forms.DataGridView(); - this.ColumnBadSpelling = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.ColumnGoodSpelling = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.buttonOK = new System.Windows.Forms.Button(); this.buttonCancel = new System.Windows.Forms.Button(); - this.helpProvider = new System.Windows.Forms.HelpProvider(); this.buttonAddCorrection = new System.Windows.Forms.Button(); + this.helpProvider = new System.Windows.Forms.HelpProvider(); + this.ColumnBadSpelling = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.ColumnGoodSpelling = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.tableLayoutPanel.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).BeginInit(); this.SuspendLayout(); @@ -76,55 +76,55 @@ private void InitializeComponent() this.dataGridView.RowHeadersWidth = 26; this.dataGridView.Size = new System.Drawing.Size(375, 293); this.dataGridView.TabIndex = 0; - this.dataGridView.UserAddedRow += new System.Windows.Forms.DataGridViewRowEventHandler(this.dataGridView_UserAddedRow); - this.dataGridView.CellBeginEdit += new System.Windows.Forms.DataGridViewCellCancelEventHandler(this.dataGridView_CellBeginEdit); - this.dataGridView.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.dataGridView_PreviewKeyDown); - this.dataGridView.CellMouseUp += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.dataGridView_CellMouseUp); - this.dataGridView.UserDeletedRow += new System.Windows.Forms.DataGridViewRowEventHandler(this.dataGridView_UserDeletedRow); - this.dataGridView.CellEndEdit += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView_CellEndEdit); - // - // ColumnBadSpelling - // - this.ColumnBadSpelling.HeaderText = "Bad Form"; - this.ColumnBadSpelling.Name = "ColumnBadSpelling"; - // - // ColumnGoodSpelling - // - this.ColumnGoodSpelling.HeaderText = "Good Form"; - this.ColumnGoodSpelling.Name = "ColumnGoodSpelling"; + this.dataGridView.CellBeginEdit += new System.Windows.Forms.DataGridViewCellCancelEventHandler(this.DataGridView_CellBeginEdit); + this.dataGridView.CellEndEdit += new System.Windows.Forms.DataGridViewCellEventHandler(this.DataGridView_CellEndEdit); + this.dataGridView.CellMouseUp += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.DataGridView_CellMouseUp); + this.dataGridView.UserAddedRow += new System.Windows.Forms.DataGridViewRowEventHandler(this.DataGridView_UserAddedRow); + this.dataGridView.UserDeletedRow += new System.Windows.Forms.DataGridViewRowEventHandler(this.DataGridView_UserDeletedRow); + this.dataGridView.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.DataGridView_PreviewKeyDown); // // buttonOK // this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.buttonOK.Location = new System.Drawing.Point(48, 302); + this.buttonOK.Location = new System.Drawing.Point(49, 302); this.buttonOK.Name = "buttonOK"; this.buttonOK.Size = new System.Drawing.Size(75, 23); this.buttonOK.TabIndex = 1; this.buttonOK.Text = "OK"; this.buttonOK.UseVisualStyleBackColor = true; - this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click); + this.buttonOK.Click += new System.EventHandler(this.ButtonOK_Click); // // buttonCancel // this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.buttonCancel.Location = new System.Drawing.Point(129, 302); + this.buttonCancel.Location = new System.Drawing.Point(130, 302); this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.Size = new System.Drawing.Size(75, 23); this.buttonCancel.TabIndex = 2; this.buttonCancel.Text = "Cancel"; this.buttonCancel.UseVisualStyleBackColor = true; - this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click); + this.buttonCancel.Click += new System.EventHandler(this.ButtonCancel_Click); // // buttonAddCorrection // - this.buttonAddCorrection.Location = new System.Drawing.Point(255, 302); + this.buttonAddCorrection.Location = new System.Drawing.Point(257, 302); this.buttonAddCorrection.Name = "buttonAddCorrection"; this.buttonAddCorrection.Size = new System.Drawing.Size(114, 23); this.buttonAddCorrection.TabIndex = 3; - this.buttonAddCorrection.Text = "&Add Correction"; + this.buttonAddCorrection.Text = "&Add Substitution"; this.buttonAddCorrection.UseVisualStyleBackColor = true; - this.buttonAddCorrection.Click += new System.EventHandler(this.buttonAddCorrection_Click); + this.buttonAddCorrection.Click += new System.EventHandler(this.ButtonAddCorrection_Click); + // + // ColumnBadSpelling + // + this.ColumnBadSpelling.HeaderText = "Find What"; + this.ColumnBadSpelling.Name = "ColumnBadSpelling"; + // + // ColumnGoodSpelling + // + this.ColumnGoodSpelling.HeaderText = "Replace With"; + this.ColumnGoodSpelling.Name = "ColumnGoodSpelling"; // // ViewBadGoodPairsDlg // @@ -138,7 +138,7 @@ private void InitializeComponent() this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "ViewBadGoodPairsDlg"; - this.Text = "Edit Bad-Good Pairs"; + this.Text = "Edit Find-Replace Pairs"; this.tableLayoutPanel.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit(); this.ResumeLayout(false); @@ -149,11 +149,11 @@ private void InitializeComponent() private System.Windows.Forms.TableLayoutPanel tableLayoutPanel; private System.Windows.Forms.DataGridView dataGridView; - private System.Windows.Forms.DataGridViewTextBoxColumn ColumnBadSpelling; - private System.Windows.Forms.DataGridViewTextBoxColumn ColumnGoodSpelling; private System.Windows.Forms.Button buttonOK; private System.Windows.Forms.Button buttonCancel; private System.Windows.Forms.HelpProvider helpProvider; private System.Windows.Forms.Button buttonAddCorrection; + private System.Windows.Forms.DataGridViewTextBoxColumn ColumnBadSpelling; + private System.Windows.Forms.DataGridViewTextBoxColumn ColumnGoodSpelling; } } \ No newline at end of file diff --git a/src/SpellingFixerEC/ViewBadGoodPairsDlg.resx b/src/SpellingFixerEC/ViewBadGoodPairsDlg.resx index 615b2736..b780aad6 100644 --- a/src/SpellingFixerEC/ViewBadGoodPairsDlg.resx +++ b/src/SpellingFixerEC/ViewBadGoodPairsDlg.resx @@ -112,24 +112,18 @@ <value>2.0</value> </resheader> <resheader name="reader"> - <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <resheader name="writer"> - <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> - <metadata name="ColumnBadSpelling.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <metadata name="ColumnBadSpelling.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <value>True</value> </metadata> - <metadata name="ColumnGoodSpelling.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <metadata name="ColumnGoodSpelling.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <value>True</value> </metadata> - <metadata name="ColumnBadSpelling.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>True</value> - </metadata> - <metadata name="ColumnGoodSpelling.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>True</value> - </metadata> - <metadata name="helpProvider.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <metadata name="helpProvider.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>17, 17</value> </metadata> </root> \ No newline at end of file From 3212089079a295e48fb968ac4d906694734de87e Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sat, 11 Mar 2023 06:03:14 -0600 Subject: [PATCH 20/71] if the Paratext BT Helper plugin is installed, install SpellFixer (aka. FindReplace, which is now implicitly available in the plugin via the Add Substitution button and related context menu) and SetPath, so the cc engine (used by SpellFixer) is reachable --- Installer/SEC Setup 64bit/EcFeatures.wxs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Installer/SEC Setup 64bit/EcFeatures.wxs b/Installer/SEC Setup 64bit/EcFeatures.wxs index 76779d58..c7b24889 100644 --- a/Installer/SEC Setup 64bit/EcFeatures.wxs +++ b/Installer/SEC Setup 64bit/EcFeatures.wxs @@ -104,6 +104,8 @@ <MergeRef Id="SEC_EC"/> <MergeRef Id="ParatextBackTranslationHelperPlugin"/> <MergeRef Id="EcTranslators"/> + <MergeRef Id="SpellFixerEc"/> + <MergeRef Id="SetPath"/> </Feature> </Feature> <Feature Id="Transduction_Engines" Title="Transduction Engines" Description="Expand this node to select or deselect individual transduction engines" Level="3" AllowAdvertise="no"> From 2d71d8af7552106b32dae733657eafe04fa62db6 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sat, 11 Mar 2023 07:51:47 -0600 Subject: [PATCH 21/71] add scaffolding for RegisterForNotification with the BTHelperControl so we can get updates to the TargetTranslation text box (and warn user about discrepancies in the number of lines translated) --- .../BackTranslationHelperForm.cs | 68 +++++++++++++++---- 1 file changed, 54 insertions(+), 14 deletions(-) diff --git a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs index de7d01ac..215771d1 100644 --- a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs +++ b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs @@ -58,6 +58,16 @@ public partial class BackTranslationHelperForm : Form, IBackTranslationHelperDat /// </summary> private Dictionary<string, List<IUSFMToken>> UsfmTokensSource { get; set; } = new Dictionary<string, List<IUSFMToken>>(); + /// <summary> + /// The number of text lines in the source data (i.e. the number of IUSFMTextTokens in the verse(s)) + /// </summary> + private int SourceDataLineCount { get; set; } + + /// <summary> + /// This contains the list of marker tokens immediately preceding the text tokens in the source data + /// </summary> + private List<IUSFMMarkerToken> TextTokenMarkersSource { get; set; } = new List<IUSFMMarkerToken>(); + /// <summary> /// this contains the tokens from the target project, for all the verses in the current chapter (we need the /// whole chapter,because we have to Put the entire chapter when we go to write it. @@ -85,12 +95,26 @@ public BackTranslationHelperForm(IPluginHost host, ParatextBackTranslationHelper // this form is the implementation of the way to get get data backTranslationHelperCtrl.BackTranslationHelperDataSource = this; + backTranslationHelperCtrl.RegisterForNotification(BackTranslationHelperCtrl.SubscribeableEventKeyTargetBackTranslationTextChanged, + TargetBackTranslationTextChanged); _host.VerseRefChanged += Host_VerseRefChanged; _projectSource.ScriptureDataChanged += ScriptureDataChangedHandlerSource; _projectTarget.ScriptureDataChanged += ScriptureDataChangedHandlerTarget; } + private void TargetBackTranslationTextChanged(string value) + { + var translatedCount = GetTranslatedLines(value).Count; + if (SourceDataLineCount != translatedCount) + { + // TODO: add a tooltip to show how the currently translated lines will be put into the source project markers + textBoxStatus.Text = $"There are currently {translatedCount} lines of text in the Target Translation box vs. {SourceDataLineCount} text lines in the source verse (one for each of these markers: {String.Join(",", TextTokenMarkersSource.Select(m => $"\\{m.Marker}"))})"; + } + else + textBoxStatus.Clear(); + } + private static string GetFrameText(IProject projectSource, IProject projectTarget, IVerseRef versesReference) { return String.Format(FrameTextFormat, GetProjectName(projectSource, projectTarget), versesReference); @@ -245,7 +269,11 @@ private string CurrentSourceData .Where(t => t.IsPublishableVernacular && IsMatchingVerse(t.VerseRef, _verseReference)) .ToDictionary(ta => ta, ta => ta.VerseRef); + TextTokenMarkersSource = GetTextTokenMarkers(tokens, data.Keys.ToList()); + var textValues = data.Select(t => t.Key.Text); + SourceDataLineCount = textValues.Count(); + var sourceString = string.Join(Environment.NewLine, textValues); // set the verse reference to the last of a combined set of verses (which we can only get from the USFM markers) @@ -258,6 +286,24 @@ private string CurrentSourceData } } + private List<IUSFMMarkerToken> GetTextTokenMarkers(List<IUSFMToken> tokens, List<IUSFMTextToken> textTokens) + { + IUSFMMarkerToken lastMarkerToken = null; + var textTokenMarkers = new List<IUSFMMarkerToken>(); + foreach (var token in tokens) + { + if (token is IUSFMMarkerToken) + { + lastMarkerToken = token as IUSFMMarkerToken; + } + else if (textTokens.Contains(token) && (lastMarkerToken != null)) + { + textTokenMarkers.Add(lastMarkerToken); + } + } + return textTokenMarkers; + } + private string CurrentTargetData { get @@ -479,8 +525,7 @@ public static SortedDictionary<string, List<IUSFMToken>> CalculateTargetTokens(I // ... in which case, we put one line of each translated version into one of the text tokens // 3) there are more lines of text translated than there were in Paratext // ... in which case, we'll duplicate the last text token and push the extra lines in it - var translatedValues = text?.Split(new[] { Environment.NewLine }, StringSplitOptions.None) - .ToList(); + var translatedValues = GetTranslatedLines(text); if ((translatedValues == null) || !translatedValues.Any()) // nothing to do return null; @@ -494,7 +539,7 @@ public static SortedDictionary<string, List<IUSFMToken>> CalculateTargetTokens(I // to have them be requeried var keyBookChapterVerse = GetBookChapterVerseKey(verseReference); if (!usfmTokensSource.TryGetValue(keyBookChapterVerse, out List<IUSFMToken> tokensSource)) - return null; + return null; // NB: for reasons that are not clear, I was trying to maintain the markers that were in the target project // and put the translated lines in those... but the entire point of this plugin is to make a back translation @@ -515,9 +560,9 @@ public static SortedDictionary<string, List<IUSFMToken>> CalculateTargetTokens(I // anyway, which will be replaced w/ the translated text below var keyBookChapterVerses = GetBookChapterVerseKey(versesReference); var tokensTarget = tokensSource; - if (vrefTokensTarget.ContainsKey(keyBookChapterVerse)) + if (vrefTokensTarget.ContainsKey(keyBookChapterVerse)) vrefTokensTarget[keyBookChapterVerse] = tokensSource; - else + else vrefTokensTarget.Add(keyBookChapterVerses, tokensSource); // go thru all the ones we had and put the translated text into the text ones and transfer the non-text ones in order into the list to Put @@ -565,15 +610,10 @@ public static SortedDictionary<string, List<IUSFMToken>> CalculateTargetTokens(I return vrefTokensTarget; } - // local function (to reduce the number of parameters needing to be passed) - bool NextTokenFromSourceOrTemplateParagraphMarker(out IUSFMToken marker) - { - var isFromSource = (tokensSource.Count > insertionIndex); - marker = isFromSource - ? tokensSource[insertionIndex] - : ParagraphToken(usfmTokensSource, usfmTokensTarget, latestTextToken); // fall back to a paragraph marker - return !isFromSource || IsParagraphToken(marker); // negative means isInsertedParagraph (or if the next one in the source was a paragraph) - } + private static List<string> GetTranslatedLines(string text) + { + return text?.Split(new[] { Environment.NewLine }, StringSplitOptions.None) + .ToList(); } #if SerializeToCreateTestFiles From b16a4b79a8b095a70d7bb37661b5e6bd8dd32e75 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sun, 12 Mar 2023 19:22:51 -0500 Subject: [PATCH 22/71] updated the writing to the textBoxStatus (it needed Application.DoEvents()) for it to show --- .../BackTranslationHelperForm.cs | 29 +++++++++++++++---- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs index 215771d1..2ee234af 100644 --- a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs +++ b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs @@ -106,13 +106,13 @@ public BackTranslationHelperForm(IPluginHost host, ParatextBackTranslationHelper private void TargetBackTranslationTextChanged(string value) { var translatedCount = GetTranslatedLines(value).Count; + System.Diagnostics.Debug.WriteLine($"PtxBTH: TargetBackTranslationTextChanged: SourceDataLineCount = '{SourceDataLineCount}', translatedCount = '{translatedCount}'"); if (SourceDataLineCount != translatedCount) - { - // TODO: add a tooltip to show how the currently translated lines will be put into the source project markers textBoxStatus.Text = $"There are currently {translatedCount} lines of text in the Target Translation box vs. {SourceDataLineCount} text lines in the source verse (one for each of these markers: {String.Join(",", TextTokenMarkersSource.Select(m => $"\\{m.Marker}"))})"; - } else - textBoxStatus.Clear(); + textBoxStatus.Text = String.Empty; + + Application.DoEvents(); // this says we need to do this for when it won't display the change: https://social.msdn.microsoft.com/Forums/vstudio/en-US/983d2e3b-9bcb-4c9c-9e85-59f8b2051b3e/program-updating-a-textbox-does-not-work?forum=csharpgeneral } private static string GetFrameText(IProject projectSource, IProject projectTarget, IVerseRef versesReference) @@ -162,19 +162,36 @@ private void ScriptureDataChangedHandlerTarget(IProject sender, int bookNum, int private void Host_VerseRefChanged(IPluginHost sender, IVerseRef newReference, SyncReferenceGroup group) { - System.Diagnostics.Debug.WriteLine($"PtxBTH: In Host_VerseRefChanged {newReference} & {group}, _isNotInFocus: {_isNotInFocus}, IsModified: {backTranslationHelperCtrl.IsModified}"); + var newRef = (newReference.RepresentsMultipleVerses) ? newReference.AllVerses.First() : newReference; + System.Diagnostics.Debug.WriteLine($"PtxBTH: In Host_VerseRefChanged {newReference} (newRef: {newRef}) & {group}, _isNotInFocus: {_isNotInFocus}, IsModified: {backTranslationHelperCtrl.IsModified}"); // since this will initialize the _verseReference, which is intended to be the first // of a series of verses... // UPDATE: but not if the Form isn't in focus (so we don't thrash around converting stuff while // the user may be editing stuff in Ptx) if (_isNotInFocus && backTranslationHelperCtrl.IsModified) + { + textBoxStatus.Text = $"Staying on {_verseReference} because the Target Translation box was modified. Click here to update to current verse in Paratext"; + textBoxStatus.Tag = newRef; + Application.DoEvents(); // this says we need to do this for when it won't display the change: https://social.msdn.microsoft.com/Forums/vstudio/en-US/983d2e3b-9bcb-4c9c-9e85-59f8b2051b3e/program-updating-a-textbox-does-not-work?forum=csharpgeneral return; + } + else + textBoxStatus.Tag = null; - var newRef = (newReference.RepresentsMultipleVerses) ? newReference.AllVerses.First() : newReference; GetNewReference(newRef); } + private void TextBoxStatus_Click(object sender, System.EventArgs e) + { + if (textBoxStatus.Tag != null) + { + backTranslationHelperCtrl.IsModified = false; + var newReference = (IVerseRef)textBoxStatus.Tag; + GetNewReference(newReference); + } + } + private void GetNewReference(IVerseRef newReference) { Unlock(); From c6ac79e0f200c094322629562f076dddc91b3d18 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sun, 12 Mar 2023 19:25:29 -0500 Subject: [PATCH 23/71] fixed a number of bugs related working with a target project that has no existing data and discrepancies between versification between source and target (source is combined, target are separate, and vice-versa) --- .../BackTranslationHelperForm.cs | 43 +- .../TestBwdc/TestBwdc.csproj | 18 + ...eSeparateNoEmptyInTarget_TokensSource.json | 264 + ...eSeparateNoEmptyInTarget_TokensTarget.json | 2508 ++++++++ ...ateNoEmptyInTarget_TokensTargetUpdate.json | 2526 ++++++++ ...SeparateNoEmptyInTarget_TranslatedText.txt | 1 + ...eparateNoEmptyInTarget_VerseReference.json | 40 + ...parateNoEmptyInTarget_VersesReference.json | 40 + ...ltipleVersesWithFootnote_TokensSource.json | 326 ++ ...ltipleVersesWithFootnote_TokensTarget.json | 5193 +++++++++++++++++ ...VersesWithFootnote_TokensTargetUpdate.json | 4589 +++++++++++++++ ...tipleVersesWithFootnote_TranslatedText.txt | 2 + ...ipleVersesWithFootnote_VerseReference.json | 13 + ...pleVersesWithFootnote_VersesReference.json | 40 + ...CombinedButEmptyInTarget_TokensSource.json | 308 + ...CombinedButEmptyInTarget_TokensTarget.json | 2478 ++++++++ ...edButEmptyInTarget_TokensTargetUpdate.json | 2340 ++++++++ ...ombinedButEmptyInTarget_TranslatedText.txt | 1 + ...mbinedButEmptyInTarget_VerseReference.json | 13 + ...binedButEmptyInTarget_VersesReference.json | 13 + .../TestBwdc/UnitTest_PtxBackTrHelper.cs | 31 +- 21 files changed, 20770 insertions(+), 17 deletions(-) create mode 100644 src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceSeparateNoEmptyInTarget/CombinedInSourceSeparateNoEmptyInTarget_TokensSource.json create mode 100644 src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceSeparateNoEmptyInTarget/CombinedInSourceSeparateNoEmptyInTarget_TokensTarget.json create mode 100644 src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceSeparateNoEmptyInTarget/CombinedInSourceSeparateNoEmptyInTarget_TokensTargetUpdate.json create mode 100644 src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceSeparateNoEmptyInTarget/CombinedInSourceSeparateNoEmptyInTarget_TranslatedText.txt create mode 100644 src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceSeparateNoEmptyInTarget/CombinedInSourceSeparateNoEmptyInTarget_VerseReference.json create mode 100644 src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceSeparateNoEmptyInTarget/CombinedInSourceSeparateNoEmptyInTarget_VersesReference.json create mode 100644 src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/MultipleVersesWithFootnote/MultipleVersesWithFootnote_TokensSource.json create mode 100644 src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/MultipleVersesWithFootnote/MultipleVersesWithFootnote_TokensTarget.json create mode 100644 src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/MultipleVersesWithFootnote/MultipleVersesWithFootnote_TokensTargetUpdate.json create mode 100644 src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/MultipleVersesWithFootnote/MultipleVersesWithFootnote_TranslatedText.txt create mode 100644 src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/MultipleVersesWithFootnote/MultipleVersesWithFootnote_VerseReference.json create mode 100644 src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/MultipleVersesWithFootnote/MultipleVersesWithFootnote_VersesReference.json create mode 100644 src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/SeparateInSourceCombinedButEmptyInTarget/SeparateInSourceCombinedButEmptyInTarget_TokensSource.json create mode 100644 src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/SeparateInSourceCombinedButEmptyInTarget/SeparateInSourceCombinedButEmptyInTarget_TokensTarget.json create mode 100644 src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/SeparateInSourceCombinedButEmptyInTarget/SeparateInSourceCombinedButEmptyInTarget_TokensTargetUpdate.json create mode 100644 src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/SeparateInSourceCombinedButEmptyInTarget/SeparateInSourceCombinedButEmptyInTarget_TranslatedText.txt create mode 100644 src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/SeparateInSourceCombinedButEmptyInTarget/SeparateInSourceCombinedButEmptyInTarget_VerseReference.json create mode 100644 src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/SeparateInSourceCombinedButEmptyInTarget/SeparateInSourceCombinedButEmptyInTarget_VersesReference.json diff --git a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs index 2ee234af..dad90447 100644 --- a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs +++ b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs @@ -12,6 +12,8 @@ using System.Linq; using System.Windows.Forms; using Newtonsoft.Json; +using System.Windows; +using System.Security.Policy; namespace SIL.ParatextBackTranslationHelperPlugin { @@ -270,7 +272,7 @@ private string CurrentSourceData { get { - var keyBookChapterVerse = GetBookChapterVerseKey(_verseReference); + var keyBookChapterVerse = GetBookChapterVerseRangeKey(_verseReference); if (!UsfmTokensSource.TryGetValue(keyBookChapterVerse, out List<IUSFMToken> tokens)) { System.Diagnostics.Debug.WriteLine($"PtxBTH: Loading UsfmTokensSource for {keyBookChapterVerse}"); @@ -286,6 +288,9 @@ private string CurrentSourceData .Where(t => t.IsPublishableVernacular && IsMatchingVerse(t.VerseRef, _verseReference)) .ToDictionary(ta => ta, ta => ta.VerseRef); + if (!data.Any()) + return null; + TextTokenMarkersSource = GetTextTokenMarkers(tokens, data.Keys.ToList()); var textValues = data.Select(t => t.Key.Text); @@ -338,7 +343,7 @@ private string CurrentTargetData System.Diagnostics.Debug.WriteLine($"PtxBTH: Loading UsfmTokensTarget for {bookChapterKey}"); var chapterTokens = _projectTarget.GetUSFMTokens(_verseReference.BookNum, _verseReference.ChapterNum).ToList(); var dict = chapterTokens.GroupBy(t => t.VerseRef, t => t, (key, g) => new { VerseRef = key, USFMTokens = g.ToList() }) - .ToDictionary(t => GetBookChapterVerseKey(t.VerseRef), t => t.USFMTokens); + .ToDictionary(t => GetBookChapterVerseRangeKey(t.VerseRef), t => t.USFMTokens); vrefTokens = new SortedDictionary<string, List<IUSFMToken>>(dict); UsfmTokensTarget.Add(bookChapterKey, vrefTokens); } @@ -347,7 +352,7 @@ private string CurrentTargetData System.Diagnostics.Debug.WriteLine($"PtxBTH: Already have UsfmTokensTarget for {bookChapterKey}"); } - var bookChapterVerseKey = GetBookChapterVerseKey(_verseReference); + var bookChapterVerseKey = GetBookChapterVerseRangeKey(_verseReference); // issue: if Ptx is in "I'm just a single verse" mode (e.g. clicking up/down in the combo box at the top) // then this will show a single verse even if the text is a multi-verse situation @@ -355,7 +360,7 @@ private string CurrentTargetData // which one it *should* be so we can find a hit in vrefTokens bookChapterVerseKey = TriangulateBookChapterVerseKey(bookChapterVerseKey, vrefTokens); - if (!vrefTokens.ContainsKey(bookChapterVerseKey)) + if (String.IsNullOrEmpty(bookChapterVerseKey) || !vrefTokens.ContainsKey(bookChapterVerseKey)) return null; var tokens = vrefTokens[bookChapterVerseKey]; @@ -373,7 +378,7 @@ private static string TriangulateBookChapterVerseKey(string bookChapterVerseKey, if (vrefTokens.ContainsKey(bookChapterVerseKey)) return bookChapterVerseKey; - var vrefTokenKey = vrefTokens.FirstOrDefault(t => t.Value.Any(v => v.VerseRef.AllVerses.Any(sv => GetBookChapterVerseKey(sv) == bookChapterVerseKey))).Key; + var vrefTokenKey = vrefTokens.FirstOrDefault(t => t.Value.Any(v => v.VerseRef.AllVerses.Any(sv => GetBookChapterVerseRangeKey(sv) == bookChapterVerseKey))).Key; return vrefTokenKey; } @@ -383,7 +388,7 @@ private static string GetBookChapterKey(IVerseRef verseReference) return $"{verseReference.BookNum:D2}_{verseReference.ChapterNum:D3}"; } - private static string GetBookChapterVerseKey(IVerseRef verseReference) + private static string GetBookChapterVerseRangeKey(IVerseRef verseReference) { // get the key to see if we already have this data (TODO: add a 'it was changed in Ptx', so we can remove it from this collection) var bookChapterFirstVerse = $"{verseReference.BookNum:D2}_{verseReference.ChapterNum:D3}_{verseReference.VerseNum:D3}"; @@ -394,8 +399,9 @@ private static string GetBookChapterVerseKey(IVerseRef verseReference) private static bool IsMatchingVerse(IVerseRef verseReferenceFromToken, IVerseRef verseReference) { - return ((verseReferenceFromToken.ToString() == verseReference.ToString()) || - (verseReferenceFromToken?.AllVerses?.Any(vr => vr.ToString() == verseReference?.ToString()) ?? false)); + return ((verseReferenceFromToken?.ToString() == verseReference?.ToString()) || + (verseReferenceFromToken.AllVerses?.Any(vr => vr.ToString() == verseReference?.ToString()) ?? false) || + (verseReference?.AllVerses?.Any(vr => vr.ToString() == verseReferenceFromToken.ToString()) ?? false)); } private void ReleaseRequested(IWriteLock obj) @@ -552,9 +558,9 @@ public static SortedDictionary<string, List<IUSFMToken>> CalculateTargetTokens(I return null; // get the source project tokens (so we can use those in the target project) - // if by chance, there are non, then it must be that we marked them 'dirty', so just return mull + // if by chance, there are none, then it must be that we marked them 'dirty', so just return mull // to have them be requeried - var keyBookChapterVerse = GetBookChapterVerseKey(verseReference); + var keyBookChapterVerse = GetBookChapterVerseRangeKey(verseReference); if (!usfmTokensSource.TryGetValue(keyBookChapterVerse, out List<IUSFMToken> tokensSource)) return null; @@ -575,10 +581,15 @@ public static SortedDictionary<string, List<IUSFMToken>> CalculateTargetTokens(I // have any, it probably means that the user didn't have any data in the target project yet... But // it doesn't really matter, bkz we're just going to replace them with a copy of the source tokens // anyway, which will be replaced w/ the translated text below - var keyBookChapterVerses = GetBookChapterVerseKey(versesReference); + var keyBookChapterVerses = GetBookChapterVerseRangeKey(versesReference); var tokensTarget = tokensSource; - if (vrefTokensTarget.ContainsKey(keyBookChapterVerse)) - vrefTokensTarget[keyBookChapterVerse] = tokensSource; + + // before adding it back in, remove any data in the target collection for any and all verses in the source range + var matchingTokensInTarget = vrefTokensTarget.Where(kvp => kvp.Value.Any(t => IsMatchingVerse(t.VerseRef, verseReference))).ToList(); + matchingTokensInTarget.ForEach(kvp => vrefTokensTarget.Remove(kvp.Key)); + + if (vrefTokensTarget.ContainsKey(keyBookChapterVerses)) + vrefTokensTarget[keyBookChapterVerses] = tokensSource; else vrefTokensTarget.Add(keyBookChapterVerses, tokensSource); @@ -670,6 +681,12 @@ private static bool IsParagraphToken(IUSFMToken token) return (token is IUSFMMarkerToken markerToken) && (markerToken.Type == MarkerType.Paragraph) && _paragraphMarkers.Contains(markerToken.Marker); } + protected override void OnShown(EventArgs e) + { + base.OnShown(e); + GetNewReference(_verseReference); + } + private void BackTranslationHelperForm_Load(object sender, EventArgs e) { Text = GetFrameText(_projectSource, _projectTarget, _verseReference); diff --git a/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj b/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj index 78034b5f..74191543 100644 --- a/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj +++ b/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj @@ -289,6 +289,9 @@ <Content Include="redist\Help\TECkit_Map_Plug-in_About_box.htm" /> <Content Include="TestFiles\BulkWordDocConverter\TestFile1.xml" /> <Content Include="TestFiles\BulkWordDocConverter\TestFile2.xml" /> + <EmbeddedResource Include="TestFiles\PtxBackTrHelper\CombinedInSourceSeparateNoEmptyInTarget\CombinedInSourceSeparateNoEmptyInTarget_TranslatedText.txt" /> + <EmbeddedResource Include="TestFiles\PtxBackTrHelper\SeparateInSourceCombinedButEmptyInTarget\SeparateInSourceCombinedButEmptyInTarget_TranslatedText.txt" /> + <EmbeddedResource Include="TestFiles\PtxBackTrHelper\MultipleVersesWithFootnote\MultipleVersesWithFootnote_TranslatedText.txt" /> <EmbeddedResource Include="TestFiles\PtxBackTrHelper\SingleVerse\MultiplePoeticParagraphs\MultiplePoeticParagraphsMissingInTarget\MultiplePoeticParagraphsMissingInTarget_TranslatedText.txt" /> <EmbeddedResource Include="TestFiles\PtxBackTrHelper\MultipleVerses\MultipleVersesAndParagraphsMiTJoinedIntoOneParagraphs\MultipleVersesAndParagraphsMiTJoinedIntoOneParagraphs_TranslatedText.txt" /> <EmbeddedResource Include="TestFiles\PtxBackTrHelper\MultipleVerses\MultipleVersesAndParagraphsJoinedIntoOneParagraphs\MultipleVersesAndParagraphsJoinedIntoOneParagraphs_TranslatedText.txt" /> @@ -420,6 +423,21 @@ <EmbeddedResource Include="TestFiles\PtxBackTrHelper\SingleVerse\MultiplePoeticParagraphs\MultiplePoeticParagraphs_VersesReference.json" /> <EmbeddedResource Include="TestFiles\PtxBackTrHelper\SingleVerse\MultiplePoeticParagraphs\MultiplePoeticParagraphsMissingInTarget\MultiplePoeticParagraphsMissingInTarget_TokensTarget.json" /> <EmbeddedResource Include="TestFiles\PtxBackTrHelper\SingleVerse\MultiplePoeticParagraphs\MultiplePoeticParagraphsMissingInTarget\MultiplePoeticParagraphsMissingInTarget_TokensTargetUpdate.json" /> + <EmbeddedResource Include="TestFiles\PtxBackTrHelper\MultipleVersesWithFootnote\MultipleVersesWithFootnote_TokensSource.json" /> + <EmbeddedResource Include="TestFiles\PtxBackTrHelper\MultipleVersesWithFootnote\MultipleVersesWithFootnote_TokensTarget.json" /> + <EmbeddedResource Include="TestFiles\PtxBackTrHelper\MultipleVersesWithFootnote\MultipleVersesWithFootnote_VerseReference.json" /> + <EmbeddedResource Include="TestFiles\PtxBackTrHelper\MultipleVersesWithFootnote\MultipleVersesWithFootnote_VersesReference.json" /> + <EmbeddedResource Include="TestFiles\PtxBackTrHelper\MultipleVersesWithFootnote\MultipleVersesWithFootnote_TokensTargetUpdate.json" /> + <EmbeddedResource Include="TestFiles\PtxBackTrHelper\SeparateInSourceCombinedButEmptyInTarget\SeparateInSourceCombinedButEmptyInTarget_TokensSource.json" /> + <EmbeddedResource Include="TestFiles\PtxBackTrHelper\SeparateInSourceCombinedButEmptyInTarget\SeparateInSourceCombinedButEmptyInTarget_TokensTarget.json" /> + <EmbeddedResource Include="TestFiles\PtxBackTrHelper\SeparateInSourceCombinedButEmptyInTarget\SeparateInSourceCombinedButEmptyInTarget_TokensTargetUpdate.json" /> + <EmbeddedResource Include="TestFiles\PtxBackTrHelper\SeparateInSourceCombinedButEmptyInTarget\SeparateInSourceCombinedButEmptyInTarget_VerseReference.json" /> + <EmbeddedResource Include="TestFiles\PtxBackTrHelper\SeparateInSourceCombinedButEmptyInTarget\SeparateInSourceCombinedButEmptyInTarget_VersesReference.json" /> + <EmbeddedResource Include="TestFiles\PtxBackTrHelper\CombinedInSourceSeparateNoEmptyInTarget\CombinedInSourceSeparateNoEmptyInTarget_TokensSource.json" /> + <EmbeddedResource Include="TestFiles\PtxBackTrHelper\CombinedInSourceSeparateNoEmptyInTarget\CombinedInSourceSeparateNoEmptyInTarget_TokensTarget.json" /> + <EmbeddedResource Include="TestFiles\PtxBackTrHelper\CombinedInSourceSeparateNoEmptyInTarget\CombinedInSourceSeparateNoEmptyInTarget_TokensTargetUpdate.json" /> + <EmbeddedResource Include="TestFiles\PtxBackTrHelper\CombinedInSourceSeparateNoEmptyInTarget\CombinedInSourceSeparateNoEmptyInTarget_VerseReference.json" /> + <EmbeddedResource Include="TestFiles\PtxBackTrHelper\CombinedInSourceSeparateNoEmptyInTarget\CombinedInSourceSeparateNoEmptyInTarget_VersesReference.json" /> </ItemGroup> <ItemGroup /> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> diff --git a/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceSeparateNoEmptyInTarget/CombinedInSourceSeparateNoEmptyInTarget_TokensSource.json b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceSeparateNoEmptyInTarget/CombinedInSourceSeparateNoEmptyInTarget_TokensSource.json new file mode 100644 index 00000000..8badf263 --- /dev/null +++ b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceSeparateNoEmptyInTarget/CombinedInSourceSeparateNoEmptyInTarget_TokensSource.json @@ -0,0 +1,264 @@ +{ + "01_001_001-002": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "1-2", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "1-2", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 2, + "BBBCCCVVV": 1001002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "परमेशà¥à¤µà¤° ने सृषà¥à¤Ÿà¤¿ की रचना यूठकी: आरमà¥â€à¤ में परमेशà¥à¤µà¤° ने पृथà¥â€à¤µà¥€ की रचना की। परंतॠउस समय वह सà¥à¤¨à¤¸à¤¾à¤¨ थी, और उस पर केवल पानी ही था। और चारों ओर कोई पà¥à¤°à¤•à¤¾à¤¶ à¤à¥€ नहीं था। परमेशà¥à¤µà¤° की आतà¥â€à¤®à¤¾ उस पानी के ऊपर मंडराती थी। ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "परमेशà¥à¤µà¤° ने सृषà¥à¤Ÿà¤¿ की रचना यूठकी: आरमà¥â€à¤ में परमेशà¥à¤µà¤° ने पृथà¥â€à¤µà¥€ की रचना की। परंतॠउस समय वह सà¥à¤¨à¤¸à¤¾à¤¨ थी, और उस पर केवल पानी ही था। और चारों ओर कोई पà¥à¤°à¤•à¤¾à¤¶ à¤à¥€ नहीं था। परमेशà¥à¤µà¤° की आतà¥â€à¤®à¤¾ उस पानी के ऊपर मंडराती थी। ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 2, + "BBBCCCVVV": 1001002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 7, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 2, + "BBBCCCVVV": 1001002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 219, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 2, + "BBBCCCVVV": 1001002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 222, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ] +} \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceSeparateNoEmptyInTarget/CombinedInSourceSeparateNoEmptyInTarget_TokensTarget.json b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceSeparateNoEmptyInTarget/CombinedInSourceSeparateNoEmptyInTarget_TokensTarget.json new file mode 100644 index 00000000..54f0b076 --- /dev/null +++ b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceSeparateNoEmptyInTarget/CombinedInSourceSeparateNoEmptyInTarget_TokensTarget.json @@ -0,0 +1,2508 @@ +{ + "01_001": { + "01_001_000": [ + { + "Type": 0, + "Marker": "id", + "Attributes": [], + "Data": "GEN", + "EndMarker": null, + "Token": { + "Type": 0, + "Marker": "id", + "Text": null, + "Attributes": null, + "Data": "GEN", + "EndMarker": null, + "NestlessMarker": "id", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": true, + "IsPublishableVernacular": false + }, + { + "Text": "- English नौंआ जीबन सासà¥â€à¤¤à¤° (from xnr) ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "- English नौंआ जीबन सासà¥â€à¤¤à¤° (from xnr) ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 8, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": true, + "IsPublishableVernacular": false + }, + { + "Type": 3, + "Marker": "h", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "h", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "h*", + "NestlessMarker": "h", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 47, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Creation ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Creation ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 50, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "toc3", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "toc3", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "toc3*", + "NestlessMarker": "toc3", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 59, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Cre ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Cre ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 65, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "toc2", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "toc2", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "toc2*", + "NestlessMarker": "toc2", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 69, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Creation ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Creation ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 75, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "toc1", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "toc1", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "toc1*", + "NestlessMarker": "toc1", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 84, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Creation ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Creation ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 90, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "h", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "h", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "h*", + "NestlessMarker": "h", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 99, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "mt", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "mt", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "mt*", + "NestlessMarker": "mt", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 102, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 1, + "Marker": "c", + "Attributes": [], + "Data": "1", + "EndMarker": null, + "Token": { + "Type": 1, + "Marker": "c", + "Text": null, + "Attributes": null, + "Data": "1", + "EndMarker": null, + "NestlessMarker": "c", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 106, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 111, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_001": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "1", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "1", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "This is how God created the universe: In the beginning God created the earth. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "This is how God created the universe: In the beginning God created the earth. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_002": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "2", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "2", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 2, + "BBBCCCVVV": 1001002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "But at that time she was deserted, and there was only water on it. There was no light all around. God's Spirit hovered over that water. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "But at that time she was deserted, and there was only water on it. There was no light all around. God's Spirit hovered over that water. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 2, + "BBBCCCVVV": 1001002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 2, + "BBBCCCVVV": 1001002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 141, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 2, + "BBBCCCVVV": 1001002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 144, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_003": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "3", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "3", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 3, + "BBBCCCVVV": 1001003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_004": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "4", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "4", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 4, + "BBBCCCVVV": 1001004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_005": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "5", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "5", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 5, + "BBBCCCVVV": 1001005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 5, + "BBBCCCVVV": 1001005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 5, + "BBBCCCVVV": 1001005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 8, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_006": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "6", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "6", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 6, + "BBBCCCVVV": 1001006, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_007": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "7", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "7", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 7, + "BBBCCCVVV": 1001007, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_008": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "8", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "8", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 8, + "BBBCCCVVV": 1001008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 8, + "BBBCCCVVV": 1001008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 8, + "BBBCCCVVV": 1001008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 8, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_009": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "9", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "9", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 9, + "BBBCCCVVV": 1001009, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_010": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "10", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "10", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 10, + "BBBCCCVVV": 1001010, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 10, + "BBBCCCVVV": 1001010, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_011": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "11", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "11", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 11, + "BBBCCCVVV": 1001011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_012": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "12", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "12", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 12, + "BBBCCCVVV": 1001012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_013": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "13", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "13", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 13, + "BBBCCCVVV": 1001013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 13, + "BBBCCCVVV": 1001013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 13, + "BBBCCCVVV": 1001013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 9, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_014-015": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "14-15", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "14-15", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 14, + "BBBCCCVVV": 1001014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 14, + "BBBCCCVVV": 1001014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 15, + "BBBCCCVVV": 1001015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_016": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "16", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "16", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 16, + "BBBCCCVVV": 1001016, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 16, + "BBBCCCVVV": 1001016, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_017-018": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "17-18", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "17-18", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 17, + "BBBCCCVVV": 1001017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 17, + "BBBCCCVVV": 1001017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 18, + "BBBCCCVVV": 1001018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_019": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "19", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "19", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 19, + "BBBCCCVVV": 1001019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 19, + "BBBCCCVVV": 1001019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 19, + "BBBCCCVVV": 1001019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 9, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_020": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "20", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "20", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 20, + "BBBCCCVVV": 1001020, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_021": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "21", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "21", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 21, + "BBBCCCVVV": 1001021, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_022": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "22", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "22", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 22, + "BBBCCCVVV": 1001022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_023": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "23", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "23", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 23, + "BBBCCCVVV": 1001023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 23, + "BBBCCCVVV": 1001023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 23, + "BBBCCCVVV": 1001023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 9, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_024": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "24", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "24", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 24, + "BBBCCCVVV": 1001024, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_025": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "25", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "25", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 25, + "BBBCCCVVV": 1001025, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 25, + "BBBCCCVVV": 1001025, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_026": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "26", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "26", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 26, + "BBBCCCVVV": 1001026, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_027": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "27", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "27", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 27, + "BBBCCCVVV": 1001027, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 27, + "BBBCCCVVV": 1001027, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_028": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "28", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "28", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 28, + "BBBCCCVVV": 1001028, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_029": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "29", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "29", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 29, + "BBBCCCVVV": 1001029, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_030": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "30", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "30", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 30, + "BBBCCCVVV": 1001030, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 30, + "BBBCCCVVV": 1001030, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_031": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "31", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "31", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 31, + "BBBCCCVVV": 1001031, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ] + } +} \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceSeparateNoEmptyInTarget/CombinedInSourceSeparateNoEmptyInTarget_TokensTargetUpdate.json b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceSeparateNoEmptyInTarget/CombinedInSourceSeparateNoEmptyInTarget_TokensTargetUpdate.json new file mode 100644 index 00000000..e66963c5 --- /dev/null +++ b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceSeparateNoEmptyInTarget/CombinedInSourceSeparateNoEmptyInTarget_TokensTargetUpdate.json @@ -0,0 +1,2526 @@ +{ + "01_001_000": [ + { + "Type": 0, + "Marker": "id", + "Attributes": [], + "Data": "GEN", + "EndMarker": null, + "Token": { + "Type": 0, + "Marker": "id", + "Text": null, + "Attributes": null, + "Data": "GEN", + "EndMarker": null, + "NestlessMarker": "id", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": true, + "IsPublishableVernacular": false + }, + { + "Text": "- English नौंआ जीबन सासà¥â€à¤¤à¤° (from xnr) ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "- English नौंआ जीबन सासà¥â€à¤¤à¤° (from xnr) ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 8, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": true, + "IsPublishableVernacular": false + }, + { + "Type": 3, + "Marker": "h", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "h", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "h*", + "NestlessMarker": "h", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 47, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Creation ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Creation ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 50, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "toc3", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "toc3", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "toc3*", + "NestlessMarker": "toc3", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 59, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Cre ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Cre ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 65, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "toc2", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "toc2", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "toc2*", + "NestlessMarker": "toc2", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 69, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Creation ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Creation ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 75, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "toc1", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "toc1", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "toc1*", + "NestlessMarker": "toc1", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 84, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Creation ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Creation ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 90, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "h", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "h", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "h*", + "NestlessMarker": "h", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 99, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "mt", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "mt", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "mt*", + "NestlessMarker": "mt", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 102, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 1, + "Marker": "c", + "Attributes": [], + "Data": "1", + "EndMarker": null, + "Token": { + "Type": 1, + "Marker": "c", + "Text": null, + "Attributes": null, + "Data": "1", + "EndMarker": null, + "NestlessMarker": "c", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 106, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 111, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_001-002": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "1-2", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "1-2", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 2, + "BBBCCCVVV": 1001002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "This is how God created the universe: In the beginning God created the earth. But at that time she was deserted, and there was only water on it. There was no light all around. God's Spirit hovered over that water. ", + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 2, + "BBBCCCVVV": 1001002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 7, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 2, + "BBBCCCVVV": 1001002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 219, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 2, + "BBBCCCVVV": 1001002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 222, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_003": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "3", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "3", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 3, + "BBBCCCVVV": 1001003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_004": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "4", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "4", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 4, + "BBBCCCVVV": 1001004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_005": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "5", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "5", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 5, + "BBBCCCVVV": 1001005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 5, + "BBBCCCVVV": 1001005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 5, + "BBBCCCVVV": 1001005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 8, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_006": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "6", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "6", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 6, + "BBBCCCVVV": 1001006, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_007": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "7", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "7", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 7, + "BBBCCCVVV": 1001007, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_008": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "8", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "8", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 8, + "BBBCCCVVV": 1001008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 8, + "BBBCCCVVV": 1001008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 8, + "BBBCCCVVV": 1001008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 8, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_009": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "9", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "9", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 9, + "BBBCCCVVV": 1001009, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_010": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "10", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "10", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 10, + "BBBCCCVVV": 1001010, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 10, + "BBBCCCVVV": 1001010, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_011": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "11", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "11", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 11, + "BBBCCCVVV": 1001011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_012": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "12", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "12", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 12, + "BBBCCCVVV": 1001012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_013": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "13", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "13", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 13, + "BBBCCCVVV": 1001013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 13, + "BBBCCCVVV": 1001013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 13, + "BBBCCCVVV": 1001013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 9, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_014-015": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "14-15", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "14-15", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 14, + "BBBCCCVVV": 1001014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 14, + "BBBCCCVVV": 1001014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 15, + "BBBCCCVVV": 1001015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_016": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "16", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "16", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 16, + "BBBCCCVVV": 1001016, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 16, + "BBBCCCVVV": 1001016, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_017-018": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "17-18", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "17-18", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 17, + "BBBCCCVVV": 1001017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 17, + "BBBCCCVVV": 1001017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 18, + "BBBCCCVVV": 1001018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_019": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "19", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "19", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 19, + "BBBCCCVVV": 1001019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 19, + "BBBCCCVVV": 1001019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 19, + "BBBCCCVVV": 1001019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 9, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_020": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "20", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "20", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 20, + "BBBCCCVVV": 1001020, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_021": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "21", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "21", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 21, + "BBBCCCVVV": 1001021, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_022": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "22", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "22", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 22, + "BBBCCCVVV": 1001022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_023": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "23", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "23", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 23, + "BBBCCCVVV": 1001023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 23, + "BBBCCCVVV": 1001023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 23, + "BBBCCCVVV": 1001023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 9, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_024": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "24", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "24", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 24, + "BBBCCCVVV": 1001024, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_025": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "25", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "25", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 25, + "BBBCCCVVV": 1001025, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 25, + "BBBCCCVVV": 1001025, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_026": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "26", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "26", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 26, + "BBBCCCVVV": 1001026, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_027": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "27", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "27", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 27, + "BBBCCCVVV": 1001027, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 27, + "BBBCCCVVV": 1001027, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_028": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "28", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "28", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 28, + "BBBCCCVVV": 1001028, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_029": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "29", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "29", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 29, + "BBBCCCVVV": 1001029, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_030": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "30", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "30", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 30, + "BBBCCCVVV": 1001030, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 30, + "BBBCCCVVV": 1001030, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_031": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "31", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "31", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 31, + "BBBCCCVVV": 1001031, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ] +} \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceSeparateNoEmptyInTarget/CombinedInSourceSeparateNoEmptyInTarget_TranslatedText.txt b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceSeparateNoEmptyInTarget/CombinedInSourceSeparateNoEmptyInTarget_TranslatedText.txt new file mode 100644 index 00000000..1b7aa1cf --- /dev/null +++ b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceSeparateNoEmptyInTarget/CombinedInSourceSeparateNoEmptyInTarget_TranslatedText.txt @@ -0,0 +1 @@ +This is how God created the universe: In the beginning God created the earth. But at that time she was deserted, and there was only water on it. There was no light all around. God's Spirit hovered over that water. \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceSeparateNoEmptyInTarget/CombinedInSourceSeparateNoEmptyInTarget_VerseReference.json b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceSeparateNoEmptyInTarget/CombinedInSourceSeparateNoEmptyInTarget_VerseReference.json new file mode 100644 index 00000000..0b01bd8a --- /dev/null +++ b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceSeparateNoEmptyInTarget/CombinedInSourceSeparateNoEmptyInTarget_VerseReference.json @@ -0,0 +1,40 @@ +{ + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 2, + "BBBCCCVVV": 1001002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] +} \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceSeparateNoEmptyInTarget/CombinedInSourceSeparateNoEmptyInTarget_VersesReference.json b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceSeparateNoEmptyInTarget/CombinedInSourceSeparateNoEmptyInTarget_VersesReference.json new file mode 100644 index 00000000..0b01bd8a --- /dev/null +++ b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceSeparateNoEmptyInTarget/CombinedInSourceSeparateNoEmptyInTarget_VersesReference.json @@ -0,0 +1,40 @@ +{ + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 2, + "BBBCCCVVV": 1001002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] +} \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/MultipleVersesWithFootnote/MultipleVersesWithFootnote_TokensSource.json b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/MultipleVersesWithFootnote/MultipleVersesWithFootnote_TokensSource.json new file mode 100644 index 00000000..404e21e7 --- /dev/null +++ b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/MultipleVersesWithFootnote/MultipleVersesWithFootnote_TokensSource.json @@ -0,0 +1,326 @@ +{ + "52_005_013": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "13-14", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "13-14", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 14, + "BBBCCCVVV": 52005014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "इसलिठउनकी इस सेवकाई के कारण उनका पà¥à¤°à¥‡à¤® सहित बहà¥à¤¤ आदर करो। ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "इसलिठउनकी इस सेवकाई के कारण उनका पà¥à¤°à¥‡à¤® सहित बहà¥à¤¤ आदर करो। ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 14, + "BBBCCCVVV": 52005014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 9, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 14, + "BBBCCCVVV": 52005014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 68, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "मेरे à¤à¤¾à¤ˆ-बहनों, हमारी तà¥à¤®à¤¸à¥‡ यह à¤à¥€ विनती है कि मंडली में आपस में à¤à¤•-दूसरे के साथ मेल-मिलाप से रहो। तà¥à¤® में जो आलसी हो गये हैं, उनको पà¥à¤°à¤¤à¤¿à¤¦à¤¿à¤¨ की रोटी कमाने के लिठपरिशà¥à¤°à¤® करने की चेतावनी दो। डरपोकों का साहस बढ़ाओ। जिनमें दà¥à¤°à¥à¤¬à¤²à¤¤à¤¾à¤à¤ हैं, उनकी सहायता करो। सà¤à¥€ की सहनशीलता के साथ सà¥à¤§à¤¿ लेते रहो। ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "मेरे à¤à¤¾à¤ˆ-बहनों, हमारी तà¥à¤®à¤¸à¥‡ यह à¤à¥€ विनती है कि मंडली में आपस में à¤à¤•-दूसरे के साथ मेल-मिलाप से रहो। तà¥à¤® में जो आलसी हो गये हैं, उनको पà¥à¤°à¤¤à¤¿à¤¦à¤¿à¤¨ की रोटी कमाने के लिठपरिशà¥à¤°à¤® करने की चेतावनी दो। डरपोकों का साहस बढ़ाओ। जिनमें दà¥à¤°à¥à¤¬à¤²à¤¤à¤¾à¤à¤ हैं, उनकी सहायता करो। सà¤à¥€ की सहनशीलता के साथ सà¥à¤§à¤¿ लेते रहो। ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 14, + "BBBCCCVVV": 52005014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 71, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 14, + "BBBCCCVVV": 52005014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 361, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ] +} \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/MultipleVersesWithFootnote/MultipleVersesWithFootnote_TokensTarget.json b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/MultipleVersesWithFootnote/MultipleVersesWithFootnote_TokensTarget.json new file mode 100644 index 00000000..352bc8ee --- /dev/null +++ b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/MultipleVersesWithFootnote/MultipleVersesWithFootnote_TokensTarget.json @@ -0,0 +1,5193 @@ +{ + "52_005": { + "52_005_000": [ + { + "Type": 1, + "Marker": "c", + "Attributes": [], + "Data": "5", + "EndMarker": null, + "Token": { + "Type": 1, + "Marker": "c", + "Text": null, + "Attributes": null, + "Data": "5", + "EndMarker": null, + "NestlessMarker": "c", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 0, + "BBBCCCVVV": 52005000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 0, + "BBBCCCVVV": 52005000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Be Prepared For the Return of the Lord Jesus ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Be Prepared For the Return of the Lord Jesus ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 0, + "BBBCCCVVV": 52005000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 8, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 0, + "BBBCCCVVV": 52005000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 53, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_001": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "1", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "1", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 1, + "BBBCCCVVV": 52005001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Brothers and sisters, I don’t think it is necessary to write to you about when the Lord Jesus Christ will return to this world. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Brothers and sisters, I don’t think it is necessary to write to you about when the Lord Jesus Christ will return to this world. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 1, + "BBBCCCVVV": 52005001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_002": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "2", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "2", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 2, + "BBBCCCVVV": 52005002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "For you know very well that the Lord will return when you have not even thought about it.", + "Token": { + "Type": 3, + "Marker": null, + "Text": "For you know very well that the Lord will return when you have not even thought about it.", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 2, + "BBBCCCVVV": 52005002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 5, + "Marker": "f", + "Attributes": [], + "Data": "+", + "EndMarker": "f*", + "Token": { + "Type": 6, + "Marker": "f", + "Text": null, + "Attributes": null, + "Data": "+", + "EndMarker": "f*", + "NestlessMarker": "f", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 2, + "BBBCCCVVV": 52005002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 94, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fr", + "Attributes": [], + "Data": null, + "EndMarker": "fr*", + "Token": { + "Type": 5, + "Marker": "fr", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fr*", + "NestlessMarker": "fr", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 2, + "BBBCCCVVV": 52005002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 99, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "5:2 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "5:2 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 2, + "BBBCCCVVV": 52005002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 103, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fq", + "Attributes": [], + "Data": null, + "EndMarker": "fq*", + "Token": { + "Type": 5, + "Marker": "fq", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fq*", + "NestlessMarker": "fq", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 2, + "BBBCCCVVV": 52005002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 107, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "when you have not even thought about it ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "when you have not even thought about it ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 2, + "BBBCCCVVV": 52005002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 111, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "ft", + "Attributes": [], + "Data": null, + "EndMarker": "ft*", + "Token": { + "Type": 5, + "Marker": "ft", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "ft*", + "NestlessMarker": "ft", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 2, + "BBBCCCVVV": 52005002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 151, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "In Greek, “like a thief at nightâ€. See, Revelation 3:3, 16:15; Matthew 24:42-44; 2 Peter 3:10. This is also in verses 4-5.", + "Token": { + "Type": 3, + "Marker": null, + "Text": "In Greek, “like a thief at nightâ€. See, Revelation 3:3, 16:15; Matthew 24:42-44; 2 Peter 3:10. This is also in verses 4-5.", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 2, + "BBBCCCVVV": 52005002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 155, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "f*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "f*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "f*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 2, + "BBBCCCVVV": 52005002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 277, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " ", + "Token": { + "Type": 3, + "Marker": null, + "Text": " ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 2, + "BBBCCCVVV": 52005002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 280, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 2, + "BBBCCCVVV": 52005002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 281, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_003": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "3", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "3", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 3, + "BBBCCCVVV": 52005003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Those who are in the dark kingdom of Satan will then say, “Now there is peace all around, and there is nothing to fear...†", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Those who are in the dark kingdom of Satan will then say, “Now there is peace all around, and there is nothing to fear...†", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 3, + "BBBCCCVVV": 52005003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 3, + "BBBCCCVVV": 52005003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 128, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "But what will really happen is that just as a pregnant woman feels the pain of childbirth in an instant, disaster will come upon them at once, and they will have nowhere to go. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "But what will really happen is that just as a pregnant woman feels the pain of childbirth in an instant, disaster will come upon them at once, and they will have nowhere to go. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 3, + "BBBCCCVVV": 52005003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 131, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 3, + "BBBCCCVVV": 52005003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 308, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_004-005": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "4-5", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "4-5", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 4, + "BBBCCCVVV": 52005004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 4, + "BBBCCCVVV": 52005004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 5, + "BBBCCCVVV": 52005005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "But brothers and sisters, you and I are neither of the ‘darkness’ nor of the ‘night’ like them. You belong to God’s ‘light’ and to the ‘day’. And for you, the return of the Lord will not be alarming or come as a surprise. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "But brothers and sisters, you and I are neither of the ‘darkness’ nor of the ‘night’ like them. You belong to God’s ‘light’ and to the ‘day’. And for you, the return of the Lord will not be alarming or come as a surprise. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 4, + "BBBCCCVVV": 52005004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 4, + "BBBCCCVVV": 52005004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 5, + "BBBCCCVVV": 52005005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 7, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 4, + "BBBCCCVVV": 52005004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 4, + "BBBCCCVVV": 52005004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 5, + "BBBCCCVVV": 52005005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 229, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_006-007": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "6-7", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "6-7", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 6, + "BBBCCCVVV": 52005006, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 6, + "BBBCCCVVV": 52005006, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 7, + "BBBCCCVVV": 52005007, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "For ‘Night’ is when people drink and get drunk and sleep away their lives. So let us not sleep away our lives like them, but rather be vigilant and sober. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "For ‘Night’ is when people drink and get drunk and sleep away their lives. So let us not sleep away our lives like them, but rather be vigilant and sober. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 6, + "BBBCCCVVV": 52005006, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 6, + "BBBCCCVVV": 52005006, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 7, + "BBBCCCVVV": 52005007, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 7, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_008": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "8", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "8", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Since we are of the ‘day’, let us strap on our weapons and armor and be alert: such as the ‘helmet’ ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Since we are of the ‘day’, let us strap on our weapons and armor and be alert: such as the ‘helmet’ ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 5, + "Marker": "x", + "Attributes": [], + "Data": "+", + "EndMarker": "x*", + "Token": { + "Type": 6, + "Marker": "x", + "Text": null, + "Attributes": null, + "Data": "+", + "EndMarker": "x*", + "NestlessMarker": "x", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 105, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "xo", + "Attributes": [], + "Data": null, + "EndMarker": "xo*", + "Token": { + "Type": 5, + "Marker": "xo", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "xo*", + "NestlessMarker": "xo", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 110, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "5.8 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "5.8 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 114, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "xq", + "Attributes": [], + "Data": null, + "EndMarker": "xq*", + "Token": { + "Type": 5, + "Marker": "xq", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "xq*", + "NestlessMarker": "xq", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 118, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "‘helmet’ ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "‘helmet’ ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 122, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "xt", + "Attributes": [], + "Data": null, + "EndMarker": "xt*", + "Token": { + "Type": 5, + "Marker": "xt", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "xt*", + "NestlessMarker": "xt", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 131, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Eph 6:17 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Eph 6:17 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 135, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "x*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "x*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "x*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 144, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " of our full faith in salvation, and let us put on the ‘breastplate’ ", + "Token": { + "Type": 3, + "Marker": null, + "Text": " of our full faith in salvation, and let us put on the ‘breastplate’ ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 147, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 5, + "Marker": "x", + "Attributes": [], + "Data": "+", + "EndMarker": "x*", + "Token": { + "Type": 6, + "Marker": "x", + "Text": null, + "Attributes": null, + "Data": "+", + "EndMarker": "x*", + "NestlessMarker": "x", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 216, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "xo", + "Attributes": [], + "Data": null, + "EndMarker": "xo*", + "Token": { + "Type": 5, + "Marker": "xo", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "xo*", + "NestlessMarker": "xo", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 221, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "5.8 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "5.8 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 225, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "xq", + "Attributes": [], + "Data": null, + "EndMarker": "xq*", + "Token": { + "Type": 5, + "Marker": "xq", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "xq*", + "NestlessMarker": "xq", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 229, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "‘breastplate’ ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "‘breastplate’ ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 233, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "xt", + "Attributes": [], + "Data": null, + "EndMarker": "xt*", + "Token": { + "Type": 5, + "Marker": "xt", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "xt*", + "NestlessMarker": "xt", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 247, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Eph 6:14,16 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Eph 6:14,16 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 251, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "x*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "x*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "x*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 263, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " of our faith in and love for Christ. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": " of our faith in and love for Christ. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 266, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 304, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_009": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "9", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "9", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 9, + "BBBCCCVVV": 52005009, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "You see, God did not choose us to punish us, but rather to save us through the sacrifice of the Lord Jesus Christ. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "You see, God did not choose us to punish us, but rather to save us through the sacrifice of the Lord Jesus Christ. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 9, + "BBBCCCVVV": 52005009, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_010": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "10", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "10", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 10, + "BBBCCCVVV": 52005010, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Jesus Christ gave His life for us, so that when He returns, whether we are alive or dead, He will take us to heaven to live with Him there forever and ever. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Jesus Christ gave His life for us, so that when He returns, whether we are alive or dead, He will take us to heaven to live with Him there forever and ever. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 10, + "BBBCCCVVV": 52005010, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_011": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "11", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "11", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 11, + "BBBCCCVVV": 52005011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Therefore, continue to encourage one another, and help each other grow in spiritual maturity, just as you have been doing. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Therefore, continue to encourage one another, and help each other grow in spiritual maturity, just as you have been doing. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 11, + "BBBCCCVVV": 52005011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 11, + "BBBCCCVVV": 52005011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 129, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Final Warning and Greetings ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Final Warning and Greetings ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 11, + "BBBCCCVVV": 52005011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 132, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 11, + "BBBCCCVVV": 52005011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 160, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_012": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "12", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "12", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 12, + "BBBCCCVVV": 52005012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Brothers and sisters, we ask you to honor the leaders of the Church of the Lord Jesus,", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Brothers and sisters, we ask you to honor the leaders of the Church of the Lord Jesus,", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 12, + "BBBCCCVVV": 52005012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 5, + "Marker": "x", + "Attributes": [], + "Data": "+", + "EndMarker": "x*", + "Token": { + "Type": 6, + "Marker": "x", + "Text": null, + "Attributes": null, + "Data": "+", + "EndMarker": "x*", + "NestlessMarker": "x", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 12, + "BBBCCCVVV": 52005012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 92, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "xo", + "Attributes": [], + "Data": null, + "EndMarker": "xo*", + "Token": { + "Type": 5, + "Marker": "xo", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "xo*", + "NestlessMarker": "xo", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 12, + "BBBCCCVVV": 52005012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 97, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "5:12 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "5:12 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 12, + "BBBCCCVVV": 52005012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 101, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "xq", + "Attributes": [], + "Data": null, + "EndMarker": "xq*", + "Token": { + "Type": 5, + "Marker": "xq", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "xq*", + "NestlessMarker": "xq", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 12, + "BBBCCCVVV": 52005012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 106, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "honor those leaders", + "Token": { + "Type": 3, + "Marker": null, + "Text": "honor those leaders", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 12, + "BBBCCCVVV": 52005012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 110, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "xt", + "Attributes": [], + "Data": null, + "EndMarker": "xt*", + "Token": { + "Type": 5, + "Marker": "xt", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "xt*", + "NestlessMarker": "xt", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 12, + "BBBCCCVVV": 52005012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 129, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Hebrews 13:7-17 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Hebrews 13:7-17 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 12, + "BBBCCCVVV": 52005012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 133, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "x*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "x*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "x*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 12, + "BBBCCCVVV": 52005012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 149, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " who help you grow spiritually. They give their life and limb to guide you. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": " who help you grow spiritually. They give their life and limb to guide you. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 12, + "BBBCCCVVV": 52005012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 152, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_013-014": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "13-14", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "13-14", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 14, + "BBBCCCVVV": 52005014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Because of their very hard work among you, give them plenty of love and honor. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Because of their very hard work among you, give them plenty of love and honor. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 14, + "BBBCCCVVV": 52005014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 9, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 14, + "BBBCCCVVV": 52005014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 88, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "My brothers and sisters, this also is our request to you that, in the group among yourselves, remain reconciled with one another. Those among you who are fallen into inactivity, explain to them to do hard.work to earn their daily needs. Increase the courage of those who are afraid. Those who are lacking knowledge,", + "Token": { + "Type": 3, + "Marker": null, + "Text": "My brothers and sisters, this also is our request to you that, in the group among yourselves, remain reconciled with one another. Those among you who are fallen into inactivity, explain to them to do hard.work to earn their daily needs. Increase the courage of those who are afraid. Those who are lacking knowledge,", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 14, + "BBBCCCVVV": 52005014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 91, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 5, + "Marker": "f", + "Attributes": [], + "Data": "+", + "EndMarker": "f*", + "Token": { + "Type": 6, + "Marker": "f", + "Text": null, + "Attributes": null, + "Data": "+", + "EndMarker": "f*", + "NestlessMarker": "f", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 14, + "BBBCCCVVV": 52005014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 406, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fr", + "Attributes": [], + "Data": null, + "EndMarker": "fr*", + "Token": { + "Type": 5, + "Marker": "fr", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fr*", + "NestlessMarker": "fr", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 14, + "BBBCCCVVV": 52005014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 411, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "5:13-14 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "5:13-14 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 14, + "BBBCCCVVV": 52005014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 415, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fq", + "Attributes": [], + "Data": null, + "EndMarker": "fq*", + "Token": { + "Type": 5, + "Marker": "fq", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fq*", + "NestlessMarker": "fq", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 14, + "BBBCCCVVV": 52005014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 423, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "lacking knowledge ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "lacking knowledge ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 14, + "BBBCCCVVV": 52005014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 427, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "ft", + "Attributes": [], + "Data": null, + "EndMarker": "ft*", + "Token": { + "Type": 5, + "Marker": "ft", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "ft*", + "NestlessMarker": "ft", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 14, + "BBBCCCVVV": 52005014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 445, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "In the Greek language, “weakâ€. See Rom 14:1. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "In the Greek language, “weakâ€. See Rom 14:1. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 14, + "BBBCCCVVV": 52005014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 449, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "f*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "f*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "f*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 14, + "BBBCCCVVV": 52005014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 494, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " help them. Keep on looking after everyone with patience. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": " help them. Keep on looking after everyone with patience. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 14, + "BBBCCCVVV": 52005014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 497, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 14, + "BBBCCCVVV": 52005014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 555, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_015": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "15", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "15", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 15, + "BBBCCCVVV": 52005015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Be careful! No one among you should take revenge for evil. But in every situation, always look for ways to do good, not only to those within the Church, but also to outsiders. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Be careful! No one among you should take revenge for evil. But in every situation, always look for ways to do good, not only to those within the Church, but also to outsiders. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 15, + "BBBCCCVVV": 52005015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_016": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "16", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "16", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 16, + "BBBCCCVVV": 52005016, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Always be happy. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Always be happy. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 16, + "BBBCCCVVV": 52005016, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_017": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "17", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "17", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 17, + "BBBCCCVVV": 52005017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Always keep praying. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Always keep praying. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 17, + "BBBCCCVVV": 52005017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_018": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "18", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "18", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 18, + "BBBCCCVVV": 52005018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "No matter what happens, always give thank to God. This is God’s will for you as a believer in Christ Jesus. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "No matter what happens, always give thank to God. This is God’s will for you as a believer in Christ Jesus. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 18, + "BBBCCCVVV": 52005018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 18, + "BBBCCCVVV": 52005018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 114, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_019": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "19", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "19", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 19, + "BBBCCCVVV": 52005019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Let God’s Holy Spirit work in you. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Let God’s Holy Spirit work in you. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 19, + "BBBCCCVVV": 52005019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_020": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "20", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "20", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 20, + "BBBCCCVVV": 52005020, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Don’t ignore prophecies. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Don’t ignore prophecies. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 20, + "BBBCCCVVV": 52005020, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_021": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "21", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "21", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 21, + "BBBCCCVVV": 52005021, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "But test them and all things first. If they are scripturally correct, accept them. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "But test them and all things first. If they are scripturally correct, accept them. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 21, + "BBBCCCVVV": 52005021, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_022": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "22", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "22", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 22, + "BBBCCCVVV": 52005022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "And stay away from all evil. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "And stay away from all evil. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 22, + "BBBCCCVVV": 52005022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 22, + "BBBCCCVVV": 52005022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 35, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_023": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "23", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "23", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 23, + "BBBCCCVVV": 52005023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "May the peace-giving God Himself sanctify everything in your life holy, so that you may be completely blameless ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "May the peace-giving God Himself sanctify everything in your life holy, so that you may be completely blameless ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 23, + "BBBCCCVVV": 52005023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 5, + "Marker": "f", + "Attributes": [], + "Data": "+", + "EndMarker": "f*", + "Token": { + "Type": 6, + "Marker": "f", + "Text": null, + "Attributes": null, + "Data": "+", + "EndMarker": "f*", + "NestlessMarker": "f", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 23, + "BBBCCCVVV": 52005023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 118, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fr", + "Attributes": [], + "Data": null, + "EndMarker": "fr*", + "Token": { + "Type": 5, + "Marker": "fr", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fr*", + "NestlessMarker": "fr", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 23, + "BBBCCCVVV": 52005023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 123, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "5:23 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "5:23 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 23, + "BBBCCCVVV": 52005023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 127, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fq", + "Attributes": [], + "Data": null, + "EndMarker": "fq*", + "Token": { + "Type": 5, + "Marker": "fq", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fq*", + "NestlessMarker": "fq", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 23, + "BBBCCCVVV": 52005023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 132, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "completely ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "completely ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 23, + "BBBCCCVVV": 52005023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 136, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "ft", + "Attributes": [], + "Data": null, + "EndMarker": "ft*", + "Token": { + "Type": 5, + "Marker": "ft", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "ft*", + "NestlessMarker": "ft", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 23, + "BBBCCCVVV": 52005023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 147, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "In the Greek language, “whole spirit, soul, and body.†", + "Token": { + "Type": 3, + "Marker": null, + "Text": "In the Greek language, “whole spirit, soul, and body.†", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 23, + "BBBCCCVVV": 52005023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 151, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "f*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "f*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "f*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 23, + "BBBCCCVVV": 52005023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 206, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " at the return of the Lord Jesus Christ. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": " at the return of the Lord Jesus Christ. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 23, + "BBBCCCVVV": 52005023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 209, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_024": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "24", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "24", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 24, + "BBBCCCVVV": 52005024, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "And look, the God who has chosen you is faithful, and He will surely do this. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "And look, the God who has chosen you is faithful, and He will surely do this. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 24, + "BBBCCCVVV": 52005024, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 24, + "BBBCCCVVV": 52005024, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 84, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_025": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "25", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "25", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 25, + "BBBCCCVVV": 52005025, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Brothers and sisters, continue to pray for us also. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Brothers and sisters, continue to pray for us also. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 25, + "BBBCCCVVV": 52005025, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_026": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "26", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "26", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 26, + "BBBCCCVVV": 52005026, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Embrace and greet each other. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Embrace and greet each other. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 26, + "BBBCCCVVV": 52005026, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_027": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "27", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "27", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 27, + "BBBCCCVVV": 52005027, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Before the Lord Jesus read this letter aloud to all the believers in the church there. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Before the Lord Jesus read this letter aloud to all the believers in the church there. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 27, + "BBBCCCVVV": 52005027, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 27, + "BBBCCCVVV": 52005027, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 93, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_028": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "28", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "28", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 28, + "BBBCCCVVV": 52005028, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "The grace of our Lord Jesus Christ be with you. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "The grace of our Lord Jesus Christ be with you. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 28, + "BBBCCCVVV": 52005028, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ] + } +} \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/MultipleVersesWithFootnote/MultipleVersesWithFootnote_TokensTargetUpdate.json b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/MultipleVersesWithFootnote/MultipleVersesWithFootnote_TokensTargetUpdate.json new file mode 100644 index 00000000..b814f029 --- /dev/null +++ b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/MultipleVersesWithFootnote/MultipleVersesWithFootnote_TokensTargetUpdate.json @@ -0,0 +1,4589 @@ +{ + "52_005_000": [ + { + "Type": 1, + "Marker": "c", + "Attributes": [], + "Data": "5", + "EndMarker": null, + "Token": { + "Type": 1, + "Marker": "c", + "Text": null, + "Attributes": null, + "Data": "5", + "EndMarker": null, + "NestlessMarker": "c", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 0, + "BBBCCCVVV": 52005000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 0, + "BBBCCCVVV": 52005000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Be Prepared For the Return of the Lord Jesus ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Be Prepared For the Return of the Lord Jesus ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 0, + "BBBCCCVVV": 52005000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 8, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 0, + "BBBCCCVVV": 52005000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 53, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_001": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "1", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "1", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 1, + "BBBCCCVVV": 52005001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Brothers and sisters, I don’t think it is necessary to write to you about when the Lord Jesus Christ will return to this world. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Brothers and sisters, I don’t think it is necessary to write to you about when the Lord Jesus Christ will return to this world. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 1, + "BBBCCCVVV": 52005001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_002": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "2", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "2", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 2, + "BBBCCCVVV": 52005002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "For you know very well that the Lord will return when you have not even thought about it.", + "Token": { + "Type": 3, + "Marker": null, + "Text": "For you know very well that the Lord will return when you have not even thought about it.", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 2, + "BBBCCCVVV": 52005002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 5, + "Marker": "f", + "Attributes": [], + "Data": "+", + "EndMarker": "f*", + "Token": { + "Type": 6, + "Marker": "f", + "Text": null, + "Attributes": null, + "Data": "+", + "EndMarker": "f*", + "NestlessMarker": "f", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 2, + "BBBCCCVVV": 52005002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 94, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fr", + "Attributes": [], + "Data": null, + "EndMarker": "fr*", + "Token": { + "Type": 5, + "Marker": "fr", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fr*", + "NestlessMarker": "fr", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 2, + "BBBCCCVVV": 52005002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 99, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "5:2 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "5:2 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 2, + "BBBCCCVVV": 52005002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 103, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fq", + "Attributes": [], + "Data": null, + "EndMarker": "fq*", + "Token": { + "Type": 5, + "Marker": "fq", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fq*", + "NestlessMarker": "fq", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 2, + "BBBCCCVVV": 52005002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 107, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "when you have not even thought about it ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "when you have not even thought about it ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 2, + "BBBCCCVVV": 52005002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 111, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "ft", + "Attributes": [], + "Data": null, + "EndMarker": "ft*", + "Token": { + "Type": 5, + "Marker": "ft", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "ft*", + "NestlessMarker": "ft", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 2, + "BBBCCCVVV": 52005002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 151, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "In Greek, “like a thief at nightâ€. See, Revelation 3:3, 16:15; Matthew 24:42-44; 2 Peter 3:10. This is also in verses 4-5.", + "Token": { + "Type": 3, + "Marker": null, + "Text": "In Greek, “like a thief at nightâ€. See, Revelation 3:3, 16:15; Matthew 24:42-44; 2 Peter 3:10. This is also in verses 4-5.", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 2, + "BBBCCCVVV": 52005002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 155, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "f*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "f*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "f*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 2, + "BBBCCCVVV": 52005002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 277, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " ", + "Token": { + "Type": 3, + "Marker": null, + "Text": " ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 2, + "BBBCCCVVV": 52005002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 280, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 2, + "BBBCCCVVV": 52005002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 281, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_003": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "3", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "3", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 3, + "BBBCCCVVV": 52005003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Those who are in the dark kingdom of Satan will then say, “Now there is peace all around, and there is nothing to fear...†", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Those who are in the dark kingdom of Satan will then say, “Now there is peace all around, and there is nothing to fear...†", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 3, + "BBBCCCVVV": 52005003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 3, + "BBBCCCVVV": 52005003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 128, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "But what will really happen is that just as a pregnant woman feels the pain of childbirth in an instant, disaster will come upon them at once, and they will have nowhere to go. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "But what will really happen is that just as a pregnant woman feels the pain of childbirth in an instant, disaster will come upon them at once, and they will have nowhere to go. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 3, + "BBBCCCVVV": 52005003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 131, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 3, + "BBBCCCVVV": 52005003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 308, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_004-005": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "4-5", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "4-5", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 4, + "BBBCCCVVV": 52005004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 4, + "BBBCCCVVV": 52005004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 5, + "BBBCCCVVV": 52005005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "But brothers and sisters, you and I are neither of the ‘darkness’ nor of the ‘night’ like them. You belong to God’s ‘light’ and to the ‘day’. And for you, the return of the Lord will not be alarming or come as a surprise. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "But brothers and sisters, you and I are neither of the ‘darkness’ nor of the ‘night’ like them. You belong to God’s ‘light’ and to the ‘day’. And for you, the return of the Lord will not be alarming or come as a surprise. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 4, + "BBBCCCVVV": 52005004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 4, + "BBBCCCVVV": 52005004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 5, + "BBBCCCVVV": 52005005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 7, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 4, + "BBBCCCVVV": 52005004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 4, + "BBBCCCVVV": 52005004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 5, + "BBBCCCVVV": 52005005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 229, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_006-007": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "6-7", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "6-7", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 6, + "BBBCCCVVV": 52005006, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 6, + "BBBCCCVVV": 52005006, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 7, + "BBBCCCVVV": 52005007, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "For ‘Night’ is when people drink and get drunk and sleep away their lives. So let us not sleep away our lives like them, but rather be vigilant and sober. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "For ‘Night’ is when people drink and get drunk and sleep away their lives. So let us not sleep away our lives like them, but rather be vigilant and sober. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 6, + "BBBCCCVVV": 52005006, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 6, + "BBBCCCVVV": 52005006, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 7, + "BBBCCCVVV": 52005007, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 7, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_008": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "8", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "8", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Since we are of the ‘day’, let us strap on our weapons and armor and be alert: such as the ‘helmet’ ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Since we are of the ‘day’, let us strap on our weapons and armor and be alert: such as the ‘helmet’ ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 5, + "Marker": "x", + "Attributes": [], + "Data": "+", + "EndMarker": "x*", + "Token": { + "Type": 6, + "Marker": "x", + "Text": null, + "Attributes": null, + "Data": "+", + "EndMarker": "x*", + "NestlessMarker": "x", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 105, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "xo", + "Attributes": [], + "Data": null, + "EndMarker": "xo*", + "Token": { + "Type": 5, + "Marker": "xo", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "xo*", + "NestlessMarker": "xo", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 110, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "5.8 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "5.8 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 114, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "xq", + "Attributes": [], + "Data": null, + "EndMarker": "xq*", + "Token": { + "Type": 5, + "Marker": "xq", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "xq*", + "NestlessMarker": "xq", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 118, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "‘helmet’ ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "‘helmet’ ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 122, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "xt", + "Attributes": [], + "Data": null, + "EndMarker": "xt*", + "Token": { + "Type": 5, + "Marker": "xt", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "xt*", + "NestlessMarker": "xt", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 131, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Eph 6:17 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Eph 6:17 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 135, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "x*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "x*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "x*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 144, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " of our full faith in salvation, and let us put on the ‘breastplate’ ", + "Token": { + "Type": 3, + "Marker": null, + "Text": " of our full faith in salvation, and let us put on the ‘breastplate’ ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 147, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 5, + "Marker": "x", + "Attributes": [], + "Data": "+", + "EndMarker": "x*", + "Token": { + "Type": 6, + "Marker": "x", + "Text": null, + "Attributes": null, + "Data": "+", + "EndMarker": "x*", + "NestlessMarker": "x", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 216, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "xo", + "Attributes": [], + "Data": null, + "EndMarker": "xo*", + "Token": { + "Type": 5, + "Marker": "xo", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "xo*", + "NestlessMarker": "xo", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 221, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "5.8 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "5.8 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 225, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "xq", + "Attributes": [], + "Data": null, + "EndMarker": "xq*", + "Token": { + "Type": 5, + "Marker": "xq", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "xq*", + "NestlessMarker": "xq", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 229, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "‘breastplate’ ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "‘breastplate’ ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 233, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "xt", + "Attributes": [], + "Data": null, + "EndMarker": "xt*", + "Token": { + "Type": 5, + "Marker": "xt", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "xt*", + "NestlessMarker": "xt", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 247, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Eph 6:14,16 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Eph 6:14,16 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 251, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "x*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "x*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "x*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 263, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " of our faith in and love for Christ. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": " of our faith in and love for Christ. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 266, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 8, + "BBBCCCVVV": 52005008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 304, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_009": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "9", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "9", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 9, + "BBBCCCVVV": 52005009, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "You see, God did not choose us to punish us, but rather to save us through the sacrifice of the Lord Jesus Christ. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "You see, God did not choose us to punish us, but rather to save us through the sacrifice of the Lord Jesus Christ. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 9, + "BBBCCCVVV": 52005009, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_010": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "10", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "10", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 10, + "BBBCCCVVV": 52005010, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Jesus Christ gave His life for us, so that when He returns, whether we are alive or dead, He will take us to heaven to live with Him there forever and ever. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Jesus Christ gave His life for us, so that when He returns, whether we are alive or dead, He will take us to heaven to live with Him there forever and ever. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 10, + "BBBCCCVVV": 52005010, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_011": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "11", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "11", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 11, + "BBBCCCVVV": 52005011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Therefore, continue to encourage one another, and help each other grow in spiritual maturity, just as you have been doing. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Therefore, continue to encourage one another, and help each other grow in spiritual maturity, just as you have been doing. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 11, + "BBBCCCVVV": 52005011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 11, + "BBBCCCVVV": 52005011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 129, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Final Warning and Greetings ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Final Warning and Greetings ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 11, + "BBBCCCVVV": 52005011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 132, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 11, + "BBBCCCVVV": 52005011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 160, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_012": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "12", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "12", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 12, + "BBBCCCVVV": 52005012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Brothers and sisters, we ask you to honor the leaders of the Church of the Lord Jesus,", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Brothers and sisters, we ask you to honor the leaders of the Church of the Lord Jesus,", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 12, + "BBBCCCVVV": 52005012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 5, + "Marker": "x", + "Attributes": [], + "Data": "+", + "EndMarker": "x*", + "Token": { + "Type": 6, + "Marker": "x", + "Text": null, + "Attributes": null, + "Data": "+", + "EndMarker": "x*", + "NestlessMarker": "x", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 12, + "BBBCCCVVV": 52005012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 92, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "xo", + "Attributes": [], + "Data": null, + "EndMarker": "xo*", + "Token": { + "Type": 5, + "Marker": "xo", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "xo*", + "NestlessMarker": "xo", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 12, + "BBBCCCVVV": 52005012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 97, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "5:12 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "5:12 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 12, + "BBBCCCVVV": 52005012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 101, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "xq", + "Attributes": [], + "Data": null, + "EndMarker": "xq*", + "Token": { + "Type": 5, + "Marker": "xq", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "xq*", + "NestlessMarker": "xq", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 12, + "BBBCCCVVV": 52005012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 106, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "honor those leaders", + "Token": { + "Type": 3, + "Marker": null, + "Text": "honor those leaders", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 12, + "BBBCCCVVV": 52005012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 110, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "xt", + "Attributes": [], + "Data": null, + "EndMarker": "xt*", + "Token": { + "Type": 5, + "Marker": "xt", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "xt*", + "NestlessMarker": "xt", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 12, + "BBBCCCVVV": 52005012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 129, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Hebrews 13:7-17 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Hebrews 13:7-17 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 12, + "BBBCCCVVV": 52005012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 133, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "x*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "x*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "x*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 12, + "BBBCCCVVV": 52005012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 149, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " who help you grow spiritually. They give their life and limb to guide you. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": " who help you grow spiritually. They give their life and limb to guide you. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 12, + "BBBCCCVVV": 52005012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 152, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_013-014": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "13-14", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "13-14", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 14, + "BBBCCCVVV": 52005014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Therefore, respect them with love for this ministry of theirs. ", + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 14, + "BBBCCCVVV": 52005014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 9, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 14, + "BBBCCCVVV": 52005014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 68, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Brothers and sisters, we also ask that you reconcile among yourselves in the Church. Warn those who have become lazy to work hard to earn their daily bread. Encourage those who are afraid. Help those who are weak. Continue to patiently care for all. ", + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 14, + "BBBCCCVVV": 52005014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 71, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 14, + "BBBCCCVVV": 52005014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 361, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_015": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "15", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "15", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 15, + "BBBCCCVVV": 52005015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Be careful! No one among you should take revenge for evil. But in every situation, always look for ways to do good, not only to those within the Church, but also to outsiders. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Be careful! No one among you should take revenge for evil. But in every situation, always look for ways to do good, not only to those within the Church, but also to outsiders. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 15, + "BBBCCCVVV": 52005015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_016": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "16", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "16", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 16, + "BBBCCCVVV": 52005016, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Always be happy. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Always be happy. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 16, + "BBBCCCVVV": 52005016, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_017": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "17", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "17", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 17, + "BBBCCCVVV": 52005017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Always keep praying. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Always keep praying. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 17, + "BBBCCCVVV": 52005017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_018": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "18", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "18", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 18, + "BBBCCCVVV": 52005018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "No matter what happens, always give thank to God. This is God’s will for you as a believer in Christ Jesus. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "No matter what happens, always give thank to God. This is God’s will for you as a believer in Christ Jesus. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 18, + "BBBCCCVVV": 52005018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 18, + "BBBCCCVVV": 52005018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 114, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_019": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "19", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "19", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 19, + "BBBCCCVVV": 52005019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Let God’s Holy Spirit work in you. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Let God’s Holy Spirit work in you. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 19, + "BBBCCCVVV": 52005019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_020": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "20", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "20", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 20, + "BBBCCCVVV": 52005020, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Don’t ignore prophecies. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Don’t ignore prophecies. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 20, + "BBBCCCVVV": 52005020, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_021": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "21", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "21", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 21, + "BBBCCCVVV": 52005021, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "But test them and all things first. If they are scripturally correct, accept them. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "But test them and all things first. If they are scripturally correct, accept them. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 21, + "BBBCCCVVV": 52005021, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_022": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "22", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "22", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 22, + "BBBCCCVVV": 52005022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "And stay away from all evil. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "And stay away from all evil. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 22, + "BBBCCCVVV": 52005022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 22, + "BBBCCCVVV": 52005022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 35, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_023": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "23", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "23", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 23, + "BBBCCCVVV": 52005023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "May the peace-giving God Himself sanctify everything in your life holy, so that you may be completely blameless ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "May the peace-giving God Himself sanctify everything in your life holy, so that you may be completely blameless ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 23, + "BBBCCCVVV": 52005023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 5, + "Marker": "f", + "Attributes": [], + "Data": "+", + "EndMarker": "f*", + "Token": { + "Type": 6, + "Marker": "f", + "Text": null, + "Attributes": null, + "Data": "+", + "EndMarker": "f*", + "NestlessMarker": "f", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 23, + "BBBCCCVVV": 52005023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 118, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fr", + "Attributes": [], + "Data": null, + "EndMarker": "fr*", + "Token": { + "Type": 5, + "Marker": "fr", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fr*", + "NestlessMarker": "fr", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 23, + "BBBCCCVVV": 52005023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 123, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "5:23 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "5:23 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 23, + "BBBCCCVVV": 52005023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 127, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fq", + "Attributes": [], + "Data": null, + "EndMarker": "fq*", + "Token": { + "Type": 5, + "Marker": "fq", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fq*", + "NestlessMarker": "fq", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 23, + "BBBCCCVVV": 52005023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 132, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "completely ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "completely ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 23, + "BBBCCCVVV": 52005023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 136, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "ft", + "Attributes": [], + "Data": null, + "EndMarker": "ft*", + "Token": { + "Type": 5, + "Marker": "ft", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "ft*", + "NestlessMarker": "ft", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 23, + "BBBCCCVVV": 52005023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 147, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "In the Greek language, “whole spirit, soul, and body.†", + "Token": { + "Type": 3, + "Marker": null, + "Text": "In the Greek language, “whole spirit, soul, and body.†", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 23, + "BBBCCCVVV": 52005023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 151, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "f*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "f*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "f*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 23, + "BBBCCCVVV": 52005023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 206, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " at the return of the Lord Jesus Christ. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": " at the return of the Lord Jesus Christ. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 23, + "BBBCCCVVV": 52005023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 209, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_024": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "24", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "24", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 24, + "BBBCCCVVV": 52005024, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "And look, the God who has chosen you is faithful, and He will surely do this. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "And look, the God who has chosen you is faithful, and He will surely do this. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 24, + "BBBCCCVVV": 52005024, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 24, + "BBBCCCVVV": 52005024, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 84, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_025": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "25", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "25", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 25, + "BBBCCCVVV": 52005025, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Brothers and sisters, continue to pray for us also. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Brothers and sisters, continue to pray for us also. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 25, + "BBBCCCVVV": 52005025, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_026": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "26", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "26", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 26, + "BBBCCCVVV": 52005026, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Embrace and greet each other. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Embrace and greet each other. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 26, + "BBBCCCVVV": 52005026, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_027": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "27", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "27", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 27, + "BBBCCCVVV": 52005027, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Before the Lord Jesus read this letter aloud to all the believers in the church there. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Before the Lord Jesus read this letter aloud to all the believers in the church there. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 27, + "BBBCCCVVV": 52005027, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 27, + "BBBCCCVVV": 52005027, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 93, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "52_005_028": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "28", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "28", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 28, + "BBBCCCVVV": 52005028, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "The grace of our Lord Jesus Christ be with you. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "The grace of our Lord Jesus Christ be with you. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 28, + "BBBCCCVVV": 52005028, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ] +} \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/MultipleVersesWithFootnote/MultipleVersesWithFootnote_TranslatedText.txt b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/MultipleVersesWithFootnote/MultipleVersesWithFootnote_TranslatedText.txt new file mode 100644 index 00000000..9ec3cd44 --- /dev/null +++ b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/MultipleVersesWithFootnote/MultipleVersesWithFootnote_TranslatedText.txt @@ -0,0 +1,2 @@ +Therefore, respect them with love for this ministry of theirs. +Brothers and sisters, we also ask that you reconcile among yourselves in the Church. Warn those who have become lazy to work hard to earn their daily bread. Encourage those who are afraid. Help those who are weak. Continue to patiently care for all. \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/MultipleVersesWithFootnote/MultipleVersesWithFootnote_VerseReference.json b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/MultipleVersesWithFootnote/MultipleVersesWithFootnote_VerseReference.json new file mode 100644 index 00000000..8ee11fc4 --- /dev/null +++ b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/MultipleVersesWithFootnote/MultipleVersesWithFootnote_VerseReference.json @@ -0,0 +1,13 @@ +{ + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] +} \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/MultipleVersesWithFootnote/MultipleVersesWithFootnote_VersesReference.json b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/MultipleVersesWithFootnote/MultipleVersesWithFootnote_VersesReference.json new file mode 100644 index 00000000..75791f93 --- /dev/null +++ b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/MultipleVersesWithFootnote/MultipleVersesWithFootnote_VersesReference.json @@ -0,0 +1,40 @@ +{ + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 13, + "BBBCCCVVV": 52005013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "1TH", + "BookNum": 52, + "ChapterNum": 5, + "VerseNum": 14, + "BBBCCCVVV": 52005014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] +} \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/SeparateInSourceCombinedButEmptyInTarget/SeparateInSourceCombinedButEmptyInTarget_TokensSource.json b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/SeparateInSourceCombinedButEmptyInTarget/SeparateInSourceCombinedButEmptyInTarget_TokensSource.json new file mode 100644 index 00000000..aa6c65c5 --- /dev/null +++ b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/SeparateInSourceCombinedButEmptyInTarget/SeparateInSourceCombinedButEmptyInTarget_TokensSource.json @@ -0,0 +1,308 @@ +{ + "01_001_001-002": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "1", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "1", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "परमेशà¥à¤µà¤° ने सृषà¥à¤Ÿà¤¿ की रचना यूठकी: आरमà¥â€à¤ में परमेशà¥à¤µà¤° ने पृथà¥â€à¤µà¥€ की रचना की। ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "परमेशà¥à¤µà¤° ने सृषà¥à¤Ÿà¤¿ की रचना यूठकी: आरमà¥â€à¤ में परमेशà¥à¤µà¤° ने पृथà¥â€à¤µà¥€ की रचना की। ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_002": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "2", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "2", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 2, + "BBBCCCVVV": 1001002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "परंतॠउस समय वह सà¥à¤¨à¤¸à¤¾à¤¨ थी, और उस पर केवल पानी ही था। और चारों ओर कोई पà¥à¤°à¤•à¤¾à¤¶ à¤à¥€ नहीं था। परमेशà¥à¤µà¤° की आतà¥â€à¤®à¤¾ उस पानी के ऊपर मंडराती थी। ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "परंतॠउस समय वह सà¥à¤¨à¤¸à¤¾à¤¨ थी, और उस पर केवल पानी ही था। और चारों ओर कोई पà¥à¤°à¤•à¤¾à¤¶ à¤à¥€ नहीं था। परमेशà¥à¤µà¤° की आतà¥â€à¤®à¤¾ उस पानी के ऊपर मंडराती थी। ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 2, + "BBBCCCVVV": 1001002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 2, + "BBBCCCVVV": 1001002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 139, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 2, + "BBBCCCVVV": 1001002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 142, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_001": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "1", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "1", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "परमेशà¥à¤µà¤° ने सृषà¥à¤Ÿà¤¿ की रचना यूठकी: आरमà¥â€à¤ में परमेशà¥à¤µà¤° ने पृथà¥â€à¤µà¥€ की रचना की। ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "परमेशà¥à¤µà¤° ने सृषà¥à¤Ÿà¤¿ की रचना यूठकी: आरमà¥â€à¤ में परमेशà¥à¤µà¤° ने पृथà¥â€à¤µà¥€ की रचना की। ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ] +} \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/SeparateInSourceCombinedButEmptyInTarget/SeparateInSourceCombinedButEmptyInTarget_TokensTarget.json b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/SeparateInSourceCombinedButEmptyInTarget/SeparateInSourceCombinedButEmptyInTarget_TokensTarget.json new file mode 100644 index 00000000..9e23b275 --- /dev/null +++ b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/SeparateInSourceCombinedButEmptyInTarget/SeparateInSourceCombinedButEmptyInTarget_TokensTarget.json @@ -0,0 +1,2478 @@ +{ + "01_001": { + "01_001_000": [ + { + "Type": 0, + "Marker": "id", + "Attributes": [], + "Data": "GEN", + "EndMarker": null, + "Token": { + "Type": 0, + "Marker": "id", + "Text": null, + "Attributes": null, + "Data": "GEN", + "EndMarker": null, + "NestlessMarker": "id", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": true, + "IsPublishableVernacular": false + }, + { + "Text": "- English नौंआ जीबन सासà¥â€à¤¤à¤° (from xnr) ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "- English नौंआ जीबन सासà¥â€à¤¤à¤° (from xnr) ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 8, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": true, + "IsPublishableVernacular": false + }, + { + "Type": 3, + "Marker": "h", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "h", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "h*", + "NestlessMarker": "h", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 47, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Creation ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Creation ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 50, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "toc3", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "toc3", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "toc3*", + "NestlessMarker": "toc3", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 59, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Cre ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Cre ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 65, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "toc2", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "toc2", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "toc2*", + "NestlessMarker": "toc2", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 69, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Creation ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Creation ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 75, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "toc1", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "toc1", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "toc1*", + "NestlessMarker": "toc1", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 84, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Creation ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Creation ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 90, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "h", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "h", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "h*", + "NestlessMarker": "h", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 99, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "mt", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "mt", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "mt*", + "NestlessMarker": "mt", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 102, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 1, + "Marker": "c", + "Attributes": [], + "Data": "1", + "EndMarker": null, + "Token": { + "Type": 1, + "Marker": "c", + "Text": null, + "Attributes": null, + "Data": "1", + "EndMarker": null, + "NestlessMarker": "c", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 106, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 111, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_001-002": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "1-2", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "1-2", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 2, + "BBBCCCVVV": 1001002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 2, + "BBBCCCVVV": 1001002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 7, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 2, + "BBBCCCVVV": 1001002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 10, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_003": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "3", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "3", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 3, + "BBBCCCVVV": 1001003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_004": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "4", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "4", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 4, + "BBBCCCVVV": 1001004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_005": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "5", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "5", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 5, + "BBBCCCVVV": 1001005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 5, + "BBBCCCVVV": 1001005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 5, + "BBBCCCVVV": 1001005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 8, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_006": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "6", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "6", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 6, + "BBBCCCVVV": 1001006, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_007": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "7", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "7", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 7, + "BBBCCCVVV": 1001007, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_008": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "8", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "8", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 8, + "BBBCCCVVV": 1001008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 8, + "BBBCCCVVV": 1001008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 8, + "BBBCCCVVV": 1001008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 8, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_009": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "9", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "9", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 9, + "BBBCCCVVV": 1001009, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_010": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "10", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "10", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 10, + "BBBCCCVVV": 1001010, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 10, + "BBBCCCVVV": 1001010, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_011": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "11", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "11", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 11, + "BBBCCCVVV": 1001011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_012": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "12", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "12", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 12, + "BBBCCCVVV": 1001012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_013": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "13", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "13", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 13, + "BBBCCCVVV": 1001013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 13, + "BBBCCCVVV": 1001013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 13, + "BBBCCCVVV": 1001013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 9, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_014-015": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "14-15", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "14-15", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 14, + "BBBCCCVVV": 1001014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 14, + "BBBCCCVVV": 1001014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 15, + "BBBCCCVVV": 1001015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_016": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "16", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "16", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 16, + "BBBCCCVVV": 1001016, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 16, + "BBBCCCVVV": 1001016, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_017-018": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "17-18", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "17-18", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 17, + "BBBCCCVVV": 1001017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 17, + "BBBCCCVVV": 1001017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 18, + "BBBCCCVVV": 1001018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_019": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "19", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "19", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 19, + "BBBCCCVVV": 1001019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 19, + "BBBCCCVVV": 1001019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 19, + "BBBCCCVVV": 1001019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 9, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_020": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "20", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "20", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 20, + "BBBCCCVVV": 1001020, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_021": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "21", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "21", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 21, + "BBBCCCVVV": 1001021, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_022": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "22", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "22", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 22, + "BBBCCCVVV": 1001022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_023": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "23", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "23", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 23, + "BBBCCCVVV": 1001023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 23, + "BBBCCCVVV": 1001023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 23, + "BBBCCCVVV": 1001023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 9, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_024": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "24", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "24", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 24, + "BBBCCCVVV": 1001024, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_025": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "25", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "25", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 25, + "BBBCCCVVV": 1001025, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 25, + "BBBCCCVVV": 1001025, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_026": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "26", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "26", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 26, + "BBBCCCVVV": 1001026, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_027": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "27", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "27", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 27, + "BBBCCCVVV": 1001027, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 27, + "BBBCCCVVV": 1001027, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_028": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "28", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "28", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 28, + "BBBCCCVVV": 1001028, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_029": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "29", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "29", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 29, + "BBBCCCVVV": 1001029, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_030": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "30", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "30", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 30, + "BBBCCCVVV": 1001030, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 30, + "BBBCCCVVV": 1001030, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_031": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "31", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "31", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 31, + "BBBCCCVVV": 1001031, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ] + } +} \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/SeparateInSourceCombinedButEmptyInTarget/SeparateInSourceCombinedButEmptyInTarget_TokensTargetUpdate.json b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/SeparateInSourceCombinedButEmptyInTarget/SeparateInSourceCombinedButEmptyInTarget_TokensTargetUpdate.json new file mode 100644 index 00000000..bed098dd --- /dev/null +++ b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/SeparateInSourceCombinedButEmptyInTarget/SeparateInSourceCombinedButEmptyInTarget_TokensTargetUpdate.json @@ -0,0 +1,2340 @@ +{ + "01_001_000": [ + { + "Type": 0, + "Marker": "id", + "Attributes": [], + "Data": "GEN", + "EndMarker": null, + "Token": { + "Type": 0, + "Marker": "id", + "Text": null, + "Attributes": null, + "Data": "GEN", + "EndMarker": null, + "NestlessMarker": "id", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": true, + "IsPublishableVernacular": false + }, + { + "Text": "- English नौंआ जीबन सासà¥â€à¤¤à¤° (from xnr) ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "- English नौंआ जीबन सासà¥â€à¤¤à¤° (from xnr) ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 8, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": true, + "IsPublishableVernacular": false + }, + { + "Type": 3, + "Marker": "h", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "h", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "h*", + "NestlessMarker": "h", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 47, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Creation ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Creation ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 50, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "toc3", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "toc3", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "toc3*", + "NestlessMarker": "toc3", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 59, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Cre ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Cre ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 65, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "toc2", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "toc2", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "toc2*", + "NestlessMarker": "toc2", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 69, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Creation ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Creation ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 75, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "toc1", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "toc1", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "toc1*", + "NestlessMarker": "toc1", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 84, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Creation ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Creation ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 90, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "h", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "h", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "h*", + "NestlessMarker": "h", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 99, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "mt", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "mt", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "mt*", + "NestlessMarker": "mt", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 102, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 1, + "Marker": "c", + "Attributes": [], + "Data": "1", + "EndMarker": null, + "Token": { + "Type": 1, + "Marker": "c", + "Text": null, + "Attributes": null, + "Data": "1", + "EndMarker": null, + "NestlessMarker": "c", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 106, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 0, + "BBBCCCVVV": 1001000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 111, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_001": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "1", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "1", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "This is how God created the universe: In the beginning God created the earth.", + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_003": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "3", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "3", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 3, + "BBBCCCVVV": 1001003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_004": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "4", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "4", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 4, + "BBBCCCVVV": 1001004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_005": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "5", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "5", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 5, + "BBBCCCVVV": 1001005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 5, + "BBBCCCVVV": 1001005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 5, + "BBBCCCVVV": 1001005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 8, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_006": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "6", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "6", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 6, + "BBBCCCVVV": 1001006, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_007": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "7", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "7", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 7, + "BBBCCCVVV": 1001007, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_008": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "8", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "8", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 8, + "BBBCCCVVV": 1001008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 8, + "BBBCCCVVV": 1001008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 8, + "BBBCCCVVV": 1001008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 8, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_009": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "9", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "9", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 9, + "BBBCCCVVV": 1001009, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_010": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "10", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "10", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 10, + "BBBCCCVVV": 1001010, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 10, + "BBBCCCVVV": 1001010, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_011": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "11", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "11", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 11, + "BBBCCCVVV": 1001011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_012": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "12", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "12", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 12, + "BBBCCCVVV": 1001012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_013": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "13", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "13", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 13, + "BBBCCCVVV": 1001013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 13, + "BBBCCCVVV": 1001013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 13, + "BBBCCCVVV": 1001013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 9, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_014-015": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "14-15", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "14-15", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 14, + "BBBCCCVVV": 1001014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 14, + "BBBCCCVVV": 1001014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 15, + "BBBCCCVVV": 1001015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_016": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "16", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "16", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 16, + "BBBCCCVVV": 1001016, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 16, + "BBBCCCVVV": 1001016, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_017-018": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "17-18", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "17-18", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 17, + "BBBCCCVVV": 1001017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 17, + "BBBCCCVVV": 1001017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 18, + "BBBCCCVVV": 1001018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_019": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "19", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "19", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 19, + "BBBCCCVVV": 1001019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 19, + "BBBCCCVVV": 1001019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 19, + "BBBCCCVVV": 1001019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 9, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_020": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "20", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "20", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 20, + "BBBCCCVVV": 1001020, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_021": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "21", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "21", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 21, + "BBBCCCVVV": 1001021, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_022": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "22", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "22", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 22, + "BBBCCCVVV": 1001022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_023": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "23", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "23", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 23, + "BBBCCCVVV": 1001023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 23, + "BBBCCCVVV": 1001023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 23, + "BBBCCCVVV": 1001023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 9, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_024": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "24", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "24", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 24, + "BBBCCCVVV": 1001024, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_025": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "25", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "25", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 25, + "BBBCCCVVV": 1001025, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 25, + "BBBCCCVVV": 1001025, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_026": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "26", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "26", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 26, + "BBBCCCVVV": 1001026, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_027": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "27", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "27", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 27, + "BBBCCCVVV": 1001027, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 27, + "BBBCCCVVV": 1001027, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_028": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "28", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "28", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 28, + "BBBCCCVVV": 1001028, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_029": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "29", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "29", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 29, + "BBBCCCVVV": 1001029, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_030": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "30", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "30", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 30, + "BBBCCCVVV": 1001030, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 30, + "BBBCCCVVV": 1001030, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "01_001_031": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "31", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "31", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 31, + "BBBCCCVVV": 1001031, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ] +} \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/SeparateInSourceCombinedButEmptyInTarget/SeparateInSourceCombinedButEmptyInTarget_TranslatedText.txt b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/SeparateInSourceCombinedButEmptyInTarget/SeparateInSourceCombinedButEmptyInTarget_TranslatedText.txt new file mode 100644 index 00000000..03cac910 --- /dev/null +++ b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/SeparateInSourceCombinedButEmptyInTarget/SeparateInSourceCombinedButEmptyInTarget_TranslatedText.txt @@ -0,0 +1 @@ +This is how God created the universe: In the beginning God created the earth. \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/SeparateInSourceCombinedButEmptyInTarget/SeparateInSourceCombinedButEmptyInTarget_VerseReference.json b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/SeparateInSourceCombinedButEmptyInTarget/SeparateInSourceCombinedButEmptyInTarget_VerseReference.json new file mode 100644 index 00000000..d01d8b8b --- /dev/null +++ b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/SeparateInSourceCombinedButEmptyInTarget/SeparateInSourceCombinedButEmptyInTarget_VerseReference.json @@ -0,0 +1,13 @@ +{ + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] +} \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/SeparateInSourceCombinedButEmptyInTarget/SeparateInSourceCombinedButEmptyInTarget_VersesReference.json b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/SeparateInSourceCombinedButEmptyInTarget/SeparateInSourceCombinedButEmptyInTarget_VersesReference.json new file mode 100644 index 00000000..d01d8b8b --- /dev/null +++ b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/SeparateInSourceCombinedButEmptyInTarget/SeparateInSourceCombinedButEmptyInTarget_VersesReference.json @@ -0,0 +1,13 @@ +{ + "BookCode": "GEN", + "BookNum": 1, + "ChapterNum": 1, + "VerseNum": 1, + "BBBCCCVVV": 1001001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] +} \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/UnitTest_PtxBackTrHelper.cs b/src/SILConvertersWordML/TestBwdc/UnitTest_PtxBackTrHelper.cs index 029e9f22..0c1b93d1 100644 --- a/src/SILConvertersWordML/TestBwdc/UnitTest_PtxBackTrHelper.cs +++ b/src/SILConvertersWordML/TestBwdc/UnitTest_PtxBackTrHelper.cs @@ -17,22 +17,25 @@ namespace TestBwdc public class UnitTest_PtxBackTrHelper { [Test] + [TestCase("Complex_SingleVerse", "Complex_MissingInTarget")] + [TestCase("MultipleParagraphs", "MultipleParagraphsMissingInTarget")] + [TestCase("MultiplePoeticParagraphs", "MultiplePoeticParagraphsMissingInTarget")] + [TestCase("SimpleParagraphVerse", "SimpleParagraphVerseMissingInTarget")] [TestCase("SingleVerse", "SingleVerseMissingInTarget")] + /* these are all now failing and I don't think they matter anymore. We aren't now completely + * overwriting the target text with the translated text. [TestCase("SingleVerse", "SingleVerseMiTSplitIntoTwoParagraphs")] [TestCase("SingleVerse", "SingleVerseSplitIntoTwoParagraphs")] [TestCase("MultipleParagraphs", "MultipleParagraphsJoinedIntoOneParagraphs")] - [TestCase("MultipleParagraphs", "MultipleParagraphsMissingInTarget")] [TestCase("MultipleParagraphs", "MultipleParagraphsMiTJoinedIntoOneParagraphs")] - [TestCase("MultiplePoeticParagraphs", "MultiplePoeticParagraphsMissingInTarget")] - [TestCase("SimpleParagraphVerse", "SimpleParagraphVerseMissingInTarget")] [TestCase("SimpleParagraphVerse", "SimpleParagraphVerseMiTSplitIntoTwoParagraphs")] [TestCase("SimpleParagraphVerse", "SimpleParagraphVerseSplitIntoTwoParagraphs")] [TestCase("MultipleVerses", "MultipleVersesMissingInTarget")] [TestCase("MultipleVerses", "MultipleVersesAndParagraphsMiTJoinedIntoOneParagraphs")] [TestCase("MultipleVerses", "MultipleVersesAndParagraphsJoinedIntoOneParagraphs")] - [TestCase("Complex_SingleVerse", "Complex_MissingInTarget")] [TestCase("Complex_SingleVerse", "Complex_PartialOverwriteMarker")] [TestCase("Complex_SingleVerse", "Complex_PartialOverwriteText")] + */ public void It_Can_Determine_Correct_Update_To_Target_Project(string fileNameCommon, string fileNameTestSpecific) { var usfmTokensSource = TestModel.LoadKeyedListOfTokens($"{fileNameCommon}_TokensSource.json"); @@ -48,5 +51,25 @@ public void It_Can_Determine_Correct_Update_To_Target_Project(string fileNameCom var strUsfmTokensTargetUpdated = TestModel.ToJson(usfmTokensTargetUpdated); Assert.AreEqual(strUsfmTokensTargetUpdated, strResult); } + + [Test] + [TestCase("MultipleVersesWithFootnote")] + [TestCase("SeparateInSourceCombinedButEmptyInTarget")] + [TestCase("CombinedInSourceSeparateNoEmptyInTarget")] + public void It_Can_Determine_Correct_Update_To_Target_Project_For_Other_Cases(string fileNamePrefix) + { + var usfmTokensSource = TestModel.LoadKeyedListOfTokens($"{fileNamePrefix}_TokensSource.json"); + var usfmTokensTarget = TestModel.LoadKeyedSortedListOfTokens($"{fileNamePrefix}_TokensTarget.json"); + var verseReference = TestModel.LoadVerseRef($"{fileNamePrefix}_VerseReference.json"); + var versesReference = TestModel.LoadVerseRef($"{fileNamePrefix}_VersesReference.json"); + var translatedText = TestModel.LoadEmbeddedResourceFileAsStringExecutingAssembly($"{fileNamePrefix}_TranslatedText.txt"); + var result = BackTranslationHelperForm.CalculateTargetTokens(verseReference, versesReference, translatedText, usfmTokensSource, usfmTokensTarget); + + var strResult = TestModel.ToJson(result); + Assert.IsNotNull(usfmTokensTarget); + var usfmTokensTargetUpdated = TestModel.LoadKeyedListOfTokens($"{fileNamePrefix}_TokensTargetUpdate.json"); + var strUsfmTokensTargetUpdated = TestModel.ToJson(usfmTokensTargetUpdated); + Assert.AreEqual(strUsfmTokensTargetUpdated, strResult); + } } } From b1fab5cc8e34074bce3c8de72be40507b0207211 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sun, 12 Mar 2023 19:26:47 -0500 Subject: [PATCH 24/71] added a text box to the Ptx plugin Form so that we could display status (e.g. differences between the number of translated lines between source and target and warnings about staying on verses (if the user clicks on another one in Ptx) if the text was modified (lest we lose changes unintentionally) --- .../BackTranslationHelperForm.Designer.cs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.Designer.cs b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.Designer.cs index 32eec23e..5eda8692 100644 --- a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.Designer.cs +++ b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.Designer.cs @@ -30,6 +30,7 @@ protected override void Dispose(bool disposing) private void InitializeComponent() { this.backTranslationHelperCtrl = new BackTranslationHelper.BackTranslationHelperCtrl(); + this.textBoxStatus = new System.Windows.Forms.TextBox(); this.SuspendLayout(); // // backTranslationHelperCtrl @@ -45,14 +46,26 @@ private void InitializeComponent() this.backTranslationHelperCtrl.AutoSize = false; this.backTranslationHelperCtrl.Location = new System.Drawing.Point(0, 0); this.backTranslationHelperCtrl.Name = "backTranslationHelperCtrl"; - this.backTranslationHelperCtrl.Size = new System.Drawing.Size(790, 449); + this.backTranslationHelperCtrl.Size = new System.Drawing.Size(800, 428); this.backTranslationHelperCtrl.TabIndex = 1; // + // textBoxStatus + // + this.textBoxStatus.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxStatus.Location = new System.Drawing.Point(0, 430); + this.textBoxStatus.Name = "textBoxStatus"; + this.textBoxStatus.ReadOnly = true; + this.textBoxStatus.Size = new System.Drawing.Size(800, 20); + this.textBoxStatus.TabIndex = 2; + this.textBoxStatus.Click += TextBoxStatus_Click; + // // BackTranslationHelperForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(800, 450); + this.Controls.Add(this.textBoxStatus); this.Controls.Add(this.backTranslationHelperCtrl); this.Name = "BackTranslationHelperForm"; this.Text = "Back Translating from {0} - {1} in verse: {2}"; @@ -67,5 +80,6 @@ private void InitializeComponent() #endregion private BackTranslationHelper.BackTranslationHelperCtrl backTranslationHelperCtrl; + private System.Windows.Forms.TextBox textBoxStatus; } } \ No newline at end of file From d4c1e8eeedf0070dfec94080e6665fffe22ce7a6 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sun, 12 Mar 2023 20:28:31 -0500 Subject: [PATCH 25/71] =?UTF-8?q?fix=20the=20case=20where=20Paratext=20doe?= =?UTF-8?q?sn=E2=80=98t=20consider=20the=20verse=20number=20in=20a=20\va..?= =?UTF-8?q?.\va*=20inline=20segment=20as=20publishable=20text=20(in=20need?= =?UTF-8?q?=20of=20being=20translated,=20which=20it=20is)=20if=20it=20come?= =?UTF-8?q?s=20immediately=20after=20a=20\v=20marker...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BackTranslationHelperForm.cs | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs index dad90447..fc36808a 100644 --- a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs +++ b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs @@ -285,7 +285,7 @@ private string CurrentSourceData } var data = tokens.OfType<IUSFMTextToken>() - .Where(t => t.IsPublishableVernacular && IsMatchingVerse(t.VerseRef, _verseReference)) + .Where(t => IsPublishableVernacular(t, tokens) && IsMatchingVerse(t.VerseRef, _verseReference)) .ToDictionary(ta => ta, ta => ta.VerseRef); if (!data.Any()) @@ -308,6 +308,33 @@ private string CurrentSourceData } } + // normally, text tokens are publishable, but there are some that aren't (e.g. the text content of an \id marker). + // And there's one case that seems like a bug to me, but which I've been told has worked that way forever and so + // there's no changing it now... vis-a-vis: + // the \va...\va* inline marker is defined differently depending on whether it comes immediately after a \v [num(s)] + // marker than if it comes elsewhere in a verse. The relevant difference is that when it comes immediately after a \v + // marker, it's value for IsPublishableVernacular (false) and IsMetadata (true) are opposite from the other case. + // So... if IsPubliableVernacular is false, at least check if this is that case, and return true, so we'll try to + // translate it as the others are (bkz we only send IsPub text segments for translation) + private bool IsPublishableVernacular(IUSFMTextToken t, List<IUSFMToken> tokens) + { + return t.IsPublishableVernacular || + (PreviousToken(t, tokens, out IUSFMMarkerToken mt) && (mt.Marker == "va") && mt.IsMetadata); + } + + private bool PreviousToken(IUSFMTextToken t, List<IUSFMToken> tokens, out IUSFMMarkerToken previousToken) + { + var index = tokens.IndexOf(t) - 1; + if ((index >= 0) && (index < tokens.Count) && (tokens[index] is IUSFMMarkerToken prevToken)) + { + previousToken = prevToken; + return true; + } + + previousToken = null; + return false; + } + private List<IUSFMMarkerToken> GetTextTokenMarkers(List<IUSFMToken> tokens, List<IUSFMTextToken> textTokens) { IUSFMMarkerToken lastMarkerToken = null; From af2d025d5700decd5e9935bcbb04c51bb73d276f Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Mon, 13 Mar 2023 09:56:52 -0500 Subject: [PATCH 26/71] prevent an exception if the source has no data (not expected, but can happen -- e.g. if the person clicks Next to a verse that hasn't been translated in the source yet). --- .../BackTranslationHelperForm.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs index fc36808a..e3da5243 100644 --- a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs +++ b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs @@ -392,7 +392,10 @@ private string CurrentTargetData var tokens = vrefTokens[bookChapterVerseKey]; var data = tokens.OfType<IUSFMTextToken>() - .Where(t => t.IsPublishableVernacular && IsMatchingVerse(t.VerseRef, _verseReference)); + .Where(t => IsPublishableVernacular(t, tokens) && IsMatchingVerse(t.VerseRef, _verseReference)); + + if (!data.Any()) + return null; var values = data.Select(t => t.Text); var verseData = string.Join(Environment.NewLine, values); From 35332bc127c9bda696395fb1744d04770fb16b92 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Mon, 13 Mar 2023 09:59:00 -0500 Subject: [PATCH 27/71] the same fix I did for reading source tokens and supporting the aberent case of a \va immediately after a \v not behaving the same way needed to be fixed in several other places also (the reading of target tokens and in the calculating of the data to write to the target project during 'Next' and 'Save Changes') --- .../BackTranslationHelperForm.cs | 8 +- .../TestBwdc/TestBwdc.csproj | 6 + ...eAndTargetWithVaOverride_TokensSource.json | 1032 +++ ...eAndTargetWithVaOverride_TokensTarget.json | 7059 +++++++++++++++++ ...rgetWithVaOverride_TokensTargetUpdate.json | 6973 ++++++++++++++++ ...AndTargetWithVaOverride_TranslatedText.txt | 7 + ...ndTargetWithVaOverride_VerseReference.json | 13 + ...dTargetWithVaOverride_VersesReference.json | 40 + .../TestBwdc/UnitTest_PtxBackTrHelper.cs | 4 +- 9 files changed, 15138 insertions(+), 4 deletions(-) create mode 100644 src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceAndTargetWithVaOverride/CombinedInSourceAndTargetWithVaOverride_TokensSource.json create mode 100644 src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceAndTargetWithVaOverride/CombinedInSourceAndTargetWithVaOverride_TokensTarget.json create mode 100644 src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceAndTargetWithVaOverride/CombinedInSourceAndTargetWithVaOverride_TokensTargetUpdate.json create mode 100644 src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceAndTargetWithVaOverride/CombinedInSourceAndTargetWithVaOverride_TranslatedText.txt create mode 100644 src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceAndTargetWithVaOverride/CombinedInSourceAndTargetWithVaOverride_VerseReference.json create mode 100644 src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceAndTargetWithVaOverride/CombinedInSourceAndTargetWithVaOverride_VersesReference.json diff --git a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs index e3da5243..e1253d5b 100644 --- a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs +++ b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs @@ -316,13 +316,13 @@ private string CurrentSourceData // marker, it's value for IsPublishableVernacular (false) and IsMetadata (true) are opposite from the other case. // So... if IsPubliableVernacular is false, at least check if this is that case, and return true, so we'll try to // translate it as the others are (bkz we only send IsPub text segments for translation) - private bool IsPublishableVernacular(IUSFMTextToken t, List<IUSFMToken> tokens) + private static bool IsPublishableVernacular(IUSFMTextToken t, List<IUSFMToken> tokens) { return t.IsPublishableVernacular || (PreviousToken(t, tokens, out IUSFMMarkerToken mt) && (mt.Marker == "va") && mt.IsMetadata); } - private bool PreviousToken(IUSFMTextToken t, List<IUSFMToken> tokens, out IUSFMMarkerToken previousToken) + private static bool PreviousToken(IUSFMTextToken t, List<IUSFMToken> tokens, out IUSFMMarkerToken previousToken) { var index = tokens.IndexOf(t) - 1; if ((index >= 0) && (index < tokens.Count) && (tokens[index] is IUSFMMarkerToken prevToken)) @@ -630,7 +630,9 @@ public static SortedDictionary<string, List<IUSFMToken>> CalculateTargetTokens(I foreach (var token in tokensTarget) { IUSFMToken updatedToken = token; - if ((token is IUSFMTextToken textToken) && textToken.IsPublishableVernacular && IsMatchingVerse((IVerseRef)textToken.VerseRef, verseReference)) + if ((token is IUSFMTextToken textToken) && + IsPublishableVernacular(textToken, tokensTarget) + && IsMatchingVerse((IVerseRef)textToken.VerseRef, verseReference)) { latestTextToken = new TextToken(textToken) { diff --git a/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj b/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj index 74191543..902c7ced 100644 --- a/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj +++ b/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj @@ -289,6 +289,7 @@ <Content Include="redist\Help\TECkit_Map_Plug-in_About_box.htm" /> <Content Include="TestFiles\BulkWordDocConverter\TestFile1.xml" /> <Content Include="TestFiles\BulkWordDocConverter\TestFile2.xml" /> + <EmbeddedResource Include="TestFiles\PtxBackTrHelper\CombinedInSourceAndTargetWithVaOverride\CombinedInSourceAndTargetWithVaOverride_TranslatedText.txt" /> <EmbeddedResource Include="TestFiles\PtxBackTrHelper\CombinedInSourceSeparateNoEmptyInTarget\CombinedInSourceSeparateNoEmptyInTarget_TranslatedText.txt" /> <EmbeddedResource Include="TestFiles\PtxBackTrHelper\SeparateInSourceCombinedButEmptyInTarget\SeparateInSourceCombinedButEmptyInTarget_TranslatedText.txt" /> <EmbeddedResource Include="TestFiles\PtxBackTrHelper\MultipleVersesWithFootnote\MultipleVersesWithFootnote_TranslatedText.txt" /> @@ -438,6 +439,11 @@ <EmbeddedResource Include="TestFiles\PtxBackTrHelper\CombinedInSourceSeparateNoEmptyInTarget\CombinedInSourceSeparateNoEmptyInTarget_TokensTargetUpdate.json" /> <EmbeddedResource Include="TestFiles\PtxBackTrHelper\CombinedInSourceSeparateNoEmptyInTarget\CombinedInSourceSeparateNoEmptyInTarget_VerseReference.json" /> <EmbeddedResource Include="TestFiles\PtxBackTrHelper\CombinedInSourceSeparateNoEmptyInTarget\CombinedInSourceSeparateNoEmptyInTarget_VersesReference.json" /> + <EmbeddedResource Include="TestFiles\PtxBackTrHelper\CombinedInSourceAndTargetWithVaOverride\CombinedInSourceAndTargetWithVaOverride_TokensSource.json" /> + <EmbeddedResource Include="TestFiles\PtxBackTrHelper\CombinedInSourceAndTargetWithVaOverride\CombinedInSourceAndTargetWithVaOverride_TokensTarget.json" /> + <EmbeddedResource Include="TestFiles\PtxBackTrHelper\CombinedInSourceAndTargetWithVaOverride\CombinedInSourceAndTargetWithVaOverride_TokensTargetUpdate.json" /> + <EmbeddedResource Include="TestFiles\PtxBackTrHelper\CombinedInSourceAndTargetWithVaOverride\CombinedInSourceAndTargetWithVaOverride_VerseReference.json" /> + <EmbeddedResource Include="TestFiles\PtxBackTrHelper\CombinedInSourceAndTargetWithVaOverride\CombinedInSourceAndTargetWithVaOverride_VersesReference.json" /> </ItemGroup> <ItemGroup /> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> diff --git a/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceAndTargetWithVaOverride/CombinedInSourceAndTargetWithVaOverride_TokensSource.json b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceAndTargetWithVaOverride/CombinedInSourceAndTargetWithVaOverride_TokensSource.json new file mode 100644 index 00000000..93a99b91 --- /dev/null +++ b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceAndTargetWithVaOverride/CombinedInSourceAndTargetWithVaOverride_TokensSource.json @@ -0,0 +1,1032 @@ +{ + "40_018_003": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "3-4", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "3-4", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "va", + "Attributes": [], + "Data": null, + "EndMarker": "va*", + "Token": { + "Type": 5, + "Marker": "va", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "va*", + "NestlessMarker": "va", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 7, + "IsSpecial": true, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": true, + "IsPublishableVernacular": false + }, + { + "Text": "3क", + "Token": { + "Type": 3, + "Marker": null, + "Text": "3क", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 11, + "IsSpecial": true, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": true, + "IsPublishableVernacular": false + }, + { + "Type": 6, + "Marker": "va*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "va*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "va*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 13, + "IsSpecial": true, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": true, + "IsPublishableVernacular": false + }, + { + "Text": " फिर कहा, ", + "Token": { + "Type": 3, + "Marker": null, + "Text": " फिर कहा, ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 17, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "va", + "Attributes": [], + "Data": null, + "EndMarker": "va*", + "Token": { + "Type": 5, + "Marker": "va", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "va*", + "NestlessMarker": "va", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 27, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "4", + "Token": { + "Type": 3, + "Marker": null, + "Text": "4", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 31, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "va*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "va*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "va*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 32, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " “मैं तà¥à¤®à¥â€à¤¹à¥‡à¤‚ सचà¥â€à¤šà¤¾à¤ˆ बताता हूठकि जो अपने आपको दीन बनाà¤à¤—ा, और इस बचà¥â€à¤šà¥‡ के समान साफ दिल बनेगा, वही परमेशà¥à¤µà¤° के राजà¥â€à¤¯ में सबसे बड़ा है। ", + "Token": { + "Type": 3, + "Marker": null, + "Text": " “मैं तà¥à¤®à¥â€à¤¹à¥‡à¤‚ सचà¥â€à¤šà¤¾à¤ˆ बताता हूठकि जो अपने आपको दीन बनाà¤à¤—ा, और इस बचà¥â€à¤šà¥‡ के समान साफ दिल बनेगा, वही परमेशà¥à¤µà¤° के राजà¥â€à¤¯ में सबसे बड़ा है। ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 36, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "va", + "Attributes": [], + "Data": null, + "EndMarker": "va*", + "Token": { + "Type": 5, + "Marker": "va", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "va*", + "NestlessMarker": "va", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 174, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "3ख", + "Token": { + "Type": 3, + "Marker": null, + "Text": "3ख", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 178, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "va*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "va*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "va*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 180, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " और जब तक तà¥à¤® à¤à¤¸à¤¾ नहीं करते हो, तब तक सà¥â€à¤µà¤°à¥à¤— के राजà¥â€à¤¯ में पà¥à¤°à¤µà¥‡à¤¶ नहीं कर सकते हो।†", + "Token": { + "Type": 3, + "Marker": null, + "Text": " और जब तक तà¥à¤® à¤à¤¸à¤¾ नहीं करते हो, तब तक सà¥â€à¤µà¤°à¥à¤— के राजà¥â€à¤¯ में पà¥à¤°à¤µà¥‡à¤¶ नहीं कर सकते हो।†", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 184, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 269, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "परख के विषय में शिकà¥à¤·à¤¾ ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "परख के विषय में शिकà¥à¤·à¤¾ ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 272, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 295, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ] +} \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceAndTargetWithVaOverride/CombinedInSourceAndTargetWithVaOverride_TokensTarget.json b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceAndTargetWithVaOverride/CombinedInSourceAndTargetWithVaOverride_TokensTarget.json new file mode 100644 index 00000000..5d0b6733 --- /dev/null +++ b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceAndTargetWithVaOverride/CombinedInSourceAndTargetWithVaOverride_TokensTarget.json @@ -0,0 +1,7059 @@ +{ + "40_018": { + "40_018_000": [ + { + "Type": 1, + "Marker": "c", + "Attributes": [], + "Data": "18", + "EndMarker": null, + "Token": { + "Type": 1, + "Marker": "c", + "Text": null, + "Attributes": null, + "Data": "18", + "EndMarker": null, + "NestlessMarker": "c", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 0, + "BBBCCCVVV": 40018000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 0, + "BBBCCCVVV": 40018000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Who Is the Greatest? ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Who Is the Greatest? ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 0, + "BBBCCCVVV": 40018000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 9, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 0, + "BBBCCCVVV": 40018000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 30, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_001": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "1", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "1", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 1, + "BBBCCCVVV": 40018001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "One day Jesus’ disciples asked Him, “Guru jii, who among us is the greatest in the kingdom of God?†", + "Token": { + "Type": 3, + "Marker": null, + "Text": "One day Jesus’ disciples asked Him, “Guru jii, who among us is the greatest in the kingdom of God?†", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 1, + "BBBCCCVVV": 40018001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_002": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "2", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "2", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 2, + "BBBCCCVVV": 40018002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "He called a child to Himself, and He placed him in their midst. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "He called a child to Himself, and He placed him in their midst. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 2, + "BBBCCCVVV": 40018002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 2, + "BBBCCCVVV": 40018002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 69, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_003-004": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "3-4", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "3-4", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "va", + "Attributes": [], + "Data": null, + "EndMarker": "va*", + "Token": { + "Type": 5, + "Marker": "va", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "va*", + "NestlessMarker": "va", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 7, + "IsSpecial": true, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": true, + "IsPublishableVernacular": false + }, + { + "Text": "3a", + "Token": { + "Type": 3, + "Marker": null, + "Text": "3a", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 11, + "IsSpecial": true, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": true, + "IsPublishableVernacular": false + }, + { + "Type": 6, + "Marker": "va*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "va*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "va*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 13, + "IsSpecial": true, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": true, + "IsPublishableVernacular": false + }, + { + "Text": " Then he said, ", + "Token": { + "Type": 3, + "Marker": null, + "Text": " Then he said, ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 17, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "va", + "Attributes": [], + "Data": null, + "EndMarker": "va*", + "Token": { + "Type": 5, + "Marker": "va", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "va*", + "NestlessMarker": "va", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 32, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "4", + "Token": { + "Type": 3, + "Marker": null, + "Text": "4", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 36, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "va*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "va*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "va*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 37, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " “I tell you the truth that whoever makes himself humble, and becomes clean-hearted like this child, is the greatest in the kingdom of God. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": " “I tell you the truth that whoever makes himself humble, and becomes clean-hearted like this child, is the greatest in the kingdom of God. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 41, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "va", + "Attributes": [], + "Data": null, + "EndMarker": "va*", + "Token": { + "Type": 5, + "Marker": "va", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "va*", + "NestlessMarker": "va", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 181, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "3b", + "Token": { + "Type": 3, + "Marker": null, + "Text": "3b", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 185, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "va*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "va*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "va*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 187, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " And until you make yourself like this, then you can’t enter the kingdom of heaven.†", + "Token": { + "Type": 3, + "Marker": null, + "Text": " And until you make yourself like this, then you can’t enter the kingdom of heaven.†", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 191, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 276, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Teaching about temptations ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Teaching about temptations ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 279, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 306, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_005": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "5", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "5", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 5, + "BBBCCCVVV": 40018005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Then Jesus said, “If you lovingly accept the ones who believe on me", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Then Jesus said, “If you lovingly accept the ones who believe on me", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 5, + "BBBCCCVVV": 40018005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 5, + "Marker": "f", + "Attributes": [], + "Data": "+", + "EndMarker": "f*", + "Token": { + "Type": 6, + "Marker": "f", + "Text": null, + "Attributes": null, + "Data": "+", + "EndMarker": "f*", + "NestlessMarker": "f", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 5, + "BBBCCCVVV": 40018005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 72, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fr", + "Attributes": [], + "Data": null, + "EndMarker": "fr*", + "Token": { + "Type": 5, + "Marker": "fr", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fr*", + "NestlessMarker": "fr", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 5, + "BBBCCCVVV": 40018005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 77, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "18:5 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "18:5 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 5, + "BBBCCCVVV": 40018005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 81, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fq", + "Attributes": [], + "Data": null, + "EndMarker": "fq*", + "Token": { + "Type": 5, + "Marker": "fq", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fq*", + "NestlessMarker": "fq", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 5, + "BBBCCCVVV": 40018005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 86, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "keeping-faith-on-me-ones ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "keeping-faith-on-me-ones ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 5, + "BBBCCCVVV": 40018005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 90, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "ft", + "Attributes": [], + "Data": null, + "EndMarker": "ft*", + "Token": { + "Type": 5, + "Marker": "ft", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "ft*", + "NestlessMarker": "ft", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 5, + "BBBCCCVVV": 40018005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 115, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "In the Greek language, “one such child†", + "Token": { + "Type": 3, + "Marker": null, + "Text": "In the Greek language, “one such child†", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 5, + "BBBCCCVVV": 40018005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 119, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "f*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "f*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "f*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 5, + "BBBCCCVVV": 40018005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 159, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " – regardless of who they are – then this means that you are lovingly accepting me. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": " – regardless of who they are – then this means that you are lovingly accepting me. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 5, + "BBBCCCVVV": 40018005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 162, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_006": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "6", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "6", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 6, + "BBBCCCVVV": 40018006, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "But if someone encourages anyone of these to sin, or tries to stop them from believing in me, then on judgement day his condition, woe, what could I tell... For him it would be better if a millstone was bound to his neck and be thrown into the ocean. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "But if someone encourages anyone of these to sin, or tries to stop them from believing in me, then on judgement day his condition, woe, what could I tell... For him it would be better if a millstone was bound to his neck and be thrown into the ocean. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 6, + "BBBCCCVVV": 40018006, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_007": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "7", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "7", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 7, + "BBBCCCVVV": 40018007, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Yes, woe to those people in this world who cause other people to sin and then put hurdles in their faith on me. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Yes, woe to those people in this world who cause other people to sin and then put hurdles in their faith on me. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 7, + "BBBCCCVVV": 40018007, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 7, + "BBBCCCVVV": 40018007, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 117, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Be that as it may, in this world temptations abound. But woe to the people, through whom these temptations come, then on judgement day their condition, woe, what could I say. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Be that as it may, in this world temptations abound. But woe to the people, through whom these temptations come, then on judgement day their condition, woe, what could I say. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 7, + "BBBCCCVVV": 40018007, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 120, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 7, + "BBBCCCVVV": 40018007, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 295, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_008": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "8", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "8", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 8, + "BBBCCCVVV": 40018008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "“For this reason, if your mind having caused sin by your hand or foot (you) are putting an obstacle in your faith, then cut it off and then throw it away. Going to the unending life of heaven having become one-handed or lame will be better than being thrown into the fire of hell with two hands and two feet! ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "“For this reason, if your mind having caused sin by your hand or foot (you) are putting an obstacle in your faith, then cut it off and then throw it away. Going to the unending life of heaven having become one-handed or lame will be better than being thrown into the fire of hell with two hands and two feet! ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 8, + "BBBCCCVVV": 40018008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_009": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "9", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "9", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 9, + "BBBCCCVVV": 40018009, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Like this, if your mind causes sin by your eyes, then take them out and throw away. Going into unending life blind will be better than being thrown into the fire of hell along with your eyes. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Like this, if your mind causes sin by your eyes, then take them out and throw away. Going into unending life blind will be better than being thrown into the fire of hell along with your eyes. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 9, + "BBBCCCVVV": 40018009, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 9, + "BBBCCCVVV": 40018009, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 197, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_010": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "10", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "10", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 10, + "BBBCCCVVV": 40018010, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "“I am telling you that those who have faith in me like children, their guardian angels are always near my Father God in heaven. For this reason, don’t consider any among them to be inferior. ⌊ ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "“I am telling you that those who have faith in me like children, their guardian angels are always near my Father God in heaven. For this reason, don’t consider any among them to be inferior. ⌊ ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 10, + "BBBCCCVVV": 40018010, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_011": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "11", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "11", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Look, the Son of Man has come to save such lost wandering ones.â€âŒ‹", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Look, the Son of Man has come to save such lost wandering ones.â€âŒ‹", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 5, + "Marker": "f", + "Attributes": [], + "Data": "+", + "EndMarker": "f*", + "Token": { + "Type": 6, + "Marker": "f", + "Text": null, + "Attributes": null, + "Data": "+", + "EndMarker": "f*", + "NestlessMarker": "f", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 71, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fr", + "Attributes": [], + "Data": null, + "EndMarker": "fr*", + "Token": { + "Type": 5, + "Marker": "fr", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fr*", + "NestlessMarker": "fr", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 76, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "18:11 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "18:11 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 80, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "ft", + "Attributes": [], + "Data": null, + "EndMarker": "ft*", + "Token": { + "Type": 5, + "Marker": "ft", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "ft*", + "NestlessMarker": "ft", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 86, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "This line was added in later books. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "This line was added in later books. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 90, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "f*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "f*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "f*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 126, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " ", + "Token": { + "Type": 3, + "Marker": null, + "Text": " ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 129, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 130, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "The parable of the lost sheep ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "The parable of the lost sheep ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 133, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "pc", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "pc", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "pc*", + "NestlessMarker": "pc", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 163, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Then Jesus wanted to explain to his disciples about how happy God becomes when even one wandering person repents of his sins. For this reason, he shared this parable. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Then Jesus wanted to explain to his disciples about how happy God becomes when even one wandering person repents of his sins. For this reason, he shared this parable. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 167, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 334, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_012": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "12", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "12", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 12, + "BBBCCCVVV": 40018012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Then Jesus said, “Suppose that someone had a hundred sheep, and if one of them was lost, would he leave the ninety-nine sheep and go to search for that one lost sheep, or not? He would definitely go! ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Then Jesus said, “Suppose that someone had a hundred sheep, and if one of them was lost, would he leave the ninety-nine sheep and go to search for that one lost sheep, or not? He would definitely go! ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 12, + "BBBCCCVVV": 40018012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 12, + "BBBCCCVVV": 40018012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 206, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_013": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "13", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "13", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 13, + "BBBCCCVVV": 40018013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "“And I tell you the truth that when he finds that sheep, then he becomes more happy about it than of the ninety-nine sheep that were not lost. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "“And I tell you the truth that when he finds that sheep, then he becomes more happy about it than of the ninety-nine sheep that were not lost. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 13, + "BBBCCCVVV": 40018013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_014": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "14", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "14", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 14, + "BBBCCCVVV": 40018014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "In this very way, Father God also wants that not even one of his devotees would fall away.†", + "Token": { + "Type": 3, + "Marker": null, + "Text": "In this very way, Father God also wants that not even one of his devotees would fall away.†", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 14, + "BBBCCCVVV": 40018014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 14, + "BBBCCCVVV": 40018014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 98, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "The method for correction ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "The method for correction ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 14, + "BBBCCCVVV": 40018014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 101, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 14, + "BBBCCCVVV": 40018014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 127, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_015": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "15", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "15", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 15, + "BBBCCCVVV": 40018015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Then Jesus said, “If anyone from the group does an evil deed or sins,", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Then Jesus said, “If anyone from the group does an evil deed or sins,", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 15, + "BBBCCCVVV": 40018015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 5, + "Marker": "f", + "Attributes": [], + "Data": "+", + "EndMarker": "f*", + "Token": { + "Type": 6, + "Marker": "f", + "Text": null, + "Attributes": null, + "Data": "+", + "EndMarker": "f*", + "NestlessMarker": "f", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 15, + "BBBCCCVVV": 40018015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 75, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fr", + "Attributes": [], + "Data": null, + "EndMarker": "fr*", + "Token": { + "Type": 5, + "Marker": "fr", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fr*", + "NestlessMarker": "fr", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 15, + "BBBCCCVVV": 40018015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 80, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "18:15 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "18:15 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 15, + "BBBCCCVVV": 40018015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 84, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fq", + "Attributes": [], + "Data": null, + "EndMarker": "fq*", + "Token": { + "Type": 5, + "Marker": "fq", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fq*", + "NestlessMarker": "fq", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 15, + "BBBCCCVVV": 40018015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 90, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "does evil acts or sins ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "does evil acts or sins ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 15, + "BBBCCCVVV": 40018015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 94, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "ft", + "Attributes": [], + "Data": null, + "EndMarker": "ft*", + "Token": { + "Type": 5, + "Marker": "ft", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "ft*", + "NestlessMarker": "ft", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 15, + "BBBCCCVVV": 40018015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 117, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "In some Greek manuscripts it is written here, “sins against youâ€. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "In some Greek manuscripts it is written here, “sins against youâ€. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 15, + "BBBCCCVVV": 40018015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 121, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "f*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "f*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "f*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 15, + "BBBCCCVVV": 40018015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 187, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " then take him aside alone and try to correct him. If he listens to you, then you have won his heart. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": " then take him aside alone and try to correct him. If he listens to you, then you have won his heart. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 15, + "BBBCCCVVV": 40018015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 190, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_016": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "16", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "16", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 16, + "BBBCCCVVV": 40018016, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "But if he doesn’t listen to you, then bring two or three people from the church, so that they may be witness of this thing that you tried to correct him. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "But if he doesn’t listen to you, then bring two or three people from the church, so that they may be witness of this thing that you tried to correct him. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 16, + "BBBCCCVVV": 40018016, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 16, + "BBBCCCVVV": 40018016, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 160, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_017": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "17", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "17", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 17, + "BBBCCCVVV": 40018017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "If he doesn’t listen to them also, then you tell it before the church. If he doesn’t listen to them, then excommunicate him from the church. Keep no relation with those who despite these steps don’t repent.", + "Token": { + "Type": 3, + "Marker": null, + "Text": "If he doesn’t listen to them also, then you tell it before the church. If he doesn’t listen to them, then excommunicate him from the church. Keep no relation with those who despite these steps don’t repent.", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 17, + "BBBCCCVVV": 40018017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 5, + "Marker": "f", + "Attributes": [], + "Data": "+", + "EndMarker": "f*", + "Token": { + "Type": 6, + "Marker": "f", + "Text": null, + "Attributes": null, + "Data": "+", + "EndMarker": "f*", + "NestlessMarker": "f", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 17, + "BBBCCCVVV": 40018017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 212, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fr", + "Attributes": [], + "Data": null, + "EndMarker": "fr*", + "Token": { + "Type": 5, + "Marker": "fr", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fr*", + "NestlessMarker": "fr", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 17, + "BBBCCCVVV": 40018017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 217, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "18:17 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "18:17 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 17, + "BBBCCCVVV": 40018017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 221, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fq", + "Attributes": [], + "Data": null, + "EndMarker": "fq*", + "Token": { + "Type": 5, + "Marker": "fq", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fq*", + "NestlessMarker": "fq", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 17, + "BBBCCCVVV": 40018017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 227, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "despite these steps don’t repent ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "despite these steps don’t repent ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 17, + "BBBCCCVVV": 40018017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 231, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "ft", + "Attributes": [], + "Data": null, + "EndMarker": "ft*", + "Token": { + "Type": 5, + "Marker": "ft", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "ft*", + "NestlessMarker": "ft", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 17, + "BBBCCCVVV": 40018017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 264, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "In Greek language, “Gentiles and road.tax takers†", + "Token": { + "Type": 3, + "Marker": null, + "Text": "In Greek language, “Gentiles and road.tax takers†", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 17, + "BBBCCCVVV": 40018017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 268, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "f*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "f*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "f*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 17, + "BBBCCCVVV": 40018017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 318, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " ", + "Token": { + "Type": 3, + "Marker": null, + "Text": " ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 17, + "BBBCCCVVV": 40018017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 321, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 17, + "BBBCCCVVV": 40018017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 322, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_018": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "18", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "18", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "“Bind this thing in your knot: the key of authority of God’s kingdom which you have being in the group of believers,", + "Token": { + "Type": 3, + "Marker": null, + "Text": "“Bind this thing in your knot: the key of authority of God’s kingdom which you have being in the group of believers,", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 5, + "Marker": "x", + "Attributes": [], + "Data": "+", + "EndMarker": "x*", + "Token": { + "Type": 6, + "Marker": "x", + "Text": null, + "Attributes": null, + "Data": "+", + "EndMarker": "x*", + "NestlessMarker": "x", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 122, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "xo", + "Attributes": [], + "Data": null, + "EndMarker": "xo*", + "Token": { + "Type": 5, + "Marker": "xo", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "xo*", + "NestlessMarker": "xo", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 127, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "18.18 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "18.18 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 131, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "xt", + "Attributes": [], + "Data": null, + "EndMarker": "xt*", + "Token": { + "Type": 5, + "Marker": "xt", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "xt*", + "NestlessMarker": "xt", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 137, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Matt 16:19 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Matt 16:19 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 141, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "x*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "x*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "x*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 152, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " with that whatever you lock with that key on earth, God will have already locked", + "Token": { + "Type": 3, + "Marker": null, + "Text": " with that whatever you lock with that key on earth, God will have already locked", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 155, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 5, + "Marker": "f", + "Attributes": [], + "Data": "+", + "EndMarker": "f*", + "Token": { + "Type": 6, + "Marker": "f", + "Text": null, + "Attributes": null, + "Data": "+", + "EndMarker": "f*", + "NestlessMarker": "f", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 236, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fr", + "Attributes": [], + "Data": null, + "EndMarker": "fr*", + "Token": { + "Type": 5, + "Marker": "fr", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fr*", + "NestlessMarker": "fr", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 241, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "18:18 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "18:18 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 245, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fq", + "Attributes": [], + "Data": null, + "EndMarker": "fq*", + "Token": { + "Type": 5, + "Marker": "fq", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fq*", + "NestlessMarker": "fq", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 251, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "will have already closed ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "will have already closed ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 255, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "ft", + "Attributes": [], + "Data": null, + "EndMarker": "ft*", + "Token": { + "Type": 5, + "Marker": "ft", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "ft*", + "NestlessMarker": "ft", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 280, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "In the Greek language, the construction of this sentence shows that God has already done this thing from heaven beforehand. The sentence below, \"will have already opened\" also has this form. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "In the Greek language, the construction of this sentence shows that God has already done this thing from heaven beforehand. The sentence below, \"will have already opened\" also has this form. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 284, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "f*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "f*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "f*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 475, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " them from heaven. And whatever that you unlock in this earth, God will have already unlocked them from heaven. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": " them from heaven. And whatever that you unlock in this earth, God will have already unlocked them from heaven. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 478, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 590, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_019-020": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "19-20", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "19-20", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 19, + "BBBCCCVVV": 40018019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 19, + "BBBCCCVVV": 40018019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 20, + "BBBCCCVVV": 40018020, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "“I say to you, wherever two people gather together in my name, I am with them. For this reason, if two people, having become agreed, pray about something, then whatever you ask for from my Father God in heaven, that God will fulfill.†", + "Token": { + "Type": 3, + "Marker": null, + "Text": "“I say to you, wherever two people gather together in my name, I am with them. For this reason, if two people, having become agreed, pray about something, then whatever you ask for from my Father God in heaven, that God will fulfill.†", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 19, + "BBBCCCVVV": 40018019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 19, + "BBBCCCVVV": 40018019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 20, + "BBBCCCVVV": 40018020, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 9, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 19, + "BBBCCCVVV": 40018019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 19, + "BBBCCCVVV": 40018019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 20, + "BBBCCCVVV": 40018020, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 244, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "How many times we should forgive? ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "How many times we should forgive? ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 19, + "BBBCCCVVV": 40018019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 19, + "BBBCCCVVV": 40018019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 20, + "BBBCCCVVV": 40018020, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 247, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 19, + "BBBCCCVVV": 40018019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 19, + "BBBCCCVVV": 40018019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 20, + "BBBCCCVVV": 40018020, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 281, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_021": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "21", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "21", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 21, + "BBBCCCVVV": 40018021, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Then Peter came to Jesus and asked, “Lord, if someone were to do some wrong to me, then how many times should I forgive him? Is seven times enough? ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Then Peter came to Jesus and asked, “Lord, if someone were to do some wrong to me, then how many times should I forgive him? Is seven times enough? ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 21, + "BBBCCCVVV": 40018021, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_022": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "22", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "22", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Jesus replied, “Not seven times, but rather I tell you that you should forgive seventy-seven times.†", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Jesus replied, “Not seven times, but rather I tell you that you should forgive seventy-seven times.†", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 5, + "Marker": "f", + "Attributes": [], + "Data": "+", + "EndMarker": "f*", + "Token": { + "Type": 6, + "Marker": "f", + "Text": null, + "Attributes": null, + "Data": "+", + "EndMarker": "f*", + "NestlessMarker": "f", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 107, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fr", + "Attributes": [], + "Data": null, + "EndMarker": "fr*", + "Token": { + "Type": 5, + "Marker": "fr", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fr*", + "NestlessMarker": "fr", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 112, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "18:22 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "18:22 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 116, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fq", + "Attributes": [], + "Data": null, + "EndMarker": "fq*", + "Token": { + "Type": 5, + "Marker": "fq", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fq*", + "NestlessMarker": "fq", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 122, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "seventy-seven times ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "seventy-seven times ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 126, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "ft", + "Attributes": [], + "Data": null, + "EndMarker": "ft*", + "Token": { + "Type": 5, + "Marker": "ft", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "ft*", + "NestlessMarker": "ft", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 146, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Or \"more than even seven times seventy\". This is a Hebrew idiom, which means ‘unlimited number of time.’. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Or \"more than even seven times seventy\". This is a Hebrew idiom, which means ‘unlimited number of time.’. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 150, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "f*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "f*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "f*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 256, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " ", + "Token": { + "Type": 3, + "Marker": null, + "Text": " ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 259, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 260, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "The parable of asking for and giving forgiveness ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "The parable of asking for and giving forgiveness ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 263, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 312, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_023": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "23", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "23", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 23, + "BBBCCCVVV": 40018023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "“For this reason, what forgiving is in the view of God can be understood through this parable: There was a king. He wanted to settle accounts with his servants, to whom he had given loans. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "“For this reason, what forgiving is in the view of God can be understood through this parable: There was a king. He wanted to settle accounts with his servants, to whom he had given loans. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 23, + "BBBCCCVVV": 40018023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 23, + "BBBCCCVVV": 40018023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 195, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_024": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "24", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "24", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 24, + "BBBCCCVVV": 40018024, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "When he began to take the account sheets, then one such debtor was presented before him who owed him several crore rupees. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "When he began to take the account sheets, then one such debtor was presented before him who owed him several crore rupees. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 24, + "BBBCCCVVV": 40018024, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_025": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "25", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "25", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 25, + "BBBCCCVVV": 40018025, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "But he had no resources to pay back the money. So the king gave this command, ‘Let his wife, children and everything he has be sold to repay the debt.’ ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "But he had no resources to pay back the money. So the king gave this command, ‘Let his wife, children and everything he has be sold to repay the debt.’ ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 25, + "BBBCCCVVV": 40018025, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 25, + "BBBCCCVVV": 40018025, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 158, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_026": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "26", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "26", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 26, + "BBBCCCVVV": 40018026, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "“Then that debtor fell at the king’s feet and begged, ‘Sir, please give me more time, I will repay it little by little.’ ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "“Then that debtor fell at the king’s feet and begged, ‘Sir, please give me more time, I will repay it little by little.’ ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 26, + "BBBCCCVVV": 40018026, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_027": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "27", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "27", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 27, + "BBBCCCVVV": 40018027, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "That king had so much compassion on him that he forgave his entire debt and said, ‘Now you may go.’ ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "That king had so much compassion on him that he forgave his entire debt and said, ‘Now you may go.’ ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 27, + "BBBCCCVVV": 40018027, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 27, + "BBBCCCVVV": 40018027, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 106, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_028": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "28", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "28", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 28, + "BBBCCCVVV": 40018028, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "“When he went out, he met another servant of the king, to whom the forgiven servant had given a loan of a some rupees. But he grabbed him by the throat and said, ‘You pay back my loan right now!’ ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "“When he went out, he met another servant of the king, to whom the forgiven servant had given a loan of a some rupees. But he grabbed him by the throat and said, ‘You pay back my loan right now!’ ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 28, + "BBBCCCVVV": 40018028, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 28, + "BBBCCCVVV": 40018028, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 202, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_029": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "29", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "29", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 29, + "BBBCCCVVV": 40018029, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "“He fell down at his feet and begged, ‘Sir, please give me some time, I will pay it back little by little.’ ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "“He fell down at his feet and begged, ‘Sir, please give me some time, I will pay it back little by little.’ ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 29, + "BBBCCCVVV": 40018029, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_030": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "30", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "30", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 30, + "BBBCCCVVV": 40018030, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "But his fellow servant didn’t accept his proposal. And he had him thrown into jail, and said, ‘You will rot here until fully repaying the loan.’ ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "But his fellow servant didn’t accept his proposal. And he had him thrown into jail, and said, ‘You will rot here until fully repaying the loan.’ ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 30, + "BBBCCCVVV": 40018030, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 30, + "BBBCCCVVV": 40018030, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 151, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_031": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "31", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "31", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 31, + "BBBCCCVVV": 40018031, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "“But there were other servants of the king who saw this and became very distressed. And they went and told the king what had happened. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "“But there were other servants of the king who saw this and became very distressed. And they went and told the king what had happened. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 31, + "BBBCCCVVV": 40018031, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_032": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "32", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "32", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 32, + "BBBCCCVVV": 40018032, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "So the king called that unmerciful servant and said, ‘O evil fool, you requested of me, and I forgave your entire debt. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "So the king called that unmerciful servant and said, ‘O evil fool, you requested of me, and I forgave your entire debt. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 32, + "BBBCCCVVV": 40018032, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_033": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "33", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "33", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 33, + "BBBCCCVVV": 40018033, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "So, if I could have so much mercy on you, shouldn’t you have had mercy on your debtor also?’ ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "So, if I could have so much mercy on you, shouldn’t you have had mercy on your debtor also?’ ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 33, + "BBBCCCVVV": 40018033, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 33, + "BBBCCCVVV": 40018033, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 99, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_034": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "34", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "34", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 34, + "BBBCCCVVV": 40018034, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "“The king was so angry with him that he gave him this punishment, ‘He is to rot in jail, until he has repaid the whole debt. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "“The king was so angry with him that he gave him this punishment, ‘He is to rot in jail, until he has repaid the whole debt. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 34, + "BBBCCCVVV": 40018034, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_035": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "35", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "35", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 35, + "BBBCCCVVV": 40018035, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Like this, if someone asks forgiveness from you, but you don’t forgive them with a full heart, then your Father God in heaven will also do to you.†", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Like this, if someone asks forgiveness from you, but you don’t forgive them with a full heart, then your Father God in heaven will also do to you.†", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 35, + "BBBCCCVVV": 40018035, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ] + } +} \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceAndTargetWithVaOverride/CombinedInSourceAndTargetWithVaOverride_TokensTargetUpdate.json b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceAndTargetWithVaOverride/CombinedInSourceAndTargetWithVaOverride_TokensTargetUpdate.json new file mode 100644 index 00000000..c0c4801d --- /dev/null +++ b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceAndTargetWithVaOverride/CombinedInSourceAndTargetWithVaOverride_TokensTargetUpdate.json @@ -0,0 +1,6973 @@ +{ + "40_018_000": [ + { + "Type": 1, + "Marker": "c", + "Attributes": [], + "Data": "18", + "EndMarker": null, + "Token": { + "Type": 1, + "Marker": "c", + "Text": null, + "Attributes": null, + "Data": "18", + "EndMarker": null, + "NestlessMarker": "c", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 0, + "BBBCCCVVV": 40018000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 0, + "BBBCCCVVV": 40018000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Who Is the Greatest? ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Who Is the Greatest? ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 0, + "BBBCCCVVV": 40018000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 9, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 0, + "BBBCCCVVV": 40018000, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 30, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_001": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "1", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "1", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 1, + "BBBCCCVVV": 40018001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "One day Jesus’ disciples asked Him, “Guru jii, who among us is the greatest in the kingdom of God?†", + "Token": { + "Type": 3, + "Marker": null, + "Text": "One day Jesus’ disciples asked Him, “Guru jii, who among us is the greatest in the kingdom of God?†", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 1, + "BBBCCCVVV": 40018001, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_002": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "2", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "2", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 2, + "BBBCCCVVV": 40018002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "He called a child to Himself, and He placed him in their midst. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "He called a child to Himself, and He placed him in their midst. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 2, + "BBBCCCVVV": 40018002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 2, + "BBBCCCVVV": 40018002, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 69, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_003-004": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "3-4", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "3-4", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "va", + "Attributes": [], + "Data": null, + "EndMarker": "va*", + "Token": { + "Type": 5, + "Marker": "va", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "va*", + "NestlessMarker": "va", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 7, + "IsSpecial": true, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": true, + "IsPublishableVernacular": false + }, + { + "Text": "3a", + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 11, + "IsSpecial": true, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": true, + "IsPublishableVernacular": false + }, + { + "Type": 6, + "Marker": "va*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "va*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "va*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 13, + "IsSpecial": true, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": true, + "IsPublishableVernacular": false + }, + { + "Text": " Then He said, ", + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 17, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "va", + "Attributes": [], + "Data": null, + "EndMarker": "va*", + "Token": { + "Type": 5, + "Marker": "va", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "va*", + "NestlessMarker": "va", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 27, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "4", + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 31, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "va*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "va*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "va*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 32, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " “I tell you the truth, whoever humbles himself and has a pure heart like this child will be the greatest in God’s kingdom. ", + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 36, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "va", + "Attributes": [], + "Data": null, + "EndMarker": "va*", + "Token": { + "Type": 5, + "Marker": "va", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "va*", + "NestlessMarker": "va", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 174, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "3b", + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 178, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "va*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "va*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "va*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 180, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " And unless you do this, you cannot enter the kingdom of heaven.†", + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 184, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 269, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Teaching About Temptation ", + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 272, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 295, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_005": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "5", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "5", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 5, + "BBBCCCVVV": 40018005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Then Jesus said, “If you lovingly accept the ones who believe on me", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Then Jesus said, “If you lovingly accept the ones who believe on me", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 5, + "BBBCCCVVV": 40018005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 5, + "Marker": "f", + "Attributes": [], + "Data": "+", + "EndMarker": "f*", + "Token": { + "Type": 6, + "Marker": "f", + "Text": null, + "Attributes": null, + "Data": "+", + "EndMarker": "f*", + "NestlessMarker": "f", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 5, + "BBBCCCVVV": 40018005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 72, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fr", + "Attributes": [], + "Data": null, + "EndMarker": "fr*", + "Token": { + "Type": 5, + "Marker": "fr", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fr*", + "NestlessMarker": "fr", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 5, + "BBBCCCVVV": 40018005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 77, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "18:5 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "18:5 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 5, + "BBBCCCVVV": 40018005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 81, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fq", + "Attributes": [], + "Data": null, + "EndMarker": "fq*", + "Token": { + "Type": 5, + "Marker": "fq", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fq*", + "NestlessMarker": "fq", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 5, + "BBBCCCVVV": 40018005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 86, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "keeping-faith-on-me-ones ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "keeping-faith-on-me-ones ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 5, + "BBBCCCVVV": 40018005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 90, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "ft", + "Attributes": [], + "Data": null, + "EndMarker": "ft*", + "Token": { + "Type": 5, + "Marker": "ft", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "ft*", + "NestlessMarker": "ft", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 5, + "BBBCCCVVV": 40018005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 115, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "In the Greek language, “one such child†", + "Token": { + "Type": 3, + "Marker": null, + "Text": "In the Greek language, “one such child†", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 5, + "BBBCCCVVV": 40018005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 119, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "f*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "f*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "f*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 5, + "BBBCCCVVV": 40018005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 159, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " – regardless of who they are – then this means that you are lovingly accepting me. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": " – regardless of who they are – then this means that you are lovingly accepting me. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 5, + "BBBCCCVVV": 40018005, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 162, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_006": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "6", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "6", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 6, + "BBBCCCVVV": 40018006, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "But if someone encourages anyone of these to sin, or tries to stop them from believing in me, then on judgement day his condition, woe, what could I tell... For him it would be better if a millstone was bound to his neck and be thrown into the ocean. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "But if someone encourages anyone of these to sin, or tries to stop them from believing in me, then on judgement day his condition, woe, what could I tell... For him it would be better if a millstone was bound to his neck and be thrown into the ocean. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 6, + "BBBCCCVVV": 40018006, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_007": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "7", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "7", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 7, + "BBBCCCVVV": 40018007, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Yes, woe to those people in this world who cause other people to sin and then put hurdles in their faith on me. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Yes, woe to those people in this world who cause other people to sin and then put hurdles in their faith on me. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 7, + "BBBCCCVVV": 40018007, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 7, + "BBBCCCVVV": 40018007, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 117, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Be that as it may, in this world temptations abound. But woe to the people, through whom these temptations come, then on judgement day their condition, woe, what could I say. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Be that as it may, in this world temptations abound. But woe to the people, through whom these temptations come, then on judgement day their condition, woe, what could I say. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 7, + "BBBCCCVVV": 40018007, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 120, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 7, + "BBBCCCVVV": 40018007, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 295, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_008": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "8", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "8", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 8, + "BBBCCCVVV": 40018008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "“For this reason, if your mind having caused sin by your hand or foot (you) are putting an obstacle in your faith, then cut it off and then throw it away. Going to the unending life of heaven having become one-handed or lame will be better than being thrown into the fire of hell with two hands and two feet! ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "“For this reason, if your mind having caused sin by your hand or foot (you) are putting an obstacle in your faith, then cut it off and then throw it away. Going to the unending life of heaven having become one-handed or lame will be better than being thrown into the fire of hell with two hands and two feet! ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 8, + "BBBCCCVVV": 40018008, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_009": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "9", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "9", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 9, + "BBBCCCVVV": 40018009, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Like this, if your mind causes sin by your eyes, then take them out and throw away. Going into unending life blind will be better than being thrown into the fire of hell along with your eyes. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Like this, if your mind causes sin by your eyes, then take them out and throw away. Going into unending life blind will be better than being thrown into the fire of hell along with your eyes. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 9, + "BBBCCCVVV": 40018009, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 5, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 9, + "BBBCCCVVV": 40018009, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 197, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_010": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "10", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "10", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 10, + "BBBCCCVVV": 40018010, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "“I am telling you that those who have faith in me like children, their guardian angels are always near my Father God in heaven. For this reason, don’t consider any among them to be inferior. ⌊ ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "“I am telling you that those who have faith in me like children, their guardian angels are always near my Father God in heaven. For this reason, don’t consider any among them to be inferior. ⌊ ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 10, + "BBBCCCVVV": 40018010, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_011": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "11", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "11", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Look, the Son of Man has come to save such lost wandering ones.â€âŒ‹", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Look, the Son of Man has come to save such lost wandering ones.â€âŒ‹", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 5, + "Marker": "f", + "Attributes": [], + "Data": "+", + "EndMarker": "f*", + "Token": { + "Type": 6, + "Marker": "f", + "Text": null, + "Attributes": null, + "Data": "+", + "EndMarker": "f*", + "NestlessMarker": "f", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 71, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fr", + "Attributes": [], + "Data": null, + "EndMarker": "fr*", + "Token": { + "Type": 5, + "Marker": "fr", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fr*", + "NestlessMarker": "fr", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 76, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "18:11 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "18:11 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 80, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "ft", + "Attributes": [], + "Data": null, + "EndMarker": "ft*", + "Token": { + "Type": 5, + "Marker": "ft", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "ft*", + "NestlessMarker": "ft", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 86, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "This line was added in later books. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "This line was added in later books. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 90, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "f*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "f*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "f*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 126, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " ", + "Token": { + "Type": 3, + "Marker": null, + "Text": " ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 129, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 130, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "The parable of the lost sheep ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "The parable of the lost sheep ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 133, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "pc", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "pc", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "pc*", + "NestlessMarker": "pc", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 163, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Then Jesus wanted to explain to his disciples about how happy God becomes when even one wandering person repents of his sins. For this reason, he shared this parable. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Then Jesus wanted to explain to his disciples about how happy God becomes when even one wandering person repents of his sins. For this reason, he shared this parable. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 167, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 11, + "BBBCCCVVV": 40018011, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 334, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_012": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "12", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "12", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 12, + "BBBCCCVVV": 40018012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Then Jesus said, “Suppose that someone had a hundred sheep, and if one of them was lost, would he leave the ninety-nine sheep and go to search for that one lost sheep, or not? He would definitely go! ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Then Jesus said, “Suppose that someone had a hundred sheep, and if one of them was lost, would he leave the ninety-nine sheep and go to search for that one lost sheep, or not? He would definitely go! ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 12, + "BBBCCCVVV": 40018012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 12, + "BBBCCCVVV": 40018012, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 206, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_013": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "13", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "13", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 13, + "BBBCCCVVV": 40018013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "“And I tell you the truth that when he finds that sheep, then he becomes more happy about it than of the ninety-nine sheep that were not lost. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "“And I tell you the truth that when he finds that sheep, then he becomes more happy about it than of the ninety-nine sheep that were not lost. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 13, + "BBBCCCVVV": 40018013, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_014": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "14", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "14", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 14, + "BBBCCCVVV": 40018014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "In this very way, Father God also wants that not even one of his devotees would fall away.†", + "Token": { + "Type": 3, + "Marker": null, + "Text": "In this very way, Father God also wants that not even one of his devotees would fall away.†", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 14, + "BBBCCCVVV": 40018014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 14, + "BBBCCCVVV": 40018014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 98, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "The method for correction ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "The method for correction ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 14, + "BBBCCCVVV": 40018014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 101, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 14, + "BBBCCCVVV": 40018014, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 127, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_015": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "15", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "15", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 15, + "BBBCCCVVV": 40018015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Then Jesus said, “If anyone from the group does an evil deed or sins,", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Then Jesus said, “If anyone from the group does an evil deed or sins,", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 15, + "BBBCCCVVV": 40018015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 5, + "Marker": "f", + "Attributes": [], + "Data": "+", + "EndMarker": "f*", + "Token": { + "Type": 6, + "Marker": "f", + "Text": null, + "Attributes": null, + "Data": "+", + "EndMarker": "f*", + "NestlessMarker": "f", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 15, + "BBBCCCVVV": 40018015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 75, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fr", + "Attributes": [], + "Data": null, + "EndMarker": "fr*", + "Token": { + "Type": 5, + "Marker": "fr", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fr*", + "NestlessMarker": "fr", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 15, + "BBBCCCVVV": 40018015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 80, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "18:15 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "18:15 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 15, + "BBBCCCVVV": 40018015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 84, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fq", + "Attributes": [], + "Data": null, + "EndMarker": "fq*", + "Token": { + "Type": 5, + "Marker": "fq", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fq*", + "NestlessMarker": "fq", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 15, + "BBBCCCVVV": 40018015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 90, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "does evil acts or sins ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "does evil acts or sins ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 15, + "BBBCCCVVV": 40018015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 94, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "ft", + "Attributes": [], + "Data": null, + "EndMarker": "ft*", + "Token": { + "Type": 5, + "Marker": "ft", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "ft*", + "NestlessMarker": "ft", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 15, + "BBBCCCVVV": 40018015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 117, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "In some Greek manuscripts it is written here, “sins against youâ€. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "In some Greek manuscripts it is written here, “sins against youâ€. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 15, + "BBBCCCVVV": 40018015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 121, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "f*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "f*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "f*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 15, + "BBBCCCVVV": 40018015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 187, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " then take him aside alone and try to correct him. If he listens to you, then you have won his heart. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": " then take him aside alone and try to correct him. If he listens to you, then you have won his heart. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 15, + "BBBCCCVVV": 40018015, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 190, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_016": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "16", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "16", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 16, + "BBBCCCVVV": 40018016, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "But if he doesn’t listen to you, then bring two or three people from the church, so that they may be witness of this thing that you tried to correct him. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "But if he doesn’t listen to you, then bring two or three people from the church, so that they may be witness of this thing that you tried to correct him. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 16, + "BBBCCCVVV": 40018016, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 16, + "BBBCCCVVV": 40018016, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 160, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_017": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "17", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "17", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 17, + "BBBCCCVVV": 40018017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "If he doesn’t listen to them also, then you tell it before the church. If he doesn’t listen to them, then excommunicate him from the church. Keep no relation with those who despite these steps don’t repent.", + "Token": { + "Type": 3, + "Marker": null, + "Text": "If he doesn’t listen to them also, then you tell it before the church. If he doesn’t listen to them, then excommunicate him from the church. Keep no relation with those who despite these steps don’t repent.", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 17, + "BBBCCCVVV": 40018017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 5, + "Marker": "f", + "Attributes": [], + "Data": "+", + "EndMarker": "f*", + "Token": { + "Type": 6, + "Marker": "f", + "Text": null, + "Attributes": null, + "Data": "+", + "EndMarker": "f*", + "NestlessMarker": "f", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 17, + "BBBCCCVVV": 40018017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 212, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fr", + "Attributes": [], + "Data": null, + "EndMarker": "fr*", + "Token": { + "Type": 5, + "Marker": "fr", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fr*", + "NestlessMarker": "fr", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 17, + "BBBCCCVVV": 40018017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 217, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "18:17 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "18:17 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 17, + "BBBCCCVVV": 40018017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 221, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fq", + "Attributes": [], + "Data": null, + "EndMarker": "fq*", + "Token": { + "Type": 5, + "Marker": "fq", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fq*", + "NestlessMarker": "fq", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 17, + "BBBCCCVVV": 40018017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 227, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "despite these steps don’t repent ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "despite these steps don’t repent ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 17, + "BBBCCCVVV": 40018017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 231, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "ft", + "Attributes": [], + "Data": null, + "EndMarker": "ft*", + "Token": { + "Type": 5, + "Marker": "ft", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "ft*", + "NestlessMarker": "ft", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 17, + "BBBCCCVVV": 40018017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 264, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "In Greek language, “Gentiles and road.tax takers†", + "Token": { + "Type": 3, + "Marker": null, + "Text": "In Greek language, “Gentiles and road.tax takers†", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 17, + "BBBCCCVVV": 40018017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 268, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "f*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "f*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "f*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 17, + "BBBCCCVVV": 40018017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 318, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " ", + "Token": { + "Type": 3, + "Marker": null, + "Text": " ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 17, + "BBBCCCVVV": 40018017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 321, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 17, + "BBBCCCVVV": 40018017, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 322, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_018": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "18", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "18", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "“Bind this thing in your knot: the key of authority of God’s kingdom which you have being in the group of believers,", + "Token": { + "Type": 3, + "Marker": null, + "Text": "“Bind this thing in your knot: the key of authority of God’s kingdom which you have being in the group of believers,", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 5, + "Marker": "x", + "Attributes": [], + "Data": "+", + "EndMarker": "x*", + "Token": { + "Type": 6, + "Marker": "x", + "Text": null, + "Attributes": null, + "Data": "+", + "EndMarker": "x*", + "NestlessMarker": "x", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 122, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "xo", + "Attributes": [], + "Data": null, + "EndMarker": "xo*", + "Token": { + "Type": 5, + "Marker": "xo", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "xo*", + "NestlessMarker": "xo", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 127, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "18.18 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "18.18 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 131, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "xt", + "Attributes": [], + "Data": null, + "EndMarker": "xt*", + "Token": { + "Type": 5, + "Marker": "xt", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "xt*", + "NestlessMarker": "xt", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 137, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Matt 16:19 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Matt 16:19 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 141, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "x*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "x*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "x*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 152, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " with that whatever you lock with that key on earth, God will have already locked", + "Token": { + "Type": 3, + "Marker": null, + "Text": " with that whatever you lock with that key on earth, God will have already locked", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 155, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 5, + "Marker": "f", + "Attributes": [], + "Data": "+", + "EndMarker": "f*", + "Token": { + "Type": 6, + "Marker": "f", + "Text": null, + "Attributes": null, + "Data": "+", + "EndMarker": "f*", + "NestlessMarker": "f", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 236, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fr", + "Attributes": [], + "Data": null, + "EndMarker": "fr*", + "Token": { + "Type": 5, + "Marker": "fr", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fr*", + "NestlessMarker": "fr", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 241, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "18:18 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "18:18 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 245, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fq", + "Attributes": [], + "Data": null, + "EndMarker": "fq*", + "Token": { + "Type": 5, + "Marker": "fq", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fq*", + "NestlessMarker": "fq", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 251, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "will have already closed ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "will have already closed ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 255, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "ft", + "Attributes": [], + "Data": null, + "EndMarker": "ft*", + "Token": { + "Type": 5, + "Marker": "ft", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "ft*", + "NestlessMarker": "ft", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 280, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "In the Greek language, the construction of this sentence shows that God has already done this thing from heaven beforehand. The sentence below, \"will have already opened\" also has this form. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "In the Greek language, the construction of this sentence shows that God has already done this thing from heaven beforehand. The sentence below, \"will have already opened\" also has this form. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 284, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "f*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "f*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "f*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 475, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " them from heaven. And whatever that you unlock in this earth, God will have already unlocked them from heaven. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": " them from heaven. And whatever that you unlock in this earth, God will have already unlocked them from heaven. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 478, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 18, + "BBBCCCVVV": 40018018, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 590, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_019-020": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "19-20", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "19-20", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 19, + "BBBCCCVVV": 40018019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 19, + "BBBCCCVVV": 40018019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 20, + "BBBCCCVVV": 40018020, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "“I say to you, wherever two people gather together in my name, I am with them. For this reason, if two people, having become agreed, pray about something, then whatever you ask for from my Father God in heaven, that God will fulfill.†", + "Token": { + "Type": 3, + "Marker": null, + "Text": "“I say to you, wherever two people gather together in my name, I am with them. For this reason, if two people, having become agreed, pray about something, then whatever you ask for from my Father God in heaven, that God will fulfill.†", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 19, + "BBBCCCVVV": 40018019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 19, + "BBBCCCVVV": 40018019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 20, + "BBBCCCVVV": 40018020, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 9, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 19, + "BBBCCCVVV": 40018019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 19, + "BBBCCCVVV": 40018019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 20, + "BBBCCCVVV": 40018020, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 244, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "How many times we should forgive? ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "How many times we should forgive? ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 19, + "BBBCCCVVV": 40018019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 19, + "BBBCCCVVV": 40018019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 20, + "BBBCCCVVV": 40018020, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 247, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 19, + "BBBCCCVVV": 40018019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 19, + "BBBCCCVVV": 40018019, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 20, + "BBBCCCVVV": 40018020, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] + }, + "VerseOffset": 281, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_021": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "21", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "21", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 21, + "BBBCCCVVV": 40018021, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Then Peter came to Jesus and asked, “Lord, if someone were to do some wrong to me, then how many times should I forgive him? Is seven times enough? ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Then Peter came to Jesus and asked, “Lord, if someone were to do some wrong to me, then how many times should I forgive him? Is seven times enough? ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 21, + "BBBCCCVVV": 40018021, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_022": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "22", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "22", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Jesus replied, “Not seven times, but rather I tell you that you should forgive seventy-seven times.†", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Jesus replied, “Not seven times, but rather I tell you that you should forgive seventy-seven times.†", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 5, + "Marker": "f", + "Attributes": [], + "Data": "+", + "EndMarker": "f*", + "Token": { + "Type": 6, + "Marker": "f", + "Text": null, + "Attributes": null, + "Data": "+", + "EndMarker": "f*", + "NestlessMarker": "f", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 107, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fr", + "Attributes": [], + "Data": null, + "EndMarker": "fr*", + "Token": { + "Type": 5, + "Marker": "fr", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fr*", + "NestlessMarker": "fr", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 112, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "18:22 ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "18:22 ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 116, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "fq", + "Attributes": [], + "Data": null, + "EndMarker": "fq*", + "Token": { + "Type": 5, + "Marker": "fq", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "fq*", + "NestlessMarker": "fq", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 122, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "seventy-seven times ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "seventy-seven times ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 126, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 4, + "Marker": "ft", + "Attributes": [], + "Data": null, + "EndMarker": "ft*", + "Token": { + "Type": 5, + "Marker": "ft", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "ft*", + "NestlessMarker": "ft", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 146, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Or \"more than even seven times seventy\". This is a Hebrew idiom, which means ‘unlimited number of time.’. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Or \"more than even seven times seventy\". This is a Hebrew idiom, which means ‘unlimited number of time.’. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 150, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": true, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 6, + "Marker": "f*", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 7, + "Marker": "f*", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": "f*", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 256, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": " ", + "Token": { + "Type": 3, + "Marker": null, + "Text": " ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 259, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "s", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "s", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "s*", + "NestlessMarker": "s", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 260, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "The parable of asking for and giving forgiveness ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "The parable of asking for and giving forgiveness ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 263, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": false, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 22, + "BBBCCCVVV": 40018022, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 312, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_023": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "23", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "23", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 23, + "BBBCCCVVV": 40018023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "“For this reason, what forgiving is in the view of God can be understood through this parable: There was a king. He wanted to settle accounts with his servants, to whom he had given loans. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "“For this reason, what forgiving is in the view of God can be understood through this parable: There was a king. He wanted to settle accounts with his servants, to whom he had given loans. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 23, + "BBBCCCVVV": 40018023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 23, + "BBBCCCVVV": 40018023, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 195, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_024": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "24", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "24", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 24, + "BBBCCCVVV": 40018024, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "When he began to take the account sheets, then one such debtor was presented before him who owed him several crore rupees. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "When he began to take the account sheets, then one such debtor was presented before him who owed him several crore rupees. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 24, + "BBBCCCVVV": 40018024, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_025": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "25", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "25", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 25, + "BBBCCCVVV": 40018025, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "But he had no resources to pay back the money. So the king gave this command, ‘Let his wife, children and everything he has be sold to repay the debt.’ ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "But he had no resources to pay back the money. So the king gave this command, ‘Let his wife, children and everything he has be sold to repay the debt.’ ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 25, + "BBBCCCVVV": 40018025, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 25, + "BBBCCCVVV": 40018025, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 158, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_026": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "26", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "26", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 26, + "BBBCCCVVV": 40018026, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "“Then that debtor fell at the king’s feet and begged, ‘Sir, please give me more time, I will repay it little by little.’ ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "“Then that debtor fell at the king’s feet and begged, ‘Sir, please give me more time, I will repay it little by little.’ ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 26, + "BBBCCCVVV": 40018026, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_027": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "27", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "27", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 27, + "BBBCCCVVV": 40018027, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "That king had so much compassion on him that he forgave his entire debt and said, ‘Now you may go.’ ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "That king had so much compassion on him that he forgave his entire debt and said, ‘Now you may go.’ ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 27, + "BBBCCCVVV": 40018027, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 27, + "BBBCCCVVV": 40018027, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 106, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_028": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "28", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "28", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 28, + "BBBCCCVVV": 40018028, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "“When he went out, he met another servant of the king, to whom the forgiven servant had given a loan of a some rupees. But he grabbed him by the throat and said, ‘You pay back my loan right now!’ ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "“When he went out, he met another servant of the king, to whom the forgiven servant had given a loan of a some rupees. But he grabbed him by the throat and said, ‘You pay back my loan right now!’ ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 28, + "BBBCCCVVV": 40018028, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 28, + "BBBCCCVVV": 40018028, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 202, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_029": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "29", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "29", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 29, + "BBBCCCVVV": 40018029, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "“He fell down at his feet and begged, ‘Sir, please give me some time, I will pay it back little by little.’ ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "“He fell down at his feet and begged, ‘Sir, please give me some time, I will pay it back little by little.’ ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 29, + "BBBCCCVVV": 40018029, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_030": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "30", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "30", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 30, + "BBBCCCVVV": 40018030, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "But his fellow servant didn’t accept his proposal. And he had him thrown into jail, and said, ‘You will rot here until fully repaying the loan.’ ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "But his fellow servant didn’t accept his proposal. And he had him thrown into jail, and said, ‘You will rot here until fully repaying the loan.’ ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 30, + "BBBCCCVVV": 40018030, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 30, + "BBBCCCVVV": 40018030, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 151, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_031": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "31", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "31", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 31, + "BBBCCCVVV": 40018031, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "“But there were other servants of the king who saw this and became very distressed. And they went and told the king what had happened. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "“But there were other servants of the king who saw this and became very distressed. And they went and told the king what had happened. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 31, + "BBBCCCVVV": 40018031, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_032": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "32", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "32", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 32, + "BBBCCCVVV": 40018032, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "So the king called that unmerciful servant and said, ‘O evil fool, you requested of me, and I forgave your entire debt. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "So the king called that unmerciful servant and said, ‘O evil fool, you requested of me, and I forgave your entire debt. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 32, + "BBBCCCVVV": 40018032, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_033": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "33", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "33", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 33, + "BBBCCCVVV": 40018033, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "So, if I could have so much mercy on you, shouldn’t you have had mercy on your debtor also?’ ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "So, if I could have so much mercy on you, shouldn’t you have had mercy on your debtor also?’ ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 33, + "BBBCCCVVV": 40018033, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Type": 3, + "Marker": "p", + "Attributes": [], + "Data": null, + "EndMarker": null, + "Token": { + "Type": 4, + "Marker": "p", + "Text": null, + "Attributes": null, + "Data": null, + "EndMarker": "p*", + "NestlessMarker": "p", + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 33, + "BBBCCCVVV": 40018033, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 99, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_034": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "34", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "34", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 34, + "BBBCCCVVV": 40018034, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "“The king was so angry with him that he gave him this punishment, ‘He is to rot in jail, until he has repaid the whole debt. ", + "Token": { + "Type": 3, + "Marker": null, + "Text": "“The king was so angry with him that he gave him this punishment, ‘He is to rot in jail, until he has repaid the whole debt. ", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 34, + "BBBCCCVVV": 40018034, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ], + "40_018_035": [ + { + "Type": 2, + "Marker": "v", + "Attributes": [], + "Data": "35", + "EndMarker": null, + "Token": { + "Type": 2, + "Marker": "v", + "Text": null, + "Attributes": null, + "Data": "35", + "EndMarker": null, + "NestlessMarker": "v", + "HasData": true, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 35, + "BBBCCCVVV": 40018035, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 0, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + }, + { + "Text": "Like this, if someone asks forgiveness from you, but you don’t forgive them with a full heart, then your Father God in heaven will also do to you.†", + "Token": { + "Type": 3, + "Marker": null, + "Text": "Like this, if someone asks forgiveness from you, but you don’t forgive them with a full heart, then your Father God in heaven will also do to you.†", + "Attributes": null, + "Data": null, + "EndMarker": null, + "NestlessMarker": null, + "HasData": false, + "HasAttributes": false, + "HasNonDefaultAttribute": false + }, + "VerseRef": { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 35, + "BBBCCCVVV": 40018035, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + "VerseOffset": 6, + "IsSpecial": false, + "IsFigure": false, + "IsFootnoteOrCrossReference": false, + "IsScripture": true, + "IsMetadata": false, + "IsPublishableVernacular": true + } + ] +} \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceAndTargetWithVaOverride/CombinedInSourceAndTargetWithVaOverride_TranslatedText.txt b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceAndTargetWithVaOverride/CombinedInSourceAndTargetWithVaOverride_TranslatedText.txt new file mode 100644 index 00000000..b1649211 --- /dev/null +++ b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceAndTargetWithVaOverride/CombinedInSourceAndTargetWithVaOverride_TranslatedText.txt @@ -0,0 +1,7 @@ +3a + Then He said, +4 + “I tell you the truth, whoever humbles himself and has a pure heart like this child will be the greatest in God’s kingdom. +3b + And unless you do this, you cannot enter the kingdom of heaven.†+Teaching About Temptation \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceAndTargetWithVaOverride/CombinedInSourceAndTargetWithVaOverride_VerseReference.json b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceAndTargetWithVaOverride/CombinedInSourceAndTargetWithVaOverride_VerseReference.json new file mode 100644 index 00000000..3c579a3c --- /dev/null +++ b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceAndTargetWithVaOverride/CombinedInSourceAndTargetWithVaOverride_VerseReference.json @@ -0,0 +1,13 @@ +{ + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] +} \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceAndTargetWithVaOverride/CombinedInSourceAndTargetWithVaOverride_VersesReference.json b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceAndTargetWithVaOverride/CombinedInSourceAndTargetWithVaOverride_VersesReference.json new file mode 100644 index 00000000..66291308 --- /dev/null +++ b/src/SILConvertersWordML/TestBwdc/TestFiles/PtxBackTrHelper/CombinedInSourceAndTargetWithVaOverride/CombinedInSourceAndTargetWithVaOverride_VersesReference.json @@ -0,0 +1,40 @@ +{ + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": true, + "AllVerses": [ + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 3, + "BBBCCCVVV": 40018003, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + }, + { + "BookCode": "MAT", + "BookNum": 40, + "ChapterNum": 18, + "VerseNum": 4, + "BBBCCCVVV": 40018004, + "Versification": { + "Type": 4, + "IsCustomized": false + }, + "RepresentsMultipleVerses": false, + "AllVerses": [] + } + ] +} \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/UnitTest_PtxBackTrHelper.cs b/src/SILConvertersWordML/TestBwdc/UnitTest_PtxBackTrHelper.cs index 0c1b93d1..7f381dd0 100644 --- a/src/SILConvertersWordML/TestBwdc/UnitTest_PtxBackTrHelper.cs +++ b/src/SILConvertersWordML/TestBwdc/UnitTest_PtxBackTrHelper.cs @@ -23,7 +23,8 @@ public class UnitTest_PtxBackTrHelper [TestCase("SimpleParagraphVerse", "SimpleParagraphVerseMissingInTarget")] [TestCase("SingleVerse", "SingleVerseMissingInTarget")] /* these are all now failing and I don't think they matter anymore. We aren't now completely - * overwriting the target text with the translated text. + * overwriting the target text with the translated text, rather than merging with what's + * in the target presently. [TestCase("SingleVerse", "SingleVerseMiTSplitIntoTwoParagraphs")] [TestCase("SingleVerse", "SingleVerseSplitIntoTwoParagraphs")] [TestCase("MultipleParagraphs", "MultipleParagraphsJoinedIntoOneParagraphs")] @@ -56,6 +57,7 @@ public void It_Can_Determine_Correct_Update_To_Target_Project(string fileNameCom [TestCase("MultipleVersesWithFootnote")] [TestCase("SeparateInSourceCombinedButEmptyInTarget")] [TestCase("CombinedInSourceSeparateNoEmptyInTarget")] + [TestCase("CombinedInSourceAndTargetWithVaOverride")] public void It_Can_Determine_Correct_Update_To_Target_Project_For_Other_Cases(string fileNamePrefix) { var usfmTokensSource = TestModel.LoadKeyedListOfTokens($"{fileNamePrefix}_TokensSource.json"); From d1d1245855c0bfb3d628ebcb1afff47c844ca22d Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Tue, 14 Mar 2023 21:21:26 -0500 Subject: [PATCH 28/71] updated to 0.5.6 of the EncConverters core --- .../IndicConverters/IndicConverters.wixproj | 4 ++-- .../Converter Packages/IndicConverters/packages.config | 2 +- .../IndicConverters64bit/IndicConverters64bit.wixproj | 4 ++-- .../Converter Packages/IndicConverters64bit/packages.config | 2 +- Installer/SEC Setup 64bit/SEC Setup 64bit.wixproj | 4 ++-- Installer/SEC Setup 64bit/packages.config | 2 +- Installer/SEC Setup/SEC Setup.wixproj | 4 ++-- Installer/SEC Setup/packages.config | 2 +- Installer/ScHelpMM/ScHelpMM.wixproj | 4 ++-- Installer/ScHelpMM/packages.config | 2 +- Installer/SetupSILConverters/SetupSILConverters.wixproj | 6 +++--- Installer/SetupSILConverters/packages.config | 2 +- Installer/TECkitPackage64bitMM/TECkitPackageMM64bit.wixproj | 4 ++-- Installer/TECkitPackage64bitMM/packages.config | 2 +- Installer/TECkitPackageMM/TECkitPackageMM.wixproj | 4 ++-- Installer/TECkitPackageMM/packages.config | 2 +- src/AdaptIt2Unicode/AdaptIt2Unicode.csproj | 4 ++-- src/AdaptIt2Unicode/packages.config | 2 +- src/BulkSFMConverter/SFMConv.csproj | 4 ++-- src/BulkSFMConverter/packages.config | 2 +- src/ClipboardEC/ClipboardEC.csproj | 4 ++-- src/ClipboardEC/packages.config | 2 +- src/DChartHelper/DChartHelper.csproj | 4 ++-- src/DChartHelper/packages.config | 2 +- .../ParatextPluginBackTranslationHelper.csproj | 4 ++-- src/ParatextPluginBackTranslationHelper/packages.config | 2 +- src/SILConvertersInstaller/SILConvertersInstaller.vbproj | 4 ++-- src/SILConvertersInstaller/packages.config | 2 +- src/SILConvertersOffice/SILConvertersOffice.csproj | 4 ++-- src/SILConvertersOffice/packages.config | 2 +- src/SILConvertersOffice07/SILConvertersOffice07.csproj | 4 ++-- src/SILConvertersOffice07/packages.config | 2 +- src/SILConvertersOffice10/SILConvertersOffice10.csproj | 4 ++-- src/SILConvertersOffice10/packages.config | 2 +- src/SILConvertersOffice13/SILConvertersOffice13.csproj | 4 ++-- src/SILConvertersOffice13/packages.config | 2 +- src/SILConvertersWordML/SILConvertersWordML.csproj | 4 ++-- src/SILConvertersWordML/TestBwdc/TestBwdc.csproj | 4 ++-- src/SILConvertersWordML/TestBwdc/packages.config | 2 +- src/SILConvertersWordML/packages.config | 2 +- src/SilConvertersXML/SilConvertersXML.csproj | 4 ++-- src/SilConvertersXML/packages.config | 2 +- src/SpellingFixerEC/SpellingFixerEC.csproj | 6 ++++-- src/SpellingFixerEC/packages.config | 2 +- src/TECkit Mapping Editor/TECkit Mapping Editor.csproj | 4 ++-- src/TECkit Mapping Editor/packages.config | 2 +- 46 files changed, 72 insertions(+), 70 deletions(-) diff --git a/Installer/Converter Packages/IndicConverters/IndicConverters.wixproj b/Installer/Converter Packages/IndicConverters/IndicConverters.wixproj index 34089e77..8cfea677 100644 --- a/Installer/Converter Packages/IndicConverters/IndicConverters.wixproj +++ b/Installer/Converter Packages/IndicConverters/IndicConverters.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> @@ -82,7 +82,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/Converter Packages/IndicConverters/packages.config b/Installer/Converter Packages/IndicConverters/packages.config index d556b890..36562a63 100644 --- a/Installer/Converter Packages/IndicConverters/packages.config +++ b/Installer/Converter Packages/IndicConverters/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.5" /> + <package id="Encoding-Converters-Core" version="0.5.6" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/Converter Packages/IndicConverters64bit/IndicConverters64bit.wixproj b/Installer/Converter Packages/IndicConverters64bit/IndicConverters64bit.wixproj index 93d4b5fd..bf3ae6fb 100644 --- a/Installer/Converter Packages/IndicConverters64bit/IndicConverters64bit.wixproj +++ b/Installer/Converter Packages/IndicConverters64bit/IndicConverters64bit.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> @@ -40,7 +40,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/Converter Packages/IndicConverters64bit/packages.config b/Installer/Converter Packages/IndicConverters64bit/packages.config index d556b890..36562a63 100644 --- a/Installer/Converter Packages/IndicConverters64bit/packages.config +++ b/Installer/Converter Packages/IndicConverters64bit/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.5" /> + <package id="Encoding-Converters-Core" version="0.5.6" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/SEC Setup 64bit/SEC Setup 64bit.wixproj b/Installer/SEC Setup 64bit/SEC Setup 64bit.wixproj index b295d21a..ef25eacb 100644 --- a/Installer/SEC Setup 64bit/SEC Setup 64bit.wixproj +++ b/Installer/SEC Setup 64bit/SEC Setup 64bit.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> @@ -59,7 +59,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/SEC Setup 64bit/packages.config b/Installer/SEC Setup 64bit/packages.config index d556b890..36562a63 100644 --- a/Installer/SEC Setup 64bit/packages.config +++ b/Installer/SEC Setup 64bit/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.5" /> + <package id="Encoding-Converters-Core" version="0.5.6" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/SEC Setup/SEC Setup.wixproj b/Installer/SEC Setup/SEC Setup.wixproj index 8c37b8f8..ea694e57 100644 --- a/Installer/SEC Setup/SEC Setup.wixproj +++ b/Installer/SEC Setup/SEC Setup.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> @@ -67,7 +67,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/SEC Setup/packages.config b/Installer/SEC Setup/packages.config index d556b890..36562a63 100644 --- a/Installer/SEC Setup/packages.config +++ b/Installer/SEC Setup/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.5" /> + <package id="Encoding-Converters-Core" version="0.5.6" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/ScHelpMM/ScHelpMM.wixproj b/Installer/ScHelpMM/ScHelpMM.wixproj index 05c3d151..459cb401 100644 --- a/Installer/ScHelpMM/ScHelpMM.wixproj +++ b/Installer/ScHelpMM/ScHelpMM.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> @@ -48,7 +48,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/ScHelpMM/packages.config b/Installer/ScHelpMM/packages.config index d556b890..36562a63 100644 --- a/Installer/ScHelpMM/packages.config +++ b/Installer/ScHelpMM/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.5" /> + <package id="Encoding-Converters-Core" version="0.5.6" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/SetupSILConverters/SetupSILConverters.wixproj b/Installer/SetupSILConverters/SetupSILConverters.wixproj index fc0cf415..cd12e520 100644 --- a/Installer/SetupSILConverters/SetupSILConverters.wixproj +++ b/Installer/SetupSILConverters/SetupSILConverters.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> <Import Project="$([MSBuild]::GetPathOfFileAbove(directory.build.props))" Condition="Exists('$([MSBuild]::GetPathOfFileAbove(directory.build.props))')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> @@ -20,7 +20,7 @@ <DefineConstants>ApplicationName=SILConverters;SafeApplicationName=SILConverters;TruncatedVersion=5.1;VersionNumber=5.1.1.0;UpgradeCode=8A50226C-84D0-4CAF-AF8F-B0284643C415;Year=2022;Manufacturer=SIL International;EcDistFilesPath=$(EcDistFilesPath)</DefineConstants> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' "> - <DefineConstants>ApplicationName=SILConverters;SafeApplicationName=SILConverters;TruncatedVersion=5.1;VersionNumber=5.1.1.0;UpgradeCode=0F7D5D72-E9F3-40BB-9748-D388C70096CD;Year=2022;Manufacturer=SIL International;EcDistFilesPath=$(EcDistFilesPath)</DefineConstants> + <DefineConstants>ApplicationName=SILConverters;SafeApplicationName=SILConverters;TruncatedVersion=5.1;VersionNumber=5.1.2.0;UpgradeCode=0F7D5D72-E9F3-40BB-9748-D388C70096CD;Year=2023;Manufacturer=SIL International;EcDistFilesPath=$(EcDistFilesPath)</DefineConstants> <OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath> <IntermediateOutputPath>obj\$(Platform)\$(Configuration)\</IntermediateOutputPath> </PropertyGroup> @@ -66,7 +66,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> </Target> <Target Name="PostBuildCopy" AfterTargets="Build"> <PropertyGroup> diff --git a/Installer/SetupSILConverters/packages.config b/Installer/SetupSILConverters/packages.config index d556b890..36562a63 100644 --- a/Installer/SetupSILConverters/packages.config +++ b/Installer/SetupSILConverters/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.5" /> + <package id="Encoding-Converters-Core" version="0.5.6" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/TECkitPackage64bitMM/TECkitPackageMM64bit.wixproj b/Installer/TECkitPackage64bitMM/TECkitPackageMM64bit.wixproj index 8d1c0b5f..6f4f7f40 100644 --- a/Installer/TECkitPackage64bitMM/TECkitPackageMM64bit.wixproj +++ b/Installer/TECkitPackage64bitMM/TECkitPackageMM64bit.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> @@ -39,7 +39,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/TECkitPackage64bitMM/packages.config b/Installer/TECkitPackage64bitMM/packages.config index d556b890..36562a63 100644 --- a/Installer/TECkitPackage64bitMM/packages.config +++ b/Installer/TECkitPackage64bitMM/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.5" /> + <package id="Encoding-Converters-Core" version="0.5.6" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/TECkitPackageMM/TECkitPackageMM.wixproj b/Installer/TECkitPackageMM/TECkitPackageMM.wixproj index d43e4c88..5d3915c3 100644 --- a/Installer/TECkitPackageMM/TECkitPackageMM.wixproj +++ b/Installer/TECkitPackageMM/TECkitPackageMM.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> @@ -39,7 +39,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/TECkitPackageMM/packages.config b/Installer/TECkitPackageMM/packages.config index d556b890..36562a63 100644 --- a/Installer/TECkitPackageMM/packages.config +++ b/Installer/TECkitPackageMM/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.5" /> + <package id="Encoding-Converters-Core" version="0.5.6" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/src/AdaptIt2Unicode/AdaptIt2Unicode.csproj b/src/AdaptIt2Unicode/AdaptIt2Unicode.csproj index 4a5c7491..f9ba5206 100644 --- a/src/AdaptIt2Unicode/AdaptIt2Unicode.csproj +++ b/src/AdaptIt2Unicode/AdaptIt2Unicode.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -204,6 +204,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/AdaptIt2Unicode/packages.config b/src/AdaptIt2Unicode/packages.config index dce80ccc..07c3c3ac 100644 --- a/src/AdaptIt2Unicode/packages.config +++ b/src/AdaptIt2Unicode/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/BulkSFMConverter/SFMConv.csproj b/src/BulkSFMConverter/SFMConv.csproj index 648d7735..cac7c60d 100644 --- a/src/BulkSFMConverter/SFMConv.csproj +++ b/src/BulkSFMConverter/SFMConv.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -207,6 +207,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/BulkSFMConverter/packages.config b/src/BulkSFMConverter/packages.config index dce80ccc..07c3c3ac 100644 --- a/src/BulkSFMConverter/packages.config +++ b/src/BulkSFMConverter/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/ClipboardEC/ClipboardEC.csproj b/src/ClipboardEC/ClipboardEC.csproj index 1f78d241..7285686b 100644 --- a/src/ClipboardEC/ClipboardEC.csproj +++ b/src/ClipboardEC/ClipboardEC.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <ProjectType>Local</ProjectType> <ProductVersion>9.0.30729</ProductVersion> @@ -198,6 +198,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/ClipboardEC/packages.config b/src/ClipboardEC/packages.config index dce80ccc..07c3c3ac 100644 --- a/src/ClipboardEC/packages.config +++ b/src/ClipboardEC/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/DChartHelper/DChartHelper.csproj b/src/DChartHelper/DChartHelper.csproj index 3c6263bb..1359edd0 100644 --- a/src/DChartHelper/DChartHelper.csproj +++ b/src/DChartHelper/DChartHelper.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -255,6 +255,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/DChartHelper/packages.config b/src/DChartHelper/packages.config index dce80ccc..07c3c3ac 100644 --- a/src/DChartHelper/packages.config +++ b/src/DChartHelper/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj b/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj index e8bd3bbc..55fd7ca5 100644 --- a/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj +++ b/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="16.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> @@ -227,6 +227,6 @@ ren "%25ParatextInstallDir%25\plugins\$(ProjectName)\$(TargetFileName)" "$(Proje <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/ParatextPluginBackTranslationHelper/packages.config b/src/ParatextPluginBackTranslationHelper/packages.config index e89a57ae..76cac799 100644 --- a/src/ParatextPluginBackTranslationHelper/packages.config +++ b/src/ParatextPluginBackTranslationHelper/packages.config @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> <package id="Newtonsoft.Json" version="13.0.2" targetFramework="net48" /> <package id="ParatextEmbeddedUiPluginInterfaces" version="2.0.23" targetFramework="net48" /> <package id="ParatextPluginInterfaces" version="2.0.23" targetFramework="net48" /> diff --git a/src/SILConvertersInstaller/SILConvertersInstaller.vbproj b/src/SILConvertersInstaller/SILConvertersInstaller.vbproj index b2b29f2b..c7572bcd 100644 --- a/src/SILConvertersInstaller/SILConvertersInstaller.vbproj +++ b/src/SILConvertersInstaller/SILConvertersInstaller.vbproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <ProjectType>Local</ProjectType> <ProductVersion>9.0.30729</ProductVersion> @@ -244,6 +244,6 @@ xcopy /s /y "$(EcDistFilesPath)\redist\*.*" "$(SolutionDir)output\$(PlatformName <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersInstaller/packages.config b/src/SILConvertersInstaller/packages.config index dce80ccc..07c3c3ac 100644 --- a/src/SILConvertersInstaller/packages.config +++ b/src/SILConvertersInstaller/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SILConvertersOffice/SILConvertersOffice.csproj b/src/SILConvertersOffice/SILConvertersOffice.csproj index d0246836..e03e6c96 100644 --- a/src/SILConvertersOffice/SILConvertersOffice.csproj +++ b/src/SILConvertersOffice/SILConvertersOffice.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -315,6 +315,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersOffice/packages.config b/src/SILConvertersOffice/packages.config index dce80ccc..07c3c3ac 100644 --- a/src/SILConvertersOffice/packages.config +++ b/src/SILConvertersOffice/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SILConvertersOffice07/SILConvertersOffice07.csproj b/src/SILConvertersOffice07/SILConvertersOffice07.csproj index bad6f752..7e41b3c6 100644 --- a/src/SILConvertersOffice07/SILConvertersOffice07.csproj +++ b/src/SILConvertersOffice07/SILConvertersOffice07.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -348,6 +348,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersOffice07/packages.config b/src/SILConvertersOffice07/packages.config index dce80ccc..07c3c3ac 100644 --- a/src/SILConvertersOffice07/packages.config +++ b/src/SILConvertersOffice07/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SILConvertersOffice10/SILConvertersOffice10.csproj b/src/SILConvertersOffice10/SILConvertersOffice10.csproj index a9a994c8..2cf59bf2 100644 --- a/src/SILConvertersOffice10/SILConvertersOffice10.csproj +++ b/src/SILConvertersOffice10/SILConvertersOffice10.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -342,6 +342,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersOffice10/packages.config b/src/SILConvertersOffice10/packages.config index dce80ccc..07c3c3ac 100644 --- a/src/SILConvertersOffice10/packages.config +++ b/src/SILConvertersOffice10/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SILConvertersOffice13/SILConvertersOffice13.csproj b/src/SILConvertersOffice13/SILConvertersOffice13.csproj index b706f0ad..d7fd5c23 100644 --- a/src/SILConvertersOffice13/SILConvertersOffice13.csproj +++ b/src/SILConvertersOffice13/SILConvertersOffice13.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -356,6 +356,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersOffice13/packages.config b/src/SILConvertersOffice13/packages.config index dce80ccc..07c3c3ac 100644 --- a/src/SILConvertersOffice13/packages.config +++ b/src/SILConvertersOffice13/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SILConvertersWordML/SILConvertersWordML.csproj b/src/SILConvertersWordML/SILConvertersWordML.csproj index 73f58ea3..ecc12145 100644 --- a/src/SILConvertersWordML/SILConvertersWordML.csproj +++ b/src/SILConvertersWordML/SILConvertersWordML.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -246,6 +246,6 @@ <ErrorTextMissingPIA>This project references a Microsoft Office PIA file, which is required to be built against or it won't work for older versions of Word. The missing file needing to be restored is {0}.</ErrorTextMissingPIA> </PropertyGroup> <Error Condition="!Exists('..\SILConvertersOffice\DistFiles\Microsoft.Office.Interop.Word.dll')" Text="$([System.String]::Format('$(ErrorTextMissingPIA)', 'Microsoft.Office.Interop.Word, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c expected to be in ..\SILConvertersOffice\DistFiles\Microsoft.Office.Interop.Word.dll'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj b/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj index 902c7ced..01f58d56 100644 --- a/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj +++ b/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="16.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\..\packages\NUnit3TestAdapter.4.3.1\build\net35\NUnit3TestAdapter.props" Condition="Exists('..\..\..\packages\NUnit3TestAdapter.4.3.1\build\net35\NUnit3TestAdapter.props')" /> <Import Project="..\..\..\packages\NUnit.3.13.3\build\NUnit.props" Condition="Exists('..\..\..\packages\NUnit.3.13.3\build\NUnit.props')" /> <PropertyGroup> @@ -456,7 +456,7 @@ </PropertyGroup> <Error Condition="!Exists('..\..\..\packages\NUnit.3.13.3\build\NUnit.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\NUnit.3.13.3\build\NUnit.props'))" /> <Error Condition="!Exists('..\..\..\packages\NUnit3TestAdapter.4.3.1\build\net35\NUnit3TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\NUnit3TestAdapter.4.3.1\build\net35\NUnit3TestAdapter.props'))" /> - <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> </Target> <ProjectExtensions> <VisualStudio> diff --git a/src/SILConvertersWordML/TestBwdc/packages.config b/src/SILConvertersWordML/TestBwdc/packages.config index 4115ad13..0a0e99d7 100644 --- a/src/SILConvertersWordML/TestBwdc/packages.config +++ b/src/SILConvertersWordML/TestBwdc/packages.config @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> <package id="Microsoft.CSharp" version="4.7.0" targetFramework="net48" /> <package id="Newtonsoft.Json" version="13.0.2" targetFramework="net48" /> <package id="NUnit" version="3.13.3" targetFramework="net48" /> diff --git a/src/SILConvertersWordML/packages.config b/src/SILConvertersWordML/packages.config index dce80ccc..07c3c3ac 100644 --- a/src/SILConvertersWordML/packages.config +++ b/src/SILConvertersWordML/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SilConvertersXML/SilConvertersXML.csproj b/src/SilConvertersXML/SilConvertersXML.csproj index df744f05..d3c3bcae 100644 --- a/src/SilConvertersXML/SilConvertersXML.csproj +++ b/src/SilConvertersXML/SilConvertersXML.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -222,6 +222,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SilConvertersXML/packages.config b/src/SilConvertersXML/packages.config index dce80ccc..07c3c3ac 100644 --- a/src/SilConvertersXML/packages.config +++ b/src/SilConvertersXML/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SpellingFixerEC/SpellingFixerEC.csproj b/src/SpellingFixerEC/SpellingFixerEC.csproj index 2e639bd9..ab16178a 100644 --- a/src/SpellingFixerEC/SpellingFixerEC.csproj +++ b/src/SpellingFixerEC/SpellingFixerEC.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <ProjectType>Local</ProjectType> <ProductVersion>9.0.30729</ProductVersion> @@ -60,6 +60,7 @@ <PlatformTarget>x86</PlatformTarget> <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression> <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile> + <LangVersion>latest</LangVersion> <ErrorReport>prompt</ErrorReport> <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> <Prefer32Bit>false</Prefer32Bit> @@ -74,6 +75,7 @@ <PlatformTarget>x86</PlatformTarget> <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression> <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile> + <LangVersion>latest</LangVersion> <ErrorReport>prompt</ErrorReport> <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> <Prefer32Bit>false</Prefer32Bit> @@ -247,6 +249,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SpellingFixerEC/packages.config b/src/SpellingFixerEC/packages.config index dce80ccc..07c3c3ac 100644 --- a/src/SpellingFixerEC/packages.config +++ b/src/SpellingFixerEC/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/TECkit Mapping Editor/TECkit Mapping Editor.csproj b/src/TECkit Mapping Editor/TECkit Mapping Editor.csproj index c013e442..abf366ad 100644 --- a/src/TECkit Mapping Editor/TECkit Mapping Editor.csproj +++ b/src/TECkit Mapping Editor/TECkit Mapping Editor.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -239,6 +239,6 @@ xcopy /y "$(ProjectDir)UnicodeRanges.xml" "$(SolutionDir)output\$(PlatformName)\ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.5\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/TECkit Mapping Editor/packages.config b/src/TECkit Mapping Editor/packages.config index dce80ccc..07c3c3ac 100644 --- a/src/TECkit Mapping Editor/packages.config +++ b/src/TECkit Mapping Editor/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.5" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> </packages> \ No newline at end of file From f548e403abf06d69ad61ad7dad15bfb314f8afba Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Tue, 14 Mar 2023 21:22:50 -0500 Subject: [PATCH 29/71] make the status line better English when singular vs. plural --- .../BackTranslationHelperForm.cs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs index e1253d5b..0791a14f 100644 --- a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs +++ b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs @@ -109,10 +109,20 @@ private void TargetBackTranslationTextChanged(string value) { var translatedCount = GetTranslatedLines(value).Count; System.Diagnostics.Debug.WriteLine($"PtxBTH: TargetBackTranslationTextChanged: SourceDataLineCount = '{SourceDataLineCount}', translatedCount = '{translatedCount}'"); + var statusText = String.Empty; if (SourceDataLineCount != translatedCount) - textBoxStatus.Text = $"There are currently {translatedCount} lines of text in the Target Translation box vs. {SourceDataLineCount} text lines in the source verse (one for each of these markers: {String.Join(",", TextTokenMarkersSource.Select(m => $"\\{m.Marker}"))})"; - else - textBoxStatus.Text = String.Empty; + { + statusText = String.Format("There {0} currently {1} line{2} of text in the Target Translation box vs. {3} text line{4} in the source verse ({5}: {6})", + (translatedCount > 1) ? "are" : "is", + translatedCount, + (translatedCount > 1) ? "s" : string.Empty, + SourceDataLineCount, + (SourceDataLineCount > 1) ? "s" : string.Empty, + (TextTokenMarkersSource.Count > 1) ? "one for each of these markers" : "for this marker", + String.Join(",", TextTokenMarkersSource.Select(m => $"\\{m.Marker}"))); + } + + textBoxStatus.Text = statusText; Application.DoEvents(); // this says we need to do this for when it won't display the change: https://social.msdn.microsoft.com/Forums/vstudio/en-US/983d2e3b-9bcb-4c9c-9e85-59f8b2051b3e/program-updating-a-textbox-does-not-work?forum=csharpgeneral } From 706e21901bac28c9ffa061996cc6c1396d20cf83 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Wed, 15 Mar 2023 06:19:58 -0500 Subject: [PATCH 30/71] updated installer version to 5.1.2 --- Directory.Build.props | 2 +- Installer/SetupSILConverters/SetupSILConverters.wixproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 6bc626c2..2a01ff1c 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -3,7 +3,7 @@ <ApplicationName>SILConverters</ApplicationName> <SafeApplicationName>SILConverters</SafeApplicationName> <TruncatedVersion>5.1</TruncatedVersion> - <VersionNumber>5.1.1.0</VersionNumber> + <VersionNumber>5.1.2.0</VersionNumber> <UpgradeCode>8A50226C-84D0-4CAF-AF8F-B0284643C415</UpgradeCode> <Year>2022</Year> <Manufacturer>SIL International</Manufacturer> diff --git a/Installer/SetupSILConverters/SetupSILConverters.wixproj b/Installer/SetupSILConverters/SetupSILConverters.wixproj index cd12e520..34561d22 100644 --- a/Installer/SetupSILConverters/SetupSILConverters.wixproj +++ b/Installer/SetupSILConverters/SetupSILConverters.wixproj @@ -17,7 +17,7 @@ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> <OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath> <IntermediateOutputPath>obj\$(Platform)\$(Configuration)\</IntermediateOutputPath> - <DefineConstants>ApplicationName=SILConverters;SafeApplicationName=SILConverters;TruncatedVersion=5.1;VersionNumber=5.1.1.0;UpgradeCode=8A50226C-84D0-4CAF-AF8F-B0284643C415;Year=2022;Manufacturer=SIL International;EcDistFilesPath=$(EcDistFilesPath)</DefineConstants> + <DefineConstants>ApplicationName=SILConverters;SafeApplicationName=SILConverters;TruncatedVersion=5.1;VersionNumber=5.1.2.0;UpgradeCode=8A50226C-84D0-4CAF-AF8F-B0284643C415;Year=2022;Manufacturer=SIL International;EcDistFilesPath=$(EcDistFilesPath)</DefineConstants> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' "> <DefineConstants>ApplicationName=SILConverters;SafeApplicationName=SILConverters;TruncatedVersion=5.1;VersionNumber=5.1.2.0;UpgradeCode=0F7D5D72-E9F3-40BB-9748-D388C70096CD;Year=2023;Manufacturer=SIL International;EcDistFilesPath=$(EcDistFilesPath)</DefineConstants> From 314491f155fc6fe16d1ee4cea8e5af45dff66809 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Wed, 15 Mar 2023 06:20:51 -0500 Subject: [PATCH 31/71] fix error: "error CS8652: The feature 'constant interpolated strings' is currently in Preview and *unsupported*. To use Preview features, use the 'preview' language version." (it never needed to be a 'constant interpolated string' anyway.) --- src/SpellingFixerEC/LoginSF.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SpellingFixerEC/LoginSF.cs b/src/SpellingFixerEC/LoginSF.cs index cf8aac12..28e63095 100644 --- a/src/SpellingFixerEC/LoginSF.cs +++ b/src/SpellingFixerEC/LoginSF.cs @@ -135,7 +135,7 @@ internal static string CctableLastHeaderLine get { return "c Last Header Line: DON'T modify the table beyond this point (or your changes may be overwritten)"; } } - internal const string DummyRule = $" d31 > d31 c dummy rule so that the table isn't empty (can be removed if you have rules below the Last Header Line below)"; + internal const string DummyRule = " d31 > d31 c dummy rule so that the table isn't empty (can be removed if you have rules below the Last Header Line below)"; internal const string CustomRuleEndComment = "c +----------end custom changes----------+"; internal static void CreateCCTable(StreamWriter sw, string strEncConverterName, string strPunctuation, string strCustomCode = DummyRule, bool bUnicode = true) From 57f1764a413995bc41e4f728bb3d93dbed6e2ac6 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Fri, 17 Mar 2023 07:58:09 -0500 Subject: [PATCH 32/71] update license text to the correct year --- Installer/SEC Setup 64bit/License.rtf | 155 ++++++++++++-------------- Installer/SEC Setup/License.rtf | 155 ++++++++++++-------------- 2 files changed, 146 insertions(+), 164 deletions(-) diff --git a/Installer/SEC Setup 64bit/License.rtf b/Installer/SEC Setup 64bit/License.rtf index bb912d2c..c9148a41 100644 --- a/Installer/SEC Setup 64bit/License.rtf +++ b/Installer/SEC Setup 64bit/License.rtf @@ -1,62 +1,63 @@ -{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi31507\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f4\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Helvetica;} -{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} -{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;} -{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} -{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} -{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f44\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f45\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} -{\f47\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f48\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f49\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f50\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} -{\f51\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f52\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f84\fbidi \fswiss\fcharset238\fprq2 Helvetica CE;}{\f85\fbidi \fswiss\fcharset204\fprq2 Helvetica Cyr;} -{\f87\fbidi \fswiss\fcharset161\fprq2 Helvetica Greek;}{\f88\fbidi \fswiss\fcharset162\fprq2 Helvetica Tur;}{\f89\fbidi \fswiss\fcharset177\fprq2 Helvetica (Hebrew);}{\f90\fbidi \fswiss\fcharset178\fprq2 Helvetica (Arabic);} -{\f91\fbidi \fswiss\fcharset186\fprq2 Helvetica Baltic;}{\f92\fbidi \fswiss\fcharset163\fprq2 Helvetica (Vietnamese);}{\f414\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f415\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} -{\f417\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f418\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f419\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\f420\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);} -{\f421\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f422\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} -{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} -{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} -{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} -{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} -{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} -{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;}{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;} -{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31533\fbidi \fswiss\fcharset177\fprq2 Calibri Light (Hebrew);}{\fhimajor\f31534\fbidi \fswiss\fcharset178\fprq2 Calibri Light (Arabic);} -{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;}{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} -{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} -{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} -{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} -{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} -{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} -{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} -{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} -{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;} -{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;} -{\fhiminor\f31573\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\fhiminor\f31574\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;} -{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} -{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} -{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}} -{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0; -\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red0\green0\blue0;\red0\green0\blue0;\red51\green51\blue51;}{\*\defchp \fs22\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap -\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 -\af31507\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* +{\rtf1\adeflang1081\ansi\ansicpg1252\uc1\adeff24\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi0\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f4\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Helvetica;} +{\f24\fbidi \froman\fcharset0\fprq2{\*\panose 00000400000000000000}Mangal{\*\falt Nirmala UI};}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} +{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;}{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f329\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\f330\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\f332\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f333\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f334\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\f335\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f336\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f337\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f369\fbidi \fswiss\fcharset238\fprq2 Helvetica CE;} +{\f370\fbidi \fswiss\fcharset204\fprq2 Helvetica Cyr;}{\f372\fbidi \fswiss\fcharset161\fprq2 Helvetica Greek;}{\f373\fbidi \fswiss\fcharset162\fprq2 Helvetica Tur;}{\f374\fbidi \fswiss\fcharset177\fprq2 Helvetica (Hebrew);} +{\f375\fbidi \fswiss\fcharset178\fprq2 Helvetica (Arabic);}{\f376\fbidi \fswiss\fcharset186\fprq2 Helvetica Baltic;}{\f377\fbidi \fswiss\fcharset163\fprq2 Helvetica (Vietnamese);}{\f669\fbidi \froman\fcharset238\fprq2 Cambria Math CE;} +{\f670\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}{\f672\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f673\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f676\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;} +{\f677\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);}{\f699\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f700\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\f702\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;} +{\f703\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f704\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\f705\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\f706\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;} +{\f707\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;} +{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;}{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;}{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;} +{\fhimajor\f31533\fbidi \fswiss\fcharset177\fprq2 Calibri Light (Hebrew);}{\fhimajor\f31534\fbidi \fswiss\fcharset178\fprq2 Calibri Light (Arabic);}{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;} +{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} +{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\fhiminor\f31573\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);} +{\fhiminor\f31574\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);} +{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0; +\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128; +\red192\green192\blue192;\red0\green0\blue0;\red0\green0\blue0;\red51\green51\blue51;}{\*\defchp \fs22\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap \ql \li0\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af24\afs22\alang1025 \ltrch\fcs0 +\fs22\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* \ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1 -\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused -Normal Table;}}{\*\pgptbl {\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid6833241\rsid9134832}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim0}{\info{\operator Bob Eaton} -{\creatim\yr2021\mo8\dy28\hr17\min5}{\revtim\yr2021\mo8\dy28\hr17\min6}{\version2}{\edmins1}{\nofpages1}{\nofwords161}{\nofchars918}{\nofcharsws1077}{\vern29}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}} -\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1081 \ltrch\fcs0 \fs22\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused +Normal Table;}}{\*\pgptbl {\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid3940604\rsid6833241\rsid9134832}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim0}{\info +{\operator Bob Eaton}{\creatim\yr2021\mo8\dy28\hr17\min5}{\revtim\yr2023\mo3\dy15\hr6\min59}{\version3}{\edmins1}{\nofpages1}{\nofwords161}{\nofchars918}{\nofcharsws1077}{\vern67}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml} +}\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect \widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120\dghorigin1701 \dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale100\rsidroot9134832 \nouicompat \fet0{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1 \pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5 \pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang -{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa150\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 \cbpat8 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 +{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa150\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 \cbpat8 \rtlch\fcs1 \af24\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1033\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af4\afs21 \ltrch\fcs0 \f4\fs21\cf19\insrsid6833241 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT) \par }\pard \ltrpar\ql \li0\ri0\sa150\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid9134832 \cbpat8 {\rtlch\fcs1 \af4\afs21 \ltrch\fcs0 \f4\fs21\cf19\insrsid6833241 \hich\af4\dbch\af31505\loch\f4 Copyright }{\rtlch\fcs1 \af4\afs21 \ltrch\fcs0 -\f4\fs21\cf19\insrsid9134832\charrsid9134832 \loch\af4\dbch\af31505\hich\f4 \'a9}{\rtlch\fcs1 \af4\afs21 \ltrch\fcs0 \f4\fs21\cf19\insrsid9134832 \hich\af4\dbch\af31505\loch\f4 \hich\af4\dbch\af31505\loch\f4 2021}{\rtlch\fcs1 \af4\afs21 \ltrch\fcs0 -\f4\fs21\cf19\insrsid6833241 \hich\af4\dbch\af31505\loch\f4 SIL International +\f4\fs21\cf19\insrsid9134832\charrsid9134832 \loch\af4\dbch\af31505\hich\f4 \'a9}{\rtlch\fcs1 \af4\afs21 \ltrch\fcs0 \f4\fs21\cf19\insrsid9134832 \hich\af4\dbch\af31505\loch\f4 202}{\rtlch\fcs1 \af4\afs21 \ltrch\fcs0 \f4\fs21\cf19\insrsid3940604 +\hich\af4\dbch\af31505\loch\f4 3}{\rtlch\fcs1 \af4\afs21 \ltrch\fcs0 \f4\fs21\cf19\insrsid6833241 \hich\af4\dbch\af31505\loch\f4 SIL International \par }\pard \ltrpar\ql \li0\ri0\sa150\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 \cbpat8 {\rtlch\fcs1 \af4\afs21 \ltrch\fcs0 \f4\fs21\cf19\insrsid6833241 \hich\af4\dbch\af31505\loch\f4 P\hich\af4\dbch\af31505\loch\f4 -ermission is hereby granted, free of charge, to any person obtain\hich\af4\dbch\af31505\loch\f4 -ing a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the S -\hich\af4\dbch\af31505\loch\f4 o\hich\af4\dbch\af31505\loch\f4 ftware, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PR\hich\af4\dbch\af31505\loch\f4 -OVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CL -\hich\af4\dbch\af31505\loch\f4 A\hich\af4\dbch\af31505\loch\f4 IM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +ermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, me +\hich\af4\dbch\af31505\loch\f4 r\hich\af4\dbch\af31505\loch\f4 ge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all c\hich\af4\dbch\af31505\loch\f4 opies or substantial portions of the Software. +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO E +\hich\af4\dbch\af31505\loch\f4 +VENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \par }\pard \ltrpar\ql \li0\ri0\sa160\sl252\slmult1\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\insrsid6833241 \par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a @@ -143,35 +144,25 @@ faadb081f196af190c6a98242f8467912ab0a651ad6a5a548d8cc3c1aafb6121653923699635d3ca \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym; \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition; \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Table;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 1; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 2; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 2; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 3; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 2; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 6; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 2; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 6; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 2; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Contemporary;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Elegant;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Professional; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 2; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Theme;\lsdsemihidden1 \lsdlocked0 Placeholder Text; -\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2; -\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List; -\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdpriority61 \lsdlocked0 Light List Accent 1; -\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdsemihidden1 \lsdlocked0 Revision; -\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1; -\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdpriority72 \lsdlocked0 Colorful List Accent 1; -\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; -\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2; -\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2; -\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; -\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3; -\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4; -\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; -\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4; -\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5; -\lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid; +\lsdsemihidden1 \lsdlocked0 Placeholder Text;\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid; +\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2; +\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List;\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1; +\lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1; +\lsdsemihidden1 \lsdlocked0 Revision;\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1; +\lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2; +\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3; +\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4; +\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdpriority62 \lsdlocked0 Light Grid Accent 5; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5; \lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6; \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6; @@ -213,8 +204,8 @@ fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e50000000000000000000000006096 -c7eb589cd701feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000b04e +bfa23557d901feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/Installer/SEC Setup/License.rtf b/Installer/SEC Setup/License.rtf index bb912d2c..d241d751 100644 --- a/Installer/SEC Setup/License.rtf +++ b/Installer/SEC Setup/License.rtf @@ -1,62 +1,63 @@ -{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi31507\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f4\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Helvetica;} -{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} -{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;} -{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} -{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} -{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f44\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f45\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} -{\f47\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f48\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f49\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f50\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} -{\f51\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f52\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f84\fbidi \fswiss\fcharset238\fprq2 Helvetica CE;}{\f85\fbidi \fswiss\fcharset204\fprq2 Helvetica Cyr;} -{\f87\fbidi \fswiss\fcharset161\fprq2 Helvetica Greek;}{\f88\fbidi \fswiss\fcharset162\fprq2 Helvetica Tur;}{\f89\fbidi \fswiss\fcharset177\fprq2 Helvetica (Hebrew);}{\f90\fbidi \fswiss\fcharset178\fprq2 Helvetica (Arabic);} -{\f91\fbidi \fswiss\fcharset186\fprq2 Helvetica Baltic;}{\f92\fbidi \fswiss\fcharset163\fprq2 Helvetica (Vietnamese);}{\f414\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f415\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} -{\f417\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f418\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f419\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\f420\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);} -{\f421\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f422\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} -{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} -{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} -{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} -{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} -{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} -{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;}{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;} -{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31533\fbidi \fswiss\fcharset177\fprq2 Calibri Light (Hebrew);}{\fhimajor\f31534\fbidi \fswiss\fcharset178\fprq2 Calibri Light (Arabic);} -{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;}{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} -{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} -{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} -{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} -{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} -{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} -{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} -{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} -{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;} -{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;} -{\fhiminor\f31573\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\fhiminor\f31574\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;} -{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} -{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} -{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}} -{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0; -\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red0\green0\blue0;\red0\green0\blue0;\red51\green51\blue51;}{\*\defchp \fs22\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap -\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 -\af31507\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* +{\rtf1\adeflang1081\ansi\ansicpg1252\uc1\adeff24\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi0\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f4\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Helvetica;} +{\f24\fbidi \froman\fcharset0\fprq2{\*\panose 00000400000000000000}Mangal{\*\falt Nirmala UI};}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} +{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;}{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f329\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\f330\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\f332\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f333\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f334\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\f335\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f336\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f337\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f369\fbidi \fswiss\fcharset238\fprq2 Helvetica CE;} +{\f370\fbidi \fswiss\fcharset204\fprq2 Helvetica Cyr;}{\f372\fbidi \fswiss\fcharset161\fprq2 Helvetica Greek;}{\f373\fbidi \fswiss\fcharset162\fprq2 Helvetica Tur;}{\f374\fbidi \fswiss\fcharset177\fprq2 Helvetica (Hebrew);} +{\f375\fbidi \fswiss\fcharset178\fprq2 Helvetica (Arabic);}{\f376\fbidi \fswiss\fcharset186\fprq2 Helvetica Baltic;}{\f377\fbidi \fswiss\fcharset163\fprq2 Helvetica (Vietnamese);}{\f669\fbidi \froman\fcharset238\fprq2 Cambria Math CE;} +{\f670\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}{\f672\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f673\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f676\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;} +{\f677\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);}{\f699\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f700\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\f702\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;} +{\f703\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f704\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\f705\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\f706\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;} +{\f707\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;} +{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;}{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;}{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;} +{\fhimajor\f31533\fbidi \fswiss\fcharset177\fprq2 Calibri Light (Hebrew);}{\fhimajor\f31534\fbidi \fswiss\fcharset178\fprq2 Calibri Light (Arabic);}{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;} +{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} +{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\fhiminor\f31573\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);} +{\fhiminor\f31574\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);} +{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0; +\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128; +\red192\green192\blue192;\red0\green0\blue0;\red0\green0\blue0;\red51\green51\blue51;}{\*\defchp \fs22\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap \ql \li0\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af24\afs22\alang1025 \ltrch\fcs0 +\fs22\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* \ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1 -\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused -Normal Table;}}{\*\pgptbl {\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid6833241\rsid9134832}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim0}{\info{\operator Bob Eaton} -{\creatim\yr2021\mo8\dy28\hr17\min5}{\revtim\yr2021\mo8\dy28\hr17\min6}{\version2}{\edmins1}{\nofpages1}{\nofwords161}{\nofchars918}{\nofcharsws1077}{\vern29}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}} -\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1081 \ltrch\fcs0 \fs22\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused +Normal Table;}}{\*\pgptbl {\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid3604928\rsid6833241\rsid9134832}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim0}{\info +{\operator Bob Eaton}{\creatim\yr2021\mo8\dy28\hr17\min5}{\revtim\yr2023\mo3\dy15\hr6\min59}{\version3}{\edmins1}{\nofpages1}{\nofwords161}{\nofchars918}{\nofcharsws1077}{\vern67}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml} +}\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect \widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120\dghorigin1701 \dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale100\rsidroot9134832 \nouicompat \fet0{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1 \pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5 \pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang -{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa150\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 \cbpat8 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 +{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa150\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 \cbpat8 \rtlch\fcs1 \af24\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1033\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af4\afs21 \ltrch\fcs0 \f4\fs21\cf19\insrsid6833241 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT) \par }\pard \ltrpar\ql \li0\ri0\sa150\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid9134832 \cbpat8 {\rtlch\fcs1 \af4\afs21 \ltrch\fcs0 \f4\fs21\cf19\insrsid6833241 \hich\af4\dbch\af31505\loch\f4 Copyright }{\rtlch\fcs1 \af4\afs21 \ltrch\fcs0 -\f4\fs21\cf19\insrsid9134832\charrsid9134832 \loch\af4\dbch\af31505\hich\f4 \'a9}{\rtlch\fcs1 \af4\afs21 \ltrch\fcs0 \f4\fs21\cf19\insrsid9134832 \hich\af4\dbch\af31505\loch\f4 \hich\af4\dbch\af31505\loch\f4 2021}{\rtlch\fcs1 \af4\afs21 \ltrch\fcs0 -\f4\fs21\cf19\insrsid6833241 \hich\af4\dbch\af31505\loch\f4 SIL International +\f4\fs21\cf19\insrsid9134832\charrsid9134832 \loch\af4\dbch\af31505\hich\f4 \'a9}{\rtlch\fcs1 \af4\afs21 \ltrch\fcs0 \f4\fs21\cf19\insrsid9134832 \hich\af4\dbch\af31505\loch\f4 202}{\rtlch\fcs1 \af4\afs21 \ltrch\fcs0 \f4\fs21\cf19\insrsid3604928 +\hich\af4\dbch\af31505\loch\f4 3}{\rtlch\fcs1 \af4\afs21 \ltrch\fcs0 \f4\fs21\cf19\insrsid6833241 \hich\af4\dbch\af31505\loch\f4 SIL International \par }\pard \ltrpar\ql \li0\ri0\sa150\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 \cbpat8 {\rtlch\fcs1 \af4\afs21 \ltrch\fcs0 \f4\fs21\cf19\insrsid6833241 \hich\af4\dbch\af31505\loch\f4 P\hich\af4\dbch\af31505\loch\f4 -ermission is hereby granted, free of charge, to any person obtain\hich\af4\dbch\af31505\loch\f4 -ing a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the S -\hich\af4\dbch\af31505\loch\f4 o\hich\af4\dbch\af31505\loch\f4 ftware, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PR\hich\af4\dbch\af31505\loch\f4 -OVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CL -\hich\af4\dbch\af31505\loch\f4 A\hich\af4\dbch\af31505\loch\f4 IM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +ermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, me +\hich\af4\dbch\af31505\loch\f4 r\hich\af4\dbch\af31505\loch\f4 ge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all c\hich\af4\dbch\af31505\loch\f4 opies or substantial portions of the Software. +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO E +\hich\af4\dbch\af31505\loch\f4 +VENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \par }\pard \ltrpar\ql \li0\ri0\sa160\sl252\slmult1\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\insrsid6833241 \par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a @@ -143,35 +144,25 @@ faadb081f196af190c6a98242f8467912ab0a651ad6a5a548d8cc3c1aafb6121653923699635d3ca \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym; \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition; \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Table;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 1; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 2; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 2; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 3; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 2; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 6; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 2; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 6; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 2; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Contemporary;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Elegant;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Professional; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 2; -\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Theme;\lsdsemihidden1 \lsdlocked0 Placeholder Text; -\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2; -\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List; -\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdpriority61 \lsdlocked0 Light List Accent 1; -\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdsemihidden1 \lsdlocked0 Revision; -\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1; -\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdpriority72 \lsdlocked0 Colorful List Accent 1; -\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; -\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2; -\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2; -\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; -\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3; -\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4; -\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; -\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4; -\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5; -\lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid; +\lsdsemihidden1 \lsdlocked0 Placeholder Text;\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid; +\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2; +\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List;\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1; +\lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1; +\lsdsemihidden1 \lsdlocked0 Revision;\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1; +\lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2; +\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3; +\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4; +\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdpriority62 \lsdlocked0 Light Grid Accent 5; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5; \lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6; \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6; @@ -213,8 +204,8 @@ fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e50000000000000000000000006096 -c7eb589cd701feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000b072 +0d953557d901feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file From 43a308f3f9edba9f28de974d66a4d260d3180a8b Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sat, 18 Mar 2023 06:15:57 -0500 Subject: [PATCH 33/71] add a new intermediate class that can create different TranslationHelperForm instances based on the font + converter, so that we can support multiple different ones at the same time --- .../TranslationHelperForm.cs | 49 ++++++++++++++++--- 1 file changed, 43 insertions(+), 6 deletions(-) diff --git a/src/SILConvertersOffice/TranslationHelperForm.cs b/src/SILConvertersOffice/TranslationHelperForm.cs index 6a97b80b..e108f238 100644 --- a/src/SILConvertersOffice/TranslationHelperForm.cs +++ b/src/SILConvertersOffice/TranslationHelperForm.cs @@ -9,7 +9,46 @@ namespace SILConvertersOffice { - internal partial class TranslationHelperForm : Form, IBaseConverterForm, IBackTranslationHelperDataSource + /// <summary> + /// each project (read: font and converter combination) needs its own TranslationHelperForm + /// so it can manage things like its own SpellFixer and set of EncConverters to use. So use + /// this class (w/ an 's') to triangulate between the different instances of it based on the + /// requested FontConverter + /// </summary> + internal class TranslationHelperForms : IBaseConverterForm + { + private static TranslationHelperForm _current; + private Dictionary<FontConverter, TranslationHelperForm> Forms = new Dictionary<FontConverter, TranslationHelperForm>(); + + bool IBaseConverterForm.SkipIdenticalValues => false; // this was a feature for checking round-tripping, which doesn't apply here + + string IBaseConverterForm.ForwardString + { + get + { + return _current?.ForwardString; + } + + set + { + _current.ForwardString = value; + } + } + + FormButtons IBaseConverterForm.Show(FontConverter aThisFC, string strInput, string strOutput) + { + if (!Forms.TryGetValue(aThisFC, out var form)) + { + form = new TranslationHelperForm(); + } + + _current = form; + + return _current.Show(aThisFC, strInput, strOutput); + } + } + + internal partial class TranslationHelperForm : Form, IBackTranslationHelperDataSource { protected FontConverter _theFontsAndEncConverter; protected BackTranslationHelperModel _model; @@ -21,9 +60,7 @@ public TranslationHelperForm() InitializeComponent(); } - bool IBaseConverterForm.SkipIdenticalValues => false; // this was a feature for checking round-tripping, which doesn't apply here - - string IBaseConverterForm.ForwardString + public string ForwardString { get { @@ -42,7 +79,7 @@ string IBaseConverterForm.ForwardString } } - FormButtons IBaseConverterForm.Show(FontConverter fontConverter, string sourceText, string targetText) + public FormButtons Show(FontConverter fontConverter, string sourceText, string targetText) { WordApp.SetCursorToWaiting(); ButtonPressed = FormButtons.Cancel; // reset and be pessimistic @@ -64,7 +101,7 @@ FormButtons IBaseConverterForm.Show(FontConverter fontConverter, string sourceTe }, }; - // this form is the implementation of the way to get get data + // this form is the implementation of the way to get data backTranslationHelperCtrl.BackTranslationHelperDataSource = this; if (!backTranslationHelperCtrl.TheTranslators.Any(t => t.Name == _theFontsAndEncConverter.DirectableEncConverter.GetEncConverter.Name)) backTranslationHelperCtrl.TheTranslators.Add(_theFontsAndEncConverter.DirectableEncConverter.GetEncConverter); From d4ab0590e6ecb163e54c2f15a80212b29f4a688f Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sat, 18 Mar 2023 06:28:33 -0500 Subject: [PATCH 34/71] keep track of location so it doesn't shift positions for each translation --- src/SILConvertersOffice/FindReplaceForm.cs | 23 +++++++---- .../FontConvertersPicker.cs | 33 ++++++++++------ .../Properties/Settings.Designer.cs | 38 ++++++++++++++++++- .../Properties/Settings.settings | 9 +++++ .../SILConvertersOffice.csproj | 12 +++--- .../TranslationHelperForm.Designer.cs | 8 ++++ .../TranslationHelperForm.cs | 20 ++++++++++ .../TranslationHelperForm.resx | 16 -------- src/SILConvertersOffice/app.config | 20 +++++++++- .../Properties/Settings.Designer.cs | 38 ++++++++++++++++++- .../Properties/Settings.settings | 11 +++++- .../SILConvertersOffice07.csproj | 1 - src/SILConvertersOffice07/app.config | 20 +++++++++- .../Properties/Settings.Designer.cs | 38 ++++++++++++++++++- .../Properties/Settings.settings | 11 +++++- .../SILConvertersOffice10.csproj | 12 +++++- src/SILConvertersOffice10/app.config | 20 +++++++++- .../Properties/Settings.Designer.cs | 38 ++++++++++++++++++- .../Properties/Settings.settings | 11 +++++- .../SILConvertersOffice13.csproj | 1 - src/SILConvertersOffice13/app.config | 20 +++++++++- 21 files changed, 343 insertions(+), 57 deletions(-) diff --git a/src/SILConvertersOffice/FindReplaceForm.cs b/src/SILConvertersOffice/FindReplaceForm.cs index 4fdba5ba..90a37f83 100644 --- a/src/SILConvertersOffice/FindReplaceForm.cs +++ b/src/SILConvertersOffice/FindReplaceForm.cs @@ -7,6 +7,15 @@ using ECInterfaces; using SilEncConverters40; using Word = Microsoft.Office.Interop.Word; +#if BUILD_FOR_OFF11 +using SILConvertersOffice.Properties; +#elif BUILD_FOR_OFF12 +using SILConvertersOffice07.Properties; +#elif BUILD_FOR_OFF14 +using SILConvertersOffice10.Properties; +#elif BUILD_FOR_OFF15 +using SILConvertersOffice13.Properties; +#endif namespace SILConvertersOffice { @@ -37,16 +46,16 @@ public FindReplaceForm(WordFindReplaceDocument doc) m_doc = doc; // make sure these exist so don't throw an error later when we try to add to them - if (Properties.Settings.Default.RecentFindWhat == null) - Properties.Settings.Default.RecentFindWhat = new System.Collections.Specialized.StringCollection(); + if (Settings.Default.RecentFindWhat == null) + Settings.Default.RecentFindWhat = new System.Collections.Specialized.StringCollection(); else - foreach (string str in Properties.Settings.Default.RecentFindWhat) + foreach (string str in Settings.Default.RecentFindWhat) comboBoxFindWhat.Items.Add(str); - if (Properties.Settings.Default.RecentReplaceWith == null) - Properties.Settings.Default.RecentReplaceWith = new System.Collections.Specialized.StringCollection(); + if (Settings.Default.RecentReplaceWith == null) + Settings.Default.RecentReplaceWith = new System.Collections.Specialized.StringCollection(); else - foreach (string str in Properties.Settings.Default.RecentReplaceWith) + foreach (string str in Settings.Default.RecentReplaceWith) comboBoxReplaceWith.Items.Add(str); #if BUILD_FOR_OFF15 @@ -61,7 +70,7 @@ public FindReplaceForm(WordFindReplaceDocument doc) helpProvider.SetHelpString(this, SILConvertersOffice07.Properties.Resources.FindReplaceFormHelpString); helpProvider.SetHelpString(ecTextBoxFindWhat, SILConvertersOffice07.Properties.Resources.ecTextBoxFindWhatHelpString); helpProvider.SetHelpString(ecTextBoxReplaceWith, SILConvertersOffice07.Properties.Resources.ecTextBoxReplaceWithHelpString); -#else +#elif BUILD_FOR_OFF11 helpProvider.SetHelpString(this, Properties.Resources.FindReplaceFormHelpString); helpProvider.SetHelpString(ecTextBoxFindWhat, Properties.Resources.ecTextBoxFindWhatHelpString); helpProvider.SetHelpString(ecTextBoxReplaceWith, Properties.Resources.ecTextBoxReplaceWithHelpString); diff --git a/src/SILConvertersOffice/FontConvertersPicker.cs b/src/SILConvertersOffice/FontConvertersPicker.cs index 4176deeb..b4d16bdb 100644 --- a/src/SILConvertersOffice/FontConvertersPicker.cs +++ b/src/SILConvertersOffice/FontConvertersPicker.cs @@ -14,6 +14,15 @@ using System.Collections; using System.IO; // FileStream using System.Runtime.Serialization; // for SerializationException +#if BUILD_FOR_OFF11 +using SILConvertersOffice.Properties; +#elif BUILD_FOR_OFF12 +using SILConvertersOffice07.Properties; +#elif BUILD_FOR_OFF14 +using SILConvertersOffice10.Properties; +#elif BUILD_FOR_OFF15 +using SILConvertersOffice13.Properties; +#endif namespace SILConvertersOffice { @@ -50,10 +59,10 @@ public FontConvertersPicker(OfficeDocument doc) protected void InsureSettings() { // make sure we have the collection around so we don't have to check it later - if (Properties.Settings.Default.ConverterMappingRecentFiles == null) + if (Settings.Default.ConverterMappingRecentFiles == null) { - Properties.Settings.Default.ConverterMappingRecentFiles = new System.Collections.Specialized.StringCollection(); - Properties.Settings.Default.Save(); + Settings.Default.ConverterMappingRecentFiles = new System.Collections.Specialized.StringCollection(); + Settings.Default.Save(); } } @@ -515,13 +524,13 @@ public void AddToConverterMappingRecentlyUsed(string strFilename) System.Diagnostics.Debug.Assert(!String.IsNullOrEmpty(strFilename)); // add this filename to the list of recently used files - if (Properties.Settings.Default.ConverterMappingRecentFiles.Contains(strFilename)) - Properties.Settings.Default.ConverterMappingRecentFiles.Remove(strFilename); - else if (Properties.Settings.Default.ConverterMappingRecentFiles.Count > nMaxRecentFiles) - Properties.Settings.Default.ConverterMappingRecentFiles.RemoveAt(nMaxRecentFiles); + if (Settings.Default.ConverterMappingRecentFiles.Contains(strFilename)) + Settings.Default.ConverterMappingRecentFiles.Remove(strFilename); + else if (Settings.Default.ConverterMappingRecentFiles.Count > nMaxRecentFiles) + Settings.Default.ConverterMappingRecentFiles.RemoveAt(nMaxRecentFiles); - Properties.Settings.Default.ConverterMappingRecentFiles.Insert(0, strFilename); - Properties.Settings.Default.Save(); + Settings.Default.ConverterMappingRecentFiles.Insert(0, strFilename); + Settings.Default.Save(); } private void recentFilesToolStripMenuItem_Click(object sender, EventArgs e) @@ -536,7 +545,7 @@ private void recentFilesToolStripMenuItem_Click(object sender, EventArgs e) catch (Exception ex) { // probably means the file doesn't exist anymore, so remove it from the recent used list - Properties.Settings.Default.ConverterMappingRecentFiles.Remove(aRecentFile.Text); + Settings.Default.ConverterMappingRecentFiles.Remove(aRecentFile.Text); MessageBox.Show(ex.Message, OfficeApp.cstrCaption); } } @@ -550,8 +559,8 @@ private void converterMappingToolStripMenuItem_DropDownOpening(object sender, Ev this.setDefaultConverterToolStripMenuItem.Enabled = bRowsExist; recentToolStripMenuItem.DropDownItems.Clear(); - foreach (string strRecentFile in Properties.Settings.Default.ConverterMappingRecentFiles) - recentToolStripMenuItem.DropDownItems.Add(strRecentFile, null, recentFilesToolStripMenuItem_Click); + foreach (string strRecentFile in Settings.Default.ConverterMappingRecentFiles) + recentToolStripMenuItem.DropDownItems.Add(strRecentFile, null, RecentFilesToolStripMenuItem_Click); recentToolStripMenuItem.Enabled = (recentToolStripMenuItem.DropDownItems.Count > 0); } } diff --git a/src/SILConvertersOffice/Properties/Settings.Designer.cs b/src/SILConvertersOffice/Properties/Settings.Designer.cs index c5906302..8bbc3893 100644 --- a/src/SILConvertersOffice/Properties/Settings.Designer.cs +++ b/src/SILConvertersOffice/Properties/Settings.Designer.cs @@ -12,7 +12,7 @@ namespace SILConvertersOffice.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.5.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); @@ -55,5 +55,41 @@ public static Settings Default { this["ConverterMappingRecentFiles"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("Normal")] + public global::System.Windows.Forms.FormWindowState DefaultWindowState { + get { + return ((global::System.Windows.Forms.FormWindowState)(this["DefaultWindowState"])); + } + set { + this["DefaultWindowState"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("0, 0")] + public global::System.Drawing.Point WindowLocation { + get { + return ((global::System.Drawing.Point)(this["WindowLocation"])); + } + set { + this["WindowLocation"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("800, 450")] + public global::System.Drawing.Size WindowSize { + get { + return ((global::System.Drawing.Size)(this["WindowSize"])); + } + set { + this["WindowSize"] = value; + } + } } } diff --git a/src/SILConvertersOffice/Properties/Settings.settings b/src/SILConvertersOffice/Properties/Settings.settings index 850ac784..8c9100ea 100644 --- a/src/SILConvertersOffice/Properties/Settings.settings +++ b/src/SILConvertersOffice/Properties/Settings.settings @@ -11,5 +11,14 @@ <Setting Name="ConverterMappingRecentFiles" Type="System.Collections.Specialized.StringCollection" Scope="User"> <Value Profile="(Default)" /> </Setting> + <Setting Name="DefaultWindowState" Type="System.Windows.Forms.FormWindowState" Scope="User"> + <Value Profile="(Default)">Normal</Value> + </Setting> + <Setting Name="WindowLocation" Type="System.Drawing.Point" Scope="User"> + <Value Profile="(Default)">0, 0</Value> + </Setting> + <Setting Name="WindowSize" Type="System.Drawing.Size" Scope="User"> + <Value Profile="(Default)">800, 450</Value> + </Setting> </Settings> </SettingsFile> \ No newline at end of file diff --git a/src/SILConvertersOffice/SILConvertersOffice.csproj b/src/SILConvertersOffice/SILConvertersOffice.csproj index e03e6c96..9ad61fb7 100644 --- a/src/SILConvertersOffice/SILConvertersOffice.csproj +++ b/src/SILConvertersOffice/SILConvertersOffice.csproj @@ -44,7 +44,7 @@ </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> <OutputPath>..\..\output\x86\Release\</OutputPath> - <DefineConstants>TRACE</DefineConstants> + <DefineConstants>TRACE;BUILD_FOR_OFF11</DefineConstants> <Optimize>true</Optimize> <RegisterForComInterop>false</RegisterForComInterop> <PlatformTarget>x86</PlatformTarget> @@ -56,7 +56,7 @@ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> <DebugSymbols>true</DebugSymbols> <OutputPath>..\..\output\x86\Debug\</OutputPath> - <DefineConstants>DEBUG;TRACE</DefineConstants> + <DefineConstants>TRACE;DEBUG;BUILD_FOR_OFF11</DefineConstants> <RegisterForComInterop>false</RegisterForComInterop> <PlatformTarget>x86</PlatformTarget> <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression> @@ -66,7 +66,7 @@ </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'"> <OutputPath>..\..\output\x64\Release\</OutputPath> - <DefineConstants>TRACE</DefineConstants> + <DefineConstants>TRACE;BUILD_FOR_OFF11</DefineConstants> <Optimize>true</Optimize> <PlatformTarget>x64</PlatformTarget> <LangVersion>latest</LangVersion> @@ -75,7 +75,7 @@ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'"> <DebugSymbols>true</DebugSymbols> <OutputPath>..\..\output\x64\Debug\</OutputPath> - <DefineConstants>DEBUG;TRACE</DefineConstants> + <DefineConstants>TRACE;DEBUG;BUILD_FOR_OFF11</DefineConstants> <PlatformTarget>x64</PlatformTarget> <LangVersion>latest</LangVersion> <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> @@ -188,9 +188,7 @@ </Compile> <Compile Include="PubDocumentProcessor.cs" /> <Compile Include="PubRange.cs" /> - <Compile Include="TranslationHelperForm.cs"> - <SubType>Form</SubType> - </Compile> + <Compile Include="TranslationHelperForm.cs" /> <Compile Include="TranslationHelperForm.Designer.cs"> <DependentUpon>TranslationHelperForm.cs</DependentUpon> </Compile> diff --git a/src/SILConvertersOffice/TranslationHelperForm.Designer.cs b/src/SILConvertersOffice/TranslationHelperForm.Designer.cs index 92e1f6eb..2df444ef 100644 --- a/src/SILConvertersOffice/TranslationHelperForm.Designer.cs +++ b/src/SILConvertersOffice/TranslationHelperForm.Designer.cs @@ -1,4 +1,6 @@  +using System; + namespace SILConvertersOffice { partial class TranslationHelperForm @@ -38,6 +40,11 @@ private void InitializeComponent() this.backTranslationHelperCtrl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + // if you edit the form (e.g. to add a control), then the designer auto coding will change this "AutoSize = false" + // to (possibly true) and add an 'AutoSizeMode = GrowAndShrink'... but this will cause the embedded control to + // stop showing properly. It *must* be AutoSize = false. (keep this comment here too, so the next person sees it too) + // (I'm not sure if it's specifically necessary, but you might need to restore the PerformLayout at the bottom, + // which the editing of the form will remove too) this.backTranslationHelperCtrl.AutoSize = false; this.backTranslationHelperCtrl.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; this.backTranslationHelperCtrl.Dock = System.Windows.Forms.DockStyle.Fill; @@ -55,6 +62,7 @@ private void InitializeComponent() this.Controls.Add(this.backTranslationHelperCtrl); this.Name = "TranslationHelperForm"; this.Text = "Back Translating from {0} - {1}"; + this.Load += new System.EventHandler(this.TranslationHelperForm_Load); this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.TranslationHelperForm_FormClosing); this.ResumeLayout(false); this.PerformLayout(); diff --git a/src/SILConvertersOffice/TranslationHelperForm.cs b/src/SILConvertersOffice/TranslationHelperForm.cs index e108f238..ff25b172 100644 --- a/src/SILConvertersOffice/TranslationHelperForm.cs +++ b/src/SILConvertersOffice/TranslationHelperForm.cs @@ -6,6 +6,15 @@ using System.Drawing; using System.Linq; using System.Windows.Forms; +#if BUILD_FOR_OFF11 +using SILConvertersOffice.Properties; +#elif BUILD_FOR_OFF12 +using SILConvertersOffice07.Properties; +#elif BUILD_FOR_OFF14 +using SILConvertersOffice10.Properties; +#elif BUILD_FOR_OFF15 +using SILConvertersOffice13.Properties; +#endif namespace SILConvertersOffice { @@ -207,6 +216,17 @@ void IBackTranslationHelperDataSource.Cancel() Close(); } + private void TranslationHelperForm_Load(object sender, EventArgs e) + { + Location = Settings.Default.WindowLocation; + WindowState = Settings.Default.DefaultWindowState; + if (MinimumSize.Height <= Settings.Default.WindowSize.Height && + MinimumSize.Width <= Settings.Default.WindowSize.Width) + { + Size = Settings.Default.WindowSize; + } + } + private void TranslationHelperForm_FormClosing(object sender, FormClosingEventArgs e) { // only allow Cancel or ReplaceEvery diff --git a/src/SILConvertersOffice/TranslationHelperForm.resx b/src/SILConvertersOffice/TranslationHelperForm.resx index de129925..1af7de15 100644 --- a/src/SILConvertersOffice/TranslationHelperForm.resx +++ b/src/SILConvertersOffice/TranslationHelperForm.resx @@ -117,20 +117,4 @@ <resheader name="writer"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> - <data name="backTranslationHelperCtrl.NewTargetTexts" mimetype="application/x-microsoft.net.object.binary.base64"> - <value> - AAEAAAD/////AQAAAAAAAAAMAgAAAKcBQmFja1RyYW5zbGF0aW9uSGVscGVyLCBWZXJzaW9uPTEuMC4w - LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49ZjE0NDdiYWUxZTYzZjQ4NV1dLCBtc2Nv - cmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1 - YzU2MTkzNGUwODkMAwAAAFhCYWNrVHJhbnNsYXRpb25IZWxwZXIsIFZlcnNpb249MS4wLjAuMCwgQ3Vs - dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1mMTQ0N2JhZTFlNjNmNDg1BQEAAABHU3lzdGVtLkNv - bGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tCYWNrVHJhbnNsYXRpb25IZWxwZXIuVGFyZ2V0UG9zc2li - bGUDAAAABl9pdGVtcwVfc2l6ZQhfdmVyc2lvbgQAACZCYWNrVHJhbnNsYXRpb25IZWxwZXIuVGFyZ2V0 - UG9zc2libGVbXQMAAAAICAIAAAAJBAAAAAEAAAABAAAABwQAAAAAAQAAAAQAAAAEJEJhY2tUcmFuc2xh - dGlvbkhlbHBlci5UYXJnZXRQb3NzaWJsZQMAAAAJBQAAAA0DBQUAAAAkQmFja1RyYW5zbGF0aW9uSGVs - cGVyLlRhcmdldFBvc3NpYmxlAwAAAB48UG9zc2libGVJbmRleD5rX19CYWNraW5nRmllbGQfPFRyYW5z - bGF0b3JOYW1lPmtfX0JhY2tpbmdGaWVsZBs8VGFyZ2V0RGF0YT5rX19CYWNraW5nRmllbGQAAQEIAwAA - AAAAAAAKBgYAAAAACw== -</value> - </data> </root> \ No newline at end of file diff --git a/src/SILConvertersOffice/app.config b/src/SILConvertersOffice/app.config index cc4c784e..9a8f0d4d 100644 --- a/src/SILConvertersOffice/app.config +++ b/src/SILConvertersOffice/app.config @@ -1,6 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> <configuration> - <runtime> + <configSections> + <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > + <section name="SILConvertersOffice.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> + </sectionGroup> + </configSections> + <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> @@ -52,4 +57,17 @@ </dependentAssembly> </assemblyBinding> </runtime> + <userSettings> + <SILConvertersOffice.Properties.Settings> + <setting name="DefaultWindowState" serializeAs="String"> + <value>Normal</value> + </setting> + <setting name="WindowLocation" serializeAs="String"> + <value>0, 0</value> + </setting> + <setting name="WindowSize" serializeAs="String"> + <value>800, 450</value> + </setting> + </SILConvertersOffice.Properties.Settings> + </userSettings> </configuration> \ No newline at end of file diff --git a/src/SILConvertersOffice07/Properties/Settings.Designer.cs b/src/SILConvertersOffice07/Properties/Settings.Designer.cs index e511f12a..76bdad5e 100644 --- a/src/SILConvertersOffice07/Properties/Settings.Designer.cs +++ b/src/SILConvertersOffice07/Properties/Settings.Designer.cs @@ -12,7 +12,7 @@ namespace SILConvertersOffice07.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.5.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); @@ -55,5 +55,41 @@ public static Settings Default { this["ConverterMappingRecentFiles"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("Normal")] + public global::System.Windows.Forms.FormWindowState DefaultWindowState { + get { + return ((global::System.Windows.Forms.FormWindowState)(this["DefaultWindowState"])); + } + set { + this["DefaultWindowState"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("0, 0")] + public global::System.Drawing.Point WindowLocation { + get { + return ((global::System.Drawing.Point)(this["WindowLocation"])); + } + set { + this["WindowLocation"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("800, 450")] + public global::System.Drawing.Size WindowSize { + get { + return ((global::System.Drawing.Size)(this["WindowSize"])); + } + set { + this["WindowSize"] = value; + } + } } } diff --git a/src/SILConvertersOffice07/Properties/Settings.settings b/src/SILConvertersOffice07/Properties/Settings.settings index fdb4efbc..656226d5 100644 --- a/src/SILConvertersOffice07/Properties/Settings.settings +++ b/src/SILConvertersOffice07/Properties/Settings.settings @@ -1,5 +1,5 @@ <?xml version='1.0' encoding='utf-8'?> -<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="SILConvertersOffice.Properties" GeneratedClassName="Settings"> +<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="SILConvertersOffice07.Properties" GeneratedClassName="Settings"> <Profiles /> <Settings> <Setting Name="RecentFindWhat" Type="System.Collections.Specialized.StringCollection" Scope="User"> @@ -11,5 +11,14 @@ <Setting Name="ConverterMappingRecentFiles" Type="System.Collections.Specialized.StringCollection" Scope="User"> <Value Profile="(Default)" /> </Setting> + <Setting Name="DefaultWindowState" Type="System.Windows.Forms.FormWindowState" Scope="User"> + <Value Profile="(Default)">Normal</Value> + </Setting> + <Setting Name="WindowLocation" Type="System.Drawing.Point" Scope="User"> + <Value Profile="(Default)">0, 0</Value> + </Setting> + <Setting Name="WindowSize" Type="System.Drawing.Size" Scope="User"> + <Value Profile="(Default)">800, 450</Value> + </Setting> </Settings> </SettingsFile> \ No newline at end of file diff --git a/src/SILConvertersOffice07/SILConvertersOffice07.csproj b/src/SILConvertersOffice07/SILConvertersOffice07.csproj index 7e41b3c6..ffda5730 100644 --- a/src/SILConvertersOffice07/SILConvertersOffice07.csproj +++ b/src/SILConvertersOffice07/SILConvertersOffice07.csproj @@ -233,7 +233,6 @@ </Compile> <Compile Include="..\SILConvertersOffice\TranslationHelperForm.cs"> <Link>TranslationHelperForm.cs</Link> - <SubType>Form</SubType> </Compile> <Compile Include="..\SILConvertersOffice\TranslationHelperForm.designer.cs"> <Link>TranslationHelperForm.designer.cs</Link> diff --git a/src/SILConvertersOffice07/app.config b/src/SILConvertersOffice07/app.config index a40e82f6..542091f8 100644 --- a/src/SILConvertersOffice07/app.config +++ b/src/SILConvertersOffice07/app.config @@ -1,6 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> <configuration> - <runtime> + <configSections> + <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > + <section name="SILConvertersOffice07.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> + </sectionGroup> + </configSections> + <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> @@ -52,4 +57,17 @@ </dependentAssembly> </assemblyBinding> </runtime> + <userSettings> + <SILConvertersOffice07.Properties.Settings> + <setting name="DefaultWindowState" serializeAs="String"> + <value>Normal</value> + </setting> + <setting name="WindowLocation" serializeAs="String"> + <value>0, 0</value> + </setting> + <setting name="WindowSize" serializeAs="String"> + <value>800, 450</value> + </setting> + </SILConvertersOffice07.Properties.Settings> + </userSettings> </configuration> \ No newline at end of file diff --git a/src/SILConvertersOffice10/Properties/Settings.Designer.cs b/src/SILConvertersOffice10/Properties/Settings.Designer.cs index d30151b3..565afd43 100644 --- a/src/SILConvertersOffice10/Properties/Settings.Designer.cs +++ b/src/SILConvertersOffice10/Properties/Settings.Designer.cs @@ -12,7 +12,7 @@ namespace SILConvertersOffice10.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.7.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.5.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); @@ -55,5 +55,41 @@ public static Settings Default { this["ConverterMappingRecentFiles"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("Normal")] + public global::System.Windows.Forms.FormWindowState DefaultWindowState { + get { + return ((global::System.Windows.Forms.FormWindowState)(this["DefaultWindowState"])); + } + set { + this["DefaultWindowState"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("0, 0")] + public global::System.Drawing.Point WindowLocation { + get { + return ((global::System.Drawing.Point)(this["WindowLocation"])); + } + set { + this["WindowLocation"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("800, 450")] + public global::System.Drawing.Size WindowSize { + get { + return ((global::System.Drawing.Size)(this["WindowSize"])); + } + set { + this["WindowSize"] = value; + } + } } } diff --git a/src/SILConvertersOffice10/Properties/Settings.settings b/src/SILConvertersOffice10/Properties/Settings.settings index fdb4efbc..6b2cdcd3 100644 --- a/src/SILConvertersOffice10/Properties/Settings.settings +++ b/src/SILConvertersOffice10/Properties/Settings.settings @@ -1,5 +1,5 @@ <?xml version='1.0' encoding='utf-8'?> -<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="SILConvertersOffice.Properties" GeneratedClassName="Settings"> +<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="SILConvertersOffice10.Properties" GeneratedClassName="Settings"> <Profiles /> <Settings> <Setting Name="RecentFindWhat" Type="System.Collections.Specialized.StringCollection" Scope="User"> @@ -11,5 +11,14 @@ <Setting Name="ConverterMappingRecentFiles" Type="System.Collections.Specialized.StringCollection" Scope="User"> <Value Profile="(Default)" /> </Setting> + <Setting Name="DefaultWindowState" Type="System.Windows.Forms.FormWindowState" Scope="User"> + <Value Profile="(Default)">Normal</Value> + </Setting> + <Setting Name="WindowLocation" Type="System.Drawing.Point" Scope="User"> + <Value Profile="(Default)">0, 0</Value> + </Setting> + <Setting Name="WindowSize" Type="System.Drawing.Size" Scope="User"> + <Value Profile="(Default)">800, 450</Value> + </Setting> </Settings> </SettingsFile> \ No newline at end of file diff --git a/src/SILConvertersOffice10/SILConvertersOffice10.csproj b/src/SILConvertersOffice10/SILConvertersOffice10.csproj index 2cf59bf2..366811c3 100644 --- a/src/SILConvertersOffice10/SILConvertersOffice10.csproj +++ b/src/SILConvertersOffice10/SILConvertersOffice10.csproj @@ -227,7 +227,6 @@ </Compile> <Compile Include="..\SILConvertersOffice\TranslationHelperForm.cs"> <Link>TranslationHelperForm.cs</Link> - <SubType>Form</SubType> </Compile> <Compile Include="..\SILConvertersOffice\TranslationHelperForm.designer.cs"> <Link>TranslationHelperForm.designer.cs</Link> @@ -261,6 +260,11 @@ <DesignTime>True</DesignTime> <DependentUpon>Resources.resx</DependentUpon> </Compile> + <Compile Include="Properties\Settings.Designer.cs"> + <AutoGen>True</AutoGen> + <DesignTimeSharedInput>True</DesignTimeSharedInput> + <DependentUpon>Settings.settings</DependentUpon> + </Compile> </ItemGroup> <ItemGroup> <EmbeddedResource Include="..\SILConvertersOffice\BaseConverterForm.resx"> @@ -294,6 +298,7 @@ <EmbeddedResource Include="..\SILConvertersOffice07\RibbonPublisher.xml" /> <EmbeddedResource Include="..\SILConvertersOffice\TranslationHelperForm.resx"> <DependentUpon>TranslationHelperForm.cs</DependentUpon> + <SubType>Designer</SubType> </EmbeddedResource> </ItemGroup> <ItemGroup> @@ -305,7 +310,10 @@ <None Include="app.config" /> <None Include="FieldWorks.snk" /> <None Include="packages.config" /> - <None Include="Properties\Settings.settings" /> + <None Include="Properties\Settings.settings"> + <Generator>SettingsSingleFileGenerator</Generator> + <LastGenOutput>Settings.Designer.cs</LastGenOutput> + </None> </ItemGroup> <ItemGroup> <Content Include="RibbonAccess.xml" /> diff --git a/src/SILConvertersOffice10/app.config b/src/SILConvertersOffice10/app.config index cc4c784e..9275ffb4 100644 --- a/src/SILConvertersOffice10/app.config +++ b/src/SILConvertersOffice10/app.config @@ -1,6 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> <configuration> - <runtime> + <configSections> + <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > + <section name="SILConvertersOffice10.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> + </sectionGroup> + </configSections> + <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> @@ -52,4 +57,17 @@ </dependentAssembly> </assemblyBinding> </runtime> + <userSettings> + <SILConvertersOffice10.Properties.Settings> + <setting name="DefaultWindowState" serializeAs="String"> + <value>Normal</value> + </setting> + <setting name="WindowLocation" serializeAs="String"> + <value>0, 0</value> + </setting> + <setting name="WindowSize" serializeAs="String"> + <value>800, 450</value> + </setting> + </SILConvertersOffice10.Properties.Settings> + </userSettings> </configuration> \ No newline at end of file diff --git a/src/SILConvertersOffice13/Properties/Settings.Designer.cs b/src/SILConvertersOffice13/Properties/Settings.Designer.cs index 971d72aa..0017f570 100644 --- a/src/SILConvertersOffice13/Properties/Settings.Designer.cs +++ b/src/SILConvertersOffice13/Properties/Settings.Designer.cs @@ -12,7 +12,7 @@ namespace SILConvertersOffice13.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.5.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); @@ -55,5 +55,41 @@ public static Settings Default { this["ConverterMappingRecentFiles"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("Normal")] + public global::System.Windows.Forms.FormWindowState DefaultWindowState { + get { + return ((global::System.Windows.Forms.FormWindowState)(this["DefaultWindowState"])); + } + set { + this["DefaultWindowState"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("0, 0")] + public global::System.Drawing.Point WindowLocation { + get { + return ((global::System.Drawing.Point)(this["WindowLocation"])); + } + set { + this["WindowLocation"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("800, 450")] + public global::System.Drawing.Size WindowSize { + get { + return ((global::System.Drawing.Size)(this["WindowSize"])); + } + set { + this["WindowSize"] = value; + } + } } } diff --git a/src/SILConvertersOffice13/Properties/Settings.settings b/src/SILConvertersOffice13/Properties/Settings.settings index fdb4efbc..c1a1dd7f 100644 --- a/src/SILConvertersOffice13/Properties/Settings.settings +++ b/src/SILConvertersOffice13/Properties/Settings.settings @@ -1,5 +1,5 @@ <?xml version='1.0' encoding='utf-8'?> -<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="SILConvertersOffice.Properties" GeneratedClassName="Settings"> +<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="SILConvertersOffice13.Properties" GeneratedClassName="Settings"> <Profiles /> <Settings> <Setting Name="RecentFindWhat" Type="System.Collections.Specialized.StringCollection" Scope="User"> @@ -11,5 +11,14 @@ <Setting Name="ConverterMappingRecentFiles" Type="System.Collections.Specialized.StringCollection" Scope="User"> <Value Profile="(Default)" /> </Setting> + <Setting Name="DefaultWindowState" Type="System.Windows.Forms.FormWindowState" Scope="User"> + <Value Profile="(Default)">Normal</Value> + </Setting> + <Setting Name="WindowLocation" Type="System.Drawing.Point" Scope="User"> + <Value Profile="(Default)">0, 0</Value> + </Setting> + <Setting Name="WindowSize" Type="System.Drawing.Size" Scope="User"> + <Value Profile="(Default)">800, 450</Value> + </Setting> </Settings> </SettingsFile> \ No newline at end of file diff --git a/src/SILConvertersOffice13/SILConvertersOffice13.csproj b/src/SILConvertersOffice13/SILConvertersOffice13.csproj index d7fd5c23..fdcdcaea 100644 --- a/src/SILConvertersOffice13/SILConvertersOffice13.csproj +++ b/src/SILConvertersOffice13/SILConvertersOffice13.csproj @@ -225,7 +225,6 @@ </Compile> <Compile Include="..\SILConvertersOffice\TranslationHelperForm.cs"> <Link>TranslationHelperForm.cs</Link> - <SubType>Form</SubType> </Compile> <Compile Include="..\SILConvertersOffice\TranslationHelperForm.designer.cs"> <Link>TranslationHelperForm.designer.cs</Link> diff --git a/src/SILConvertersOffice13/app.config b/src/SILConvertersOffice13/app.config index cc4c784e..48843d34 100644 --- a/src/SILConvertersOffice13/app.config +++ b/src/SILConvertersOffice13/app.config @@ -1,6 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> <configuration> - <runtime> + <configSections> + <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > + <section name="SILConvertersOffice13.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> + </sectionGroup> + </configSections> + <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> @@ -52,4 +57,17 @@ </dependentAssembly> </assemblyBinding> </runtime> + <userSettings> + <SILConvertersOffice13.Properties.Settings> + <setting name="DefaultWindowState" serializeAs="String"> + <value>Normal</value> + </setting> + <setting name="WindowLocation" serializeAs="String"> + <value>0, 0</value> + </setting> + <setting name="WindowSize" serializeAs="String"> + <value>800, 450</value> + </setting> + </SILConvertersOffice13.Properties.Settings> + </userSettings> </configuration> \ No newline at end of file From bd17d59e79c825aadcb23f1a3dade8b75648ae40 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sat, 18 Mar 2023 06:33:29 -0500 Subject: [PATCH 35/71] a bunch of changes suggested by VS2022 for newer version of C# --- .../FindReplaceForm.Designer.cs | 30 ++--- src/SILConvertersOffice/FindReplaceForm.cs | 49 ++++----- .../FontConvertersPicker.cs | 103 +++++++++--------- .../FontConvertersPicker.designer.cs | 22 ++-- src/SILConvertersOffice/OfficeApp.cs | 24 ++-- 5 files changed, 113 insertions(+), 115 deletions(-) diff --git a/src/SILConvertersOffice/FindReplaceForm.Designer.cs b/src/SILConvertersOffice/FindReplaceForm.Designer.cs index 94141d68..7afab97d 100644 --- a/src/SILConvertersOffice/FindReplaceForm.Designer.cs +++ b/src/SILConvertersOffice/FindReplaceForm.Designer.cs @@ -82,7 +82,7 @@ private void InitializeComponent() this.buttonReplaceAll.TabIndex = 7; this.buttonReplaceAll.Text = "Replace &All"; this.buttonReplaceAll.UseVisualStyleBackColor = true; - this.buttonReplaceAll.Click += new System.EventHandler(this.buttonReplaceAll_Click); + this.buttonReplaceAll.Click += new System.EventHandler(this.ButtonReplaceAll_Click); // // buttonReplace // @@ -92,7 +92,7 @@ private void InitializeComponent() this.buttonReplace.TabIndex = 6; this.buttonReplace.Text = "&Replace"; this.buttonReplace.UseVisualStyleBackColor = true; - this.buttonReplace.Click += new System.EventHandler(this.buttonReplace_Click); + this.buttonReplace.Click += new System.EventHandler(this.ButtonReplace_Click); // // buttonFindNext // @@ -102,7 +102,7 @@ private void InitializeComponent() this.buttonFindNext.TabIndex = 5; this.buttonFindNext.Text = "&Find Next"; this.buttonFindNext.UseVisualStyleBackColor = true; - this.buttonFindNext.Click += new System.EventHandler(this.buttonFindNext_Click); + this.buttonFindNext.Click += new System.EventHandler(this.ButtonFindNext_Click); // // checkBoxMatchCase // @@ -114,7 +114,7 @@ private void InitializeComponent() this.checkBoxMatchCase.TabIndex = 8; this.checkBoxMatchCase.Text = "Matc&h case"; this.checkBoxMatchCase.UseVisualStyleBackColor = true; - this.checkBoxMatchCase.CheckedChanged += new System.EventHandler(this.checkBoxMatchCase_CheckedChanged); + this.checkBoxMatchCase.CheckedChanged += new System.EventHandler(this.CheckBoxMatchCase_CheckedChanged); // // comboBoxReplaceWith // @@ -127,7 +127,7 @@ private void InitializeComponent() this.comboBoxReplaceWith.Name = "comboBoxReplaceWith"; this.comboBoxReplaceWith.Size = new System.Drawing.Size(427, 29); this.comboBoxReplaceWith.TabIndex = 10; - this.comboBoxReplaceWith.SelectedIndexChanged += new System.EventHandler(this.comboBoxReplaceWith_SelectedIndexChanged); + this.comboBoxReplaceWith.SelectedIndexChanged += new System.EventHandler(this.ComboBoxReplaceWith_SelectedIndexChanged); // // labelReplaceWith // @@ -149,7 +149,7 @@ private void InitializeComponent() this.comboBoxFindWhat.Name = "comboBoxFindWhat"; this.comboBoxFindWhat.Size = new System.Drawing.Size(427, 29); this.comboBoxFindWhat.TabIndex = 9; - this.comboBoxFindWhat.SelectedIndexChanged += new System.EventHandler(this.comboBoxFindWhat_SelectedIndexChanged); + this.comboBoxFindWhat.SelectedIndexChanged += new System.EventHandler(this.ComboBoxFindWhat_SelectedIndexChanged); // // labelFindWhat // @@ -170,7 +170,7 @@ private void InitializeComponent() this.buttonExpressionBuilder.TabIndex = 4; this.buttonExpressionBuilder.Text = ">"; this.buttonExpressionBuilder.UseVisualStyleBackColor = true; - this.buttonExpressionBuilder.Click += new System.EventHandler(this.buttonExpressionBuilder_Click); + this.buttonExpressionBuilder.Click += new System.EventHandler(this.ButtonExpressionBuilder_Click); // // contextMenuStripExprBuilder // @@ -201,7 +201,7 @@ private void InitializeComponent() this.regularExpressionHelpToolStripMenuItem}); this.contextMenuStripExprBuilder.Name = "contextMenuStripExprBuilder"; this.contextMenuStripExprBuilder.Size = new System.Drawing.Size(351, 484); - this.contextMenuStripExprBuilder.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.contextMenuStripExprBuilder_ItemClicked); + this.contextMenuStripExprBuilder.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.ContextMenuStripExprBuilder_ItemClicked); // // MatchAnyCharacterToolStripMenuItem // @@ -343,7 +343,7 @@ private void InitializeComponent() this.regularExpressionHelpToolStripMenuItem.Name = "regularExpressionHelpToolStripMenuItem"; this.regularExpressionHelpToolStripMenuItem.Size = new System.Drawing.Size(350, 22); this.regularExpressionHelpToolStripMenuItem.Text = "Regular Expression &Help"; - this.regularExpressionHelpToolStripMenuItem.Click += new System.EventHandler(this.regularExpressionHelpToolStripMenuItem_Click); + this.regularExpressionHelpToolStripMenuItem.Click += new System.EventHandler(this.RegularExpressionHelpToolStripMenuItem_Click); // // buttonCancel // @@ -354,7 +354,7 @@ private void InitializeComponent() this.buttonCancel.TabIndex = 11; this.buttonCancel.Text = "&Close"; this.buttonCancel.UseVisualStyleBackColor = true; - this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click); + this.buttonCancel.Click += new System.EventHandler(this.ButtonCancel_Click); // // ecTextBoxFindWhat // @@ -366,7 +366,7 @@ private void InitializeComponent() this.ecTextBoxFindWhat.Size = new System.Drawing.Size(408, 29); this.ecTextBoxFindWhat.TabIndex = 1; this.ecTextBoxFindWhat.WordWrap = false; - this.ecTextBoxFindWhat.TextChanged += new System.EventHandler(this.ecTextBox_TextChanged); + this.ecTextBoxFindWhat.TextChanged += new System.EventHandler(this.EcTextBox_TextChanged); // // ecTextBoxReplaceWith // @@ -378,7 +378,7 @@ private void InitializeComponent() this.ecTextBoxReplaceWith.Size = new System.Drawing.Size(408, 29); this.ecTextBoxReplaceWith.TabIndex = 3; this.ecTextBoxReplaceWith.WordWrap = false; - this.ecTextBoxReplaceWith.TextChanged += new System.EventHandler(this.ecTextBox_TextChanged); + this.ecTextBoxReplaceWith.TextChanged += new System.EventHandler(this.EcTextBox_TextChanged); // // progressBar // @@ -393,9 +393,9 @@ private void InitializeComponent() // this.backgroundWorker.WorkerReportsProgress = true; this.backgroundWorker.WorkerSupportsCancellation = true; - this.backgroundWorker.DoWork += new System.ComponentModel.DoWorkEventHandler(this.backgroundWorker_DoWork); - this.backgroundWorker.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.backgroundWorker_RunWorkerCompleted); - this.backgroundWorker.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.backgroundWorker_ProgressChanged); + this.backgroundWorker.DoWork += new System.ComponentModel.DoWorkEventHandler(this.BackgroundWorker_DoWork); + this.backgroundWorker.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.BackgroundWorker_RunWorkerCompleted); + this.backgroundWorker.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.BackgroundWorker_ProgressChanged); // // FindReplaceForm // diff --git a/src/SILConvertersOffice/FindReplaceForm.cs b/src/SILConvertersOffice/FindReplaceForm.cs index 90a37f83..70f0ad64 100644 --- a/src/SILConvertersOffice/FindReplaceForm.cs +++ b/src/SILConvertersOffice/FindReplaceForm.cs @@ -31,7 +31,7 @@ internal partial class FindReplaceForm : Form const string cstrClose = "&Close"; const string cstrStop = "&Stop"; - private WordFindReplaceDocument m_doc; + private readonly WordFindReplaceDocument m_doc; FindWordProcessor m_aWordByWordProcessor = null; protected SearchAreaType m_eSearchAreaType = SearchAreaType.eUnknown; @@ -105,7 +105,7 @@ protected void ProcessButtonEx(FormButtons eFormButton) // if the user clicked Find/Next, then don't give the Replace With text even if there is some m_aWordByWordProcessor = new FindWordProcessor(ecTextBoxFindWhat.Text, ecTextBoxReplaceWith.Text, - checkBoxMatchCase.Checked, ecTextBoxFindWhat.Font); + checkBoxMatchCase.Checked); } // update the button pressed information @@ -167,7 +167,7 @@ protected void DoWork(BackgroundWorker worker, WordFindReplaceDocument doc) doc.Search(worker); } - private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e) + private void BackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { BackgroundWorker worker = (BackgroundWorker)sender; DoWork(worker, e.Argument as WordFindReplaceDocument); @@ -175,7 +175,7 @@ private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e) e.Cancel = true; } - private void backgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e) + private void BackgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e) { // for us the "progress" is a new range of the document we're searching thru int nValue = (int)e.ProgressPercentage; @@ -190,7 +190,7 @@ private void backgroundWorker_ProgressChanged(object sender, ProgressChangedEven }); } - private void backgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) + private void BackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { bool bReplace = (m_aWordByWordProcessor.FormButton == FormButtons.ReplaceOnce) || (m_aWordByWordProcessor.FormButton == FormButtons.ReplaceAll); bool bContinue = false; // start again pessimistic @@ -308,7 +308,7 @@ private void backgroundWorker_RunWorkerCompleted(object sender, RunWorkerComplet base.Show(); } - private void contextMenuStripExprBuilder_ItemClicked(object sender, ToolStripItemClickedEventArgs e) + private void ContextMenuStripExprBuilder_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { string strItem = ((ToolStripItem)e.ClickedItem).Text; if (strItem != regularExpressionHelpToolStripMenuItem.Text) @@ -348,51 +348,51 @@ protected void AddToComboBox(EcTextBox tb, ComboBox cb, System.Collections.Speci } } - private void buttonFindNext_Click(object sender, EventArgs e) + private void ButtonFindNext_Click(object sender, EventArgs e) { ProcessButton(FormButtons.Next); } - private void buttonReplace_Click(object sender, EventArgs e) + private void ButtonReplace_Click(object sender, EventArgs e) { ProcessButton(FormButtons.ReplaceOnce); } - private void buttonReplaceAll_Click(object sender, EventArgs e) + private void ButtonReplaceAll_Click(object sender, EventArgs e) { ProcessButton(FormButtons.ReplaceAll); } - private void ecTextBox_TextChanged(object sender, EventArgs e) + private void EcTextBox_TextChanged(object sender, EventArgs e) { m_eSearchAreaType = SearchAreaType.eUnknown; m_aWordByWordProcessor = null; } - private void buttonExpressionBuilder_Click(object sender, EventArgs e) + private void ButtonExpressionBuilder_Click(object sender, EventArgs e) { ToolStripDropDownDirection dir = ToolStripDropDownDirection.BelowRight; this.buttonExpressionBuilder.ContextMenuStrip.Show(PointToScreen(buttonExpressionBuilder.Location), dir); } - private void comboBoxFindWhat_SelectedIndexChanged(object sender, EventArgs e) + private void ComboBoxFindWhat_SelectedIndexChanged(object sender, EventArgs e) { ecTextBoxFindWhat.Text = (string)comboBoxFindWhat.SelectedItem; } - private void comboBoxReplaceWith_SelectedIndexChanged(object sender, EventArgs e) + private void ComboBoxReplaceWith_SelectedIndexChanged(object sender, EventArgs e) { ecTextBoxReplaceWith.Text = (string)comboBoxReplaceWith.SelectedItem; } - private void regularExpressionHelpToolStripMenuItem_Click(object sender, EventArgs e) + private void RegularExpressionHelpToolStripMenuItem_Click(object sender, EventArgs e) { // launch the ICU help string strCommandLine = Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles) + @"\SIL\Help\ICU Regular Expression Plug-in About box.htm"; OfficeApp.LaunchProgram(strCommandLine, null); } - private void checkBoxMatchCase_CheckedChanged(object sender, EventArgs e) + private void CheckBoxMatchCase_CheckedChanged(object sender, EventArgs e) { m_aWordByWordProcessor = null; } @@ -403,7 +403,7 @@ private void ResetBackgroundWorker() this.backgroundWorker.CancelAsync(); } - private void buttonCancel_Click(object sender, EventArgs e) + private void ButtonCancel_Click(object sender, EventArgs e) { if (buttonCancel.Text == cstrStop) ResetBackgroundWorker(); @@ -425,10 +425,9 @@ internal class FindWordProcessor : OfficeDocumentProcessor protected string[] astrReplaceDoubleEscapeCodes = new string[] { @"\t", @"\r", @"\n", @"\a", @"\b", @"\f" }; protected string[] astrReplaceEscapeCodes = new string[] { "\t", "\r", "\n", "\a", "\b", "\f" }; - public FindWordProcessor(string strFindWhat, string strReplaceWith, bool bMatchCase, Font font) + public FindWordProcessor(string strFindWhat, string strReplaceWith, bool bMatchCase) { - if (m_aECs == null) - m_aECs = new EncConverters(true); + m_aECs ??= new EncConverters(true); // for some reason, the text that goes to constructing the 'Find what' part of the CRegexMatcher is // expecting doubly-escaped text (e.g. "\\r" for CR), but the text that goes for the 'Replace with' @@ -439,7 +438,7 @@ public FindWordProcessor(string strFindWhat, string strReplaceWith, bool bMatchC for (int i = 0; i < nNumEscapeCodes; i++) strReplaceWith = strReplaceWith.Replace(astrReplaceDoubleEscapeCodes[i], astrReplaceEscapeCodes[i]); - m_aECRegex = InitSearchFontConverter(strFindWhat, strReplaceWith, font, bMatchCase); + m_aECRegex = InitSearchFontConverter(strFindWhat, strReplaceWith, bMatchCase); AutoReplaceOnNextFind = false; // we'll take care of this as well // Normally, we search the text one paragraph at a time for the FindWhat string, but if the user @@ -459,13 +458,13 @@ public FindWordProcessor(string strFindWhat, string strReplaceWith, bool bMatchC // initialize an EncConverter which will tell us when we've hit a match. Uses ICU RegEx (though, there's // no reason this couldn't be .Net regex...) - protected IEncConverter InitSearchFontConverter(string strFindWhat, string strReplaceWith, Font font, bool bMatchCase) + protected IEncConverter InitSearchFontConverter(string strFindWhat, string strReplaceWith, bool bMatchCase) { // we're going to use a temporary ICU RegEx EncConverter to do our 'searching' for us. // get a blank ICU Regex converter that we can program with our FindWhat string // but, it may be null if ICU isn't installed System.Diagnostics.Debug.Assert(m_aECs != null); - IEncConverter aIEC = null; + IEncConverter aIEC; try { aIEC = m_aECs.NewEncConverterByImplementationType(EncConverters.strTypeSILicuRegex); @@ -535,7 +534,7 @@ protected string[] GetFirstReplacementSplitArray(ref string strInput, ref string int nInputLength = strInput.Length; int nDiffLength = nInputLength; int nTempInputLength = nInputLength; - string strTempInput = null; + string strTempInput; do { // do a binary search until we get only one replacement @@ -898,10 +897,10 @@ public void ProcessParagraphsFindAndReplace(FindWordProcessor aWordProcessor, Wo WordRange aRunRange = GetStartingRange(theRangeToSearch); if (aRunRange == null) return; + object nOffsetParagraph = aWordProcessor.NumOfParagraphsToSearch - 1; // how many paragraphs ahead we have to look for a match - int nEndRangeToSearch = -1; // might change from loop to loop if we do replacements (so update inside loop) - object nOffsetParagraph = aWordProcessor.NumOfParagraphsToSearch - 1; + int nEndRangeToSearch; do { SearchAreaStart = aRunRange.Start; diff --git a/src/SILConvertersOffice/FontConvertersPicker.cs b/src/SILConvertersOffice/FontConvertersPicker.cs index b4d16bdb..953a0e02 100644 --- a/src/SILConvertersOffice/FontConvertersPicker.cs +++ b/src/SILConvertersOffice/FontConvertersPicker.cs @@ -28,10 +28,10 @@ namespace SILConvertersOffice { internal partial class FontConvertersPicker : Form { - private OfficeDocument m_doc = null; - protected DirectableEncConverter m_aECForAll = null; - protected DirectableEncConverter m_aECLast = null; - protected Hashtable m_mapEncConverters = new Hashtable(); + private OfficeDocument m_doc; + protected DirectableEncConverter m_aECForAll; + protected DirectableEncConverter m_aECLast; + protected Hashtable m_mapEncConverters = new(); protected const int nMaxRecentFiles = 15; const int nColumnFontNames = 0; @@ -42,7 +42,7 @@ internal partial class FontConvertersPicker : Form protected const string cstrClickMsg = "Select a converter"; protected const string cstrFontClickMsg = "Select a font to apply"; protected const string cstrApplyECFormat = "Apply '{0}'?"; - protected string m_strApplyEC = null; + protected string m_strApplyEC; /// <summary> /// FontConvertersPicker: to choose the font you want to process in the Word document @@ -168,7 +168,7 @@ protected void InitConverterDetails(string strFontName, out string strConverterN if (aIEC != null) { - DirectableEncConverter aEC = new DirectableEncConverter(aIEC); + var aEC = new DirectableEncConverter(aIEC); m_mapEncConverters.Add(strFontName, aEC); } } @@ -177,7 +177,7 @@ protected void InitConverterDetails(string strFontName, out string strConverterN if (m_mapEncConverters.ContainsKey(strFontName)) { - DirectableEncConverter aEC = (DirectableEncConverter)m_mapEncConverters[strFontName]; + var aEC = (DirectableEncConverter)m_mapEncConverters[strFontName]; strConverterName = aEC.Name; strTooltip = aEC.ToString(); if (aEC.TargetFont != null) @@ -202,8 +202,7 @@ protected void InitConverterDetails(string strFontName, out string strConverterN protected void AddRow(string strFontName) { - string strConverterName, strTooltip, strFontNameOutput; - InitConverterDetails(strFontName, out strConverterName, out strTooltip, out strFontNameOutput); + InitConverterDetails(strFontName, out string strConverterName, out string strTooltip, out string strFontNameOutput); string[] row = { strFontName, strConverterName, strFontNameOutput }; int nIndex = dataGridViewFontsConverters.Rows.Add(row); @@ -215,19 +214,21 @@ public FontConverters SelectedFontConverters { get { - FontConverters aFCs = new FontConverters(); + FontConverters aFCs = new(); foreach (string strFontName in m_mapEncConverters.Keys) { DirectableEncConverter aIEC = (DirectableEncConverter)m_mapEncConverters[strFontName]; - FontConverter aFC = new FontConverter(strFontName, aIEC); - aFC.RhsFont = aIEC.TargetFont; + var aFC = new FontConverter(strFontName, aIEC) + { + RhsFont = aIEC.TargetFont + }; aFCs.Add(strFontName, aFC); } return aFCs; } } - private void buttonOK_Click(object sender, EventArgs e) + private void ButtonOK_Click(object sender, EventArgs e) { if (m_mapEncConverters.Count > 0) { @@ -238,7 +239,7 @@ private void buttonOK_Click(object sender, EventArgs e) MessageBox.Show("You must choose at least one converter (or click Cancel)", OfficeApp.cstrCaption); } - private void checkBoxFontsInUse_CheckedChanged(object sender, EventArgs e) + private void CheckBoxFontsInUse_CheckedChanged(object sender, EventArgs e) { PopulateGrid(); } @@ -254,7 +255,7 @@ private void ResetBackgroundWorker() this.backgroundWorker.CancelAsync(); } - private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e) + private void BackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { DoWork(sender as BackgroundWorker, e.Argument as OfficeDocument); } @@ -270,7 +271,7 @@ protected void DoWork(BackgroundWorker worker, OfficeDocument doc) nWordCount = 0; } */ - FontNamesInUseProcessor aDocumentProcess = new FontNamesInUseProcessor(nWordCount, worker); + var aDocumentProcess = new FontNamesInUseProcessor(nWordCount, worker); try { @@ -282,29 +283,28 @@ protected void DoWork(BackgroundWorker worker, OfficeDocument doc) } } - private void backgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e) + private void BackgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e) { // for us the "progress" is a new font found (if not null) if (e.UserState != null) { - string[] aStrs = (string[])e.UserState; + var aStrs = (string[])e.UserState; System.Diagnostics.Debug.Assert(aStrs.Length == 2); - string strFontName = aStrs[0]; - string strWord = aStrs[1]; // in case we want to + var strFontName = aStrs[0]; AddRow(strFontName); } else progressBarFontsInUse.PerformStep(); } - private void backgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) + private void BackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if (e.Error != null) MessageBox.Show(e.Error.Message, OfficeApp.cstrCaption); progressBarFontsInUse.Visible = false; } - private void setDefaultConverterToolStripMenuItem_Click(object sender, EventArgs e) + private void SetDefaultConverterToolStripMenuItem_Click(object sender, EventArgs e) { EncConverters aECs = OfficeApp.GetEncConverters; if (aECs != null) @@ -312,7 +312,7 @@ private void setDefaultConverterToolStripMenuItem_Click(object sender, EventArgs IEncConverter aIEC = aECs.AutoSelectWithTitle(ConvType.Unknown, "Select Default Converter"); if (aIEC != null) { - DirectableEncConverter aEC = new DirectableEncConverter(aIEC.Name, aIEC.DirectionForward, aIEC.NormalizeOutput); + var aEC = new DirectableEncConverter(aIEC.Name, aIEC.DirectionForward, aIEC.NormalizeOutput); foreach (DataGridViewRow aRow in dataGridViewFontsConverters.Rows) { string strFontName = (string)aRow.Cells[nColumnFontNames].Value; @@ -336,8 +336,7 @@ private void UpdateConverterNames() foreach (DataGridViewRow aRow in dataGridViewFontsConverters.Rows) { string strFontname = (string)aRow.Cells[nColumnFontNames].Value; - string strConverterName, strTooltip, strFontNameOutput; - InitConverterDetails(strFontname, out strConverterName, out strTooltip, out strFontNameOutput); + InitConverterDetails(strFontname, out string strConverterName, out string strTooltip, out string strFontNameOutput); DataGridViewCell cell = aRow.Cells[nColumnConverterNames]; cell.Value = strConverterName; cell.ToolTipText = strTooltip; @@ -345,18 +344,20 @@ private void UpdateConverterNames() } } - private void newConverterMappingToolStripMenuItem_Click(object sender, EventArgs e) + private void NewConverterMappingToolStripMenuItem_Click(object sender, EventArgs e) { m_mapEncConverters.Clear(); UpdateConverterNames(); } - private void openConverterMappingToolStripMenuItem_Click(object sender, EventArgs e) + private void OpenConverterMappingToolStripMenuItem_Click(object sender, EventArgs e) { - OpenFileDialog dlgSettings = new OpenFileDialog(); - dlgSettings.DefaultExt = "fcm"; - dlgSettings.InitialDirectory = OfficeApp.GetAppDataDir; - dlgSettings.Filter = "Font Converter mapping files (*.fcm)|*.fcm|All files|*.*"; + var dlgSettings = new OpenFileDialog + { + DefaultExt = "fcm", + InitialDirectory = OfficeApp.GetAppDataDir, + Filter = "Font Converter mapping files (*.fcm)|*.fcm|All files|*.*" + }; if (dlgSettings.ShowDialog() == DialogResult.OK) { @@ -367,15 +368,17 @@ private void openConverterMappingToolStripMenuItem_Click(object sender, EventArg protected void LoadMappingFile(string strFilename) { m_mapEncConverters = null; - FileStream fs = new FileStream(strFilename, FileMode.Open); + var fs = new FileStream(strFilename, FileMode.Open); // Construct a SoapFormatter and use it // to serialize the data to the stream. try { - SoapFormatter formatter = new SoapFormatter(); - formatter.Binder = new DirectableEncConverterDeserializationBinder(); - formatter.AssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple; + SoapFormatter formatter = new() + { + Binder = new DirectableEncConverterDeserializationBinder(), + AssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple + }; m_mapEncConverters = (Hashtable)formatter.Deserialize(fs); AddToConverterMappingRecentlyUsed(strFilename); } @@ -392,11 +395,13 @@ protected void LoadMappingFile(string strFilename) UpdateConverterNames(); } - private void saveConverterMappingToolStripMenuItem_Click(object sender, EventArgs e) + private void SaveConverterMappingToolStripMenuItem_Click(object sender, EventArgs e) { - SaveFileDialog dlgSettings = new SaveFileDialog(); - dlgSettings.DefaultExt = "fcm"; - dlgSettings.FileName = "Font Converter mapping1.fcm"; + SaveFileDialog dlgSettings = new() + { + DefaultExt = "fcm", + FileName = "Font Converter mapping1.fcm" + }; if (!Directory.Exists(OfficeApp.GetAppDataDir)) Directory.CreateDirectory(OfficeApp.GetAppDataDir); dlgSettings.InitialDirectory = OfficeApp.GetAppDataDir; @@ -405,8 +410,8 @@ private void saveConverterMappingToolStripMenuItem_Click(object sender, EventArg { // Construct a SoapFormatter and use it // to serialize the data to the stream. - FileStream fs = new FileStream(dlgSettings.FileName, FileMode.Create); - SoapFormatter formatter = new SoapFormatter(); + var fs = new FileStream(dlgSettings.FileName, FileMode.Create); + var formatter = new SoapFormatter(); try { formatter.AssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple; @@ -424,7 +429,7 @@ private void saveConverterMappingToolStripMenuItem_Click(object sender, EventArg } } - private void dataGridViewFontsConverters_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e) + private void DataGridViewFontsConverters_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e) { int nColumnIndex = e.ColumnIndex; // if the user clicks on the header... that doesn't work @@ -533,7 +538,7 @@ public void AddToConverterMappingRecentlyUsed(string strFilename) Settings.Default.Save(); } - private void recentFilesToolStripMenuItem_Click(object sender, EventArgs e) + private void RecentFilesToolStripMenuItem_Click(object sender, EventArgs e) { ToolStripDropDownItem aRecentFile = (ToolStripDropDownItem)sender; try @@ -550,7 +555,7 @@ private void recentFilesToolStripMenuItem_Click(object sender, EventArgs e) } } - private void converterMappingToolStripMenuItem_DropDownOpening(object sender, EventArgs e) + private void ConverterMappingToolStripMenuItem_DropDownOpening(object sender, EventArgs e) { bool bMappingsExist = (m_mapEncConverters.Count > 0); this.newConverterMappingToolStripMenuItem.Enabled = bMappingsExist; @@ -570,22 +575,22 @@ private void converterMappingToolStripMenuItem_DropDownOpening(object sender, Ev /// </summary> internal class FontNamesInUseProcessor : OfficeDocumentProcessor { - BackgroundWorker m_worker = null; // who we send updates to - List<string> m_astrListFontNames = new List<string>(); + readonly BackgroundWorker m_worker; // who we send updates to + readonly List<string> m_astrListFontNames = new(); int m_nCount = 0; - int m_nModulo = 10; + readonly int m_nModulo = 10; const int cnNumSteps = 50; public FontNamesInUseProcessor(int nDocumentWordCount, BackgroundWorker worker) { - Process = myWordProcessor; + Process = MyWordProcessor; // get a rough estimate of the number of words in the document m_nModulo = (nDocumentWordCount == 0) ? 0 : Math.Max(nDocumentWordCount / cnNumSteps, 2); m_worker = worker; } - protected bool myWordProcessor(OfficeRange aWordRange, ref int nCharIndex) + protected bool MyWordProcessor(OfficeRange aWordRange, ref int nCharIndex) { if (m_worker.CancellationPending) return false; diff --git a/src/SILConvertersOffice/FontConvertersPicker.designer.cs b/src/SILConvertersOffice/FontConvertersPicker.designer.cs index 390b6a42..b62849c3 100644 --- a/src/SILConvertersOffice/FontConvertersPicker.designer.cs +++ b/src/SILConvertersOffice/FontConvertersPicker.designer.cs @@ -60,7 +60,7 @@ private void InitializeComponent() this.buttonOK.TabIndex = 1; this.buttonOK.Text = "OK"; this.buttonOK.UseVisualStyleBackColor = true; - this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click); + this.buttonOK.Click += new System.EventHandler(this.ButtonOK_Click); // // buttonCancel // @@ -85,15 +85,15 @@ private void InitializeComponent() this.checkBoxFontsInUse.TabIndex = 3; this.checkBoxFontsInUse.Text = "&Limit to fonts in use"; this.checkBoxFontsInUse.UseVisualStyleBackColor = true; - this.checkBoxFontsInUse.CheckedChanged += new System.EventHandler(this.checkBoxFontsInUse_CheckedChanged); + this.checkBoxFontsInUse.CheckedChanged += new System.EventHandler(this.CheckBoxFontsInUse_CheckedChanged); // // backgroundWorker // this.backgroundWorker.WorkerReportsProgress = true; this.backgroundWorker.WorkerSupportsCancellation = true; - this.backgroundWorker.DoWork += new System.ComponentModel.DoWorkEventHandler(this.backgroundWorker_DoWork); - this.backgroundWorker.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.backgroundWorker_RunWorkerCompleted); - this.backgroundWorker.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.backgroundWorker_ProgressChanged); + this.backgroundWorker.DoWork += new System.ComponentModel.DoWorkEventHandler(this.BackgroundWorker_DoWork); + this.backgroundWorker.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.BackgroundWorker_RunWorkerCompleted); + this.backgroundWorker.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.BackgroundWorker_ProgressChanged); // // dataGridViewFontsConverters // @@ -113,7 +113,7 @@ private void InitializeComponent() this.dataGridViewFontsConverters.RowHeadersVisible = false; this.dataGridViewFontsConverters.Size = new System.Drawing.Size(425, 319); this.dataGridViewFontsConverters.TabIndex = 4; - this.dataGridViewFontsConverters.CellMouseClick += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.dataGridViewFontsConverters_CellMouseClick); + this.dataGridViewFontsConverters.CellMouseClick += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.DataGridViewFontsConverters_CellMouseClick); // // ColumnFontNames // @@ -164,7 +164,7 @@ private void InitializeComponent() this.converterMappingToolStripMenuItem.Name = "converterMappingToolStripMenuItem"; this.converterMappingToolStripMenuItem.Size = new System.Drawing.Size(116, 20); this.converterMappingToolStripMenuItem.Text = "&Converter Mappings"; - this.converterMappingToolStripMenuItem.DropDownOpening += new System.EventHandler(this.converterMappingToolStripMenuItem_DropDownOpening); + this.converterMappingToolStripMenuItem.DropDownOpening += new System.EventHandler(this.ConverterMappingToolStripMenuItem_DropDownOpening); // // setDefaultConverterToolStripMenuItem // @@ -172,7 +172,7 @@ private void InitializeComponent() this.setDefaultConverterToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.setDefaultConverterToolStripMenuItem.Text = "Set &Default Converter"; this.setDefaultConverterToolStripMenuItem.ToolTipText = "Select a converter to be applied to all fonts that aren\'t currently configured"; - this.setDefaultConverterToolStripMenuItem.Click += new System.EventHandler(this.setDefaultConverterToolStripMenuItem_Click); + this.setDefaultConverterToolStripMenuItem.Click += new System.EventHandler(this.SetDefaultConverterToolStripMenuItem_Click); // // toolStripSeparator1 // @@ -185,7 +185,7 @@ private void InitializeComponent() this.newConverterMappingToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.newConverterMappingToolStripMenuItem.Text = "&New"; this.newConverterMappingToolStripMenuItem.ToolTipText = "Click to reset the current mapping of font names to system converters"; - this.newConverterMappingToolStripMenuItem.Click += new System.EventHandler(this.newConverterMappingToolStripMenuItem_Click); + this.newConverterMappingToolStripMenuItem.Click += new System.EventHandler(this.NewConverterMappingToolStripMenuItem_Click); // // openConverterMappingToolStripMenuItem // @@ -193,7 +193,7 @@ private void InitializeComponent() this.openConverterMappingToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.openConverterMappingToolStripMenuItem.Text = "&Load"; this.openConverterMappingToolStripMenuItem.ToolTipText = "Click to load a previously saved mapping of font names to system converters"; - this.openConverterMappingToolStripMenuItem.Click += new System.EventHandler(this.openConverterMappingToolStripMenuItem_Click); + this.openConverterMappingToolStripMenuItem.Click += new System.EventHandler(this.OpenConverterMappingToolStripMenuItem_Click); // // recentToolStripMenuItem // @@ -207,7 +207,7 @@ private void InitializeComponent() this.saveConverterMappingToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.saveConverterMappingToolStripMenuItem.Text = "&Save"; this.saveConverterMappingToolStripMenuItem.ToolTipText = "Click to save the current mapping of font names to system converters"; - this.saveConverterMappingToolStripMenuItem.Click += new System.EventHandler(this.saveConverterMappingToolStripMenuItem_Click); + this.saveConverterMappingToolStripMenuItem.Click += new System.EventHandler(this.SaveConverterMappingToolStripMenuItem_Click); // // progressBarFontsInUse // diff --git a/src/SILConvertersOffice/OfficeApp.cs b/src/SILConvertersOffice/OfficeApp.cs index 8125f16a..b32dde1d 100644 --- a/src/SILConvertersOffice/OfficeApp.cs +++ b/src/SILConvertersOffice/OfficeApp.cs @@ -105,7 +105,7 @@ internal static void LaunchProgram(string strProgram, string strArguments) { try { - Process myProcess = new Process { StartInfo = { FileName = strProgram, Arguments = strArguments } }; + Process myProcess = new() { StartInfo = { FileName = strProgram, Arguments = strArguments } }; myProcess.Start(); } catch { } // we tried... @@ -145,7 +145,6 @@ internal static void ReleaseComObject(object obj) } finally { - obj = null; } } @@ -231,8 +230,7 @@ public virtual int EndIndex // not working for publisher public virtual void Select() { - if( m_typeRange != null ) - m_typeRange.InvokeMember("Select", BindingFlags.InvokeMethod, null, m_aRangeBasedOn, null); + m_typeRange?.InvokeMember("Select", BindingFlags.InvokeMethod, null, m_aRangeBasedOn, null); } public abstract string Text @@ -252,16 +250,14 @@ public virtual string FontName set { object font = GetProperty("Font"); - if( m_typeRange != null ) - m_typeRange.InvokeMember("Name", BindingFlags.SetProperty, null, font, new object[] { value }); + m_typeRange?.InvokeMember("Name", BindingFlags.SetProperty, null, font, new object[] { value }); } } protected void SetProperty(string strPropertyName, object value) { System.Diagnostics.Debug.Assert(m_aRangeBasedOn != null); - if( m_typeRange != null ) - m_typeRange.InvokeMember(strPropertyName, BindingFlags.SetProperty, null, m_aRangeBasedOn, new object[] { value }); + m_typeRange?.InvokeMember(strPropertyName, BindingFlags.SetProperty, null, m_aRangeBasedOn, new object[] { value }); } protected object GetProperty(string strPropertyName) @@ -487,7 +483,7 @@ internal class OfficeDocumentProcessor public delegate bool ProcessWord(OfficeRange aWordRange, ref int nCharIndex); private ProcessWord m_aWordProcessor = null; protected FontConverters m_mapFontsEncountered = null; - protected Dictionary<string, string> m_mapCheckedInputStrings = new Dictionary<string, string>(); + protected Dictionary<string, string> m_mapCheckedInputStrings = new(); protected FontConverter m_aFC = null; protected FontConverters m_aFCs = null; protected IBaseConverterForm m_formDisplayValues = null; @@ -626,7 +622,7 @@ protected virtual FormButtons ConvertProcessing(OfficeRange aWordRange, FontConv public bool CompareInputOutputProcess(OfficeRange aWordRange, ref int nCharIndex) { - FormButtons res = FormButtons.None; + FormButtons res; do { string strInput = aWordRange.Text; @@ -658,8 +654,7 @@ public bool CompareInputOutputProcess(OfficeRange aWordRange, ref int nCharIndex } // see if we've already checked this word - string strReplace = null; - if (!m_mapCheckedInputStrings.TryGetValue(strInput, out strReplace)) + if (!m_mapCheckedInputStrings.TryGetValue(strInput, out string strReplace)) { res = ConvertProcessing(aWordRange, aThisFC, strInput, ref strReplace); @@ -695,7 +690,7 @@ public bool CompareInputOutputProcess(OfficeRange aWordRange, ref int nCharIndex protected virtual FontConverter QueryForFontConvert(string strFontName) { FontConverter aFC = null; - FontConvertersPicker aFontConverterPicker = new FontConvertersPicker(strFontName); + FontConvertersPicker aFontConverterPicker = new(strFontName); if (aFontConverterPicker.ShowDialog() == DialogResult.OK) aFC = aFontConverterPicker.SelectedFontConverters[strFontName]; return aFC; @@ -707,8 +702,7 @@ protected FontConverter QueryUserForFontScan(string strFontName) return null; // make sure our collection exists - if (m_mapFontsEncountered == null) - m_mapFontsEncountered = new FontConverters(); + m_mapFontsEncountered ??= new FontConverters(); if (!m_mapFontsEncountered.ContainsKey(strFontName)) { From c85dc0bb1b1305447bb1f25ac6ece70fc0034f48 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sat, 18 Mar 2023 06:34:20 -0500 Subject: [PATCH 36/71] moved the 'reset' ribbon button to the end, so it's more clear --- src/SILConvertersOffice/PubApp.cs | 8 ++++---- src/SILConvertersOffice07/RibbonWord.xml | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/SILConvertersOffice/PubApp.cs b/src/SILConvertersOffice/PubApp.cs index 5152ea87..959f53ca 100644 --- a/src/SILConvertersOffice/PubApp.cs +++ b/src/SILConvertersOffice/PubApp.cs @@ -65,10 +65,6 @@ public override void LoadMenu() "Click this item to convert the selected text only", new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(SelectionConvert_Click)); - AddMenu(ref ResetMenuBtn, NewMenuBar, "&Reset", - "Reset the unfinished conversion processes", - new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(Reset_Click)); - AddMenu(ref ConvertParagraphsIsoFormatMenu, NewMenuBar, "Convert by ¶graph (iso formatted)", "Click this item to convert the document from the cursor on down, paragraph-by-paragraph, but in chunks that keep the formatting the same (which might ruin the Translation if using Bing or DeepL translators)", new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(ConvertParagraphs_Click)); @@ -76,6 +72,10 @@ public override void LoadMenu() AddMenu(ref ConvertParagraphsMenu, NewMenuBar, "Convert by paragraph", "Click this item to convert the document from the cursor on down, paragraph-by-paragraph, ignoring formatting (so formatting will be lost, but you'll get whole paragraphs translated as a unit)", new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(ConvertParagraphs_IgnoreStyle_Click)); + + AddMenu(ref ResetMenuBtn, NewMenuBar, "&Reset", + "Reset the unfinished conversion processes", + new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(Reset_Click)); } catch (Exception ex) { diff --git a/src/SILConvertersOffice07/RibbonWord.xml b/src/SILConvertersOffice07/RibbonWord.xml index 06b87b63..e10b93c6 100644 --- a/src/SILConvertersOffice07/RibbonWord.xml +++ b/src/SILConvertersOffice07/RibbonWord.xml @@ -12,12 +12,12 @@ size="large" onAction="Button_Clicked" screentip="Click this item to search the document using Regular Expression syntax" /> <button id="SILConvertersOffice.WordApp.RoundTripCheck_Click" label="Check round-trip conversion" size="large" onAction="Button_Clicked" screentip="Click this item to check a bidirectional converter's round-trip capability" /> - <button id="SILConvertersOffice.WordApp.Reset_Click" label="Reset" - size="large" onAction="Button_Clicked" screentip="Reset the unfinished conversion processes" /> <button id="SILConvertersOffice.WordApp.ConvertParagraphs_Click" label="Convert by paragraph (iso formatted)" size="large" onAction="Button_Clicked" screentip="Click this item to convert the document from the cursor on down, paragraph-by-paragraph, but in chunks that keep the formatting the same" /> <button id="SILConvertersOffice.WordApp.ConvertParagraphs_IgnoreStyle_Click" label="Convert by paragraph" size="large" onAction="Button_Clicked" screentip="Click this item to convert the document from the cursor on down, paragraph-by-paragraph, ignoring formatting (so formatting will be lost, but you'll get whole paragraphs translated as a unit)" /> + <button id="SILConvertersOffice.WordApp.Reset_Click" label="Reset" + size="large" onAction="Button_Clicked" screentip="Reset the unfinished conversion processes" /> </group> </tab> </tabs> From e7b09db3420753910883ce09fe1c2c15e965ce29 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sat, 18 Mar 2023 06:35:25 -0500 Subject: [PATCH 37/71] added support to pub and the main Word app for the new intermediate class that allows for multiple TranslationHelperForm instances based on Font + Converter --- src/SILConvertersOffice/PubApp.cs | 2 +- src/SILConvertersOffice/WordApp.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/SILConvertersOffice/PubApp.cs b/src/SILConvertersOffice/PubApp.cs index 959f53ca..577cd716 100644 --- a/src/SILConvertersOffice/PubApp.cs +++ b/src/SILConvertersOffice/PubApp.cs @@ -295,7 +295,7 @@ private void ParagraphByParagraph(OfficeTextDocument.ProcessingType eIsoFormatte return; PubRangeDocument doc = new PubRangeDocument(Application.ActiveDocument, eIsoFormattedRun); - OfficeDocumentProcessor aSelectionProcessor = GetDocumentProcessor((FontConverters)null, new SILConvertersOffice.TranslationHelperForm()); + OfficeDocumentProcessor aSelectionProcessor = GetDocumentProcessor((FontConverters)null, new SILConvertersOffice.TranslationHelperForms()); if (aSelectionProcessor != null) doc.ProcessWordByWord(aSelectionProcessor, OfficeTextDocument.ProcessingType.eIsoFormattedRun); diff --git a/src/SILConvertersOffice/WordApp.cs b/src/SILConvertersOffice/WordApp.cs index 462cbd27..9804dec4 100644 --- a/src/SILConvertersOffice/WordApp.cs +++ b/src/SILConvertersOffice/WordApp.cs @@ -290,7 +290,7 @@ private void ParagraphByParagraph(OfficeTextDocument.ProcessingType processingTy // keep reusing the same doc processor (in case we're doing sub-paragraph selections and have already specified which cnvtr to use for a given font) // user must click the 'Reset' button, if they want to be requiried about which cnvtr to use if (m_officeDocumentProcessor == null) - m_officeDocumentProcessor = new OfficeDocumentProcessor((FontConverters)null, new SILConvertersOffice.TranslationHelperForm()); + m_officeDocumentProcessor = new OfficeDocumentProcessor((FontConverters)null, new SILConvertersOffice.TranslationHelperForms()); // start where the cursor is currently m_officeDocumentProcessor.LeftOvers = doc.SelectionRange; From 3c22e37dbbfec0108c125e76bb6e381fef4aeb18 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sat, 18 Mar 2023 06:36:40 -0500 Subject: [PATCH 38/71] update the version reference of SpellFixer in its merge module, which is launched from reflection/COM and needs to match --- .../SpellFixerEc64bitMM/SpellFixerEc_MergeModule.wxs | 10 +++++----- Installer/SpellFixerEcMM/SpellFixerEc_MergeModule.wxs | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Installer/SpellFixerEc64bitMM/SpellFixerEc_MergeModule.wxs b/Installer/SpellFixerEc64bitMM/SpellFixerEc_MergeModule.wxs index 92d6b6ec..0999b692 100644 --- a/Installer/SpellFixerEc64bitMM/SpellFixerEc_MergeModule.wxs +++ b/Installer/SpellFixerEc64bitMM/SpellFixerEc_MergeModule.wxs @@ -17,12 +17,12 @@ <File Id="SpellingFixerEC.dll" Name="SpellingFixerEC.dll" KeyPath="yes" Assembly=".net" AssemblyManifest="SpellingFixerEC.dll" AssemblyApplication="SpellingFixerEC.dll" Source="..\..\output\x64\release\SpellingFixerEC.dll" /> <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\Implemented Categories\{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}" Value="" Type="string" Action="write" /> - <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\InprocServer32\4.0.0.0" Name="Class" Value="SpellingFixerEC.SpellingFixerEC" Type="string" Action="write" /> - <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\InprocServer32\4.0.0.0" Name="Assembly" Value="SpellingFixerEC, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485" Type="string" Action="write" /> - <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\InprocServer32\4.0.0.0" Name="RuntimeVersion" Value="v4.0.30319" Type="string" Action="write" /> - <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\InprocServer32\4.0.0.0" Name="CodeBase" Value="file:///[#SpellingFixerEC.dll]" Type="string" Action="write" /> + <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\InprocServer32\5.0.0.0" Name="Class" Value="SpellingFixerEC.SpellingFixerEC" Type="string" Action="write" /> + <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\InprocServer32\5.0.0.0" Name="Assembly" Value="SpellingFixerEC, Version=5.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485" Type="string" Action="write" /> + <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\InprocServer32\5.0.0.0" Name="RuntimeVersion" Value="v4.0.30319" Type="string" Action="write" /> + <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\InprocServer32\5.0.0.0" Name="CodeBase" Value="file:///[#SpellingFixerEC.dll]" Type="string" Action="write" /> <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\InprocServer32" Name="Class" Value="SpellingFixerEC.SpellingFixerEC" Type="string" Action="write" /> - <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\InprocServer32" Name="Assembly" Value="SpellingFixerEC, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485" Type="string" Action="write" /> + <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\InprocServer32" Name="Assembly" Value="SpellingFixerEC, Version=5.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485" Type="string" Action="write" /> <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\InprocServer32" Name="RuntimeVersion" Value="v4.0.30319" Type="string" Action="write" /> <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\InprocServer32" Name="CodeBase" Value="file:///[#SpellingFixerEC.dll]" Type="string" Action="write" /> </Component> diff --git a/Installer/SpellFixerEcMM/SpellFixerEc_MergeModule.wxs b/Installer/SpellFixerEcMM/SpellFixerEc_MergeModule.wxs index fd553a19..e24ae330 100644 --- a/Installer/SpellFixerEcMM/SpellFixerEc_MergeModule.wxs +++ b/Installer/SpellFixerEcMM/SpellFixerEc_MergeModule.wxs @@ -16,12 +16,12 @@ <File Id="SpellingFixerEC.dll" Name="SpellingFixerEC.dll" KeyPath="yes" Assembly=".net" AssemblyManifest="SpellingFixerEC.dll" AssemblyApplication="SpellingFixerEC.dll" Source="..\..\output\x86\release\SpellingFixerEC.dll" /> <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\Implemented Categories\{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}" Value="" Type="string" Action="write" /> - <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\InprocServer32\4.0.0.0" Name="Class" Value="SpellingFixerEC.SpellingFixerEC" Type="string" Action="write" /> - <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\InprocServer32\4.0.0.0" Name="Assembly" Value="SpellingFixerEC, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485" Type="string" Action="write" /> - <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\InprocServer32\4.0.0.0" Name="RuntimeVersion" Value="v4.0.30319" Type="string" Action="write" /> - <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\InprocServer32\4.0.0.0" Name="CodeBase" Value="file:///[#SpellingFixerEC.dll]" Type="string" Action="write" /> + <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\InprocServer32\5.0.0.0" Name="Class" Value="SpellingFixerEC.SpellingFixerEC" Type="string" Action="write" /> + <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\InprocServer32\5.0.0.0" Name="Assembly" Value="SpellingFixerEC, Version=5.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485" Type="string" Action="write" /> + <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\InprocServer32\5.0.0.0" Name="RuntimeVersion" Value="v4.0.30319" Type="string" Action="write" /> + <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\InprocServer32\5.0.0.0" Name="CodeBase" Value="file:///[#SpellingFixerEC.dll]" Type="string" Action="write" /> <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\InprocServer32" Name="Class" Value="SpellingFixerEC.SpellingFixerEC" Type="string" Action="write" /> - <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\InprocServer32" Name="Assembly" Value="SpellingFixerEC, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485" Type="string" Action="write" /> + <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\InprocServer32" Name="Assembly" Value="SpellingFixerEC, Version=5.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485" Type="string" Action="write" /> <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\InprocServer32" Name="RuntimeVersion" Value="v4.0.30319" Type="string" Action="write" /> <RegistryValue Root="HKCR" Key="CLSID\{B3256CF8-FA9B-310D-89A6-9268B37A9A72}\InprocServer32" Name="CodeBase" Value="file:///[#SpellingFixerEC.dll]" Type="string" Action="write" /> </Component> From 713386bb607e74e993714c72a1fa1f3d9f5f4da4 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sat, 18 Mar 2023 06:37:39 -0500 Subject: [PATCH 39/71] backTranslationHelperCtrl changed behavior to send the button pressed *after* writing the text out, so now 'MoveToNext' also means that we want to return 'ReplaceOnce' to the caller --- src/SILConvertersOffice/TranslationHelperForm.cs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/SILConvertersOffice/TranslationHelperForm.cs b/src/SILConvertersOffice/TranslationHelperForm.cs index ff25b172..79d4c940 100644 --- a/src/SILConvertersOffice/TranslationHelperForm.cs +++ b/src/SILConvertersOffice/TranslationHelperForm.cs @@ -47,7 +47,7 @@ string IBaseConverterForm.ForwardString FormButtons IBaseConverterForm.Show(FontConverter aThisFC, string strInput, string strOutput) { if (!Forms.TryGetValue(aThisFC, out var form)) - { + { form = new TranslationHelperForm(); } @@ -246,10 +246,8 @@ void IBackTranslationHelperDataSource.ButtonPressed(ButtonPressed button) switch(button.ToString()) { case "MoveToNext": - ButtonPressed = FormButtons.Next; - break; case "WriteToTarget": - ButtonPressed = FormButtons.ReplaceOnce; + ButtonPressed = FormButtons.ReplaceOnce; // these both mean replace break; case "Cancel": ButtonPressed = FormButtons.Cancel; From c4b870fc8cee85e8a6be75de9e8e969f570cb718 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sat, 18 Mar 2023 07:18:13 -0500 Subject: [PATCH 40/71] include the EcTranslators and SpellFixerEc merge modules if any of the SILConverters for Office features are being installed (since those are necessary for the TranslationHelperForm and the Find-Replace features in it --- Installer/SEC Setup 64bit/EcFeatures.wxs | 6 ++++++ Installer/SEC Setup/EcFeatures.wxs | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/Installer/SEC Setup 64bit/EcFeatures.wxs b/Installer/SEC Setup 64bit/EcFeatures.wxs index c7b24889..24764d9f 100644 --- a/Installer/SEC Setup 64bit/EcFeatures.wxs +++ b/Installer/SEC Setup 64bit/EcFeatures.wxs @@ -68,6 +68,8 @@ <Condition Level="0"><![CDATA[NOT ((COMPONENTEXISTS_WORD_10_PIA) OR (COMPONENTEXISTS_EXCEL_10_PIA) OR (ACCESS_2010_PIA_EXISTS) OR (PUBLISHER_2010_PIA_EXISTS))]]></Condition> <MergeRef Id="SEC_EC"/> <MergeRef Id="SCOffice10"/> + <MergeRef Id="EcTranslators"/> + <MergeRef Id="SpellFixerEc"/> <MergeRef Id="SEC_ICU"/> <MergeRef Id="CRT"/> </Feature> @@ -76,6 +78,8 @@ <Condition Level="0"><![CDATA[OFFICE_2016_BITNESS OR (NOT ((COMPONENTEXISTS_WORD_13_PIA) OR (COMPONENTEXISTS_EXCEL_13_PIA) OR (ACCESS_2013_PIA_EXISTS) OR (PUBLISHER_2013_PIA_EXISTS)))]]></Condition> <MergeRef Id="SEC_EC"/> <MergeRef Id="SCOffice13"/> + <MergeRef Id="EcTranslators"/> + <MergeRef Id="SpellFixerEc"/> <MergeRef Id="SEC_ICU"/> <MergeRef Id="CRT"/> </Feature> @@ -84,6 +88,8 @@ <Condition Level="0"><![CDATA[OFFICE_2013_BITNESS OR (NOT ((COMPONENTEXISTS_WORD_13_PIA) OR (COMPONENTEXISTS_EXCEL_13_PIA) OR (ACCESS_2013_PIA_EXISTS) OR (PUBLISHER_2013_PIA_EXISTS)))]]></Condition> <MergeRef Id="SEC_EC"/> <MergeRef Id="SCOffice13"/> + <MergeRef Id="EcTranslators"/> + <MergeRef Id="SpellFixerEc"/> <MergeRef Id="SEC_ICU"/> <MergeRef Id="CRT"/> </Feature> diff --git a/Installer/SEC Setup/EcFeatures.wxs b/Installer/SEC Setup/EcFeatures.wxs index 45d31a3e..92dd66ce 100644 --- a/Installer/SEC Setup/EcFeatures.wxs +++ b/Installer/SEC Setup/EcFeatures.wxs @@ -72,6 +72,8 @@ <!--<MergeRef Id="Managed_Install_Fix"/>--> <MergeRef Id="SEC_EC"/> <MergeRef Id="SCOffice03"/> + <MergeRef Id="EcTranslators"/> + <MergeRef Id="SpellFixerEc"/> <!--The KB908002 fix is necessary for Office 2003--> <MergeRef Id="MS_KB908002_Fix"/> <MergeRef Id="SEC_ICU"/> @@ -84,6 +86,8 @@ <!--<MergeRef Id="Managed_Install_Fix"/>--> <MergeRef Id="SEC_EC"/> <MergeRef Id="SCOffice07"/> + <MergeRef Id="EcTranslators"/> + <MergeRef Id="SpellFixerEc"/> <MergeRef Id="SEC_ICU"/> <!--<MergeRef Id="ICU"/> <MergeRef Id="ICUECHelp"/>--> @@ -94,6 +98,8 @@ <!--<MergeRef Id="Managed_Install_Fix"/>--> <MergeRef Id="SEC_EC"/> <MergeRef Id="SCOffice10"/> + <MergeRef Id="EcTranslators"/> + <MergeRef Id="SpellFixerEc"/> <MergeRef Id="SEC_ICU"/> <!--<MergeRef Id="ICU"/> <MergeRef Id="ICUECHelp"/>--> @@ -103,6 +109,8 @@ <Condition Level="0"><![CDATA[OFFICE_2016_BITNESS OR (NOT ((COMPONENTEXISTS_WORD_13_PIA) OR (COMPONENTEXISTS_EXCEL_13_PIA) OR (ACCESS_2013_PIA_EXISTS) OR (PUBLISHER_2013_PIA_EXISTS)))]]></Condition> <MergeRef Id="SEC_EC"/> <MergeRef Id="SCOffice13"/> + <MergeRef Id="EcTranslators"/> + <MergeRef Id="SpellFixerEc"/> <MergeRef Id="SEC_ICU"/> </Feature> <Feature Id="SILConverters_for_Office16" Title="SILConverters for Office 2016/2019/365" Description="Provides SILConverter support in Publisher, Excel, and Access (as well as a few developer helps in Word). Works with x86 versions of Office 2003, 07, 10, 13, 16, 19, or 365." Level="4" AllowAdvertise="no"> @@ -110,6 +118,8 @@ <Condition Level="0"><![CDATA[OFFICE_2013_BITNESS OR (NOT ((COMPONENTEXISTS_WORD_13_PIA) OR (COMPONENTEXISTS_EXCEL_13_PIA) OR (ACCESS_2013_PIA_EXISTS) OR (PUBLISHER_2013_PIA_EXISTS)))]]></Condition> <MergeRef Id="SEC_EC"/> <MergeRef Id="SCOffice13"/> + <MergeRef Id="EcTranslators"/> + <MergeRef Id="SpellFixerEc"/> <MergeRef Id="SEC_ICU"/> <MergeRef Id="CRT"/> </Feature> From af698b038b4629863e010d8ed8115586842ea2ec Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sat, 18 Mar 2023 07:26:36 -0500 Subject: [PATCH 41/71] change nuget for EcCore to 0.5.7 --- .../IndicConverters/IndicConverters.wixproj | 4 ++-- .../Converter Packages/IndicConverters/packages.config | 2 +- .../IndicConverters64bit/IndicConverters64bit.wixproj | 4 ++-- .../Converter Packages/IndicConverters64bit/packages.config | 2 +- Installer/SEC Setup 64bit/SEC Setup 64bit.wixproj | 4 ++-- Installer/SEC Setup 64bit/packages.config | 2 +- Installer/SEC Setup/SEC Setup.wixproj | 4 ++-- Installer/SEC Setup/packages.config | 2 +- Installer/ScHelpMM/ScHelpMM.wixproj | 4 ++-- Installer/ScHelpMM/packages.config | 2 +- Installer/SetupSILConverters/SetupSILConverters.wixproj | 4 ++-- Installer/SetupSILConverters/packages.config | 2 +- Installer/TECkitPackage64bitMM/TECkitPackageMM64bit.wixproj | 4 ++-- Installer/TECkitPackage64bitMM/packages.config | 2 +- Installer/TECkitPackageMM/TECkitPackageMM.wixproj | 4 ++-- Installer/TECkitPackageMM/packages.config | 2 +- src/AdaptIt2Unicode/AdaptIt2Unicode.csproj | 4 ++-- src/AdaptIt2Unicode/packages.config | 2 +- src/BulkSFMConverter/SFMConv.csproj | 4 ++-- src/BulkSFMConverter/packages.config | 2 +- src/ClipboardEC/ClipboardEC.csproj | 4 ++-- src/ClipboardEC/packages.config | 2 +- src/DChartHelper/DChartHelper.csproj | 4 ++-- src/DChartHelper/packages.config | 2 +- .../ParatextPluginBackTranslationHelper.csproj | 4 ++-- src/ParatextPluginBackTranslationHelper/packages.config | 2 +- src/SILConvertersInstaller/SILConvertersInstaller.vbproj | 4 ++-- src/SILConvertersInstaller/packages.config | 2 +- src/SILConvertersOffice/SILConvertersOffice.csproj | 6 ++++-- src/SILConvertersOffice/packages.config | 2 +- src/SILConvertersOffice07/SILConvertersOffice07.csproj | 6 ++++-- src/SILConvertersOffice07/packages.config | 2 +- src/SILConvertersOffice10/SILConvertersOffice10.csproj | 6 ++++-- src/SILConvertersOffice10/packages.config | 2 +- src/SILConvertersOffice13/SILConvertersOffice13.csproj | 6 ++++-- src/SILConvertersOffice13/packages.config | 2 +- src/SILConvertersWordML/SILConvertersWordML.csproj | 4 ++-- src/SILConvertersWordML/TestBwdc/TestBwdc.csproj | 4 ++-- src/SILConvertersWordML/TestBwdc/packages.config | 2 +- src/SILConvertersWordML/packages.config | 2 +- src/SilConvertersXML/SilConvertersXML.csproj | 4 ++-- src/SilConvertersXML/packages.config | 2 +- src/SpellingFixerEC/SpellingFixerEC.csproj | 4 ++-- src/SpellingFixerEC/packages.config | 2 +- src/TECkit Mapping Editor/TECkit Mapping Editor.csproj | 4 ++-- src/TECkit Mapping Editor/packages.config | 2 +- 46 files changed, 77 insertions(+), 69 deletions(-) diff --git a/Installer/Converter Packages/IndicConverters/IndicConverters.wixproj b/Installer/Converter Packages/IndicConverters/IndicConverters.wixproj index 8cfea677..5692fbde 100644 --- a/Installer/Converter Packages/IndicConverters/IndicConverters.wixproj +++ b/Installer/Converter Packages/IndicConverters/IndicConverters.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> @@ -82,7 +82,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/Converter Packages/IndicConverters/packages.config b/Installer/Converter Packages/IndicConverters/packages.config index 36562a63..3e34b7da 100644 --- a/Installer/Converter Packages/IndicConverters/packages.config +++ b/Installer/Converter Packages/IndicConverters/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.6" /> + <package id="Encoding-Converters-Core" version="0.5.7" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/Converter Packages/IndicConverters64bit/IndicConverters64bit.wixproj b/Installer/Converter Packages/IndicConverters64bit/IndicConverters64bit.wixproj index bf3ae6fb..dc581a81 100644 --- a/Installer/Converter Packages/IndicConverters64bit/IndicConverters64bit.wixproj +++ b/Installer/Converter Packages/IndicConverters64bit/IndicConverters64bit.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> @@ -40,7 +40,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/Converter Packages/IndicConverters64bit/packages.config b/Installer/Converter Packages/IndicConverters64bit/packages.config index 36562a63..3e34b7da 100644 --- a/Installer/Converter Packages/IndicConverters64bit/packages.config +++ b/Installer/Converter Packages/IndicConverters64bit/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.6" /> + <package id="Encoding-Converters-Core" version="0.5.7" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/SEC Setup 64bit/SEC Setup 64bit.wixproj b/Installer/SEC Setup 64bit/SEC Setup 64bit.wixproj index ef25eacb..3ca01f5a 100644 --- a/Installer/SEC Setup 64bit/SEC Setup 64bit.wixproj +++ b/Installer/SEC Setup 64bit/SEC Setup 64bit.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> @@ -59,7 +59,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/SEC Setup 64bit/packages.config b/Installer/SEC Setup 64bit/packages.config index 36562a63..3e34b7da 100644 --- a/Installer/SEC Setup 64bit/packages.config +++ b/Installer/SEC Setup 64bit/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.6" /> + <package id="Encoding-Converters-Core" version="0.5.7" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/SEC Setup/SEC Setup.wixproj b/Installer/SEC Setup/SEC Setup.wixproj index ea694e57..ce3538e6 100644 --- a/Installer/SEC Setup/SEC Setup.wixproj +++ b/Installer/SEC Setup/SEC Setup.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> @@ -67,7 +67,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/SEC Setup/packages.config b/Installer/SEC Setup/packages.config index 36562a63..3e34b7da 100644 --- a/Installer/SEC Setup/packages.config +++ b/Installer/SEC Setup/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.6" /> + <package id="Encoding-Converters-Core" version="0.5.7" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/ScHelpMM/ScHelpMM.wixproj b/Installer/ScHelpMM/ScHelpMM.wixproj index 459cb401..d1d11733 100644 --- a/Installer/ScHelpMM/ScHelpMM.wixproj +++ b/Installer/ScHelpMM/ScHelpMM.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> @@ -48,7 +48,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/ScHelpMM/packages.config b/Installer/ScHelpMM/packages.config index 36562a63..3e34b7da 100644 --- a/Installer/ScHelpMM/packages.config +++ b/Installer/ScHelpMM/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.6" /> + <package id="Encoding-Converters-Core" version="0.5.7" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/SetupSILConverters/SetupSILConverters.wixproj b/Installer/SetupSILConverters/SetupSILConverters.wixproj index 34561d22..7a136a1c 100644 --- a/Installer/SetupSILConverters/SetupSILConverters.wixproj +++ b/Installer/SetupSILConverters/SetupSILConverters.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> <Import Project="$([MSBuild]::GetPathOfFileAbove(directory.build.props))" Condition="Exists('$([MSBuild]::GetPathOfFileAbove(directory.build.props))')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> @@ -66,7 +66,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> </Target> <Target Name="PostBuildCopy" AfterTargets="Build"> <PropertyGroup> diff --git a/Installer/SetupSILConverters/packages.config b/Installer/SetupSILConverters/packages.config index 36562a63..3e34b7da 100644 --- a/Installer/SetupSILConverters/packages.config +++ b/Installer/SetupSILConverters/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.6" /> + <package id="Encoding-Converters-Core" version="0.5.7" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/TECkitPackage64bitMM/TECkitPackageMM64bit.wixproj b/Installer/TECkitPackage64bitMM/TECkitPackageMM64bit.wixproj index 6f4f7f40..3ada66f6 100644 --- a/Installer/TECkitPackage64bitMM/TECkitPackageMM64bit.wixproj +++ b/Installer/TECkitPackage64bitMM/TECkitPackageMM64bit.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> @@ -39,7 +39,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/TECkitPackage64bitMM/packages.config b/Installer/TECkitPackage64bitMM/packages.config index 36562a63..3e34b7da 100644 --- a/Installer/TECkitPackage64bitMM/packages.config +++ b/Installer/TECkitPackage64bitMM/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.6" /> + <package id="Encoding-Converters-Core" version="0.5.7" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/TECkitPackageMM/TECkitPackageMM.wixproj b/Installer/TECkitPackageMM/TECkitPackageMM.wixproj index 5d3915c3..797733fa 100644 --- a/Installer/TECkitPackageMM/TECkitPackageMM.wixproj +++ b/Installer/TECkitPackageMM/TECkitPackageMM.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> @@ -39,7 +39,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/TECkitPackageMM/packages.config b/Installer/TECkitPackageMM/packages.config index 36562a63..3e34b7da 100644 --- a/Installer/TECkitPackageMM/packages.config +++ b/Installer/TECkitPackageMM/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.6" /> + <package id="Encoding-Converters-Core" version="0.5.7" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/src/AdaptIt2Unicode/AdaptIt2Unicode.csproj b/src/AdaptIt2Unicode/AdaptIt2Unicode.csproj index f9ba5206..81758c05 100644 --- a/src/AdaptIt2Unicode/AdaptIt2Unicode.csproj +++ b/src/AdaptIt2Unicode/AdaptIt2Unicode.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -204,6 +204,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/AdaptIt2Unicode/packages.config b/src/AdaptIt2Unicode/packages.config index 07c3c3ac..130a77a4 100644 --- a/src/AdaptIt2Unicode/packages.config +++ b/src/AdaptIt2Unicode/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/BulkSFMConverter/SFMConv.csproj b/src/BulkSFMConverter/SFMConv.csproj index cac7c60d..23c4a696 100644 --- a/src/BulkSFMConverter/SFMConv.csproj +++ b/src/BulkSFMConverter/SFMConv.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -207,6 +207,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/BulkSFMConverter/packages.config b/src/BulkSFMConverter/packages.config index 07c3c3ac..130a77a4 100644 --- a/src/BulkSFMConverter/packages.config +++ b/src/BulkSFMConverter/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/ClipboardEC/ClipboardEC.csproj b/src/ClipboardEC/ClipboardEC.csproj index 7285686b..3379bf5c 100644 --- a/src/ClipboardEC/ClipboardEC.csproj +++ b/src/ClipboardEC/ClipboardEC.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <ProjectType>Local</ProjectType> <ProductVersion>9.0.30729</ProductVersion> @@ -198,6 +198,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/ClipboardEC/packages.config b/src/ClipboardEC/packages.config index 07c3c3ac..130a77a4 100644 --- a/src/ClipboardEC/packages.config +++ b/src/ClipboardEC/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/DChartHelper/DChartHelper.csproj b/src/DChartHelper/DChartHelper.csproj index 1359edd0..c5f19a25 100644 --- a/src/DChartHelper/DChartHelper.csproj +++ b/src/DChartHelper/DChartHelper.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -255,6 +255,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/DChartHelper/packages.config b/src/DChartHelper/packages.config index 07c3c3ac..130a77a4 100644 --- a/src/DChartHelper/packages.config +++ b/src/DChartHelper/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj b/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj index 55fd7ca5..aa3d6941 100644 --- a/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj +++ b/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="16.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> @@ -227,6 +227,6 @@ ren "%25ParatextInstallDir%25\plugins\$(ProjectName)\$(TargetFileName)" "$(Proje <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/ParatextPluginBackTranslationHelper/packages.config b/src/ParatextPluginBackTranslationHelper/packages.config index 76cac799..ce327d3b 100644 --- a/src/ParatextPluginBackTranslationHelper/packages.config +++ b/src/ParatextPluginBackTranslationHelper/packages.config @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> <package id="Newtonsoft.Json" version="13.0.2" targetFramework="net48" /> <package id="ParatextEmbeddedUiPluginInterfaces" version="2.0.23" targetFramework="net48" /> <package id="ParatextPluginInterfaces" version="2.0.23" targetFramework="net48" /> diff --git a/src/SILConvertersInstaller/SILConvertersInstaller.vbproj b/src/SILConvertersInstaller/SILConvertersInstaller.vbproj index c7572bcd..8ac5e5c5 100644 --- a/src/SILConvertersInstaller/SILConvertersInstaller.vbproj +++ b/src/SILConvertersInstaller/SILConvertersInstaller.vbproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <ProjectType>Local</ProjectType> <ProductVersion>9.0.30729</ProductVersion> @@ -244,6 +244,6 @@ xcopy /s /y "$(EcDistFilesPath)\redist\*.*" "$(SolutionDir)output\$(PlatformName <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersInstaller/packages.config b/src/SILConvertersInstaller/packages.config index 07c3c3ac..130a77a4 100644 --- a/src/SILConvertersInstaller/packages.config +++ b/src/SILConvertersInstaller/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SILConvertersOffice/SILConvertersOffice.csproj b/src/SILConvertersOffice/SILConvertersOffice.csproj index 9ad61fb7..0f967ce4 100644 --- a/src/SILConvertersOffice/SILConvertersOffice.csproj +++ b/src/SILConvertersOffice/SILConvertersOffice.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -48,6 +48,7 @@ <Optimize>true</Optimize> <RegisterForComInterop>false</RegisterForComInterop> <PlatformTarget>x86</PlatformTarget> + <LangVersion>latest</LangVersion> <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression> <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile> <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> @@ -59,6 +60,7 @@ <DefineConstants>TRACE;DEBUG;BUILD_FOR_OFF11</DefineConstants> <RegisterForComInterop>false</RegisterForComInterop> <PlatformTarget>x86</PlatformTarget> + <LangVersion>latest</LangVersion> <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression> <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile> <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> @@ -313,6 +315,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersOffice/packages.config b/src/SILConvertersOffice/packages.config index 07c3c3ac..130a77a4 100644 --- a/src/SILConvertersOffice/packages.config +++ b/src/SILConvertersOffice/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SILConvertersOffice07/SILConvertersOffice07.csproj b/src/SILConvertersOffice07/SILConvertersOffice07.csproj index ffda5730..b91e8cfc 100644 --- a/src/SILConvertersOffice07/SILConvertersOffice07.csproj +++ b/src/SILConvertersOffice07/SILConvertersOffice07.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -46,6 +46,7 @@ <DefineConstants>TRACE;DEBUG;BUILD_FOR_OFF12</DefineConstants> <RegisterForComInterop>false</RegisterForComInterop> <PlatformTarget>x86</PlatformTarget> + <LangVersion>latest</LangVersion> <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> <Prefer32Bit>false</Prefer32Bit> </PropertyGroup> @@ -55,6 +56,7 @@ <Optimize>true</Optimize> <RegisterForComInterop>false</RegisterForComInterop> <PlatformTarget>x86</PlatformTarget> + <LangVersion>latest</LangVersion> <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> <Prefer32Bit>false</Prefer32Bit> </PropertyGroup> @@ -347,6 +349,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersOffice07/packages.config b/src/SILConvertersOffice07/packages.config index 07c3c3ac..130a77a4 100644 --- a/src/SILConvertersOffice07/packages.config +++ b/src/SILConvertersOffice07/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SILConvertersOffice10/SILConvertersOffice10.csproj b/src/SILConvertersOffice10/SILConvertersOffice10.csproj index 366811c3..03da57e5 100644 --- a/src/SILConvertersOffice10/SILConvertersOffice10.csproj +++ b/src/SILConvertersOffice10/SILConvertersOffice10.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -46,6 +46,7 @@ <DefineConstants>TRACE;DEBUG;BUILD_FOR_OFF14</DefineConstants> <RegisterForComInterop>false</RegisterForComInterop> <PlatformTarget>x86</PlatformTarget> + <LangVersion>latest</LangVersion> <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> <Prefer32Bit>false</Prefer32Bit> </PropertyGroup> @@ -55,6 +56,7 @@ <Optimize>true</Optimize> <RegisterForComInterop>false</RegisterForComInterop> <PlatformTarget>x86</PlatformTarget> + <LangVersion>latest</LangVersion> <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> <Prefer32Bit>false</Prefer32Bit> </PropertyGroup> @@ -350,6 +352,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersOffice10/packages.config b/src/SILConvertersOffice10/packages.config index 07c3c3ac..130a77a4 100644 --- a/src/SILConvertersOffice10/packages.config +++ b/src/SILConvertersOffice10/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SILConvertersOffice13/SILConvertersOffice13.csproj b/src/SILConvertersOffice13/SILConvertersOffice13.csproj index fdcdcaea..4142d32c 100644 --- a/src/SILConvertersOffice13/SILConvertersOffice13.csproj +++ b/src/SILConvertersOffice13/SILConvertersOffice13.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -46,6 +46,7 @@ <DefineConstants>TRACE;DEBUG;BUILD_FOR_OFF15</DefineConstants> <RegisterForComInterop>false</RegisterForComInterop> <PlatformTarget>x86</PlatformTarget> + <LangVersion>latest</LangVersion> <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> <Prefer32Bit>false</Prefer32Bit> </PropertyGroup> @@ -55,6 +56,7 @@ <Optimize>true</Optimize> <RegisterForComInterop>false</RegisterForComInterop> <PlatformTarget>x86</PlatformTarget> + <LangVersion>latest</LangVersion> <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> <Prefer32Bit>false</Prefer32Bit> </PropertyGroup> @@ -355,6 +357,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersOffice13/packages.config b/src/SILConvertersOffice13/packages.config index 07c3c3ac..130a77a4 100644 --- a/src/SILConvertersOffice13/packages.config +++ b/src/SILConvertersOffice13/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SILConvertersWordML/SILConvertersWordML.csproj b/src/SILConvertersWordML/SILConvertersWordML.csproj index ecc12145..de9f81a7 100644 --- a/src/SILConvertersWordML/SILConvertersWordML.csproj +++ b/src/SILConvertersWordML/SILConvertersWordML.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -246,6 +246,6 @@ <ErrorTextMissingPIA>This project references a Microsoft Office PIA file, which is required to be built against or it won't work for older versions of Word. The missing file needing to be restored is {0}.</ErrorTextMissingPIA> </PropertyGroup> <Error Condition="!Exists('..\SILConvertersOffice\DistFiles\Microsoft.Office.Interop.Word.dll')" Text="$([System.String]::Format('$(ErrorTextMissingPIA)', 'Microsoft.Office.Interop.Word, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c expected to be in ..\SILConvertersOffice\DistFiles\Microsoft.Office.Interop.Word.dll'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj b/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj index 01f58d56..2646f55e 100644 --- a/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj +++ b/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="16.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\..\packages\NUnit3TestAdapter.4.3.1\build\net35\NUnit3TestAdapter.props" Condition="Exists('..\..\..\packages\NUnit3TestAdapter.4.3.1\build\net35\NUnit3TestAdapter.props')" /> <Import Project="..\..\..\packages\NUnit.3.13.3\build\NUnit.props" Condition="Exists('..\..\..\packages\NUnit.3.13.3\build\NUnit.props')" /> <PropertyGroup> @@ -456,7 +456,7 @@ </PropertyGroup> <Error Condition="!Exists('..\..\..\packages\NUnit.3.13.3\build\NUnit.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\NUnit.3.13.3\build\NUnit.props'))" /> <Error Condition="!Exists('..\..\..\packages\NUnit3TestAdapter.4.3.1\build\net35\NUnit3TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\NUnit3TestAdapter.4.3.1\build\net35\NUnit3TestAdapter.props'))" /> - <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> </Target> <ProjectExtensions> <VisualStudio> diff --git a/src/SILConvertersWordML/TestBwdc/packages.config b/src/SILConvertersWordML/TestBwdc/packages.config index 0a0e99d7..838b39eb 100644 --- a/src/SILConvertersWordML/TestBwdc/packages.config +++ b/src/SILConvertersWordML/TestBwdc/packages.config @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> <package id="Microsoft.CSharp" version="4.7.0" targetFramework="net48" /> <package id="Newtonsoft.Json" version="13.0.2" targetFramework="net48" /> <package id="NUnit" version="3.13.3" targetFramework="net48" /> diff --git a/src/SILConvertersWordML/packages.config b/src/SILConvertersWordML/packages.config index 07c3c3ac..130a77a4 100644 --- a/src/SILConvertersWordML/packages.config +++ b/src/SILConvertersWordML/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SilConvertersXML/SilConvertersXML.csproj b/src/SilConvertersXML/SilConvertersXML.csproj index d3c3bcae..8703b527 100644 --- a/src/SilConvertersXML/SilConvertersXML.csproj +++ b/src/SilConvertersXML/SilConvertersXML.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -222,6 +222,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SilConvertersXML/packages.config b/src/SilConvertersXML/packages.config index 07c3c3ac..130a77a4 100644 --- a/src/SilConvertersXML/packages.config +++ b/src/SilConvertersXML/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SpellingFixerEC/SpellingFixerEC.csproj b/src/SpellingFixerEC/SpellingFixerEC.csproj index ab16178a..55ded96f 100644 --- a/src/SpellingFixerEC/SpellingFixerEC.csproj +++ b/src/SpellingFixerEC/SpellingFixerEC.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <ProjectType>Local</ProjectType> <ProductVersion>9.0.30729</ProductVersion> @@ -249,6 +249,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SpellingFixerEC/packages.config b/src/SpellingFixerEC/packages.config index 07c3c3ac..130a77a4 100644 --- a/src/SpellingFixerEC/packages.config +++ b/src/SpellingFixerEC/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/TECkit Mapping Editor/TECkit Mapping Editor.csproj b/src/TECkit Mapping Editor/TECkit Mapping Editor.csproj index abf366ad..f2d82e5a 100644 --- a/src/TECkit Mapping Editor/TECkit Mapping Editor.csproj +++ b/src/TECkit Mapping Editor/TECkit Mapping Editor.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -239,6 +239,6 @@ xcopy /y "$(ProjectDir)UnicodeRanges.xml" "$(SolutionDir)output\$(PlatformName)\ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.6\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/TECkit Mapping Editor/packages.config b/src/TECkit Mapping Editor/packages.config index 07c3c3ac..130a77a4 100644 --- a/src/TECkit Mapping Editor/packages.config +++ b/src/TECkit Mapping Editor/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.6" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> </packages> \ No newline at end of file From 5caa26dfd1195cc8c9ef3ee1dd561ccb7dbce8d2 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sat, 18 Mar 2023 15:02:19 -0500 Subject: [PATCH 42/71] save the current window location and size when closing the form -- for the Word plug-in --- src/SILConvertersOffice/TranslationHelperForm.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/SILConvertersOffice/TranslationHelperForm.cs b/src/SILConvertersOffice/TranslationHelperForm.cs index 79d4c940..ddae72ca 100644 --- a/src/SILConvertersOffice/TranslationHelperForm.cs +++ b/src/SILConvertersOffice/TranslationHelperForm.cs @@ -235,6 +235,11 @@ private void TranslationHelperForm_FormClosing(object sender, FormClosingEventAr (ButtonPressed != FormButtons.Cancel) && (ButtonPressed != FormButtons.Next)) e.Cancel = true; + + Properties.Settings.Default.DefaultWindowState = WindowState; + Properties.Settings.Default.WindowLocation = Location; + Properties.Settings.Default.WindowSize = Size; + Properties.Settings.Default.Save(); } void IBackTranslationHelperDataSource.ButtonPressed(ButtonPressed button) From b801f1089e93ae72e489dd04d9c6d929644be2e5 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sat, 18 Mar 2023 15:06:09 -0500 Subject: [PATCH 43/71] added a TranslationHelperForm to the Xml Document converter (so it could be used, e.g. w/ Transcelerator adaptations. --- src/SilConvertersXML/Program.cs | 2 +- .../Properties/Resources.Designer.cs | 8 +- .../Properties/Resources.resx | 11 +- .../Properties/Settings.Designer.cs | 38 +++- .../Properties/Settings.settings | 9 + src/SilConvertersXML/SilConvertersXML.csproj | 14 ++ .../TranslationHelperForm.Designer.cs | 74 ++++++++ src/SilConvertersXML/TranslationHelperForm.cs | 165 ++++++++++++++++++ .../TranslationHelperForm.resx | 120 +++++++++++++ src/SilConvertersXML/XMLViewForm.Designer.cs | 20 ++- src/SilConvertersXML/XMLViewForm.cs | 63 +++++-- src/SilConvertersXML/app.config | 77 +++++++- 12 files changed, 576 insertions(+), 25 deletions(-) create mode 100644 src/SilConvertersXML/TranslationHelperForm.Designer.cs create mode 100644 src/SilConvertersXML/TranslationHelperForm.cs create mode 100644 src/SilConvertersXML/TranslationHelperForm.resx diff --git a/src/SilConvertersXML/Program.cs b/src/SilConvertersXML/Program.cs index 992a53e7..5717a581 100644 --- a/src/SilConvertersXML/Program.cs +++ b/src/SilConvertersXML/Program.cs @@ -68,7 +68,7 @@ static void Main(string[] args) string strOutputFileSpec = strFileSpecToOpen; if (args.Length > 3) strOutputFileSpec = args[3]; - m_aForm.ProcessAndSave(false, strOutputFileSpec); + m_aForm.ProcessAndSave(false, false, strOutputFileSpec); return; } } diff --git a/src/SilConvertersXML/Properties/Resources.Designer.cs b/src/SilConvertersXML/Properties/Resources.Designer.cs index e7bc7a5e..826f48ba 100644 --- a/src/SilConvertersXML/Properties/Resources.Designer.cs +++ b/src/SilConvertersXML/Properties/Resources.Designer.cs @@ -19,7 +19,7 @@ namespace SilConvertersXML.Properties { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { @@ -112,7 +112,11 @@ internal static string flowLayoutPanelConstraintTypeHelp { ///If you want to set the font to be used in this list, ///then right-click on the list and the font dialog will ///be displayed for you to choose from. - /// . + /// + ///If you want to convert the data in this list from a certain value + ///(e.g. if the list is large and you didn't finish it last time), + ///you can select the item you want to start with and when you click + ///the 'Convert and Save XML D [rest of string was truncated]";. /// </summary> internal static string listBoxViewDataHelp { get { diff --git a/src/SilConvertersXML/Properties/Resources.resx b/src/SilConvertersXML/Properties/Resources.resx index 315e71fa..f80092bd 100644 --- a/src/SilConvertersXML/Properties/Resources.resx +++ b/src/SilConvertersXML/Properties/Resources.resx @@ -112,10 +112,10 @@ <value>2.0</value> </resheader> <resheader name="reader"> - <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <resheader name="writer"> - <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <data name="dataGridViewConverterMappingHelp" xml:space="preserve"> <value>This grid displays the conversion "instructions" that you've created. The 'XPath' column shows the XPath syntax of the requested change(s). @@ -216,7 +216,12 @@ to the left. Right-click on an item in the tree to select it. If you want to set the font to be used in this list, then right-click on the list and the font dialog will be displayed for you to choose from. - </value> + +If you want to convert the data in this list from a certain value +(e.g. if the list is large and you didn't finish it last time), +you can select the item you want to start with and when you click +the 'Convert and Save XML Document' button, you'll be asked if +you want to start the conversation from that item or not.</value> </data> <data name="treeViewXmlDocHelp" xml:space="preserve"> <value>This window shows all the unique XML elements/attributes in the XML file (c.f. an XML schema). diff --git a/src/SilConvertersXML/Properties/Settings.Designer.cs b/src/SilConvertersXML/Properties/Settings.Designer.cs index 774395e5..77f8f4ac 100644 --- a/src/SilConvertersXML/Properties/Settings.Designer.cs +++ b/src/SilConvertersXML/Properties/Settings.Designer.cs @@ -12,7 +12,7 @@ namespace SilConvertersXML.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.5.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); @@ -44,5 +44,41 @@ public static Settings Default { this["RecentFilters"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("Normal")] + public global::System.Windows.Forms.FormWindowState DefaultWindowState { + get { + return ((global::System.Windows.Forms.FormWindowState)(this["DefaultWindowState"])); + } + set { + this["DefaultWindowState"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("0, 0")] + public global::System.Drawing.Point WindowLocation { + get { + return ((global::System.Drawing.Point)(this["WindowLocation"])); + } + set { + this["WindowLocation"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("800, 450")] + public global::System.Drawing.Size WindowSize { + get { + return ((global::System.Drawing.Size)(this["WindowSize"])); + } + set { + this["WindowSize"] = value; + } + } } } diff --git a/src/SilConvertersXML/Properties/Settings.settings b/src/SilConvertersXML/Properties/Settings.settings index 7404a85c..779a79f5 100644 --- a/src/SilConvertersXML/Properties/Settings.settings +++ b/src/SilConvertersXML/Properties/Settings.settings @@ -8,5 +8,14 @@ <Setting Name="RecentFilters" Type="System.Collections.Specialized.StringCollection" Scope="User"> <Value Profile="(Default)" /> </Setting> + <Setting Name="DefaultWindowState" Type="System.Windows.Forms.FormWindowState" Scope="User"> + <Value Profile="(Default)">Normal</Value> + </Setting> + <Setting Name="WindowLocation" Type="System.Drawing.Point" Scope="User"> + <Value Profile="(Default)">0, 0</Value> + </Setting> + <Setting Name="WindowSize" Type="System.Drawing.Size" Scope="User"> + <Value Profile="(Default)">800, 450</Value> + </Setting> </Settings> </SettingsFile> \ No newline at end of file diff --git a/src/SilConvertersXML/SilConvertersXML.csproj b/src/SilConvertersXML/SilConvertersXML.csproj index 8703b527..0cac2e73 100644 --- a/src/SilConvertersXML/SilConvertersXML.csproj +++ b/src/SilConvertersXML/SilConvertersXML.csproj @@ -44,6 +44,7 @@ <DefineConstants>DEBUG;TRACE</DefineConstants> <DebugType>full</DebugType> <PlatformTarget>x86</PlatformTarget> + <LangVersion>latest</LangVersion> <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression> <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile> <ErrorReport>prompt</ErrorReport> @@ -56,6 +57,7 @@ <Optimize>true</Optimize> <DebugType>pdbonly</DebugType> <PlatformTarget>x86</PlatformTarget> + <LangVersion>latest</LangVersion> <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression> <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile> <ErrorReport>prompt</ErrorReport> @@ -85,6 +87,9 @@ <ItemGroup> <!--nuget doesn't add the references to the csproj files properly; not sure why. Here is what you might want to manually add to the csproj file instead--> + <Reference Include="BackTranslationHelper"> + <HintPath>$(EcDistFilesPath)\win-$(Platform)\native\BackTranslationHelper.dll</HintPath> + </Reference> <Reference Include="ECInterfaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f1447bae1e63f485, processorArchitecture=x86" Condition="('$(Platform)' == 'x86' or '$(Platform)' == 'AnyCPU') and ('$(OS)'=='Windows_NT')"> <HintPath>$(EcLibFilesPath)\net48\x86\ECInterfaces.dll</HintPath> </Reference> @@ -127,6 +132,12 @@ <Compile Include="QueryFixedValueForm.Designer.cs"> <DependentUpon>QueryFixedValueForm.cs</DependentUpon> </Compile> + <Compile Include="TranslationHelperForm.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="TranslationHelperForm.Designer.cs"> + <DependentUpon>TranslationHelperForm.cs</DependentUpon> + </Compile> <Compile Include="XMLViewForm.cs"> <SubType>Form</SubType> </Compile> @@ -152,6 +163,9 @@ <SubType>Designer</SubType> <DependentUpon>QueryFixedValueForm.cs</DependentUpon> </EmbeddedResource> + <EmbeddedResource Include="TranslationHelperForm.resx"> + <DependentUpon>TranslationHelperForm.cs</DependentUpon> + </EmbeddedResource> <EmbeddedResource Include="XMLViewForm.resx"> <SubType>Designer</SubType> <DependentUpon>XMLViewForm.cs</DependentUpon> diff --git a/src/SilConvertersXML/TranslationHelperForm.Designer.cs b/src/SilConvertersXML/TranslationHelperForm.Designer.cs new file mode 100644 index 00000000..71e71144 --- /dev/null +++ b/src/SilConvertersXML/TranslationHelperForm.Designer.cs @@ -0,0 +1,74 @@ +using System; +using System.Windows.Forms; + +namespace SilConvertersXML +{ + partial class TranslationHelperForm + { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + this.backTranslationHelperCtrl = new BackTranslationHelper.BackTranslationHelperCtrl(); + this.SuspendLayout(); + // + // backTranslationHelperCtrl + // + this.backTranslationHelperCtrl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + // if you edit the form (e.g. to add a control), then the designer auto coding will change this "AutoSize = false" + // to (possibly true) and add an 'AutoSizeMode = GrowAndShrink'... but this will cause the embedded control to + // stop showing properly. It *must* be AutoSize = false. (keep this comment here too, so the next person sees it too) + // (I'm not sure if it's specifically necessary, but you might need to restore the PerformLayout at the bottom, + // which the editing of the form will remove too) + this.backTranslationHelperCtrl.AutoSize = false; + this.backTranslationHelperCtrl.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.backTranslationHelperCtrl.Dock = System.Windows.Forms.DockStyle.Fill; + this.backTranslationHelperCtrl.Location = new System.Drawing.Point(0, 0); + this.backTranslationHelperCtrl.Name = "backTranslationHelperCtrl"; + this.backTranslationHelperCtrl.Size = new System.Drawing.Size(800, 450); + this.backTranslationHelperCtrl.TabIndex = 0; + // + // TranslationHelperForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(800, 450); + this.Controls.Add(this.backTranslationHelperCtrl); + this.Name = "TranslationHelperForm"; + this.Text = "TranslationHelperForm"; + this.Load += new System.EventHandler(this.TranslationHelperForm_Load); + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.TranslationHelperForm_FormClosing); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private BackTranslationHelper.BackTranslationHelperCtrl backTranslationHelperCtrl; + } +} \ No newline at end of file diff --git a/src/SilConvertersXML/TranslationHelperForm.cs b/src/SilConvertersXML/TranslationHelperForm.cs new file mode 100644 index 00000000..92a150a6 --- /dev/null +++ b/src/SilConvertersXML/TranslationHelperForm.cs @@ -0,0 +1,165 @@ +using BackTranslationHelper; +using ECInterfaces; +using SilConvertersXML.Properties; +using SilEncConverters40; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace SilConvertersXML +{ + public partial class TranslationHelperForm : Form, IBackTranslationHelperDataSource + { + protected BackTranslationHelperModel _model; + protected Action<BackTranslationHelperModel> _updateDataProc; + protected Font _font = null; + protected DirectableEncConverter _theEc = null; + + public TranslationHelperForm() + { + InitializeComponent(); + } + + private string _translatedOutput = null; + public string TranslatedOutput + { + get + { + return _translatedOutput ?? backTranslationHelperCtrl.GetNewTargetTexts().FirstOrDefault().TargetData; + } + + private set + { + _translatedOutput = value; + } + } + + public DialogResult Show(DirectableEncConverter theEc, Font font, string sourceString) + { + var cursor = Cursor; + try + { + Cursor = Cursors.WaitCursor; + _font = font; + _theEc = theEc; + _model = new BackTranslationHelperModel + { + SourceData = sourceString, + TargetData = null, + TargetDataPreExisting = null, // we don't have an original version of the target (unless someday we allow side-by-side processing of 2 word docs) + + // the control we're sending this to may have other EncConverters associated w/ this font, but we only have the one. So add it + // here and when it gets initialized below, it may add other conversions done at that time + TargetsPossible = new List<TargetPossible>(), + }; + + // this form is the implementation of the way to get data + backTranslationHelperCtrl.BackTranslationHelperDataSource = this; + if (!backTranslationHelperCtrl.TheTranslators.Any(t => t.Name == theEc.GetEncConverter.Name)) + backTranslationHelperCtrl.TheTranslators.Add(theEc.GetEncConverter); + + backTranslationHelperCtrl.Initialize(displayExistingTargetTranslation: false); + backTranslationHelperCtrl.GetNewData(ref _model); + _updateDataProc(_model); + + // get some info to show in the title bar + this.Text = String.Format("{0}: {1}", XMLViewForm.cstrCaption, theEc?.ToString()); + + Cursor = cursor; + + return ShowDialog(); + } + catch (Exception ex) + { + Cursor = cursor; + var error = ex.Message; + while (ex.InnerException != null) + { + error += Environment.NewLine + Environment.NewLine + ex.InnerException.Message; + ex = ex.InnerException; + } + + MessageBox.Show(error, XMLViewForm.cstrCaption); + } + + return DialogResult.None; + } + + public Font SourceLanguageFont => _font; + + public bool SourceLanguageRightToLeft => false; + + public Font TargetLanguageFont => _font; + + public bool TargetLanguageRightToLeft => false; + + public BackTranslationHelperModel Model => _model; + + public string ProjectName => _theEc.Name; + + public void ActivateKeyboard() + { + // TODO + } + + public void ButtonPressed(ButtonPressed button) + { + // todo + } + + public void Cancel() + { + DialogResult = DialogResult.Cancel; + Close(); + } + + public void Log(string message) + { + System.Diagnostics.Debug.WriteLine(message); + } + + public void MoveToNext() + { + DialogResult = DialogResult.OK; + Close(); + } + + public void SetDataUpdateProc(Action<BackTranslationHelperModel> updateControls) + { + _updateDataProc = updateControls; + } + + public bool WriteToTarget(string text) + { + TranslatedOutput = text; + DialogResult = DialogResult.OK; + Close(); + return true; + } + + private void TranslationHelperForm_Load(object sender, EventArgs e) + { + Location = Settings.Default.WindowLocation; + WindowState = Settings.Default.DefaultWindowState; + if (MinimumSize.Height <= Settings.Default.WindowSize.Height && + MinimumSize.Width <= Settings.Default.WindowSize.Width) + { + Size = Settings.Default.WindowSize; + } + } + + private void TranslationHelperForm_FormClosing(object sender, FormClosingEventArgs e) + { + Properties.Settings.Default.DefaultWindowState = WindowState; + Properties.Settings.Default.WindowLocation = Location; + Properties.Settings.Default.WindowSize = Size; + Properties.Settings.Default.Save(); + } + } +} diff --git a/src/SilConvertersXML/TranslationHelperForm.resx b/src/SilConvertersXML/TranslationHelperForm.resx new file mode 100644 index 00000000..1af7de15 --- /dev/null +++ b/src/SilConvertersXML/TranslationHelperForm.resx @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root> \ No newline at end of file diff --git a/src/SilConvertersXML/XMLViewForm.Designer.cs b/src/SilConvertersXML/XMLViewForm.Designer.cs index 8f645ccc..7a2b0c67 100644 --- a/src/SilConvertersXML/XMLViewForm.Designer.cs +++ b/src/SilConvertersXML/XMLViewForm.Designer.cs @@ -67,6 +67,7 @@ private void InitializeComponent() this.toolTip = new System.Windows.Forms.ToolTip(this.components); this.backgroundWorker = new System.ComponentModel.BackgroundWorker(); this.fontDialog = new System.Windows.Forms.FontDialog(); + this.menuUseTranslationDialog = new System.Windows.Forms.ToolStripMenuItem(); this.menuStrip.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit(); this.splitContainer.Panel1.SuspendLayout(); @@ -208,7 +209,8 @@ private void InitializeComponent() // advancedToolStripMenuItem // this.advancedToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.enterXPathExpressionToolStripMenuItem}); + this.enterXPathExpressionToolStripMenuItem, + this.menuUseTranslationDialog}); this.advancedToolStripMenuItem.Name = "advancedToolStripMenuItem"; this.advancedToolStripMenuItem.Size = new System.Drawing.Size(72, 20); this.advancedToolStripMenuItem.Text = "&Advanced"; @@ -217,7 +219,7 @@ private void InitializeComponent() // this.enterXPathExpressionToolStripMenuItem.Enabled = false; this.enterXPathExpressionToolStripMenuItem.Name = "enterXPathExpressionToolStripMenuItem"; - this.enterXPathExpressionToolStripMenuItem.Size = new System.Drawing.Size(193, 22); + this.enterXPathExpressionToolStripMenuItem.Size = new System.Drawing.Size(194, 22); this.enterXPathExpressionToolStripMenuItem.Text = "Enter &XPath Expression"; this.enterXPathExpressionToolStripMenuItem.Click += new System.EventHandler(this.enterXPathExpressionToolStripMenuItem_Click); // @@ -296,7 +298,7 @@ private void InitializeComponent() this.radioButtonDefaultFont.AutoSize = true; this.radioButtonDefaultFont.Location = new System.Drawing.Point(3, 231); this.radioButtonDefaultFont.Name = "radioButtonDefaultFont"; - this.radioButtonDefaultFont.Size = new System.Drawing.Size(121, 20); + this.radioButtonDefaultFont.Size = new System.Drawing.Size(120, 20); this.radioButtonDefaultFont.TabIndex = 3; this.radioButtonDefaultFont.TabStop = true; this.radioButtonDefaultFont.Text = "Arial Unicode MS"; @@ -341,7 +343,7 @@ private void InitializeComponent() this.buttonProcessAndSave.Location = new System.Drawing.Point(270, 143); this.buttonProcessAndSave.Margin = new System.Windows.Forms.Padding(2); this.buttonProcessAndSave.Name = "buttonProcessAndSave"; - this.buttonProcessAndSave.Size = new System.Drawing.Size(204, 26); + this.buttonProcessAndSave.Size = new System.Drawing.Size(203, 26); this.buttonProcessAndSave.TabIndex = 3; this.buttonProcessAndSave.Text = "&Convert and Save XML Document"; this.buttonProcessAndSave.UseVisualStyleBackColor = true; @@ -432,6 +434,13 @@ private void InitializeComponent() this.backgroundWorker.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.backgroundWorker_ProgressChanged); this.backgroundWorker.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.backgroundWorker_RunWorkerCompleted); // + // menuUseTranslationDialog + // + this.menuUseTranslationDialog.CheckOnClick = true; + this.menuUseTranslationDialog.Name = "menuUseTranslationDialog"; + this.menuUseTranslationDialog.Size = new System.Drawing.Size(194, 22); + this.menuUseTranslationDialog.Text = "&UseTranslation Dialog"; + // // XMLViewForm // this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 16F); @@ -506,6 +515,7 @@ private void InitializeComponent() private System.Windows.Forms.ToolStripMenuItem enterXPathExpressionToolStripMenuItem; private System.Windows.Forms.TextBox textBoxInput; private System.Windows.Forms.TextBox textBoxOutput; - } + private System.Windows.Forms.ToolStripMenuItem menuUseTranslationDialog; + } } diff --git a/src/SilConvertersXML/XMLViewForm.cs b/src/SilConvertersXML/XMLViewForm.cs index 50129943..d9b3cc48 100644 --- a/src/SilConvertersXML/XMLViewForm.cs +++ b/src/SilConvertersXML/XMLViewForm.cs @@ -392,16 +392,19 @@ protected void UncheckAllNodes(TreeNodeCollection nodes) private void processAndSaveDocuments(object sender, EventArgs e) { - ProcessAndSave(true, null); + ProcessAndSave(true, menuUseTranslationDialog.Checked, null); } - public void ProcessAndSave(bool bShowUI, string strOutputFileSpec) + private Dictionary<string, TranslationHelperForm> _mapConverterToTranslationForm = new Dictionary<string, TranslationHelperForm>(); + + public void ProcessAndSave(bool bShowUI, bool useTranslationForm, string strOutputFileSpec) { try { Cursor = Cursors.WaitCursor; + bool queryForStartAfterIndexRecords = true; bool bModified = Program.Modified; - int nIndex = 0; + int nIndex = 0, numToSkip = 0; while (nIndex < dataGridViewConverterMapping.Rows.Count) { DataGridViewRow aRow = dataGridViewConverterMapping.Rows[nIndex]; @@ -430,8 +433,53 @@ public void ProcessAndSave(bool bShowUI, string strOutputFileSpec) while (xpIterator.MoveNext()) { System.Diagnostics.Trace.WriteLine(String.Format("Position: {0} Count: {1}", xpIterator.CurrentPosition, xpIterator.Count)); + + DialogResult res; + // if the user has selected an item in the listBoxViewData, then see if they want to skip to there and pick up + // (if it's a big file, it might have already a portion of it converted) + if (queryForStartAfterIndexRecords) + { + var index = listBoxViewData.SelectedIndex; + if (index != -1) + { + res = MessageBox.Show($"You selected the item at index, {index} (={listBoxViewData.Items[index]}). Do you want to skip past the earlier items and start the conversion from that item?", cstrCaption, MessageBoxButtons.YesNo); + if (res == DialogResult.Yes) + { + numToSkip = index; + } + } + queryForStartAfterIndexRecords = false; + } + + if (numToSkip-- > 0) + continue; + string strInput = xpIterator.Current.Value; - string strOutput = CallSafeConvert(aEC, strInput); + string strOutput = strInput; + var isTranslatorResource = (((ProcessTypeFlags)aEC.GetEncConverter.ProcessType & ProcessTypeFlags.Translation) == ProcessTypeFlags.Translation); + if (useTranslationForm || isTranslatorResource) + { + if (!_mapConverterToTranslationForm.TryGetValue(aEC.Name, out TranslationHelperForm form)) + { + form = new TranslationHelperForm(); + _mapConverterToTranslationForm.Add(aEC.Name, form); + } + + res = form.Show(aEC, listBoxViewData.Font, strInput); + if (res == DialogResult.OK) + { + strOutput = form.TranslatedOutput; + } + else if (res == DialogResult.Cancel) + { + break; + } + } + else + { + strOutput = CallSafeConvert(aEC, strInput); + } + if (bShowUI) { textBoxInput.Text = strInput; @@ -681,15 +729,10 @@ private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e) { XPathNodeIterator xpIterator = GetIterator((TreeNode)e.Argument, out strXPath); - List<string> lstUnique = new List<string>(); while (xpIterator.MoveNext() && !worker.CancellationPending) { string strValue = xpIterator.Current.Value; - if (!lstUnique.Contains(strValue)) - { - lstUnique.Add(strValue); - worker.ReportProgress((lstUnique.Count * 100) / xpIterator.Count, strValue); - } + worker.ReportProgress((xpIterator.Count * 100) / xpIterator.Count, strValue); } } catch (ApplicationException ex) diff --git a/src/SilConvertersXML/app.config b/src/SilConvertersXML/app.config index e17519ad..712b8442 100644 --- a/src/SilConvertersXML/app.config +++ b/src/SilConvertersXML/app.config @@ -1,5 +1,76 @@ <?xml version="1.0"?> <configuration> - <configSections> - </configSections> -<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2"/></startup></configuration> + <configSections> + <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > + <section name="SilConvertersXML.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> + </sectionGroup> + </configSections> + <startup> + <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/> + </startup> + <runtime> + <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> + <dependentAssembly> + <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.Extensions.Configuration.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.Extensions.Primitives" publicKeyToken="adb9793829ddae60" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.Extensions.Http" publicKeyToken="adb9793829ddae60" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.Extensions.DependencyInjection.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Text.Json" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.Extensions.Http.Polly" publicKeyToken="adb9793829ddae60" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.Extensions.DependencyInjection" publicKeyToken="adb9793829ddae60" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.Extensions.Logging.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" /> + </dependentAssembly> + </assemblyBinding> + </runtime> + <userSettings> + <SilConvertersXML.Properties.Settings> + <setting name="DefaultWindowState" serializeAs="String"> + <value>Normal</value> + </setting> + <setting name="WindowLocation" serializeAs="String"> + <value>0, 0</value> + </setting> + <setting name="WindowSize" serializeAs="String"> + <value>800, 450</value> + </setting> + </SilConvertersXML.Properties.Settings> + </userSettings> +</configuration> From 1f086c7366a74e0fee0876e54e4ee7f59b07eff9 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sat, 18 Mar 2023 16:01:46 -0500 Subject: [PATCH 44/71] fix the command line option for XML converter so that it can still do the entire thing w/o the translation helper dialog (some may find it easier to just let Bing/DeepL do the entire file and then clean it up afterwards) --- src/SilConvertersXML/Program.cs | 2 +- src/SilConvertersXML/XMLViewForm.cs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/SilConvertersXML/Program.cs b/src/SilConvertersXML/Program.cs index 5717a581..dfc09e8d 100644 --- a/src/SilConvertersXML/Program.cs +++ b/src/SilConvertersXML/Program.cs @@ -80,7 +80,7 @@ static void Main(string[] args) public static void PrintUsage() { Assembly assy = Assembly.GetExecutingAssembly(); - string strUsage = String.Format("Usage: {1} <xmlfile2open>.xml (/cm <converterMappingFile2Use>.xcm) (<xmlfile2save>.xml){0}{0} where the xml file (i.e. <xmlfile2open>.xml) will be automatically converted if you provide the '/cm' switch and the converter mapping file (i.e. <converterMappingFile2Use>.xcm). If you want to save it with a different name, you can optionally provide the <xmlfile2save>.xml parameter", + string strUsage = String.Format("Usage: {1} <xmlfile2open> (/cm <converterMappingFile2Use.xcm>) (<xmlfile2save>){0}{0} where the xml file (i.e. <xmlfile2open>) will be automatically converted if you provide the '/cm' switch and the converter mapping file (i.e. <converterMappingFile2Use.xcm>). If you want to save it with a different name, you can optionally provide the <xmlfile2save> parameter", Environment.NewLine, assy.ManifestModule.Name); Console.WriteLine(strUsage); MessageBox.Show(strUsage, XMLViewForm.cstrCaption); diff --git a/src/SilConvertersXML/XMLViewForm.cs b/src/SilConvertersXML/XMLViewForm.cs index d9b3cc48..82798df2 100644 --- a/src/SilConvertersXML/XMLViewForm.cs +++ b/src/SilConvertersXML/XMLViewForm.cs @@ -457,7 +457,7 @@ public void ProcessAndSave(bool bShowUI, bool useTranslationForm, string strOutp string strInput = xpIterator.Current.Value; string strOutput = strInput; var isTranslatorResource = (((ProcessTypeFlags)aEC.GetEncConverter.ProcessType & ProcessTypeFlags.Translation) == ProcessTypeFlags.Translation); - if (useTranslationForm || isTranslatorResource) + if (bShowUI && (useTranslationForm || isTranslatorResource)) { if (!_mapConverterToTranslationForm.TryGetValue(aEC.Name, out TranslationHelperForm form)) { @@ -499,7 +499,7 @@ public void ProcessAndSave(bool bShowUI, bool useTranslationForm, string strOutp // reset this so we can do new versions m_mapEncConverters.Clear(); - bool bHaveOutputFilename = false; + bool bHaveOutputFilename = !String.IsNullOrEmpty(strOutputFileSpec); do { if (String.IsNullOrEmpty(strOutputFileSpec)) From 431f052cc177df1ad002e8deb29cb8ad9b1d75f6 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Mon, 20 Mar 2023 19:06:51 -0500 Subject: [PATCH 45/71] fixed the logic in the XML converter so that clicking 'Skip' means it won't convert the entry. Also added the *.config files to the merge module for SilConvertersXml.exe so on install, it'll redirect the System.Runtime.CompilerServices.Unsafe dll to v7, which is installed --- .../XmlConverters_MergeModule.wxs | 5 +++++ .../XmlConverters_MergeModule.wxs | 5 +++++ src/SilConvertersXML/TranslationHelperForm.cs | 16 +++++++++++++--- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/Installer/XmlConverters64bitMM/XmlConverters_MergeModule.wxs b/Installer/XmlConverters64bitMM/XmlConverters_MergeModule.wxs index 796a44b3..5fe94b71 100644 --- a/Installer/XmlConverters64bitMM/XmlConverters_MergeModule.wxs +++ b/Installer/XmlConverters64bitMM/XmlConverters_MergeModule.wxs @@ -21,6 +21,11 @@ <Shortcut Id="SilConvertersXML.exe" Directory="SILConverters" Name="XML Document Converter" Description="Convert your XML documents with SIL Converters" IconIndex="0" Show="normal" Target="[#SilConvertersXML.exe]" WorkingDirectory="MergeRedirectFolder" Advertise="no" /> </Component> + <Component Id="SilConvertersXML.exe.config" Guid="{6343D12D-43B0-48F2-BE98-E628D244704C}"> + <File Id="SilConvertersXML.exe.config" Name="SilConvertersXML.exe.config" Vital="yes" KeyPath="yes" + Source="..\..\output\x64\release\SilConvertersXML.exe.config" /> + </Component> + </Directory> <Directory Id="StartMenuFolder" SourceName="Start Menu"> diff --git a/Installer/XmlConvertersMM/XmlConverters_MergeModule.wxs b/Installer/XmlConvertersMM/XmlConverters_MergeModule.wxs index 6b5ea557..84e5b507 100644 --- a/Installer/XmlConvertersMM/XmlConverters_MergeModule.wxs +++ b/Installer/XmlConvertersMM/XmlConverters_MergeModule.wxs @@ -20,6 +20,11 @@ <Shortcut Id="SilConvertersXML.exe" Directory="SILConverters" Name="XML Document Converter" Description="Convert your XML documents with SIL Converters" IconIndex="0" Show="normal" Target="[#SilConvertersXML.exe]" WorkingDirectory="MergeRedirectFolder" Advertise="no" /> </Component> + <Component Id="SilConvertersXML.exe.config" Guid="{E3C9221E-D0DA-45B2-99A4-F79A4AE07029}"> + <File Id="SilConvertersXML.exe.config" Name="SilConvertersXML.exe.config" Vital="yes" KeyPath="yes" + Source="..\..\output\x86\release\SilConvertersXML.exe.config" /> + </Component> + </Directory> <Directory Id="StartMenuFolder" SourceName="Start Menu"> diff --git a/src/SilConvertersXML/TranslationHelperForm.cs b/src/SilConvertersXML/TranslationHelperForm.cs index 92a150a6..738c0953 100644 --- a/src/SilConvertersXML/TranslationHelperForm.cs +++ b/src/SilConvertersXML/TranslationHelperForm.cs @@ -110,12 +110,23 @@ public void ActivateKeyboard() public void ButtonPressed(ButtonPressed button) { - // todo + switch (button) + { + case BackTranslationHelper.ButtonPressed.Skip: + DialogResult = DialogResult.No; + break; + case BackTranslationHelper.ButtonPressed.MoveToNext: + case BackTranslationHelper.ButtonPressed.WriteToTarget: + DialogResult = DialogResult.OK; + break; + case BackTranslationHelper.ButtonPressed.Cancel: + DialogResult = DialogResult.Cancel; + break; + } } public void Cancel() { - DialogResult = DialogResult.Cancel; Close(); } @@ -126,7 +137,6 @@ public void Log(string message) public void MoveToNext() { - DialogResult = DialogResult.OK; Close(); } From f69ffb964c481b5879a15d2960d68a8efa899aa6 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Mon, 20 Mar 2023 19:17:42 -0500 Subject: [PATCH 46/71] removing RegisterForComInterop for Debug x64 build hoping to fix the GHA build (though, it isn't really used for anything, since we have to sign it using TeamCity) --- src/SpellingFixerEC/SpellingFixerEC.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SpellingFixerEC/SpellingFixerEC.csproj b/src/SpellingFixerEC/SpellingFixerEC.csproj index 55ded96f..87647005 100644 --- a/src/SpellingFixerEC/SpellingFixerEC.csproj +++ b/src/SpellingFixerEC/SpellingFixerEC.csproj @@ -103,7 +103,7 @@ <LangVersion>latest</LangVersion> <ErrorReport>prompt</ErrorReport> <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> - <RegisterForComInterop>true</RegisterForComInterop> + <RegisterForComInterop>false</RegisterForComInterop> </PropertyGroup> <ItemGroup> <Reference Include="CcEC"> From ff11f204cfa705137728f3894f138286970349d0 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Tue, 21 Mar 2023 07:53:33 -0500 Subject: [PATCH 47/71] removed some unnecessary (and breaking) "Properties" dereferences --- src/SILConvertersOffice/FindReplaceForm.cs | 6 +++--- src/SILConvertersOffice/TranslationHelperForm.cs | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/SILConvertersOffice/FindReplaceForm.cs b/src/SILConvertersOffice/FindReplaceForm.cs index 70f0ad64..8950edf0 100644 --- a/src/SILConvertersOffice/FindReplaceForm.cs +++ b/src/SILConvertersOffice/FindReplaceForm.cs @@ -101,7 +101,7 @@ protected void ProcessButtonEx(FormButtons eFormButton) // if there's no processor (e.g. initially, change of Find What or Replace With text)... if (m_aWordByWordProcessor == null) { - AddToComboBox(ecTextBoxFindWhat, comboBoxFindWhat, Properties.Settings.Default.RecentFindWhat); + AddToComboBox(ecTextBoxFindWhat, comboBoxFindWhat, Settings.Default.RecentFindWhat); // if the user clicked Find/Next, then don't give the Replace With text even if there is some m_aWordByWordProcessor = new FindWordProcessor(ecTextBoxFindWhat.Text, ecTextBoxReplaceWith.Text, @@ -114,7 +114,7 @@ protected void ProcessButtonEx(FormButtons eFormButton) // if we're doing a replacement, then save the 'Replace with' string in our settings file if ((eFormButton == FormButtons.ReplaceOnce) || (eFormButton == FormButtons.ReplaceAll)) { - AddToComboBox(ecTextBoxReplaceWith, comboBoxReplaceWith, Properties.Settings.Default.RecentReplaceWith); + AddToComboBox(ecTextBoxReplaceWith, comboBoxReplaceWith, Settings.Default.RecentReplaceWith); // the user may have done 'Replace' when it was found, but then later clicked said ReplaceAll, // so update the value @@ -325,7 +325,7 @@ private void FindReplaceForm_FormClosing(object sender, FormClosingEventArgs e) // expression). FindWordProcessor.m_aECs = null; ResetBackgroundWorker(); - Properties.Settings.Default.Save(); // in case something was changed + Settings.Default.Save(); // in case something was changed e.Cancel = true; Hide(); } diff --git a/src/SILConvertersOffice/TranslationHelperForm.cs b/src/SILConvertersOffice/TranslationHelperForm.cs index ddae72ca..a6884a00 100644 --- a/src/SILConvertersOffice/TranslationHelperForm.cs +++ b/src/SILConvertersOffice/TranslationHelperForm.cs @@ -236,10 +236,10 @@ private void TranslationHelperForm_FormClosing(object sender, FormClosingEventAr (ButtonPressed != FormButtons.Next)) e.Cancel = true; - Properties.Settings.Default.DefaultWindowState = WindowState; - Properties.Settings.Default.WindowLocation = Location; - Properties.Settings.Default.WindowSize = Size; - Properties.Settings.Default.Save(); + Settings.Default.DefaultWindowState = WindowState; + Settings.Default.WindowLocation = Location; + Settings.Default.WindowSize = Size; + Settings.Default.Save(); } void IBackTranslationHelperDataSource.ButtonPressed(ButtonPressed button) From e9ba2b62ab8309d47e84e6074baf4389015589f3 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Tue, 21 Mar 2023 07:56:14 -0500 Subject: [PATCH 48/71] added another way to get font listing which isn't as verbose as 'on entire machine' and also changed it so that if the user doesn't have anything selected, then functions default to 'whole document' --- .../FontConvertersPicker.cs | 26 +++++++++++++++---- .../SILConvertersOffice.csproj | 1 + .../WordDocumentProcessor.cs | 22 +++++++++++++++- src/SILConvertersOffice/WordRange.cs | 15 +++++++++++ .../SILConvertersOffice07.csproj | 1 + .../SILConvertersOffice10.csproj | 1 + .../SILConvertersOffice13.csproj | 1 + 7 files changed, 61 insertions(+), 6 deletions(-) diff --git a/src/SILConvertersOffice/FontConvertersPicker.cs b/src/SILConvertersOffice/FontConvertersPicker.cs index 953a0e02..ad06e546 100644 --- a/src/SILConvertersOffice/FontConvertersPicker.cs +++ b/src/SILConvertersOffice/FontConvertersPicker.cs @@ -14,6 +14,8 @@ using System.Collections; using System.IO; // FileStream using System.Runtime.Serialization; // for SerializationException +using System.Xml.Linq; +using System.Linq; #if BUILD_FOR_OFF11 using SILConvertersOffice.Properties; #elif BUILD_FOR_OFF12 @@ -120,7 +122,7 @@ protected void PopulateGrid() ResetBackgroundWorker(); // just in case dataGridViewFontsConverters.Rows.Clear(); - + // check the check box state which says whether we do "all fonts" or just those in the document if (checkBoxFontsInUse.Checked) { @@ -129,9 +131,11 @@ protected void PopulateGrid() // Office 2007 (what I'm calling build 4518) doesn't allow background workers to run while a // modal dialog is visible. So do it inline. - if ( ((m_doc.GetType() != typeof(PubDocument)) && (m_doc.GetType() != typeof(PubStoryDocument))) - || ((PubDocument)m_doc).Document.Application.Version.Substring(0,2) == "11") + if (((m_doc.GetType() != typeof(PubDocument)) && (m_doc.GetType() != typeof(PubStoryDocument))) + || ((PubDocument)m_doc).Document.Application.Version.Substring(0, 2) == "11") + { backgroundWorker.RunWorkerAsync(m_doc); + } else { DoWork(backgroundWorker, m_doc); @@ -139,8 +143,20 @@ protected void PopulateGrid() } } else - foreach (FontFamily aFontFamily in new InstalledFontCollection().Families) - AddRow(aFontFamily.Name); + { + if (m_doc is WordDocument wordDoc) + { + var xdoc = wordDoc.XDocument; + var fonts = xdoc.Descendants().First(n => n.Name.LocalName == "fonts").Elements().Where(n => n.Name.LocalName == "font"); + var fontNames = fonts.Select(f => f.Attributes().First(a => a.Name.LocalName == "name").Value); + fontNames.Distinct().ToList().ForEach(fn => AddRow(fn)); + } + else + { + foreach (FontFamily aFontFamily in new InstalledFontCollection().Families) + AddRow(aFontFamily.Name); + } + } } protected bool IsTargetFontDefined(string strFontNameOutput) diff --git a/src/SILConvertersOffice/SILConvertersOffice.csproj b/src/SILConvertersOffice/SILConvertersOffice.csproj index 0f967ce4..967d0532 100644 --- a/src/SILConvertersOffice/SILConvertersOffice.csproj +++ b/src/SILConvertersOffice/SILConvertersOffice.csproj @@ -148,6 +148,7 @@ <HintPath>System.XML.dll</HintPath> <Name>System.XML</Name> </Reference> + <Reference Include="System.Xml.Linq" /> </ItemGroup> <ItemGroup> <Compile Include="AccessApp.cs" /> diff --git a/src/SILConvertersOffice/WordDocumentProcessor.cs b/src/SILConvertersOffice/WordDocumentProcessor.cs index 43e85f1f..097e8b8d 100644 --- a/src/SILConvertersOffice/WordDocumentProcessor.cs +++ b/src/SILConvertersOffice/WordDocumentProcessor.cs @@ -2,7 +2,9 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Windows.Forms; // for DialogResult +using System.Xml.Linq; using Word = Microsoft.Office.Interop.Word; /* #if !Csc30 @@ -25,6 +27,16 @@ public Word.Document Document get { return (Word.Document)m_baseDocument; } } + public XDocument XDocument + { + get + { + var xml = Document.Content.XML; + var doc = XDocument.Parse(xml); + return doc; + } + } + public override int WordCount { get { return Document.Words.Count; } @@ -372,7 +384,15 @@ public override bool ProcessWordByWord(OfficeDocumentProcessor aWordProcessor) { // if multiple paragraphs... int nCharIndex = 0; - WordParagraphs aParagraphRanges = new WordParagraphs(Document.Application.Selection); + var selection = Document.Application.Selection; + WordParagraphs aParagraphRanges = new WordParagraphs(selection); + + // if nothing was selected, then assume the user means 'whole document' + if (!aParagraphRanges.Any()) + { + aParagraphRanges = new WordParagraphs(Document.Paragraphs); + } + foreach (Word.Range aRange in aParagraphRanges) { WordRange aThisParagraph = new WordRange(aRange); diff --git a/src/SILConvertersOffice/WordRange.cs b/src/SILConvertersOffice/WordRange.cs index 13cad297..60600f60 100644 --- a/src/SILConvertersOffice/WordRange.cs +++ b/src/SILConvertersOffice/WordRange.cs @@ -3,6 +3,7 @@ using System.Text; using System.Drawing; using Word = Microsoft.Office.Interop.Word; +using Microsoft.Office.Interop.Word; namespace SILConvertersOffice { @@ -227,5 +228,19 @@ public WordParagraphs(Word.Selection aBasedOnSelection) aRange.End = aBasedOnSelection.End; } } + + public WordParagraphs(Paragraphs paragraphs) + { + int nParagraphCount = paragraphs.Count; + int i = 1; + Word.Range aRange = paragraphs[i].Range.Duplicate; + Add(aRange); + + while (i < nParagraphCount) + { + aRange = paragraphs[++i].Range.Duplicate; + Add(aRange); + } + } } } diff --git a/src/SILConvertersOffice07/SILConvertersOffice07.csproj b/src/SILConvertersOffice07/SILConvertersOffice07.csproj index b91e8cfc..f2df3ef1 100644 --- a/src/SILConvertersOffice07/SILConvertersOffice07.csproj +++ b/src/SILConvertersOffice07/SILConvertersOffice07.csproj @@ -141,6 +141,7 @@ <HintPath>System.XML.dll</HintPath> <Name>System.XML</Name> </Reference> + <Reference Include="System.Xml.Linq" /> </ItemGroup> <ItemGroup> <Compile Include="..\SILConvertersOffice\AccessApp.cs"> diff --git a/src/SILConvertersOffice10/SILConvertersOffice10.csproj b/src/SILConvertersOffice10/SILConvertersOffice10.csproj index 03da57e5..c57d2e1b 100644 --- a/src/SILConvertersOffice10/SILConvertersOffice10.csproj +++ b/src/SILConvertersOffice10/SILConvertersOffice10.csproj @@ -149,6 +149,7 @@ <HintPath>System.XML.dll</HintPath> <Name>System.XML</Name> </Reference> + <Reference Include="System.Xml.Linq" /> </ItemGroup> <ItemGroup> <Compile Include="..\SILConvertersOffice\BaseConverterForm.cs"> diff --git a/src/SILConvertersOffice13/SILConvertersOffice13.csproj b/src/SILConvertersOffice13/SILConvertersOffice13.csproj index 4142d32c..73026dc9 100644 --- a/src/SILConvertersOffice13/SILConvertersOffice13.csproj +++ b/src/SILConvertersOffice13/SILConvertersOffice13.csproj @@ -147,6 +147,7 @@ <HintPath>System.XML.dll</HintPath> <Name>System.XML</Name> </Reference> + <Reference Include="System.Xml.Linq" /> </ItemGroup> <ItemGroup> <Compile Include="..\SILConvertersOffice\BaseConverterForm.cs"> From da5daad5aaa5ec187ea45371eb19c645b3af67e3 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Wed, 22 Mar 2023 05:20:41 -0500 Subject: [PATCH 49/71] IcuRegex doesn't work for certain regex escape codes (e.g. \u200c or \u200d -- the zero-width (non-) joiners), so I'm giving up on using it for the regex searching in Word functionality and replacing it with .Net's version of regex, which is functioning nicely... --- src/SILConvertersOffice/FindReplaceForm.cs | 185 +++------------------ 1 file changed, 23 insertions(+), 162 deletions(-) diff --git a/src/SILConvertersOffice/FindReplaceForm.cs b/src/SILConvertersOffice/FindReplaceForm.cs index 8950edf0..8361cff9 100644 --- a/src/SILConvertersOffice/FindReplaceForm.cs +++ b/src/SILConvertersOffice/FindReplaceForm.cs @@ -7,6 +7,9 @@ using ECInterfaces; using SilEncConverters40; using Word = Microsoft.Office.Interop.Word; +using System.Text.RegularExpressions; +using System.Text; +using System.Security.Policy; #if BUILD_FOR_OFF11 using SILConvertersOffice.Properties; #elif BUILD_FOR_OFF12 @@ -30,6 +33,7 @@ internal partial class FindReplaceForm : Form { const string cstrClose = "&Close"; const string cstrStop = "&Stop"; + const string NetRegexHelpUrl = "https://learn.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference"; private readonly WordFindReplaceDocument m_doc; FindWordProcessor m_aWordByWordProcessor = null; @@ -320,10 +324,6 @@ private void ContextMenuStripExprBuilder_ItemClicked(object sender, ToolStripIte private void FindReplaceForm_FormClosing(object sender, FormClosingEventArgs e) { - // clear out the EncConverters object we created since we're probably done for a while (that - // is static so we don't have to keep buying it over and over again for simple changes in the - // expression). - FindWordProcessor.m_aECs = null; ResetBackgroundWorker(); Settings.Default.Save(); // in case something was changed e.Cancel = true; @@ -387,9 +387,8 @@ private void ComboBoxReplaceWith_SelectedIndexChanged(object sender, EventArgs e private void RegularExpressionHelpToolStripMenuItem_Click(object sender, EventArgs e) { - // launch the ICU help - string strCommandLine = Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles) + @"\SIL\Help\ICU Regular Expression Plug-in About box.htm"; - OfficeApp.LaunchProgram(strCommandLine, null); + // launch the .Net Regex help + System.Diagnostics.Process.Start(NetRegexHelpUrl); } private void CheckBoxMatchCase_CheckedChanged(object sender, EventArgs e) @@ -420,25 +419,21 @@ internal class FindWordProcessor : OfficeDocumentProcessor protected char[] m_achDelimiter = new char[] { '\u001f' }; public int NumOfParagraphsToSearch = 1; public int NumOfReplacements = 0; - static public EncConverters m_aECs = null; - protected IEncConverter m_aECRegex = null; + protected Regex _netRegex = null; + protected string _replaceWith = null; protected string[] astrReplaceDoubleEscapeCodes = new string[] { @"\t", @"\r", @"\n", @"\a", @"\b", @"\f" }; protected string[] astrReplaceEscapeCodes = new string[] { "\t", "\r", "\n", "\a", "\b", "\f" }; public FindWordProcessor(string strFindWhat, string strReplaceWith, bool bMatchCase) { - m_aECs ??= new EncConverters(true); + strReplaceWith = Regex.Unescape(strReplaceWith); - // for some reason, the text that goes to constructing the 'Find what' part of the CRegexMatcher is - // expecting doubly-escaped text (e.g. "\\r" for CR), but the text that goes for the 'Replace with' - // (i.e. the CRegex::ReplaceAll) is expecting singly-escaped text. Our text boxes, however, will always - // return these as doubly-escaped. So for the 'Replace with' stuff, we need to turn certain doubly- - // escaped codes into their single-escaped flavors). - int nNumEscapeCodes = astrReplaceDoubleEscapeCodes.Length; - for (int i = 0; i < nNumEscapeCodes; i++) - strReplaceWith = strReplaceWith.Replace(astrReplaceDoubleEscapeCodes[i], astrReplaceEscapeCodes[i]); + // use a dummy delimiter in the replaceWith string, so we can find the changed bit + // (hoping the person isn't looking for this delimiter) + _replaceWith = String.Format("{0}{1}{0}", m_achDelimiter[0], strReplaceWith); + + _netRegex = new(strFindWhat); - m_aECRegex = InitSearchFontConverter(strFindWhat, strReplaceWith, bMatchCase); AutoReplaceOnNextFind = false; // we'll take care of this as well // Normally, we search the text one paragraph at a time for the FindWhat string, but if the user @@ -456,48 +451,15 @@ public FindWordProcessor(string strFindWhat, string strReplaceWith, bool bMatchC } } - // initialize an EncConverter which will tell us when we've hit a match. Uses ICU RegEx (though, there's - // no reason this couldn't be .Net regex...) - protected IEncConverter InitSearchFontConverter(string strFindWhat, string strReplaceWith, bool bMatchCase) - { - // we're going to use a temporary ICU RegEx EncConverter to do our 'searching' for us. - // get a blank ICU Regex converter that we can program with our FindWhat string - // but, it may be null if ICU isn't installed - System.Diagnostics.Debug.Assert(m_aECs != null); - IEncConverter aIEC; - try - { - aIEC = m_aECs.NewEncConverterByImplementationType(EncConverters.strTypeSILicuRegex); - } - catch (Exception ex) - { - throw new ApplicationException("ICU doesn't appear to have been installed. This feature won't work without ICU.", ex); - } - - // we search for different things depending on whether it's "Find" (only) vs. "Find & Replace" - // delimit the replacement string with something we can detect, which we wouldn't otherwise expect - // to find in user text. - string strConverterSpec = String.Format("{0}->{2}{1}{2}{3}", strFindWhat, strReplaceWith, - m_achDelimiter[0], (bMatchCase) ? " /i" : null); - - // Give it a friendly name that isn't likely to conflict with anything 'real' the user might name it. - string strName = String.Format("{0} FindReplaceConverter", OfficeApp.cstrCaption); - ConvType eConvType = ConvType.Unicode_to_Unicode; - string strDummy = null; - int nProcType = (int)ProcessTypeFlags.ICURegularExpression; - - // initialize it so it's ready and put it in the current repository object (as a temporary converter) - aIEC.Initialize(strName, strConverterSpec, ref strDummy, ref strDummy, ref eConvType, - ref nProcType, 0, 0, true); - - return aIEC; - } - public void ReplaceText(WordRange aRunRange, string strNewText) { try { + // if you don't explicitly set the font after replacing the text, Word drops it + // in with some other default font... + var font = aRunRange.FontName; aRunRange.Text = strNewText; + aRunRange.FontName = font; } catch (Exception ex) { @@ -545,7 +507,7 @@ protected string[] GetFirstReplacementSplitArray(ref string strInput, ref string nTempInputLength = Math.Min(nTempInputLength + nDiffLength, nInputLength); strTempInput = strInput.Substring(0, nTempInputLength); - strOutput = m_aECRegex.Convert(strTempInput); + strOutput = _netRegex.Replace(strTempInput, _replaceWith); astrSegments = strOutput.Split(m_achDelimiter); System.Diagnostics.Trace.WriteLine(String.Format("{0}: diff:{1} segments:{2}", nTempInputLength, nDiffLength, astrSegments.Length)); } while (astrSegments.Length != 3); @@ -562,16 +524,16 @@ public FindResult FindReplaceCompare(WordRange aRunRange, ref int SearchAreaStar { FindResult res = FindResult.eNothingFound; string strInput = aRunRange.Text; - if (String.IsNullOrEmpty(strInput) || (m_aECRegex == null)) + + if (String.IsNullOrEmpty(strInput) || (_netRegex == null)) return res; - // otherwise 'convert' it to see if the 'Find what' string is in it - string strOutput = m_aECRegex.Convert(strInput); + // otherwise do the replacement to see if the 'Find what' string is in it + string strOutput = _netRegex.Replace(strInput, _replaceWith); // if the input string is different from the output string, then the FindWhat string was found. if (strInput != strOutput) { -#if !DefineToNotUseSplitAndConvert // The way the convert works is that it will replace each instance of the input string that matches // the FindWhat syntax (i.e. there may be more than one replacement we have to deal with). // here's the problem: if there was more than one replacment, then I really can't tell what portion @@ -608,107 +570,6 @@ public FindResult FindReplaceCompare(WordRange aRunRange, ref int SearchAreaStar nEndOfFindWhatSelection = strInput.Length; else nEndOfFindWhatSelection = strInput.Length - strStuffFollowingMatch.Length; -#else - // this could probably be done more elegantly with Split rather than what I do in the #else case - string[] astrSegments = strOutput.Split(m_achDelimiter); - - // must be odd (before, ||: replace, following :||), where any or all can be null - int nTotalSegments = astrSegments.Length; - System.Diagnostics.Debug.Assert((nTotalSegments % 2) == 1); - - // get the index to the first character of the replacement (which is the same as the first character - // of the 'Find what' as well). - int nIndex = astrSegments[0].Length; - - // remember this so we pick up here later - SearchAreaStart += nIndex; - if (nIndex > 0) - aRunRange.Start = SearchAreaStart; - - // the replacement string is easy. It's just whatever's in the 1st element of the Split array. - // but we have to figure out what the 'Find what' text is so that we can select it (so we can replace - // it). This is not so easy, because it could be anything and not just a string of text like in a normal - // find. - string strReplacementString = astrSegments[1]; - - // Between the end of the first replacement and the beginning of the next (if multiple replacments) - // is a string which should match something in the original, which we can search for - string strStuffFollowingMatch = astrSegments[2]; // may be null - - int nEndOfFindWhatSelection; - if (String.IsNullOrEmpty(strStuffFollowingMatch)) - { - // If the 'Find what' is repeated twice in a row, then the stuff in-between the two instances of - // replacement text will be null. - // Detect this by looking at the length of the even number string array elements (2, 4, etc), - // which are the segments following the replacements. This tells us what we have to divide by - // to get the proportion for only one find. - int nNumReplacmentsInARow = 1; - int nNextReplacementIndex = 2; - nTotalSegments--; - while ((nNextReplacementIndex < nTotalSegments) && String.IsNullOrEmpty(astrSegments[nNextReplacementIndex])) - { - nNumReplacmentsInARow++; - nNextReplacementIndex += 2; - } - - if (nNextReplacementIndex < astrSegments.Length) - strStuffFollowingMatch = astrSegments[nNextReplacementIndex]; - - int numerator; - if (String.IsNullOrEmpty(strStuffFollowingMatch)) - numerator = strInput.Length; - else - numerator = strInput.IndexOf(strStuffFollowingMatch, nIndex + 1); - nEndOfFindWhatSelection = ((numerator - nIndex) / nNumReplacmentsInARow) + nIndex; - } - else - nEndOfFindWhatSelection = strInput.IndexOf(strStuffFollowingMatch, nIndex + 1); - - /* - int nIndex = strOutput.IndexOf(m_achDelimiter[0]); - System.Diagnostics.Debug.Assert(nIndex != -1); - SearchAreaStart += nIndex; - if (nIndex > 0) - aRunRange.Start = SearchAreaStart; - - int nEndOfReplacement = strOutput.IndexOf(m_achDelimiter[0], nIndex + 1); - System.Diagnostics.Debug.Assert(nEndOfReplacement != -1); - - // the replacement string is what's between these two - string strReplacementString = strOutput.Substring(nIndex + 1, (nEndOfReplacement - nIndex - 1)); - - // now the complicated part. Between the end of the first replacement and the next - // one is a string which should match something in the original. But if the replacement - // were null, then it could be the very next character... - // This also handles the situation where there may be several "found whats" - int nNumReplacmentsInARow = 1; - int nNextIndex = nEndOfReplacement + 1; - while ((nNextIndex < strOutput.Length) && (strOutput[nNextIndex] == m_achDelimiter[0])) - { - nNumReplacmentsInARow++; - nEndOfReplacement = strOutput.IndexOf(m_achDelimiter[0], nNextIndex + 1); - nNextIndex = nEndOfReplacement + 1; - } - - if (nNextIndex < strOutput.Length) - { - nEndOfReplacement = strOutput.IndexOf(m_achDelimiter[0], nNextIndex + 1); - if (nEndOfReplacement == -1) - nEndOfReplacement = strOutput.Length; - } - else if (nNextIndex == strOutput.Length) - nNextIndex--; - - string strStuffFollowingMatch = strOutput.Substring(nNextIndex, nEndOfReplacement - nNextIndex); - - nEndOfFindWhatSelection = ((strInput.Length - nIndex) / nNumReplacmentsInARow) + nIndex; - if (!String.IsNullOrEmpty(strStuffFollowingMatch)) - { - nEndOfFindWhatSelection = strInput.IndexOf(strStuffFollowingMatch, nIndex + 1) / nNumReplacmentsInARow; - } - */ -#endif // !UseSplitToFindReplacements FoundAreaLength = nEndOfFindWhatSelection - nIndex; aRunRange.End = SearchAreaStart + FoundAreaLength; From 6cd69f433ba4953073e88df6d128b9152dd67aba Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Wed, 22 Mar 2023 10:03:46 -0500 Subject: [PATCH 50/71] updated to new nuget 0.5.8 --- .../IndicConverters/IndicConverters.wixproj | 4 ++-- Installer/Converter Packages/IndicConverters/packages.config | 2 +- .../IndicConverters64bit/IndicConverters64bit.wixproj | 4 ++-- .../Converter Packages/IndicConverters64bit/packages.config | 2 +- Installer/SEC Setup 64bit/SEC Setup 64bit.wixproj | 4 ++-- Installer/SEC Setup 64bit/packages.config | 2 +- Installer/SEC Setup/SEC Setup.wixproj | 4 ++-- Installer/SEC Setup/packages.config | 2 +- Installer/ScHelpMM/ScHelpMM.wixproj | 4 ++-- Installer/ScHelpMM/packages.config | 2 +- Installer/SetupSILConverters/SetupSILConverters.wixproj | 4 ++-- Installer/SetupSILConverters/packages.config | 2 +- Installer/TECkitPackage64bitMM/TECkitPackageMM64bit.wixproj | 4 ++-- Installer/TECkitPackage64bitMM/packages.config | 2 +- Installer/TECkitPackageMM/TECkitPackageMM.wixproj | 4 ++-- Installer/TECkitPackageMM/packages.config | 2 +- src/AdaptIt2Unicode/AdaptIt2Unicode.csproj | 4 ++-- src/AdaptIt2Unicode/packages.config | 2 +- src/BulkSFMConverter/SFMConv.csproj | 4 ++-- src/BulkSFMConverter/packages.config | 2 +- src/ClipboardEC/ClipboardEC.csproj | 4 ++-- src/ClipboardEC/packages.config | 2 +- src/DChartHelper/DChartHelper.csproj | 4 ++-- src/DChartHelper/packages.config | 2 +- .../ParatextPluginBackTranslationHelper.csproj | 4 ++-- src/ParatextPluginBackTranslationHelper/packages.config | 2 +- src/SILConvertersInstaller/SILConvertersInstaller.vbproj | 4 ++-- src/SILConvertersInstaller/packages.config | 2 +- src/SILConvertersOffice/SILConvertersOffice.csproj | 4 ++-- src/SILConvertersOffice/packages.config | 2 +- src/SILConvertersOffice07/SILConvertersOffice07.csproj | 4 ++-- src/SILConvertersOffice07/packages.config | 2 +- src/SILConvertersOffice10/SILConvertersOffice10.csproj | 4 ++-- src/SILConvertersOffice10/packages.config | 2 +- src/SILConvertersOffice13/SILConvertersOffice13.csproj | 4 ++-- src/SILConvertersOffice13/packages.config | 2 +- src/SILConvertersWordML/SILConvertersWordML.csproj | 4 ++-- src/SILConvertersWordML/TestBwdc/TestBwdc.csproj | 4 ++-- src/SILConvertersWordML/TestBwdc/packages.config | 2 +- src/SILConvertersWordML/packages.config | 2 +- src/SilConvertersXML/SilConvertersXML.csproj | 4 ++-- src/SilConvertersXML/packages.config | 2 +- src/SpellingFixerEC/SpellingFixerEC.csproj | 4 ++-- src/SpellingFixerEC/packages.config | 2 +- src/TECkit Mapping Editor/TECkit Mapping Editor.csproj | 4 ++-- src/TECkit Mapping Editor/packages.config | 2 +- 46 files changed, 69 insertions(+), 69 deletions(-) diff --git a/Installer/Converter Packages/IndicConverters/IndicConverters.wixproj b/Installer/Converter Packages/IndicConverters/IndicConverters.wixproj index 5692fbde..9278640c 100644 --- a/Installer/Converter Packages/IndicConverters/IndicConverters.wixproj +++ b/Installer/Converter Packages/IndicConverters/IndicConverters.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> @@ -82,7 +82,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/Converter Packages/IndicConverters/packages.config b/Installer/Converter Packages/IndicConverters/packages.config index 3e34b7da..4878bfea 100644 --- a/Installer/Converter Packages/IndicConverters/packages.config +++ b/Installer/Converter Packages/IndicConverters/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.7" /> + <package id="Encoding-Converters-Core" version="0.5.8" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/Converter Packages/IndicConverters64bit/IndicConverters64bit.wixproj b/Installer/Converter Packages/IndicConverters64bit/IndicConverters64bit.wixproj index dc581a81..e2770fb5 100644 --- a/Installer/Converter Packages/IndicConverters64bit/IndicConverters64bit.wixproj +++ b/Installer/Converter Packages/IndicConverters64bit/IndicConverters64bit.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> @@ -40,7 +40,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/Converter Packages/IndicConverters64bit/packages.config b/Installer/Converter Packages/IndicConverters64bit/packages.config index 3e34b7da..4878bfea 100644 --- a/Installer/Converter Packages/IndicConverters64bit/packages.config +++ b/Installer/Converter Packages/IndicConverters64bit/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.7" /> + <package id="Encoding-Converters-Core" version="0.5.8" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/SEC Setup 64bit/SEC Setup 64bit.wixproj b/Installer/SEC Setup 64bit/SEC Setup 64bit.wixproj index 3ca01f5a..8349e226 100644 --- a/Installer/SEC Setup 64bit/SEC Setup 64bit.wixproj +++ b/Installer/SEC Setup 64bit/SEC Setup 64bit.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> @@ -59,7 +59,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/SEC Setup 64bit/packages.config b/Installer/SEC Setup 64bit/packages.config index 3e34b7da..4878bfea 100644 --- a/Installer/SEC Setup 64bit/packages.config +++ b/Installer/SEC Setup 64bit/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.7" /> + <package id="Encoding-Converters-Core" version="0.5.8" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/SEC Setup/SEC Setup.wixproj b/Installer/SEC Setup/SEC Setup.wixproj index ce3538e6..b10c4089 100644 --- a/Installer/SEC Setup/SEC Setup.wixproj +++ b/Installer/SEC Setup/SEC Setup.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> @@ -67,7 +67,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/SEC Setup/packages.config b/Installer/SEC Setup/packages.config index 3e34b7da..4878bfea 100644 --- a/Installer/SEC Setup/packages.config +++ b/Installer/SEC Setup/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.7" /> + <package id="Encoding-Converters-Core" version="0.5.8" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/ScHelpMM/ScHelpMM.wixproj b/Installer/ScHelpMM/ScHelpMM.wixproj index d1d11733..c1796104 100644 --- a/Installer/ScHelpMM/ScHelpMM.wixproj +++ b/Installer/ScHelpMM/ScHelpMM.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> @@ -48,7 +48,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/ScHelpMM/packages.config b/Installer/ScHelpMM/packages.config index 3e34b7da..4878bfea 100644 --- a/Installer/ScHelpMM/packages.config +++ b/Installer/ScHelpMM/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.7" /> + <package id="Encoding-Converters-Core" version="0.5.8" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/SetupSILConverters/SetupSILConverters.wixproj b/Installer/SetupSILConverters/SetupSILConverters.wixproj index 7a136a1c..2e4a0878 100644 --- a/Installer/SetupSILConverters/SetupSILConverters.wixproj +++ b/Installer/SetupSILConverters/SetupSILConverters.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> <Import Project="$([MSBuild]::GetPathOfFileAbove(directory.build.props))" Condition="Exists('$([MSBuild]::GetPathOfFileAbove(directory.build.props))')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> @@ -66,7 +66,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> </Target> <Target Name="PostBuildCopy" AfterTargets="Build"> <PropertyGroup> diff --git a/Installer/SetupSILConverters/packages.config b/Installer/SetupSILConverters/packages.config index 3e34b7da..4878bfea 100644 --- a/Installer/SetupSILConverters/packages.config +++ b/Installer/SetupSILConverters/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.7" /> + <package id="Encoding-Converters-Core" version="0.5.8" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/TECkitPackage64bitMM/TECkitPackageMM64bit.wixproj b/Installer/TECkitPackage64bitMM/TECkitPackageMM64bit.wixproj index 3ada66f6..c7966501 100644 --- a/Installer/TECkitPackage64bitMM/TECkitPackageMM64bit.wixproj +++ b/Installer/TECkitPackage64bitMM/TECkitPackageMM64bit.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> @@ -39,7 +39,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/TECkitPackage64bitMM/packages.config b/Installer/TECkitPackage64bitMM/packages.config index 3e34b7da..4878bfea 100644 --- a/Installer/TECkitPackage64bitMM/packages.config +++ b/Installer/TECkitPackage64bitMM/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.7" /> + <package id="Encoding-Converters-Core" version="0.5.8" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/TECkitPackageMM/TECkitPackageMM.wixproj b/Installer/TECkitPackageMM/TECkitPackageMM.wixproj index 797733fa..98b48c6a 100644 --- a/Installer/TECkitPackageMM/TECkitPackageMM.wixproj +++ b/Installer/TECkitPackageMM/TECkitPackageMM.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> @@ -39,7 +39,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/TECkitPackageMM/packages.config b/Installer/TECkitPackageMM/packages.config index 3e34b7da..4878bfea 100644 --- a/Installer/TECkitPackageMM/packages.config +++ b/Installer/TECkitPackageMM/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.7" /> + <package id="Encoding-Converters-Core" version="0.5.8" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/src/AdaptIt2Unicode/AdaptIt2Unicode.csproj b/src/AdaptIt2Unicode/AdaptIt2Unicode.csproj index 81758c05..7700a23a 100644 --- a/src/AdaptIt2Unicode/AdaptIt2Unicode.csproj +++ b/src/AdaptIt2Unicode/AdaptIt2Unicode.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -204,6 +204,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/AdaptIt2Unicode/packages.config b/src/AdaptIt2Unicode/packages.config index 130a77a4..c8e9726d 100644 --- a/src/AdaptIt2Unicode/packages.config +++ b/src/AdaptIt2Unicode/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/BulkSFMConverter/SFMConv.csproj b/src/BulkSFMConverter/SFMConv.csproj index 23c4a696..39d0bd05 100644 --- a/src/BulkSFMConverter/SFMConv.csproj +++ b/src/BulkSFMConverter/SFMConv.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -207,6 +207,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/BulkSFMConverter/packages.config b/src/BulkSFMConverter/packages.config index 130a77a4..c8e9726d 100644 --- a/src/BulkSFMConverter/packages.config +++ b/src/BulkSFMConverter/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/ClipboardEC/ClipboardEC.csproj b/src/ClipboardEC/ClipboardEC.csproj index 3379bf5c..8012ece0 100644 --- a/src/ClipboardEC/ClipboardEC.csproj +++ b/src/ClipboardEC/ClipboardEC.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <ProjectType>Local</ProjectType> <ProductVersion>9.0.30729</ProductVersion> @@ -198,6 +198,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/ClipboardEC/packages.config b/src/ClipboardEC/packages.config index 130a77a4..c8e9726d 100644 --- a/src/ClipboardEC/packages.config +++ b/src/ClipboardEC/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/DChartHelper/DChartHelper.csproj b/src/DChartHelper/DChartHelper.csproj index c5f19a25..313fd641 100644 --- a/src/DChartHelper/DChartHelper.csproj +++ b/src/DChartHelper/DChartHelper.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -255,6 +255,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/DChartHelper/packages.config b/src/DChartHelper/packages.config index 130a77a4..c8e9726d 100644 --- a/src/DChartHelper/packages.config +++ b/src/DChartHelper/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj b/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj index aa3d6941..b4ba0a7b 100644 --- a/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj +++ b/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="16.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> @@ -227,6 +227,6 @@ ren "%25ParatextInstallDir%25\plugins\$(ProjectName)\$(TargetFileName)" "$(Proje <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/ParatextPluginBackTranslationHelper/packages.config b/src/ParatextPluginBackTranslationHelper/packages.config index ce327d3b..728fdb16 100644 --- a/src/ParatextPluginBackTranslationHelper/packages.config +++ b/src/ParatextPluginBackTranslationHelper/packages.config @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> <package id="Newtonsoft.Json" version="13.0.2" targetFramework="net48" /> <package id="ParatextEmbeddedUiPluginInterfaces" version="2.0.23" targetFramework="net48" /> <package id="ParatextPluginInterfaces" version="2.0.23" targetFramework="net48" /> diff --git a/src/SILConvertersInstaller/SILConvertersInstaller.vbproj b/src/SILConvertersInstaller/SILConvertersInstaller.vbproj index 8ac5e5c5..1d3bb648 100644 --- a/src/SILConvertersInstaller/SILConvertersInstaller.vbproj +++ b/src/SILConvertersInstaller/SILConvertersInstaller.vbproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <ProjectType>Local</ProjectType> <ProductVersion>9.0.30729</ProductVersion> @@ -244,6 +244,6 @@ xcopy /s /y "$(EcDistFilesPath)\redist\*.*" "$(SolutionDir)output\$(PlatformName <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersInstaller/packages.config b/src/SILConvertersInstaller/packages.config index 130a77a4..c8e9726d 100644 --- a/src/SILConvertersInstaller/packages.config +++ b/src/SILConvertersInstaller/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SILConvertersOffice/SILConvertersOffice.csproj b/src/SILConvertersOffice/SILConvertersOffice.csproj index 967d0532..f8b1b0f7 100644 --- a/src/SILConvertersOffice/SILConvertersOffice.csproj +++ b/src/SILConvertersOffice/SILConvertersOffice.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -316,6 +316,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersOffice/packages.config b/src/SILConvertersOffice/packages.config index 130a77a4..c8e9726d 100644 --- a/src/SILConvertersOffice/packages.config +++ b/src/SILConvertersOffice/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SILConvertersOffice07/SILConvertersOffice07.csproj b/src/SILConvertersOffice07/SILConvertersOffice07.csproj index f2df3ef1..636d85a3 100644 --- a/src/SILConvertersOffice07/SILConvertersOffice07.csproj +++ b/src/SILConvertersOffice07/SILConvertersOffice07.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -350,6 +350,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersOffice07/packages.config b/src/SILConvertersOffice07/packages.config index 130a77a4..c8e9726d 100644 --- a/src/SILConvertersOffice07/packages.config +++ b/src/SILConvertersOffice07/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SILConvertersOffice10/SILConvertersOffice10.csproj b/src/SILConvertersOffice10/SILConvertersOffice10.csproj index c57d2e1b..b187b1c6 100644 --- a/src/SILConvertersOffice10/SILConvertersOffice10.csproj +++ b/src/SILConvertersOffice10/SILConvertersOffice10.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -353,6 +353,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersOffice10/packages.config b/src/SILConvertersOffice10/packages.config index 130a77a4..c8e9726d 100644 --- a/src/SILConvertersOffice10/packages.config +++ b/src/SILConvertersOffice10/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SILConvertersOffice13/SILConvertersOffice13.csproj b/src/SILConvertersOffice13/SILConvertersOffice13.csproj index 73026dc9..ddcedbb4 100644 --- a/src/SILConvertersOffice13/SILConvertersOffice13.csproj +++ b/src/SILConvertersOffice13/SILConvertersOffice13.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -358,6 +358,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersOffice13/packages.config b/src/SILConvertersOffice13/packages.config index 130a77a4..c8e9726d 100644 --- a/src/SILConvertersOffice13/packages.config +++ b/src/SILConvertersOffice13/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SILConvertersWordML/SILConvertersWordML.csproj b/src/SILConvertersWordML/SILConvertersWordML.csproj index de9f81a7..c6330e2d 100644 --- a/src/SILConvertersWordML/SILConvertersWordML.csproj +++ b/src/SILConvertersWordML/SILConvertersWordML.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -246,6 +246,6 @@ <ErrorTextMissingPIA>This project references a Microsoft Office PIA file, which is required to be built against or it won't work for older versions of Word. The missing file needing to be restored is {0}.</ErrorTextMissingPIA> </PropertyGroup> <Error Condition="!Exists('..\SILConvertersOffice\DistFiles\Microsoft.Office.Interop.Word.dll')" Text="$([System.String]::Format('$(ErrorTextMissingPIA)', 'Microsoft.Office.Interop.Word, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c expected to be in ..\SILConvertersOffice\DistFiles\Microsoft.Office.Interop.Word.dll'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj b/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj index 2646f55e..f3a4ad2e 100644 --- a/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj +++ b/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="16.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\..\packages\NUnit3TestAdapter.4.3.1\build\net35\NUnit3TestAdapter.props" Condition="Exists('..\..\..\packages\NUnit3TestAdapter.4.3.1\build\net35\NUnit3TestAdapter.props')" /> <Import Project="..\..\..\packages\NUnit.3.13.3\build\NUnit.props" Condition="Exists('..\..\..\packages\NUnit.3.13.3\build\NUnit.props')" /> <PropertyGroup> @@ -456,7 +456,7 @@ </PropertyGroup> <Error Condition="!Exists('..\..\..\packages\NUnit.3.13.3\build\NUnit.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\NUnit.3.13.3\build\NUnit.props'))" /> <Error Condition="!Exists('..\..\..\packages\NUnit3TestAdapter.4.3.1\build\net35\NUnit3TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\NUnit3TestAdapter.4.3.1\build\net35\NUnit3TestAdapter.props'))" /> - <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> </Target> <ProjectExtensions> <VisualStudio> diff --git a/src/SILConvertersWordML/TestBwdc/packages.config b/src/SILConvertersWordML/TestBwdc/packages.config index 838b39eb..8b8fd1f9 100644 --- a/src/SILConvertersWordML/TestBwdc/packages.config +++ b/src/SILConvertersWordML/TestBwdc/packages.config @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> <package id="Microsoft.CSharp" version="4.7.0" targetFramework="net48" /> <package id="Newtonsoft.Json" version="13.0.2" targetFramework="net48" /> <package id="NUnit" version="3.13.3" targetFramework="net48" /> diff --git a/src/SILConvertersWordML/packages.config b/src/SILConvertersWordML/packages.config index 130a77a4..c8e9726d 100644 --- a/src/SILConvertersWordML/packages.config +++ b/src/SILConvertersWordML/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SilConvertersXML/SilConvertersXML.csproj b/src/SilConvertersXML/SilConvertersXML.csproj index 0cac2e73..bb2a0b2b 100644 --- a/src/SilConvertersXML/SilConvertersXML.csproj +++ b/src/SilConvertersXML/SilConvertersXML.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -236,6 +236,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SilConvertersXML/packages.config b/src/SilConvertersXML/packages.config index 130a77a4..c8e9726d 100644 --- a/src/SilConvertersXML/packages.config +++ b/src/SilConvertersXML/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SpellingFixerEC/SpellingFixerEC.csproj b/src/SpellingFixerEC/SpellingFixerEC.csproj index 87647005..21fd11c0 100644 --- a/src/SpellingFixerEC/SpellingFixerEC.csproj +++ b/src/SpellingFixerEC/SpellingFixerEC.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <ProjectType>Local</ProjectType> <ProductVersion>9.0.30729</ProductVersion> @@ -249,6 +249,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SpellingFixerEC/packages.config b/src/SpellingFixerEC/packages.config index 130a77a4..c8e9726d 100644 --- a/src/SpellingFixerEC/packages.config +++ b/src/SpellingFixerEC/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/TECkit Mapping Editor/TECkit Mapping Editor.csproj b/src/TECkit Mapping Editor/TECkit Mapping Editor.csproj index f2d82e5a..183bc3a6 100644 --- a/src/TECkit Mapping Editor/TECkit Mapping Editor.csproj +++ b/src/TECkit Mapping Editor/TECkit Mapping Editor.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -239,6 +239,6 @@ xcopy /y "$(ProjectDir)UnicodeRanges.xml" "$(SolutionDir)output\$(PlatformName)\ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.7\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/TECkit Mapping Editor/packages.config b/src/TECkit Mapping Editor/packages.config index 130a77a4..c8e9726d 100644 --- a/src/TECkit Mapping Editor/packages.config +++ b/src/TECkit Mapping Editor/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.7" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> </packages> \ No newline at end of file From 8aa4f99b7c639c408ecd38207437e71a31ba4a6f Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sat, 25 Mar 2023 07:19:08 -0500 Subject: [PATCH 51/71] adjusted the AddNewProject form in SpellFixer so that it resizes properly --- .../AddNewProjectForm.Designer.cs | 56 ++++++++++--------- src/SpellingFixerEC/AddNewProjectForm.resx | 3 - src/SpellingFixerEC/SpellingFixerEC.csproj | 1 + 3 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/SpellingFixerEC/AddNewProjectForm.Designer.cs b/src/SpellingFixerEC/AddNewProjectForm.Designer.cs index 78e7e098..49b0f69e 100644 --- a/src/SpellingFixerEC/AddNewProjectForm.Designer.cs +++ b/src/SpellingFixerEC/AddNewProjectForm.Designer.cs @@ -50,13 +50,13 @@ private void InitializeComponent() // // tableLayoutPanel // - this.tableLayoutPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tableLayoutPanel.ColumnCount = 3; + this.tableLayoutPanel.AutoSize = true; + this.tableLayoutPanel.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.tableLayoutPanel.ColumnCount = 4; this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 120F)); this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel.Controls.Add(this.labelName, 0, 0); this.tableLayoutPanel.Controls.Add(this.textBoxName, 1, 0); this.tableLayoutPanel.Controls.Add(this.labelFont, 0, 1); @@ -69,23 +69,24 @@ private void InitializeComponent() this.tableLayoutPanel.Controls.Add(this.textBoxAddlPunctuation, 1, 4); this.tableLayoutPanel.Controls.Add(this.buttonCancel, 2, 5); this.tableLayoutPanel.Controls.Add(this.buttonOk, 1, 5); - this.tableLayoutPanel.Location = new System.Drawing.Point(12, 12); + this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel.Location = new System.Drawing.Point(0, 0); this.tableLayoutPanel.Name = "tableLayoutPanel"; this.tableLayoutPanel.RowCount = 6; - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 50F)); - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 50F)); - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 50F)); - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 50F)); - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 50F)); + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F)); this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel.Size = new System.Drawing.Size(439, 291); + this.tableLayoutPanel.Size = new System.Drawing.Size(463, 315); this.tableLayoutPanel.TabIndex = 15; // // labelName // this.labelName.Anchor = System.Windows.Forms.AnchorStyles.Right; this.labelName.AutoSize = true; - this.labelName.Location = new System.Drawing.Point(79, 18); + this.labelName.Location = new System.Drawing.Point(79, 22); this.labelName.Name = "labelName"; this.labelName.Size = new System.Drawing.Size(38, 13); this.labelName.TabIndex = 16; @@ -95,9 +96,9 @@ private void InitializeComponent() // this.textBoxName.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.tableLayoutPanel.SetColumnSpan(this.textBoxName, 2); - this.textBoxName.Location = new System.Drawing.Point(123, 15); + this.textBoxName.Location = new System.Drawing.Point(123, 18); this.textBoxName.Name = "textBoxName"; - this.textBoxName.Size = new System.Drawing.Size(313, 20); + this.textBoxName.Size = new System.Drawing.Size(317, 20); this.textBoxName.TabIndex = 17; this.toolTips.SetToolTip(this.textBoxName, "Enter the name of a new projects (e.g. \'Hindi to English fixes\')"); // @@ -105,7 +106,7 @@ private void InitializeComponent() // this.labelFont.Anchor = System.Windows.Forms.AnchorStyles.Right; this.labelFont.AutoSize = true; - this.labelFont.Location = new System.Drawing.Point(86, 68); + this.labelFont.Location = new System.Drawing.Point(86, 79); this.labelFont.Name = "labelFont"; this.labelFont.Size = new System.Drawing.Size(31, 13); this.labelFont.TabIndex = 16; @@ -114,7 +115,7 @@ private void InitializeComponent() // buttonChooseFont // this.buttonChooseFont.Anchor = System.Windows.Forms.AnchorStyles.Left; - this.buttonChooseFont.Location = new System.Drawing.Point(123, 63); + this.buttonChooseFont.Location = new System.Drawing.Point(123, 74); this.buttonChooseFont.Name = "buttonChooseFont"; this.buttonChooseFont.Size = new System.Drawing.Size(84, 23); this.buttonChooseFont.TabIndex = 18; @@ -127,9 +128,9 @@ private void InitializeComponent() // labelFontChosen // this.labelFontChosen.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.labelFontChosen.Location = new System.Drawing.Point(227, 66); + this.labelFontChosen.Location = new System.Drawing.Point(227, 76); this.labelFontChosen.Name = "labelFontChosen"; - this.labelFontChosen.Size = new System.Drawing.Size(209, 18); + this.labelFontChosen.Size = new System.Drawing.Size(213, 18); this.labelFontChosen.TabIndex = 19; // // checkBoxRtL @@ -137,7 +138,7 @@ private void InitializeComponent() this.checkBoxRtL.Anchor = System.Windows.Forms.AnchorStyles.Left; this.checkBoxRtL.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; this.checkBoxRtL.Cursor = System.Windows.Forms.Cursors.Hand; - this.checkBoxRtL.Location = new System.Drawing.Point(123, 113); + this.checkBoxRtL.Location = new System.Drawing.Point(123, 130); this.checkBoxRtL.Name = "checkBoxRtL"; this.checkBoxRtL.Size = new System.Drawing.Size(98, 24); this.checkBoxRtL.TabIndex = 20; @@ -147,16 +148,16 @@ private void InitializeComponent() // labelWordBoundaryDelimiter // this.labelWordBoundaryDelimiter.Anchor = System.Windows.Forms.AnchorStyles.Right; - this.labelWordBoundaryDelimiter.Location = new System.Drawing.Point(36, 165); + this.labelWordBoundaryDelimiter.Location = new System.Drawing.Point(27, 180); this.labelWordBoundaryDelimiter.Name = "labelWordBoundaryDelimiter"; - this.labelWordBoundaryDelimiter.Size = new System.Drawing.Size(81, 19); + this.labelWordBoundaryDelimiter.Size = new System.Drawing.Size(90, 38); this.labelWordBoundaryDelimiter.TabIndex = 21; this.labelWordBoundaryDelimiter.Text = "&Word boundary delimiter:"; // // textBoxWordBoundaryDelimiter // this.textBoxWordBoundaryDelimiter.Anchor = System.Windows.Forms.AnchorStyles.Left; - this.textBoxWordBoundaryDelimiter.Location = new System.Drawing.Point(123, 165); + this.textBoxWordBoundaryDelimiter.Location = new System.Drawing.Point(123, 189); this.textBoxWordBoundaryDelimiter.Name = "textBoxWordBoundaryDelimiter"; this.textBoxWordBoundaryDelimiter.Size = new System.Drawing.Size(24, 20); this.textBoxWordBoundaryDelimiter.TabIndex = 22; @@ -167,7 +168,7 @@ private void InitializeComponent() // this.labelAddlPunct.Anchor = System.Windows.Forms.AnchorStyles.Right; this.labelAddlPunct.AutoSize = true; - this.labelAddlPunct.Location = new System.Drawing.Point(5, 212); + this.labelAddlPunct.Location = new System.Drawing.Point(5, 243); this.labelAddlPunct.Name = "labelAddlPunct"; this.labelAddlPunct.Size = new System.Drawing.Size(112, 26); this.labelAddlPunct.TabIndex = 23; @@ -178,9 +179,9 @@ private void InitializeComponent() // this.textBoxAddlPunctuation.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.tableLayoutPanel.SetColumnSpan(this.textBoxAddlPunctuation, 2); - this.textBoxAddlPunctuation.Location = new System.Drawing.Point(123, 215); + this.textBoxAddlPunctuation.Location = new System.Drawing.Point(123, 246); this.textBoxAddlPunctuation.Name = "textBoxAddlPunctuation"; - this.textBoxAddlPunctuation.Size = new System.Drawing.Size(313, 20); + this.textBoxAddlPunctuation.Size = new System.Drawing.Size(317, 20); this.textBoxAddlPunctuation.TabIndex = 24; this.toolTips.SetToolTip(this.textBoxAddlPunctuation, "Enter any additional punctuation or whitespace characters needed for this languag" + "e, separated by spaces (these are used for boundary condition checking)"); @@ -188,7 +189,7 @@ private void InitializeComponent() // buttonCancel // this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.buttonCancel.Location = new System.Drawing.Point(227, 253); + this.buttonCancel.Location = new System.Drawing.Point(227, 288); this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.Size = new System.Drawing.Size(75, 23); this.buttonCancel.TabIndex = 25; @@ -199,7 +200,7 @@ private void InitializeComponent() // this.buttonOk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.buttonOk.DialogResult = System.Windows.Forms.DialogResult.OK; - this.buttonOk.Location = new System.Drawing.Point(146, 253); + this.buttonOk.Location = new System.Drawing.Point(146, 288); this.buttonOk.Name = "buttonOk"; this.buttonOk.Size = new System.Drawing.Size(75, 23); this.buttonOk.TabIndex = 16; @@ -226,6 +227,7 @@ private void InitializeComponent() this.tableLayoutPanel.ResumeLayout(false); this.tableLayoutPanel.PerformLayout(); this.ResumeLayout(false); + this.PerformLayout(); } diff --git a/src/SpellingFixerEC/AddNewProjectForm.resx b/src/SpellingFixerEC/AddNewProjectForm.resx index e26d58e6..82e427ec 100644 --- a/src/SpellingFixerEC/AddNewProjectForm.resx +++ b/src/SpellingFixerEC/AddNewProjectForm.resx @@ -120,9 +120,6 @@ <metadata name="toolTips.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>17, 17</value> </metadata> - <metadata name="toolTips.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> - <value>17, 17</value> - </metadata> <data name="textBoxWordBoundaryDelimiter.ToolTip" xml:space="preserve"> <value>Enter the character(s) to use as a word boundary delimiter (e.g. with a delimiter of "#", you can enter the "Find What" text like: #car#, which will only match if the search string is "car", but not "cars" or "sportscar")</value> </data> diff --git a/src/SpellingFixerEC/SpellingFixerEC.csproj b/src/SpellingFixerEC/SpellingFixerEC.csproj index 21fd11c0..a4418d76 100644 --- a/src/SpellingFixerEC/SpellingFixerEC.csproj +++ b/src/SpellingFixerEC/SpellingFixerEC.csproj @@ -179,6 +179,7 @@ </Compile> <EmbeddedResource Include="AddNewProjectForm.resx"> <DependentUpon>AddNewProjectForm.cs</DependentUpon> + <SubType>Designer</SubType> </EmbeddedResource> <EmbeddedResource Include="LoginSF.resx"> <DependentUpon>LoginSF.cs</DependentUpon> From 578e4ff155825c5f3baf65906e05996f8d43b5d1 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sat, 25 Mar 2023 07:19:33 -0500 Subject: [PATCH 52/71] fixed issue with setting progress bar during background working (being on the wrong thread) --- src/SILConvertersOffice/FindReplaceForm.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/SILConvertersOffice/FindReplaceForm.cs b/src/SILConvertersOffice/FindReplaceForm.cs index 8361cff9..3bdb50d7 100644 --- a/src/SILConvertersOffice/FindReplaceForm.cs +++ b/src/SILConvertersOffice/FindReplaceForm.cs @@ -183,13 +183,13 @@ private void BackgroundWorker_ProgressChanged(object sender, ProgressChangedEven { // for us the "progress" is a new range of the document we're searching thru int nValue = (int)e.ProgressPercentage; - if (nValue > progressBar.Maximum) - { - progressBar.Maximum = nValue; - } progressBar.BeginInvoke( (MethodInvoker)delegate () { + if (nValue > progressBar.Maximum) + { + progressBar.Maximum = nValue; + } progressBar.Value = nValue; }); } From 0a8f8f03180aa03b66af18f01884ecee356b5943 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Thu, 30 Mar 2023 09:01:42 -0500 Subject: [PATCH 53/71] changes (mostly to app.config) for redirecting DLLs for the new Google Translate EncConverter --- src/ClipboardEC/app.config | 16 +++++ .../app.config | 16 +++++ .../TranslationHelperForm.cs | 4 ++ src/SILConvertersOffice/app.config | 58 ++++++++++++------- src/SILConvertersOffice07/app.config | 58 ++++++++++++------- src/SILConvertersOffice10/app.config | 58 ++++++++++++------- src/SILConvertersOffice13/app.config | 58 ++++++++++++------- src/SILConvertersWordML/app.config | 16 +++++ src/SilConvertersXML/app.config | 16 +++++ 9 files changed, 216 insertions(+), 84 deletions(-) diff --git a/src/ClipboardEC/app.config b/src/ClipboardEC/app.config index 4cf6b3d2..8204e7fa 100644 --- a/src/ClipboardEC/app.config +++ b/src/ClipboardEC/app.config @@ -53,6 +53,22 @@ <assemblyIdentity name="Microsoft.Extensions.Logging.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" /> </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Apis.Auth" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.60.0.0" newVersion="1.60.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Apis.Core" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.60.0.0" newVersion="1.60.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Apis" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.60.0.0" newVersion="1.60.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Api.Gax" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.3.1.0" newVersion="4.3.1.0" /> + </dependentAssembly> </assemblyBinding> </runtime> </configuration> diff --git a/src/ParatextPluginBackTranslationHelper/app.config b/src/ParatextPluginBackTranslationHelper/app.config index 16eaa4c6..e8acb2dc 100644 --- a/src/ParatextPluginBackTranslationHelper/app.config +++ b/src/ParatextPluginBackTranslationHelper/app.config @@ -59,6 +59,22 @@ <assemblyIdentity name="PluginInterfaces" publicKeyToken="583bede96b7c94a3" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-2.0.21.0" newVersion="2.0.21.0" /> </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Apis.Auth" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.60.0.0" newVersion="1.60.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Apis.Core" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.60.0.0" newVersion="1.60.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Apis" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.60.0.0" newVersion="1.60.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Api.Gax" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.3.1.0" newVersion="4.3.1.0" /> + </dependentAssembly> </assemblyBinding> </runtime> <userSettings> diff --git a/src/SILConvertersOffice/TranslationHelperForm.cs b/src/SILConvertersOffice/TranslationHelperForm.cs index a6884a00..4d5a7902 100644 --- a/src/SILConvertersOffice/TranslationHelperForm.cs +++ b/src/SILConvertersOffice/TranslationHelperForm.cs @@ -117,6 +117,10 @@ public FormButtons Show(FontConverter fontConverter, string sourceText, string t backTranslationHelperCtrl.Initialize(displayExistingTargetTranslation: false); + // If Initialize sets the possible target boxes (more than the 1st one) to Visible, + // for some reason, it's not changing its state... Try this: + Application.DoEvents(); + // TODO: fix this backTranslationHelperCtrl.GetNewData(ref _model); _updateDataProc(_model); diff --git a/src/SILConvertersOffice/app.config b/src/SILConvertersOffice/app.config index 9a8f0d4d..73978e04 100644 --- a/src/SILConvertersOffice/app.config +++ b/src/SILConvertersOffice/app.config @@ -1,12 +1,12 @@ <?xml version="1.0" encoding="utf-8"?> <configuration> - <configSections> - <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > - <section name="SILConvertersOffice.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> - </sectionGroup> - </configSections> - <runtime> - <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> + <configSections> + <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > + <section name="SILConvertersOffice.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> + </sectionGroup> + </configSections> + <runtime> + <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" /> @@ -55,19 +55,35 @@ <assemblyIdentity name="Microsoft.Extensions.Logging.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" /> </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Apis.Auth" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.60.0.0" newVersion="1.60.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Apis.Core" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.60.0.0" newVersion="1.60.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Apis" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.60.0.0" newVersion="1.60.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Api.Gax" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.3.1.0" newVersion="4.3.1.0" /> + </dependentAssembly> </assemblyBinding> - </runtime> - <userSettings> - <SILConvertersOffice.Properties.Settings> - <setting name="DefaultWindowState" serializeAs="String"> - <value>Normal</value> - </setting> - <setting name="WindowLocation" serializeAs="String"> - <value>0, 0</value> - </setting> - <setting name="WindowSize" serializeAs="String"> - <value>800, 450</value> - </setting> - </SILConvertersOffice.Properties.Settings> - </userSettings> + </runtime> + <userSettings> + <SILConvertersOffice.Properties.Settings> + <setting name="DefaultWindowState" serializeAs="String"> + <value>Normal</value> + </setting> + <setting name="WindowLocation" serializeAs="String"> + <value>0, 0</value> + </setting> + <setting name="WindowSize" serializeAs="String"> + <value>800, 450</value> + </setting> + </SILConvertersOffice.Properties.Settings> + </userSettings> </configuration> \ No newline at end of file diff --git a/src/SILConvertersOffice07/app.config b/src/SILConvertersOffice07/app.config index 542091f8..4583899b 100644 --- a/src/SILConvertersOffice07/app.config +++ b/src/SILConvertersOffice07/app.config @@ -1,12 +1,12 @@ <?xml version="1.0" encoding="utf-8"?> <configuration> - <configSections> - <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > - <section name="SILConvertersOffice07.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> - </sectionGroup> - </configSections> - <runtime> - <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> + <configSections> + <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > + <section name="SILConvertersOffice07.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> + </sectionGroup> + </configSections> + <runtime> + <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" /> @@ -55,19 +55,35 @@ <assemblyIdentity name="Microsoft.Extensions.Logging.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" /> </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Apis.Auth" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.60.0.0" newVersion="1.60.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Apis.Core" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.60.0.0" newVersion="1.60.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Apis" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.60.0.0" newVersion="1.60.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Api.Gax" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.3.1.0" newVersion="4.3.1.0" /> + </dependentAssembly> </assemblyBinding> - </runtime> - <userSettings> - <SILConvertersOffice07.Properties.Settings> - <setting name="DefaultWindowState" serializeAs="String"> - <value>Normal</value> - </setting> - <setting name="WindowLocation" serializeAs="String"> - <value>0, 0</value> - </setting> - <setting name="WindowSize" serializeAs="String"> - <value>800, 450</value> - </setting> - </SILConvertersOffice07.Properties.Settings> - </userSettings> + </runtime> + <userSettings> + <SILConvertersOffice07.Properties.Settings> + <setting name="DefaultWindowState" serializeAs="String"> + <value>Normal</value> + </setting> + <setting name="WindowLocation" serializeAs="String"> + <value>0, 0</value> + </setting> + <setting name="WindowSize" serializeAs="String"> + <value>800, 450</value> + </setting> + </SILConvertersOffice07.Properties.Settings> + </userSettings> </configuration> \ No newline at end of file diff --git a/src/SILConvertersOffice10/app.config b/src/SILConvertersOffice10/app.config index 9275ffb4..7977aa4a 100644 --- a/src/SILConvertersOffice10/app.config +++ b/src/SILConvertersOffice10/app.config @@ -1,12 +1,12 @@ <?xml version="1.0" encoding="utf-8"?> <configuration> - <configSections> - <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > - <section name="SILConvertersOffice10.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> - </sectionGroup> - </configSections> - <runtime> - <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> + <configSections> + <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > + <section name="SILConvertersOffice10.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> + </sectionGroup> + </configSections> + <runtime> + <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" /> @@ -55,19 +55,35 @@ <assemblyIdentity name="Microsoft.Extensions.Logging.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" /> </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Apis.Auth" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.60.0.0" newVersion="1.60.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Apis.Core" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.60.0.0" newVersion="1.60.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Apis" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.60.0.0" newVersion="1.60.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Api.Gax" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.3.1.0" newVersion="4.3.1.0" /> + </dependentAssembly> </assemblyBinding> - </runtime> - <userSettings> - <SILConvertersOffice10.Properties.Settings> - <setting name="DefaultWindowState" serializeAs="String"> - <value>Normal</value> - </setting> - <setting name="WindowLocation" serializeAs="String"> - <value>0, 0</value> - </setting> - <setting name="WindowSize" serializeAs="String"> - <value>800, 450</value> - </setting> - </SILConvertersOffice10.Properties.Settings> - </userSettings> + </runtime> + <userSettings> + <SILConvertersOffice10.Properties.Settings> + <setting name="DefaultWindowState" serializeAs="String"> + <value>Normal</value> + </setting> + <setting name="WindowLocation" serializeAs="String"> + <value>0, 0</value> + </setting> + <setting name="WindowSize" serializeAs="String"> + <value>800, 450</value> + </setting> + </SILConvertersOffice10.Properties.Settings> + </userSettings> </configuration> \ No newline at end of file diff --git a/src/SILConvertersOffice13/app.config b/src/SILConvertersOffice13/app.config index 48843d34..e61e9a4a 100644 --- a/src/SILConvertersOffice13/app.config +++ b/src/SILConvertersOffice13/app.config @@ -1,12 +1,12 @@ <?xml version="1.0" encoding="utf-8"?> <configuration> - <configSections> - <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > - <section name="SILConvertersOffice13.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> - </sectionGroup> - </configSections> - <runtime> - <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> + <configSections> + <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > + <section name="SILConvertersOffice13.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> + </sectionGroup> + </configSections> + <runtime> + <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" /> @@ -55,19 +55,35 @@ <assemblyIdentity name="Microsoft.Extensions.Logging.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" /> </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Apis.Auth" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.60.0.0" newVersion="1.60.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Apis.Core" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.60.0.0" newVersion="1.60.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Apis" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.60.0.0" newVersion="1.60.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Api.Gax" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.3.1.0" newVersion="4.3.1.0" /> + </dependentAssembly> </assemblyBinding> - </runtime> - <userSettings> - <SILConvertersOffice13.Properties.Settings> - <setting name="DefaultWindowState" serializeAs="String"> - <value>Normal</value> - </setting> - <setting name="WindowLocation" serializeAs="String"> - <value>0, 0</value> - </setting> - <setting name="WindowSize" serializeAs="String"> - <value>800, 450</value> - </setting> - </SILConvertersOffice13.Properties.Settings> - </userSettings> + </runtime> + <userSettings> + <SILConvertersOffice13.Properties.Settings> + <setting name="DefaultWindowState" serializeAs="String"> + <value>Normal</value> + </setting> + <setting name="WindowLocation" serializeAs="String"> + <value>0, 0</value> + </setting> + <setting name="WindowSize" serializeAs="String"> + <value>800, 450</value> + </setting> + </SILConvertersOffice13.Properties.Settings> + </userSettings> </configuration> \ No newline at end of file diff --git a/src/SILConvertersWordML/app.config b/src/SILConvertersWordML/app.config index 77418022..4cb3dd91 100644 --- a/src/SILConvertersWordML/app.config +++ b/src/SILConvertersWordML/app.config @@ -65,6 +65,22 @@ <assemblyIdentity name="Microsoft.Extensions.Logging.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" /> </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Apis.Auth" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.60.0.0" newVersion="1.60.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Apis.Core" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.60.0.0" newVersion="1.60.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Apis" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.60.0.0" newVersion="1.60.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Api.Gax" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.3.1.0" newVersion="4.3.1.0" /> + </dependentAssembly> </assemblyBinding> </runtime> </configuration> diff --git a/src/SilConvertersXML/app.config b/src/SilConvertersXML/app.config index 712b8442..3da1b89b 100644 --- a/src/SilConvertersXML/app.config +++ b/src/SilConvertersXML/app.config @@ -58,6 +58,22 @@ <assemblyIdentity name="Microsoft.Extensions.Logging.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" /> </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Apis.Auth" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.60.0.0" newVersion="1.60.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Apis.Core" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.60.0.0" newVersion="1.60.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Apis" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.60.0.0" newVersion="1.60.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Google.Api.Gax" publicKeyToken="4b01fa6e34db77ab" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.3.1.0" newVersion="4.3.1.0" /> + </dependentAssembly> </assemblyBinding> </runtime> <userSettings> From 32ef31031ac38ea811b84a85fad7a911e9ce9239 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Thu, 30 Mar 2023 09:41:23 -0500 Subject: [PATCH 54/71] updated to new 0.6.0 version of EncConverters core (w/ google translate plugin) --- Directory.Build.props | 4 ++-- .../IndicConverters/IndicConverters.wixproj | 4 ++-- .../Converter Packages/IndicConverters/packages.config | 2 +- .../IndicConverters64bit/IndicConverters64bit.wixproj | 4 ++-- .../IndicConverters64bit/packages.config | 2 +- Installer/SEC Setup 64bit/SEC Setup 64bit.wixproj | 4 ++-- Installer/SEC Setup 64bit/packages.config | 2 +- Installer/SEC Setup/SEC Setup.wixproj | 4 ++-- Installer/SEC Setup/packages.config | 2 +- Installer/ScHelpMM/ScHelpMM.wixproj | 4 ++-- Installer/ScHelpMM/packages.config | 2 +- Installer/SetupSILConverters/SetupSILConverters.wixproj | 8 ++++---- Installer/SetupSILConverters/packages.config | 2 +- .../TECkitPackage64bitMM/TECkitPackageMM64bit.wixproj | 4 ++-- Installer/TECkitPackage64bitMM/packages.config | 2 +- Installer/TECkitPackageMM/TECkitPackageMM.wixproj | 4 ++-- Installer/TECkitPackageMM/packages.config | 2 +- src/AdaptIt2Unicode/AdaptIt2Unicode.csproj | 4 ++-- src/AdaptIt2Unicode/packages.config | 2 +- src/BulkSFMConverter/SFMConv.csproj | 4 ++-- src/BulkSFMConverter/packages.config | 2 +- src/ClipboardEC/ClipboardEC.csproj | 4 ++-- src/ClipboardEC/packages.config | 2 +- src/DChartHelper/DChartHelper.csproj | 4 ++-- src/DChartHelper/packages.config | 2 +- .../ParatextPluginBackTranslationHelper.csproj | 4 ++-- src/ParatextPluginBackTranslationHelper/packages.config | 2 +- src/SILConvertersInstaller/SILConvertersInstaller.vbproj | 4 ++-- src/SILConvertersInstaller/packages.config | 2 +- src/SILConvertersOffice/SILConvertersOffice.csproj | 4 ++-- src/SILConvertersOffice/packages.config | 2 +- src/SILConvertersOffice07/SILConvertersOffice07.csproj | 4 ++-- src/SILConvertersOffice07/packages.config | 2 +- src/SILConvertersOffice10/SILConvertersOffice10.csproj | 4 ++-- src/SILConvertersOffice10/packages.config | 2 +- src/SILConvertersOffice13/SILConvertersOffice13.csproj | 4 ++-- src/SILConvertersOffice13/packages.config | 2 +- src/SILConvertersWordML/SILConvertersWordML.csproj | 4 ++-- src/SILConvertersWordML/TestBwdc/TestBwdc.csproj | 4 ++-- src/SILConvertersWordML/TestBwdc/packages.config | 2 +- src/SILConvertersWordML/packages.config | 2 +- src/SilConvertersXML/SilConvertersXML.csproj | 4 ++-- src/SilConvertersXML/packages.config | 2 +- src/SpellingFixerEC/SpellingFixerEC.csproj | 4 ++-- src/SpellingFixerEC/packages.config | 2 +- src/TECkit Mapping Editor/TECkit Mapping Editor.csproj | 4 ++-- src/TECkit Mapping Editor/packages.config | 2 +- 47 files changed, 73 insertions(+), 73 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 2a01ff1c..6f36b4e3 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -3,9 +3,9 @@ <ApplicationName>SILConverters</ApplicationName> <SafeApplicationName>SILConverters</SafeApplicationName> <TruncatedVersion>5.1</TruncatedVersion> - <VersionNumber>5.1.2.0</VersionNumber> + <VersionNumber>5.1.3.0</VersionNumber> <UpgradeCode>8A50226C-84D0-4CAF-AF8F-B0284643C415</UpgradeCode> - <Year>2022</Year> + <Year>2023</Year> <Manufacturer>SIL International</Manufacturer> </PropertyGroup> </Project> \ No newline at end of file diff --git a/Installer/Converter Packages/IndicConverters/IndicConverters.wixproj b/Installer/Converter Packages/IndicConverters/IndicConverters.wixproj index 9278640c..648421ab 100644 --- a/Installer/Converter Packages/IndicConverters/IndicConverters.wixproj +++ b/Installer/Converter Packages/IndicConverters/IndicConverters.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> @@ -82,7 +82,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/Converter Packages/IndicConverters/packages.config b/Installer/Converter Packages/IndicConverters/packages.config index 4878bfea..6cf2c2d2 100644 --- a/Installer/Converter Packages/IndicConverters/packages.config +++ b/Installer/Converter Packages/IndicConverters/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.8" /> + <package id="Encoding-Converters-Core" version="0.6.0" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/Converter Packages/IndicConverters64bit/IndicConverters64bit.wixproj b/Installer/Converter Packages/IndicConverters64bit/IndicConverters64bit.wixproj index e2770fb5..78ce5be1 100644 --- a/Installer/Converter Packages/IndicConverters64bit/IndicConverters64bit.wixproj +++ b/Installer/Converter Packages/IndicConverters64bit/IndicConverters64bit.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> @@ -40,7 +40,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/Converter Packages/IndicConverters64bit/packages.config b/Installer/Converter Packages/IndicConverters64bit/packages.config index 4878bfea..6cf2c2d2 100644 --- a/Installer/Converter Packages/IndicConverters64bit/packages.config +++ b/Installer/Converter Packages/IndicConverters64bit/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.8" /> + <package id="Encoding-Converters-Core" version="0.6.0" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/SEC Setup 64bit/SEC Setup 64bit.wixproj b/Installer/SEC Setup 64bit/SEC Setup 64bit.wixproj index 8349e226..c1bf8c75 100644 --- a/Installer/SEC Setup 64bit/SEC Setup 64bit.wixproj +++ b/Installer/SEC Setup 64bit/SEC Setup 64bit.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> @@ -59,7 +59,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/SEC Setup 64bit/packages.config b/Installer/SEC Setup 64bit/packages.config index 4878bfea..6cf2c2d2 100644 --- a/Installer/SEC Setup 64bit/packages.config +++ b/Installer/SEC Setup 64bit/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.8" /> + <package id="Encoding-Converters-Core" version="0.6.0" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/SEC Setup/SEC Setup.wixproj b/Installer/SEC Setup/SEC Setup.wixproj index b10c4089..1b9a3b56 100644 --- a/Installer/SEC Setup/SEC Setup.wixproj +++ b/Installer/SEC Setup/SEC Setup.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> @@ -67,7 +67,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/SEC Setup/packages.config b/Installer/SEC Setup/packages.config index 4878bfea..6cf2c2d2 100644 --- a/Installer/SEC Setup/packages.config +++ b/Installer/SEC Setup/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.8" /> + <package id="Encoding-Converters-Core" version="0.6.0" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/ScHelpMM/ScHelpMM.wixproj b/Installer/ScHelpMM/ScHelpMM.wixproj index c1796104..ecf2e1e2 100644 --- a/Installer/ScHelpMM/ScHelpMM.wixproj +++ b/Installer/ScHelpMM/ScHelpMM.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> @@ -48,7 +48,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/ScHelpMM/packages.config b/Installer/ScHelpMM/packages.config index 4878bfea..6cf2c2d2 100644 --- a/Installer/ScHelpMM/packages.config +++ b/Installer/ScHelpMM/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.8" /> + <package id="Encoding-Converters-Core" version="0.6.0" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/SetupSILConverters/SetupSILConverters.wixproj b/Installer/SetupSILConverters/SetupSILConverters.wixproj index 2e4a0878..315a021d 100644 --- a/Installer/SetupSILConverters/SetupSILConverters.wixproj +++ b/Installer/SetupSILConverters/SetupSILConverters.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" /> <Import Project="$([MSBuild]::GetPathOfFileAbove(directory.build.props))" Condition="Exists('$([MSBuild]::GetPathOfFileAbove(directory.build.props))')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> @@ -17,10 +17,10 @@ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> <OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath> <IntermediateOutputPath>obj\$(Platform)\$(Configuration)\</IntermediateOutputPath> - <DefineConstants>ApplicationName=SILConverters;SafeApplicationName=SILConverters;TruncatedVersion=5.1;VersionNumber=5.1.2.0;UpgradeCode=8A50226C-84D0-4CAF-AF8F-B0284643C415;Year=2022;Manufacturer=SIL International;EcDistFilesPath=$(EcDistFilesPath)</DefineConstants> + <DefineConstants>ApplicationName=SILConverters;SafeApplicationName=SILConverters;TruncatedVersion=5.1;VersionNumber=5.1.3.0;UpgradeCode=8A50226C-84D0-4CAF-AF8F-B0284643C415;Year=2022;Manufacturer=SIL International;EcDistFilesPath=$(EcDistFilesPath)</DefineConstants> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' "> - <DefineConstants>ApplicationName=SILConverters;SafeApplicationName=SILConverters;TruncatedVersion=5.1;VersionNumber=5.1.2.0;UpgradeCode=0F7D5D72-E9F3-40BB-9748-D388C70096CD;Year=2023;Manufacturer=SIL International;EcDistFilesPath=$(EcDistFilesPath)</DefineConstants> + <DefineConstants>ApplicationName=SILConverters;SafeApplicationName=SILConverters;TruncatedVersion=5.1;VersionNumber=5.1.3.0;UpgradeCode=0F7D5D72-E9F3-40BB-9748-D388C70096CD;Year=2023;Manufacturer=SIL International;EcDistFilesPath=$(EcDistFilesPath)</DefineConstants> <OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath> <IntermediateOutputPath>obj\$(Platform)\$(Configuration)\</IntermediateOutputPath> </PropertyGroup> @@ -66,7 +66,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props'))" /> </Target> <Target Name="PostBuildCopy" AfterTargets="Build"> <PropertyGroup> diff --git a/Installer/SetupSILConverters/packages.config b/Installer/SetupSILConverters/packages.config index 4878bfea..6cf2c2d2 100644 --- a/Installer/SetupSILConverters/packages.config +++ b/Installer/SetupSILConverters/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.8" /> + <package id="Encoding-Converters-Core" version="0.6.0" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/TECkitPackage64bitMM/TECkitPackageMM64bit.wixproj b/Installer/TECkitPackage64bitMM/TECkitPackageMM64bit.wixproj index c7966501..576e9e67 100644 --- a/Installer/TECkitPackage64bitMM/TECkitPackageMM64bit.wixproj +++ b/Installer/TECkitPackage64bitMM/TECkitPackageMM64bit.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> @@ -39,7 +39,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/TECkitPackage64bitMM/packages.config b/Installer/TECkitPackage64bitMM/packages.config index 4878bfea..6cf2c2d2 100644 --- a/Installer/TECkitPackage64bitMM/packages.config +++ b/Installer/TECkitPackage64bitMM/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.8" /> + <package id="Encoding-Converters-Core" version="0.6.0" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/Installer/TECkitPackageMM/TECkitPackageMM.wixproj b/Installer/TECkitPackageMM/TECkitPackageMM.wixproj index 98b48c6a..986b8b4c 100644 --- a/Installer/TECkitPackageMM/TECkitPackageMM.wixproj +++ b/Installer/TECkitPackageMM/TECkitPackageMM.wixproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\..\packages\WiX.3.11.2\build\wix.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> @@ -39,7 +39,7 @@ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WiX.3.11.2\build\wix.props'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props'))" /> </Target> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Installer/TECkitPackageMM/packages.config b/Installer/TECkitPackageMM/packages.config index 4878bfea..6cf2c2d2 100644 --- a/Installer/TECkitPackageMM/packages.config +++ b/Installer/TECkitPackageMM/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.8" /> + <package id="Encoding-Converters-Core" version="0.6.0" /> <package id="WiX" version="3.11.2" /> </packages> \ No newline at end of file diff --git a/src/AdaptIt2Unicode/AdaptIt2Unicode.csproj b/src/AdaptIt2Unicode/AdaptIt2Unicode.csproj index 7700a23a..10b3b0fd 100644 --- a/src/AdaptIt2Unicode/AdaptIt2Unicode.csproj +++ b/src/AdaptIt2Unicode/AdaptIt2Unicode.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -204,6 +204,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/AdaptIt2Unicode/packages.config b/src/AdaptIt2Unicode/packages.config index c8e9726d..e0a2de1e 100644 --- a/src/AdaptIt2Unicode/packages.config +++ b/src/AdaptIt2Unicode/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.6.0" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/BulkSFMConverter/SFMConv.csproj b/src/BulkSFMConverter/SFMConv.csproj index 39d0bd05..e9bf75b8 100644 --- a/src/BulkSFMConverter/SFMConv.csproj +++ b/src/BulkSFMConverter/SFMConv.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -207,6 +207,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/BulkSFMConverter/packages.config b/src/BulkSFMConverter/packages.config index c8e9726d..e0a2de1e 100644 --- a/src/BulkSFMConverter/packages.config +++ b/src/BulkSFMConverter/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.6.0" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/ClipboardEC/ClipboardEC.csproj b/src/ClipboardEC/ClipboardEC.csproj index 8012ece0..1422be36 100644 --- a/src/ClipboardEC/ClipboardEC.csproj +++ b/src/ClipboardEC/ClipboardEC.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <ProjectType>Local</ProjectType> <ProductVersion>9.0.30729</ProductVersion> @@ -198,6 +198,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/ClipboardEC/packages.config b/src/ClipboardEC/packages.config index c8e9726d..e0a2de1e 100644 --- a/src/ClipboardEC/packages.config +++ b/src/ClipboardEC/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.6.0" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/DChartHelper/DChartHelper.csproj b/src/DChartHelper/DChartHelper.csproj index 313fd641..e9474f52 100644 --- a/src/DChartHelper/DChartHelper.csproj +++ b/src/DChartHelper/DChartHelper.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -255,6 +255,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/DChartHelper/packages.config b/src/DChartHelper/packages.config index c8e9726d..e0a2de1e 100644 --- a/src/DChartHelper/packages.config +++ b/src/DChartHelper/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.6.0" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj b/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj index b4ba0a7b..7138e77b 100644 --- a/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj +++ b/src/ParatextPluginBackTranslationHelper/ParatextPluginBackTranslationHelper.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="16.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" /> <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> @@ -227,6 +227,6 @@ ren "%25ParatextInstallDir%25\plugins\$(ProjectName)\$(TargetFileName)" "$(Proje <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/ParatextPluginBackTranslationHelper/packages.config b/src/ParatextPluginBackTranslationHelper/packages.config index 728fdb16..b05064df 100644 --- a/src/ParatextPluginBackTranslationHelper/packages.config +++ b/src/ParatextPluginBackTranslationHelper/packages.config @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.6.0" targetFramework="net48" /> <package id="Newtonsoft.Json" version="13.0.2" targetFramework="net48" /> <package id="ParatextEmbeddedUiPluginInterfaces" version="2.0.23" targetFramework="net48" /> <package id="ParatextPluginInterfaces" version="2.0.23" targetFramework="net48" /> diff --git a/src/SILConvertersInstaller/SILConvertersInstaller.vbproj b/src/SILConvertersInstaller/SILConvertersInstaller.vbproj index 1d3bb648..5007b9ed 100644 --- a/src/SILConvertersInstaller/SILConvertersInstaller.vbproj +++ b/src/SILConvertersInstaller/SILConvertersInstaller.vbproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <ProjectType>Local</ProjectType> <ProductVersion>9.0.30729</ProductVersion> @@ -244,6 +244,6 @@ xcopy /s /y "$(EcDistFilesPath)\redist\*.*" "$(SolutionDir)output\$(PlatformName <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersInstaller/packages.config b/src/SILConvertersInstaller/packages.config index c8e9726d..e0a2de1e 100644 --- a/src/SILConvertersInstaller/packages.config +++ b/src/SILConvertersInstaller/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.6.0" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SILConvertersOffice/SILConvertersOffice.csproj b/src/SILConvertersOffice/SILConvertersOffice.csproj index f8b1b0f7..824a24d9 100644 --- a/src/SILConvertersOffice/SILConvertersOffice.csproj +++ b/src/SILConvertersOffice/SILConvertersOffice.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -316,6 +316,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersOffice/packages.config b/src/SILConvertersOffice/packages.config index c8e9726d..e0a2de1e 100644 --- a/src/SILConvertersOffice/packages.config +++ b/src/SILConvertersOffice/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.6.0" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SILConvertersOffice07/SILConvertersOffice07.csproj b/src/SILConvertersOffice07/SILConvertersOffice07.csproj index 636d85a3..4c719ddb 100644 --- a/src/SILConvertersOffice07/SILConvertersOffice07.csproj +++ b/src/SILConvertersOffice07/SILConvertersOffice07.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -350,6 +350,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersOffice07/packages.config b/src/SILConvertersOffice07/packages.config index c8e9726d..e0a2de1e 100644 --- a/src/SILConvertersOffice07/packages.config +++ b/src/SILConvertersOffice07/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.6.0" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SILConvertersOffice10/SILConvertersOffice10.csproj b/src/SILConvertersOffice10/SILConvertersOffice10.csproj index b187b1c6..5abf4d89 100644 --- a/src/SILConvertersOffice10/SILConvertersOffice10.csproj +++ b/src/SILConvertersOffice10/SILConvertersOffice10.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -353,6 +353,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersOffice10/packages.config b/src/SILConvertersOffice10/packages.config index c8e9726d..e0a2de1e 100644 --- a/src/SILConvertersOffice10/packages.config +++ b/src/SILConvertersOffice10/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.6.0" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SILConvertersOffice13/SILConvertersOffice13.csproj b/src/SILConvertersOffice13/SILConvertersOffice13.csproj index ddcedbb4..a881a74a 100644 --- a/src/SILConvertersOffice13/SILConvertersOffice13.csproj +++ b/src/SILConvertersOffice13/SILConvertersOffice13.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -358,6 +358,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersOffice13/packages.config b/src/SILConvertersOffice13/packages.config index c8e9726d..e0a2de1e 100644 --- a/src/SILConvertersOffice13/packages.config +++ b/src/SILConvertersOffice13/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.6.0" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SILConvertersWordML/SILConvertersWordML.csproj b/src/SILConvertersWordML/SILConvertersWordML.csproj index c6330e2d..ee7b8b05 100644 --- a/src/SILConvertersWordML/SILConvertersWordML.csproj +++ b/src/SILConvertersWordML/SILConvertersWordML.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -246,6 +246,6 @@ <ErrorTextMissingPIA>This project references a Microsoft Office PIA file, which is required to be built against or it won't work for older versions of Word. The missing file needing to be restored is {0}.</ErrorTextMissingPIA> </PropertyGroup> <Error Condition="!Exists('..\SILConvertersOffice\DistFiles\Microsoft.Office.Interop.Word.dll')" Text="$([System.String]::Format('$(ErrorTextMissingPIA)', 'Microsoft.Office.Interop.Word, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c expected to be in ..\SILConvertersOffice\DistFiles\Microsoft.Office.Interop.Word.dll'))" /> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj b/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj index f3a4ad2e..4ec0c75d 100644 --- a/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj +++ b/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="16.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props" Condition="Exists('..\..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" /> <Import Project="..\..\..\packages\NUnit3TestAdapter.4.3.1\build\net35\NUnit3TestAdapter.props" Condition="Exists('..\..\..\packages\NUnit3TestAdapter.4.3.1\build\net35\NUnit3TestAdapter.props')" /> <Import Project="..\..\..\packages\NUnit.3.13.3\build\NUnit.props" Condition="Exists('..\..\..\packages\NUnit.3.13.3\build\NUnit.props')" /> <PropertyGroup> @@ -456,7 +456,7 @@ </PropertyGroup> <Error Condition="!Exists('..\..\..\packages\NUnit.3.13.3\build\NUnit.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\NUnit.3.13.3\build\NUnit.props'))" /> <Error Condition="!Exists('..\..\..\packages\NUnit3TestAdapter.4.3.1\build\net35\NUnit3TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\NUnit3TestAdapter.4.3.1\build\net35\NUnit3TestAdapter.props'))" /> - <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props'))" /> </Target> <ProjectExtensions> <VisualStudio> diff --git a/src/SILConvertersWordML/TestBwdc/packages.config b/src/SILConvertersWordML/TestBwdc/packages.config index 8b8fd1f9..bf328b02 100644 --- a/src/SILConvertersWordML/TestBwdc/packages.config +++ b/src/SILConvertersWordML/TestBwdc/packages.config @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.6.0" targetFramework="net48" /> <package id="Microsoft.CSharp" version="4.7.0" targetFramework="net48" /> <package id="Newtonsoft.Json" version="13.0.2" targetFramework="net48" /> <package id="NUnit" version="3.13.3" targetFramework="net48" /> diff --git a/src/SILConvertersWordML/packages.config b/src/SILConvertersWordML/packages.config index c8e9726d..e0a2de1e 100644 --- a/src/SILConvertersWordML/packages.config +++ b/src/SILConvertersWordML/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.6.0" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SilConvertersXML/SilConvertersXML.csproj b/src/SilConvertersXML/SilConvertersXML.csproj index bb2a0b2b..1ff00675 100644 --- a/src/SilConvertersXML/SilConvertersXML.csproj +++ b/src/SilConvertersXML/SilConvertersXML.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -236,6 +236,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SilConvertersXML/packages.config b/src/SilConvertersXML/packages.config index c8e9726d..e0a2de1e 100644 --- a/src/SilConvertersXML/packages.config +++ b/src/SilConvertersXML/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.6.0" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/SpellingFixerEC/SpellingFixerEC.csproj b/src/SpellingFixerEC/SpellingFixerEC.csproj index a4418d76..a58d6bf2 100644 --- a/src/SpellingFixerEC/SpellingFixerEC.csproj +++ b/src/SpellingFixerEC/SpellingFixerEC.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <ProjectType>Local</ProjectType> <ProductVersion>9.0.30729</ProductVersion> @@ -250,6 +250,6 @@ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/SpellingFixerEC/packages.config b/src/SpellingFixerEC/packages.config index c8e9726d..e0a2de1e 100644 --- a/src/SpellingFixerEC/packages.config +++ b/src/SpellingFixerEC/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.6.0" targetFramework="net48" /> </packages> \ No newline at end of file diff --git a/src/TECkit Mapping Editor/TECkit Mapping Editor.csproj b/src/TECkit Mapping Editor/TECkit Mapping Editor.csproj index 183bc3a6..9f8b1b65 100644 --- a/src/TECkit Mapping Editor/TECkit Mapping Editor.csproj +++ b/src/TECkit Mapping Editor/TECkit Mapping Editor.csproj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="16.0"> - <Import Project="..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" /> + <Import Project="..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props" Condition="Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> @@ -239,6 +239,6 @@ xcopy /y "$(ProjectDir)UnicodeRanges.xml" "$(SolutionDir)output\$(PlatformName)\ <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> - <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.5.8\build\Encoding-Converters-Core.props'))" /> + <Error Condition="!Exists('..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Encoding-Converters-Core.0.6.0\build\Encoding-Converters-Core.props'))" /> </Target> </Project> \ No newline at end of file diff --git a/src/TECkit Mapping Editor/packages.config b/src/TECkit Mapping Editor/packages.config index c8e9726d..e0a2de1e 100644 --- a/src/TECkit Mapping Editor/packages.config +++ b/src/TECkit Mapping Editor/packages.config @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <packages> - <package id="Encoding-Converters-Core" version="0.5.8" targetFramework="net48" /> + <package id="Encoding-Converters-Core" version="0.6.0" targetFramework="net48" /> </packages> \ No newline at end of file From 2f69b1b22abc317142bad5a30657de968b802e7a Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Fri, 7 Apr 2023 11:57:28 -0500 Subject: [PATCH 55/71] fixed https://github.com/silnrsi/silconverters/issues/8 (labels on Bulk Word Doc converter and several other features) --- Installer/SEC Setup 64bit/EcFeatures.wxs | 8 ++++---- Installer/SEC Setup/EcFeatures.wxs | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Installer/SEC Setup 64bit/EcFeatures.wxs b/Installer/SEC Setup 64bit/EcFeatures.wxs index 24764d9f..9fc73344 100644 --- a/Installer/SEC Setup 64bit/EcFeatures.wxs +++ b/Installer/SEC Setup 64bit/EcFeatures.wxs @@ -58,12 +58,12 @@ <MergeRef Id="SEC_EC"/> <MergeRef Id="SetPath"/> </Feature> - <Feature Id="Bulk_Word_Document_Converter" Title="Bulk Word Document Converter" Description="The Bulk Word document converter allows you to convert one or more Word documents using converters in the system repository. Works with Word 2003, 07, 10, 13, 16, 19, or 365." Display="expand" Level="4" AllowAdvertise="no"> + <Feature Id="Bulk_Word_Document_Converter" Title="Bulk Word Document Converter" Description="The Bulk Word document converter allows you to convert one or more Word documents using converters in the system repository. Word 2003, 07, 10, 13, 16, 19, or 365" Display="expand" Level="4" AllowAdvertise="no"> <Condition Level="3"><![CDATA[COMPONENTEXISTS_WORD_03_PIA OR COMPONENTEXISTS_WORD_07_PIA OR COMPONENTEXISTS_WORD_10_PIA OR COMPONENTEXISTS_WORD_13_PIA]]></Condition> <MergeRef Id="SEC_EC"/> <MergeRef Id="SILConvertersForWord"/> </Feature> - <Feature Id="SILConverters_for_Office10" Title="SILConverters for Office 2010" Description="Provides SILConverter support in Publisher, Excel, and Access (as well as a few developer helps in Word). Works with x64 versions of Office 2010, 13, 16, 19, or 365." Level="4" AllowAdvertise="no"> + <Feature Id="SILConverters_for_Office10" Title="SILConverters for Office 2010" Description="Provides SILConverter support in Publisher, Excel, and Access and Word (including Regex searching and translation helper dialog)." Level="4" AllowAdvertise="no"> <Condition Level="3"><![CDATA[(OFFICE_2010_BITNESS = "x64") AND ((COMPONENTEXISTS_WORD_10_PIA) OR (COMPONENTEXISTS_EXCEL_10_PIA) OR (ACCESS_2010_PIA_EXISTS) OR (PUBLISHER_2010_PIA_EXISTS))]]></Condition> <Condition Level="0"><![CDATA[NOT ((COMPONENTEXISTS_WORD_10_PIA) OR (COMPONENTEXISTS_EXCEL_10_PIA) OR (ACCESS_2010_PIA_EXISTS) OR (PUBLISHER_2010_PIA_EXISTS))]]></Condition> <MergeRef Id="SEC_EC"/> @@ -73,7 +73,7 @@ <MergeRef Id="SEC_ICU"/> <MergeRef Id="CRT"/> </Feature> - <Feature Id="SILConverters_for_Office13" Title="SILConverters for Office 2013" Description="Provides SILConverter support in Publisher, Excel, and Access (as well as a few developer helps in Word). Works with x64 versions of Office 2010, 13, 16, 19, or 365." Level="4" AllowAdvertise="no"> + <Feature Id="SILConverters_for_Office13" Title="SILConverters for Office 2013" Description="Provides SILConverter support in Publisher, Excel, and Access and Word (including Regex searching and translation helper dialog)." Level="4" AllowAdvertise="no"> <Condition Level="3"><![CDATA[(OFFICE_2013_BITNESS = "x64") AND ((COMPONENTEXISTS_WORD_13_PIA) OR (COMPONENTEXISTS_EXCEL_13_PIA) OR (ACCESS_2013_PIA_EXISTS) OR (PUBLISHER_2013_PIA_EXISTS))]]></Condition> <Condition Level="0"><![CDATA[OFFICE_2016_BITNESS OR (NOT ((COMPONENTEXISTS_WORD_13_PIA) OR (COMPONENTEXISTS_EXCEL_13_PIA) OR (ACCESS_2013_PIA_EXISTS) OR (PUBLISHER_2013_PIA_EXISTS)))]]></Condition> <MergeRef Id="SEC_EC"/> @@ -83,7 +83,7 @@ <MergeRef Id="SEC_ICU"/> <MergeRef Id="CRT"/> </Feature> - <Feature Id="SILConverters_for_Office16" Title="SILConverters for Office 2016/2019/365" Description="Provides SILConverter support in Publisher, Excel, and Access (as well as a few developer helps in Word). Works with x64 versions of Office 2010, 13, 16, 19, or 365." Level="4" AllowAdvertise="no"> + <Feature Id="SILConverters_for_Office16" Title="SILConverters for Office 2016/2019/365" Description="Provides SILConverter support in Publisher, Excel, and Access and Word (including Regex searching and translation helper dialog)." Level="4" AllowAdvertise="no"> <Condition Level="3"><![CDATA[(OFFICE_2016_BITNESS = "x64") AND ((COMPONENTEXISTS_WORD_13_PIA) OR (COMPONENTEXISTS_EXCEL_13_PIA) OR (ACCESS_2013_PIA_EXISTS) OR (PUBLISHER_2013_PIA_EXISTS))]]></Condition> <Condition Level="0"><![CDATA[OFFICE_2013_BITNESS OR (NOT ((COMPONENTEXISTS_WORD_13_PIA) OR (COMPONENTEXISTS_EXCEL_13_PIA) OR (ACCESS_2013_PIA_EXISTS) OR (PUBLISHER_2013_PIA_EXISTS)))]]></Condition> <MergeRef Id="SEC_EC"/> diff --git a/Installer/SEC Setup/EcFeatures.wxs b/Installer/SEC Setup/EcFeatures.wxs index 92dd66ce..e8dd69d0 100644 --- a/Installer/SEC Setup/EcFeatures.wxs +++ b/Installer/SEC Setup/EcFeatures.wxs @@ -61,12 +61,12 @@ <MergeRef Id="SEC_EC"/> <MergeRef Id="SetPath"/> </Feature> - <Feature Id="Bulk_Word_Document_Converter" Title="Bulk Word Document Converter" Description="The Bulk Word document converter allows you to convert one or more Word documents using converters in the system repository. Works with Word 2003, 07, 10, 13, 16, 19, or 365." Display="expand" Level="4" AllowAdvertise="no"> + <Feature Id="Bulk_Word_Document_Converter" Title="Bulk Word Document Converter" Description="Bulk Word document converter allows you to convert one or more Word documents using converters in the system repository. Word 2003, 07, 10, 13, 16, 19, or 365" Display="expand" Level="4" AllowAdvertise="no"> <Condition Level="3"><![CDATA[COMPONENTEXISTS_WORD_03_PIA OR COMPONENTEXISTS_WORD_07_PIA OR COMPONENTEXISTS_WORD_10_PIA OR COMPONENTEXISTS_WORD_13_PIA]]></Condition> <MergeRef Id="SEC_EC"/> <MergeRef Id="SILConvertersForWord"/> </Feature> - <Feature Id="SILConverters_for_Office_2003" Title="SILConverters for Office 2003" Description="Provides SILConverter support in Publisher, Excel, and Access (as well as a few developer helps in Word). Works with x86 versions of Office 2003, 07, 10, 13, 16, 19, or 365." Level="4" AllowAdvertise="no"> + <Feature Id="SILConverters_for_Office_2003" Title="SILConverters for Office 2003" Description="Provides SILConverter support in Publisher, Excel, and Access and Word (including Regex searching and translation helper dialog)." Level="4" AllowAdvertise="no"> <Condition Level="3"><![CDATA[(COMPONENTEXISTS_WORD_03_PIA) OR (COMPONENTEXISTS_EXCEL_03_PIA) OR (ACCESS_2003_PIA_EXISTS) OR (PUBLISHER_2003_PIA_EXISTS)]]></Condition> <Condition Level="0"><![CDATA[NOT ((COMPONENTEXISTS_EXCEL_03_PIA) OR (ACCESS_2003_PIA_EXISTS) OR (PUBLISHER_2003_PIA_EXISTS))]]></Condition> <!--<MergeRef Id="Managed_Install_Fix"/>--> @@ -80,7 +80,7 @@ <!--<MergeRef Id="ICU"/> <MergeRef Id="ICUECHelp"/>--> </Feature> - <Feature Id="SILConverters_for_Office07" Title="SILConverters for Office 2007" Description="Provides SILConverter support in Publisher, Excel, and Access (as well as a few developer helps in Word). Works with x86 versions of Office 2003, 07, 10, 13, 16, 19, or 365." Level="4" AllowAdvertise="no"> + <Feature Id="SILConverters_for_Office07" Title="SILConverters for Office 2007" Description="Provides SILConverter support in Publisher, Excel, and Access and Word (including Regex searching and translation helper dialog)." Level="4" AllowAdvertise="no"> <Condition Level="3"><![CDATA[(COMPONENTEXISTS_WORD_07_PIA) OR (COMPONENTEXISTS_EXCEL_07_PIA) OR (ACCESS_2007_PIA_EXISTS) OR (PUBLISHER_2007_PIA_EXISTS)]]></Condition> <Condition Level="0"><![CDATA[NOT ((COMPONENTEXISTS_WORD_07_PIA) OR (COMPONENTEXISTS_EXCEL_07_PIA) OR (ACCESS_2007_PIA_EXISTS) OR (PUBLISHER_2007_PIA_EXISTS))]]></Condition> <!--<MergeRef Id="Managed_Install_Fix"/>--> @@ -92,7 +92,7 @@ <!--<MergeRef Id="ICU"/> <MergeRef Id="ICUECHelp"/>--> </Feature> - <Feature Id="SILConverters_for_Office10" Title="SILConverters for Office 2010" Description="Provides SILConverter support in Publisher, Excel, and Access (as well as a few developer helps in Word). Works with x86 versions of Office 2003, 07, 10, 13, 16, 19, or 365." Level="4" AllowAdvertise="no"> + <Feature Id="SILConverters_for_Office10" Title="SILConverters for Office 2010" Description="Provides SILConverter support in Publisher, Excel, and Access and Word (including Regex searching and translation helper dialog)." Level="4" AllowAdvertise="no"> <Condition Level="3"><![CDATA[(OFFICE_2010_BITNESS = "x86") AND ((COMPONENTEXISTS_WORD_10_PIA) OR (COMPONENTEXISTS_EXCEL_10_PIA) OR (ACCESS_2010_PIA_EXISTS) OR (PUBLISHER_2010_PIA_EXISTS))]]></Condition> <Condition Level="0"><![CDATA[NOT ((COMPONENTEXISTS_WORD_10_PIA) OR (COMPONENTEXISTS_EXCEL_10_PIA) OR (ACCESS_2010_PIA_EXISTS) OR (PUBLISHER_2010_PIA_EXISTS))]]></Condition> <!--<MergeRef Id="Managed_Install_Fix"/>--> @@ -104,7 +104,7 @@ <!--<MergeRef Id="ICU"/> <MergeRef Id="ICUECHelp"/>--> </Feature> - <Feature Id="SILConverters_for_Office13" Title="SILConverters for Office 2013" Description="Provides SILConverter support in Publisher, Excel, and Access (as well as a few developer helps in Word). Works with x86 versions of Office 2003, 07, 10, 13, 16, 19, or 365." Level="4" AllowAdvertise="no"> + <Feature Id="SILConverters_for_Office13" Title="SILConverters for Office 2013" Description="Provides SILConverter support in Publisher, Excel, and Access and Word (including Regex searching and translation helper dialog)." Level="4" AllowAdvertise="no"> <Condition Level="3"><![CDATA[(OFFICE_2013_BITNESS = "x86") AND ((COMPONENTEXISTS_WORD_13_PIA) OR (COMPONENTEXISTS_EXCEL_13_PIA) OR (ACCESS_2013_PIA_EXISTS) OR (PUBLISHER_2013_PIA_EXISTS))]]></Condition> <Condition Level="0"><![CDATA[OFFICE_2016_BITNESS OR (NOT ((COMPONENTEXISTS_WORD_13_PIA) OR (COMPONENTEXISTS_EXCEL_13_PIA) OR (ACCESS_2013_PIA_EXISTS) OR (PUBLISHER_2013_PIA_EXISTS)))]]></Condition> <MergeRef Id="SEC_EC"/> @@ -113,7 +113,7 @@ <MergeRef Id="SpellFixerEc"/> <MergeRef Id="SEC_ICU"/> </Feature> - <Feature Id="SILConverters_for_Office16" Title="SILConverters for Office 2016/2019/365" Description="Provides SILConverter support in Publisher, Excel, and Access (as well as a few developer helps in Word). Works with x86 versions of Office 2003, 07, 10, 13, 16, 19, or 365." Level="4" AllowAdvertise="no"> + <Feature Id="SILConverters_for_Office16" Title="SILConverters for Office 2016/19/365" Description="Provides SILConverter support in Publisher, Excel, and Access and Word (including Regex searching and translation helper dialog)." Level="4" AllowAdvertise="no"> <Condition Level="3"><![CDATA[(OFFICE_2016_BITNESS = "x86") AND ((COMPONENTEXISTS_WORD_13_PIA) OR (COMPONENTEXISTS_EXCEL_13_PIA) OR (ACCESS_2013_PIA_EXISTS) OR (PUBLISHER_2013_PIA_EXISTS))]]></Condition> <Condition Level="0"><![CDATA[OFFICE_2013_BITNESS OR (NOT ((COMPONENTEXISTS_WORD_13_PIA) OR (COMPONENTEXISTS_EXCEL_13_PIA) OR (ACCESS_2013_PIA_EXISTS) OR (PUBLISHER_2013_PIA_EXISTS)))]]></Condition> <MergeRef Id="SEC_EC"/> From ab535f1ab3a37ba3e7f7cf0fd4a1d6c48dea54d5 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Fri, 7 Apr 2023 11:58:31 -0500 Subject: [PATCH 56/71] fixed https://github.com/silnrsi/silconverters/pull/13#discussion_r1154875690 --- .../TestBwdc/UnitTest_PtxBackTrHelper.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/SILConvertersWordML/TestBwdc/UnitTest_PtxBackTrHelper.cs b/src/SILConvertersWordML/TestBwdc/UnitTest_PtxBackTrHelper.cs index 7f381dd0..fb4efa0e 100644 --- a/src/SILConvertersWordML/TestBwdc/UnitTest_PtxBackTrHelper.cs +++ b/src/SILConvertersWordML/TestBwdc/UnitTest_PtxBackTrHelper.cs @@ -22,9 +22,12 @@ public class UnitTest_PtxBackTrHelper [TestCase("MultiplePoeticParagraphs", "MultiplePoeticParagraphsMissingInTarget")] [TestCase("SimpleParagraphVerse", "SimpleParagraphVerseMissingInTarget")] [TestCase("SingleVerse", "SingleVerseMissingInTarget")] - /* these are all now failing and I don't think they matter anymore. We aren't now completely - * overwriting the target text with the translated text, rather than merging with what's - * in the target presently. + /* the test cases below are all now failing, but they don't matter anymore. They were for + * when we were trying to merge the markers from the source with any possible ones existing + * in the target. This was a fool's errand (too many possible differences). + * Now we just completely overwrite the text in the target project with the same markers from + * the source project (with the source text replaced by the translated text). So what these + * tests were trying to validate doesn't happen anymore. [TestCase("SingleVerse", "SingleVerseMiTSplitIntoTwoParagraphs")] [TestCase("SingleVerse", "SingleVerseSplitIntoTwoParagraphs")] [TestCase("MultipleParagraphs", "MultipleParagraphsJoinedIntoOneParagraphs")] From 1b2b142a1872ae9f6af13a5b83716bbdcfd7e84d Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Fri, 7 Apr 2023 11:59:46 -0500 Subject: [PATCH 57/71] fixed https://github.com/silnrsi/silconverters/pull/13#discussion_r1154879092 --- src/SilConvertersXML/Properties/Resources.resx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SilConvertersXML/Properties/Resources.resx b/src/SilConvertersXML/Properties/Resources.resx index f80092bd..6c86ebd5 100644 --- a/src/SilConvertersXML/Properties/Resources.resx +++ b/src/SilConvertersXML/Properties/Resources.resx @@ -221,7 +221,7 @@ If you want to convert the data in this list from a certain value (e.g. if the list is large and you didn't finish it last time), you can select the item you want to start with and when you click the 'Convert and Save XML Document' button, you'll be asked if -you want to start the conversation from that item or not.</value> +you want to continue the conversion from that item or not.</value> </data> <data name="treeViewXmlDocHelp" xml:space="preserve"> <value>This window shows all the unique XML elements/attributes in the XML file (c.f. an XML schema). From 2bf4a77e9bd3f783b21439ead45258c6be26d39f Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Fri, 7 Apr 2023 12:06:31 -0500 Subject: [PATCH 58/71] In Spellfixer/AddProject dialog, the validity checks I was doing in ButtonOk_Click didn't stop the dialog from closing... moved them to AddNewProjectForm_FormClosing, where the closing can be canceled. Also added proper tab order. Also, keep the 'Add Project' button all the time; not just if there isn't one. --- .../AddNewProjectForm.Designer.cs | 15 +++--- src/SpellingFixerEC/AddNewProjectForm.cs | 53 +++++++++++-------- src/SpellingFixerEC/LoginSF.cs | 8 +-- 3 files changed, 42 insertions(+), 34 deletions(-) diff --git a/src/SpellingFixerEC/AddNewProjectForm.Designer.cs b/src/SpellingFixerEC/AddNewProjectForm.Designer.cs index 49b0f69e..d17e8cb9 100644 --- a/src/SpellingFixerEC/AddNewProjectForm.Designer.cs +++ b/src/SpellingFixerEC/AddNewProjectForm.Designer.cs @@ -99,7 +99,7 @@ private void InitializeComponent() this.textBoxName.Location = new System.Drawing.Point(123, 18); this.textBoxName.Name = "textBoxName"; this.textBoxName.Size = new System.Drawing.Size(317, 20); - this.textBoxName.TabIndex = 17; + this.textBoxName.TabIndex = 0; this.toolTips.SetToolTip(this.textBoxName, "Enter the name of a new projects (e.g. \'Hindi to English fixes\')"); // // labelFont @@ -118,7 +118,7 @@ private void InitializeComponent() this.buttonChooseFont.Location = new System.Drawing.Point(123, 74); this.buttonChooseFont.Name = "buttonChooseFont"; this.buttonChooseFont.Size = new System.Drawing.Size(84, 23); - this.buttonChooseFont.TabIndex = 18; + this.buttonChooseFont.TabIndex = 2; this.buttonChooseFont.Text = "Choose &Font"; this.toolTips.SetToolTip(this.buttonChooseFont, "Click to choose the font to be used for displaying the Find-Replace pairs (e.g. \'" + "Arial Unicode MS, 12 pt\')"); @@ -141,7 +141,7 @@ private void InitializeComponent() this.checkBoxRtL.Location = new System.Drawing.Point(123, 130); this.checkBoxRtL.Name = "checkBoxRtL"; this.checkBoxRtL.Size = new System.Drawing.Size(98, 24); - this.checkBoxRtL.TabIndex = 20; + this.checkBoxRtL.TabIndex = 3; this.checkBoxRtL.Text = "&Right-to-Left"; this.toolTips.SetToolTip(this.checkBoxRtL, "Check this if the data is right-to-left"); // @@ -160,7 +160,7 @@ private void InitializeComponent() this.textBoxWordBoundaryDelimiter.Location = new System.Drawing.Point(123, 189); this.textBoxWordBoundaryDelimiter.Name = "textBoxWordBoundaryDelimiter"; this.textBoxWordBoundaryDelimiter.Size = new System.Drawing.Size(24, 20); - this.textBoxWordBoundaryDelimiter.TabIndex = 22; + this.textBoxWordBoundaryDelimiter.TabIndex = 4; this.textBoxWordBoundaryDelimiter.Text = "#"; this.toolTips.SetToolTip(this.textBoxWordBoundaryDelimiter, resources.GetString("textBoxWordBoundaryDelimiter.ToolTip")); // @@ -182,7 +182,7 @@ private void InitializeComponent() this.textBoxAddlPunctuation.Location = new System.Drawing.Point(123, 246); this.textBoxAddlPunctuation.Name = "textBoxAddlPunctuation"; this.textBoxAddlPunctuation.Size = new System.Drawing.Size(317, 20); - this.textBoxAddlPunctuation.TabIndex = 24; + this.textBoxAddlPunctuation.TabIndex = 5; this.toolTips.SetToolTip(this.textBoxAddlPunctuation, "Enter any additional punctuation or whitespace characters needed for this languag" + "e, separated by spaces (these are used for boundary condition checking)"); // @@ -192,7 +192,7 @@ private void InitializeComponent() this.buttonCancel.Location = new System.Drawing.Point(227, 288); this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.Size = new System.Drawing.Size(75, 23); - this.buttonCancel.TabIndex = 25; + this.buttonCancel.TabIndex = 7; this.buttonCancel.Text = "&Cancel"; this.buttonCancel.UseVisualStyleBackColor = true; // @@ -203,7 +203,7 @@ private void InitializeComponent() this.buttonOk.Location = new System.Drawing.Point(146, 288); this.buttonOk.Name = "buttonOk"; this.buttonOk.Size = new System.Drawing.Size(75, 23); - this.buttonOk.TabIndex = 16; + this.buttonOk.TabIndex = 6; this.buttonOk.Text = "OK"; this.buttonOk.UseVisualStyleBackColor = true; this.buttonOk.Click += new System.EventHandler(this.ButtonOk_Click); @@ -224,6 +224,7 @@ private void InitializeComponent() this.Controls.Add(this.tableLayoutPanel); this.Name = "AddNewProjectForm"; this.Text = "Add New Project"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.AddNewProjectForm_FormClosing); this.tableLayoutPanel.ResumeLayout(false); this.tableLayoutPanel.PerformLayout(); this.ResumeLayout(false); diff --git a/src/SpellingFixerEC/AddNewProjectForm.cs b/src/SpellingFixerEC/AddNewProjectForm.cs index 51afb257..3b94cc85 100644 --- a/src/SpellingFixerEC/AddNewProjectForm.cs +++ b/src/SpellingFixerEC/AddNewProjectForm.cs @@ -72,29 +72,6 @@ private void ButtonChooseFont_Click(object sender, EventArgs e) private void ButtonOk_Click(object sender, EventArgs e) { - if (WordBoundaryDelimiter.Contains('"')) - { - MessageBox.Show("Can't use the double-quote character for the word boundary delimiter", - SpellingFixerEC.cstrCaption); - return; - } - - if (String.IsNullOrEmpty(NewProjectName)) - { - MessageBox.Show("You must define a name for this converter (e.g. 'Hindi fixes')", - SpellingFixerEC.cstrCaption); - return; - } - - if (String.IsNullOrEmpty(labelFontChosen.Text)) - { - if (MessageBox.Show("Did you want to select a font to use when displaying Find-Replace pairs?", - SpellingFixerEC.cstrCaption, MessageBoxButtons.YesNo) - == DialogResult.Yes) - { - return; - } - } } private string EncodePunctuationForCC(string strPunctuation) @@ -199,5 +176,35 @@ private string DecodePunctuationForCCEx(string strPunctuation) return strRet; } + + private void AddNewProjectForm_FormClosing(object sender, FormClosingEventArgs e) + { + if (WordBoundaryDelimiter.Contains('"')) + { + MessageBox.Show("Can't use the double-quote character for the word boundary delimiter", + SpellingFixerEC.cstrCaption); + e.Cancel = true; + return; + } + + if (String.IsNullOrEmpty(NewProjectName)) + { + MessageBox.Show("You must define a name for this converter (e.g. 'Hindi fixes')", + SpellingFixerEC.cstrCaption); + e.Cancel = true; + return; + } + + if (String.IsNullOrEmpty(labelFontChosen.Text)) + { + if (MessageBox.Show("Did you want to select a font to use when displaying Find-Replace pairs?", + SpellingFixerEC.cstrCaption, MessageBoxButtons.YesNo) + == DialogResult.Yes) + { + e.Cancel = true; + return; + } + } + } } } diff --git a/src/SpellingFixerEC/LoginSF.cs b/src/SpellingFixerEC/LoginSF.cs index 28e63095..bbeac225 100644 --- a/src/SpellingFixerEC/LoginSF.cs +++ b/src/SpellingFixerEC/LoginSF.cs @@ -239,10 +239,11 @@ private void MenuItemAddNewProject_Click(object sender, EventArgs e) private void AddNewProject() { - var dlg = new AddNewProjectForm(SpellingFixerEC.GetDefaultPunctuation) + using var dlg = new AddNewProjectForm(SpellingFixerEC.GetDefaultPunctuation) { WordBoundaryDelimiter = SpellingFixerEC.cstrDefaultWordBoundaryDelimiter }; + var res = dlg.ShowDialog(); if (res == DialogResult.Cancel) return; @@ -569,7 +570,7 @@ private void DoEdit(string strProjectName, string strFontName, string sFontSize) { m_font = new Font(strFontName, GetFloatFontSize(sFontSize)); - var dlg = new AddNewProjectForm(m_strNonWordCharacters) + using var dlg = new AddNewProjectForm(m_strNonWordCharacters) { NewProjectName = strProjectName, WordBoundaryDelimiter = m_strWordBoundaryDelimiter, @@ -618,8 +619,7 @@ private void CheckedListBoxProjects_DoubleClick(object sender, EventArgs e) private void LoginSF_Shown(object sender, EventArgs e) { - buttonAddNewProject.Visible = !ProjectsExist; - if (buttonAddNewProject.Visible) + if (!ProjectsExist) { AddNewProject(); } From 94dfdd83ea8efcaf1a7ba4de3998c85e6acb9d2f Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Fri, 7 Apr 2023 12:07:31 -0500 Subject: [PATCH 59/71] added some notes on how to build and upgrade the EcCore package --- README.md | 36 +++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 12e27581..08a628f2 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # SIL Converters -This package provides tools through which you can change the encoding, font, and/or script of text in Microsoft Word and other Office documents, OpenOffice and LibreOffice documents, XML documents, and SFM text and lexicon documents. It also installs a system-wide repository to manage your encoding converters and transliterators (TECkit, CC, ICU, Perl, or Python based, as well as support for adding custom transduction engines). +This package provides tools through which you can change the encoding, font, and/or script of text in Microsoft Word and other Office documents, OpenOffice and LibreOffice documents, XML documents, and SFM text and lexicon documents. It also installs a system-wide repository to manage your encoding converters and transliterators (TECkit, CC, ICU, Perl, or Python based, as well as support for adding custom transduction engines) and now several web-based translators (Bing Translate, DeepL Translate, and Google Translate). For developers, it provides a simple COM interface to select and use a converter from the repository. It is easy to use from VBA, C++, C#, Perl, Python or any .NET/COM enabled language. -The core EncConverters assembly is fully integrated with FLEx (FieldWorks Language Explorer), Speech Analyzer, Phonology Assistant, Adapt It and OneStory Editor software. It provides the same system-wide registry of installed and available encoding converters for all of these user programs. Additionally the package includes some extra utilities such as a clipboard converter for manipulating text between cut and paste operations. +The core EncConverters assembly is fully integrated with FLEx (FieldWorks Language Explorer), Speech Analyzer, Phonology Assistant, Adapt It, OneStory Editor software, and now there's a Paratext Plug-in also. It provides the same system-wide registry of installed and available encoding converters for all of these user programs. Additionally the package includes some extra utilities such as a clipboard converter for manipulating text between cut and paste operations. The following picture illustrates the suite of tools, utilities, and applications that are available and how they interact: @@ -20,13 +20,15 @@ If you are an end user, you are probably most interested in how to use EncConver * Using the Bulk Word Document Converter to convert the encoding of text in one or more Word document to Unicode, or * Using Bulk SFM Converter to convert SFM documents into Unicode (typically texts and lexicons from Shoebox to Toolbox) + * Using the Paratext plug-in to help with Back Translation (generally using one or more of the Translator EncConverters to get suggestions) If you are a developer, you may be interested in * Using EncConverters to gain access to the different transduction resources available by writing to the single EncConverters’ interface. See [this](https://software.sil.org/silconverters/silconverters-developer/) webpage for details and code snippets. ## Upgrade! New Features -### For version 5.0 +### For version 5.1 + * Support for the new web-based Translation resources (Bing, DeepL, and Google Translate) * Support 64 bit version of Microsoft Office, as well as continued support for 32 bit versions. See the documentation below for how to determine which bitness of Microsoft Office you have, and therefore which installer you should download. * Support newer versions of Microsoft Office (including 2019 and 365). * TECkit mapping editor can now show characters outside of the Basic Multilingual Plane (BMP), that is, Unicode characters above U+FFFF. @@ -34,3 +36,31 @@ If you are a developer, you may be interested in * Updated TECkit to support Unicode 13. See also [this](https://software.sil.org/silconverters) page for more information and a signed installer download + +For building SILConverters (currently only on Windows), open the solution in Visual Studio in administrative mode, and click Rebuild All on the Build menu. + +If you want to upgrade the EncConverters core nuget package, it is recommended to follow these steps rather than using the normal Manage Nuget packages approach (it doesn't update the package properly for x86 vs. x64 builds or use the pre-defined 'EcLibFilesPath' nuget property for the path to the new nuget package): + * With the Visual Studio Solution closed, use something like the 'Search', 'Find in Files' feature in Notepad++ to search these files and make replacements: + * Directory: <location of the solution folder> (e.g. C:\Users\<username>\source\repos\SilConverters\) + * Check the 'In all sub-folders' checkbox + * Search Mode: Normal + + * Filters: packages.config + * Find What: Encoding-Converters-Core" version="0.6.0 + * Replace With: Encoding-Converters-Core" version="0.6.1 + * Click the 'Replace in Files' button + + * Filters: *.*proj + * Find What: packages\Encoding-Converters-Core.0.6.0 + * Replace With: packages\Encoding-Converters-Core.0.6.1 + * Click the 'Replace in Files' button + + * With File Explorer, delete these folders: + * <solution directory>\build\Obj + * <solution directory>\output\x86, x64, Release, Debug + * <solution directory>\packages\Encoding-Converters-Core + + * Open Solution in Visual Studio, right-click on the Solution in the Solution Explorer and choose "Restore Nuget packages" + * Close the solution (File, Close Solution) and reopen it (don't skip this step!) + * Right-click the Solution in the Solution Explorer and choose 'Clean Solution' and then 'Rebuild All' (do this for each configuration you want) + * Run the tests to make sure everything is working as expected. From ea4c121c05824fe62c785a1a5d3aa04ca299153c Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Fri, 7 Apr 2023 12:17:55 -0500 Subject: [PATCH 60/71] fixed https://github.com/silnrsi/silconverters/pull/13#discussion_r1157398881 --- .../BackTranslationHelperForm.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs index 0791a14f..9a05748f 100644 --- a/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs +++ b/src/ParatextPluginBackTranslationHelper/BackTranslationHelperForm.cs @@ -520,7 +520,7 @@ bool IBackTranslationHelperDataSource.WriteToTarget(string text) { // if we don't already have it... it's probably because something was changed in the project // external to this form (we lose the data if we get activated). - System.Diagnostics.Debug.WriteLine($"PtxBTH: RequeryWarning"); + System.Diagnostics.Debug.WriteLine($"PtxBTH: RequeryWarning: _verseReference: {_verseReference}, _versesReference: {_versesReference}"); // Note: if the Target Translation textbox has modified data, the current implementation shouldn't // overwrite it (see UpdateData in BackTranslationHelperCtrl.cs, which shows that if it's From c14a35bc6fdb19091edacbdaecf96fc4f07a7a78 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Fri, 7 Apr 2023 12:22:44 -0500 Subject: [PATCH 61/71] attempted to fix this: https://github.com/silnrsi/silconverters/pull/13#discussion_r1157405726 but was unsuccessful except to fix the wrong year --- Installer/SetupSILConverters/SetupSILConverters.wixproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Installer/SetupSILConverters/SetupSILConverters.wixproj b/Installer/SetupSILConverters/SetupSILConverters.wixproj index 315a021d..5be7713a 100644 --- a/Installer/SetupSILConverters/SetupSILConverters.wixproj +++ b/Installer/SetupSILConverters/SetupSILConverters.wixproj @@ -17,7 +17,7 @@ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> <OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath> <IntermediateOutputPath>obj\$(Platform)\$(Configuration)\</IntermediateOutputPath> - <DefineConstants>ApplicationName=SILConverters;SafeApplicationName=SILConverters;TruncatedVersion=5.1;VersionNumber=5.1.3.0;UpgradeCode=8A50226C-84D0-4CAF-AF8F-B0284643C415;Year=2022;Manufacturer=SIL International;EcDistFilesPath=$(EcDistFilesPath)</DefineConstants> + <DefineConstants>ApplicationName=SILConverters;SafeApplicationName=SILConverters;TruncatedVersion=5.1;VersionNumber=5.1.3.0;UpgradeCode=8A50226C-84D0-4CAF-AF8F-B0284643C415;Year=2023;Manufacturer=SIL International;EcDistFilesPath=$(EcDistFilesPath)</DefineConstants> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' "> <DefineConstants>ApplicationName=SILConverters;SafeApplicationName=SILConverters;TruncatedVersion=5.1;VersionNumber=5.1.3.0;UpgradeCode=0F7D5D72-E9F3-40BB-9748-D388C70096CD;Year=2023;Manufacturer=SIL International;EcDistFilesPath=$(EcDistFilesPath)</DefineConstants> From 358d80977e6651e1433475694a58629884ad2a4c Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Fri, 7 Apr 2023 14:52:54 -0500 Subject: [PATCH 62/71] center the spellfixer dialog boxes when they appear (in case the translation dialog is on the edge (more likely) and pinned to the top (which would leave these hidden behind it) --- .../AddNewProjectForm.Designer.cs | 1 + src/SpellingFixerEC/LoginSF.Designer.cs | 19 ++++++++++--------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/SpellingFixerEC/AddNewProjectForm.Designer.cs b/src/SpellingFixerEC/AddNewProjectForm.Designer.cs index d17e8cb9..f6670345 100644 --- a/src/SpellingFixerEC/AddNewProjectForm.Designer.cs +++ b/src/SpellingFixerEC/AddNewProjectForm.Designer.cs @@ -223,6 +223,7 @@ private void InitializeComponent() this.ClientSize = new System.Drawing.Size(463, 315); this.Controls.Add(this.tableLayoutPanel); this.Name = "AddNewProjectForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Add New Project"; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.AddNewProjectForm_FormClosing); this.tableLayoutPanel.ResumeLayout(false); diff --git a/src/SpellingFixerEC/LoginSF.Designer.cs b/src/SpellingFixerEC/LoginSF.Designer.cs index 468cc51d..42018b79 100644 --- a/src/SpellingFixerEC/LoginSF.Designer.cs +++ b/src/SpellingFixerEC/LoginSF.Designer.cs @@ -55,7 +55,7 @@ private void InitializeComponent() this.checkedListBoxProjects.Dock = System.Windows.Forms.DockStyle.Fill; this.checkedListBoxProjects.Location = new System.Drawing.Point(3, 3); this.checkedListBoxProjects.Name = "checkedListBoxProjects"; - this.checkedListBoxProjects.Size = new System.Drawing.Size(367, 210); + this.checkedListBoxProjects.Size = new System.Drawing.Size(485, 252); this.checkedListBoxProjects.TabIndex = 0; this.checkedListBoxProjects.ThreeDCheckBoxes = true; this.toolTips.SetToolTip(this.checkedListBoxProjects, "List of existing projects"); @@ -67,7 +67,7 @@ private void InitializeComponent() // this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK; - this.buttonOK.Location = new System.Drawing.Point(108, 219); + this.buttonOK.Location = new System.Drawing.Point(167, 261); this.buttonOK.Name = "buttonOK"; this.buttonOK.Size = new System.Drawing.Size(75, 23); this.buttonOK.TabIndex = 11; @@ -79,7 +79,7 @@ private void InitializeComponent() // this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.buttonCancel.Location = new System.Drawing.Point(189, 219); + this.buttonCancel.Location = new System.Drawing.Point(248, 261); this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.Size = new System.Drawing.Size(75, 23); this.buttonCancel.TabIndex = 12; @@ -140,8 +140,8 @@ private void InitializeComponent() | System.Windows.Forms.AnchorStyles.Right))); this.tableLayoutPanel.ColumnCount = 3; this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); - this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 30F)); this.tableLayoutPanel.Controls.Add(this.checkedListBoxProjects, 0, 0); this.tableLayoutPanel.Controls.Add(this.buttonCancel, 1, 1); this.tableLayoutPanel.Controls.Add(this.buttonOK, 0, 1); @@ -151,15 +151,15 @@ private void InitializeComponent() this.tableLayoutPanel.RowCount = 2; this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel.Size = new System.Drawing.Size(373, 245); + this.tableLayoutPanel.Size = new System.Drawing.Size(491, 287); this.tableLayoutPanel.TabIndex = 14; // // buttonAddNewProject // this.buttonAddNewProject.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.buttonAddNewProject.Location = new System.Drawing.Point(295, 219); + this.buttonAddNewProject.Location = new System.Drawing.Point(378, 261); this.buttonAddNewProject.Name = "buttonAddNewProject"; - this.buttonAddNewProject.Size = new System.Drawing.Size(75, 23); + this.buttonAddNewProject.Size = new System.Drawing.Size(110, 23); this.buttonAddNewProject.TabIndex = 13; this.buttonAddNewProject.Text = "&Add New Project"; this.buttonAddNewProject.UseVisualStyleBackColor = true; @@ -170,10 +170,11 @@ private void InitializeComponent() this.AcceptButton = this.buttonOK; this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.CancelButton = this.buttonCancel; - this.ClientSize = new System.Drawing.Size(397, 269); + this.ClientSize = new System.Drawing.Size(515, 311); this.Controls.Add(this.tableLayoutPanel); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Name = "LoginSF"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Select Find-Replace Project"; this.Shown += new System.EventHandler(this.LoginSF_Shown); this.tableLayoutPanel.ResumeLayout(false); From dc26d75a24fe97cb48ce37fb113750fa317de3fc Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sat, 8 Apr 2023 08:13:15 -0500 Subject: [PATCH 63/71] oops. accidentally undid the fix recommended for: https://github.com/silnrsi/silconverters/issues/7 --- Installer/SEC Setup 64bit/EcFeatures.wxs | 6 +++--- Installer/SEC Setup/EcFeatures.wxs | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Installer/SEC Setup 64bit/EcFeatures.wxs b/Installer/SEC Setup 64bit/EcFeatures.wxs index 9fc73344..c9111be1 100644 --- a/Installer/SEC Setup 64bit/EcFeatures.wxs +++ b/Installer/SEC Setup 64bit/EcFeatures.wxs @@ -63,7 +63,7 @@ <MergeRef Id="SEC_EC"/> <MergeRef Id="SILConvertersForWord"/> </Feature> - <Feature Id="SILConverters_for_Office10" Title="SILConverters for Office 2010" Description="Provides SILConverter support in Publisher, Excel, and Access and Word (including Regex searching and translation helper dialog)." Level="4" AllowAdvertise="no"> + <Feature Id="SILConverters_for_Office10" Title="SILConverters for Office 2010" Description="Provides SILConverter support in Publisher, Excel, Access, and Word in Office 2007, 10, 13, 16, 19, or 365 (including Regex searching and translation helper dialog)." Level="4" AllowAdvertise="no"> <Condition Level="3"><![CDATA[(OFFICE_2010_BITNESS = "x64") AND ((COMPONENTEXISTS_WORD_10_PIA) OR (COMPONENTEXISTS_EXCEL_10_PIA) OR (ACCESS_2010_PIA_EXISTS) OR (PUBLISHER_2010_PIA_EXISTS))]]></Condition> <Condition Level="0"><![CDATA[NOT ((COMPONENTEXISTS_WORD_10_PIA) OR (COMPONENTEXISTS_EXCEL_10_PIA) OR (ACCESS_2010_PIA_EXISTS) OR (PUBLISHER_2010_PIA_EXISTS))]]></Condition> <MergeRef Id="SEC_EC"/> @@ -73,7 +73,7 @@ <MergeRef Id="SEC_ICU"/> <MergeRef Id="CRT"/> </Feature> - <Feature Id="SILConverters_for_Office13" Title="SILConverters for Office 2013" Description="Provides SILConverter support in Publisher, Excel, and Access and Word (including Regex searching and translation helper dialog)." Level="4" AllowAdvertise="no"> + <Feature Id="SILConverters_for_Office13" Title="SILConverters for Office 2013" Description="Provides SILConverter support in Publisher, Excel, Access, and Word in Office 2007, 10, 13, 16, 19, or 365 (including Regex searching and translation helper dialog)." Level="4" AllowAdvertise="no"> <Condition Level="3"><![CDATA[(OFFICE_2013_BITNESS = "x64") AND ((COMPONENTEXISTS_WORD_13_PIA) OR (COMPONENTEXISTS_EXCEL_13_PIA) OR (ACCESS_2013_PIA_EXISTS) OR (PUBLISHER_2013_PIA_EXISTS))]]></Condition> <Condition Level="0"><![CDATA[OFFICE_2016_BITNESS OR (NOT ((COMPONENTEXISTS_WORD_13_PIA) OR (COMPONENTEXISTS_EXCEL_13_PIA) OR (ACCESS_2013_PIA_EXISTS) OR (PUBLISHER_2013_PIA_EXISTS)))]]></Condition> <MergeRef Id="SEC_EC"/> @@ -83,7 +83,7 @@ <MergeRef Id="SEC_ICU"/> <MergeRef Id="CRT"/> </Feature> - <Feature Id="SILConverters_for_Office16" Title="SILConverters for Office 2016/2019/365" Description="Provides SILConverter support in Publisher, Excel, and Access and Word (including Regex searching and translation helper dialog)." Level="4" AllowAdvertise="no"> + <Feature Id="SILConverters_for_Office16" Title="SILConverters for Office 2016/2019/365" Description="Provides SILConverter support in Publisher, Excel, Access, and Word in Office 2007, 10, 13, 16, 19, or 365 (including Regex searching and translation helper dialog)." Level="4" AllowAdvertise="no"> <Condition Level="3"><![CDATA[(OFFICE_2016_BITNESS = "x64") AND ((COMPONENTEXISTS_WORD_13_PIA) OR (COMPONENTEXISTS_EXCEL_13_PIA) OR (ACCESS_2013_PIA_EXISTS) OR (PUBLISHER_2013_PIA_EXISTS))]]></Condition> <Condition Level="0"><![CDATA[OFFICE_2013_BITNESS OR (NOT ((COMPONENTEXISTS_WORD_13_PIA) OR (COMPONENTEXISTS_EXCEL_13_PIA) OR (ACCESS_2013_PIA_EXISTS) OR (PUBLISHER_2013_PIA_EXISTS)))]]></Condition> <MergeRef Id="SEC_EC"/> diff --git a/Installer/SEC Setup/EcFeatures.wxs b/Installer/SEC Setup/EcFeatures.wxs index e8dd69d0..f9dd3667 100644 --- a/Installer/SEC Setup/EcFeatures.wxs +++ b/Installer/SEC Setup/EcFeatures.wxs @@ -66,7 +66,7 @@ <MergeRef Id="SEC_EC"/> <MergeRef Id="SILConvertersForWord"/> </Feature> - <Feature Id="SILConverters_for_Office_2003" Title="SILConverters for Office 2003" Description="Provides SILConverter support in Publisher, Excel, and Access and Word (including Regex searching and translation helper dialog)." Level="4" AllowAdvertise="no"> + <Feature Id="SILConverters_for_Office_2003" Title="SILConverters for Office 2003" Description="Provides SILConverter support in Publisher, Excel, Access, and Word in Office 2003, 07, 10, 13, 16, 19, or 365 (including Regex searching and translation helper dialog)." Level="4" AllowAdvertise="no"> <Condition Level="3"><![CDATA[(COMPONENTEXISTS_WORD_03_PIA) OR (COMPONENTEXISTS_EXCEL_03_PIA) OR (ACCESS_2003_PIA_EXISTS) OR (PUBLISHER_2003_PIA_EXISTS)]]></Condition> <Condition Level="0"><![CDATA[NOT ((COMPONENTEXISTS_EXCEL_03_PIA) OR (ACCESS_2003_PIA_EXISTS) OR (PUBLISHER_2003_PIA_EXISTS))]]></Condition> <!--<MergeRef Id="Managed_Install_Fix"/>--> @@ -80,7 +80,7 @@ <!--<MergeRef Id="ICU"/> <MergeRef Id="ICUECHelp"/>--> </Feature> - <Feature Id="SILConverters_for_Office07" Title="SILConverters for Office 2007" Description="Provides SILConverter support in Publisher, Excel, and Access and Word (including Regex searching and translation helper dialog)." Level="4" AllowAdvertise="no"> + <Feature Id="SILConverters_for_Office07" Title="SILConverters for Office 2007" Description="Provides SILConverter support in Publisher, Excel, Access, and Word in Office 2003, 07, 10, 13, 16, 19, or 365 (including Regex searching and translation helper dialog)." Level="4" AllowAdvertise="no"> <Condition Level="3"><![CDATA[(COMPONENTEXISTS_WORD_07_PIA) OR (COMPONENTEXISTS_EXCEL_07_PIA) OR (ACCESS_2007_PIA_EXISTS) OR (PUBLISHER_2007_PIA_EXISTS)]]></Condition> <Condition Level="0"><![CDATA[NOT ((COMPONENTEXISTS_WORD_07_PIA) OR (COMPONENTEXISTS_EXCEL_07_PIA) OR (ACCESS_2007_PIA_EXISTS) OR (PUBLISHER_2007_PIA_EXISTS))]]></Condition> <!--<MergeRef Id="Managed_Install_Fix"/>--> @@ -92,7 +92,7 @@ <!--<MergeRef Id="ICU"/> <MergeRef Id="ICUECHelp"/>--> </Feature> - <Feature Id="SILConverters_for_Office10" Title="SILConverters for Office 2010" Description="Provides SILConverter support in Publisher, Excel, and Access and Word (including Regex searching and translation helper dialog)." Level="4" AllowAdvertise="no"> + <Feature Id="SILConverters_for_Office10" Title="SILConverters for Office 2010" Description="Provides SILConverter support in Publisher, Excel, Access, and Word in Office 2003, 07, 10, 13, 16, 19, or 365 (including Regex searching and translation helper dialog)." Level="4" AllowAdvertise="no"> <Condition Level="3"><![CDATA[(OFFICE_2010_BITNESS = "x86") AND ((COMPONENTEXISTS_WORD_10_PIA) OR (COMPONENTEXISTS_EXCEL_10_PIA) OR (ACCESS_2010_PIA_EXISTS) OR (PUBLISHER_2010_PIA_EXISTS))]]></Condition> <Condition Level="0"><![CDATA[NOT ((COMPONENTEXISTS_WORD_10_PIA) OR (COMPONENTEXISTS_EXCEL_10_PIA) OR (ACCESS_2010_PIA_EXISTS) OR (PUBLISHER_2010_PIA_EXISTS))]]></Condition> <!--<MergeRef Id="Managed_Install_Fix"/>--> @@ -104,7 +104,7 @@ <!--<MergeRef Id="ICU"/> <MergeRef Id="ICUECHelp"/>--> </Feature> - <Feature Id="SILConverters_for_Office13" Title="SILConverters for Office 2013" Description="Provides SILConverter support in Publisher, Excel, and Access and Word (including Regex searching and translation helper dialog)." Level="4" AllowAdvertise="no"> + <Feature Id="SILConverters_for_Office13" Title="SILConverters for Office 2013" Description="Provides SILConverter support in Publisher, Excel, Access, and Word in Office 2003, 07, 10, 13, 16, 19, or 365 (including Regex searching and translation helper dialog)." Level="4" AllowAdvertise="no"> <Condition Level="3"><![CDATA[(OFFICE_2013_BITNESS = "x86") AND ((COMPONENTEXISTS_WORD_13_PIA) OR (COMPONENTEXISTS_EXCEL_13_PIA) OR (ACCESS_2013_PIA_EXISTS) OR (PUBLISHER_2013_PIA_EXISTS))]]></Condition> <Condition Level="0"><![CDATA[OFFICE_2016_BITNESS OR (NOT ((COMPONENTEXISTS_WORD_13_PIA) OR (COMPONENTEXISTS_EXCEL_13_PIA) OR (ACCESS_2013_PIA_EXISTS) OR (PUBLISHER_2013_PIA_EXISTS)))]]></Condition> <MergeRef Id="SEC_EC"/> @@ -113,7 +113,7 @@ <MergeRef Id="SpellFixerEc"/> <MergeRef Id="SEC_ICU"/> </Feature> - <Feature Id="SILConverters_for_Office16" Title="SILConverters for Office 2016/19/365" Description="Provides SILConverter support in Publisher, Excel, and Access and Word (including Regex searching and translation helper dialog)." Level="4" AllowAdvertise="no"> + <Feature Id="SILConverters_for_Office16" Title="SILConverters for Office 2016/19/365" Description="Provides SILConverter support in Publisher, Excel, Access, and Word in Office 2003, 07, 10, 13, 16, 19, or 365 (including Regex searching and translation helper dialog)." Level="4" AllowAdvertise="no"> <Condition Level="3"><![CDATA[(OFFICE_2016_BITNESS = "x86") AND ((COMPONENTEXISTS_WORD_13_PIA) OR (COMPONENTEXISTS_EXCEL_13_PIA) OR (ACCESS_2013_PIA_EXISTS) OR (PUBLISHER_2013_PIA_EXISTS))]]></Condition> <Condition Level="0"><![CDATA[OFFICE_2013_BITNESS OR (NOT ((COMPONENTEXISTS_WORD_13_PIA) OR (COMPONENTEXISTS_EXCEL_13_PIA) OR (ACCESS_2013_PIA_EXISTS) OR (PUBLISHER_2013_PIA_EXISTS)))]]></Condition> <MergeRef Id="SEC_EC"/> From 7cdc4193b9d09afc37c10ca1d9f8bea384d1a136 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Sat, 8 Apr 2023 08:13:50 -0500 Subject: [PATCH 64/71] ignoring some files that shouldn't have been checked in earlier --- .gitignore | 3 + .vs/SEC VS2010/v14/.suo | Bin 363520 -> 0 bytes .vs/SEC VS2015/v14/.suo | Bin 411136 -> 0 bytes .vs/config/applicationhost.config | 1030 ----------------------------- 4 files changed, 3 insertions(+), 1030 deletions(-) delete mode 100644 .vs/SEC VS2010/v14/.suo delete mode 100644 .vs/SEC VS2015/v14/.suo delete mode 100644 .vs/config/applicationhost.config diff --git a/.gitignore b/.gitignore index 90ed677e..2a8a083f 100644 --- a/.gitignore +++ b/.gitignore @@ -273,3 +273,6 @@ autom4te.cache /redist/MapsTables/PythonExamples /redist/MapsTables/TestEncCnvtrs /genericinstaller +/.vs/config/applicationhost.config +/.vs/SEC VS2010/v14/.suo +/.vs/SEC VS2015/v14/.suo diff --git a/.vs/SEC VS2010/v14/.suo b/.vs/SEC VS2010/v14/.suo deleted file mode 100644 index e344b58bacf6fa557ad47a49957b2c75ab117649..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 363520 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í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 W=aLZYRcV3)?5VK9rU)*4?*9SutkLuU diff --git a/.vs/SEC VS2015/v14/.suo b/.vs/SEC VS2015/v14/.suo deleted file mode 100644 index daeb8e36ed94557dd892cdf62ddb41fa7d9fba25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 411136 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%0A6~9!EJ#CHY&+91ZK9quIg*m9W8ycD=$dadBCR zyQ^(Q1Ydu(?$K7Z+I%ab(%)Xo%82QntJzu^<vv^7KepBwX=sw1SF)RG<qGG@7$MJ( zkvyL!317=d=W@iG8V}1M)chXJYA25X7wM<rb7SopcLv^6>sIasu~6b|=kh*<UOYrJ zx5RM_5*A|m6zo^7LF0RO{%cM2$E(giehc==N-n9KH<PanzB)_|B=DbH19?W3nUw1X ztP;(aOa5v)P0TSqeBSG$H<eIrKHgVNW^AFEsT`Xg=@WB{k9>YjX_LucMnqRD=hl?l zh9!$0=a^uX*S~@*<v`3cKJs;J>Q7-mZ9F1dIj{5C0wJeR(t=W~sb;YtnX%e(KLM-4 zr+{N0GgjM-)rQVSu6N@UgztWEobyY&X2xnKNm@yf{IQ4rbN``IG%@aRZ*wcHjSQ87 zZ#3fyEsFJGmCl!g4Kpdl58(~?EY;J7+S;4Hwr?|58~j<LvD%wGciy!9_rCB$OJ08M zgPRY#^5o?#lB(qSHG7d%+?J2n^XmT0Ig0DY$wG0G1Uiade53R|BkUAj|JE7d{r~j+ zvXl6>(hi*MD0F#`r}q@T!)UaF(g~I+0TDs+6ZlFe^U(v%r|p5_vH2aL|H#Z!{=su* zk%6~WLW<q09swtx32V{Qmir{3UPM%%MgQwNk*~aV)}KSEwsFBLw4!=J*;_%tbN;Cw zLj@f$@H#O22wmYcP@F>nA5(mQi$VJ#KWRCCq`E)!@l*rzyk@6NC}TZJQ8&=S;%w6i z!V3vn<0<M_j($odK)c(i1SkyX6!s0Gqvf$XXiq+G)!PFG7HMsv9#AdVpJQZ)?v~aC z^Rbn;4qR1kUo7>kk%;t`$$FJO+IqaD3Go@?>D^qh6Ih>GU>KCvc9N{DX=(M8AO}5H zDRLZV=K}r-D%U}K0{bCID-qV&>UAuoI{2EyTWR6a;+ii=ToL%AQj751pSl!eSRUV( zlkJO~beEk($D=#2lC|toUj8JhZXPXPYs~x&`3P--Q=(PXcNXGZr|P@<Y{FIuyi=mz z<vVV!NBNs4>9F&vOFL>V=3<ySlM?7^HH-fadZy3kezq+B_4r*5HO=VcdJC(-cOJ*A zTw<*S$!7J9LR3JOXq1*QCYuzVpbt2GHADO$GLtYGI<;?Lv)et~nj&IKz8fqehI1cU zRz$O|deb8iQlv7*Z7zEn)xy1|M<A2p&!zo7Tl_&e1vNbaV*;{frKLTF%$tz^S||rr zhJI3X9g$#FpljsUV$wP8igYI>X~J3lF)LALRw_p&^O7cIF7H!lgY<X=nl#oJ--1On z@B9O)cRt$J`S|c3V{BILL&<YPw_1)rc?mgGn|;(uo~v@yyoB1Q=cDWa{c<_n)g%?Q z*=T-_M?P+~5t^O?W;6(wKrI#f#5n#^ZSAF~z2?x$$#+q$4DEa-O;3Spo&q?vUTrPR zHytJ{M&+wUsqIwGf;{F*o_Y3`=Y|igKIQ@OHt*Aac;$s|@wb%dYMs9~pvCH^wD&;r zX(JgaFRUeLXMn!-(zg`t!pa;+5t5!@U5$`kEKrQ~#d`@V&#a!+pD@cA_lfwor!NmG zeIhna?)~ZZ_Nd-_-oFHm64pLwE|GuJN`4$UX-24%(#Id@4ID{V;2Q>L=7xm5MT>q< zAka}PRQ7N7y&!;ts*Syx-vcbGwfr8c*EbuU4z;ZN%V{Lc4ym-zLvsV@7NpgU>soeV zcsPjU=@S>$lf5=1>9mo5zhoP3#E$?GTs-TmNILTY+KofhGwe`#8}OpoK=<KAF+p}( zSP~MX<;W`f0UKVL`np-#udstNufEI_)^Oy`tJM#6%P(X@*rnO|#<Aj@LVr@i7hKjT z&DY5_#!|f<E!d7_N#!j@$YPKE4DD-#<_ey}qjXh0OZrM-6O}^FUgk-%X7XGYE3E<e zwV;jxs&9h6!{-uSlfVb?Z;|_*v`F&_k1*xxV;U&<ULt<H_S$2T8?;gK^4z|UHGxqf zzm%U^8mC!Dk5aNVfinHlipWT~3pwh5@8x}kbX0rY@D_m`YQdVHZc}SNy_@P#-%r(H zKh+v5wTqrE9DjuQ%Rkq$LhPUw)ErVnJ+}P$qHC)K!RgnTg1YAk_u?<ORL-?=eiw8+ zMysfj>vc&dC{1m%o{xI6S}+5XJH0;4ux7Lr=}TUsNX#+=TTMGjE#Q6_4bDoI4=!uh z>UFd3CeFiX8RPuY;MIcWT(-y6>UZ;Nk=6X_<ob$*k|SpBVnN6X>UfeKlzkwz&E=gm zm1SE#n3=J_8pBOA65-sebd1|qIUU0)E!T?j5=w1oGuxe&)Vp%jyoB1Q=ObrnT413e z8d0@;%rE{88mICd9wePqDPyAAiciry%^}g3k8J9g1k(<v#||jxDCHKgOO9N6``>>2 z#`O;mzWt@Au6XP{za(@53)sxrkPz9JBz?jFX$%l^7?&i_2(4PR`{mZJzdU2S!uqvg za>Y-#^-H~n(-i>>8<~S5UETE8PQR^!hyDt}>|4VS(W^cer9291&(-xrRGAbfj9A86 z_A<2^1Eimy4Qm-J(n>1^ViE>v1SRXtd#IFJuhr+F^j>q>XAm37tb;MKp-f0tnofdB znzT$TT6v^6C)}Da{W{C)`Y&dqZ(L_Nf9Y&3?aK~nMW0W4U<Pp>>p%D6QcZh-`k4#O zD*bXPk4wL`R_Xkb0&0zPF6*9Z_1o0q!v0bo8(x_SQ)`}DcrLKGb9t-|a*41ES21eI zjO&3nO6^SF&BB+M+E11Zsa%6#YCnlNoBTlM+x%Eo4q-KI*ZiXNroIncJLm8k(f3u; ze%*Uyrf<czCoX*a?0b4n{NoF!{1>^<LHo6h_RaKqWN`m)`0F8KS6-5h9g;_3lKf{f zbRXw_*M81)1l-qp?eeV^+OYmPGZNm*`RNf3&)cbBRW2g~H6tJ1Y4pFAo@=UFXG7n$ zochd0qx8Ym=K;<=R;%xTa{p6Mu~LRI*nQxw9hW?s5IYekd{KI%y4Pzh@Al@>wzUu> zYOfG2^HIuxHr1SRe`U0*z5?`kVb|;5&ozf;UNoG8+*l-%sT<u*=WbicHx(YN$aBH$ z$y#C&Yw0w0&<<%1%d4pyRo9KqM{ki@E7sHnGq31!Jsdb1<N^k#0ZScn-IUw<l5`Kz zpOqTB2yr9u&_KqvG2-&F6aiT)N-8oL6{W;Q<(?i~CaMKZQx{x{DVqrh)sAbBOP~wI zqjxT^z`5rMYYZQzM;A;C%H*e+eL}gWmt)0BpHN;xO=mb?s9xo$xs6n9)bo+IF+E|K z<e~;|Q!_q)J#-q;j05k_4=sw?**R(%apasByY3B84w9b3wyke@*DH^=UBC3^mVe!z z-Sr41kbo^<2hqrxu?1*5SB2$UfR@5fGDVyulFB>fc7f=cl@;galwdyHUb6L%s>v+| zhfFe8(!~<`3y<ajNg_n95&nS{0GiNRR)9W9#w@{{^E&0{->9`AKLLlgi2tAx*!`fI z$UHHqkaD^2X2}l~_DHpo@{AY2MZ65SF8IK*yes8rFmgR|y&7Qj92^hJ`~+WH7Li`+ z?Q(jmuA$avqX1rEt?+S`+CT;yewWpXJh$w0lVRGQut*5P8euX06@(9vo>34kBW%)2 zZ-wZ&kNmkkf`$Hu=r=%DF48U7>BmCP{8Y|OS7G`KuWv711?Yc>zPaesk$sYFbd0o? z@a)Ob-vZ47JFiFH>Kema#aN*$!HGnP$$U*#f;G-v$rDae8~q0i??);70M8jURUa4x z9Hi}aQD5CO+cx@Zp*h99pacOAJ@L~OAY!L-fCW76@jOVS!;<HHE0w7Qft<9vn#-C5 zsTetJkRyp>9DC7Q8#@ku?rbmgQwe0dK}n`vQQsAEy%{U9aBMfX&}`|m090xawfg)4 z*N)H+Fs_F<f_4eRsO3^u*IkxuAeDWvQtl??{w~noPD$9NKzI##oUBsjEZk*TwMzbm z){1phsR`vYtd<sYhweE9Zki2!Z9P_$p{5yKxn)e5Z&3>*n^n)kbw^sps0G_MX05Fi zFW*jC*%;5YoAv<s0sK{-sLA|AlzZ-MT8WntowLzzfOrcJ(K&D?A&L74OLVc7?)&J< zFVRA;^wdrzz`Ho4@}Q-NP}@hfG48VYeGaF}&%ya<6WhzVhU(b9l~%^g(HN{lxjqbB z%zVK_l^S1;tK=ib3}DpFzZ2y&NNt2Aod%Qp=592ad?cl_+L#4Vs~!t5op1buF`1o1 zq|Jj5Epmh+8|@%bLgOs)ocF11?``u#r+E392Yj!5dr9b{6Qj0^{`IUs9UyfFbc(~Y zCuduy2%QPEh~VBK%V%khs_W`1OIyiTVSw}v>}>82U-HQc-{Z&}9VPFxk)Fu#|Apsc zOmSYa+PpCij9w7t!s+FeJ&e$v8K6AfkzyY1@+^<d*k`C>;cKjCeFHvQ=r=$R?IJE1 zc@o!<w{}VAbegbIlCu3I>*AS(v_vaOZ?ciJN&(`E`JL^=?@Ua_!lRDz>?Yhp7o0kH zs9}1$Ani@a^u2UFKs6w{aGKs-Nm|VgYN3z%)J<)5O1)yIr=5mQm+?EGlS*1C6)OJO zME~a^Cc-R+=?5A(59t}&>8hLhdZ9EL8(q01Da1}X(v_3f9@({5cI}(IcG6p{yp!Y< zr|jA#yLK06r}z)chdw1;J7#o%e&^!MVXd_kHQzfWj0EZj5BqAT+hc6tCZM}7#|BK7 z%+G!g5}m-w-@yAQznsdex28?Q&g+2%g5?+I=OlN~S_f@Xwx~tEW;Jo&huO$f&c{_d zD+n)zS=57<fPdt<#(6#GHCRt&v;=DA+S)wTu1}XaTY9*1-kRw{)NN4ZYh8<er?lsr zS;A22et^yJ!JeLepS|iDEO@{HCQNTtip|ynnfdG8Q43o0MUzo$jJ>onr<cxFUy(*- z2WnP0aVn~12hJ}Kvsx>%`88?PblRW*Q$?MlOr_?LuM|9GKFIP&D)>l5iFZs(8W~uO zx&H?u52w-w!>0h}#>6JM)N&eME=`qk&M^yoWnaNvriDwT+A8}Bj)7@JaB>yreK9Vq z33<zMPqKyJ(+@rY^DvirgsJ@cIj=)Qk;c+2)P=26cwE%ZRflmY$GC8K_xI80<vY|$ zoI`aVv~vDmK5Ljotn_B3+uRPs>2@U!<R#|Qs5uR)K5AY<ZPd+A)#WQ+ZG`iSLz{|E zQJaDJD<zsS0F7qDhSd<-&8h5qS}p16L?NGzrdGD}6b4es*!sjoUuIV#y=K7X9CQzQ z2JQB^+ZJ_355q!T)>UXr<Tv$(#`B4EE}2PNr5nA8d_I{T%Av^nS8q<H<C!sj?}A<1 zxBH{9UGzMhOr+wAZ$6}VB9~8$SOb|<DiO<5EjepjBAv)4W7c3&x)IGz>~LIkQL$ie zK1*+}Y#GVLGTBseU}ejuL>8^DaanEnS=kaOr1FJqVolZ2csx;e%-w4DIb8{x*LU&C zi=>`gd#G#Cp+sjiO@Buc>AbbS-P)f^WO@Hrwp1@z>WI_oq941{VV}A$PW!;1)9Y@H z#+|LMgwuWT#ZcV8V=?_X6o1SKs+b^5%MnGOF9~EuMx)t8cFEdkZn!tOCqaJeOHL}T zmF{djnU1C=%g~F$J9uotp}4405^MLU?a85ZCYuOEa|vP5qN7$_uzFPwmKv?sct<ps zr-cy@rSsW|3&>Uh%Y9z*ng2oevUb<frviU{TH-Um{@n#&f`wNfioJHt()YLDe&k<# zGHrQKGS%D=wSV{6JKqd_<r}M)b*(sj8Om||uNIfD#j6%|6b(PPocuI$PfuTXgA|4& z?5AIS+V@JCTFaP`17#Dn6p<w47)cxO^hF*rLAYkt`w%0`6Kq+6aQ&?Jg?am?B(I6N zFgH0VbIsg<6D-*9CYg<O%Wy~OeD&E_E36Nd5jaLhoiq}GV`M){-VpjCa76MV_LA*h zBz*=>vak@=@sPdOMprJf`-^mKp}(T!1ArJP#M`*YW^bdbR`NskktN?(GXh5r0T->t z%cus#@8DhdGNV-wUE8I$T=ZY0`z-PbQ9c%G!AU<h`o$Ie1@N9tQ>&#li2N^cdeb#a zcvQJ35Gyt!_2tGH$D_)=#3cO;zbgpW&U%lM1YxX9;IEI&dT$U}lcuaeIPE-7TJYJy z@EkroYbks)aPs?Hn4#UoFJcwpbaq77qF1-hI^1>(RV5}<{*z?d`7Zxq&lDtYh9qHI z#zW6MzC|={irOEfJyN1b{JS8`l^(HvV(-p&kAQE>B_HaP^m+6C@tY4kx9GvUAL#td z&hP!rTQ^_*?5!XD#DD$hi!XG2`Oc>-zgcqE`FH>BiOWCie{$WOi@(EV<9ogqJfZE0 zji(*4<?nBHeCniIPCml=#@ahi`Oe=z^7vP-xaYXRp#w)a!w<jNGv58F;EPY*{Kx0^ z{l5o8_l10rUw6>&^!h$X17m*<r+<H5^z7wdIKR8&%P+pf<!4z5VKPxR%F6oMxqrn; zPx2S=>=UPKIhy|A7a#sez%%8T@escXXL*vdj}$h0?!0OH?|tEimc0Dh2R9#fC9eqe zD9Zmy{!DqSo&4D^y3P$pei>Q&=nYRjvt|D|?~^}MDjej`&RqPQ>w|Z_wC?6No=<%L z)Q5ZU49b9^<GNoy=kyaVyzj0%R=o3vpB*?5U-OekUj1pu=l6W&o1c7e+gkMX-tSmH zZhiK9q3hn|zW<Mp-@QRz?`uyy_4<xKeKmBe<?DO@>9Gsf@p^yw<C~w``{Tdty62;B zoSC?1$qD~*o&SM1-@2*o+DjL2-v8~@7Swz2mHmbH{P~{lFRc9Hvp@fzZ*|G*RVFu= zKfC3*;RCCWc|g3)`}7}Pd7)dBKRfE0r6;cbn-|u9{q3XP@o$IT{WbYB<yfIV!UtuP z<Ceeo>z->|S474-zJAJS?@X_KBaLUL;l2AW|BU#(m%1PS^VY7>mu|cK=u3{i>V5f3 z+VARr`>c(t0xvB+H*?cpY&w4Zwa@e&x9{8^eD&RD-m&Gsm%F?6pMB?x&u=~Wr}uv7 zo!8%zI3)Pk_-Fs>h`jGu%is3gaM`W-_Q&qL_md~*p8v+`V|=e(azRh%+K>P6nB%_u zcxtuH{;mJL;hSCG`0m)p?%4P2cUPak@7H&|c)57>FMhrzdH&Ddzu~N}J^sS>o7aEv z+jksy?v022{Gwz3{qeEPW&WGRf4}3<bKmou$X}nn_&fXWTYulv_k3slxBmCoOP)RO z`9D1VcjDL1zwfB!pBugBl3(V&5PiA7>-O%&FCFk)`H|?4Z%?iK=5NJMZn)#pq0nOw zC(gP3xt~6{uJe)4{$}Ec<Oxsb*8j5bs~cWgd+Wx-mwfn^Yc7~@9&+a8$w&Q<ZT$0| zPfT34Y;WQ8vtBD~Z@=c#eX9qb{?d}YzdpP0xz|>7T>ZOy{`l0Rg%4fzdS~>?+wQyY z*57?>Z1W>m9d+G@{&CamhkPJ(^}YK}`!9X?>h3#l86Tm2TQ9znaDa0Ey!!rM+V1^_ zANsHO>x*wYEqLBNf4F=3bzd4jqx-;fhgjW*J+(%LZ{EMVu=ivCXF2J>9nY*?`-x-z z?v~qE{_4|M<4T+<UsuZa@eIGpwU2tHz*lACmbal1U;PPfDA%979wqINKU0od{!B?@ z<j<7rP5w+qizL{}pDFi&{F!o1%AYCMv;3KIEy|xM_pSVya!t#hDfc&?;a7>@G55-~ z#>*;k9m*>AH7~2AHz=#bAt(#Hr=$l;+^EEds7r~%Q5QaVrri6yovG-6l767B+aEmc z(&yt_*Il{t$*!ZjZ<6MWx1+?dyq%>FeEQTko!-EeZ(Kk8wNH0<E9+3wFtl^^V?TNN z`Wug1_wmH*8$bNyF9P!MC=+Vo8GhB~c<6zvKL7mReX;xg|NHNUdj@Ymm)C<ndv4qM z#QP>bD}H?Y={ASE)h2&7xPH@$N3Z;mc*jkmV`9aUPsyJheX;$LKVSBu|LX7E{_KxF zcmK8WXPsj|_dNT+=i5GX|Er-7d^LTO{Mmp0!#{pw*;U&wytd_%(~r3JtGCFX4J|wV zipzeM?D(sre)iI-hrce-YV;AGue_1?;}5TO2Ojyz{cnEfm5&ed_b^Z6Ke^&s=h=^n zUt0Cq_ulyBN8aYo@ZLiod-2(Q&wao1&OL`aj=KIoH_B=19iE?!tUB=vZ6Ch%vGmsa z+9t<<I+eH-b>dy+JIeZ%{X|_#x`w*&tK=_GR!L)cStagAStWhvWtBV_%KpuD&z#+x zIH~K2BQ}2_aoD%7l+VM*u0C}C&37EueqHyMp1JSMw{Ao|_~1Py4VFJs(p&j6C2zs| zrsRLnhLTT^*Q4Ya<j<7!TmJ0j{9B(2eC_$;9ymq##52dd{cZjX<5GSqp1~9bOU-uD zTDnLhS<1YElilJJA@<5^Z@;Ys{iEM~=DKy)J%8K{$5E5-ea4SwFuW;0b+iv%OioZD zm6`8>5`E5m50r#q=6j&rT3UJl(dH`uw=RDBAK$p%`<tKdoN|pQ3cTw6Psc|dx}oE1 zhrZH!>Tef6aGc_!D6amsrEp=r?LWF`dL?JB3+*EdMu0T5h}>+E;xrLy$25_M2ey#* zg~e``^e^0pGc8#(k)tIt>DO7hXC)01GRuz(|9Zl^+d6*r(Z1}a+qN9z-x9@Sy{-5t zbIjjp!1(LwKm0Ar^UtunU&mzsdF4sB|1tWFU;IP<=z%pzRX90@y9o&$Nv_}zpDGBy zCO7MQ&k%$kKO+b?ye0^Jq=|U-*+Yb1rv>3<-(ulBvhKfo%VOaw3J1OKbBl%V)4}Lh zJ+xTJQf&R9-(4&uN%8X8R~HLw>HnhtSS-9QYe(&rkCMMnE&n<6mOdsPY+w$e!bu^? zl^+{LB$Z^Awn>ccEK+*_`gImBkMsm-dJAr=X$mCB&~+Q#L+H*Zy{}U6r}VzE;3)_& z1$pct6E$i|kYTT#zKK+a;^F%!5eIT{5Xb|<8LVOXx<-s`l)Ar*{tij|l-#&Vp$e5R z<fy7C3LG1t%CM0!GW2heP;u+j06j;L91?1#DrU0gV?FZ^z^F{C=J{7EsF>oK^Dlq+ z&b2gVBu>RK8jFOouV*1Nyr1TwPnr=VwSXar1rb864AT(iUSq*!a0^FzyI66x$$>7x zuy%oyyQDN+?WKI54zfGDCHpTjdcwkt99gh`!`2P!Gc3_QT7<~I#qPo44BIr`wNXit zu4-kQth9BziJ~~Eb~n{;qifi@{bbcf1~0_U2k9Gn;-O)})(xw8fZ9QCMCn(Q+SS)8 ztm+}E-$OqxstY!J&__{f6*aR~opgnJAu0o_zLV~=Sqf1<v{~3oGwi1p0#p<JhN&)$ ztChx%QG+{X)_gXLm|@HfEc!O;CGMhSAAQ$1Rxj0!yr5`@`7mI{G0SN68wSu{7JsOQ zN=m#$_1N)lLa~T^#+fw{!dA#5q0BzV;+Rn)M?csqj9UNBdgg7Bp&R#k_Pp`hTjxD> z7l@yN;dq<Zjr<l-+B6Ig#%Vr>=x3a<U)_Yya>cOTUaB5uD8Gc=^3)x;BBZHFgk<r= z$o#Mt?yMgo1_%jd(F71J3+ezah)|LebUIBSuufj5`Vaf!Z$G!=vRl9Y!kW=lL8n^R z6T(vY?7$-iYe5ifJc-L7VU%;EeghXog>wmmOm1!Eqr-bBMMxW!C|(@fD@2jy7kkZ1 zowG@60;>aS)K0(fVnJSC<ongP>caFs@&dz0#!oe(1?*a6u|-y3_^BXAA6j?N74xA% zyKL37yuz)TTV>gUjcm0M-z6jaQLpb3<{Nt-Ih=t%;3wpfW*!i*)7;}8JeM5wi!0zF z+(pi3tOdY6tQi8#cZuO<<ctP}0b~R8A3jrP6`6@y)@b-q0kdL-fr_9#WHJU`L>6hS ztL-mnHy~Fv)|N4?D&fxJHqpnavNp3dXk=gHu-D!X1__qE8#@gY8gmUQ%U})4hwMMt zm7ulA9*x;+CD?<;fX1T?){s_6u+baYsuB_`d(c!+VEMa^?1vl*+WNpC;H5bQ-SyF| zhG~UcXnrxHEKe!+9n0E{bq{K6qdUl(jvWAQAVAN7i}gXk$W|MHfRX*E7XsWT(n~PF zd}6)Z=s%-EercTp^MR)X$16&uK<~h-*$Gm9`m3GKV|&2JRvUqUk^QI_0+1-c^Ll9| zV@0r44xR$^fN|7-3h)u=5hw+AL71L~=^A_i@Q}VeU}UR}K)}d;)C&QTX3|4*iJ7#~ zY6eBd?Ba^eG4=)I8YXoC|GNkad8jn_F;E4(uMYx7w%P~;jO<6f5CGqWdBpnn(M*C4 z;H(UA#h7Vu%76eQV940WX$|U(Qj88@?;u|_;{K*SNrUl3Mz*SifOcMlVMHVQB8P(Z zesGEm3CcyY37)8=&tQ825<Tz|;DnvQxMM&L6av^NOwa;<tQ8V$^q@ILwW@@KHhzTh zL`L>Q4h3y}U=V;bh@Ai~8Im5yJY1s$xd8Vdseor?+9t+Fff4{K;Z1!IFtXJ~AYf!a z>V*J!O%|5|?Gx!LN{T|#<C03C?AA$}C8djsE?oV=@u;mlVXq*Z+)0&WCACN=DMI3; z<6&nQld_`PqtiqxhkTHE>R_HY0(Rm{OnN^-x*X(pu?8e9>L_VtGE_KAuW+Lk^eu9o zD0|_YN-b4ohgnflY3E3z165SM*xae0hfwh#@)OG56!i}yE4~q=@+0MMtfR4xP$|cx z?HgSkFTSy?lM;b!7uHK4fdUnX!a;Xn0T`zNwj#GB6zOt35Y$jmG8O1QrW(4ll4ZTv zmtMNbyU1>x+)KTe*8~2r>LX9JN8pF6yk(!PaA_|A0(O6<_TElA)<%ja)!RoynU$C9 z6o|<agqB_!e<x|SDuD&lB>=y&y3Ud1sohMojOD<JpV});BZBYQ%mQd3nj!YMMQ$C1 zmT;6-TZrC<f*$pd%|u?L+@!+lSjIALS9Up9Y~*-0B`pMT3>Ow5K~2Bs#5~Et#MFMI z1}-W6N;*wIw39GmoPMy9duayY$q(2H!ue{isHs7-)TbdDI2$f|`7CWZTh&2$)CWP> zTdhac2LWYg-Gji(=V==RQ>#`?JJx!cwsq=>XRp-RXS}?q-T~ufjl*T_ps><K@erkd z6!&kUc~JeRALb%ozi3QlW>wcYFo>=tf)^I)f2D5tU{`6LWE3XUgG_A&+FC42TZ=@` z5|Y7z@JekmNBIiWNL+v_KDin(qDR%J4#he!+{)3Egh{KN$Wuuf1)&B~D52aA>K-9+ z<N@Oi0paqKezp+CLXl-9tjq|S95-W#=gE<-+-n8YuSJ2OkL@EI26D&`9HnF=i<ln( z{S#hVG&7Di+VM?9BFE~;8;7IS!irYnZDPbB@IwMHLS6d?2(O=B!i#GW_Uj}9GC-o} zAnjI&r4U#W($xTQBur_K;9w|eV08CVdB#RUjRO}PCt0GTPlu3wW}SHMft~B`{n01> zYU5jv-p}s$3f{q`Prmi!vX0N(6@TDk%YN_cAbNGiQE!SXZur*P2Vc1Vdneqp`Irvj z=x0tz{ogxI@4o5ntN-VFPkttZw>yMiEj{xGUpoEtwnu*P^1ibNMj%em-RHml$1T^K z_E_i(=l?Kv;7{Z4V|TT;KV5CX9RnU#)!0$&3!H@4_@b=l{iLmZ<n8Dr?1b|`lLQU< z8J*1P3YR+N*`UUqz@<&2!Q^NoTWv&&GqNA`N^v;j401F((G0o@oQDQ~0j5`lFad7~ z=#pUHh1?8J0(f-53g@6Lj}t=m$<ao(+6V-U>_@#2!2C0>X0FMA%^F%%K!Dj%p~-O3 zOhdm1TPn*F0VIkNcwc*N2)+l5Yqb#w7&-cSA%K}hb`9uIVYh^z4s@o_XJd}p6(HfI z6^|X_qF?L@+<~ACuLr&MH6vSX1Oi6(qkafrHNuk$+EL&h><B0Q0s>BH#-UGzj|ZLt zI?%{7Eh_v%p#9eF(ZsSTs?jJ=!MsGNmI!Cj|I4Tqqx$v%qJPHLXr*&w>OY&>xRF^2 zYH(RB5I?OiGY()3O(LiYXb@-(tbC0Az#9X*5D);?v(R^VdceyM=Z51=mL*3o{V}f9 zMj&A1=<9_5s13XYV9jQ>Q|Q!jhj9SRUlO(qc49cZ3YeD_ynH}?fHUnnIRGPDZ3F^F z_M=`1z={o;0*(q42sGY9tDFf?;I!DjV1BIN1z^E|HJnj@CS>XLuradLMj&8hKk9`5 z&i@4^2j2^CML+;Jhj|YJ^8f;{rQ$iRfS2Iw3yK9R6zG*+d!CW4HUa@7`%y0h;41@3 z0#-SOg@9$?4-PB@uRd^Iz&Ee~0|Kyo!w&(zq2Rtm`m1*j7};tg5HPYI^+EtrApFXh zT@OA5Hkw)RUVs4R7MO|Ul7mbLzXHGudj_+Qoq%%sD6x^PHUa@7`%y0hu$F;Gm{ft4 z4{reu0qg*9K*0Wx0RbP-WbjLX1GqVO-0GFZjcm0M2pHLqdLaNQ0_zyOC5v%D+yvx1 zhK0~a;2ub=z(?@tU@<G8#=uyR(e-*A8`-K70@^)Wm~3KXU*u5G-Vf&A0Zs@$t56kV zZ?f1K_>uz>IByhG8h#MW{~I!(pYDPRz}FJ6z)sSKjf`wn2?=f9EzHBl$bQJ7psf!K z0+3CBi9lr`XTzT?K>wLc4*weFVZ-Pyq5@!G22}u81b=Ys2E9Cyk*ziY0VDfSF9hr~ zi-^+#E&`sx9An*M-uVmz2Z8$pWq<?+2w|6iQ^KAAy!7n>BU^0*0!H?uUI@Tn6?{JU zOy<?fBKa6k1epzVm`TQ<*N_TO64D#EYUZ!0mm(Y4Y9kOZvLE$A0Ng0(F{Cj_UzlS= zqJa8B^8;MZC^EiT=o$35&>%rCi>L4#*G`cc6*RKdMj&8hKk9`5leD1WW}e@ecjz4$ z7V^-2$O_<25f#Mg0Fx<!jQ~0DQ2MZtk*ziY0VDfSF9d)~z*mARMSsBg!y3o9QkdKs z1b~gOFF>&o>wxc|8-N$0+Vnxd$W|MHfRX*E7Xq;RU{-;PAnk(cA{v5eC*T3jBi}%c zfsYWM1$e<j9DFR^4d{e`k*ziY0VDfSF9bk=nP!4v6hHvdF7vpDWDM;Dcz*Co;Dtc1 zAtxikp1}c>T;CorveiZ)U}Qh)g#hpks43PzxFXCk<Y3G;xKaE90&qQMegwc#%)$<> zDI$SH`mPTGMz-1r1dQxQy%2zY4f6}jGw=^)8$K9}5+k<+(+{BpgAcP9upATEH{hN0 z?g1lPZ3F^F_M=`1zybh#&in&_aiA{&WyT(W9SqbNyMjpuuxdgk!0G|l3TYZPY<+vc z$W|MHfRX*E7Xpw;n4OGS9x?CG&oOTqW}#s+G3K7h#Gn+|5x_=(0b;uKLBPmX8-ak4 z{iqiLkZ_@sfEO6kO@luGRM;MX77p?NveV!SdLnR0pcIhXK!x!{9|VkSwGjvy*^hc5 z0NDx{h)H2s<$wU_E2G4iW5%H}i3}bS@Z)1S8lV#bHqr|LBU^0*0!H?uUI;*^z-$1p zhXMOz)ic{LY+%qsgE}*t24I1;4@v<^0a^?A9q84}8QE$h5HPYI^+N!b8sHsR?qL-G zBtT!W2Vg~p?H+U(QUb1khp=`awV@>TgnpUWxK<m3fN}k(7Xp}fX8(fK61WHM{W!Ud z(E*m3iRt0+6ciX*2*|?Vg5YPN-*ec=RvUqUk^QI_0$9!PhJbYjnr3jLz&wl&K<kN> zk7sNTKz9UPD)TkMeT+h{L}p~GjX=Q2e$)#AcuT<Mg;|8%k$I+q&%_=89)d;`*dBZ* zC;~7K0@;9z;Moe@gx<U`Mz-1r1dQxQy$}Ew3SJ192NEziesGvfHws+^C<4<?fFi(i z6qEwiN<hd#Ww9^xaid1I+6V-U>_@#2fSnQEqgcn_Y_JD_*BKT9eq!_&6bqaZ%7Sjd zV+CIKEU%T`_yr?dZ3F^F_M=`1VBG_gl>D{8-LtG1;5MPT#vTAq1XwU#HuG|U?Gj@E zPp5AW7};tg5HPYI^+JGYrs0JM9UCwXt{6=Q2MP)d><_*NPnlf?S)Jgg0{DO`Xs5(H zTOlZmF|8^gpxs}mWHB|WFLEeo?+5c*VLrLg2!YcC6#!jeb}?9NuuIrpfIJ3E8u(OD zXV7t2(!e+A)ejljsuB{~e0G@Mkdgh6LqS^~7z7Z-0ltT4j08QvUSJwJ@T7nWRxZ;{ zz)l0p04M^}6v3*aS36;3tBpXw$bQrd0dV-Rv|u%W>cT6+Ik^XL4G2J11|Gr{ytc4o zn1u$qYy4`Z2Mik-*{Tu(+OYt`Mn?8U4h8M~V0!^L20vKQ&=+AZKx+XU1X~X10fPk7 z9Rc@%UVx_s1c0sZqZJZt^hUO-goHLsz_5{#{g6XJTOSw%n4X7mLzq?QqrrzV{~_QY z++$RmQD#{9L6>><NM^y&2LU5nZ3F^F_M=`10JlIp4U7++1J*k<7SLB<4`6=)0^mUz z1i-N}n-2B^U<XNA9|VkSwGjvy*^hc50KZ(=3czc!%!JTYvuHl%#R91S5Mk5;d>nfY zUKX+(c7$GCsgbQV0s$lYQ7;7Gr;fb{iVPb7v=p#~F**P$415G0h<R2(i^?Ng;rRvH z0a;n=9$>hS`Q+hU_=urZ@K+r7!IzBb&9O4ToiUyb95JqtR}}AQr#_tjLw(FT#WEIv z(_ma5!@TGTGysej$33)&zOh&eNUGXx<g8WTar68SU{vgIK$FcPRv6|65M^G0Sc~90 zv}06GNdc*9=YIgtF<u6GAm9`8{0DaGL?gHhIvP+#V2DOfzo-{?VI4t#$}G%~9I#g* zMPRjox5YhRF7x~c`Kc31xNDakxJCt3f!Pia^$MB+35{{C`cA-*!(Mwo*uFRN1OzQv zr`hO@Y*h&fZSn(?VT|mD917a{z%ei2&-CPo^n?_NUCA^m=J^lMa6q=e{(wdglAHSJ z7xhAb^F*+Cvur?2UkG^xoHg?{z+ccors+jA7M_8tHqU?HR?d1MVB`r1+Od$4tu}&% zjO<6f5P)wzw75)D3z^+K{{j3DFaYce&}YDs#^MCQVKd85<>?poLI8Xh^CbpX0PGLm z&^-U4z8R21K`&1P><^s^^jWZ8aCw%k2FSIb4A7`!Z7}YbS-s8kAK<gc^0q;nA%}t< zo(S>~qxsOHLx;=u9@D5m{|~5uUpCKw!1}|QWLzZt!{n!5)C&P-^M=j_nk}q%rmbZV zKyE4)jRLI~cp~`VW4AyH0bK#KKH!$L>a@621h^a1Y9kcc$kEpe0n8<QZI~AgxM1)J zu=Fvm6xtf52LkTFQ_w5;Y9hxXY#z|J>GgdwveiZ)U}Qh)g#h!sWKmTt7J^CaOh(5{ z0~X8!6FUS}J(kr3`Zs8Up|jL(X=QuB$W|MHfRX*E7XrZg!1Byy2l@+b8H<F2^aVTv z2*ADyjTQ9H*aKMqutR}T11kEkkddu60s$lYQ7;5A^UyBCAD4MN;fm!kMD8B0jfTbo z5Mb6kV1D?VfjU5^p*K^Hk*ziY0VDfSF9cvM0Z#?XHatEU-vdm8Ji4&=fF?6<5YS}s zuCN4xD!^wDKiC~w_W;vMu^Qk%3yB959vF?$dPs_(_t<av58A|hLa{TUO+myGycD(L zz9T7jt|(>aO-ctc1?Y%@p<<@q6Y0Nv_BtsC{WxW$jSDSw9#Bd;kY-Rifd|KPe?aI6 zWYW76*?c0K>mD3T#u7G9B+%U{#^dej-r?j3zGl+tL@eKv&5Tc2W22*c_g?1pJG~D2 zv9vmD4vXC$v|GGhkIiDEPuS~mdwfC1zW-emJl{q?mj(Pjd(anjTY^4Mz~TydLKe~O zb6diq!`<o@-8Qe?xo>YS8;kU|Yw1r}_pG~P<D=Qk&b@*2BmFrVM#LYA<}>L?FcT|` zB+~g@q%E0WTNsG+CR3%sMzl94AO0{6K4=TsMR%ap;&-}zG#r=R;`6uKEKX;u+vjjR z<`;w$2nr_(FY*bndwouOtLU&eLN<@Z<qeA#U%)O}0`7p<-|F|%Y`XUCO{R1CXeyP+ zMtVbm?d^g7?QWaw(mIx`YoJq9yS+1!9ZGa&;)PVgIyRo80ft3qAn3G*EIzNtZ*jSt z)Lp;VZn1k??KW4)8x#Zfeb4j3IbB|_+ZOU#XfQ5|E8y{1{2~p`;jjf-Ll|spXy4v; z`QTc56Zyg@#>TGd9hzFDp_ptyIXxr#J|9uY>j^q(4lF^xFKBVuJz<O26LMQZE@!aS z=M+Oud$?>wv9*cRXlG}nw|HT|c*?7+7f5&UA&HJ~$m0sxEq;&7i4AMBh_s4n!-}?m z&lV1c1GEKKcP4YOa59z1U4ZS>J(6or=X+^i`ZJmQKs1}Sb|eR~(QGo2iv*+jXlOh( z98C`;tbt565!so`r0rJxr8VTUiLHL8=&{f`cUoLFo6jOTyk1Ml5e|EOAzy1)wC(#X z?_Sv6>JE#3r^PE0ns7OtZi~Ow=dg%kI2dq;9JIe$t6~VdQw?v}oz_@RLJYC<BLxXD z3?wAP5T8U0L&^LwA%<Ks6`RC@5@IO3lacUZWVA5A-=u0|iCiv|r6y>sVr#(Ta*1Ax zE#wj{ru<jG^ed-adUPO0N<i9m;zqXG2<K&FKk9{mkrI%02pHLFBM>mMAN4}ONC`+g z1dMF85eOLBk9r}%Bp_FqSVOP3m56Jr%i(p}+^$xSYu_&>X`MUZ@&`j9OV~q9qs#4g zTYN4@keDV<An5Y@TsD_jmDUkEuF4}DOzQ@d>3B9Vnu^8}gPH7z8kwsy%vbp^T|Rrr z6%LYg;BpdM=nS|lUgC}|#PAaf8S*<roayfi1$HI#EuGQP(PVn4B@|EQGueph-3Er4 zPsGs5NU@a!Yen_0j^RGShg%neRa;(3#4IDxWLjcK0;8j$bZk<531mh_NW=*R<Ts15 z*%abQz#%#u`|h2gexrZs-FcGA<UP&lnBmXON>8OeTeFGWxK?>+@2`s;HT6G@YrpEn zz_X+OVL5RTKMFf2bUio;1LyL<`T&n!Xnj~lCLV18OA%sW;NOhQ9q{?rs&z6_|D#Gx zDl|aq8W$3*NGUXwjgGWPLSxH0<KEVDBb~`uHj~Q?=36!;bA@QCr8i%QCo?T}m(>>8 z6o^Fgsgc20B$<w-3h@NK#xf&T4Vo2(y8fLb1gFpEb+}154>&^(BBVC2#YdVai^oPZ z*B=ZzTEiX{LMl@l$hA$Ax2?Me8WI~lWSW5f=Y;vK|1nhyq;s5M)j}1X%VaH0)>5gv zGg(WSO0LSjX*$;OvSt#h;;GbFmZYtOs+P10NdAoz_vRQWF$!RRbci#*Z>|BxlR44? zOcc_|SSFrGM@JGloeF{7MI#_ggZM}`Ld75U#AYK4L~kZl$R{)D3-+oi07x3Mx%^(y z?<M1a+e2($I20zfFA%c09S(=f<sy4pD;d-Nqq*j}Q9Z=oFsW%$^-gsll^h+&M6>Zw zK=TB@$tQRoS$9q2_Eg4gCW8HJW?^s2nYGN5$w|w4@hUS41e%MdhDem9{p<+X?Ct=0 zX9PTs0JHsiy#Z&@_G`D>Y%brv|K=cV4#KOBFXM?^awyFi4oyxfiv(fOBH{h<%VNiU zW9Y(p?XmH0!9S_4_5?+T&*mrkDQV|zJ{x(YxXC7A4+b3GfZO2-lhcMjn$1Ji3@;jJ zc=|Fu(QGuI7|+WT@o=Oe-+(+RaioHSR4|_zEf$RM3tGatLMk6k=hK-y=~YKkI=Cjk zrMK^VJA8=}-T_<dpquOnaT|H0*y9dMH0p`dVvgBdgFc_l>2mJ#f0(c4#?|uT=qOwr zA|07nG!^MfjEqM9a(B+*^odp)gI4XZKU<{Db#+K;H8Yay$rRfhj5=d+r#%4=odLiw zYVi$Bdgvs)@o3DxFF3DP^C=}KDW!MJB>{b|U?mJ%s#E58HN(}fj3ykOXzPH@l5o1n z83tZ6zSj7l#hr)_I(@E0!rAJx+H8ck?R!bjSoS$tSagUWtS-C9z69sE!tThD`_O8F zU){b(4ZW;+?#Z%SW$xuu{~r1xIb_aDN2e+x{JVP!1KjtL%mb5-QhIk~6$j18>{PFH zW!OAUZ<UoXFu62V9NbOUr_*n6f#`0J50gj1M&?lfQI%-_R-IV7+IpDDnzgP1r`zGK zvI>?@u7Yz9TIu>&tb*n-#~-V-<F`!-M!6qDb$<Y(>d^|K8XNV_<2j6$9sDX?F9V1s zS?9VqxY<+3A7AMt(yt3-T3t`3r&i72Z1s4m?6^G~n!>V!*V6S;fU{|I|3^=58Oa?b zqziVF?@I1BC8ri+YB{)=D{d9~T<I%+Myx76dy|{|-5bYj>)VDhB7M4g`-emQLv-cG zS8+o?+=~B$-c`O~T!>q`dN<nI#ca+MYu$hw8`B&5?NmB2zH@B1ck70J+*}t64R4E$ ziDEF<Nnc5@jm39g+J+Z`!QTFj{!PK*o~@3JqL^Q?VsJ3mvn|mc2)lw?cWo_nw2pO$ zCcM=0)<DnBu@(KpV<XATrR&7DwvFxWU4ae$32{6phC`0dv9YbO_R#Q7yT`XP;3{+s zjfMRi`iH_}Vl1~S9L@~c#Ierd5m#GutZiaLd%rj&cK7Y}`_>2AMbB1$zni{!SMBau z(LU6_Hrd{_XS03x*1=KH9U59SG`49^x4*Af3=Fl6wIw$6jD&`Vh8#oUhM{0)(7#c% zZS8VKeOm&Z!EM1^;>h@rT@)vR@#Ms|4Tb*UZ5y_D1DjIY#9(i*b1di$jkm|!wgvn{ zL%}xxkhr;XTc&q?aAPVXO`_P_zo~oUdUs%Jdpm+C%RWqe7@fSg>fnC5KAV1n3(T?a zWL5J6u`SUlH(+I)k!oF4JshXM1+7T61{>2yVy5)j?>V@GuHT6@GViT-M;85^XdUz# zwhpGZPOY%6!4HiTK`jU;AKXXR?*^<Fs=|1=>SneEORDFchOLab)RfkBWT#lhDva3V zGLl^cx!dgg_iZ?Vfisv&ZJzXth#0(9X0CFr>!Ai-fgdaToOSR#x{yTSS@IV+QFX5+ z3<i%P$brZRd64X!nO3v|%w4I$B80!-JXcN$GUu0m=KRtH=a-`HDrVTanB6wCu8A6q zV45tb?6d6PC|!5am*7J5zNx|(#BwbcG3Man>1GUMP0eu`f|kev_a8czV!6t)Y7Ezb zQnUqc%vM8J%yIRQe-&2`*|&+~!HhT-2yM=8b@(z{f)ml?s<yT*eOp%f$99IJsbOCr z+7`}tOgL7p^R4R~8Od)MXy28OM+-fU^_vI$dph>yb_N1_M0ej%Ji2otoZqmkzu(y! zEx5hW++bpl&o=JvndtU+?GeRoD?;g^iLtSfu1+!OUD3I-u&ZZ$XwROF!F5T0Cb@Nd zw9V;C?8<mXGPc61UPsCq5`%ra#)lkZD>gyrC5BSrzFobA4I_bo^u6kzHC0qRV71ui z+=HhTuYwE0t!oL7H`*36G<>P$qK%1Yyrnyxnz*>j*s2fA@r@K1;TvgdtJvQeS~og8 zvTAVmZpYfr-Jw87(p4z<T^lw8*NWrb*xHF)X9)L#Vt?4bS#%VV;UO{DAx^~7qpMtl z&b50&W4-<fO8SwFuFCZEw+|FH2l_L8{=tEqBi1SDVb_b^KyR>J^oIg%?P7P#f9ZJl zW^pvt*%!!d_T&;f^CAC4ubVQ840VYey8^@Mkbk!r4RvIO+O|3;#CXar=7&cH*G~*P z#CUjJ+s0JRG0+}PkB)DoYA2E#)@}8U^^6X+hx}r9I<u*(&=nnSgMzti^YKl@|1<sR z50>!n#~ys8cpY4z*^rpS=+R}=Zg_A;Xx&UTV{Xsp+MaxK;{Va~3jroL*P}{#lD3ks zS|i@ROWT>#a5r-m4oa@Vmk`xzC{a@FzD;xW28gns=Qa&t<w0CugoQDqK@~^IA~819 zfh1+GM`YJUJ(KY@YMpeOM^&c;qtRmel|C^cBJ>J*DL3H+<wJ~9=0f(Z`u!duOXY{? zZ&Vne9NIC;X~=9*amwR(KGm3`XZ6&)mf9Yne2GEoMNSx%GAB+@q<)6#E46eSwf6O5 zOZ`+XK~F98JW6k+Wvz$kTa3!3DPLor%H-%-<vlAsNzk)#a^TERn+Ym^f$%QjNJR^H z8z+rNrTIZSK`I{;3e+;*$xHRON%Oas?ha6i1U=W=vy9YVj44m=qt|SP)qB@Xt>=Vx zsr_Cmjam0ozcTdp0QEIXPpm=*^=g2w@jXekVk|*vBvBgCIK4GY-_iur1eFfZ+nAGx zu#-xnKX$syua*74GD<Lf{x*HMV(OjP*5i{|39KwD0ZU3?-9QNnlKF|gOeU4H_9aK@ zPa!$l6OHYP4kcE$Y@&pc6il%OxeM^KvL!%H?1gM%O*&D?XQQc=E#!}wO2*bFsE%EU z^qK*ibI?8L86?+qw=L?79)@nLsnU91B9~Wh+S*&lz~vsk=cr-%YLunCiFwMABRS(= zuxtBvKlPKohm(m^9FD)jkw?)Vf#!;@`eB+8tX>Ach)}*Nu){3$R1T9Z-(!0D@;Cdb zWRgloD2r%8svU5`itnaxajE`*v`fw?LVcIC53<58D%B!vqU;#RlVO$qqL0=3h0y{j z7~`XYmJVN?E~HWy;Bt|m*A2Bq)HFGV3&Q+2WX*ds|AI4h%#zV<A({zhl%HJSO7;b< zb6F7D+=V5!FI1l^VhJfo_lf<hUU+)NrSm&T_dRBiuD0alWf2uk9Hcw{^5`F5nSy`n z*pPCk>7sg)9feRlEnuc<)vD8~5r2z-A^urK7u)DJI1i5(IEfv2pbU`SqEmAzgLds> z52meR17ObKE&p#u;A=dLMW>Qwnsqn^tcEjW%U}gvOQr-f0)OhGLp0C58G$cS@-x*` z^JWBol>mf+$z5qi;FC?zjKDu=M&K6@f1~AKM&M7+Sqo+az8QgEJOIOtz&9iCMKc1w z{J^{_T&x*^Pnk1n1YVgD_&U{0NFb#e<;hPmAs%QtqWZOpv^64S%?Nzixx!Tf?aT;# zo*2@Mz^_75%n1BR1qh2&F(dHJ2z-9xV$n&wo->V9vvEfnKRd#Vz@N<aTZ0iaBk<|G z4<u%&!WhWH;%6cP|4hQM-!#BuzgP0Nh6g;N2IOA&5qgp)uj)K`V5jH@&k!RKqE@$) z2Yx{4r~hv9v{t{nUFekFfscJB)gLF1Zq#BG#>fL75fm_A{rxnLf%~ZUN&VhMW6G1C zcqff%lzuS6A^Kh(2T~r5(NATP6fuAiBq;F&Vn7g4pp4Q$8s@8tqv5UgQk+3G4|K#! zsCmY-Xa(h)CC_*k$52f6U}j+G9ZrteJl5T@aU{9fTZgn(SAGLZ$*<|;2Qvc$OUy}8 zEz)Ne5_Fmw7zi^7W(Edh4v;l7Fd);dnSp`g;AS%eLzFnN1o1M6gxpQM2{;t+RxCCZ z689&HyhwTUY76l#h_C~f(IT8foEXlCK9_irPO8yQJQ|+H>ARiIlSUj}gd!=yC!qvd zK`bnyBnPQ=7CSjY91-|Od_&Y8Vkr?Hx{3ZHo-<i|3QjUB#atqGR1n@lzm*)5dTg#p zeFD#h5rcyZ5NCy`%>vcbLp?4~y{wnzB^hUn$kK6ouTAP1dc~qzvy(H15dG{7aBrNC z<B&Rx+TCqfyP~j1f<S^IU=gtl-Wyzd`5NGDA5LvYD%!3#|H-mBk5EJ=;xc=M34(P@ zSW7dSCKxd}fwzDJK>u89fk!Ua6IWbIO5wb=9u8l7Su4d2W3MD>F4NL%^0B>_#-=s? zTcr2pD>g#sw9D6X?O8mATI$mXr)sh7>MH=D@mj}Ft>*e;*yq|x2-50J37aMC0O=5W zheP`mnyKmEr=ld4qD|n_L21<q!V%Q=Q%$~$7+pG<MzX(RCD$t>SHpIrgo|Pn5gwKB zAIm2opHC!9nr__*$4b3KuR3VNmHL%#f-fKpy3OL<2P!fwuw9E1Ir;&;<Lhxo<=tVD zc7wK%U38NtsNd=KSzIBP-Qx4N+AL0ItJ~*rm>HO6UCuQVq|v^XKFsXIzu~``feDAT zni-g+gA2_JOyzNKa9NS%agtvb&2`$HOQz1i1ZzRP6kqu!m!=}ZMxu|%?UN>YnkAV8 zk|L8kS-u$1Pfk0Lz2+tZ_$ec^9SOqwsaN-E?iKh6WOoV_$6U!_V6@<3mHCTU#;Qi7 zv3kZ`%1LGBpK3h+)S3Y)pWp(|KZUGc_2z%#`KRj5|D-klRJG8=MYP+Y`>8kB6sKiP zw+sV)nrZ)?oA%$S^}k=xOiQZg^Q)zIgXUR%b+i<9(*>eFpiwc>97C6)^aKD!=Dq-D z(RywUjrDA4iRY50eEKzE>iSA(tmm^nS-UoVInBgJiaWfdYcig%o+=L`_-bgUIByNQ zcH<26OE16w-D$>#B^YSY_t^xGWO?Z(%m_<BT(aXqx=E5PjXwpC51T`bWEr*}#!0fV zQYm)ed$Y?h_0b)DGYvacNzYo+ufzU$8vW)g)@n8Tm)u^X-TtU<7kd}AYy^F-CW!?k z$&X3Hm69RuaGR|*8Iqk&-KeFAt>K-;70v9|kka9USHd7C(A->az;3NJH+)t~5^3!$ z$%61c>d_Sy>%=HrTe4zsZ3gUOrIjkTTpUV0`QQxqq@+JVUR`F#K@#9i75z}(Io0fj zU9<{emsk2x;#hR;dXUC&h;}=0H5>Y=)Y~5zuv%+z+WIgarylju7N#>|r>{Odr^XeL zJXhdju#r{`%asnxm~#EJ5JdJAdp`5o!Uf@UYX6#wy)oU`g8O}N9Kv@ha$Mg{yB1mM z%X#Wro<K@JA7s`>hWY~OSX1PEgFRg!NI=8dBJ&giPKZ#MJe3+Dx{K`W!0$2oj`FZ{ zvZpbL1~FddB<kaI>oTU^Lu&GD`MqvhbzG~QBU^2X=$4hd0+8@!DgDmmN9j+Z)f-1E z4R73IMQcmd=!15@lIin}QJ%VBdaNit%hdT4(_=+>-T`D}aCIC{m;2`}1do-utg(1# znmL_vI>LN1dx<KpC5o6Ls?te6u#1-NOdUOSCXt)@sMVN@+9OlbqQ!^J)U+tQ{7g-Y zp7W^Ynx<tsH5_wAi(_h9O6QKr&vBc6ExxH~VLUO5XV!l%o2hBxx)f8>GLxE@xzX1D E2X*WpfB*mh diff --git a/.vs/config/applicationhost.config b/.vs/config/applicationhost.config deleted file mode 100644 index dfded7b7..00000000 --- a/.vs/config/applicationhost.config +++ /dev/null @@ -1,1030 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - - IIS configuration sections. - - For schema documentation, see - %IIS_BIN%\config\schema\IIS_schema.xml. - - Please make a backup of this file before making any changes to it. - - NOTE: The following environment variables are available to be used - within this file and are understood by the IIS Express. - - %IIS_USER_HOME% - The IIS Express home directory for the user - %IIS_SITES_HOME% - The default home directory for sites - %IIS_BIN% - The location of the IIS Express binaries - %SYSTEMDRIVE% - The drive letter of %IIS_BIN% - ---> - -<configuration> - - <!-- - - The <configSections> section controls the registration of sections. - Section is the basic unit of deployment, locking, searching and - containment for configuration settings. - - Every section belongs to one section group. - A section group is a container of logically-related sections. - - Sections cannot be nested. - Section groups may be nested. - - <section - name="" [Required, Collection Key] [XML name of the section] - allowDefinition="Everywhere" [MachineOnly|MachineToApplication|AppHostOnly|Everywhere] [Level where it can be set] - overrideModeDefault="Allow" [Allow|Deny] [Default delegation mode] - allowLocation="true" [true|false] [Allowed in location tags] - /> - - The recommended way to unlock sections is by using a location tag: - <location path="Default Web Site" overrideMode="Allow"> - <system.webServer> - <asp /> - </system.webServer> - </location> - - --> - <configSections> - <sectionGroup name="system.applicationHost"> - <section name="applicationPools" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="configHistory" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="customMetadata" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="listenerAdapters" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="log" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="preloadProviders" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="sites" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="webLimits" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - </sectionGroup> - - <sectionGroup name="system.webServer"> - <section name="asp" overrideModeDefault="Deny" /> - <section name="caching" overrideModeDefault="Allow" /> - <section name="cgi" overrideModeDefault="Deny" /> - <section name="defaultDocument" overrideModeDefault="Allow" /> - <section name="directoryBrowse" overrideModeDefault="Allow" /> - <section name="fastCgi" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="globalModules" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="handlers" overrideModeDefault="Deny" /> - <section name="httpCompression" overrideModeDefault="Allow" /> - <section name="httpErrors" overrideModeDefault="Allow" /> - <section name="httpLogging" overrideModeDefault="Deny" /> - <section name="httpProtocol" overrideModeDefault="Allow" /> - <section name="httpRedirect" overrideModeDefault="Allow" /> - <section name="httpTracing" overrideModeDefault="Deny" /> - <section name="isapiFilters" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> - <section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> - <section name="odbcLogging" overrideModeDefault="Deny" /> - <sectionGroup name="security"> - <section name="access" overrideModeDefault="Deny" /> - <section name="applicationDependencies" overrideModeDefault="Deny" /> - <sectionGroup name="authentication"> - <section name="anonymousAuthentication" overrideModeDefault="Deny" /> - <section name="basicAuthentication" overrideModeDefault="Deny" /> - <section name="clientCertificateMappingAuthentication" overrideModeDefault="Deny" /> - <section name="digestAuthentication" overrideModeDefault="Deny" /> - <section name="iisClientCertificateMappingAuthentication" overrideModeDefault="Deny" /> - <section name="windowsAuthentication" overrideModeDefault="Deny" /> - </sectionGroup> - <section name="authorization" overrideModeDefault="Allow" /> - <section name="ipSecurity" overrideModeDefault="Deny" /> - <section name="dynamicIpSecurity" overrideModeDefault="Deny" /> - <section name="isapiCgiRestriction" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="requestFiltering" overrideModeDefault="Allow" /> - </sectionGroup> - <section name="serverRuntime" overrideModeDefault="Deny" /> - <section name="serverSideInclude" overrideModeDefault="Deny" /> - <section name="staticContent" overrideModeDefault="Allow" /> - <sectionGroup name="tracing"> - <section name="traceFailedRequests" overrideModeDefault="Allow" /> - <section name="traceProviderDefinitions" overrideModeDefault="Deny" /> - </sectionGroup> - <section name="urlCompression" overrideModeDefault="Allow" /> - <section name="validation" overrideModeDefault="Allow" /> - <sectionGroup name="webdav"> - <section name="globalSettings" overrideModeDefault="Deny" /> - <section name="authoring" overrideModeDefault="Deny" /> - <section name="authoringRules" overrideModeDefault="Deny" /> - </sectionGroup> - <sectionGroup name="rewrite"> - <section name="allowedServerVariables" overrideModeDefault="Deny" /> - <section name="rules" overrideModeDefault="Allow" /> - <section name="outboundRules" overrideModeDefault="Allow" /> - <section name="globalRules" overrideModeDefault="Deny" allowDefinition="AppHostOnly" /> - <section name="providers" overrideModeDefault="Allow" /> - <section name="rewriteMaps" overrideModeDefault="Allow" /> - </sectionGroup> - <section name="applicationInitialization" allowDefinition="MachineToApplication" overrideModeDefault="Allow" /> - <section name="webSocket" overrideModeDefault="Deny" /> - </sectionGroup> - </configSections> - - <configProtectedData> - <providers> - <add name="IISWASOnlyRsaProvider" type="" description="Uses RsaCryptoServiceProvider to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useMachineContainer="true" useOAEP="false" /> - <add name="AesProvider" type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" description="Uses an AES session key to encrypt and decrypt" keyContainerName="iisConfigurationKey" cspProviderName="" useOAEP="false" useMachineContainer="true" sessionKey="AQIAAA5mAAAApAAAKmFQvWHDEETRz8l2bjZlRxIkwcqTFaCUnCLljn3Q1OkesrhEO9YyLyx4bUhsj1/DyShAv7OAFFhXlrlomaornnk5PLeyO4lIXxaiT33yOFUUgxDx4GSaygkqghVV0tO5yQ/XguUBp2juMfZyztnsNa4pLcz7ZNZQ6p4yn9hxwNs=" /> - <add name="IISWASOnlyAesProvider" type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" description="Uses an AES session key to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useOAEP="false" useMachineContainer="true" sessionKey="AQIAAA5mAAAApAAA4WoiRJ8KHwzAG8AgejPxEOO4/2Vhkolbwo/8gZeNdUDSD36m55hWv4uC9tr/MlKdnwRLL0NhT50Gccyftqz5xTZ0dg5FtvQhTw/he1NwexTKbV+I4Zrd+sZUqHZTsr7JiEr6OHGXL70qoISW5G2m9U8wKT3caPiDPNj2aAaYPLo=" /> - </providers> - </configProtectedData> - - <system.applicationHost> - - <applicationPools> - <add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" /> - <add name="Clr4ClassicAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" /> - <add name="Clr2IntegratedAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" /> - <add name="Clr2ClassicAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" /> - <add name="UnmanagedClassicAppPool" managedRuntimeVersion="" managedPipelineMode="Classic" autoStart="true" /> - <applicationPoolDefaults managedRuntimeLoader="v4.0" > - <processModel/> - </applicationPoolDefaults> - </applicationPools> - - <!-- - - The <listenerAdapters> section defines the protocols with which the - Windows Process Activation Service (WAS) binds. - - --> - <listenerAdapters> - <add name="http" /> - </listenerAdapters> - - <sites> - <site name="WebSite1" id="1" serverAutoStart="true"> - <application path="/"> - <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" /> - </application> - <bindings> - <binding protocol="http" bindingInformation=":8080:localhost" /> - </bindings> - </site> - <siteDefaults> - <logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" /> - <traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" /> - </siteDefaults> - <applicationDefaults applicationPool="Clr4IntegratedAppPool" /> - <virtualDirectoryDefaults allowSubDirConfig="true" /> - </sites> - - <webLimits /> - - </system.applicationHost> - - <system.webServer> - - <serverRuntime /> - - <asp scriptErrorSentToBrowser="true"> - <cache diskTemplateCacheDirectory="%TEMP%\iisexpress\ASP Compiled Templates" /> - <limits /> - </asp> - - <caching enabled="true" enableKernelCache="true"> - </caching> - - <cgi /> - - <defaultDocument enabled="true"> - <files> - <add value="Default.htm" /> - <add value="Default.asp" /> - <add value="index.htm" /> - <add value="index.html" /> - <add value="iisstart.htm" /> - <add value="default.aspx" /> - </files> - </defaultDocument> - - <directoryBrowse enabled="false" /> - - <fastCgi /> - - <!-- - - The <globalModules> section defines all native-code modules. - To enable a module, specify it in the <modules> section. - - --> - <globalModules> - <add name="HttpLoggingModule" image="%IIS_BIN%\loghttp.dll" /> - <add name="UriCacheModule" image="%IIS_BIN%\cachuri.dll" /> -<!-- <add name="FileCacheModule" image="%IIS_BIN%\cachfile.dll" /> --> - <add name="TokenCacheModule" image="%IIS_BIN%\cachtokn.dll" /> -<!-- <add name="HttpCacheModule" image="%IIS_BIN%\cachhttp.dll" /> --> - <add name="DynamicCompressionModule" image="%IIS_BIN%\compdyn.dll" /> - <add name="StaticCompressionModule" image="%IIS_BIN%\compstat.dll" /> - <add name="DefaultDocumentModule" image="%IIS_BIN%\defdoc.dll" /> - <add name="DirectoryListingModule" image="%IIS_BIN%\dirlist.dll" /> - <add name="ProtocolSupportModule" image="%IIS_BIN%\protsup.dll" /> - <add name="HttpRedirectionModule" image="%IIS_BIN%\redirect.dll" /> - <add name="ServerSideIncludeModule" image="%IIS_BIN%\iis_ssi.dll" /> - <add name="StaticFileModule" image="%IIS_BIN%\static.dll" /> - <add name="AnonymousAuthenticationModule" image="%IIS_BIN%\authanon.dll" /> - <add name="CertificateMappingAuthenticationModule" image="%IIS_BIN%\authcert.dll" /> - <add name="UrlAuthorizationModule" image="%IIS_BIN%\urlauthz.dll" /> - <add name="BasicAuthenticationModule" image="%IIS_BIN%\authbas.dll" /> - <add name="WindowsAuthenticationModule" image="%IIS_BIN%\authsspi.dll" /> -<!-- <add name="DigestAuthenticationModule" image="%IIS_BIN%\authmd5.dll" /> --> - <add name="IISCertificateMappingAuthenticationModule" image="%IIS_BIN%\authmap.dll" /> - <add name="IpRestrictionModule" image="%IIS_BIN%\iprestr.dll" /> - <add name="DynamicIpRestrictionModule" image="%IIS_BIN%\diprestr.dll" /> - <add name="RequestFilteringModule" image="%IIS_BIN%\modrqflt.dll" /> - <add name="CustomLoggingModule" image="%IIS_BIN%\logcust.dll" /> - <add name="CustomErrorModule" image="%IIS_BIN%\custerr.dll" /> -<!-- <add name="TracingModule" image="%IIS_BIN%\iisetw.dll" /> --> - <add name="FailedRequestsTracingModule" image="%IIS_BIN%\iisfreb.dll" /> - <add name="RequestMonitorModule" image="%IIS_BIN%\iisreqs.dll" /> - <add name="IsapiModule" image="%IIS_BIN%\isapi.dll" /> - <add name="IsapiFilterModule" image="%IIS_BIN%\filter.dll" /> - <add name="CgiModule" image="%IIS_BIN%\cgi.dll" /> - <add name="FastCgiModule" image="%IIS_BIN%\iisfcgi.dll" /> -<!-- <add name="WebDAVModule" image="%IIS_BIN%\webdav.dll" /> --> - <add name="RewriteModule" image="%IIS_BIN%\rewrite.dll" /> - <add name="ConfigurationValidationModule" image="%IIS_BIN%\validcfg.dll" /> - <add name="WebSocketModule" image="%IIS_BIN%\iiswsock.dll" /> - <add name="WebMatrixSupportModule" image="%IIS_BIN%\webmatrixsup.dll" /> - <add name="ManagedEngine" image="%windir%\Microsoft.NET\Framework\v2.0.50727\webengine.dll" preCondition="integratedMode,runtimeVersionv2.0,bitness32" /> - <add name="ManagedEngine64" image="%windir%\Microsoft.NET\Framework64\v2.0.50727\webengine.dll" preCondition="integratedMode,runtimeVersionv2.0,bitness64" /> - <add name="ManagedEngineV4.0_32bit" image="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness32" /> - <add name="ManagedEngineV4.0_64bit" image="%windir%\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness64" /> - <add name="ApplicationInitializationModule" image="%IIS_BIN%\warmup.dll" /> - </globalModules> - - <httpCompression directory="%TEMP%\iisexpress\IIS Temporary Compressed Files"> - <scheme name="gzip" dll="%IIS_BIN%\gzip.dll" /> - <dynamicTypes> - <add mimeType="text/*" enabled="true" /> - <add mimeType="message/*" enabled="true" /> - <add mimeType="application/javascript" enabled="true" /> - <add mimeType="application/atom+xml" enabled="true" /> - <add mimeType="application/xaml+xml" enabled="true" /> - <add mimeType="*/*" enabled="false" /> - </dynamicTypes> - <staticTypes> - <add mimeType="text/*" enabled="true" /> - <add mimeType="message/*" enabled="true" /> - <add mimeType="image/svg+xml" enabled="true" /> - <add mimeType="application/javascript" enabled="true" /> - <add mimeType="application/atom+xml" enabled="true" /> - <add mimeType="application/xaml+xml" enabled="true" /> - <add mimeType="*/*" enabled="false" /> - </staticTypes> - </httpCompression> - - <httpErrors lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath"> - <error statusCode="401" prefixLanguageFilePath="%IIS_BIN%\custerr" path="401.htm" /> - <error statusCode="403" prefixLanguageFilePath="%IIS_BIN%\custerr" path="403.htm" /> - <error statusCode="404" prefixLanguageFilePath="%IIS_BIN%\custerr" path="404.htm" /> - <error statusCode="405" prefixLanguageFilePath="%IIS_BIN%\custerr" path="405.htm" /> - <error statusCode="406" prefixLanguageFilePath="%IIS_BIN%\custerr" path="406.htm" /> - <error statusCode="412" prefixLanguageFilePath="%IIS_BIN%\custerr" path="412.htm" /> - <error statusCode="500" prefixLanguageFilePath="%IIS_BIN%\custerr" path="500.htm" /> - <error statusCode="501" prefixLanguageFilePath="%IIS_BIN%\custerr" path="501.htm" /> - <error statusCode="502" prefixLanguageFilePath="%IIS_BIN%\custerr" path="502.htm" /> - </httpErrors> - - <httpLogging dontLog="false" /> - - <httpProtocol> - <customHeaders> - <clear /> - <add name="X-Powered-By" value="ASP.NET" /> - </customHeaders> - <redirectHeaders> - <clear /> - </redirectHeaders> - </httpProtocol> - - <httpRedirect enabled="false" /> - - <httpTracing> - </httpTracing> - - <isapiFilters> - <filter name="ASP.Net_2.0.50727-64" path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness64,runtimeVersionv2.0" /> - <filter name="ASP.Net_2.0.50727.0" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv2.0" /> - <filter name="ASP.Net_2.0_for_v1.1" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="runtimeVersionv1.1" /> - <filter name="ASP.Net_4.0_32bit" path="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv4.0" /> - <filter name="ASP.Net_4.0_64bit" path="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="bitness64,runtimeVersionv4.0" /> - </isapiFilters> - - <odbcLogging /> - - <security> - - <access sslFlags="None" /> - - <applicationDependencies> - <application name="Active Server Pages" groupId="ASP" /> - </applicationDependencies> - - <authentication> - - <anonymousAuthentication enabled="true" userName="" /> - - <basicAuthentication enabled="false" /> - - <clientCertificateMappingAuthentication enabled="false" /> - - <digestAuthentication enabled="false" /> - - <iisClientCertificateMappingAuthentication enabled="false"> - </iisClientCertificateMappingAuthentication> - - <windowsAuthentication enabled="false"> - <providers> - <add value="Negotiate" /> - <add value="NTLM" /> - </providers> - </windowsAuthentication> - - </authentication> - - <authorization> - <add accessType="Allow" users="*" /> - </authorization> - - <ipSecurity allowUnlisted="true" /> - - <isapiCgiRestriction notListedIsapisAllowed="true" notListedCgisAllowed="true"> - <add path="%windir%\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" allowed="true" groupId="ASP.NET_v4.0" description="ASP.NET_v4.0" /> - <add path="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" allowed="true" groupId="ASP.NET_v4.0" description="ASP.NET_v4.0" /> - <add path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" allowed="true" groupId="ASP.NET v2.0.50727" description="ASP.NET v2.0.50727" /> - <add path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" allowed="true" groupId="ASP.NET v2.0.50727" description="ASP.NET v2.0.50727" /> - </isapiCgiRestriction> - - <requestFiltering> - <fileExtensions allowUnlisted="true" applyToWebDAV="true"> - <add fileExtension=".asa" allowed="false" /> - <add fileExtension=".asax" allowed="false" /> - <add fileExtension=".ascx" allowed="false" /> - <add fileExtension=".master" allowed="false" /> - <add fileExtension=".skin" allowed="false" /> - <add fileExtension=".browser" allowed="false" /> - <add fileExtension=".sitemap" allowed="false" /> - <add fileExtension=".config" allowed="false" /> - <add fileExtension=".cs" allowed="false" /> - <add fileExtension=".csproj" allowed="false" /> - <add fileExtension=".vb" allowed="false" /> - <add fileExtension=".vbproj" allowed="false" /> - <add fileExtension=".webinfo" allowed="false" /> - <add fileExtension=".licx" allowed="false" /> - <add fileExtension=".resx" allowed="false" /> - <add fileExtension=".resources" allowed="false" /> - <add fileExtension=".mdb" allowed="false" /> - <add fileExtension=".vjsproj" allowed="false" /> - <add fileExtension=".java" allowed="false" /> - <add fileExtension=".jsl" allowed="false" /> - <add fileExtension=".ldb" allowed="false" /> - <add fileExtension=".dsdgm" allowed="false" /> - <add fileExtension=".ssdgm" allowed="false" /> - <add fileExtension=".lsad" allowed="false" /> - <add fileExtension=".ssmap" allowed="false" /> - <add fileExtension=".cd" allowed="false" /> - <add fileExtension=".dsprototype" allowed="false" /> - <add fileExtension=".lsaprototype" allowed="false" /> - <add fileExtension=".sdm" allowed="false" /> - <add fileExtension=".sdmDocument" allowed="false" /> - <add fileExtension=".mdf" allowed="false" /> - <add fileExtension=".ldf" allowed="false" /> - <add fileExtension=".ad" allowed="false" /> - <add fileExtension=".dd" allowed="false" /> - <add fileExtension=".ldd" allowed="false" /> - <add fileExtension=".sd" allowed="false" /> - <add fileExtension=".adprototype" allowed="false" /> - <add fileExtension=".lddprototype" allowed="false" /> - <add fileExtension=".exclude" allowed="false" /> - <add fileExtension=".refresh" allowed="false" /> - <add fileExtension=".compiled" allowed="false" /> - <add fileExtension=".msgx" allowed="false" /> - <add fileExtension=".vsdisco" allowed="false" /> - <add fileExtension=".rules" allowed="false" /> - </fileExtensions> - <verbs allowUnlisted="true" applyToWebDAV="true" /> - <hiddenSegments applyToWebDAV="true"> - <add segment="web.config" /> - <add segment="bin" /> - <add segment="App_code" /> - <add segment="App_GlobalResources" /> - <add segment="App_LocalResources" /> - <add segment="App_WebReferences" /> - <add segment="App_Data" /> - <add segment="App_Browsers" /> - </hiddenSegments> - </requestFiltering> - - </security> - - <serverSideInclude ssiExecDisable="false" /> - - <staticContent lockAttributes="isDocFooterFileName"> - <mimeMap fileExtension=".323" mimeType="text/h323" /> - <mimeMap fileExtension=".3g2" mimeType="video/3gpp2" /> - <mimeMap fileExtension=".3gp2" mimeType="video/3gpp2" /> - <mimeMap fileExtension=".3gp" mimeType="video/3gpp" /> - <mimeMap fileExtension=".3gpp" mimeType="video/3gpp" /> - <mimeMap fileExtension=".aac" mimeType="audio/aac" /> - <mimeMap fileExtension=".aaf" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".aca" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".accdb" mimeType="application/msaccess" /> - <mimeMap fileExtension=".accde" mimeType="application/msaccess" /> - <mimeMap fileExtension=".accdt" mimeType="application/msaccess" /> - <mimeMap fileExtension=".acx" mimeType="application/internet-property-stream" /> - <mimeMap fileExtension=".adt" mimeType="audio/vnd.dlna.adts" /> - <mimeMap fileExtension=".adts" mimeType="audio/vnd.dlna.adts" /> - <mimeMap fileExtension=".afm" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".ai" mimeType="application/postscript" /> - <mimeMap fileExtension=".aif" mimeType="audio/x-aiff" /> - <mimeMap fileExtension=".aifc" mimeType="audio/aiff" /> - <mimeMap fileExtension=".aiff" mimeType="audio/aiff" /> - <mimeMap fileExtension=".appcache" mimeType="text/cache-manifest" /> - <mimeMap fileExtension=".application" mimeType="application/x-ms-application" /> - <mimeMap fileExtension=".art" mimeType="image/x-jg" /> - <mimeMap fileExtension=".asd" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".asf" mimeType="video/x-ms-asf" /> - <mimeMap fileExtension=".asi" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".asm" mimeType="text/plain" /> - <mimeMap fileExtension=".asr" mimeType="video/x-ms-asf" /> - <mimeMap fileExtension=".asx" mimeType="video/x-ms-asf" /> - <mimeMap fileExtension=".atom" mimeType="application/atom+xml" /> - <mimeMap fileExtension=".au" mimeType="audio/basic" /> - <mimeMap fileExtension=".avi" mimeType="video/msvideo" /> - <mimeMap fileExtension=".axs" mimeType="application/olescript" /> - <mimeMap fileExtension=".bas" mimeType="text/plain" /> - <mimeMap fileExtension=".bcpio" mimeType="application/x-bcpio" /> - <mimeMap fileExtension=".bin" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".bmp" mimeType="image/bmp" /> - <mimeMap fileExtension=".c" mimeType="text/plain" /> - <mimeMap fileExtension=".cab" mimeType="application/vnd.ms-cab-compressed" /> - <mimeMap fileExtension=".calx" mimeType="application/vnd.ms-office.calx" /> - <mimeMap fileExtension=".cat" mimeType="application/vnd.ms-pki.seccat" /> - <mimeMap fileExtension=".cdf" mimeType="application/x-cdf" /> - <mimeMap fileExtension=".chm" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".class" mimeType="application/x-java-applet" /> - <mimeMap fileExtension=".clp" mimeType="application/x-msclip" /> - <mimeMap fileExtension=".cmx" mimeType="image/x-cmx" /> - <mimeMap fileExtension=".cnf" mimeType="text/plain" /> - <mimeMap fileExtension=".cod" mimeType="image/cis-cod" /> - <mimeMap fileExtension=".cpio" mimeType="application/x-cpio" /> - <mimeMap fileExtension=".cpp" mimeType="text/plain" /> - <mimeMap fileExtension=".crd" mimeType="application/x-mscardfile" /> - <mimeMap fileExtension=".crl" mimeType="application/pkix-crl" /> - <mimeMap fileExtension=".crt" mimeType="application/x-x509-ca-cert" /> - <mimeMap fileExtension=".csh" mimeType="application/x-csh" /> - <mimeMap fileExtension=".css" mimeType="text/css" /> - <mimeMap fileExtension=".csv" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".cur" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".dcr" mimeType="application/x-director" /> - <mimeMap fileExtension=".deploy" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".der" mimeType="application/x-x509-ca-cert" /> - <mimeMap fileExtension=".dib" mimeType="image/bmp" /> - <mimeMap fileExtension=".dir" mimeType="application/x-director" /> - <mimeMap fileExtension=".disco" mimeType="text/xml" /> - <mimeMap fileExtension=".dll" mimeType="application/x-msdownload" /> - <mimeMap fileExtension=".dll.config" mimeType="text/xml" /> - <mimeMap fileExtension=".dlm" mimeType="text/dlm" /> - <mimeMap fileExtension=".doc" mimeType="application/msword" /> - <mimeMap fileExtension=".docm" mimeType="application/vnd.ms-word.document.macroEnabled.12" /> - <mimeMap fileExtension=".docx" mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.document" /> - <mimeMap fileExtension=".dot" mimeType="application/msword" /> - <mimeMap fileExtension=".dotm" mimeType="application/vnd.ms-word.template.macroEnabled.12" /> - <mimeMap fileExtension=".dotx" mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.template" /> - <mimeMap fileExtension=".dsp" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".dtd" mimeType="text/xml" /> - <mimeMap fileExtension=".dvi" mimeType="application/x-dvi" /> - <mimeMap fileExtension=".dvr-ms" mimeType="video/x-ms-dvr" /> - <mimeMap fileExtension=".dwf" mimeType="drawing/x-dwf" /> - <mimeMap fileExtension=".dwp" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".dxr" mimeType="application/x-director" /> - <mimeMap fileExtension=".eml" mimeType="message/rfc822" /> - <mimeMap fileExtension=".emz" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" /> - <mimeMap fileExtension=".eps" mimeType="application/postscript" /> - <mimeMap fileExtension=".etx" mimeType="text/x-setext" /> - <mimeMap fileExtension=".evy" mimeType="application/envoy" /> - <mimeMap fileExtension=".exe" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".exe.config" mimeType="text/xml" /> - <mimeMap fileExtension=".fdf" mimeType="application/vnd.fdf" /> - <mimeMap fileExtension=".fif" mimeType="application/fractals" /> - <mimeMap fileExtension=".fla" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".flr" mimeType="x-world/x-vrml" /> - <mimeMap fileExtension=".flv" mimeType="video/x-flv" /> - <mimeMap fileExtension=".gif" mimeType="image/gif" /> - <mimeMap fileExtension=".gtar" mimeType="application/x-gtar" /> - <mimeMap fileExtension=".gz" mimeType="application/x-gzip" /> - <mimeMap fileExtension=".h" mimeType="text/plain" /> - <mimeMap fileExtension=".hdf" mimeType="application/x-hdf" /> - <mimeMap fileExtension=".hdml" mimeType="text/x-hdml" /> - <mimeMap fileExtension=".hhc" mimeType="application/x-oleobject" /> - <mimeMap fileExtension=".hhk" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".hhp" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".hlp" mimeType="application/winhlp" /> - <mimeMap fileExtension=".hqx" mimeType="application/mac-binhex40" /> - <mimeMap fileExtension=".hta" mimeType="application/hta" /> - <mimeMap fileExtension=".htc" mimeType="text/x-component" /> - <mimeMap fileExtension=".htm" mimeType="text/html" /> - <mimeMap fileExtension=".html" mimeType="text/html" /> - <mimeMap fileExtension=".htt" mimeType="text/webviewhtml" /> - <mimeMap fileExtension=".hxt" mimeType="text/html" /> - <mimeMap fileExtension=".ico" mimeType="image/x-icon" /> - <mimeMap fileExtension=".ics" mimeType="text/calendar" /> - <mimeMap fileExtension=".ief" mimeType="image/ief" /> - <mimeMap fileExtension=".iii" mimeType="application/x-iphone" /> - <mimeMap fileExtension=".inf" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".ins" mimeType="application/x-internet-signup" /> - <mimeMap fileExtension=".isp" mimeType="application/x-internet-signup" /> - <mimeMap fileExtension=".IVF" mimeType="video/x-ivf" /> - <mimeMap fileExtension=".jar" mimeType="application/java-archive" /> - <mimeMap fileExtension=".java" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".jck" mimeType="application/liquidmotion" /> - <mimeMap fileExtension=".jcz" mimeType="application/liquidmotion" /> - <mimeMap fileExtension=".jfif" mimeType="image/pjpeg" /> - <mimeMap fileExtension=".jpb" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".jpe" mimeType="image/jpeg" /> - <mimeMap fileExtension=".jpeg" mimeType="image/jpeg" /> - <mimeMap fileExtension=".jpg" mimeType="image/jpeg" /> - <mimeMap fileExtension=".js" mimeType="application/javascript" /> - <mimeMap fileExtension=".json" mimeType="application/json" /> - <mimeMap fileExtension=".jsonld" mimeType="application/ld+json" /> - <mimeMap fileExtension=".jsx" mimeType="text/jscript" /> - <mimeMap fileExtension=".latex" mimeType="application/x-latex" /> - <mimeMap fileExtension=".less" mimeType="text/css" /> - <mimeMap fileExtension=".lit" mimeType="application/x-ms-reader" /> - <mimeMap fileExtension=".lpk" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".lsf" mimeType="video/x-la-asf" /> - <mimeMap fileExtension=".lsx" mimeType="video/x-la-asf" /> - <mimeMap fileExtension=".lzh" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".m13" mimeType="application/x-msmediaview" /> - <mimeMap fileExtension=".m14" mimeType="application/x-msmediaview" /> - <mimeMap fileExtension=".m1v" mimeType="video/mpeg" /> - <mimeMap fileExtension=".m2ts" mimeType="video/vnd.dlna.mpeg-tts" /> - <mimeMap fileExtension=".m3u" mimeType="audio/x-mpegurl" /> - <mimeMap fileExtension=".m4a" mimeType="audio/mp4" /> - <mimeMap fileExtension=".m4v" mimeType="video/mp4" /> - <mimeMap fileExtension=".man" mimeType="application/x-troff-man" /> - <mimeMap fileExtension=".manifest" mimeType="application/x-ms-manifest" /> - <mimeMap fileExtension=".map" mimeType="text/plain" /> - <mimeMap fileExtension=".mdb" mimeType="application/x-msaccess" /> - <mimeMap fileExtension=".mdp" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".me" mimeType="application/x-troff-me" /> - <mimeMap fileExtension=".mht" mimeType="message/rfc822" /> - <mimeMap fileExtension=".mhtml" mimeType="message/rfc822" /> - <mimeMap fileExtension=".mid" mimeType="audio/mid" /> - <mimeMap fileExtension=".midi" mimeType="audio/mid" /> - <mimeMap fileExtension=".mix" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".mmf" mimeType="application/x-smaf" /> - <mimeMap fileExtension=".mno" mimeType="text/xml" /> - <mimeMap fileExtension=".mny" mimeType="application/x-msmoney" /> - <mimeMap fileExtension=".mov" mimeType="video/quicktime" /> - <mimeMap fileExtension=".movie" mimeType="video/x-sgi-movie" /> - <mimeMap fileExtension=".mp2" mimeType="video/mpeg" /> - <mimeMap fileExtension=".mp3" mimeType="audio/mpeg" /> - <mimeMap fileExtension=".mp4" mimeType="video/mp4" /> - <mimeMap fileExtension=".mp4v" mimeType="video/mp4" /> - <mimeMap fileExtension=".mpa" mimeType="video/mpeg" /> - <mimeMap fileExtension=".mpe" mimeType="video/mpeg" /> - <mimeMap fileExtension=".mpeg" mimeType="video/mpeg" /> - <mimeMap fileExtension=".mpg" mimeType="video/mpeg" /> - <mimeMap fileExtension=".mpp" mimeType="application/vnd.ms-project" /> - <mimeMap fileExtension=".mpv2" mimeType="video/mpeg" /> - <mimeMap fileExtension=".ms" mimeType="application/x-troff-ms" /> - <mimeMap fileExtension=".msi" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".mso" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".mvb" mimeType="application/x-msmediaview" /> - <mimeMap fileExtension=".mvc" mimeType="application/x-miva-compiled" /> - <mimeMap fileExtension=".nc" mimeType="application/x-netcdf" /> - <mimeMap fileExtension=".nsc" mimeType="video/x-ms-asf" /> - <mimeMap fileExtension=".nws" mimeType="message/rfc822" /> - <mimeMap fileExtension=".ocx" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".oda" mimeType="application/oda" /> - <mimeMap fileExtension=".odc" mimeType="text/x-ms-odc" /> - <mimeMap fileExtension=".ods" mimeType="application/oleobject" /> - <mimeMap fileExtension=".oga" mimeType="audio/ogg" /> - <mimeMap fileExtension=".ogg" mimeType="video/ogg" /> - <mimeMap fileExtension=".ogv" mimeType="video/ogg" /> - <mimeMap fileExtension=".one" mimeType="application/onenote" /> - <mimeMap fileExtension=".onea" mimeType="application/onenote" /> - <mimeMap fileExtension=".onetoc" mimeType="application/onenote" /> - <mimeMap fileExtension=".onetoc2" mimeType="application/onenote" /> - <mimeMap fileExtension=".onetmp" mimeType="application/onenote" /> - <mimeMap fileExtension=".onepkg" mimeType="application/onenote" /> - <mimeMap fileExtension=".osdx" mimeType="application/opensearchdescription+xml" /> - <mimeMap fileExtension=".otf" mimeType="font/otf" /> - <mimeMap fileExtension=".p10" mimeType="application/pkcs10" /> - <mimeMap fileExtension=".p12" mimeType="application/x-pkcs12" /> - <mimeMap fileExtension=".p7b" mimeType="application/x-pkcs7-certificates" /> - <mimeMap fileExtension=".p7c" mimeType="application/pkcs7-mime" /> - <mimeMap fileExtension=".p7m" mimeType="application/pkcs7-mime" /> - <mimeMap fileExtension=".p7r" mimeType="application/x-pkcs7-certreqresp" /> - <mimeMap fileExtension=".p7s" mimeType="application/pkcs7-signature" /> - <mimeMap fileExtension=".pbm" mimeType="image/x-portable-bitmap" /> - <mimeMap fileExtension=".pcx" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".pcz" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".pdf" mimeType="application/pdf" /> - <mimeMap fileExtension=".pfb" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".pfm" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".pfx" mimeType="application/x-pkcs12" /> - <mimeMap fileExtension=".pgm" mimeType="image/x-portable-graymap" /> - <mimeMap fileExtension=".pko" mimeType="application/vnd.ms-pki.pko" /> - <mimeMap fileExtension=".pma" mimeType="application/x-perfmon" /> - <mimeMap fileExtension=".pmc" mimeType="application/x-perfmon" /> - <mimeMap fileExtension=".pml" mimeType="application/x-perfmon" /> - <mimeMap fileExtension=".pmr" mimeType="application/x-perfmon" /> - <mimeMap fileExtension=".pmw" mimeType="application/x-perfmon" /> - <mimeMap fileExtension=".png" mimeType="image/png" /> - <mimeMap fileExtension=".pnm" mimeType="image/x-portable-anymap" /> - <mimeMap fileExtension=".pnz" mimeType="image/png" /> - <mimeMap fileExtension=".pot" mimeType="application/vnd.ms-powerpoint" /> - <mimeMap fileExtension=".potm" mimeType="application/vnd.ms-powerpoint.template.macroEnabled.12" /> - <mimeMap fileExtension=".potx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.template" /> - <mimeMap fileExtension=".ppam" mimeType="application/vnd.ms-powerpoint.addin.macroEnabled.12" /> - <mimeMap fileExtension=".ppm" mimeType="image/x-portable-pixmap" /> - <mimeMap fileExtension=".pps" mimeType="application/vnd.ms-powerpoint" /> - <mimeMap fileExtension=".ppsm" mimeType="application/vnd.ms-powerpoint.slideshow.macroEnabled.12" /> - <mimeMap fileExtension=".ppsx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.slideshow" /> - <mimeMap fileExtension=".ppt" mimeType="application/vnd.ms-powerpoint" /> - <mimeMap fileExtension=".pptm" mimeType="application/vnd.ms-powerpoint.presentation.macroEnabled.12" /> - <mimeMap fileExtension=".pptx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.presentation" /> - <mimeMap fileExtension=".prf" mimeType="application/pics-rules" /> - <mimeMap fileExtension=".prm" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".prx" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".ps" mimeType="application/postscript" /> - <mimeMap fileExtension=".psd" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".psm" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".psp" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".pub" mimeType="application/x-mspublisher" /> - <mimeMap fileExtension=".qt" mimeType="video/quicktime" /> - <mimeMap fileExtension=".qtl" mimeType="application/x-quicktimeplayer" /> - <mimeMap fileExtension=".qxd" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".ra" mimeType="audio/x-pn-realaudio" /> - <mimeMap fileExtension=".ram" mimeType="audio/x-pn-realaudio" /> - <mimeMap fileExtension=".rar" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".ras" mimeType="image/x-cmu-raster" /> - <mimeMap fileExtension=".rf" mimeType="image/vnd.rn-realflash" /> - <mimeMap fileExtension=".rgb" mimeType="image/x-rgb" /> - <mimeMap fileExtension=".rm" mimeType="application/vnd.rn-realmedia" /> - <mimeMap fileExtension=".rmi" mimeType="audio/mid" /> - <mimeMap fileExtension=".roff" mimeType="application/x-troff" /> - <mimeMap fileExtension=".rpm" mimeType="audio/x-pn-realaudio-plugin" /> - <mimeMap fileExtension=".rtf" mimeType="application/rtf" /> - <mimeMap fileExtension=".rtx" mimeType="text/richtext" /> - <mimeMap fileExtension=".scd" mimeType="application/x-msschedule" /> - <mimeMap fileExtension=".sct" mimeType="text/scriptlet" /> - <mimeMap fileExtension=".sea" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".setpay" mimeType="application/set-payment-initiation" /> - <mimeMap fileExtension=".setreg" mimeType="application/set-registration-initiation" /> - <mimeMap fileExtension=".sgml" mimeType="text/sgml" /> - <mimeMap fileExtension=".sh" mimeType="application/x-sh" /> - <mimeMap fileExtension=".shar" mimeType="application/x-shar" /> - <mimeMap fileExtension=".sit" mimeType="application/x-stuffit" /> - <mimeMap fileExtension=".sldm" mimeType="application/vnd.ms-powerpoint.slide.macroEnabled.12" /> - <mimeMap fileExtension=".sldx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.slide" /> - <mimeMap fileExtension=".smd" mimeType="audio/x-smd" /> - <mimeMap fileExtension=".smi" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".smx" mimeType="audio/x-smd" /> - <mimeMap fileExtension=".smz" mimeType="audio/x-smd" /> - <mimeMap fileExtension=".snd" mimeType="audio/basic" /> - <mimeMap fileExtension=".snp" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".spc" mimeType="application/x-pkcs7-certificates" /> - <mimeMap fileExtension=".spl" mimeType="application/futuresplash" /> - <mimeMap fileExtension=".spx" mimeType="audio/ogg" /> - <mimeMap fileExtension=".src" mimeType="application/x-wais-source" /> - <mimeMap fileExtension=".ssm" mimeType="application/streamingmedia" /> - <mimeMap fileExtension=".sst" mimeType="application/vnd.ms-pki.certstore" /> - <mimeMap fileExtension=".stl" mimeType="application/vnd.ms-pki.stl" /> - <mimeMap fileExtension=".sv4cpio" mimeType="application/x-sv4cpio" /> - <mimeMap fileExtension=".sv4crc" mimeType="application/x-sv4crc" /> - <mimeMap fileExtension=".svg" mimeType="image/svg+xml" /> - <mimeMap fileExtension=".svgz" mimeType="image/svg+xml" /> - <mimeMap fileExtension=".swf" mimeType="application/x-shockwave-flash" /> - <mimeMap fileExtension=".t" mimeType="application/x-troff" /> - <mimeMap fileExtension=".tar" mimeType="application/x-tar" /> - <mimeMap fileExtension=".tcl" mimeType="application/x-tcl" /> - <mimeMap fileExtension=".tex" mimeType="application/x-tex" /> - <mimeMap fileExtension=".texi" mimeType="application/x-texinfo" /> - <mimeMap fileExtension=".texinfo" mimeType="application/x-texinfo" /> - <mimeMap fileExtension=".tgz" mimeType="application/x-compressed" /> - <mimeMap fileExtension=".thmx" mimeType="application/vnd.ms-officetheme" /> - <mimeMap fileExtension=".thn" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".tif" mimeType="image/tiff" /> - <mimeMap fileExtension=".tiff" mimeType="image/tiff" /> - <mimeMap fileExtension=".toc" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".tr" mimeType="application/x-troff" /> - <mimeMap fileExtension=".trm" mimeType="application/x-msterminal" /> - <mimeMap fileExtension=".ts" mimeType="video/vnd.dlna.mpeg-tts" /> - <mimeMap fileExtension=".tsv" mimeType="text/tab-separated-values" /> - <mimeMap fileExtension=".ttf" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".tts" mimeType="video/vnd.dlna.mpeg-tts" /> - <mimeMap fileExtension=".txt" mimeType="text/plain" /> - <mimeMap fileExtension=".u32" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".uls" mimeType="text/iuls" /> - <mimeMap fileExtension=".ustar" mimeType="application/x-ustar" /> - <mimeMap fileExtension=".vbs" mimeType="text/vbscript" /> - <mimeMap fileExtension=".vcf" mimeType="text/x-vcard" /> - <mimeMap fileExtension=".vcs" mimeType="text/plain" /> - <mimeMap fileExtension=".vdx" mimeType="application/vnd.ms-visio.viewer" /> - <mimeMap fileExtension=".vml" mimeType="text/xml" /> - <mimeMap fileExtension=".vsd" mimeType="application/vnd.visio" /> - <mimeMap fileExtension=".vss" mimeType="application/vnd.visio" /> - <mimeMap fileExtension=".vst" mimeType="application/vnd.visio" /> - <mimeMap fileExtension=".vsto" mimeType="application/x-ms-vsto" /> - <mimeMap fileExtension=".vsw" mimeType="application/vnd.visio" /> - <mimeMap fileExtension=".vsx" mimeType="application/vnd.visio" /> - <mimeMap fileExtension=".vtx" mimeType="application/vnd.visio" /> - <mimeMap fileExtension=".wav" mimeType="audio/wav" /> - <mimeMap fileExtension=".wax" mimeType="audio/x-ms-wax" /> - <mimeMap fileExtension=".wbmp" mimeType="image/vnd.wap.wbmp" /> - <mimeMap fileExtension=".wcm" mimeType="application/vnd.ms-works" /> - <mimeMap fileExtension=".wdb" mimeType="application/vnd.ms-works" /> - <mimeMap fileExtension=".webm" mimeType="video/webm" /> - <mimeMap fileExtension=".wks" mimeType="application/vnd.ms-works" /> - <mimeMap fileExtension=".wm" mimeType="video/x-ms-wm" /> - <mimeMap fileExtension=".wma" mimeType="audio/x-ms-wma" /> - <mimeMap fileExtension=".wmd" mimeType="application/x-ms-wmd" /> - <mimeMap fileExtension=".wmf" mimeType="application/x-msmetafile" /> - <mimeMap fileExtension=".wml" mimeType="text/vnd.wap.wml" /> - <mimeMap fileExtension=".wmlc" mimeType="application/vnd.wap.wmlc" /> - <mimeMap fileExtension=".wmls" mimeType="text/vnd.wap.wmlscript" /> - <mimeMap fileExtension=".wmlsc" mimeType="application/vnd.wap.wmlscriptc" /> - <mimeMap fileExtension=".wmp" mimeType="video/x-ms-wmp" /> - <mimeMap fileExtension=".wmv" mimeType="video/x-ms-wmv" /> - <mimeMap fileExtension=".wmx" mimeType="video/x-ms-wmx" /> - <mimeMap fileExtension=".wmz" mimeType="application/x-ms-wmz" /> - <mimeMap fileExtension=".woff" mimeType="font/x-woff" /> - <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" /> - <mimeMap fileExtension=".wps" mimeType="application/vnd.ms-works" /> - <mimeMap fileExtension=".wri" mimeType="application/x-mswrite" /> - <mimeMap fileExtension=".wrl" mimeType="x-world/x-vrml" /> - <mimeMap fileExtension=".wrz" mimeType="x-world/x-vrml" /> - <mimeMap fileExtension=".wsdl" mimeType="text/xml" /> - <mimeMap fileExtension=".wtv" mimeType="video/x-ms-wtv" /> - <mimeMap fileExtension=".wvx" mimeType="video/x-ms-wvx" /> - <mimeMap fileExtension=".x" mimeType="application/directx" /> - <mimeMap fileExtension=".xaf" mimeType="x-world/x-vrml" /> - <mimeMap fileExtension=".xaml" mimeType="application/xaml+xml" /> - <mimeMap fileExtension=".xap" mimeType="application/x-silverlight-app" /> - <mimeMap fileExtension=".xbap" mimeType="application/x-ms-xbap" /> - <mimeMap fileExtension=".xbm" mimeType="image/x-xbitmap" /> - <mimeMap fileExtension=".xdr" mimeType="text/plain" /> - <mimeMap fileExtension=".xht" mimeType="application/xhtml+xml" /> - <mimeMap fileExtension=".xhtml" mimeType="application/xhtml+xml" /> - <mimeMap fileExtension=".xla" mimeType="application/vnd.ms-excel" /> - <mimeMap fileExtension=".xlam" mimeType="application/vnd.ms-excel.addin.macroEnabled.12" /> - <mimeMap fileExtension=".xlc" mimeType="application/vnd.ms-excel" /> - <mimeMap fileExtension=".xlm" mimeType="application/vnd.ms-excel" /> - <mimeMap fileExtension=".xls" mimeType="application/vnd.ms-excel" /> - <mimeMap fileExtension=".xlsb" mimeType="application/vnd.ms-excel.sheet.binary.macroEnabled.12" /> - <mimeMap fileExtension=".xlsm" mimeType="application/vnd.ms-excel.sheet.macroEnabled.12" /> - <mimeMap fileExtension=".xlsx" mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" /> - <mimeMap fileExtension=".xlt" mimeType="application/vnd.ms-excel" /> - <mimeMap fileExtension=".xltm" mimeType="application/vnd.ms-excel.template.macroEnabled.12" /> - <mimeMap fileExtension=".xltx" mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.template" /> - <mimeMap fileExtension=".xlw" mimeType="application/vnd.ms-excel" /> - <mimeMap fileExtension=".xml" mimeType="text/xml" /> - <mimeMap fileExtension=".xof" mimeType="x-world/x-vrml" /> - <mimeMap fileExtension=".xpm" mimeType="image/x-xpixmap" /> - <mimeMap fileExtension=".xps" mimeType="application/vnd.ms-xpsdocument" /> - <mimeMap fileExtension=".xsd" mimeType="text/xml" /> - <mimeMap fileExtension=".xsf" mimeType="text/xml" /> - <mimeMap fileExtension=".xsl" mimeType="text/xml" /> - <mimeMap fileExtension=".xslt" mimeType="text/xml" /> - <mimeMap fileExtension=".xsn" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".xtp" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".xwd" mimeType="image/x-xwindowdump" /> - <mimeMap fileExtension=".z" mimeType="application/x-compress" /> - <mimeMap fileExtension=".zip" mimeType="application/x-zip-compressed" /> - </staticContent> - - <tracing> - - <traceProviderDefinitions> - <add name="WWW Server" guid="{3a2a4e84-4c21-4981-ae10-3fda0d9b0f83}"> - <areas> - <clear /> - <add name="Authentication" value="2" /> - <add name="Security" value="4" /> - <add name="Filter" value="8" /> - <add name="StaticFile" value="16" /> - <add name="CGI" value="32" /> - <add name="Compression" value="64" /> - <add name="Cache" value="128" /> - <add name="RequestNotifications" value="256" /> - <add name="Module" value="512" /> - <add name="Rewrite" value="1024" /> - <add name="FastCGI" value="4096" /> - <add name="WebSocket" value="16384" /> - </areas> - </add> - <add name="ASP" guid="{06b94d9a-b15e-456e-a4ef-37c984a2cb4b}"> - <areas> - <clear /> - </areas> - </add> - <add name="ISAPI Extension" guid="{a1c2040e-8840-4c31-ba11-9871031a19ea}"> - <areas> - <clear /> - </areas> - </add> - <add name="ASPNET" guid="{AFF081FE-0247-4275-9C4E-021F3DC1DA35}"> - <areas> - <add name="Infrastructure" value="1" /> - <add name="Module" value="2" /> - <add name="Page" value="4" /> - <add name="AppServices" value="8" /> - </areas> - </add> - </traceProviderDefinitions> - - <traceFailedRequests> - <add path="*"> - <traceAreas> - <add provider="ASP" verbosity="Verbose" /> - <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" /> - <add provider="ISAPI Extension" verbosity="Verbose" /> - <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,Rewrite,WebSocket" verbosity="Verbose" /> - </traceAreas> - <failureDefinitions statusCodes="200-999" /> - </add> - </traceFailedRequests> - - </tracing> - - <urlCompression /> - - <validation /> - <webdav> - <globalSettings> - <propertyStores> - <add name="webdav_simple_prop" image="%IIS_BIN%\webdav_simple_prop.dll" image32="%IIS_BIN%\webdav_simple_prop.dll" /> - </propertyStores> - <lockStores> - <add name="webdav_simple_lock" image="%IIS_BIN%\webdav_simple_lock.dll" image32="%IIS_BIN%\webdav_simple_lock.dll" /> - </lockStores> - - </globalSettings> - <authoring> - <locks enabled="true" lockStore="webdav_simple_lock" /> - </authoring> - <authoringRules /> - </webdav> - <webSocket /> - <applicationInitialization /> - - </system.webServer> - <location path="" overrideMode="Allow"> - <system.webServer> - <modules> - <add name="IsapiFilterModule" lockItem="true" /> - <add name="BasicAuthenticationModule" lockItem="true" /> - <add name="IsapiModule" lockItem="true" /> - <add name="HttpLoggingModule" lockItem="true" /> - <!-- - <add name="HttpCacheModule" lockItem="true" /> ---> - <add name="DynamicCompressionModule" lockItem="true" /> - <add name="StaticCompressionModule" lockItem="true" /> - <add name="DefaultDocumentModule" lockItem="true" /> - <add name="DirectoryListingModule" lockItem="true" /> - - <add name="ProtocolSupportModule" lockItem="true" /> - <add name="HttpRedirectionModule" lockItem="true" /> - <add name="ServerSideIncludeModule" lockItem="true" /> - <add name="StaticFileModule" lockItem="true" /> - <add name="AnonymousAuthenticationModule" lockItem="true" /> - <add name="CertificateMappingAuthenticationModule" lockItem="true" /> - <add name="UrlAuthorizationModule" lockItem="true" /> - <add name="WindowsAuthenticationModule" lockItem="true" /> - <!-- - <add name="DigestAuthenticationModule" lockItem="true" /> ---> - <add name="IISCertificateMappingAuthenticationModule" lockItem="true" /> - <add name="WebMatrixSupportModule" lockItem="true" /> - <add name="IpRestrictionModule" lockItem="true" /> - <add name="DynamicIpRestrictionModule" lockItem="true" /> - <add name="RequestFilteringModule" lockItem="true" /> - <add name="CustomLoggingModule" lockItem="true" /> - <add name="CustomErrorModule" lockItem="true" /> - <add name="FailedRequestsTracingModule" lockItem="true" /> - <add name="CgiModule" lockItem="true" /> - <add name="FastCgiModule" lockItem="true" /> - <!-- <add name="WebDAVModule" /> --> - <add name="RewriteModule" /> - <add name="OutputCache" type="System.Web.Caching.OutputCacheModule" preCondition="managedHandler" /> - <add name="Session" type="System.Web.SessionState.SessionStateModule" preCondition="managedHandler" /> - <add name="WindowsAuthentication" type="System.Web.Security.WindowsAuthenticationModule" preCondition="managedHandler" /> - <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" /> - <add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" preCondition="managedHandler" /> - <add name="RoleManager" type="System.Web.Security.RoleManagerModule" preCondition="managedHandler" /> - <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" preCondition="managedHandler" /> - <add name="FileAuthorization" type="System.Web.Security.FileAuthorizationModule" preCondition="managedHandler" /> - <add name="AnonymousIdentification" type="System.Web.Security.AnonymousIdentificationModule" preCondition="managedHandler" /> - <add name="Profile" type="System.Web.Profile.ProfileModule" preCondition="managedHandler" /> - <add name="UrlMappingsModule" type="System.Web.UrlMappingsModule" preCondition="managedHandler" /> - <add name="ConfigurationValidationModule" lockItem="true" /> - <add name="WebSocketModule" lockItem="true" /> - <add name="ServiceModel-4.0" type="System.ServiceModel.Activation.ServiceHttpModule,System.ServiceModel.Activation,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler,runtimeVersionv4.0" /> - <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="managedHandler,runtimeVersionv4.0" /> - <add name="ScriptModule-4.0" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler,runtimeVersionv4.0" /> - <add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler,runtimeVersionv2.0" /> - <add name="ApplicationInitializationModule" lockItem="true" /> - </modules> - <handlers accessPolicy="Read, Script"> - <!-- <add name="WebDAV" path="*" verb="PROPFIND,PROPPATCH,MKCOL,PUT,COPY,DELETE,MOVE,LOCK,UNLOCK" modules="WebDAVModule" resourceType="Unspecified" requireAccess="None" /> --> - <add name="AXD-ISAPI-4.0_64bit" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="PageHandlerFactory-ISAPI-4.0_64bit" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="SimpleHandlerFactory-ISAPI-4.0_64bit" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="WebServiceHandlerFactory-ISAPI-4.0_64bit" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="HttpRemotingHandlerFactory-rem-ISAPI-4.0_64bit" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="HttpRemotingHandlerFactory-soap-ISAPI-4.0_64bit" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="svc-ISAPI-4.0_64bit" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" /> - <add name="rules-ISAPI-4.0_64bit" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" /> - <add name="xoml-ISAPI-4.0_64bit" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" /> - <add name="xamlx-ISAPI-4.0_64bit" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" /> - <add name="aspq-ISAPI-4.0_64bit" path="*.aspq" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="cshtm-ISAPI-4.0_64bit" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="cshtml-ISAPI-4.0_64bit" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="vbhtm-ISAPI-4.0_64bit" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="vbhtml-ISAPI-4.0_64bit" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="svc-Integrated" path="*.svc" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="svc-ISAPI-2.0" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" /> - <add name="xoml-Integrated" path="*.xoml" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="xoml-ISAPI-2.0" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" /> - <add name="rules-Integrated" path="*.rules" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="rules-ISAPI-2.0" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" /> - <add name="AXD-ISAPI-4.0_32bit" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="PageHandlerFactory-ISAPI-4.0_32bit" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="SimpleHandlerFactory-ISAPI-4.0_32bit" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="WebServiceHandlerFactory-ISAPI-4.0_32bit" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="HttpRemotingHandlerFactory-rem-ISAPI-4.0_32bit" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="HttpRemotingHandlerFactory-soap-ISAPI-4.0_32bit" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="svc-ISAPI-4.0_32bit" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" /> - <add name="rules-ISAPI-4.0_32bit" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" /> - <add name="xoml-ISAPI-4.0_32bit" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" /> - <add name="xamlx-ISAPI-4.0_32bit" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" /> - <add name="aspq-ISAPI-4.0_32bit" path="*.aspq" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="cshtm-ISAPI-4.0_32bit" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="cshtml-ISAPI-4.0_32bit" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="vbhtm-ISAPI-4.0_32bit" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="vbhtml-ISAPI-4.0_32bit" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="TraceHandler-Integrated-4.0" path="trace.axd" verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TraceHandler" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="WebAdminHandler-Integrated-4.0" path="WebAdmin.axd" verb="GET,DEBUG" type="System.Web.Handlers.WebAdminHandler" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="AssemblyResourceLoader-Integrated-4.0" path="WebResource.axd" verb="GET,DEBUG" type="System.Web.Handlers.AssemblyResourceLoader" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="PageHandlerFactory-Integrated-4.0" path="*.aspx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="SimpleHandlerFactory-Integrated-4.0" path="*.ashx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.SimpleHandlerFactory" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="WebServiceHandlerFactory-Integrated-4.0" path="*.asmx" verb="GET,HEAD,POST,DEBUG" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="HttpRemotingHandlerFactory-rem-Integrated-4.0" path="*.rem" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="HttpRemotingHandlerFactory-soap-Integrated-4.0" path="*.soap" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="svc-Integrated-4.0" path="*.svc" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="rules-Integrated-4.0" path="*.rules" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="xoml-Integrated-4.0" path="*.xoml" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="xamlx-Integrated-4.0" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" type="System.Xaml.Hosting.XamlHttpHandlerFactory, System.Xaml.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="aspq-Integrated-4.0" path="*.aspq" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="cshtm-Integrated-4.0" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="cshtml-Integrated-4.0" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="vbhtm-Integrated-4.0" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="vbhtml-Integrated-4.0" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="ScriptHandlerFactoryAppServices-Integrated-4.0" path="*_AppService.axd" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="ScriptResourceIntegrated-4.0" path="*ScriptResource.axd" verb="GET,HEAD" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="ASPClassic" path="*.asp" verb="GET,HEAD,POST" modules="IsapiModule" scriptProcessor="%IIS_BIN%\asp.dll" resourceType="File" /> - <add name="SecurityCertificate" path="*.cer" verb="GET,HEAD,POST" modules="IsapiModule" scriptProcessor="%IIS_BIN%\asp.dll" resourceType="File" /> - <add name="ISAPI-dll" path="*.dll" verb="*" modules="IsapiModule" resourceType="File" requireAccess="Execute" allowPathInfo="true" /> - <add name="TraceHandler-Integrated" path="trace.axd" verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TraceHandler" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="WebAdminHandler-Integrated" path="WebAdmin.axd" verb="GET,DEBUG" type="System.Web.Handlers.WebAdminHandler" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="AssemblyResourceLoader-Integrated" path="WebResource.axd" verb="GET,DEBUG" type="System.Web.Handlers.AssemblyResourceLoader" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="PageHandlerFactory-Integrated" path="*.aspx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="SimpleHandlerFactory-Integrated" path="*.ashx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.SimpleHandlerFactory" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="WebServiceHandlerFactory-Integrated" path="*.asmx" verb="GET,HEAD,POST,DEBUG" type="System.Web.Services.Protocols.WebServiceHandlerFactory,System.Web.Services,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="HttpRemotingHandlerFactory-rem-Integrated" path="*.rem" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,System.Runtime.Remoting,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="HttpRemotingHandlerFactory-soap-Integrated" path="*.soap" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,System.Runtime.Remoting,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="AXD-ISAPI-2.0" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> - <add name="PageHandlerFactory-ISAPI-2.0" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> - <add name="SimpleHandlerFactory-ISAPI-2.0" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> - <add name="WebServiceHandlerFactory-ISAPI-2.0" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> - <add name="HttpRemotingHandlerFactory-rem-ISAPI-2.0" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> - <add name="HttpRemotingHandlerFactory-soap-ISAPI-2.0" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> - <add name="svc-ISAPI-2.0-64" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" /> - <add name="AXD-ISAPI-2.0-64" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" /> - <add name="PageHandlerFactory-ISAPI-2.0-64" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" /> - <add name="SimpleHandlerFactory-ISAPI-2.0-64" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" /> - <add name="WebServiceHandlerFactory-ISAPI-2.0-64" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" /> - <add name="HttpRemotingHandlerFactory-rem-ISAPI-2.0-64" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" /> - <add name="HttpRemotingHandlerFactory-soap-ISAPI-2.0-64" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" /> - <add name="rules-64-ISAPI-2.0" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" /> - <add name="xoml-64-ISAPI-2.0" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" /> - <add name="CGI-exe" path="*.exe" verb="*" modules="CgiModule" resourceType="File" requireAccess="Execute" allowPathInfo="true" /> - <add name="SSINC-stm" path="*.stm" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" /> - <add name="SSINC-shtm" path="*.shtm" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" /> - <add name="SSINC-shtml" path="*.shtml" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" /> - <add name="TRACEVerbHandler" path="*" verb="TRACE" modules="ProtocolSupportModule" requireAccess="None" /> - <add name="OPTIONSVerbHandler" path="*" verb="OPTIONS" modules="ProtocolSupportModule" requireAccess="None" /> - <add name="ExtensionlessUrl-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="ExtensionlessUrl-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" responseBufferLimit="0" /> - <add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" /> - </handlers> - </system.webServer> - </location> -</configuration> From c75fb3f6e909f6c0fd064fddd30851b8abb55a79 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Tue, 11 Apr 2023 07:28:22 -0500 Subject: [PATCH 65/71] make sure the word.doc and .app objects are released so we don't leave around a stranded winword.exe process --- src/SILConvertersWordML/FontsStylesForm.cs | 41 +++++++++++++++------- 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/src/SILConvertersWordML/FontsStylesForm.cs b/src/SILConvertersWordML/FontsStylesForm.cs index bb1c3493..a18f5729 100644 --- a/src/SILConvertersWordML/FontsStylesForm.cs +++ b/src/SILConvertersWordML/FontsStylesForm.cs @@ -421,7 +421,9 @@ protected DocXmlDocument ConvertDocToXml(Word.Application wrdApp, string strDocF ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing); - wrdDoc.Close(ref oMissing, ref oMissing, ref oMissing); + wrdDoc.Close(false); + Marshal.ReleaseComObject(wrdDoc); + wrdDoc = null; SaveIntermediateXmlFile(ref strXmlFilename, cstrLeftXmlFileSuffixBefore, strDocFilename, @@ -445,11 +447,7 @@ protected XDocument SaveIntermediateXmlFile(ref string strXmlFilename, string st { if (bSaveXmlOutputInFolder) { - if (doc == null) - { - doc = XDocument.Load(strXmlFilename); - // doc.Load(strXmlFilename); - } + doc ??= XDocument.Load(strXmlFilename); int nIndex = strDocFilename.LastIndexOf('.'); if (nIndex != -1) @@ -462,8 +460,8 @@ protected XDocument SaveIntermediateXmlFile(ref string strXmlFilename, string st File.Delete(strXmlFilename); } } - if (doc != null) - doc.Save(strXmlFilename); + + doc?.Save(strXmlFilename); } catch (Exception ex) { @@ -678,7 +676,9 @@ protected void ConvertXmlToDoc(Word.Application wrdApp, string strXmlFilename, s ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing); - wrdDoc.Close(ref oMissing, ref oMissing, ref oMissing); + wrdDoc.Close(false); + Marshal.ReleaseComObject(wrdDoc); + wrdDoc = null; try { @@ -849,8 +849,9 @@ private void convertAndSaveDocumentsToolStripMenuItem_Click(object sender, Event } finally { - ((Microsoft.Office.Interop.Word._Application)wrdApp).Quit(ref oMissing, ref oMissing, ref oMissing); + wrdApp.Quit(false); Marshal.ReleaseComObject(wrdApp); + wrdApp = null; Cursor = Cursors.Default; } } @@ -1062,9 +1063,24 @@ protected bool CheckForWinWord() { if (myProcess.ProcessName.ToLower() == "winword") { - DialogResult res = MessageBox.Show("Close all running instances of Microsoft Word (including Outlook when Word is your email editor) and then click OK to continue.", cstrCaption, MessageBoxButtons.OKCancel); + var res = MessageBox.Show("It's best for any existing running instances of Microsoft Word (including Outlook when Word is the email editor) to be closed before doing the conversion. Would you like to close any other instances?", cstrCaption, MessageBoxButtons.YesNoCancel); if (res == DialogResult.Cancel) + { return false; + } + else if (res == DialogResult.Yes) + { + try + { + myProcess.Close(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, cstrCaption); + } + bReady = true; + break; // it's not absolutely necessary -- it just does things like wanting to close the normal.dot file... so just skip it if the user has tried this at least once... + } bReady = false; } } @@ -1102,8 +1118,9 @@ protected void GetXmlDocuments(string[] astrFileNames) } finally { - ((Microsoft.Office.Interop.Word._Application)wrdApp).Quit(ref oMissing, ref oMissing, ref oMissing); + wrdApp.Quit(false); Marshal.ReleaseComObject(wrdApp); + wrdApp = null; } } From bb7765866cea3158fbf0a43131883616c474e621 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Tue, 11 Apr 2023 07:29:27 -0500 Subject: [PATCH 66/71] if the user changes some of the 'advanced' options, then we need to reload the documents --- .../FontsStylesForm.Designer.cs | 24 ++++--- src/SILConvertersWordML/FontsStylesForm.cs | 11 ++- src/SILConvertersWordML/FontsStylesForm.resx | 68 +++++++++++++------ 3 files changed, 68 insertions(+), 35 deletions(-) diff --git a/src/SILConvertersWordML/FontsStylesForm.Designer.cs b/src/SILConvertersWordML/FontsStylesForm.Designer.cs index 920ffc8e..c8d074eb 100644 --- a/src/SILConvertersWordML/FontsStylesForm.Designer.cs +++ b/src/SILConvertersWordML/FontsStylesForm.Designer.cs @@ -72,11 +72,11 @@ private void InitializeComponent() this.singlestepConversionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.leaveXMLFileInFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.useLinqToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.combineIntoIsoformattedParagraphToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolTip = new System.Windows.Forms.ToolTip(this.components); this.fontDialog = new System.Windows.Forms.FontDialog(); this.saveFileDialog = new System.Windows.Forms.SaveFileDialog(); this.helpProvider = new System.Windows.Forms.HelpProvider(); - this.combineIntoIsoformattedParagraphToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.tableLayoutPanel.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).BeginInit(); this.toolStrip.SuspendLayout(); @@ -505,6 +505,7 @@ private void InitializeComponent() this.leaveXMLFileInFolderToolStripMenuItem.Size = new System.Drawing.Size(280, 22); this.leaveXMLFileInFolderToolStripMenuItem.Text = "&Leave XML files in folder "; this.leaveXMLFileInFolderToolStripMenuItem.ToolTipText = resources.GetString("leaveXMLFileInFolderToolStripMenuItem.ToolTipText"); + this.leaveXMLFileInFolderToolStripMenuItem.CheckStateChanged += new System.EventHandler(this.SomeCheckStateChangedRequiringReload); // // useLinqToolStripMenuItem // @@ -515,7 +516,18 @@ private void InitializeComponent() this.useLinqToolStripMenuItem.Size = new System.Drawing.Size(280, 22); this.useLinqToolStripMenuItem.Text = "&Use Linq"; this.useLinqToolStripMenuItem.ToolTipText = "Check this menu to have the \'Linq\' technology attempt to do the conversion (may y" + - "ield a different result if the normal approach doesn\'t work). Check this menu before opening the document."; + "ield a different result if the normal approach doesn\'t work). Check this menu be" + + "fore opening the document."; + this.useLinqToolStripMenuItem.CheckStateChanged += new System.EventHandler(this.SomeCheckStateChangedRequiringReload); + // + // combineIntoIsoformattedParagraphToolStripMenuItem + // + this.combineIntoIsoformattedParagraphToolStripMenuItem.CheckOnClick = true; + this.combineIntoIsoformattedParagraphToolStripMenuItem.Name = "combineIntoIsoformattedParagraphToolStripMenuItem"; + this.combineIntoIsoformattedParagraphToolStripMenuItem.Size = new System.Drawing.Size(280, 22); + this.combineIntoIsoformattedParagraphToolStripMenuItem.Text = "&Combine into iso-formatted paragraph"; + this.combineIntoIsoformattedParagraphToolStripMenuItem.ToolTipText = resources.GetString("combineIntoIsoformattedParagraphToolStripMenuItem.ToolTipText"); + this.combineIntoIsoformattedParagraphToolStripMenuItem.CheckStateChanged += new System.EventHandler(this.SomeCheckStateChangedRequiringReload); // // fontDialog // @@ -528,14 +540,6 @@ private void InitializeComponent() this.saveFileDialog.RestoreDirectory = true; this.saveFileDialog.SupportMultiDottedExtensions = true; // - // combineIntoIsoformattedParagraphToolStripMenuItem - // - this.combineIntoIsoformattedParagraphToolStripMenuItem.CheckOnClick = true; - this.combineIntoIsoformattedParagraphToolStripMenuItem.Name = "combineIntoIsoformattedParagraphToolStripMenuItem"; - this.combineIntoIsoformattedParagraphToolStripMenuItem.Size = new System.Drawing.Size(280, 22); - this.combineIntoIsoformattedParagraphToolStripMenuItem.Text = "&Combine into iso-formatted paragraph"; - this.combineIntoIsoformattedParagraphToolStripMenuItem.ToolTipText = resources.GetString("combineIntoIsoformattedParagraphToolStripMenuItem.ToolTipText"); - // // FontsStylesForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); diff --git a/src/SILConvertersWordML/FontsStylesForm.cs b/src/SILConvertersWordML/FontsStylesForm.cs index a18f5729..89cbf3e3 100644 --- a/src/SILConvertersWordML/FontsStylesForm.cs +++ b/src/SILConvertersWordML/FontsStylesForm.cs @@ -679,7 +679,7 @@ protected void ConvertXmlToDoc(Word.Application wrdApp, string strXmlFilename, s wrdDoc.Close(false); Marshal.ReleaseComObject(wrdDoc); wrdDoc = null; - + try { // at least *try* to clean up the temp files @@ -1054,7 +1054,7 @@ internal static string GetTempFilename protected bool CheckForWinWord() { - bool bReady; + bool bReady; do { bReady = true; @@ -1081,7 +1081,7 @@ protected bool CheckForWinWord() bReady = true; break; // it's not absolutely necessary -- it just does things like wanting to close the normal.dot file... so just skip it if the user has tried this at least once... } - bReady = false; + bReady = false; } } } while (!bReady); @@ -1748,5 +1748,10 @@ internal void AddFontIfNeeded(DocXmlDocument doc, string strStyleName) RowMaxHeight = Math.Max(RowMaxHeight, font.Height); } } + + private void SomeCheckStateChangedRequiringReload(object sender, EventArgs e) + { + Program.myTimer.Start(); // force reload + } } } \ No newline at end of file diff --git a/src/SILConvertersWordML/FontsStylesForm.resx b/src/SILConvertersWordML/FontsStylesForm.resx index 76c71d4e..06371ef3 100644 --- a/src/SILConvertersWordML/FontsStylesForm.resx +++ b/src/SILConvertersWordML/FontsStylesForm.resx @@ -117,6 +117,9 @@ <resheader name="writer"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> + <metadata name="toolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>656, 17</value> + </metadata> <metadata name="ColumnFont.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <value>True</value> </metadata> @@ -135,6 +138,21 @@ <metadata name="helpProvider.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>945, 17</value> </metadata> + <metadata name="ColumnFont.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>True</value> + </metadata> + <metadata name="ColumnSampleData.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>True</value> + </metadata> + <metadata name="ColumnConverter.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>True</value> + </metadata> + <metadata name="ColumnResults.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>True</value> + </metadata> + <metadata name="ColumnTargetFont.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>True</value> + </metadata> <metadata name="toolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>656, 17</value> </metadata> @@ -159,17 +177,17 @@ <data name="toolStripButtonAutoSearch.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <value> iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJQSURBVDhPrZDrS1NhHMfPnxD0L0S96kXYoKA30YuMdUEy - p+TSCloEc2BN6U0TSoUINllsbuBwOdlNzy5n9yu75DZSNgPRdYGlbnMsUygQdfpt5+zMS5H1og/8OAee - 5/N5nnOIP5HyDxxXapSqQak0Jxl8levrf6bi8/kn2eV97NEF1MeX+oRoOof0fA5aE4lANI5i+SsWV8rQ - kXZ0iZ9Od4gkx1i1Bi3+SjgegzccZd63K8D3jR0UvlUg15jQ2ikYZNUalvAcs1E26sOQ1o8RcwQKjRb5 - UnlPXlnfRja/BSq2gJb29s+sWsPsn2UCB5Eq1VgurdbktUpV3kQyuwHVZBI3W1oOB/SuaUYaqt5AMR7A - hCsJC0XB7g2juFY9ubCFxIcNOGd+QNgrAa+tTSnrF79gdYIYsyeZwEEK+SVI5a8xYnDAGpvHMJmEsIeW - b8Eg40P3UrS7F9GQMVY7zNtUBkq1Eo+EQtzpvIfbvCbIH19CcfQydqbuQt7XvSsdEF8n1MYQI0xNv4c/ - koLDF4PNEwHpDMFs82HMaIXe4kGXqBsPr51FRsLB8vBFrFI89AhugFCM+5gALdPS/gRhtvuhJ13QU1F0 - iJ5DwG1oFlxtQLD3HB40nkYrl9NEyN+4mYAzEMekI4gJyl8VfTDZvDCQbhgtbmjMIXD5T0B/Mh25cOYU - Gs+faGb+QT3wLj0HS/VU0hGA0ephRGv1Jp5QAgqdF5wr95nAb9QDNJtbFRRL6/j4pYzZbBGJzBKiM4ug - 9/w1QD+PmiMD9OK/DKv8TwjiJ9i0Qb45QxnYAAAAAElFTkSuQmCC + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJTSURBVDhPrZDrS1NhHMfPnxD0L0S96kWYUNCb6EXGuiDZ + VHJpBS2CObCm9KYFpfYi2MZicwOHV7Y5PZs7013OLuyS22iyGYiuCyx1m2OZQsFwTr+dc3a8FVkv+sCP + c+B5Pp/nOYf4E3G657jWoNX1KhQZee/rzPPuZzqRSHSSX97HHlrE7njinxBKZpBcyGBwjIQ3FEG++BVL + q0WMkHa0y54mWqXyY7xahRV/JRAJwx0Ice9bFeB7aRu5bxWoDWNoahP38moVa2Ce26gc8EA1SKPfEoTG + MIhsobgnr25sIZ0tgwovQtjS8plXq1joOS5wEIVWj5XCWlVerzDyJmLpEnQTMdwUCg8HjNMJTlIxN9CM + ejE+HYOVomB3B5BfZ07OlRH9UMLU7A9IuuRobG7WKrtlL3mdIIbtMS5wkFx2GQr1G/SbHLCFF9BHxiDp + ZOVbMClFGHol3dmLGMgwrx3mbTwFrV6LRxIJ7rTdw+3GeqgfX0J+4DK2Z+5CJe/YUfTIrhN6s58TZhLv + QQfjcHjCmHQFQU75YZn0YNhsg9HqQru0Aw+vnUVKXouVvotYoxrRKb4BQjPq4QKszEr744PFTsNITsNI + hdAqfQGxoKZBfLUGvq5zeFB3Gk2C2npCPeTkAlPeCCYcPoxTNCN6MDbphol0wmx1wmDxQyB6AvaT2ciF + M6dQd/5EA/cPdgPvkvOwMqeSDi/MNhcn2pibuPxRaEbcqL1ynwv8xm6AZbNcQb6wgY9fiphL5xFNLSM0 + uwR2z18D7POoOTLALv7L8Mr/hCB+AskzQbeWD9t7AAAAAElFTkSuQmCC </value> </data> <data name="toolStripButtonConvertAndSave.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> @@ -197,17 +215,17 @@ <data name="toolStripButtonSingleStep.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <value> iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJZSURBVDhPtZBfSFNhGMZ321VeBEE3ddFFRSGE0R+WtLJV - VDgKLHC0/pAMyZWzU003z7bTPG5tc7bp1mabMyUXxTSKMrAYEaSF5ULbtKitGlMrdZWS5Xk60w9CWnVT - P/guXt7n97zwCf4b3Q86Vl70GKTNnmqolMeW3QsGs8jq75gN1JaAjwVL01zkPs012plXgUYW7a0eFYn8 - mSpenIgxSF/HsA1+F4PJmGFm7unu3EBiv6feQX/mhmp4gZ0tqNMjPTe5quCyqOF3W/NJNDMNtZW8YEWT - UwcM2eCt1YDji3x1Onx5zcBpUXWSaGZs+pKZi97zKnBJG1ymk5jmC51GClPxauipQ1ESncXn0Gq8Dh3S - 71ab/xxLyXjRCndNKabemFBvkGPqrRHm8qOYiJ2F8uDufqIKBAGLZV6Ty4CxFwy/ZHDFq4VaLsH3hAl3 - Wk8gFdUgdLUEn17SaLUXIRWpgLxQHCb6LM1uVq8s3ISRfi3GB9VwaiWYjLMYHdRjbECN0YgKHyMUxqIq - JHqKcUQifETUn7S4jdRMSbgMw08UGH2uRWpAj/EIjfd9FUj2nkay5ziiHfsg3bk2RLS5eGo1l9Ml77rk - SHQrMMxLH/rKMfLsDOIPi/D02jZc0uZy+7fn3CXKXILBmqxTMjGTLum9sRfX7RLu9oU9XLhtFx4HNqOr - WYjqYuFX5YGtTqL8SouZXsB/Ip0usdJ5nJcWcSFvLm461k3LZIu/7di4AtThvEUknhm6WLy0UlFQJs1f - 3569av7kmuULIcpZ0l8oXt1QWiDKJrF/gUDwA0zJbjxPK11bAAAAAElFTkSuQmCC + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJYSURBVDhPtZBdSJNhGIZ32lEeBEEnddBBRSGE0Q8mrWwV + FY4CCxytH5IhaTn7qunmt+1z7adNt5xubDadTNqi2IR+MLDYQZAWlgvXpkVt1Ziz2rRytPK7+6YvhGR1 + Uhe8Bw/Pfd0PvLz/xuCDvrVXnBqRx6mDTHpq1X2/v4Cs/o5RQ+3wdWqhoWk2HKTZrlbmla9Li16vU0Yi + f6aJE6djDPLXkTLDbWeQjWlm56HB/i0k9nvarfRndryFE7RzBW1q5Odu+0XYTXK4Hc1lJLowHZZGTmhG + t00FjJvhsijAckWdbSp8ec3AZpL1k+jCmNXVsxddl2Vgk2bYDWcxwxXa9BRycR3U1LEoic7RaVUqXFYV + 8u9OwH1JS4k5sRmOllrk3hjQrpEg91YPY/1JTMeaID26P0xUHs9nMi3qtmuQecFwSwbXXErIJUJ8Txhw + 13sGU1EFgter8eklDW9rJaYiDZBUCEJEn8Pj0KqlFdswEVZickwOm1KIbFyL9JgamVE50hEZPkYoZKIy + JIaqcEJY/IioP+lx6KnZklAdUk9qkH6uxNSoGpMRGu9HGpAcPo/k0GlE+w5BtHdjkGjzcVoUV/Ml7wYk + SAzWIMVJH0bqMfHsAuIPK/H0xi646RL28O6ie0SZj9/fUnBOLGDyJcM3DyJgEbK3bQfYUGAfHvu2Y8BT + DF1V8VfpkZ02ovxKj5Fewn0inS8x0qVsB81ng64S3LJumhGLl3/bs3UNqOOly0h8YegqwcrGmvI6Udnm + 3sJ1i7MbVi8Fv2hFuEKwvqO2nF9IYv8CHu8HJNZuJZmI/4AAAAAASUVORK5CYII= </value> </data> <metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> @@ -225,6 +243,9 @@ <data name="combineIntoIsoformattedParagraphToolStripMenuItem.ToolTipText" xml:space="preserve"> <value>Check this menu to combine all the runs of text in a paragraph into a single run that has the formatting of the initial run of the paragraph. This is primarily to combine all the words in a paragraph together so they get converted together, which is recommended for when using a Translating EncConverter like Bing or DeepL, which work best with full sentences of text. Check this menu before opening the document.</value> </data> + <metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>347, 17</value> + </metadata> <metadata name="fontDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>432, 17</value> </metadata> @@ -234,6 +255,9 @@ <data name="saveFileDialog.Filter" xml:space="preserve"> <value>Word Document (*.doc)|*.doc|XML Document (*.xml)|*.xml|Single File Web Page (*.mht; *.mhtml)|*.mht; *.mhtml|Web Page (*.htm; *.html)|*.htm; *.html|Document Template (*.dot)|*.dot|Rich Text Format (*.rtf)|*.rtf|Encoded Text (*.txt)|*.txt|All files (*.*)|*.*</value> </data> + <metadata name="helpProvider.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>945, 17</value> + </metadata> <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <value> AAABAAIAICAQAAAAAADoAgAAJgAAABAQEAAAAAAAKAEAAA4DAAAoAAAAIAAAAEAAAAABAAQAAAAAAIAC From d1211300212991787fee81039a5bb3e36e348bc4 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Wed, 12 Apr 2023 14:53:12 -0500 Subject: [PATCH 67/71] Change how the 'combineAllRunsIntoASingleRun' works so that if the first run(s) contains only punctuation, they don't define the font to use for the full run (since they are often in a different font in Word) --- src/SILConvertersWordML/WordLinqDocument.cs | 33 +++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/SILConvertersWordML/WordLinqDocument.cs b/src/SILConvertersWordML/WordLinqDocument.cs index 37e9da9f..14da9ebc 100644 --- a/src/SILConvertersWordML/WordLinqDocument.cs +++ b/src/SILConvertersWordML/WordLinqDocument.cs @@ -235,13 +235,46 @@ public static void CombineAllRunsIntoSingleRun(XDocument doc) if (firstRun == null) continue; + bool firstNonPunctuationFound = false; XElement textOfNextRun, textOfFirstRun = Get_t(firstRun); for (var i = runs.IndexOf(firstRun) + 1; i < runs.Count; i++) { // combine the text of any subsequent "w:r"s that have text into the text field of the 1st one var nextRun = runs[i]; if ((nextRun.Name == w + "r") && ((textOfNextRun = Get_t(nextRun)) != null)) + { + // Often, punctuation comes across as the wrong font (e.g. if you have a double + // quote in Nastaliq, it'll be Times New Roman in Word. For punctuation-initial + // runs, we don't want them to set the font/style of the combined run... + // if we haven't already found the first non-punctuation run of text, + // check the current accumulated text and if it's all punctuation, then + // if the next run is non-punctuation, then swap them, so that becomes + // the first run + if (!firstNonPunctuationFound) + { + // if the current first run is all punctuation... + if (textOfFirstRun.Value.All(ch => Char.IsPunctuation(ch))) + { + // if the next run has some non-punctuation... + if (!textOfNextRun.Value.All(ch => Char.IsPunctuation(ch))) + { + // then let's use that next run as a new first run and prepend + // its data with the earlier punctuation. + var previousPunctuation = textOfFirstRun.Value; + firstRun.Remove(); + firstRun = nextRun; + textOfFirstRun = Get_t(firstRun); + textOfFirstRun.Value = previousPunctuation + textOfFirstRun.Value; + firstNonPunctuationFound = true; + continue; + } + } + else + firstNonPunctuationFound = true; + } + textOfFirstRun.Value += textOfNextRun.Value; + } // anything else (and any after the 1st one) are removed nextRun.Remove(); From ea79bf641ccff2cbfce4d6d50461c5fd4317b066 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Wed, 12 Apr 2023 14:54:21 -0500 Subject: [PATCH 68/71] if the user chooses a Translator EncConverter, suggest that they use 'combineIsoFormattedParagraphs' --- src/SILConvertersWordML/FontsStylesForm.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/SILConvertersWordML/FontsStylesForm.cs b/src/SILConvertersWordML/FontsStylesForm.cs index 89cbf3e3..1905e730 100644 --- a/src/SILConvertersWordML/FontsStylesForm.cs +++ b/src/SILConvertersWordML/FontsStylesForm.cs @@ -1191,7 +1191,17 @@ private void dataGridView_CellMouseClick(object sender, DataGridViewCellMouseEve strFontName = strFontStyleName; IEncConverter aIEC = aECs.AutoSelectWithData(strExampleData, strFontName, ConvType.Unknown, "Select Converter"); if (aIEC != null) + { aEC = new DirectableEncConverter(aIEC); + if (((aIEC.ProcessType & (int)ProcessTypeFlags.Translation) == (int)ProcessTypeFlags.Translation) && + (!combineIntoIsoformattedParagraphToolStripMenuItem.Checked)) + { + if (MessageBox.Show("If you are using a Translator type converter, you probably want to combine all the data in a paragraph into a single font/style or it won't be converted together (which will likely give a less accurate translation). Would you like to combine the text into the style of the first run of text in the paragraph so they are translated as a unit? (you will lose any specially formatting within the paragraph)?", cstrCaption, MessageBoxButtons.YesNo) == DialogResult.Yes) + { + combineIntoIsoformattedParagraphToolStripMenuItem.CheckState = CheckState.Checked; + } + } + } } } From 385ef73699e3b7ecc617e84a6eaa9693439bf6b5 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Wed, 12 Apr 2023 14:54:27 -0500 Subject: [PATCH 69/71] added a unit test to make sure that if we're converting paragraphs within table cells, that they are done properly. --- .../TestBwdc/TestBwdc.csproj | 2 + ...stFile_ConvertMiddleTableCell_Expected.xml | 650 +++ .../TestFile_ConvertMiddleTableCell_Input.xml | 3547 +++++++++++++++++ .../TestBwdc/UnitTest_BulkWordDocConverter.cs | 57 +- 4 files changed, 4252 insertions(+), 4 deletions(-) create mode 100644 src/SILConvertersWordML/TestBwdc/TestFiles/BulkWordDocConverter/TestFile_ConvertMiddleTableCell_Expected.xml create mode 100644 src/SILConvertersWordML/TestBwdc/TestFiles/BulkWordDocConverter/TestFile_ConvertMiddleTableCell_Input.xml diff --git a/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj b/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj index 4ec0c75d..e617bf82 100644 --- a/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj +++ b/src/SILConvertersWordML/TestBwdc/TestBwdc.csproj @@ -288,6 +288,8 @@ <Content Include="redist\Help\Technical_Hindi_%28Google_group%29_Html_Converter_Plug-in_About_box.htm" /> <Content Include="redist\Help\TECkit_Map_Plug-in_About_box.htm" /> <Content Include="TestFiles\BulkWordDocConverter\TestFile1.xml" /> + <EmbeddedResource Include="TestFiles\BulkWordDocConverter\TestFile_ConvertMiddleTableCell_Expected.xml" /> + <EmbeddedResource Include="TestFiles\BulkWordDocConverter\TestFile_ConvertMiddleTableCell_Input.xml" /> <Content Include="TestFiles\BulkWordDocConverter\TestFile2.xml" /> <EmbeddedResource Include="TestFiles\PtxBackTrHelper\CombinedInSourceAndTargetWithVaOverride\CombinedInSourceAndTargetWithVaOverride_TranslatedText.txt" /> <EmbeddedResource Include="TestFiles\PtxBackTrHelper\CombinedInSourceSeparateNoEmptyInTarget\CombinedInSourceSeparateNoEmptyInTarget_TranslatedText.txt" /> diff --git a/src/SILConvertersWordML/TestBwdc/TestFiles/BulkWordDocConverter/TestFile_ConvertMiddleTableCell_Expected.xml b/src/SILConvertersWordML/TestBwdc/TestFiles/BulkWordDocConverter/TestFile_ConvertMiddleTableCell_Expected.xml new file mode 100644 index 00000000..246783df --- /dev/null +++ b/src/SILConvertersWordML/TestBwdc/TestFiles/BulkWordDocConverter/TestFile_ConvertMiddleTableCell_Expected.xml @@ -0,0 +1,650 @@ +<w:tbl> + <w:tblPr> + <w:bidiVisual /> + <w:tblW w:w="0" w:type="auto" /> + <w:tblBorders> + <w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto" /> + <w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto" /> + <w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto" /> + <w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto" /> + <w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto" /> + <w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto" /> + </w:tblBorders> + <w:tblLook w:val="04A0" /> + </w:tblPr> + <w:tblGrid> + <w:gridCol w:w="4261" /> + <w:gridCol w:w="4410" /> + <w:gridCol w:w="4505" /> + </w:tblGrid> + <w:tr wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidTr="0080395C"> + <w:trPr> + <w:cantSplit /> + <w:trHeight w:val="1134" /> + </w:trPr> + <w:tc> + <w:tcPr> + <w:tcW w:w="4261" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="c-ChapterNumber" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Arial Unicode MS" w:fareast="Arial Unicode MS" w:h-ansi="Arial Unicode MS" w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="40" /> + <w:sz-cs w:val="40" /> + </w:rPr> + <w:t>1</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4410" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="c-ChapterNumber" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t>1</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4505" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="00BD201A"> + <w:pPr> + <w:pStyle w:val="c-ChapterNumber" /> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t>1</w:t> + </w:r> + </w:p> + </w:tc> + </w:tr> + <w:tr wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidTr="0080395C"> + <w:trPr> + <w:cantSplit /> + <w:trHeight w:val="1134" /> + </w:trPr> + <w:tc> + <w:tcPr> + <w:tcW w:w="4261" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="s-Heading-SectionLevel1" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>यà¥à¤¹à¤¨à¥â€à¤¨à¤¾ दà¥à¤µà¤¾à¤°à¤¾ परमेशà¥à¤µà¤° के पà¥à¤¤à¥à¤° के लिठमारà¥à¤— तैयार किया जाना</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4410" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="s-Heading-SectionLevel1" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Mangal" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>یوØنا خدا Ú©Û’ بیٹے Ú©Û’ لیے Ø±Ø§Ø³ØªÛ ØªÛŒØ§Ø± کر رÛا ÛÛ’</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4505" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="00BD201A"> + <w:pPr> + <w:pStyle w:val="s-Heading-SectionLevel1" /> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>یوØنا خدا Ú©Û’ بیٹے Ú©Û’ لیے Ø±Ø§Ø³ØªÛ ØªÛŒØ§Ø± کر رÛا ÛÛ’</w:t> + </w:r> + </w:p> + </w:tc> + </w:tr> + <w:tr wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidTr="0080395C"> + <w:trPr> + <w:cantSplit /> + <w:trHeight w:val="1134" /> + </w:trPr> + <w:tc> + <w:tcPr> + <w:tcW w:w="4261" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="p-Paragraph-Normal-FirstLineIndent" /> + <w:ind w:first-line="0" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:cs="Nafees Nastaleeq" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:ascii="Arial Unicode MS" w:fareast="Arial Unicode MS" w:h-ansi="Arial Unicode MS" w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t>1 यह सà¥-समाचार परमेशà¥à¤µà¤° के पà¥à¤¤à¥à¤° यीशॠमसीह के विषय में है, जो इस जगत में देह धारण कर आया। यह इस पà¥à¤°à¤•à¤¾à¤° है… 2 यीशॠके देह धारण करने से लगà¤à¤— सात सौ वरà¥à¤· पहले यशायाह नामक à¤à¤• संत था। उसने यीशॠके विषय में परमेशà¥à¤µà¤° की ओर से à¤à¤µà¤¿à¤·à¥à¤¯à¤µà¤¾à¤£à¥€ कर यह वादा किया:</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4410" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="p-Paragraph-Normal-FirstLineIndent" /> + <w:ind w:first-line="0" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t>1Â ÛŒÛ Ø®Ùوشخبری Ø®Ùدا Ú©Û’ بیٹے ÛŒÙسÙوعؔ مسÙÛŒØ Ú©Û’ بارے میں ÛÛ’; جو اÙس دÙنیا میں اÙسان Ú©ÛŒ جÙسم میں کر آیا, ÛŒÛ Ø§Ùس Ú©Û’ بارے میں ÛÛ’Û”Û”Û” 2 یÙسÙوعؔ Ú©Û’ اÙسان Ú©ÛŒ جÙسم میں کرنے سے تقریباً سات سو سال Ù¾ÛÙ„Û’ ÛŒØ³Ø¹ÛŒØ§Û Ù†Ø§Ù… کا ایک نبی تھا, اÙس Ù†Û’ ÛŒÙسÙوعؔ Ú©Û’ بارے میں Ø®Ùدا Ú©ÛŒ تر٠سے پیشن گوئی کر ÛŒÛ ÙˆØ¹Ø¯Û Ú©ÛŒØ§:</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4505" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="p-Paragraph-Normal-FirstLineIndent" /> + <w:ind w:first-line="0" /> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t>1Â ÛŒÛ Ø®Ùوشخبری Ø®Ùدا Ú©Û’ بیٹے ÛŒÙسÙوعؔ مسÙÛŒØ Ú©Û’ بارے میں ÛÛ’; جو اÙس دÙنیا میں اÙسان Ú©ÛŒ جÙسم میں کر آیا, ÛŒÛ Ø§Ùس Ú©Û’ بارے میں ÛÛ’Û”Û”Û” 2 یÙسÙوعؔ Ú©Û’ اÙسان Ú©ÛŒ جÙسم میں کرنے سے تقریباً سات سو سال Ù¾ÛÙ„Û’ ÛŒØ³Ø¹ÛŒØ§Û Ù†Ø§Ù… کا ایک نبی تھا, اÙس Ù†Û’ ÛŒÙسÙوعؔ Ú©Û’ بارے میں Ø®Ùدا Ú©ÛŒ تر٠سے پیشن گوئی کر ÛŒÛ ÙˆØ¹Ø¯Û Ú©ÛŒØ§:</w:t> + </w:r> + </w:p> + </w:tc> + </w:tr> + <w:tr wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidTr="0080395C"> + <w:trPr> + <w:cantSplit /> + <w:trHeight w:val="1134" /> + </w:trPr> + <w:tc> + <w:tcPr> + <w:tcW w:w="4261" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="q1-Poetry-IndentLevel1" /> + <w:ind w:left="0" w:first-line="0" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>“‘देख! मैं अपने दूत को तà¥à¤ से पहले à¤à¥‡à¤œ रहा हूà¤,</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4410" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="q1-Poetry-IndentLevel1" /> + <w:ind w:left="0" w:first-line="0" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Mangal" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>“‘دیکھ! مَیں اپنے پیغمبر Ú©Ùˆ تÙجھ سے Ù¾ÛÙ„Û’ بھیج رÛا ÛÙÙˆÚº;</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4505" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="q1-Poetry-IndentLevel1" /> + <w:ind w:left="0" w:first-line="0" /> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>“‘دیکھ! مَیں اپنے پیغمبر Ú©Ùˆ تÙجھ سے Ù¾ÛÙ„Û’ بھیج رÛا ÛÙÙˆÚº;</w:t> + </w:r> + </w:p> + </w:tc> + </w:tr> + <w:tr wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidTr="0080395C"> + <w:trPr> + <w:cantSplit /> + <w:trHeight w:val="1134" /> + </w:trPr> + <w:tc> + <w:tcPr> + <w:tcW w:w="4261" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="q2-Poetry-IndentLevel2" /> + <w:ind w:left="0" w:first-line="0" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>जो तेरे आने से पहले लोगों के मनों को तà¥à¤à¥‡ मान लेने के लिठतैयार करेगा।’†मलाकी 3:1</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4410" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="q2-Poetry-IndentLevel2" /> + <w:ind w:left="0" w:first-line="0" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Mangal" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>جو تیرے آنے سے Ù¾ÛÙ„Û’ لوگوں Ú©Û’ منوں Ú©Ùˆ تÙجھے مان لینے Ú©Û’ لئے تیار کرے گا;’â€</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4505" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="q2-Poetry-IndentLevel2" /> + <w:ind w:left="0" w:first-line="0" /> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>جو تیرے آنے سے Ù¾ÛÙ„Û’ لوگوں Ú©Û’ منوں Ú©Ùˆ تÙجھے مان لینے Ú©Û’ لئے تیار کرے گا;’â€</w:t> + </w:r> + </w:p> + </w:tc> + </w:tr> + <w:tr wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidTr="0080395C"> + <w:trPr> + <w:cantSplit /> + <w:trHeight w:val="1134" /> + </w:trPr> + <w:tc> + <w:tcPr> + <w:tcW w:w="4261" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="q1-Poetry-IndentLevel1" /> + <w:ind w:left="0" w:first-line="0" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:cs="Nafees Nastaleeq" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:ascii="Arial Unicode MS" w:fareast="Arial Unicode MS" w:h-ansi="Arial Unicode MS" w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t>3 “उजाड़ जंगल में à¤à¤• दूत की आवाज आते-जाते लोगों को सà¥à¤¨à¤¾à¤ˆ देगी —</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4410" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="q1-Poetry-IndentLevel1" /> + <w:ind w:left="0" w:first-line="0" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t>3 “اÙجاڑ جنگل میں ایک پیغمبر Ú©ÛŒ آواز آتے جاتے لوگوں Ú©Ùˆ سنائی دے Ú¯ÛŒ</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4505" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="q1-Poetry-IndentLevel1" /> + <w:ind w:left="0" w:first-line="0" /> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t>3 “اÙجاڑ جنگل میں ایک پیغمبر Ú©ÛŒ آواز آتے جاتے لوگوں Ú©Ùˆ سنائی دے Ú¯ÛŒ</w:t> + </w:r> + </w:p> + </w:tc> + </w:tr> + <w:tr wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidTr="0080395C"> + <w:trPr> + <w:cantSplit /> + <w:trHeight w:val="1134" /> + </w:trPr> + <w:tc> + <w:tcPr> + <w:tcW w:w="4261" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="q2-Poetry-IndentLevel2" /> + <w:ind w:left="0" w:first-line="0" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>‘पà¥à¤°à¤à¥ के आने से पहले अपने हृदयों को साफ करो, और अपना जीवन सà¥à¤§à¤¾à¤° लो’।†यशायाह 40:3</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4410" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="q2-Poetry-IndentLevel2" /> + <w:ind w:left="0" w:first-line="0" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Mangal" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>‘خÙداوند Ú©Û’ آنے سے Ù¾ÛÙ„Û’ اپنے اپنے دلوں Ú©Ùˆ صا٠کرو۔ اور اپنی زندگی سÙدھار لو’;â€</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4505" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="q2-Poetry-IndentLevel2" /> + <w:ind w:left="0" w:first-line="0" /> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>‘خÙداوند Ú©Û’ آنے سے Ù¾ÛÙ„Û’ اپنے اپنے دلوں Ú©Ùˆ صا٠کرو۔ اور اپنی زندگی سÙدھار لو’;â€</w:t> + </w:r> + </w:p> + </w:tc> + </w:tr> +</w:tbl> diff --git a/src/SILConvertersWordML/TestBwdc/TestFiles/BulkWordDocConverter/TestFile_ConvertMiddleTableCell_Input.xml b/src/SILConvertersWordML/TestBwdc/TestFiles/BulkWordDocConverter/TestFile_ConvertMiddleTableCell_Input.xml new file mode 100644 index 00000000..7994cb02 --- /dev/null +++ b/src/SILConvertersWordML/TestBwdc/TestFiles/BulkWordDocConverter/TestFile_ConvertMiddleTableCell_Input.xml @@ -0,0 +1,3547 @@ +<w:tbl> + <w:tblPr> + <w:bidiVisual /> + <w:tblW w:w="0" w:type="auto" /> + <w:tblBorders> + <w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto" /> + <w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto" /> + <w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto" /> + <w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto" /> + <w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto" /> + <w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto" /> + </w:tblBorders> + <w:tblLook w:val="04A0" /> + </w:tblPr> + <w:tblGrid> + <w:gridCol w:w="4261" /> + <w:gridCol w:w="4410" /> + <w:gridCol w:w="4505" /> + </w:tblGrid> + <w:tr wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidTr="0080395C"> + <w:trPr> + <w:cantSplit /> + <w:trHeight w:val="1134" /> + </w:trPr> + <w:tc> + <w:tcPr> + <w:tcW w:w="4261" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="c-ChapterNumber" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Arial Unicode MS" w:fareast="Arial Unicode MS" w:h-ansi="Arial Unicode MS" w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="40" /> + <w:sz-cs w:val="40" /> + </w:rPr> + <w:t>1</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4410" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="c-ChapterNumber" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t>1</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4505" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="00BD201A"> + <w:pPr> + <w:pStyle w:val="c-ChapterNumber" /> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t>1</w:t> + </w:r> + </w:p> + </w:tc> + </w:tr> + <w:tr wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidTr="0080395C"> + <w:trPr> + <w:cantSplit /> + <w:trHeight w:val="1134" /> + </w:trPr> + <w:tc> + <w:tcPr> + <w:tcW w:w="4261" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="s-Heading-SectionLevel1" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>यà¥à¤¹à¤¨à¥</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>â€</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>ना</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>दà¥à¤µà¤¾à¤°à¤¾</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>परमेशà¥à¤µà¤°</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>के</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>पà¥à¤¤à¥à¤°</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>के</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>लिà¤</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>मारà¥à¤—</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>तैयार</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>किया</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>जाना</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4410" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="s-Heading-SectionLevel1" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Mangal" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>یوØنا خدا Ú©Û’ بیٹے Ú©Û’ لیے Ø±Ø§Ø³ØªÛ ØªÛŒØ§Ø± کر رÛا ÛÛ’</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4505" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="00BD201A"> + <w:pPr> + <w:pStyle w:val="s-Heading-SectionLevel1" /> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>یوØنا خدا Ú©Û’ بیٹے Ú©Û’ لیے Ø±Ø§Ø³ØªÛ ØªÛŒØ§Ø± کر رÛا ÛÛ’</w:t> + </w:r> + </w:p> + </w:tc> + </w:tr> + <w:tr wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidTr="0080395C"> + <w:trPr> + <w:cantSplit /> + <w:trHeight w:val="1134" /> + </w:trPr> + <w:tc> + <w:tcPr> + <w:tcW w:w="4261" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="p-Paragraph-Normal-FirstLineIndent" /> + <w:ind w:first-line="0" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:cs="Nafees Nastaleeq" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:ascii="Arial Unicode MS" w:fareast="Arial Unicode MS" w:h-ansi="Arial Unicode MS" w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t>1 </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>यह</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>सà¥</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>-</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>समाचार</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>परमेशà¥à¤µà¤°</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>के</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>पà¥à¤¤à¥à¤°</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>यीशà¥</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>मसीह</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>के</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>विषय</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>में</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>है</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Arial Unicode MS" w:fareast="Arial Unicode MS" w:h-ansi="Arial Unicode MS" w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t>, </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>जो</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>इस</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>जगत</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>में</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>देह</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>धारण</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>कर</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>आया।</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>यह</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>इस</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>पà¥à¤°à¤•à¤¾à¤°</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>है</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>… </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:ascii="Arial Unicode MS" w:fareast="Arial Unicode MS" w:h-ansi="Arial Unicode MS" w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t>2 </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>यीशà¥</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>के</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>देह</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>धारण</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>करने</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>से</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>लगà¤à¤—</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>सात</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>सौ</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>वरà¥à¤·</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>पहले</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>यशायाह</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>नामक</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>à¤à¤•</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>संत</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>था।</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>उसने</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>यीशà¥</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>के</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>विषय</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>में</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>परमेशà¥à¤µà¤°</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>की</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>ओर</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>से</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>à¤à¤µà¤¿à¤·à¥à¤¯à¤µà¤¾à¤£à¥€</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>कर</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>यह</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>वादा</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>किया</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>:</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4410" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="p-Paragraph-Normal-FirstLineIndent" /> + <w:ind w:first-line="0" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t>1</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>ÛŒÛ Ø®Ùوشخبری Ø®Ùدا Ú©Û’ بیٹے ÛŒÙسÙوعؔ مسÙÛŒØ Ú©Û’ بارے میں ÛÛ’</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Mangal" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>; </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>جو اÙس دÙنیا میں اÙسان Ú©ÛŒ جÙسم میں کر آیا</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Mangal" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>, </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>ÛŒÛ Ø§Ùس Ú©Û’ بارے میں ÛÛ’Û”Û”Û”</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Mangal" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Mangal" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>2</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>ÛŒÙسÙوعؔ Ú©Û’ اÙسان Ú©ÛŒ جÙسم میں کرنے سے تقریباً سات سو سال Ù¾ÛÙ„Û’ ÛŒØ³Ø¹ÛŒØ§Û Ù†Ø§Ù… کا ایک نبی تھا</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Mangal" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>, </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>اÙس Ù†Û’ ÛŒÙسÙوعؔ Ú©Û’ بارے میں Ø®Ùدا Ú©ÛŒ تر٠سے پیشن گوئی کر ÛŒÛ ÙˆØ¹Ø¯Û Ú©ÛŒØ§</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Mangal" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>:</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4505" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="p-Paragraph-Normal-FirstLineIndent" /> + <w:ind w:first-line="0" /> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t>1</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:ascii="Cambria" w:h-ansi="Cambria" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>ÛŒÛ Ø®Ùوشخبری Ø®Ùدا Ú©Û’ بیٹے ÛŒÙسÙوعؔ مسÙÛŒØ Ú©Û’ بارے میں ÛÛ’; جو اÙس دÙنیا میں اÙسان Ú©ÛŒ جÙسم میں کر آیا, ÛŒÛ Ø§Ùس Ú©Û’ بارے میں ÛÛ’Û”Û”Û” </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>2</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:ascii="Cambria" w:h-ansi="Cambria" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>ÛŒÙسÙوعؔ Ú©Û’ اÙسان Ú©ÛŒ جÙسم میں کرنے سے تقریباً سات سو سال Ù¾ÛÙ„Û’ ÛŒØ³Ø¹ÛŒØ§Û Ù†Ø§Ù… کا ایک نبی تھا, اÙس Ù†Û’ ÛŒÙسÙوعؔ Ú©Û’ بارے میں Ø®Ùدا Ú©ÛŒ تر٠سے پیشن گوئی کر ÛŒÛ ÙˆØ¹Ø¯Û Ú©ÛŒØ§:</w:t> + </w:r> + </w:p> + </w:tc> + </w:tr> + <w:tr wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidTr="0080395C"> + <w:trPr> + <w:cantSplit /> + <w:trHeight w:val="1134" /> + </w:trPr> + <w:tc> + <w:tcPr> + <w:tcW w:w="4261" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="q1-Poetry-IndentLevel1" /> + <w:ind w:left="0" w:first-line="0" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Arial Unicode MS" w:fareast="Arial Unicode MS" w:h-ansi="Arial Unicode MS" w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t>“</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Arial Unicode MS" w:fareast="Arial Unicode MS" w:h-ansi="Arial Unicode MS" w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t>‘</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>देख</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>! </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>मैं</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>अपने</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>दूत</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>को</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>तà¥à¤</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>से</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>पहले</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Arial Unicode MS" w:fareast="Arial Unicode MS" w:h-ansi="Arial Unicode MS" w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>à¤à¥‡à¤œ</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>रहा</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>हूà¤</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Arial Unicode MS" w:fareast="Arial Unicode MS" w:h-ansi="Arial Unicode MS" w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t>,</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4410" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="q1-Poetry-IndentLevel1" /> + <w:ind w:left="0" w:first-line="0" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Mangal" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Mangal" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>“</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>‘دیکھ</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Mangal" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>! </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>مَیں اپنے پیغمبر Ú©Ùˆ تÙجھ سے Ù¾ÛÙ„Û’ بھیج رÛا ÛÙÙˆÚº</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Mangal" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>;</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4505" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="q1-Poetry-IndentLevel1" /> + <w:ind w:left="0" w:first-line="0" /> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>“‘</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>دیکھ! مَیں اپنے پیغمبر Ú©Ùˆ تÙجھ سے Ù¾ÛÙ„Û’ بھیج رÛا ÛÙÙˆÚº;</w:t> + </w:r> + </w:p> + </w:tc> + </w:tr> + <w:tr wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidTr="0080395C"> + <w:trPr> + <w:cantSplit /> + <w:trHeight w:val="1134" /> + </w:trPr> + <w:tc> + <w:tcPr> + <w:tcW w:w="4261" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="q2-Poetry-IndentLevel2" /> + <w:ind w:left="0" w:first-line="0" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>जो</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>तेरे</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>आने</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>से</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>पहले</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Arial Unicode MS" w:fareast="Arial Unicode MS" w:h-ansi="Arial Unicode MS" w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>लोगों</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>के</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>मनों</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>को</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Arial Unicode MS" w:fareast="Arial Unicode MS" w:h-ansi="Arial Unicode MS" w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>तà¥à¤à¥‡</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>मान</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>लेने</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>के</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>लिà¤</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>तैयार</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>करेगा।</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>’†</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rStyle w:val="rqrq-CrossReference-InlineQuotationReferences" /> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:i-cs /> + <w:sz w:val="22" /> + <w:sz-cs w:val="22" /> + <w:cs /> + </w:rPr> + <w:t>मलाकी</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rStyle w:val="rqrq-CrossReference-InlineQuotationReferences" /> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:i-cs /> + <w:sz w:val="22" /> + <w:sz-cs w:val="22" /> + <w:cs /> + </w:rPr> + <w:t> 3:1</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4410" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="q2-Poetry-IndentLevel2" /> + <w:ind w:left="0" w:first-line="0" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Mangal" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>جو تیرے آنے سے Ù¾ÛÙ„Û’ لوگوں Ú©Û’ منوں Ú©Ùˆ تÙجھے مان لینے Ú©Û’ لئے تیار کرے گا</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Mangal" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>;</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>’</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Mangal" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>â€</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4505" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="q2-Poetry-IndentLevel2" /> + <w:ind w:left="0" w:first-line="0" /> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>جو تیرے آنے سے Ù¾ÛÙ„Û’ لوگوں Ú©Û’ منوں Ú©Ùˆ تÙجھے مان لینے Ú©Û’ لئے تیار کرے گا;</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>’â€</w:t> + </w:r> + </w:p> + </w:tc> + </w:tr> + <w:tr wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidTr="0080395C"> + <w:trPr> + <w:cantSplit /> + <w:trHeight w:val="1134" /> + </w:trPr> + <w:tc> + <w:tcPr> + <w:tcW w:w="4261" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="q1-Poetry-IndentLevel1" /> + <w:ind w:left="0" w:first-line="0" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:cs="Nafees Nastaleeq" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:ascii="Arial Unicode MS" w:fareast="Arial Unicode MS" w:h-ansi="Arial Unicode MS" w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t>3 </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Arial Unicode MS" w:fareast="Arial Unicode MS" w:h-ansi="Arial Unicode MS" w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t>“</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>उजाड़</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>जंगल</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>में</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>à¤à¤•</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>दूत</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>की</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>आवाज</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Arial Unicode MS" w:fareast="Arial Unicode MS" w:h-ansi="Arial Unicode MS" w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>आते</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>-</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>जाते</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>लोगों</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>को</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>सà¥à¤¨à¤¾à¤ˆ</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>देगी</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> —</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4410" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="q1-Poetry-IndentLevel1" /> + <w:ind w:left="0" w:first-line="0" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t>3</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Mangal" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>“</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>اÙجاڑ جنگل میں ایک پیغمبر Ú©ÛŒ آواز آتے جاتے لوگوں Ú©Ùˆ سنائی دے Ú¯ÛŒ</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4505" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="q1-Poetry-IndentLevel1" /> + <w:ind w:left="0" w:first-line="0" /> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t>3</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rStyle w:val="v-VerseNumber" /> + <w:rFonts w:ascii="Cambria" w:h-ansi="Cambria" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>“</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>اÙجاڑ جنگل میں ایک پیغمبر Ú©ÛŒ آواز آتے جاتے لوگوں Ú©Ùˆ سنائی دے Ú¯ÛŒ</w:t> + </w:r> + </w:p> + </w:tc> + </w:tr> + <w:tr wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidTr="0080395C"> + <w:trPr> + <w:cantSplit /> + <w:trHeight w:val="1134" /> + </w:trPr> + <w:tc> + <w:tcPr> + <w:tcW w:w="4261" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="q2-Poetry-IndentLevel2" /> + <w:ind w:left="0" w:first-line="0" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Arial Unicode MS" w:fareast="Arial Unicode MS" w:h-ansi="Arial Unicode MS" w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t>‘</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>पà¥à¤°à¤à¥</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>के</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>आने</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>से</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>पहले</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Arial Unicode MS" w:fareast="Arial Unicode MS" w:h-ansi="Arial Unicode MS" w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>अपने</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>हृदयों</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>को</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>साफ</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>करो</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Arial Unicode MS" w:fareast="Arial Unicode MS" w:h-ansi="Arial Unicode MS" w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + <w:t>, </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>और</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>अपना</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>जीवन</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>सà¥à¤§à¤¾à¤°</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t> </w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>लो</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>’</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>।</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:cs /> + </w:rPr> + <w:t>†</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rStyle w:val="rqrq-CrossReference-InlineQuotationReferences" /> + <w:rFonts w:cs="Arial Unicode MS" w:hint="fareast" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:i-cs /> + <w:sz w:val="22" /> + <w:sz-cs w:val="22" /> + <w:cs /> + </w:rPr> + <w:t>यशायाह</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rStyle w:val="rqrq-CrossReference-InlineQuotationReferences" /> + <w:rFonts w:cs="Arial Unicode MS" /> + <wx:font wx:val="Arial Unicode MS" /> + <w:i-cs /> + <w:sz w:val="22" /> + <w:sz-cs w:val="22" /> + <w:cs /> + </w:rPr> + <w:t> 40:3</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4410" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="q2-Poetry-IndentLevel2" /> + <w:ind w:left="0" w:first-line="0" /> + <w:jc w:val="right" /> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Mangal" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>‘خÙداوند Ú©Û’ آنے سے Ù¾ÛÙ„Û’ اپنے اپنے دلوں Ú©Ùˆ صا٠کرو۔ اور اپنی زندگی سÙدھار لو’</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <wx:font wx:val="Mangal" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>;â€</w:t> + </w:r> + </w:p> + </w:tc> + <w:tc> + <w:tcPr> + <w:tcW w:w="4505" w:type="dxa" /> + <w:shd w:val="clear" w:color="auto" w:fill="auto" /> + </w:tcPr> + <w:p wsp:rsidR="00BD201A" wsp:rsidRPr="0080395C" wsp:rsidRDefault="00BD201A" wsp:rsidP="0080395C"> + <w:pPr> + <w:pStyle w:val="q2-Poetry-IndentLevel2" /> + <w:ind w:left="0" w:first-line="0" /> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + </w:rPr> + </w:pPr> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>‘</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>Ø®Ùداوند Ú©Û’ آنے سے Ù¾ÛÙ„Û’ اپنے اپنے دلوں Ú©Ùˆ صا٠کرو۔ اور اپنی زندگی سÙدھار لو</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>’</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:cs="Nafees Nastaleeq" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>;</w:t> + </w:r> + <w:r wsp:rsidRPr="0080395C"> + <w:rPr> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> + <wx:font wx:val="Times New Roman" /> + <w:sz w:val="28" /> + <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> + </w:rPr> + <w:t>â€</w:t> + </w:r> + </w:p> + </w:tc> + </w:tr> +</w:tbl> diff --git a/src/SILConvertersWordML/TestBwdc/UnitTest_BulkWordDocConverter.cs b/src/SILConvertersWordML/TestBwdc/UnitTest_BulkWordDocConverter.cs index 9b266ed8..392d43a3 100644 --- a/src/SILConvertersWordML/TestBwdc/UnitTest_BulkWordDocConverter.cs +++ b/src/SILConvertersWordML/TestBwdc/UnitTest_BulkWordDocConverter.cs @@ -6,6 +6,7 @@ using System.Xml.Linq; using Microsoft.VisualStudio.TestTools.UnitTesting; using SILConvertersWordML; +using TestBwdc.TestFiles; namespace TestBwdc { @@ -1322,11 +1323,59 @@ public void TestingCombiningRunsIntoSingleIsoFormattedParagraph_With_Initial_Non AssertEqual(strResult, cstrOutput); } - public void AssertEqual(string str1, string str2) + [TestMethod] + public void TestingCombiningRunsIntoSingleIsoFormattedParagraph_With_Text_In_A_Table() + { + // from C:\My Paratext 9 Projects\xnrUr\Mark 1_1-8 Urdu.rtf + var input = TestModel.LoadEmbeddedResourceFileAsStringExecutingAssembly("TestFile_ConvertMiddleTableCell_Input.xml"); + var expected = TestModel.LoadEmbeddedResourceFileAsStringExecutingAssembly("TestFile_ConvertMiddleTableCell_Expected.xml"); + + var strExpectedDoc = String.Format(Properties.Resources.TestFile2, + expected); + var docExpected = XDocument.Parse(strExpectedDoc); + var paragraphsExpected = docExpected.Root.Descendants(WordLinqDocument.w + "p").ToList(); + + var strInput = String.Format(Properties.Resources.TestFile2, + input); + var doc = XDocument.Parse(strInput); + WordLinqDocument.CombineAllRunsIntoSingleRun(doc); + + var paragraphsOutput = doc.Root.Descendants(WordLinqDocument.w + "p").ToList(); + for (var i= 0; i < paragraphsOutput.Count; i++) + { + var paragraphExpected = paragraphsExpected[i]; + var strExpected = paragraphExpected.ToString(); + var paragraphOutput = paragraphsOutput[i]; + var strResult = paragraphOutput.ToString(); + AssertEqual(strExpected, strResult); + } + } + + public void AssertEqual(string strExpected, string strResult) + { + var expected = RemoveSomeAttributes(RemoveNameSpaces(strExpected)); + var result = RemoveSomeAttributes(RemoveNameSpaces(strResult)); + Assert.IsTrue(XmlUtilities.AreXmlElementsEqual(expected, result)); + } + + private static List<string> _attributesToRemove = new List<string> + { + "rsidP", + "rsidR", + "rsidRDefault", + "rsidRPr", + "rsidTr" + }; + + private string RemoveSomeAttributes(string xml) { - string ours = RemoveNameSpaces(str1); - string theirs = RemoveNameSpaces(str2); - Assert.IsTrue(XmlUtilities.AreXmlElementsEqual(ours, theirs)); + // some attributes may be different from the source to the expected target and don't mean it's different + foreach (var attributeName in _attributesToRemove) + { + var regexExpression = $" {attributeName}=['\"].*?['\"]"; + xml = Regex.Replace(xml, regexExpression, String.Empty); + } + return xml; } [TestMethod] From 612bcab259a96246ee204164934e0e650b0997e2 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Wed, 12 Apr 2023 16:03:08 -0500 Subject: [PATCH 70/71] also don't want to use whitespace or digits as the indication of what font to use for a paragraph --- ...stFile_ConvertMiddleTableCell_Expected.xml | 54 ++++++++++--------- src/SILConvertersWordML/WordLinqDocument.cs | 14 ++++- 2 files changed, 41 insertions(+), 27 deletions(-) diff --git a/src/SILConvertersWordML/TestBwdc/TestFiles/BulkWordDocConverter/TestFile_ConvertMiddleTableCell_Expected.xml b/src/SILConvertersWordML/TestBwdc/TestFiles/BulkWordDocConverter/TestFile_ConvertMiddleTableCell_Expected.xml index 246783df..4c682ff4 100644 --- a/src/SILConvertersWordML/TestBwdc/TestFiles/BulkWordDocConverter/TestFile_ConvertMiddleTableCell_Expected.xml +++ b/src/SILConvertersWordML/TestBwdc/TestFiles/BulkWordDocConverter/TestFile_ConvertMiddleTableCell_Expected.xml @@ -209,13 +209,13 @@ </w:rPr> </w:pPr> <w:r wsp:rsidRPr="0080395C"> - <w:rPr> - <w:rStyle w:val="v-VerseNumber" /> - <w:rFonts w:ascii="Arial Unicode MS" w:fareast="Arial Unicode MS" w:h-ansi="Arial Unicode MS" w:cs="Arial Unicode MS" /> - <wx:font wx:val="Arial Unicode MS" /> - <w:sz w:val="28" /> - <w:sz-cs w:val="28" /> - </w:rPr> + <rPr> + <rFonts cs="Arial Unicode MS" hint="fareast" /> + <font val="Arial Unicode MS"/> + <sz val="28" /> + <sz-cs val="28" /> + <cs /> + </rPr> <w:t>1 यह सà¥-समाचार परमेशà¥à¤µà¤° के पà¥à¤¤à¥à¤° यीशॠमसीह के विषय में है, जो इस जगत में देह धारण कर आया। यह इस पà¥à¤°à¤•à¤¾à¤° है… 2 यीशॠके देह धारण करने से लगà¤à¤— सात सौ वरà¥à¤· पहले यशायाह नामक à¤à¤• संत था। उसने यीशॠके विषय में परमेशà¥à¤µà¤° की ओर से à¤à¤µà¤¿à¤·à¥à¤¯à¤µà¤¾à¤£à¥€ कर यह वादा किया:</w:t> </w:r> </w:p> @@ -240,11 +240,12 @@ </w:pPr> <w:r wsp:rsidRPr="0080395C"> <w:rPr> - <w:rStyle w:val="v-VerseNumber" /> - <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> <wx:font wx:val="Times New Roman" /> <w:sz w:val="28" /> <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> </w:rPr> <w:t>1Â ÛŒÛ Ø®Ùوشخبری Ø®Ùدا Ú©Û’ بیٹے ÛŒÙسÙوعؔ مسÙÛŒØ Ú©Û’ بارے میں ÛÛ’; جو اÙس دÙنیا میں اÙسان Ú©ÛŒ جÙسم میں کر آیا, ÛŒÛ Ø§Ùس Ú©Û’ بارے میں ÛÛ’Û”Û”Û” 2 یÙسÙوعؔ Ú©Û’ اÙسان Ú©ÛŒ جÙسم میں کرنے سے تقریباً سات سو سال Ù¾ÛÙ„Û’ ÛŒØ³Ø¹ÛŒØ§Û Ù†Ø§Ù… کا ایک نبی تھا, اÙس Ù†Û’ ÛŒÙسÙوعؔ Ú©Û’ بارے میں Ø®Ùدا Ú©ÛŒ تر٠سے پیشن گوئی کر ÛŒÛ ÙˆØ¹Ø¯Û Ú©ÛŒØ§:</w:t> </w:r> @@ -266,12 +267,13 @@ </w:rPr> </w:pPr> <w:r wsp:rsidRPr="0080395C"> - <w:rPr> - <w:rStyle w:val="v-VerseNumber" /> - <w:rFonts w:cs="Nafees Nastaleeq" /> - <w:sz w:val="28" /> - <w:sz-cs w:val="28" /> - </w:rPr> + <rPr> + <rFonts cs="Nafees Nastaleeq" /> + <sz val="28" /> + <sz-cs val="28" /> + <rtl /> + <lang bidi="AR-SA" /> + </rPr> <w:t>1Â ÛŒÛ Ø®Ùوشخبری Ø®Ùدا Ú©Û’ بیٹے ÛŒÙسÙوعؔ مسÙÛŒØ Ú©Û’ بارے میں ÛÛ’; جو اÙس دÙنیا میں اÙسان Ú©ÛŒ جÙسم میں کر آیا, ÛŒÛ Ø§Ùس Ú©Û’ بارے میں ÛÛ’Û”Û”Û” 2 یÙسÙوعؔ Ú©Û’ اÙسان Ú©ÛŒ جÙسم میں کرنے سے تقریباً سات سو سال Ù¾ÛÙ„Û’ ÛŒØ³Ø¹ÛŒØ§Û Ù†Ø§Ù… کا ایک نبی تھا, اÙس Ù†Û’ ÛŒÙسÙوعؔ Ú©Û’ بارے میں Ø®Ùدا Ú©ÛŒ تر٠سے پیشن گوئی کر ÛŒÛ ÙˆØ¹Ø¯Û Ú©ÛŒØ§:</w:t> </w:r> </w:p> @@ -485,13 +487,13 @@ </w:rPr> </w:pPr> <w:r wsp:rsidRPr="0080395C"> - <w:rPr> - <w:rStyle w:val="v-VerseNumber" /> - <w:rFonts w:ascii="Arial Unicode MS" w:fareast="Arial Unicode MS" w:h-ansi="Arial Unicode MS" w:cs="Arial Unicode MS" /> - <wx:font wx:val="Arial Unicode MS" /> - <w:sz w:val="28" /> - <w:sz-cs w:val="28" /> - </w:rPr> + <rPr> + <rFonts cs="Arial Unicode MS" hint="fareast" /> + <font val="Arial Unicode MS"/> + <sz val="28" /> + <sz-cs val="28" /> + <cs /> + </rPr> <w:t>3 “उजाड़ जंगल में à¤à¤• दूत की आवाज आते-जाते लोगों को सà¥à¤¨à¤¾à¤ˆ देगी —</w:t> </w:r> </w:p> @@ -516,11 +518,12 @@ </w:pPr> <w:r wsp:rsidRPr="0080395C"> <w:rPr> - <w:rStyle w:val="v-VerseNumber" /> - <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Mangal" /> + <w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" /> <wx:font wx:val="Times New Roman" /> <w:sz w:val="28" /> <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> </w:rPr> <w:t>3 “اÙجاڑ جنگل میں ایک پیغمبر Ú©ÛŒ آواز آتے جاتے لوگوں Ú©Ùˆ سنائی دے Ú¯ÛŒ</w:t> </w:r> @@ -543,10 +546,11 @@ </w:pPr> <w:r wsp:rsidRPr="0080395C"> <w:rPr> - <w:rStyle w:val="v-VerseNumber" /> <w:rFonts w:cs="Nafees Nastaleeq" /> <w:sz w:val="28" /> <w:sz-cs w:val="28" /> + <w:rtl /> + <w:lang w:bidi="AR-SA" /> </w:rPr> <w:t>3 “اÙجاڑ جنگل میں ایک پیغمبر Ú©ÛŒ آواز آتے جاتے لوگوں Ú©Ùˆ سنائی دے Ú¯ÛŒ</w:t> </w:r> diff --git a/src/SILConvertersWordML/WordLinqDocument.cs b/src/SILConvertersWordML/WordLinqDocument.cs index 14da9ebc..47f0eadc 100644 --- a/src/SILConvertersWordML/WordLinqDocument.cs +++ b/src/SILConvertersWordML/WordLinqDocument.cs @@ -253,10 +253,10 @@ public static void CombineAllRunsIntoSingleRun(XDocument doc) if (!firstNonPunctuationFound) { // if the current first run is all punctuation... - if (textOfFirstRun.Value.All(ch => Char.IsPunctuation(ch))) + if (textOfFirstRun.Value.All(ch => !IsIndicitiveForFont(ch))) { // if the next run has some non-punctuation... - if (!textOfNextRun.Value.All(ch => Char.IsPunctuation(ch))) + if (!textOfNextRun.Value.All(ch => !IsIndicitiveForFont(ch))) { // then let's use that next run as a new first run and prepend // its data with the earlier punctuation. @@ -281,6 +281,16 @@ public static void CombineAllRunsIntoSingleRun(XDocument doc) } } } + + /// <summary> + /// Returns whether the given character is a good value to decide whether this run qualifies as the run of the paragraph + /// </summary> + /// <param name="ch"></param> + /// <returns></returns> + private static bool IsIndicitiveForFont(char ch) + { + return !(Char.IsPunctuation(ch) || Char.IsWhiteSpace(ch) || Char.IsDigit(ch)); + } /// <summary> /// This method will combine the w:t element values of sibling w:r elements whose w:rPr formatting specifications are equivalent From b5f13ae32e68f49973187336a1511c31244071d9 Mon Sep 17 00:00:00 2001 From: bobeaton <bob_eaton@sall.com> Date: Wed, 12 Apr 2023 16:15:30 -0500 Subject: [PATCH 71/71] lang version wasn't set for x86 build --- src/SILConvertersWordML/SILConvertersWordML.csproj | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/SILConvertersWordML/SILConvertersWordML.csproj b/src/SILConvertersWordML/SILConvertersWordML.csproj index ee7b8b05..355f4109 100644 --- a/src/SILConvertersWordML/SILConvertersWordML.csproj +++ b/src/SILConvertersWordML/SILConvertersWordML.csproj @@ -45,6 +45,7 @@ <DefineConstants>DEBUG;TRACE</DefineConstants> <DebugType>full</DebugType> <PlatformTarget>x86</PlatformTarget> + <LangVersion>latest</LangVersion> <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression> <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile> <ErrorReport>prompt</ErrorReport> @@ -57,6 +58,7 @@ <Optimize>true</Optimize> <DebugType>pdbonly</DebugType> <PlatformTarget>x86</PlatformTarget> + <LangVersion>latest</LangVersion> <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression> <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile> <ErrorReport>prompt</ErrorReport>