SEBWIN-414: Implemented query string parameter feature.
This commit is contained in:
		
							parent
							
								
									12c342cc7d
								
							
						
					
					
						commit
						50e943e8a8
					
				
					 24 changed files with 279 additions and 144 deletions
				
			
		| 
						 | 
				
			
			@ -9,8 +9,8 @@
 | 
			
		|||
namespace SafeExamBrowser.Browser.Contracts.Events
 | 
			
		||||
{
 | 
			
		||||
	/// <summary>
 | 
			
		||||
	/// Defines the method signature for callbacks to be executed once a download has been finished. Indicates whether the download was
 | 
			
		||||
	/// successful, and if so, where it was saved.
 | 
			
		||||
	/// Defines the method signature for callbacks to be executed once a download has been finished. Indicates the URL of the resource,
 | 
			
		||||
	/// whether the download was successful, and if so, where it was saved.
 | 
			
		||||
	/// </summary>
 | 
			
		||||
	public delegate void DownloadFinishedCallback(bool success, string filePath = null);
 | 
			
		||||
	public delegate void DownloadFinishedCallback(bool success, string url, string filePath = null);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -145,7 +145,7 @@ namespace SafeExamBrowser.Browser
 | 
			
		|||
			var id = ++instanceIdCounter;
 | 
			
		||||
			var isMainInstance = instances.Count == 0;
 | 
			
		||||
			var instanceLogger = logger.CloneFor($"Browser Instance #{id}");
 | 
			
		||||
			var startUrl = url ?? settings.StartUrl;
 | 
			
		||||
			var startUrl = url ?? GenerateStartUrl();
 | 
			
		||||
			var instance = new BrowserApplicationInstance(appConfig, settings, id, isMainInstance, fileSystemDialog, messageBox, instanceLogger, text, uiFactory, startUrl);
 | 
			
		||||
 | 
			
		||||
			instance.ConfigurationDownloadRequested += (fileName, args) => ConfigurationDownloadRequested?.Invoke(fileName, args);
 | 
			
		||||
| 
						 | 
				
			
			@ -201,6 +201,18 @@ namespace SafeExamBrowser.Browser
 | 
			
		|||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		private string GenerateStartUrl()
 | 
			
		||||
		{
 | 
			
		||||
			var url = settings.StartUrl;
 | 
			
		||||
 | 
			
		||||
			if (settings.UseQueryParameter)
 | 
			
		||||
			{
 | 
			
		||||
				url = $"{url}{settings.StartUrlQuery}";
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			return url;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		private void InitializeApplicationInfo()
 | 
			
		||||
		{
 | 
			
		||||
			AutoStart = true;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -92,7 +92,7 @@ namespace SafeExamBrowser.Browser.Handlers
 | 
			
		|||
 | 
			
		||||
				if (callbacks.TryRemove(downloadItem.Id, out DownloadFinishedCallback finished) && finished != null)
 | 
			
		||||
				{
 | 
			
		||||
					Task.Run(() => finished.Invoke(downloadItem.IsComplete, downloadItem.FullPath));
 | 
			
		||||
					Task.Run(() => finished.Invoke(downloadItem.IsComplete, downloadItem.Url, downloadItem.FullPath));
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if (hasId)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -615,13 +615,13 @@ namespace SafeExamBrowser.Client.UnitTests
 | 
			
		|||
			var args = new DownloadEventArgs();
 | 
			
		||||
 | 
			
		||||
			appConfig.TemporaryDirectory = @"C:\Folder\Does\Not\Exist";
 | 
			
		||||
			runtimeProxy.Setup(r => r.RequestReconfiguration(It.IsAny<string>())).Returns(new CommunicationResult(true));
 | 
			
		||||
			runtimeProxy.Setup(r => r.RequestReconfiguration(It.IsAny<string>(), It.IsAny<string>())).Returns(new CommunicationResult(true));
 | 
			
		||||
 | 
			
		||||
			sut.TryStart();
 | 
			
		||||
			browser.Raise(b => b.ConfigurationDownloadRequested += null, "filepath.seb", args);
 | 
			
		||||
			args.Callback(true, string.Empty);
 | 
			
		||||
 | 
			
		||||
			runtimeProxy.Verify(r => r.RequestReconfiguration(It.IsAny<string>()), Times.Once);
 | 
			
		||||
			runtimeProxy.Verify(r => r.RequestReconfiguration(It.IsAny<string>(), It.IsAny<string>()), Times.Once);
 | 
			
		||||
			Assert.IsTrue(args.AllowDownload);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -633,13 +633,13 @@ namespace SafeExamBrowser.Client.UnitTests
 | 
			
		|||
			appConfig.TemporaryDirectory = @"C:\Folder\Does\Not\Exist";
 | 
			
		||||
			settings.Security.AllowReconfiguration = true;
 | 
			
		||||
			settings.Security.QuitPasswordHash = "abc123";
 | 
			
		||||
			runtimeProxy.Setup(r => r.RequestReconfiguration(It.IsAny<string>())).Returns(new CommunicationResult(true));
 | 
			
		||||
			runtimeProxy.Setup(r => r.RequestReconfiguration(It.IsAny<string>(), It.IsAny<string>())).Returns(new CommunicationResult(true));
 | 
			
		||||
 | 
			
		||||
			sut.TryStart();
 | 
			
		||||
			browser.Raise(b => b.ConfigurationDownloadRequested += null, "filepath.seb", args);
 | 
			
		||||
			args.Callback(true, string.Empty);
 | 
			
		||||
 | 
			
		||||
			runtimeProxy.Verify(r => r.RequestReconfiguration(It.IsAny<string>()), Times.Once);
 | 
			
		||||
			runtimeProxy.Verify(r => r.RequestReconfiguration(It.IsAny<string>(), It.IsAny<string>()), Times.Once);
 | 
			
		||||
			Assert.IsTrue(args.AllowDownload);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -652,13 +652,13 @@ namespace SafeExamBrowser.Client.UnitTests
 | 
			
		|||
			settings.Security.AllowReconfiguration = true;
 | 
			
		||||
			settings.Security.QuitPasswordHash = "abc123";
 | 
			
		||||
			settings.Security.ReconfigurationUrl = "sebs://www.somehost.org/some/path/*.seb?query=123";
 | 
			
		||||
			runtimeProxy.Setup(r => r.RequestReconfiguration(It.IsAny<string>())).Returns(new CommunicationResult(true));
 | 
			
		||||
			runtimeProxy.Setup(r => r.RequestReconfiguration(It.IsAny<string>(), It.IsAny<string>())).Returns(new CommunicationResult(true));
 | 
			
		||||
 | 
			
		||||
			sut.TryStart();
 | 
			
		||||
			browser.Raise(b => b.ConfigurationDownloadRequested += null, "filepath.seb", args);
 | 
			
		||||
			args.Callback(true, string.Empty);
 | 
			
		||||
 | 
			
		||||
			runtimeProxy.Verify(r => r.RequestReconfiguration(It.IsAny<string>()), Times.Once);
 | 
			
		||||
			runtimeProxy.Verify(r => r.RequestReconfiguration(It.IsAny<string>(), It.IsAny<string>()), Times.Once);
 | 
			
		||||
			Assert.IsTrue(args.AllowDownload);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -673,7 +673,7 @@ namespace SafeExamBrowser.Client.UnitTests
 | 
			
		|||
			sut.TryStart();
 | 
			
		||||
			browser.Raise(b => b.ConfigurationDownloadRequested += null, "filepath.seb", args);
 | 
			
		||||
 | 
			
		||||
			runtimeProxy.Verify(r => r.RequestReconfiguration(It.IsAny<string>()), Times.Never);
 | 
			
		||||
			runtimeProxy.Verify(r => r.RequestReconfiguration(It.IsAny<string>(), It.IsAny<string>()), Times.Never);
 | 
			
		||||
			Assert.IsFalse(args.AllowDownload);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -689,7 +689,7 @@ namespace SafeExamBrowser.Client.UnitTests
 | 
			
		|||
			sut.TryStart();
 | 
			
		||||
			browser.Raise(b => b.ConfigurationDownloadRequested += null, "filepath.seb", args);
 | 
			
		||||
 | 
			
		||||
			runtimeProxy.Verify(r => r.RequestReconfiguration(It.IsAny<string>()), Times.Never);
 | 
			
		||||
			runtimeProxy.Verify(r => r.RequestReconfiguration(It.IsAny<string>(), It.IsAny<string>()), Times.Never);
 | 
			
		||||
			Assert.IsFalse(args.AllowDownload);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -697,6 +697,7 @@ namespace SafeExamBrowser.Client.UnitTests
 | 
			
		|||
		public void Reconfiguration_MustCorrectlyHandleDownload()
 | 
			
		||||
		{
 | 
			
		||||
			var downloadPath = @"C:\Folder\Does\Not\Exist\filepath.seb";
 | 
			
		||||
			var downloadUrl = @"https://www.host.abc/someresource.seb";
 | 
			
		||||
			var filename = "filepath.seb";
 | 
			
		||||
			var args = new DownloadEventArgs();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -708,13 +709,15 @@ namespace SafeExamBrowser.Client.UnitTests
 | 
			
		|||
				It.IsAny<MessageBoxAction>(),
 | 
			
		||||
				It.IsAny<MessageBoxIcon>(),
 | 
			
		||||
				It.IsAny<IWindow>())).Returns(MessageBoxResult.Yes);
 | 
			
		||||
			runtimeProxy.Setup(r => r.RequestReconfiguration(It.Is<string>(p => p == downloadPath))).Returns(new CommunicationResult(true));
 | 
			
		||||
			runtimeProxy.Setup(r => r.RequestReconfiguration(
 | 
			
		||||
				It.Is<string>(p => p == downloadPath),
 | 
			
		||||
				It.Is<string>(u => u == downloadUrl))).Returns(new CommunicationResult(true));
 | 
			
		||||
 | 
			
		||||
			sut.TryStart();
 | 
			
		||||
			browser.Raise(b => b.ConfigurationDownloadRequested += null, filename, args);
 | 
			
		||||
			args.Callback(true, downloadPath);
 | 
			
		||||
			args.Callback(true, downloadUrl, downloadPath);
 | 
			
		||||
 | 
			
		||||
			runtimeProxy.Verify(r => r.RequestReconfiguration(It.Is<string>(p => p == downloadPath)), Times.Once);
 | 
			
		||||
			runtimeProxy.Verify(r => r.RequestReconfiguration(It.Is<string>(p => p == downloadPath), It.Is<string>(u => u == downloadUrl)), Times.Once);
 | 
			
		||||
 | 
			
		||||
			Assert.AreEqual(downloadPath, args.DownloadPath);
 | 
			
		||||
			Assert.IsTrue(args.AllowDownload);
 | 
			
		||||
| 
						 | 
				
			
			@ -724,6 +727,7 @@ namespace SafeExamBrowser.Client.UnitTests
 | 
			
		|||
		public void Reconfiguration_MustCorrectlyHandleFailedDownload()
 | 
			
		||||
		{
 | 
			
		||||
			var downloadPath = @"C:\Folder\Does\Not\Exist\filepath.seb";
 | 
			
		||||
			var downloadUrl = @"https://www.host.abc/someresource.seb";
 | 
			
		||||
			var filename = "filepath.seb";
 | 
			
		||||
			var args = new DownloadEventArgs();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -735,19 +739,22 @@ namespace SafeExamBrowser.Client.UnitTests
 | 
			
		|||
				It.IsAny<MessageBoxAction>(),
 | 
			
		||||
				It.IsAny<MessageBoxIcon>(),
 | 
			
		||||
				It.IsAny<IWindow>())).Returns(MessageBoxResult.Yes);
 | 
			
		||||
			runtimeProxy.Setup(r => r.RequestReconfiguration(It.Is<string>(p => p == downloadPath))).Returns(new CommunicationResult(true));
 | 
			
		||||
			runtimeProxy.Setup(r => r.RequestReconfiguration(
 | 
			
		||||
				It.Is<string>(p => p == downloadPath),
 | 
			
		||||
				It.Is<string>(u => u == downloadUrl))).Returns(new CommunicationResult(true));
 | 
			
		||||
 | 
			
		||||
			sut.TryStart();
 | 
			
		||||
			browser.Raise(b => b.ConfigurationDownloadRequested += null, filename, args);
 | 
			
		||||
			args.Callback(false, downloadPath);
 | 
			
		||||
 | 
			
		||||
			runtimeProxy.Verify(r => r.RequestReconfiguration(It.IsAny<string>()), Times.Never);
 | 
			
		||||
			runtimeProxy.Verify(r => r.RequestReconfiguration(It.IsAny<string>(), It.IsAny<string>()), Times.Never);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		[TestMethod]
 | 
			
		||||
		public void Reconfiguration_MustCorrectlyHandleFailedRequest()
 | 
			
		||||
		{
 | 
			
		||||
			var downloadPath = @"C:\Folder\Does\Not\Exist\filepath.seb";
 | 
			
		||||
			var downloadUrl = @"https://www.host.abc/someresource.seb";
 | 
			
		||||
			var filename = "filepath.seb";
 | 
			
		||||
			var args = new DownloadEventArgs();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -759,13 +766,15 @@ namespace SafeExamBrowser.Client.UnitTests
 | 
			
		|||
				It.IsAny<MessageBoxAction>(),
 | 
			
		||||
				It.IsAny<MessageBoxIcon>(),
 | 
			
		||||
				It.IsAny<IWindow>())).Returns(MessageBoxResult.Yes);
 | 
			
		||||
			runtimeProxy.Setup(r => r.RequestReconfiguration(It.Is<string>(p => p == downloadPath))).Returns(new CommunicationResult(false));
 | 
			
		||||
			runtimeProxy.Setup(r => r.RequestReconfiguration(
 | 
			
		||||
				It.Is<string>(p => p == downloadPath),
 | 
			
		||||
				It.Is<string>(u => u == downloadUrl))).Returns(new CommunicationResult(false));
 | 
			
		||||
 | 
			
		||||
			sut.TryStart();
 | 
			
		||||
			browser.Raise(b => b.ConfigurationDownloadRequested += null, filename, args);
 | 
			
		||||
			args.Callback(true, downloadPath);
 | 
			
		||||
			args.Callback(true, downloadUrl, downloadPath);
 | 
			
		||||
 | 
			
		||||
			runtimeProxy.Verify(r => r.RequestReconfiguration(It.IsAny<string>()), Times.Once);
 | 
			
		||||
			runtimeProxy.Verify(r => r.RequestReconfiguration(It.IsAny<string>(), It.IsAny<string>()), Times.Once);
 | 
			
		||||
			messageBox.Verify(m => m.Show(
 | 
			
		||||
				It.IsAny<TextKey>(),
 | 
			
		||||
				It.IsAny<TextKey>(),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -374,6 +374,31 @@ namespace SafeExamBrowser.Client
 | 
			
		|||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		private void Browser_ConfigurationDownloadFinished(bool success, string url, string filePath = null)
 | 
			
		||||
		{
 | 
			
		||||
			if (success)
 | 
			
		||||
			{
 | 
			
		||||
				var communication = runtime.RequestReconfiguration(filePath, url);
 | 
			
		||||
 | 
			
		||||
				if (communication.Success)
 | 
			
		||||
				{
 | 
			
		||||
					logger.Info($"Sent reconfiguration request for '{filePath}' to the runtime.");
 | 
			
		||||
				}
 | 
			
		||||
				else
 | 
			
		||||
				{
 | 
			
		||||
					logger.Error($"Failed to communicate reconfiguration request for '{filePath}'!");
 | 
			
		||||
					messageBox.Show(TextKey.MessageBox_ReconfigurationError, TextKey.MessageBox_ReconfigurationErrorTitle, icon: MessageBoxIcon.Error, parent: splashScreen);
 | 
			
		||||
					splashScreen.Hide();
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			else
 | 
			
		||||
			{
 | 
			
		||||
				logger.Error($"Failed to download configuration file '{filePath}'!");
 | 
			
		||||
				messageBox.Show(TextKey.MessageBox_ConfigurationDownloadError, TextKey.MessageBox_ConfigurationDownloadErrorTitle, icon: MessageBoxIcon.Error, parent: splashScreen);
 | 
			
		||||
				splashScreen.Hide();
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		private void Browser_SessionIdentifierDetected(string identifier)
 | 
			
		||||
		{
 | 
			
		||||
			if (Settings.SessionMode == SessionMode.Server)
 | 
			
		||||
| 
						 | 
				
			
			@ -397,31 +422,6 @@ namespace SafeExamBrowser.Client
 | 
			
		|||
			TryRequestShutdown();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		private void Browser_ConfigurationDownloadFinished(bool success, string filePath = null)
 | 
			
		||||
		{
 | 
			
		||||
			if (success)
 | 
			
		||||
			{
 | 
			
		||||
				var communication = runtime.RequestReconfiguration(filePath);
 | 
			
		||||
 | 
			
		||||
				if (communication.Success)
 | 
			
		||||
				{
 | 
			
		||||
					logger.Info($"Sent reconfiguration request for '{filePath}' to the runtime.");
 | 
			
		||||
				}
 | 
			
		||||
				else
 | 
			
		||||
				{
 | 
			
		||||
					logger.Error($"Failed to communicate reconfiguration request for '{filePath}'!");
 | 
			
		||||
					messageBox.Show(TextKey.MessageBox_ReconfigurationError, TextKey.MessageBox_ReconfigurationErrorTitle, icon: MessageBoxIcon.Error, parent: splashScreen);
 | 
			
		||||
					splashScreen.Hide();
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			else
 | 
			
		||||
			{
 | 
			
		||||
				logger.Error($"Failed to download configuration file '{filePath}'!");
 | 
			
		||||
				messageBox.Show(TextKey.MessageBox_ConfigurationDownloadError, TextKey.MessageBox_ConfigurationDownloadErrorTitle, icon: MessageBoxIcon.Error, parent: splashScreen);
 | 
			
		||||
				splashScreen.Hide();
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		private void ClientHost_ExamSelectionRequested(ExamSelectionRequestEventArgs args)
 | 
			
		||||
		{
 | 
			
		||||
			logger.Info($"Received exam selection request with id '{args.RequestId}'.");
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,9 +21,15 @@ namespace SafeExamBrowser.Communication.Contracts.Data
 | 
			
		|||
		/// </summary>
 | 
			
		||||
		public string ConfigurationPath { get; private set; }
 | 
			
		||||
 | 
			
		||||
		public ReconfigurationMessage(string path)
 | 
			
		||||
		/// <summary>
 | 
			
		||||
		/// The original URL from where the configuration file was downloaded.
 | 
			
		||||
		/// </summary>
 | 
			
		||||
		public string ResourceUrl { get; set; }
 | 
			
		||||
 | 
			
		||||
		public ReconfigurationMessage(string path, string url)
 | 
			
		||||
		{
 | 
			
		||||
			ConfigurationPath = path;
 | 
			
		||||
			ResourceUrl = url;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,5 +17,10 @@ namespace SafeExamBrowser.Communication.Contracts.Events
 | 
			
		|||
		/// The full path to the configuration file to be used for reconfiguration.
 | 
			
		||||
		/// </summary>
 | 
			
		||||
		public string ConfigurationPath { get; set; }
 | 
			
		||||
 | 
			
		||||
		/// <summary>
 | 
			
		||||
		/// The original URL from where the configuration file was downloaded.
 | 
			
		||||
		/// </summary>
 | 
			
		||||
		public string ResourceUrl { get; set; }
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,7 +34,7 @@ namespace SafeExamBrowser.Communication.Contracts.Proxies
 | 
			
		|||
		/// <summary>
 | 
			
		||||
		/// Requests the runtime to reconfigure the application with the specified configuration.
 | 
			
		||||
		/// </summary>
 | 
			
		||||
		CommunicationResult RequestReconfiguration(string filePath);
 | 
			
		||||
		CommunicationResult RequestReconfiguration(string filePath, string url);
 | 
			
		||||
 | 
			
		||||
		/// <summary>
 | 
			
		||||
		/// Submits the result of a server exam selection previously requested by the runtime. If the procedure was aborted by the user,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -257,7 +257,7 @@ namespace SafeExamBrowser.Communication.UnitTests.Hosts
 | 
			
		|||
		{
 | 
			
		||||
			var received = false;
 | 
			
		||||
			var simpleReceived = false;
 | 
			
		||||
			var message = new ReconfigurationMessage(null);
 | 
			
		||||
			var message = new ReconfigurationMessage(null, null);
 | 
			
		||||
			var configurationResponse = new ConfigurationResponse();
 | 
			
		||||
 | 
			
		||||
			sut.OnReceiveStub = (m) => { received = true; return configurationResponse; };
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -101,24 +101,26 @@ namespace SafeExamBrowser.Communication.UnitTests.Proxies
 | 
			
		|||
		[TestMethod]
 | 
			
		||||
		public void MustCorrectlyRequestReconfiguration()
 | 
			
		||||
		{
 | 
			
		||||
			var url = "file:///C:/Some/file/url.seb";
 | 
			
		||||
			var path = "file:///C:/Some/file/url.seb";
 | 
			
		||||
			var url = @"https://www.host.abc/someresource.seb";
 | 
			
		||||
 | 
			
		||||
			proxy.Setup(p => p.Send(It.Is<ReconfigurationMessage>(m => m.ConfigurationPath == url))).Returns(new SimpleResponse(SimpleResponsePurport.Acknowledged));
 | 
			
		||||
			proxy.Setup(p => p.Send(It.Is<ReconfigurationMessage>(m => m.ConfigurationPath == path))).Returns(new SimpleResponse(SimpleResponsePurport.Acknowledged));
 | 
			
		||||
 | 
			
		||||
			var communication = sut.RequestReconfiguration(url);
 | 
			
		||||
			var communication = sut.RequestReconfiguration(path, url);
 | 
			
		||||
 | 
			
		||||
			Assert.IsTrue(communication.Success);
 | 
			
		||||
			proxy.Verify(p => p.Send(It.Is<ReconfigurationMessage>(m => m.ConfigurationPath == url)), Times.Once);
 | 
			
		||||
			proxy.Verify(p => p.Send(It.Is<ReconfigurationMessage>(m => m.ConfigurationPath == path && m.ResourceUrl == url)), Times.Once);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		[TestMethod]
 | 
			
		||||
		public void MustFailIfReconfigurationRequestNotAcknowledged()
 | 
			
		||||
		{
 | 
			
		||||
			var url = "file:///C:/Some/file/url.seb";
 | 
			
		||||
			var path = "file:///C:/Some/file/url.seb";
 | 
			
		||||
			var url = @"https://www.host.abc/someresource.seb";
 | 
			
		||||
 | 
			
		||||
			proxy.Setup(p => p.Send(It.Is<ReconfigurationMessage>(m => m.ConfigurationPath == url))).Returns<Response>(null);
 | 
			
		||||
			proxy.Setup(p => p.Send(It.Is<ReconfigurationMessage>(m => m.ConfigurationPath == path))).Returns<Response>(null);
 | 
			
		||||
 | 
			
		||||
			var communication = sut.RequestReconfiguration(url);
 | 
			
		||||
			var communication = sut.RequestReconfiguration(path, url);
 | 
			
		||||
 | 
			
		||||
			Assert.IsFalse(communication.Success);
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			@ -201,7 +203,7 @@ namespace SafeExamBrowser.Communication.UnitTests.Proxies
 | 
			
		|||
			var configuration = sut.GetConfiguration();
 | 
			
		||||
			var message = sut.SubmitMessageBoxResult(default(Guid), default(int));
 | 
			
		||||
			var password = sut.SubmitPassword(default(Guid), false);
 | 
			
		||||
			var reconfiguration = sut.RequestReconfiguration(null);
 | 
			
		||||
			var reconfiguration = sut.RequestReconfiguration(null, null);
 | 
			
		||||
			var shutdown = sut.RequestShutdown();
 | 
			
		||||
 | 
			
		||||
			Assert.IsFalse(client.Success);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -75,11 +75,11 @@ namespace SafeExamBrowser.Communication.Proxies
 | 
			
		|||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		public CommunicationResult RequestReconfiguration(string filePath)
 | 
			
		||||
		public CommunicationResult RequestReconfiguration(string filePath, string url)
 | 
			
		||||
		{
 | 
			
		||||
			try
 | 
			
		||||
			{
 | 
			
		||||
				var response = Send(new ReconfigurationMessage(filePath));
 | 
			
		||||
				var response = Send(new ReconfigurationMessage(filePath, url));
 | 
			
		||||
				var success = IsAcknowledged(response);
 | 
			
		||||
 | 
			
		||||
				if (success)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -141,6 +141,9 @@ namespace SafeExamBrowser.Configuration.ConfigurationData.DataMapping
 | 
			
		|||
				case Keys.Browser.UserAgentSuffix:
 | 
			
		||||
					MapUserAgentSuffix(settings, value);
 | 
			
		||||
					break;
 | 
			
		||||
				case Keys.Browser.UseStartUrlQuery:
 | 
			
		||||
					MapUseStartUrlQuery(settings, value);
 | 
			
		||||
					break;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -458,6 +461,14 @@ namespace SafeExamBrowser.Configuration.ConfigurationData.DataMapping
 | 
			
		|||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		private void MapUseStartUrlQuery(AppSettings settings, object value)
 | 
			
		||||
		{
 | 
			
		||||
			if (value is bool use)
 | 
			
		||||
			{
 | 
			
		||||
				settings.Browser.UseQueryParameter = use;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		private void MapFilterRules(AppSettings settings, object value)
 | 
			
		||||
		{
 | 
			
		||||
			const int ALLOW = 1;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -140,6 +140,8 @@ namespace SafeExamBrowser.Configuration.ConfigurationData
 | 
			
		|||
			settings.Browser.Proxy.Policy = ProxyPolicy.System;
 | 
			
		||||
			settings.Browser.ResetOnQuitUrl = false;
 | 
			
		||||
			settings.Browser.StartUrl = "https://www.safeexambrowser.org/start";
 | 
			
		||||
			settings.Browser.UseCustomUserAgent = false;
 | 
			
		||||
			settings.Browser.UseQueryParameter = false;
 | 
			
		||||
 | 
			
		||||
			settings.ConfigurationMode = ConfigurationMode.Exam;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -70,6 +70,7 @@ namespace SafeExamBrowser.Configuration.ConfigurationData
 | 
			
		|||
			internal const string UserAgentModeDesktop = "browserUserAgentWinDesktopMode";
 | 
			
		||||
			internal const string UserAgentModeMobile = "browserUserAgentWinTouchMode";
 | 
			
		||||
			internal const string UserAgentSuffix = "browserUserAgent";
 | 
			
		||||
			internal const string UseStartUrlQuery = "startURLAppendQueryParameter";
 | 
			
		||||
 | 
			
		||||
			internal static class AdditionalWindow
 | 
			
		||||
			{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -266,6 +266,7 @@ namespace SafeExamBrowser.Runtime.UnitTests.Communication
 | 
			
		|||
		{
 | 
			
		||||
			var args = default(ReconfigurationEventArgs);
 | 
			
		||||
			var path = "C:\\Temp\\Some\\File.seb";
 | 
			
		||||
			var url = @"https://www.host.abc/someresource.seb";
 | 
			
		||||
			var sync = new AutoResetEvent(false);
 | 
			
		||||
 | 
			
		||||
			sut.AllowConnection = true;
 | 
			
		||||
| 
						 | 
				
			
			@ -273,7 +274,7 @@ namespace SafeExamBrowser.Runtime.UnitTests.Communication
 | 
			
		|||
			sut.AuthenticationToken = Guid.Empty;
 | 
			
		||||
 | 
			
		||||
			var token = sut.Connect(Guid.Empty).CommunicationToken.Value;
 | 
			
		||||
			var message = new ReconfigurationMessage(path) { CommunicationToken = token };
 | 
			
		||||
			var message = new ReconfigurationMessage(path, url) { CommunicationToken = token };
 | 
			
		||||
			var response = sut.Send(message);
 | 
			
		||||
 | 
			
		||||
			sync.WaitOne();
 | 
			
		||||
| 
						 | 
				
			
			@ -283,6 +284,7 @@ namespace SafeExamBrowser.Runtime.UnitTests.Communication
 | 
			
		|||
			Assert.IsInstanceOfType(response, typeof(SimpleResponse));
 | 
			
		||||
			Assert.AreEqual(SimpleResponsePurport.Acknowledged, (response as SimpleResponse)?.Purport);
 | 
			
		||||
			Assert.AreEqual(path, args.ConfigurationPath);
 | 
			
		||||
			Assert.AreEqual(url, args.ResourceUrl);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		[TestMethod]
 | 
			
		||||
| 
						 | 
				
			
			@ -320,7 +322,7 @@ namespace SafeExamBrowser.Runtime.UnitTests.Communication
 | 
			
		|||
			sut.Send(new SimpleMessage(SimpleMessagePurport.RequestShutdown) { CommunicationToken = token });
 | 
			
		||||
			sut.Send(new MessageBoxReplyMessage(Guid.Empty, (int) MessageBoxResult.Cancel) { CommunicationToken = token });
 | 
			
		||||
			sut.Send(new PasswordReplyMessage(Guid.Empty, false, "") { CommunicationToken = token });
 | 
			
		||||
			sut.Send(new ReconfigurationMessage("") { CommunicationToken = token });
 | 
			
		||||
			sut.Send(new ReconfigurationMessage("", "") { CommunicationToken = token });
 | 
			
		||||
			sut.Disconnect(new DisconnectionMessage { CommunicationToken = token });
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -70,7 +70,7 @@ namespace SafeExamBrowser.Runtime.Communication
 | 
			
		|||
					PasswordReceived?.InvokeAsync(new PasswordReplyEventArgs { Password = m.Password, RequestId = m.RequestId, Success = m.Success });
 | 
			
		||||
					return new SimpleResponse(SimpleResponsePurport.Acknowledged);
 | 
			
		||||
				case ReconfigurationMessage m:
 | 
			
		||||
					ReconfigurationRequested?.InvokeAsync(new ReconfigurationEventArgs { ConfigurationPath = m.ConfigurationPath });
 | 
			
		||||
					ReconfigurationRequested?.InvokeAsync(new ReconfigurationEventArgs { ConfigurationPath = m.ConfigurationPath, ResourceUrl = m.ResourceUrl });
 | 
			
		||||
					return new SimpleResponse(SimpleResponsePurport.Acknowledged);
 | 
			
		||||
				case ServerFailureActionReplyMessage m:
 | 
			
		||||
					ServerFailureActionReceived?.InvokeAsync(new ServerFailureActionReplyEventArgs { Abort = m.Abort, Fallback = m.Fallback, RequestId = m.RequestId, Retry = m.Retry });
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -191,6 +191,8 @@ namespace SafeExamBrowser.Runtime.Operations
 | 
			
		|||
				{
 | 
			
		||||
					result = OperationResult.Success;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				HandleStartUrlQuery(uri, source);
 | 
			
		||||
			}
 | 
			
		||||
			else
 | 
			
		||||
			{
 | 
			
		||||
| 
						 | 
				
			
			@ -230,6 +232,19 @@ namespace SafeExamBrowser.Runtime.Operations
 | 
			
		|||
			return result;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		private void HandleStartUrlQuery(Uri uri, UriSource source)
 | 
			
		||||
		{
 | 
			
		||||
			if (source == UriSource.Reconfiguration && Uri.TryCreate(Context.ReconfigurationUrl, UriKind.Absolute, out var reconfigurationUri))
 | 
			
		||||
			{
 | 
			
		||||
				uri = reconfigurationUri;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if (uri != default(Uri) && uri.Query.LastIndexOf('?') > 0)
 | 
			
		||||
			{
 | 
			
		||||
				Context.Next.Settings.Browser.StartUrlQuery = uri.Query.Substring(uri.Query.LastIndexOf('?'));
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		private bool? TryConfigureClient(Uri uri, PasswordParameters passwordParams, string currentPassword = default(string))
 | 
			
		||||
		{
 | 
			
		||||
			var mustAuthenticate = IsRequiredToAuthenticateForClientConfiguration(passwordParams, currentPassword);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -345,7 +345,9 @@ namespace SafeExamBrowser.Runtime
 | 
			
		|||
		private void RuntimeHost_ReconfigurationRequested(ReconfigurationEventArgs args)
 | 
			
		||||
		{
 | 
			
		||||
			logger.Info($"Accepted request for reconfiguration with '{args.ConfigurationPath}'.");
 | 
			
		||||
 | 
			
		||||
			sessionContext.ReconfigurationFilePath = args.ConfigurationPath;
 | 
			
		||||
			sessionContext.ReconfigurationUrl = args.ResourceUrl;
 | 
			
		||||
 | 
			
		||||
			StartSession();
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -41,5 +41,10 @@ namespace SafeExamBrowser.Runtime
 | 
			
		|||
		/// The path of the configuration file to be used for reconfiguration.
 | 
			
		||||
		/// </summary>
 | 
			
		||||
		internal string ReconfigurationFilePath { get; set; }
 | 
			
		||||
 | 
			
		||||
		/// <summary>
 | 
			
		||||
		/// The original URL from where the configuration file was downloaded.
 | 
			
		||||
		/// </summary>
 | 
			
		||||
		internal string ReconfigurationUrl { get; set; }
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -158,11 +158,21 @@ namespace SafeExamBrowser.Settings.Browser
 | 
			
		|||
		/// </summary>
 | 
			
		||||
		public string StartUrl { get; set; }
 | 
			
		||||
 | 
			
		||||
		/// <summary>
 | 
			
		||||
		/// A query for the <see cref="StartUrl"/> which SEB automatically extracts from the configuration URL.
 | 
			
		||||
		/// </summary>
 | 
			
		||||
		public string StartUrlQuery { get; set; }
 | 
			
		||||
 | 
			
		||||
		/// <summary>
 | 
			
		||||
		/// Determines whether a custom user agent will be used for all requests, see <see cref="CustomUserAgent"/>.
 | 
			
		||||
		/// </summary>
 | 
			
		||||
		public bool UseCustomUserAgent { get; set; }
 | 
			
		||||
 | 
			
		||||
		/// <summary>
 | 
			
		||||
		/// Determines whether the <see cref="StartUrlQuery"/> will be appended to the <see cref="StartUrl"/>.
 | 
			
		||||
		/// </summary>
 | 
			
		||||
		public bool UseQueryParameter { get; set; }
 | 
			
		||||
 | 
			
		||||
		/// <summary>
 | 
			
		||||
		/// A custom suffix to be appended to the user agent.
 | 
			
		||||
		/// </summary>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -200,6 +200,7 @@ namespace SebWindowsConfig
 | 
			
		|||
		public const String KeyAllowReconfiguration = "examSessionReconfigureAllow";
 | 
			
		||||
		public const String KeyReconfigurationUrl = "examSessionReconfigureConfigURL";
 | 
			
		||||
		public const String KeyResetOnQuitUrl = "quitURLRestart";
 | 
			
		||||
		public const String KeyUseStartUrlQuery = "startURLAppendQueryParameter";
 | 
			
		||||
 | 
			
		||||
		// Group Additional Resources
 | 
			
		||||
		public const String KeyAdditionalResources = "additionalResources";
 | 
			
		||||
| 
						 | 
				
			
			@ -718,6 +719,7 @@ namespace SebWindowsConfig
 | 
			
		|||
			SEBSettings.settingsDefault.Add(SEBSettings.KeyAllowReconfiguration, false);
 | 
			
		||||
			SEBSettings.settingsDefault.Add(SEBSettings.KeyReconfigurationUrl, "");
 | 
			
		||||
			SEBSettings.settingsDefault.Add(SEBSettings.KeyResetOnQuitUrl, false);
 | 
			
		||||
			SEBSettings.settingsDefault.Add(SEBSettings.KeyUseStartUrlQuery, false);
 | 
			
		||||
 | 
			
		||||
			// Default settings for group "Additional Resources"
 | 
			
		||||
			SEBSettings.settingsDefault.Add(SEBSettings.KeyAdditionalResources, new ListObj());
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										84
									
								
								SebWindowsConfig/SebWindowsConfigForm.Designer.cs
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										84
									
								
								SebWindowsConfig/SebWindowsConfigForm.Designer.cs
									
										
									
										generated
									
									
									
								
							| 
						 | 
				
			
			@ -246,6 +246,7 @@ namespace SebWindowsConfig
 | 
			
		|||
			this.textBox4 = new System.Windows.Forms.TextBox();
 | 
			
		||||
			this.textBox3 = new System.Windows.Forms.TextBox();
 | 
			
		||||
			this.groupBox8 = new System.Windows.Forms.GroupBox();
 | 
			
		||||
			this.checkBoxResetOnQuitUrl = new System.Windows.Forms.CheckBox();
 | 
			
		||||
			this.checkBoxQuitURLConfirm = new System.Windows.Forms.CheckBox();
 | 
			
		||||
			this.textBoxQuitURL = new System.Windows.Forms.TextBox();
 | 
			
		||||
			this.textBox1 = new System.Windows.Forms.TextBox();
 | 
			
		||||
| 
						 | 
				
			
			@ -446,7 +447,9 @@ namespace SebWindowsConfig
 | 
			
		|||
			this.editDuplicateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
 | 
			
		||||
			this.configureClientToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
 | 
			
		||||
			this.applyAndStartSEBToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
 | 
			
		||||
			this.checkBoxResetOnQuitUrl = new System.Windows.Forms.CheckBox();
 | 
			
		||||
			this.groupBox17 = new System.Windows.Forms.GroupBox();
 | 
			
		||||
			this.checkBoxUseStartUrlQuery = new System.Windows.Forms.CheckBox();
 | 
			
		||||
			this.label23 = new System.Windows.Forms.Label();
 | 
			
		||||
			this.tabPageHookedKeys.SuspendLayout();
 | 
			
		||||
			this.groupBoxFunctionKeys.SuspendLayout();
 | 
			
		||||
			this.groupBoxSpecialKeys.SuspendLayout();
 | 
			
		||||
| 
						 | 
				
			
			@ -502,6 +505,7 @@ namespace SebWindowsConfig
 | 
			
		|||
			this.groupBoxExitSequence.SuspendLayout();
 | 
			
		||||
			this.tabControlSebWindowsConfig.SuspendLayout();
 | 
			
		||||
			this.menuStrip1.SuspendLayout();
 | 
			
		||||
			this.groupBox17.SuspendLayout();
 | 
			
		||||
			this.SuspendLayout();
 | 
			
		||||
			// 
 | 
			
		||||
			// openFileDialogSebConfigFile
 | 
			
		||||
| 
						 | 
				
			
			@ -3010,6 +3014,7 @@ namespace SebWindowsConfig
 | 
			
		|||
			// 
 | 
			
		||||
			// tabPageExam
 | 
			
		||||
			// 
 | 
			
		||||
			this.tabPageExam.Controls.Add(this.groupBox17);
 | 
			
		||||
			this.tabPageExam.Controls.Add(this.groupBox15);
 | 
			
		||||
			this.tabPageExam.Controls.Add(this.groupBox2);
 | 
			
		||||
			this.tabPageExam.Controls.Add(this.groupBox9);
 | 
			
		||||
| 
						 | 
				
			
			@ -3089,7 +3094,7 @@ namespace SebWindowsConfig
 | 
			
		|||
			this.groupBox2.Margin = new System.Windows.Forms.Padding(2);
 | 
			
		||||
			this.groupBox2.Name = "groupBox2";
 | 
			
		||||
			this.groupBox2.Padding = new System.Windows.Forms.Padding(2);
 | 
			
		||||
			this.groupBox2.Size = new System.Drawing.Size(610, 118);
 | 
			
		||||
			this.groupBox2.Size = new System.Drawing.Size(610, 108);
 | 
			
		||||
			this.groupBox2.TabIndex = 122;
 | 
			
		||||
			this.groupBox2.TabStop = false;
 | 
			
		||||
			this.groupBox2.Text = "Session Handling";
 | 
			
		||||
| 
						 | 
				
			
			@ -3107,7 +3112,7 @@ namespace SebWindowsConfig
 | 
			
		|||
			// checkBoxClearSessionOnEnd
 | 
			
		||||
			// 
 | 
			
		||||
			this.checkBoxClearSessionOnEnd.AutoSize = true;
 | 
			
		||||
			this.checkBoxClearSessionOnEnd.Location = new System.Drawing.Point(15, 88);
 | 
			
		||||
			this.checkBoxClearSessionOnEnd.Location = new System.Drawing.Point(15, 83);
 | 
			
		||||
			this.checkBoxClearSessionOnEnd.Margin = new System.Windows.Forms.Padding(2);
 | 
			
		||||
			this.checkBoxClearSessionOnEnd.Name = "checkBoxClearSessionOnEnd";
 | 
			
		||||
			this.checkBoxClearSessionOnEnd.Size = new System.Drawing.Size(570, 17);
 | 
			
		||||
| 
						 | 
				
			
			@ -3137,9 +3142,9 @@ namespace SebWindowsConfig
 | 
			
		|||
			this.groupBox9.Controls.Add(this.textBoxRestartExamText);
 | 
			
		||||
			this.groupBox9.Controls.Add(this.textBox4);
 | 
			
		||||
			this.groupBox9.Controls.Add(this.textBox3);
 | 
			
		||||
			this.groupBox9.Location = new System.Drawing.Point(605, 318);
 | 
			
		||||
			this.groupBox9.Location = new System.Drawing.Point(605, 287);
 | 
			
		||||
			this.groupBox9.Name = "groupBox9";
 | 
			
		||||
			this.groupBox9.Size = new System.Drawing.Size(610, 181);
 | 
			
		||||
			this.groupBox9.Size = new System.Drawing.Size(610, 168);
 | 
			
		||||
			this.groupBox9.TabIndex = 121;
 | 
			
		||||
			this.groupBox9.TabStop = false;
 | 
			
		||||
			this.groupBox9.Text = "Back to Start Button (Mac)";
 | 
			
		||||
| 
						 | 
				
			
			@ -3173,7 +3178,7 @@ namespace SebWindowsConfig
 | 
			
		|||
			// 
 | 
			
		||||
			this.checkBoxRestartExamPasswordProtected.AutoSize = true;
 | 
			
		||||
			this.checkBoxRestartExamPasswordProtected.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 | 
			
		||||
			this.checkBoxRestartExamPasswordProtected.Location = new System.Drawing.Point(14, 152);
 | 
			
		||||
			this.checkBoxRestartExamPasswordProtected.Location = new System.Drawing.Point(15, 139);
 | 
			
		||||
			this.checkBoxRestartExamPasswordProtected.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
 | 
			
		||||
			this.checkBoxRestartExamPasswordProtected.Name = "checkBoxRestartExamPasswordProtected";
 | 
			
		||||
			this.checkBoxRestartExamPasswordProtected.Size = new System.Drawing.Size(300, 17);
 | 
			
		||||
| 
						 | 
				
			
			@ -3187,7 +3192,7 @@ namespace SebWindowsConfig
 | 
			
		|||
			// textBoxRestartExamText
 | 
			
		||||
			// 
 | 
			
		||||
			this.textBoxRestartExamText.Font = new System.Drawing.Font("Courier New", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 | 
			
		||||
			this.textBoxRestartExamText.Location = new System.Drawing.Point(14, 101);
 | 
			
		||||
			this.textBoxRestartExamText.Location = new System.Drawing.Point(14, 90);
 | 
			
		||||
			this.textBoxRestartExamText.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
 | 
			
		||||
			this.textBoxRestartExamText.Name = "textBoxRestartExamText";
 | 
			
		||||
			this.textBoxRestartExamText.Size = new System.Drawing.Size(526, 19);
 | 
			
		||||
| 
						 | 
				
			
			@ -3201,7 +3206,7 @@ namespace SebWindowsConfig
 | 
			
		|||
			this.textBox4.BackColor = System.Drawing.SystemColors.Window;
 | 
			
		||||
			this.textBox4.BorderStyle = System.Windows.Forms.BorderStyle.None;
 | 
			
		||||
			this.textBox4.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 | 
			
		||||
			this.textBox4.Location = new System.Drawing.Point(15, 126);
 | 
			
		||||
			this.textBox4.Location = new System.Drawing.Point(15, 118);
 | 
			
		||||
			this.textBox4.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
 | 
			
		||||
			this.textBox4.Multiline = true;
 | 
			
		||||
			this.textBox4.Name = "textBox4";
 | 
			
		||||
| 
						 | 
				
			
			@ -3232,13 +3237,26 @@ namespace SebWindowsConfig
 | 
			
		|||
			this.groupBox8.Controls.Add(this.checkBoxQuitURLConfirm);
 | 
			
		||||
			this.groupBox8.Controls.Add(this.textBoxQuitURL);
 | 
			
		||||
			this.groupBox8.Controls.Add(this.textBox1);
 | 
			
		||||
			this.groupBox8.Location = new System.Drawing.Point(605, 150);
 | 
			
		||||
			this.groupBox8.Location = new System.Drawing.Point(605, 138);
 | 
			
		||||
			this.groupBox8.Name = "groupBox8";
 | 
			
		||||
			this.groupBox8.Size = new System.Drawing.Size(610, 144);
 | 
			
		||||
			this.groupBox8.Size = new System.Drawing.Size(610, 136);
 | 
			
		||||
			this.groupBox8.TabIndex = 120;
 | 
			
		||||
			this.groupBox8.TabStop = false;
 | 
			
		||||
			this.groupBox8.Text = "Link to quit SEB after exam";
 | 
			
		||||
			// 
 | 
			
		||||
			// checkBoxResetOnQuitUrl
 | 
			
		||||
			// 
 | 
			
		||||
			this.checkBoxResetOnQuitUrl.AutoSize = true;
 | 
			
		||||
			this.checkBoxResetOnQuitUrl.Location = new System.Drawing.Point(15, 110);
 | 
			
		||||
			this.checkBoxResetOnQuitUrl.Name = "checkBoxResetOnQuitUrl";
 | 
			
		||||
			this.checkBoxResetOnQuitUrl.Size = new System.Drawing.Size(146, 17);
 | 
			
		||||
			this.checkBoxResetOnQuitUrl.TabIndex = 115;
 | 
			
		||||
			this.checkBoxResetOnQuitUrl.Text = "Restart instead of quitting";
 | 
			
		||||
			this.toolTip1.SetToolTip(this.checkBoxResetOnQuitUrl, "Session in SEB is restarted after the quit URL has been detected, instead of quit" +
 | 
			
		||||
        "ting SEB");
 | 
			
		||||
			this.checkBoxResetOnQuitUrl.UseVisualStyleBackColor = true;
 | 
			
		||||
			this.checkBoxResetOnQuitUrl.CheckedChanged += new System.EventHandler(this.checkBoxResetOnQuitUrl_CheckedChanged);
 | 
			
		||||
			// 
 | 
			
		||||
			// checkBoxQuitURLConfirm
 | 
			
		||||
			// 
 | 
			
		||||
			this.checkBoxQuitURLConfirm.AutoSize = true;
 | 
			
		||||
| 
						 | 
				
			
			@ -5800,18 +5818,37 @@ namespace SebWindowsConfig
 | 
			
		|||
			this.applyAndStartSEBToolStripMenuItem.Visible = false;
 | 
			
		||||
			this.applyAndStartSEBToolStripMenuItem.Click += new System.EventHandler(this.applyAndStartSEBToolStripMenuItem_Click);
 | 
			
		||||
			// 
 | 
			
		||||
			// checkBoxResetOnQuitUrl
 | 
			
		||||
			// groupBox17
 | 
			
		||||
			// 
 | 
			
		||||
			this.checkBoxResetOnQuitUrl.AutoSize = true;
 | 
			
		||||
			this.checkBoxResetOnQuitUrl.Location = new System.Drawing.Point(15, 110);
 | 
			
		||||
			this.checkBoxResetOnQuitUrl.Name = "checkBoxResetOnQuitUrl";
 | 
			
		||||
			this.checkBoxResetOnQuitUrl.Size = new System.Drawing.Size(146, 17);
 | 
			
		||||
			this.checkBoxResetOnQuitUrl.TabIndex = 115;
 | 
			
		||||
			this.checkBoxResetOnQuitUrl.Text = "Restart instead of quitting";
 | 
			
		||||
			this.toolTip1.SetToolTip(this.checkBoxResetOnQuitUrl, "Session in SEB is restarted after the quit URL has been detected, instead of quit" +
 | 
			
		||||
        "ting SEB");
 | 
			
		||||
			this.checkBoxResetOnQuitUrl.UseVisualStyleBackColor = true;
 | 
			
		||||
			this.checkBoxResetOnQuitUrl.CheckedChanged += new System.EventHandler(this.checkBoxResetOnQuitUrl_CheckedChanged);
 | 
			
		||||
			this.groupBox17.Controls.Add(this.label23);
 | 
			
		||||
			this.groupBox17.Controls.Add(this.checkBoxUseStartUrlQuery);
 | 
			
		||||
			this.groupBox17.Location = new System.Drawing.Point(605, 471);
 | 
			
		||||
			this.groupBox17.Name = "groupBox17";
 | 
			
		||||
			this.groupBox17.Size = new System.Drawing.Size(610, 86);
 | 
			
		||||
			this.groupBox17.TabIndex = 124;
 | 
			
		||||
			this.groupBox17.TabStop = false;
 | 
			
		||||
			this.groupBox17.Text = "Query String Parameter";
 | 
			
		||||
			// 
 | 
			
		||||
			// checkBoxUseStartUrlQuery
 | 
			
		||||
			// 
 | 
			
		||||
			this.checkBoxUseStartUrlQuery.AutoSize = true;
 | 
			
		||||
			this.checkBoxUseStartUrlQuery.Location = new System.Drawing.Point(15, 59);
 | 
			
		||||
			this.checkBoxUseStartUrlQuery.Name = "checkBoxUseStartUrlQuery";
 | 
			
		||||
			this.checkBoxUseStartUrlQuery.Size = new System.Drawing.Size(133, 17);
 | 
			
		||||
			this.checkBoxUseStartUrlQuery.TabIndex = 0;
 | 
			
		||||
			this.checkBoxUseStartUrlQuery.Text = "Allow Query Parameter";
 | 
			
		||||
			this.toolTip1.SetToolTip(this.checkBoxUseStartUrlQuery, "If a seb(s):// link contains an additional query string, SEB appends it to the ex" +
 | 
			
		||||
        "am\'s Start URL");
 | 
			
		||||
			this.checkBoxUseStartUrlQuery.UseVisualStyleBackColor = true;
 | 
			
		||||
			this.checkBoxUseStartUrlQuery.CheckedChanged += new System.EventHandler(this.checkBoxUseStartUrlQuery_CheckedChanged);
 | 
			
		||||
			// 
 | 
			
		||||
			// label23
 | 
			
		||||
			// 
 | 
			
		||||
			this.label23.Location = new System.Drawing.Point(12, 24);
 | 
			
		||||
			this.label23.Name = "label23";
 | 
			
		||||
			this.label23.Size = new System.Drawing.Size(592, 27);
 | 
			
		||||
			this.label23.TabIndex = 1;
 | 
			
		||||
			this.label23.Text = resources.GetString("label23.Text");
 | 
			
		||||
			// 
 | 
			
		||||
			// SebWindowsConfigForm
 | 
			
		||||
			// 
 | 
			
		||||
| 
						 | 
				
			
			@ -5932,6 +5969,8 @@ namespace SebWindowsConfig
 | 
			
		|||
			this.tabControlSebWindowsConfig.ResumeLayout(false);
 | 
			
		||||
			this.menuStrip1.ResumeLayout(false);
 | 
			
		||||
			this.menuStrip1.PerformLayout();
 | 
			
		||||
			this.groupBox17.ResumeLayout(false);
 | 
			
		||||
			this.groupBox17.PerformLayout();
 | 
			
		||||
			this.ResumeLayout(false);
 | 
			
		||||
			this.PerformLayout();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -6355,6 +6394,9 @@ namespace SebWindowsConfig
 | 
			
		|||
		private System.Windows.Forms.CheckBox checkBoxAllowReconfiguration;
 | 
			
		||||
		private System.Windows.Forms.Label label22;
 | 
			
		||||
		private System.Windows.Forms.CheckBox checkBoxResetOnQuitUrl;
 | 
			
		||||
		private System.Windows.Forms.GroupBox groupBox17;
 | 
			
		||||
		private System.Windows.Forms.Label label23;
 | 
			
		||||
		private System.Windows.Forms.CheckBox checkBoxUseStartUrlQuery;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -554,6 +554,7 @@ namespace SebWindowsConfig
 | 
			
		|||
			textBoxRestartExamText.Text = (String)SEBSettings.settingsCurrent[SEBSettings.KeyRestartExamText];
 | 
			
		||||
			checkBoxAllowReconfiguration.Checked = (Boolean)SEBSettings.settingsCurrent[SEBSettings.KeyAllowReconfiguration];
 | 
			
		||||
			textBoxReconfigurationUrl.Text = (String)SEBSettings.settingsCurrent[SEBSettings.KeyReconfigurationUrl];
 | 
			
		||||
			checkBoxUseStartUrlQuery.Checked = (Boolean)SEBSettings.settingsCurrent[SEBSettings.KeyUseStartUrlQuery];
 | 
			
		||||
 | 
			
		||||
			// Group AdditionalResources
 | 
			
		||||
			tabControlSebWindowsConfig.TabPages.Remove(tabPageAdditionalResources);
 | 
			
		||||
| 
						 | 
				
			
			@ -4608,5 +4609,10 @@ namespace SebWindowsConfig
 | 
			
		|||
		{
 | 
			
		||||
			SEBSettings.settingsCurrent[SEBSettings.KeyResetOnQuitUrl] = checkBoxResetOnQuitUrl.Checked;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		private void checkBoxUseStartUrlQuery_CheckedChanged(object sender, EventArgs e)
 | 
			
		||||
		{
 | 
			
		||||
			SEBSettings.settingsCurrent[SEBSettings.KeyUseStartUrlQuery] = checkBoxUseStartUrlQuery.Checked;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -131,7 +131,7 @@
 | 
			
		|||
        AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
 | 
			
		||||
        LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
 | 
			
		||||
        ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAq
 | 
			
		||||
        1gAAAk1TRnQBSQFMAgEBDAEAAXABCwFwAQsBIAEAASABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAGA
 | 
			
		||||
        1gAAAk1TRnQBSQFMAgEBDAEAAXgBCwF4AQsBIAEAASABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAGA
 | 
			
		||||
        AwABgAMAAQEBAAEgBwABAf8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
 | 
			
		||||
        /wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
 | 
			
		||||
        /wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A0QABjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGO
 | 
			
		||||
| 
						 | 
				
			
			@ -157,10 +157,10 @@
 | 
			
		|||
        Af8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGO
 | 
			
		||||
        AYsBAAH/A1IB9AMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
 | 
			
		||||
        Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
 | 
			
		||||
        Af8DAAH/AwAB/wNUAe4QAAMyAVEDTgH6A04B+gNOAfoDTgH6A04B+gNOAfoDTgH6A04B+gNOAfoDTgH6
 | 
			
		||||
        A04B+gNOAfoDTgH6A04B+gNOAfoDTgH6A04B+gNOAfoDTgH6A04B+gNOAfoDTgH6AzYBWTQAAzIBUANc
 | 
			
		||||
        Ad8BsQGvAa0B/wGlAaIBoQH/AZIBjwGOAf8BhgGDAYIB/wGAAT8BPgH/AYABPwE+Af8BgAE/AT4B/wGA
 | 
			
		||||
        AT8BPgH/AYABPwE+Af8BigGHAYYB/wGWAZMBkgH/AaUBogGgAf8BpgGjAaEB/wNUAa8DFwEgGAABjgGL
 | 
			
		||||
        Af8DAAH/AwAB/wNUAe4QAAMyAVEDTQH6A00B+gNNAfoDTQH6A00B+gNNAfoDTQH6A00B+gNNAfoDTQH6
 | 
			
		||||
        A00B+gNNAfoDTQH6A00B+gNNAfoDTQH6A00B+gNNAfoDTQH6A00B+gNNAfoDTQH6AzYBWTQAAzIBUANc
 | 
			
		||||
        Ad8BsQGvAa0B/wGlAaIBoQH/AZIBjwGOAf8BhgGDAYIB/wGAAT4BPQH/AYABPgE9Af8BgAE+AT0B/wGA
 | 
			
		||||
        AT4BPQH/AYABPgE9Af8BigGHAYYB/wGWAZMBkgH/AaUBogGgAf8BpgGjAaEB/wNUAa8DFwEgGAABjgGL
 | 
			
		||||
        AQAB/wGOAYsBAAH/AbsBuQEAAf8C/gH9Af8C/gH9Af8C/gH9Af8C9AHmAf8BwgHAAQAB/wL+Af0B/wL+
 | 
			
		||||
        Af0B/wL+Af0B/wLwAd0B/wHGAcQBAAH/Av4B/QH/Av4B/QH/Av4B/QH/AekB6AHOAf8BqwGoAQAB/wGP
 | 
			
		||||
        AYwBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA
 | 
			
		||||
| 
						 | 
				
			
			@ -168,16 +168,16 @@
 | 
			
		|||
        Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
 | 
			
		||||
        Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xAA
 | 
			
		||||
        AzQBVFj/AzgBXCwAAwwBEANRAZ8BtQGyAbAB/wGpAaYBpAH/AZIBjwGNAf8BhAGBAYAB/wGRAY4BjAH/
 | 
			
		||||
        AZkBlgGUAf8BjwGMAYoB/wGEAYEBgAH/AYABPwE+Af8BgAE/AT4B/wGAAT8BPgH/AYABPwE+Af8BgAE/
 | 
			
		||||
        AT4B/wGAAT8BPgH/AZEBjgGNAf8BpAGhAZ8B/wNiAe8DMgFQFAABjgGLAQAB/wGOAYsBAAH/AbsBuQEA
 | 
			
		||||
        AZkBlgGUAf8BjwGMAYoB/wGEAYEBgAH/AYABPgE9Af8BgAE+AT0B/wGAAT4BPQH/AYABPgE9Af8BgAE+
 | 
			
		||||
        AT0B/wGAAT4BPQH/AZEBjgGNAf8BpAGhAZ8B/wNiAe8DMgFQFAABjgGLAQAB/wGOAYsBAAH/AbsBuQEA
 | 
			
		||||
        Af8MAAL1AegB/wHCAcABAAH/DAAC8QHfAf8BxgHEAQAB/wwAAeoB6QHPAf8B0gHRAZoB/wG+AbwBAAH/
 | 
			
		||||
        AY8BjAEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGL
 | 
			
		||||
        AQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8DAAH/AwAB/wMAAf8DmgH/
 | 
			
		||||
        A6IB/wOiAf8DogH/A6IB/wOiAf8DogH/A6IB/wOiAf8DogH/A6IB/wOiAf8DogH/A6IB/wOiAf8DogH/
 | 
			
		||||
        A6IB/wOiAf8DogH/A6IB/wOiAf8DogH/A6IB/wOiAf8DogH/A5oB/wMAAf8DAAH/AwAB/xAAAzMBU1j/
 | 
			
		||||
        AzcBWygAAwwBEANcAc8BtwG0AbIB/wGfAZwBmwH/AYsBiAGHAf8BiQGGAYQB/wGYAZUBkwH/AakBpgGk
 | 
			
		||||
        Af8BpwGkAaIB/wGkAaEBnwH/AaIBnwGdAf8BlgGTAZEB/wGFAYIBgQH/AYABPwE+Af8BgAE/AT4B/wGA
 | 
			
		||||
        AT8BPgH/AYABPwE+Af8BgAE/AT4B/wGCAUEBQAH/AZ0BmgGYAf8BpQGiAaAB/wM6AWAQAAGOAYsBAAH/
 | 
			
		||||
        Af8BpwGkAaIB/wGkAaEBnwH/AaIBnwGdAf8BlgGTAZEB/wGFAYIBgQH/AYABPgE9Af8BgAE+AT0B/wGA
 | 
			
		||||
        AT4BPQH/AYABPgE9Af8BgAE+AT0B/wGCAUABPwH/AZ0BmgGYAf8BpQGiAaAB/wM6AWAQAAGOAYsBAAH/
 | 
			
		||||
        AY4BiwEAAf8BuwG5AQAB/wwAAvUB6AH/AcIBwAEAAf8MAALxAd8B/wHGAcQBAAH/DAAB6gHpAc8B/wHS
 | 
			
		||||
        AdEBmgH/Ad0B3AGyAf8BxQHDAQAB/wGPAYwBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA
 | 
			
		||||
        Af8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wMA
 | 
			
		||||
| 
						 | 
				
			
			@ -185,7 +185,7 @@
 | 
			
		|||
        Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DkwH/A6IB/wMA
 | 
			
		||||
        Af8DAAH/EAADMwFTWP8DNwFbKAADXAHPAbcBtAGyAf8BmwGYAZYB/wGQAY0BiwH/AY0BigGJAf8BiwGI
 | 
			
		||||
        AYcB/wGoAaUBowH/AaoBpwGlAf8BpwGkAaIB/wGmAaMBoQH/AaMBoAGeAf8BogGfAZ0B/wGdAZoBmAH/
 | 
			
		||||
        AY0BigGJAf8BgQFAAT8B/wGAAT8BPgH/AYABPwE+Af8BgAE/AT4B/wGAAT8BPgH/AYABPwE+Af8BmAGV
 | 
			
		||||
        AY0BigGJAf8BgQE/AT4B/wGAAT4BPQH/AYABPgE9Af8BgAE+AT0B/wGAAT4BPQH/AYABPgE9Af8BmAGV
 | 
			
		||||
        AZMB/wGlAaIBoAH/AzoBYAwAAY4BiwEAAf8BjgGLAQAB/wG7AbkBAAH/DAAC9QHoAf8BwgHAAQAB/wwA
 | 
			
		||||
        AvEB3wH/AcYBxAEAAf8MAAHqAekBzwH/AdIB0QGaAf8B3QHcAbIB/wHdAdwBsgH/Ac8BzgGSAf8BjgGL
 | 
			
		||||
        AQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/
 | 
			
		||||
| 
						 | 
				
			
			@ -194,7 +194,7 @@
 | 
			
		|||
        AwAB/wMAAf8DAAH/AwAB/wMAAf8DkwH/A5oB/wMAAf8QAAMzAVNY/wM3AVskAANMAY8BuwG4AbcB/wGh
 | 
			
		||||
        AZ4BnAH/AZQBkQGPAf8BkgGPAY0B/wGQAY0BiwH/AY0BigGJAf8BqgGnAaUB/wGqAacBpQH/AagBpQGj
 | 
			
		||||
        Af8BpwGkAaIB/wGkAaEBnwH/AaMBoAGeAf8BoQGeAZwB/wGhAZ4BnAH/AZ4BmwGZAf8BkQGOAYwB/wGC
 | 
			
		||||
        AUEBQAH/AYABPwE+Af8BgAE/AT4B/wGAAT8BPgH/AYABPwE+Af8BmAGVAZMB/wGlAaIBoAH/AyEBMAgA
 | 
			
		||||
        AUABPwH/AYABPgE9Af8BgAE+AT0B/wGAAT4BPQH/AYABPgE9Af8BmAGVAZMB/wGlAaIBoAH/AyEBMAgA
 | 
			
		||||
        AY4BiwEAAf8BjgGLAQAB/wGfAZwBAAH/AbgBtgEAAf8BuAG2AQAB/wG4AbYBAAH/AbQBsgEAAf8BoQGf
 | 
			
		||||
        AQAB/wG4AbYBAAH/AbgBtgEAAf8BuAG2AQAB/wGyAbABAAH/AacBpAEAAf8BvgG9AQAB/wG+Ab0BAAH/
 | 
			
		||||
        Ab4BvQEAAf8BuAG2AQAB/wHQAc8BlQH/Ad0B3AGyAf8B3QHcAbIB/wLqAdAB/wGOAYsBAAH/AY4BiwEA
 | 
			
		||||
| 
						 | 
				
			
			@ -204,7 +204,7 @@
 | 
			
		|||
        Af8DAAH/AwAB/wMAAf8DogH/AwAB/xAAAzMBU1j/AzcBWyAAAyoBQAG8AboBuAH/AasBqAGnAf8BmAGV
 | 
			
		||||
        AZMB/wGWAZMBkQH/AZQBkQGPAf8BkgGPAY0B/wGQAY0BiwH/AasBqAGmAf8BqwGoAaYB/wGpAaYBpAH/
 | 
			
		||||
        AacBpAGiAf8BpQGiAaAB/wGjAaABngH/AaEBngGcAf8BoQGeAZwB/wGhAZ4BnAH/AaEBngGcAf8BmwGY
 | 
			
		||||
        AZYB/wGBAUABPwH/AYABPwE+Af8BgAE/AT4B/wGAAT8BPgH/AYIBQQFAAf8BoQGeAZ0B/wNcAc8IAAGO
 | 
			
		||||
        AZYB/wGBAT8BPgH/AYABPgE9Af8BgAE+AT0B/wGAAT4BPQH/AYIBQAE/Af8BoQGeAZ0B/wNcAc8IAAGO
 | 
			
		||||
        AYsBAAH/AY4BiwEAAf8BuwG5AQAB/wwAAvUB6AH/AcIBwAEAAf8MAALxAd8B/wGzAbEBAAH/AuYBxwH/
 | 
			
		||||
        Ae0B7AHWAf8B7QHsAdYB/wHtAewB1gH/AcQBwgEAAf8BzAHLAYwB/wHdAdwBsgH/AuoB0AH/AY4BiwEA
 | 
			
		||||
        Af8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGO
 | 
			
		||||
| 
						 | 
				
			
			@ -213,16 +213,16 @@
 | 
			
		|||
        AwAB/wMAAf8DogH/AwAB/xAAAzMBU1j/AzcBWyAAA1kBvwG6AbcBtQH/AZ0BmgGYAf8BmwGYAZYB/wGY
 | 
			
		||||
        AZUBkwH/AZYBkwGRAf8BlAGRAY8B/wGSAY8BjQH/AagBpQGjAf8BnQGaAZkB/wGqAacBpQH/AagBpQGj
 | 
			
		||||
        Af8BpgGjAaEB/wGkAaEBnwH/AaIBnwGdAf8BoQGeAZwB/wGhAZ4BnAH/AaEBngGcAf8BoQGeAZwB/wGF
 | 
			
		||||
        AYIBgAH/AYABPwE+Af8BgAE/AT4B/wGAAT8BPgH/AYABPwE+Af8BigGHAYYB/wGmAaMBoQH/AzoBYAQA
 | 
			
		||||
        AYIBgAH/AYABPgE9Af8BgAE+AT0B/wGAAT4BPQH/AYABPgE9Af8BigGHAYYB/wGmAaMBoQH/AzoBYAQA
 | 
			
		||||
        AY4BiwEAAf8BjgGLAQAB/wG7AbkBAAH/DAAC9QHoAf8BwgHAAQAB/wwAAvEB3wH/AcwBywGNAf8B0wHS
 | 
			
		||||
        AZwB/wHuAe0B2AH/Ae4B7QHYAf8B7gHtAdgB/wHuAe0B2AH/AacBpAEAAf8ByQHIAYUB/wLqAdAB/wGO
 | 
			
		||||
        AYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA
 | 
			
		||||
        Af8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8DAAH/A6IB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
 | 
			
		||||
        Af8DAAH/AwAB/wMAAf8DyAH/CAAD4wH/A6AB/wOtAf8IAAPIAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
 | 
			
		||||
        Af8DAAH/AwAB/wMAAf8DogH/AwAB/xAAAzMBU1j/AzcBWxwAAyoBQAHAAb0BvAH/AawBqQGoAf8BnwGc
 | 
			
		||||
        AZoB/wGdAZoBmAH/AZsBmAGWAf8BmAGVAZMB/wE4ATYBNAH/AQMBAgEBAf8DAAH/AwAB/wE7ATgBNwH/
 | 
			
		||||
        AZoB/wGdAZoBmAH/AZsBmAGWAf8BmAGVAZMB/wE3ATUBMwH/AQIBAQEAAf8DAAH/AwAB/wE6ATcBNgH/
 | 
			
		||||
        AakBpgGkAf8BpwGkAaIB/wGlAaIBoAH/AaMBoAGeAf8BoQGeAZwB/wGhAZ4BnAH/AaEBngGcAf8BoQGe
 | 
			
		||||
        AZwB/wGFAYIBgQH/AYABPwE+Af8BgAE/AT4B/wGAAT8BPgH/AYABPwE+Af8BgAE/AT4B/wGdAZoBmQH/
 | 
			
		||||
        AZwB/wGFAYIBgQH/AYABPgE9Af8BgAE+AT0B/wGAAT4BPQH/AYABPgE9Af8BgAE+AT0B/wGdAZoBmQH/
 | 
			
		||||
        A1wB3wQAAY4BiwEAAf8BjgGLAQAB/wG7AbkBAAH/DAAC9QHoAf8BwgHAAQAB/wwAAvEB3wH/AcwBywGN
 | 
			
		||||
        Af8B2wHaAa4B/xAAAboBuAEAAf8BzAHLAYwB/wHWAdUBpAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/
 | 
			
		||||
        AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGL
 | 
			
		||||
| 
						 | 
				
			
			@ -230,9 +230,9 @@
 | 
			
		|||
        Af8DAAH/AwAB/wMAAf8IAAORAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wOiAf8DAAH/
 | 
			
		||||
        EAADMwFTCP8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D/gH/
 | 
			
		||||
        A/4B/wP+Af8D/gH/A/4B/wP+Af8D/gX/AzcBWxwAA1EBnwG9AbsBuQH/AaQBoQGfAf8BogGfAZ0B/wGf
 | 
			
		||||
        AZwBmgH/AZ0BmgGYAf8BmwGYAZYB/wMAAf8DAAH/AwAB/wIAAQYB/wEbASQBKQH/AaoBpwGlAf8BqAGl
 | 
			
		||||
        AaMB/wGmAaMBoQH/AaQBoQGfAf8BogGfAZ0B/wGhAZ4BnAH/AaEBngGcAf8BngGbAZkB/wGAAT8BPgH/
 | 
			
		||||
        AYABPwE+Af8BgAE/AT4B/wGAAT8BPgH/AYABPwE+Af8BgAE/AT4B/wGMAYkBiAH/AacBpAGiAf8DIQEw
 | 
			
		||||
        AZwBmgH/AZ0BmgGYAf8BmwGYAZYB/wMAAf8DAAH/AwAB/wIAAQUB/wEaASMBKAH/AaoBpwGlAf8BqAGl
 | 
			
		||||
        AaMB/wGmAaMBoQH/AaQBoQGfAf8BogGfAZ0B/wGhAZ4BnAH/AaEBngGcAf8BngGbAZkB/wGAAT4BPQH/
 | 
			
		||||
        AYABPgE9Af8BgAE+AT0B/wGAAT4BPQH/AYABPgE9Af8BgAE+AT0B/wGMAYkBiAH/AacBpAGiAf8DIQEw
 | 
			
		||||
        AY4BiwEAAf8BjgGLAQAB/wG7AbkBAAH/DAAC9QHoAf8BwgHAAQAB/wwAAvEB3wH/AcwBywGNAf8B2wHa
 | 
			
		||||
        Aa4B/xAAAboBuAEAAf8C3QGzAf8B1AHTAZ4B/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/
 | 
			
		||||
        AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8DAAH/
 | 
			
		||||
| 
						 | 
				
			
			@ -240,9 +240,9 @@
 | 
			
		|||
        AwAB/wMAAf8DugH/BAADwAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DogH/AwAB/xAA
 | 
			
		||||
        AzMBUwT/A/4B/wP9Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9
 | 
			
		||||
        Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9Bf8DNwFbHAADXAHfAbYBtAGyAf8BpgGjAaEB/wGkAaEBnwH/
 | 
			
		||||
        AaIBnwGdAf8BnwGcAZoB/wGdAZoBmAH/ARwBGgEZAf8DAAH/AQABjwG4Af8BAAGPAb0B/wEkAY0BpAH/
 | 
			
		||||
        AaIBnwGdAf8BnwGcAZoB/wGdAZoBmAH/ARsBGQEYAf8DAAH/AQABjwG4Af8BAAGPAb0B/wEjAY0BpAH/
 | 
			
		||||
        AasBqAGmAf8BqQGmAaQB/wGnAaQBogH/AaUBogGgAf8BowGgAZ4B/wGhAZ4BnAH/AaEBngGcAf8BjwGM
 | 
			
		||||
        AYoB/wGEAYEBgAH/AYQBgQGAAf8BgAE/AT4B/wGAAT8BPgH/AYABPwE+Af8BgAE/AT4B/wGAAT8BPgH/
 | 
			
		||||
        AYoB/wGEAYEBgAH/AYQBgQGAAf8BgAE+AT0B/wGAAT4BPQH/AYABPgE9Af8BgAE+AT0B/wGAAT4BPQH/
 | 
			
		||||
        AagBpQGjAf8DRwGAAY4BiwEAAf8BjgGLAQAB/wGfAZwBAAH/AbgBtgEAAf8BuAG2AQAB/wG4AbYBAAH/
 | 
			
		||||
        AbQBsgEAAf8BpAGhAQAB/wHLAcoBiwH/AcsBygGLAf8BywHKAYsB/wHIAccBgwH/Ab8BvgEAAf8B2wHa
 | 
			
		||||
        Aa0B/xAAAboBuAEAAf8C3QGzAf8C6gHQAf8BjgGLAQAB/wGRAY4BAAH/AcwBywGMAf8BlwGUAQAB/wGO
 | 
			
		||||
| 
						 | 
				
			
			@ -251,10 +251,10 @@
 | 
			
		|||
        AwAB/wMAAf8DnAH/BAADzgH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DogH/AwAB/xAA
 | 
			
		||||
        AzMBUwP+Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9Af8D/QH/
 | 
			
		||||
        A/0B/wP9Af8D/QH/A/0B/wP9Af8D/QH/A/0F/wM3AVsYAAMMARABxAHBAcAB/wGyAa8BrQH/AakBpgGk
 | 
			
		||||
        Af8BpgGjAaEB/wGkAaEBnwH/AaIBnwGdAf8BnwGcAZoB/wGDAYABQAH/AwAB/wELAaQBygH/AQABkAG9
 | 
			
		||||
        Af8BJAGNAaQB/wGsAakBpwH/AaoBpwGlAf8BqAGlAaMB/wGmAaMBoQH/AaQBoQGfAf8BngGbAZkB/wGR
 | 
			
		||||
        AY4BjQH/AZQBkQGPAf8BoQGeAZwB/wGgAZ0BmwH/AY8BjAGKAf8BgAE/AT4B/wGAAT8BPgH/AYABPwE+
 | 
			
		||||
        Af8BgAE/AT4B/wGfAZwBmgH/A1QBrwGOAYsBAAH/AY4BiwEAAf8BuwG5AQAB/wwAAvUB6AH/AbkBtgEA
 | 
			
		||||
        Af8BpgGjAaEB/wGkAaEBnwH/AaIBnwGdAf8BnwGcAZoB/wGDAYABPwH/AwAB/wEKAaQBygH/AQABkAG9
 | 
			
		||||
        Af8BIwGNAaQB/wGsAakBpwH/AaoBpwGlAf8BqAGlAaMB/wGmAaMBoQH/AaQBoQGfAf8BngGbAZkB/wGR
 | 
			
		||||
        AY4BjQH/AZQBkQGPAf8BoQGeAZwB/wGgAZ0BmwH/AY8BjAGKAf8BgAE+AT0B/wGAAT4BPQH/AYABPgE9
 | 
			
		||||
        Af8BgAE+AT0B/wGfAZwBmgH/A1QBrwGOAYsBAAH/AY4BiwEAAf8BuwG5AQAB/wwAAvUB6AH/AbkBtgEA
 | 
			
		||||
        Af8B1AHTAZ4B/wHZAdgBqAH/AdkB2AGoAf8B2QHYAagB/wHFAcQBAAH/AaQBoQEAAf8BxQHDAQAB/wHF
 | 
			
		||||
        AcMBAAH/AcUBwwEAAf8BxQHDAQAB/wG4AbYBAAH/At0BswH/AuoB0AH/AZEBjgEAAf8C3AGxAf8EAAHr
 | 
			
		||||
        AeoB0QH/AZcBlAEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA
 | 
			
		||||
| 
						 | 
				
			
			@ -262,10 +262,10 @@
 | 
			
		|||
        Af8DAAH/AwAB/wMAAf8DAAH/A9wB/wQAA7MB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
 | 
			
		||||
        A6IB/wMAAf8QAAMzAVMD/QH/A/0B/wP8Af8D/AH/A/wB/wP8Af8D/AH/A/wB/wP8Af8D/AH/A/wB/wP8
 | 
			
		||||
        Af8D/AH/A/wB/wP8Af8D/AH/A/wB/wP8Af8D/AH/A/wB/wP8Bf8DNwFbGAADKgFAAcQBwgHBAf8BvgG7
 | 
			
		||||
        AboB/wG2AbMBsQH/AasBqAGmAf8BpgGjAaEB/wGkAaEBnwH/AaIBnwGdAf8BnwGcAZoB/wERAQ8BDgH/
 | 
			
		||||
        AQABgwGZAf8BBwGmAcoB/wElAZIBpwH/Aa0BqgGoAf8BqwGoAaYB/wGlAaIBoAH/AZgBlQGTAf8BjwGM
 | 
			
		||||
        AYsB/wGJAYYBhAH/AZEBjgGNAf8BoQGeAZwB/wGhAZ4BnAH/AaEBngGcAf8BnwGcAZoB/wGBAUABPwH/
 | 
			
		||||
        AYABPwE+Af8BgAE/AT4B/wGAAT8BPgH/AZUBkgGQAf8DWQG/AY4BiwEAAf8BjgGLAQAB/wG7AbkBAAH/
 | 
			
		||||
        AboB/wG2AbMBsQH/AasBqAGmAf8BpgGjAaEB/wGkAaEBnwH/AaIBnwGdAf8BnwGcAZoB/wEQAQ4BDQH/
 | 
			
		||||
        AQABgwGZAf8BBgGmAcoB/wEkAZIBpwH/Aa0BqgGoAf8BqwGoAaYB/wGlAaIBoAH/AZgBlQGTAf8BjwGM
 | 
			
		||||
        AYsB/wGJAYYBhAH/AZEBjgGNAf8BoQGeAZwB/wGhAZ4BnAH/AaEBngGcAf8BnwGcAZoB/wGBAT8BPgH/
 | 
			
		||||
        AYABPgE9Af8BgAE+AT0B/wGAAT4BPQH/AZUBkgGQAf8DWQG/AY4BiwEAAf8BjgGLAQAB/wG7AbkBAAH/
 | 
			
		||||
        DAAC9QHoAf8ByAHGAYMB/wHWAdUBowH/AvIB4gH/AvIB4QH/AvIB4QH/AvIB4QH/Aa4BrAEAAf8B2wHa
 | 
			
		||||
        Aa0B/wL4Ae8B/wL4Ae8B/wL4Ae8B/wHWAdUBowH/AcUBxAEAAf8B4AHfAbkB/wHcAdsBsQH/DAAB6wHq
 | 
			
		||||
        AdEB/wGXAZQBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wMAAf8DoQH/
 | 
			
		||||
| 
						 | 
				
			
			@ -273,10 +273,10 @@
 | 
			
		|||
        AwAB/wOpAf8LAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DoQH/AwAB/xAAAzMBUwP8
 | 
			
		||||
        Af8D+wH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6
 | 
			
		||||
        Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP+Af8DNwFbGAADKgFAAcUBwwHCAf8BxAHBAcAB/wHCAcABvgH/
 | 
			
		||||
        Ab4BuwG6Af8BqgGnAaUB/wGmAaMBoQH/AaQBoQGfAf8BpAGhAZ8B/wGfAZwBmwH/AQABHwEqAf8BCgG9
 | 
			
		||||
        AdoB/wEnAZ4BrwH/Aa4BqwGpAf8BogGfAZ0B/wGSAY8BjQH/AZQBkQGPAf8BlAGRAZAB/wGLAYgBhwH/
 | 
			
		||||
        AZ4BmwGZAf8BoQGeAZwB/wGhAZ4BnAH/AaEBngGcAf8BoQGeAZwB/wGGAYMBggH/AYABPwE+Af8BgAE/
 | 
			
		||||
        AT4B/wGAAT8BPgH/AZUBkgGRAf8DYgHvAY4BiwEAAf8BjgGLAQAB/wG7AbkBAAH/DAAC9QHoAf8ByAHG
 | 
			
		||||
        Ab4BuwG6Af8BqgGnAaUB/wGmAaMBoQH/AaQBoQGfAf8BpAGhAZ8B/wGfAZwBmwH/AQABHgEpAf8BCQG9
 | 
			
		||||
        AdoB/wEmAZ4BrwH/Aa4BqwGpAf8BogGfAZ0B/wGSAY8BjQH/AZQBkQGPAf8BlAGRAZAB/wGLAYgBhwH/
 | 
			
		||||
        AZ4BmwGZAf8BoQGeAZwB/wGhAZ4BnAH/AaEBngGcAf8BoQGeAZwB/wGGAYMBggH/AYABPgE9Af8BgAE+
 | 
			
		||||
        AT0B/wGAAT4BPQH/AZUBkgGRAf8DYgHvAY4BiwEAAf8BjgGLAQAB/wG7AbkBAAH/DAAC9QHoAf8ByAHG
 | 
			
		||||
        AYMB/wHZAdgBqQH/EAABvgG8AQAB/wHTAdIBnAH/AcwBygGLAf8B2wHaAa4B/wHbAdoBrgH/AdsB2gGu
 | 
			
		||||
        Af8BvwG+AQAB/wG7AboBAAH/Av4B/AH/EAABugG4AQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGO
 | 
			
		||||
        AYsBAAH/AY4BiwEAAf8DAAH/A50B/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
 | 
			
		||||
| 
						 | 
				
			
			@ -284,19 +284,19 @@
 | 
			
		|||
        AwAB/wMAAf8DnQH/AwAB/xAAAzMBUwP6Af8D+QH/A/kB/wP5Af8D+QH/A/kB/wP5Af8D+QH/A/kB/wP5
 | 
			
		||||
        Af8D+QH/A/kB/wP5Af8D+QH/A/kB/wP5Af8D+QH/A/kB/wP5Af8D+QH/A/kB/wP9Af8DNwFbGAADKgFA
 | 
			
		||||
        AccBxQHDAf8BxQHDAcIB/wHDAcABvwH/Ab0CuwH/Aa8BrgGwAf8BrAGqAagB/wGmAaMBoQH/AagBpQGj
 | 
			
		||||
        Af8BtwG0AbIB/wEbASMBJAH/AQABxAHfAf8BEAGpAb4B/wGOAaEBpgH/AZYBkwGRAf8BlAGRAY8B/wGZ
 | 
			
		||||
        Af8BtwG0AbIB/wEaASIBIwH/AQABxAHfAf8BDwGpAb4B/wGOAaEBpgH/AZYBkwGRAf8BlAGRAY8B/wGZ
 | 
			
		||||
        AZYBlAH/AacBpAGiAf8BmwGYAZYB/wGjAaABngH/AaEBngGcAf8BoQGeAZwB/wGhAZ4BnAH/AaEBngGc
 | 
			
		||||
        Af8BhgGDAYIB/wGAAT8BPgH/AYABPwE+Af8BgAE/AT4B/wGWAZMBkQH/AasBqAGmAf8BjgGLAQAB/wGO
 | 
			
		||||
        Af8BhgGDAYIB/wGAAT4BPQH/AYABPgE9Af8BgAE+AT0B/wGWAZMBkQH/AasBqAGmAf8BjgGLAQAB/wGO
 | 
			
		||||
        AYsBAAH/AbsBuQEAAf8MAAL1AegB/wHIAcYBgwH/AdkB2AGoAf8QAAG+AbwBAAH/AdYB1QGiAf8B6AHn
 | 
			
		||||
        AcoB/wwAAdsB2gGuAf8B1wHWAaUB/wG2AbQBAAH/Av4B/AH/CAABwwHBAQAB/wGOAYsBAAH/AY4BiwEA
 | 
			
		||||
        Af8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wMAAf8DmAH/AwAB/wMAAf8DAAH/AwAB/wMA
 | 
			
		||||
        Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wOwAf8D6wH/CAADngH/AwAB/wMAAf8DAAH/
 | 
			
		||||
        AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wOYAf8DAAH/EAADMwFTA/kB/wP5Af8D+AH/A/gB/wP4
 | 
			
		||||
        Af8D+AH/A/gB/wP4Af8D+AH/A/gB/wP4Af8D+AH/A/gB/wP4Af8D+AH/A/gB/wP4Af8D+AH/A/gB/wP4
 | 
			
		||||
        Af8D+AH/A/wB/wM3AVsYAAMqAUABqAHAAcUB/wFBAbIBwAH/AQ8BogG8Af8BAAGaAbwB/wEAAZcBugH/
 | 
			
		||||
        ATIBqQG5Af8BrgGrAakB/wGrAagBpgH/AbgBtQGzAf8BQQE+AT0B/wEAAY8BoQH/AQABvwHbAf8BAAGi
 | 
			
		||||
        AcEB/wE1AZEBnQH/AaABnQGbAf8BnwGcAZoB/wGmAaMBoQH/AaYBowGhAf8BpAGhAZ8B/wGiAZ8BnQH/
 | 
			
		||||
        AaEBngGcAf8BoQGeAZwB/wGhAZ4BnAH/AYgBhQGEAf8BgAE/AT4B/wGAAT8BPgH/AYABPwE+Af8BlgGT
 | 
			
		||||
        Af8D+AH/A/wB/wM3AVsYAAMqAUABqAHAAcUB/wFAAbIBwAH/AQ4BogG8Af8BAAGaAbwB/wEAAZcBugH/
 | 
			
		||||
        ATEBqQG5Af8BrgGrAakB/wGrAagBpgH/AbgBtQGzAf8BQAE9ATwB/wEAAY8BoQH/AQABvwHbAf8BAAGi
 | 
			
		||||
        AcEB/wE0AZEBnQH/AaABnQGbAf8BnwGcAZoB/wGmAaMBoQH/AaYBowGhAf8BpAGhAZ8B/wGiAZ8BnQH/
 | 
			
		||||
        AaEBngGcAf8BoQGeAZwB/wGhAZ4BnAH/AYgBhQGEAf8BgAE+AT0B/wGAAT4BPQH/AYABPgE9Af8BlgGT
 | 
			
		||||
        AZIB/wNZAb8BjgGLAQAB/wGOAYsBAAH/AZcBlAEAAf8BugG4AQAB/wG9AbwBAAH/Ab0BvAEAAf8BuwG6
 | 
			
		||||
        AQAB/wHGAcQBAAH/AdkB2AGoAf8QAAG+AbwBAAH/AdYB1QGiAf8C5wHKAf8MAAHbAdoBrgH/AuoB0AH/
 | 
			
		||||
        AY4BiwEAAf8BtgG0AQAB/wH+Af0B/AH/AcMBwgEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGL
 | 
			
		||||
| 
						 | 
				
			
			@ -304,10 +304,10 @@
 | 
			
		|||
        AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A7AB/wgAA9UB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
 | 
			
		||||
        Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wOUAf8DAAH/EAADMwFTA/gB/wP3Af8D9gH/A/YB/wP2Af8D9gH/
 | 
			
		||||
        A/YB/wP2Af8D9gH/A/YB/wP2Af8D9gH/A/YB/wP2Af8D9gH/A/YB/wP2Af8D9gH/A/YB/wP2Af8D9gH/
 | 
			
		||||
        A/oB/wM3AVsQAAMyAVADVAGvAVgCYgHvAQABmgG8Af8BAAGmAcYB/wEAAbgB1AH/ARgBxgHfAf8BFwHC
 | 
			
		||||
        AdwB/wEAAZoBuAH/AboBuAG3Af8BuQG2AbUB/wG1AbMBsgH/ATEBhAGKAf8BAAGEAZwB/wEAAbsB1wH/
 | 
			
		||||
        AQABrgHPAf8BAAGVAb4B/wFBAZQBngH/AaoBpwGlAf8BqQGmAaQB/wGnAaQBogH/AaUBogGgAf8BowGg
 | 
			
		||||
        AZ4B/wGhAZ4BnAH/AaEBngGcAf8BoAGdAZsB/wGGAYMBggH/AYIBQQFAAf8BgAE/AT4B/wGAAT8BPgH/
 | 
			
		||||
        A/oB/wM3AVsQAAMyAVADVAGvAVgCYgHvAQABmgG8Af8BAAGmAcYB/wEAAbgB1AH/ARcBxgHfAf8BFgHC
 | 
			
		||||
        AdwB/wEAAZoBuAH/AboBuAG3Af8BuQG2AbUB/wG1AbMBsgH/ATABhAGKAf8BAAGEAZwB/wEAAbsB1wH/
 | 
			
		||||
        AQABrgHPAf8BAAGVAb4B/wFAAZQBngH/AaoBpwGlAf8BqQGmAaQB/wGnAaQBogH/AaUBogGgAf8BowGg
 | 
			
		||||
        AZ4B/wGhAZ4BnAH/AaEBngGcAf8BoAGdAZsB/wGGAYMBggH/AYIBQAE/Af8BgAE+AT0B/wGAAT4BPQH/
 | 
			
		||||
        AaIBnwGeAf8DWQG/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/Aa4BrAEAAf8B3gHdAbQB/wHeAd0BtAH/
 | 
			
		||||
        Ad4B3QG0Af8BzwHOAZMB/wGpAacBAAH/Ab4BvAEAAf8BvgG8AQAB/wG+AbwBAAH/Ab4BvAEAAf8BtgG0
 | 
			
		||||
        AQAB/wHWAdUBogH/AucBygH/DAAB2wHaAa4B/wLqAdAB/wGOAYsBAAH/AY4BiwEAAf8BoQGeAQAB/wGO
 | 
			
		||||
| 
						 | 
				
			
			@ -316,10 +316,10 @@
 | 
			
		|||
        Af8LAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A48B/wMA
 | 
			
		||||
        Af8QAAMzAVMD9gH/A/UB/wP1Af8D9QH/A/UB/wP1Af8D9QH/A/UB/wP1Af8D9QH/A/UB/wP1Af8D9QH/
 | 
			
		||||
        A/UB/wP1Af8D9QH/A/UB/wP1Af8D9QH/A/UB/wP1Af8D+QH/AzcBWxEAAZABvwH/AQABjAG3Af8BAAGy
 | 
			
		||||
        AdIB/wEDAccB4QH/ARgByQHhAf8BgQHHAdcB/wGaAcQBzAH/ASsBygHhAf8BAAGhAcIB/wEsAZ0BsQH/
 | 
			
		||||
        ASUBmwGyAf8BAAGWAbYB/wEAAaABwgH/AQABrgHMAf8BAAG4AdYB/wEAAbMB0wH/AQABmgHBAf8BEgGI
 | 
			
		||||
        AdIB/wECAccB4QH/ARcByQHhAf8BgQHHAdcB/wGaAcQBzAH/ASoBygHhAf8BAAGhAcIB/wErAZ0BsQH/
 | 
			
		||||
        ASQBmwGyAf8BAAGWAbYB/wEAAaABwgH/AQABrgHMAf8BAAG4AdYB/wEAAbMB0wH/AQABmgHBAf8BEQGI
 | 
			
		||||
        AaUB/wGrAagBpgH/AaoBpwGlAf8BpwGkAaIB/wGmAaMBoQH/AaMBoAGeAf8BogGfAZ0B/wGhAZ4BnAH/
 | 
			
		||||
        AZ4BmwGZAf8BhwGEAYIB/wGEAYEBgAH/AYIBQQFAAf8BgAE/AT4B/wGsAakBpwH/A0cBgAGOAYsBAAH/
 | 
			
		||||
        AZ4BmwGZAf8BhwGEAYIB/wGEAYEBgAH/AYIBQAE/Af8BgAE+AT0B/wGsAakBpwH/A0cBgAGOAYsBAAH/
 | 
			
		||||
        AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/Aa0BqwEAAf8C9gHsAf8C+QHxAf8C+QHxAf8B6wHqAdEB/wHV
 | 
			
		||||
        AdQBoQH/AvkB8QH/AvkB8QH/AvkB8QH/AecB5gHJAf8BtgG0AQAB/wHKAckBhgH/AdoB2QGrAf8B2gHZ
 | 
			
		||||
        AasB/wHaAdkBqwH/AcQBwwEAAf8B6gHpAc8B/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/
 | 
			
		||||
| 
						 | 
				
			
			@ -328,8 +328,8 @@
 | 
			
		|||
        Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DigH/AwAB/xAAAzMBUwP1Af8D9QH/
 | 
			
		||||
        A/QB/wP0Af8D9AH/A/QB/wP0Af8D9AH/A/QB/wP0Af8D9AH/A/QB/wP0Af8D9AH/A/QB/wP0Af8D9AH/
 | 
			
		||||
        A/QB/wP0Af8D9AH/A/QB/wP3Af8DNwFbEAABWAJiAe8BAAGeAcUB/wFXAlwB3wNZAb8ByQHHAcYB/wHH
 | 
			
		||||
        AcUBwwH/AcQBwgHBAf8BgQHGAdYB/wEQAbwB1gH/AQABogHDAf8BAAGuAc0B/wEAAbgB1QH/AQABugHX
 | 
			
		||||
        Af8BAAG6AdcB/wEAAboB1wH/AQABtQHVAf8BAAGhAccB/wEIAYsBrQH/AasBqAGmAf8BoQGeAZwB/wGp
 | 
			
		||||
        AcUBwwH/AcQBwgHBAf8BgQHGAdYB/wEPAbwB1gH/AQABogHDAf8BAAGuAc0B/wEAAbgB1QH/AQABugHX
 | 
			
		||||
        Af8BAAG6AdcB/wEAAboB1wH/AQABtQHVAf8BAAGhAccB/wEHAYsBrQH/AasBqAGmAf8BoQGeAZwB/wGp
 | 
			
		||||
        AaYBpAH/AaMBoAGeAf8BnAGZAZcB/wGbAZgBlgH/AZwBmQGXAf8BjwGMAYsB/wGJAYYBhAH/AYcBhAGC
 | 
			
		||||
        Af8BhAGBAYAB/wGRAY4BjQH/AbABrQGrAf8DIQEwAY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA
 | 
			
		||||
        Af8BjgGLAQAB/wGcAZoBAAH/Ad8B3gG2Af8B4wHiAb8B/wHjAeIBvwH/Ad8B3gG2Af8BvwG9AQAB/wHj
 | 
			
		||||
| 
						 | 
				
			
			@ -339,9 +339,9 @@
 | 
			
		|||
        Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A9UB/xwAA/MB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
 | 
			
		||||
        AwAB/wMAAf8DAAH/AwAB/wMAAf8DhQH/AwAB/xAAAzMBUwP0Af8D8wH/A/IB/wPyAf8D8gH/A/IB/wPy
 | 
			
		||||
        Af8D8gH/A/IB/wPyAf8D8gH/A/IB/wPyAf8D8gH/A/IB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPz
 | 
			
		||||
        Af8DNwFbEAADUQGgAQsBqQHOAf8BWgJdAdMDMgFQAcsByQHIAf8ByAHGAcQB/wHFAcMBwgH/AZgBwgHL
 | 
			
		||||
        Af8BKAHIAeAB/wEAAbsB2QH/AQABuwHYAf8BAAG7AdgB/wEAAbwB2QH/AQABwAHbAf8BCQHFAd8B/wEN
 | 
			
		||||
        AcEB3QH/AQABlQG2Af8BCQE2AYsB/wGeAZsBmQH/AZsBmAGWAf8BoAGdAZsB/wGWAZMBkQH/AZQBkQGP
 | 
			
		||||
        Af8DNwFbEAADUQGgAQoBqQHOAf8BWgJdAdMDMgFQAcsByQHIAf8ByAHGAcQB/wHFAcMBwgH/AZgBwgHL
 | 
			
		||||
        Af8BJwHIAeAB/wEAAbsB2QH/AQABuwHYAf8BAAG7AdgB/wEAAbwB2QH/AQABwAHbAf8BCAHFAd8B/wEM
 | 
			
		||||
        AcEB3QH/AQABlQG2Af8BCAE1AYsB/wGeAZsBmQH/AZsBmAGWAf8BoAGdAZsB/wGWAZMBkQH/AZQBkQGP
 | 
			
		||||
        Af8BkgGPAY0B/wGQAY0BiwH/AY0BigGJAf8BiwGIAYcB/wGJAYYBhAH/AYcBhAGCAf8BoQGeAZwB/wNc
 | 
			
		||||
        Ad8EAAGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGdAZoBAAH/
 | 
			
		||||
        AaUBowEAAf8BpQGjAQAB/wGlAaMBAAH/AZwBmQEAAf8BowGhAQAB/wGlAaMBAAH/AaUBowEAAf8BpQGj
 | 
			
		||||
| 
						 | 
				
			
			@ -350,9 +350,9 @@
 | 
			
		|||
        AYsBAAH/AY4BiwEAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A5gB/yQA
 | 
			
		||||
        A74B/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/EAADMwFTA/IB/wPx
 | 
			
		||||
        Af8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8AH/A+0B/wPq
 | 
			
		||||
        Af8D6AH/A+gB/wPnAf8D5gH/A+cB/wM4AVwQAAM6AWABJAG0AdcB/wEAAZYBugH/AxwBJwNcAd8BygHI
 | 
			
		||||
        AccB/wHGAcQBwwH/AbsBwgHDAf8BJwHKAeEB/wEAAb4B2gH/AQABwQHdAf8BFgHHAeAB/wEYAcgB4QH/
 | 
			
		||||
        ASEBwgHXAf8BGwGbAagB/wIAAQIB/wMAAf8BhAGCAYAB/wGlAaIBoAH/AaoBpwGlAf8BqgGnAaUB/wGg
 | 
			
		||||
        Af8D6AH/A+gB/wPnAf8D5gH/A+cB/wM4AVwQAAM6AWABIwG0AdcB/wEAAZYBugH/AxwBJwNcAd8BygHI
 | 
			
		||||
        AccB/wHGAcQBwwH/AbsBwgHDAf8BJgHKAeEB/wEAAb4B2gH/AQABwQHdAf8BFQHHAeAB/wEXAcgB4QH/
 | 
			
		||||
        ASABwgHXAf8BGgGbAagB/wIAAQEB/wMAAf8BhAGCAYAB/wGlAaIBoAH/AaoBpwGlAf8BqgGnAaUB/wGg
 | 
			
		||||
        AZ0BmwH/AZYBkwGRAf8BlAGRAY8B/wGSAY8BjQH/AZABjQGLAf8BjQGKAYkB/wGLAYgBhwH/AZEBjgGM
 | 
			
		||||
        Af8BswGwAa4B/wNHAYAEAAGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGL
 | 
			
		||||
        AQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/
 | 
			
		||||
| 
						 | 
				
			
			@ -361,8 +361,8 @@
 | 
			
		|||
        Af8BjgGLAQAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8D2gH/KwAB/wMA
 | 
			
		||||
        Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8QAAMzAVMD8QH/A/EB/wPwAf8D8AH/
 | 
			
		||||
        A/AB/wPwAf8D8AH/A/AB/wPwAf8D8AH/A/AB/wPwAf8D8AH/A+8B/wPsAf8D5AH/A9gB/wPQAf8DzwH/
 | 
			
		||||
        A9AB/wPMAf8DyAH/AzUBVxAAAwwBEAEuAbcB2gH/AQMBoQHFAf8DQwF3AzIBUAHLAckByAH/AckBxwHF
 | 
			
		||||
        Af8BxQHDAcIB/wE8AcYB1wH/AQIBvwHbAf8BEQGyAcwB/wGOAb4BxwH/AakBuQG8Af8BuQG3AbUB/wG3
 | 
			
		||||
        A9AB/wPMAf8DyAH/AzUBVxAAAwwBEAEtAbcB2gH/AQIBoQHFAf8DQwF3AzIBUAHLAckByAH/AckBxwHF
 | 
			
		||||
        Af8BxQHDAcIB/wE7AcYB1wH/AQEBvwHbAf8BEAGyAcwB/wGOAb4BxwH/AakBuQG8Af8BuQG3AbUB/wG3
 | 
			
		||||
        AbQBsgH/AaQBogGgAf8BqwGoAaYB/wGxAa8BrQH/Aa8BrAGqAf8BrQGqAagB/wGrAagBpgH/AaIBnwGd
 | 
			
		||||
        Af8BmAGVAZMB/wGWAZMBkQH/AZQBkQGPAf8BkgGPAY0B/wGQAY0BiwH/AY0BigGJAf8BrQGqAagB/wNc
 | 
			
		||||
        Ad8DDAEQBAABjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGL
 | 
			
		||||
| 
						 | 
				
			
			@ -372,7 +372,7 @@
 | 
			
		|||
        AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8vAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
 | 
			
		||||
        AwAB/wMAAf8DAAH/AwAB/xAAAzMBUwPwAf8D7wH/A+4B/wPuAf8D7gH/A+4B/wPuAf8D7gH/A+4B/wPu
 | 
			
		||||
        Af8D7gH/A+4B/wPuAf8D7QH/A+gB/wPWAf8DuAH/A6cB/wOiAf8DngH/A54B/wNhAeYDFAEbFAADVAGv
 | 
			
		||||
        AR4BsAHTAf8BWgJdAdMEAANUAa8BywHJAcgB/wHHAcUBxAH/AZMBwwHMAf8BCgHDAd4B/wEAAZoBugH/
 | 
			
		||||
        AR0BsAHTAf8BWgJdAdMEAANUAa8BywHJAcgB/wHHAcUBxAH/AZMBwwHMAf8BCQHDAd4B/wEAAZoBugH/
 | 
			
		||||
        Ab0BuwG6Af8BvAG6AbgB/wG6AbcBtgH/AbgBtgG0Af8BtgGzAbIB/wG0AbIBsAH/AbIBrwGtAf8BsAGt
 | 
			
		||||
        AasB/wGuAasBqQH/AasBqAGmAf8BngGbAZkB/wGbAZgBlgH/AZgBlQGTAf8BlgGTAZEB/wGUAZEBjwH/
 | 
			
		||||
        AZIBjwGNAf8BqAGlAaMB/wG1AbMBsQH/AyoBQAgAAY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA
 | 
			
		||||
| 
						 | 
				
			
			@ -383,7 +383,7 @@
 | 
			
		|||
        AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
 | 
			
		||||
        AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/EAADMwFTA+4B/wPtAf8D7QH/A+0B/wPtAf8D7QH/A+0B/wPt
 | 
			
		||||
        Af8D7QH/A+0B/wPtAf8D7QH/A+0B/wPsAf8D4wH/A8oB/wOdAf8DgwH/A4YB/wOYAf8DYgHvAycBOxgA
 | 
			
		||||
        AzoBYAE0AboB3QH/AQIBkwG6Af8DGgEkAwwBEANcAc8BjQG4AcQB/wEJAaUBwAH/AQABuQHWAf8BAAGe
 | 
			
		||||
        AzoBYAEzAboB3QH/AQEBkwG6Af8DGgEkAwwBEANcAc8BjQG4AcQB/wEIAaUBwAH/AQABuQHWAf8BAAGe
 | 
			
		||||
        Ab4B/wGYAbYBvQH/Ab0BuwG5Af8BvQG6AbkB/wG5AbcBtQH/AbcBtAGyAf8BtQGyAbEB/wGzAbABrgH/
 | 
			
		||||
        AbEBrwGtAf8BrQGqAagB/wGiAZ8BnQH/AZ8BnAGaAf8BnQGaAZgB/wGbAZgBlgH/AZgBlQGTAf8BlgGT
 | 
			
		||||
        AZEB/wGkAaEBnwH/AbgBtQGzAf8DRwGADAABjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGO
 | 
			
		||||
| 
						 | 
				
			
			@ -393,7 +393,7 @@
 | 
			
		|||
        Af8BjgGLAQAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8vAAH/AwAB/wMA
 | 
			
		||||
        Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xAAAzMBUwPtAf8D7QH/A+wB/wPsAf8D7AH/
 | 
			
		||||
        A+wB/wPsAf8D7AH/A+wB/wPsAf8D7AH/A+wB/wPsAf8D6wH/A98B/wPJAf8D7QH/A/AB/wPxAf8DZwHy
 | 
			
		||||
        AysBQhwAAwwBEAE/AcEB4gH/AREBngHHAf8BWAJaAcADUQGiAQABmAG7Af8BAAGjAcQB/wEAAbUB0wH/
 | 
			
		||||
        AysBQhwAAwwBEAE+AcEB4gH/ARABngHHAf8BWAJaAcADUQGiAQABmAG7Af8BAAGjAcQB/wEAAbUB0wH/
 | 
			
		||||
        AQABwgHeAf8BAAGxAdAB/wGhAbcBvQH/Ab4BvAG6Af8BvQG7AbkB/wG9AboBuQH/AboBtwG1Af8BtgGz
 | 
			
		||||
        AbEB/wGyAa8BrQH/Aa4BqwGpAf8BpgGjAaEB/wGkAaEBnwH/AaIBnwGdAf8BnwGcAZoB/wGdAZoBmAH/
 | 
			
		||||
        AZ0BmgGYAf8BrgGrAakB/wG5AbcBtQH/A1EBnxAAAY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA
 | 
			
		||||
| 
						 | 
				
			
			@ -403,8 +403,8 @@
 | 
			
		|||
        AYsBAAH/AY4BiwEAAf8BjgGLAQAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
 | 
			
		||||
        Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
 | 
			
		||||
        Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/EAADMwFTA+wB/wPsAf8D6wH/A+sB/wPrAf8D6wH/
 | 
			
		||||
        A+sB/wPrAf8D6wH/A+sB/wPrAf8D6wH/A+sB/wPpAf8D3AH/A8cB/wP+Bf8DZwHyAywBRCQAA1wBzwEs
 | 
			
		||||
        AbYB2wH/AQsBlwHCAf8BCQGeAcYB/wESAbEB1AH/AR4BvQHcAf8BJQHAAdsB/wFAAcIB1AH/AaMBwgHJ
 | 
			
		||||
        A+sB/wPrAf8D6wH/A+sB/wPrAf8D6wH/A+sB/wPpAf8D3AH/A8cB/wP+Bf8DZwHyAywBRCQAA1wBzwEr
 | 
			
		||||
        AbYB2wH/AQoBlwHCAf8BCAGeAcYB/wERAbEB1AH/AR0BvQHcAf8BJAHAAdsB/wE/AcIB1AH/AaMBwgHJ
 | 
			
		||||
        Af8BwgHAAb4B/wG/AbwBuwH/Ab0BuwG5Af8BuwG4AbcB/wG6AbcBtQH/AbQBsQGvAf8BrQGqAagB/wGr
 | 
			
		||||
        AagBpgH/AakBpgGkAf8BpgGjAaEB/wGkAaEBnwH/AaIBnwGdAf8BpwGkAaIB/wG4AbYBtAH/AbwBuQG4
 | 
			
		||||
        Af8DQAFwFAABjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGL
 | 
			
		||||
| 
						 | 
				
			
			@ -415,7 +415,7 @@
 | 
			
		|||
        AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
 | 
			
		||||
        AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/EAADMwFTA+oB/wPqAf8D6QH/A+kB/wPpAf8D6QH/A+kB/wPp
 | 
			
		||||
        Af8D6QH/A+kB/wPpAf8D6QH/A+kB/wPmAf8D2AH/A8YB/wP4Af8DZwHyAy0BRSgAA0ABcAGLAcoB6AH/
 | 
			
		||||
        ATsBvwHhAf8BNwG7Ad4B/wNUAa8DOgFgAwwBEANHAYADYgHvAcsByQHIAf8BxgHEAcMB/wHBAb8BvQH/
 | 
			
		||||
        AToBvwHhAf8BNgG7Ad4B/wNUAa8DOgFgAwwBEANHAYADYgHvAcsByQHIAf8BxgHEAcMB/wHBAb8BvQH/
 | 
			
		||||
        AbwBuQG4Af8BugG3AbYB/wG5AbYBtAH/Aa8BrAGqAf8BrQGqAagB/wGrAagBpgH/AawBqQGnAf8BsAGt
 | 
			
		||||
        AawB/wG7AbgBtgH/Ab8BvAG7Af8DXAHPAyEBMBgAAY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA
 | 
			
		||||
        Af8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGO
 | 
			
		||||
| 
						 | 
				
			
			@ -1150,6 +1150,9 @@
 | 
			
		|||
  <metadata name="dataGridViewTextBoxColumn2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
 | 
			
		||||
    <value>True</value>
 | 
			
		||||
  </metadata>
 | 
			
		||||
  <data name="label23.Text" xml:space="preserve">
 | 
			
		||||
    <value>The seb(s):// link to the config file can contain an additional query string, separated from the main URL by '?' or '??' (if the URL itself doesn't contain a query). SEB will then append this query string to the Start URL.</value>
 | 
			
		||||
  </data>
 | 
			
		||||
  <metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
 | 
			
		||||
    <value>17, 17</value>
 | 
			
		||||
  </metadata>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue