﻿<?xml version="1.0" encoding="utf-16"?>
<JiwaDocument xmlns:jiwa="http://www.jiwa.com.au/xml/schemas" Type="JiwaFinancials.Jiwa.JiwaApplication.Plugin.Plugin">
  <RecID>9f8ce931-c6a7-4b20-a507-8b6ae2167773</RecID>
  <Name>Text To Speech Sample</Name>
  <Description>Welcomes the user after logging on using Azure Cognitive Services Text to Speech API.&amp;#13;&amp;#10;&amp;#13;&amp;#10;Ensure you obtain an API Key from your Azure subscription - look for Cognitive Services in the Azure portal.  There is a free pricing tier - this allows up to 5 calls per second and 5K calls per month at no cost</Description>
  <IsEnabled>true</IsEnabled>
  <IsIsolatedToOwnAppDomain>false</IsIsolatedToOwnAppDomain>
  <ExecutionOrder>0</ExecutionOrder>
  <Author>Jiwa Financials</Author>
  <Version>7.2.1.0</Version>
  <Code>using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using JiwaFinancials.Jiwa;
using System.IO;
using System.Text;
using System.Threading;
using System.Net;
using System.Net.Http;
using System.Media;
using System.Threading.Tasks;
using System.Xml.Linq;
using System.Linq;

#region "ApplicationManagerPlugin"
public class ApplicationManagerPlugin : System.MarshalByRefObject, JiwaFinancials.Jiwa.JiwaApplication.IJiwaApplicationManagerPlugin
{

	private JiwaFinancials.Jiwa.JiwaApplication.Plugin.Plugin _Plugin;
	
    public override object InitializeLifetimeService()
    {
        // returning null here will prevent the lease manager
        // from deleting the Object.
        return null;
    }

    public void Setup(JiwaFinancials.Jiwa.JiwaApplication.Plugin.Plugin Plugin)
    {
		if ( Plugin.Manager.MDIParentForm != null)
		{
			_Plugin = Plugin;
			_Plugin.Manager.LoggedOn += delegate() { LoggedOn(Plugin); };
		}
    }
	
	private void LoggedOn(JiwaFinancials.Jiwa.JiwaApplication.Plugin.Plugin Plugin)
	{
		System.Threading.Tasks.Task task = Task.Run(() =&gt;
		{
	        string accessToken;

	        // Note: The way to get api key:
	        // Free: https://www.microsoft.com/cognitive-services/en-us/subscriptions?productId=/products/Bing.Speech.Preview
	        // Paid: https://portal.azure.com/#create/Microsoft.CognitiveServices/apitype/Bing.Speech/pricingtier/S0
			string APIKey = Plugin.Manager.Database.ReadSysData(Plugin.Name, "APIKey", "").ToString();
	        Authentication auth = new Authentication(APIKey);

	        try
	        {
	            accessToken = auth.GetAccessToken();            
	        }
	        catch (Exception ex)
	        {
				_Plugin.Manager.DisplayMessage(null, "Unable to authenticate with speech API", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error, System.Windows.Forms.MessageBoxDefaultButton.Button1);
	            return;
	        }

			try
			{
		        string requestUri = "https://speech.platform.bing.com/synthesize";				
				string welcomeText = String.Format("Welcome back, {0}!", _Plugin.Manager.Staff.FName);
				
				string locale = "en-AU";	
				
		        var cortana = new Synthesize(new Synthesize.InputOptions()
		        {
		            RequestUri = new Uri(requestUri),
		            // Text to be spoken.
		            Text = welcomeText,
		            VoiceType = Gender.Female,
		            // Refer to the documentation for complete list of supported locales.
		            Locale = locale,// You can also customize the output voice. Refer to the documentation to view the different
		            // voices that the TTS service can output.
		            VoiceName = "Microsoft Server Speech Text to Speech Voice (en-AU, HayleyRUS)", // Set accent - see https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/language-support for different accents.
		            // Service can return audio in different output format. 
		            OutputFormat = AudioOutputFormat.Riff16Khz16BitMonoPcm,
		            AuthorizationToken = "Bearer " + accessToken,
		        });

		        cortana.OnAudioAvailable += PlayAudio;
		        cortana.OnError += ErrorHandler;
		        cortana.Speak(CancellationToken.None).Wait();
			}
			catch (Exception ex)			
			{
				// Fail silently - we don't want to prevent login just because the gimmickly text to speech failed.
			}
		});
						
	}
	
	void PlayAudio(object sender, GenericEventArgs&lt;Stream&gt; args)
    {
        Console.WriteLine(args.EventData);

        // For SoundPlayer to be able to play the wav file, it has to be encoded in PCM.
        // Use output audio format AudioOutputFormat.Riff16Khz16BitMonoPcm to do that.
        SoundPlayer player = new SoundPlayer(args.EventData);
        player.PlaySync();
        args.EventData.Dispose();
    }
	
	void ErrorHandler(object sender, GenericEventArgs&lt;Exception&gt; e)
    {
        //Console.WriteLine("Unable to complete the TTS request: [{0}]", e.ToString());
    }	
}
#endregion

#region "Microsoft Cognitive Services"
//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license.
//
// Microsoft Cognitive Services (formerly Project Oxford): https://www.microsoft.com/cognitive-services
//
// Microsoft Cognitive Services (formerly Project Oxford) GitHub:
// https://github.com/Microsoft/Cognitive-Speech-TTS
//
// Copyright (c) Microsoft Corporation
// All rights reserved.
//
// MIT License:
// Permission 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, merge, 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:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// 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 EVENT 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.
//




/// &lt;summary&gt;
/// This class demonstrates how to get a valid O-auth token
/// &lt;/summary&gt;
public class Authentication
{
    public static readonly string AccessUri = "https://api.cognitive.microsoft.com/sts/v1.0/issueToken";
    private string apiKey;
    private string accessToken;
    private Timer accessTokenRenewer;

    //Access token expires every 10 minutes. Renew it every 9 minutes only.
    private const int RefreshTokenDuration = 9;

    public Authentication(string apiKey)
    {
        this.apiKey = apiKey;

        this.accessToken = HttpPost(AccessUri, this.apiKey);

        // renew the token every specfied minutes
        accessTokenRenewer = new Timer(new TimerCallback(OnTokenExpiredCallback),
                                        this,
                                        TimeSpan.FromMinutes(RefreshTokenDuration),
                                        TimeSpan.FromMilliseconds(-1));
    }

    public string GetAccessToken()
    {
        return this.accessToken;
    }

    private void RenewAccessToken()
    {
        string newAccessToken = HttpPost(AccessUri, this.apiKey);
        //swap the new token with old one
        //Note: the swap is thread unsafe
        this.accessToken = newAccessToken;
        Console.WriteLine(string.Format("Renewed token for user: {0} is: {1}",
                            this.apiKey,
                            this.accessToken));
    }

    private void OnTokenExpiredCallback(object stateInfo)
    {
        try
        {
            RenewAccessToken();
        }
        catch (Exception ex)
        {
            Console.WriteLine(string.Format("Failed renewing access token. Details: {0}", ex.Message));
        }
        finally
        {
            try
            {
                accessTokenRenewer.Change(TimeSpan.FromMinutes(RefreshTokenDuration), TimeSpan.FromMilliseconds(-1));
            }
            catch (Exception ex)
            {
                Console.WriteLine(string.Format("Failed to reschedule the timer to renew access token. Details: {0}", ex.Message));
            }
        }
    }

    private string HttpPost(string accessUri, string apiKey)
    {
        // Prepare OAuth request 
        WebRequest webRequest = WebRequest.Create(accessUri);
        webRequest.Method = "POST";
        webRequest.ContentLength = 0;
        webRequest.Headers["Ocp-Apim-Subscription-Key"] = apiKey;

        using (WebResponse webResponse = webRequest.GetResponse())
        {
            using (Stream stream = webResponse.GetResponseStream())
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    byte[] waveBytes = null;
                    int count = 0;
                    do
                    {
                        byte[] buf = new byte[1024];
                        count = stream.Read(buf, 0, 1024);
                        ms.Write(buf, 0, count);
                    } while (stream.CanRead &amp;&amp; count &gt; 0);

                    waveBytes = ms.ToArray();

                    return Encoding.UTF8.GetString(waveBytes);
                }
            }
        }
    }
}

/// &lt;summary&gt;
/// Generic event args
/// &lt;/summary&gt;
/// &lt;typeparam name="T"&gt;Any type T&lt;/typeparam&gt;
public class GenericEventArgs&lt;T&gt; : EventArgs
{
    /// &lt;summary&gt;
    /// Initializes a new instance of the &lt;see cref="GenericEventArgs{T}" /&gt; class.
    /// &lt;/summary&gt;
    /// &lt;param name="eventData"&gt;The event data.&lt;/param&gt;
    public GenericEventArgs(T eventData)
    {
        this.EventData = eventData;
    }

    /// &lt;summary&gt;
    /// Gets the event data.
    /// &lt;/summary&gt;
    public T EventData { get; private set; }
}

/// &lt;summary&gt;
/// Gender of the voice.
/// &lt;/summary&gt;
public enum Gender
{
    Female,
    Male
}

/// &lt;summary&gt;
/// Voice output formats.
/// &lt;/summary&gt;
public enum AudioOutputFormat
{
    /// &lt;summary&gt;
    /// raw-8khz-8bit-mono-mulaw request output audio format type.
    /// &lt;/summary&gt;
    Raw8Khz8BitMonoMULaw,
    /// &lt;summary&gt;
    /// raw-16khz-16bit-mono-pcm request output audio format type.
    /// &lt;/summary&gt;
    Raw16Khz16BitMonoPcm,
    /// &lt;summary&gt;
    /// riff-8khz-8bit-mono-mulaw request output audio format type.
    /// &lt;/summary&gt;
    Riff8Khz8BitMonoMULaw,
    /// &lt;summary&gt;
    /// riff-16khz-16bit-mono-pcm request output audio format type.
    /// &lt;/summary&gt;
    Riff16Khz16BitMonoPcm,
}

/// &lt;summary&gt;
/// Sample synthesize request
/// &lt;/summary&gt;
public class Synthesize
{
    /// &lt;summary&gt;
    /// Generates SSML.
    /// &lt;/summary&gt;
    /// &lt;param name="locale"&gt;The locale.&lt;/param&gt;
    /// &lt;param name="gender"&gt;The gender.&lt;/param&gt;
    /// &lt;param name="name"&gt;The voice name.&lt;/param&gt;
    /// &lt;param name="text"&gt;The text input.&lt;/param&gt;
    private string GenerateSsml(string locale, string gender, string name, string text)
    {
        var ssmlDoc = new XDocument(
                            new XElement("speak",
                                new XAttribute("version", "1.0"),
                                new XAttribute(XNamespace.Xml + "lang", "en-US"),
                                new XElement("voice",
                                    new XAttribute(XNamespace.Xml + "lang", locale),
                                    new XAttribute(XNamespace.Xml + "gender", gender),
                                    new XAttribute("name", name),
                                    text)));
        return ssmlDoc.ToString();
    }

    /// &lt;summary&gt;
    /// The input options
    /// &lt;/summary&gt;
    private InputOptions inputOptions;

    /// &lt;summary&gt;
    /// Initializes a new instance of the &lt;see cref="Synthesize"/&gt; class.
    /// &lt;/summary&gt;
    /// &lt;param name="input"&gt;The input.&lt;/param&gt;
    public Synthesize(InputOptions input)
    {
        this.inputOptions = input;
    }

    /// &lt;summary&gt;
    /// Called when a TTS request has been completed and audio is available.
    /// &lt;/summary&gt;
    public event EventHandler&lt;GenericEventArgs&lt;Stream&gt;&gt; OnAudioAvailable;

    /// &lt;summary&gt;
    /// Called when an error has occured. e.g this could be an HTTP error.
    /// &lt;/summary&gt;
    public event EventHandler&lt;GenericEventArgs&lt;Exception&gt;&gt; OnError;

    /// &lt;summary&gt;
    /// Sends the specified text to be spoken to the TTS service and saves the response audio to a file.
    /// &lt;/summary&gt;
    /// &lt;param name="cancellationToken"&gt;The cancellation token.&lt;/param&gt;
    /// &lt;returns&gt;A Task&lt;/returns&gt;
    public Task Speak(CancellationToken cancellationToken)
    {
        var cookieContainer = new CookieContainer();
        var handler = new HttpClientHandler() { CookieContainer = cookieContainer };
        var client = new HttpClient(handler);

        foreach (var header in this.inputOptions.Headers)
        {
            client.DefaultRequestHeaders.TryAddWithoutValidation(header.Key, header.Value);
        }

        var genderValue = "";
        switch (this.inputOptions.VoiceType)
        {
            case Gender.Male:
                genderValue = "Male";
                break;
            case Gender.Female:
            default:
                genderValue = "Female";
                break;

        }

        var request = new HttpRequestMessage(HttpMethod.Post, this.inputOptions.RequestUri)
        {
            Content = new StringContent(GenerateSsml(this.inputOptions.Locale, genderValue, this.inputOptions.VoiceName, this.inputOptions.Text))
        };

        var httpTask = client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead, cancellationToken);
        Console.WriteLine("Response status code: [{0}]", httpTask.Result.StatusCode);

        var saveTask = httpTask.ContinueWith(
            async (responseMessage, token) =&gt;
            {
                try
                {
                    if (responseMessage.IsCompleted &amp;&amp; responseMessage.Result != null &amp;&amp; responseMessage.Result.IsSuccessStatusCode)
                    {

                        var httpStream = await responseMessage.Result.Content.ReadAsStreamAsync().ConfigureAwait(false);
                        this.AudioAvailable(new GenericEventArgs&lt;Stream&gt;(httpStream));
                    }
                    else
                    {
                        this.Error(new GenericEventArgs&lt;Exception&gt;(new Exception(String.Format("Service returned {0}", responseMessage.Result.StatusCode))));
                    }
                }
                catch (Exception e)
                {
                    this.Error(new GenericEventArgs&lt;Exception&gt;(e.GetBaseException()));
                }
                finally
                {
                    responseMessage.Dispose();
                    request.Dispose();
                    client.Dispose();
                    handler.Dispose();
                }
            },
            TaskContinuationOptions.AttachedToParent,
            cancellationToken);

        return saveTask;
    }

    /// &lt;summary&gt;
    /// Called when a TTS requst has been successfully completed and audio is available.
    /// &lt;/summary&gt;
    private void AudioAvailable(GenericEventArgs&lt;Stream&gt; e)
    {
        EventHandler&lt;GenericEventArgs&lt;Stream&gt;&gt; handler = this.OnAudioAvailable;
        if (handler != null)
        {
            handler(this, e);
        }
    }

    /// &lt;summary&gt;
    /// Error handler function
    /// &lt;/summary&gt;
    /// &lt;param name="e"&gt;The exception&lt;/param&gt;
    private void Error(GenericEventArgs&lt;Exception&gt; e)
    {
        EventHandler&lt;GenericEventArgs&lt;Exception&gt;&gt; handler = this.OnError;
        if (handler != null)
        {
            handler(this, e);
        }
    }

    /// &lt;summary&gt;
    /// Inputs Options for the TTS Service.
    /// &lt;/summary&gt;
    public class InputOptions
    {
        /// &lt;summary&gt;
        /// Initializes a new instance of the &lt;see cref="Input"/&gt; class.
        /// &lt;/summary&gt;
        public InputOptions()
        {
            this.Locale = "en-us";
            this.VoiceName = "Microsoft Server Speech Text to Speech Voice (en-US, ZiraRUS)";
            // Default to Riff16Khz16BitMonoPcm output format.
            this.OutputFormat = AudioOutputFormat.Riff16Khz16BitMonoPcm;
        }

        /// &lt;summary&gt;
        /// Gets or sets the request URI.
        /// &lt;/summary&gt;
        public Uri RequestUri { get; set; }

        /// &lt;summary&gt;
        /// Gets or sets the audio output format.
        /// &lt;/summary&gt;
        public AudioOutputFormat OutputFormat { get; set; }

        /// &lt;summary&gt;
        /// Gets or sets the headers.
        /// &lt;/summary&gt;
        public IEnumerable&lt;KeyValuePair&lt;string, string&gt;&gt; Headers
        {
            get
            {
                List&lt;KeyValuePair&lt;string, string&gt;&gt; toReturn = new List&lt;KeyValuePair&lt;string, string&gt;&gt;();
                toReturn.Add(new KeyValuePair&lt;string, string&gt;("Content-Type", "application/ssml+xml"));

                string outputFormat;

                switch (this.OutputFormat)
                {
                    case AudioOutputFormat.Raw16Khz16BitMonoPcm:
                        outputFormat = "raw-16khz-16bit-mono-pcm";
                        break;
                    case AudioOutputFormat.Raw8Khz8BitMonoMULaw:
                        outputFormat = "raw-8khz-8bit-mono-mulaw";
                        break;
                    case AudioOutputFormat.Riff16Khz16BitMonoPcm:
                        outputFormat = "riff-16khz-16bit-mono-pcm";
                        break;
                    case AudioOutputFormat.Riff8Khz8BitMonoMULaw:
                        outputFormat = "riff-8khz-8bit-mono-mulaw";
                        break;
                    default:
                        outputFormat = "riff-16khz-16bit-mono-pcm";
                        break;
                }

                toReturn.Add(new KeyValuePair&lt;string, string&gt;("X-Microsoft-OutputFormat", outputFormat));
                // authorization Header
                toReturn.Add(new KeyValuePair&lt;string, string&gt;("Authorization", this.AuthorizationToken));
                // Refer to the doc
                toReturn.Add(new KeyValuePair&lt;string, string&gt;("X-Search-AppId", "07D3234E49CE426DAA29772419F436CA"));
                // Refer to the doc
                toReturn.Add(new KeyValuePair&lt;string, string&gt;("X-Search-ClientID", "1ECFAE91408841A480F00935DC390960"));
                // The software originating the request
                toReturn.Add(new KeyValuePair&lt;string, string&gt;("User-Agent", "TTSClient"));

                return toReturn;
            }
            set
            {
                Headers = value;
            }
        }

        /// &lt;summary&gt;
        /// Gets or sets the locale.
        /// &lt;/summary&gt;
        public String Locale { get; set; }

        /// &lt;summary&gt;
        /// Gets or sets the type of the voice; male/female.
        /// &lt;/summary&gt;
        public Gender VoiceType { get; set; }

        /// &lt;summary&gt;
        /// Gets or sets the name of the voice.
        /// &lt;/summary&gt;
        public string VoiceName { get; set; }

        /// &lt;summary&gt;
        /// Authorization Token.
        /// &lt;/summary&gt;
        public string AuthorizationToken { get; set; }

        /// &lt;summary&gt;
        /// Gets or sets the text.
        /// &lt;/summary&gt;
        public string Text { get; set; }
    }
}
#endregion</Code>
  <ExceptionPolicy>Report</ExceptionPolicy>
  <Language>CSharp</Language>
  <ReferenceCollection>
    <Reference>
      <RecID>fd0a7310-089f-4717-a2d1-9b8897ba73b2</RecID>
      <AssemblyFullName>JiwaApplication, Version=7.2.1.0, Culture=neutral, PublicKeyToken=e30ce81e37f29c8c</AssemblyFullName>
      <AssemblyName>JiwaApplication.dll</AssemblyName>
      <AssemblyLocation>C:\VSTS\Jiwa 7\07.02.00\Built Files\JiwaApplication.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>06018cf3-dfea-4d49-9658-313940e20a29</RecID>
      <AssemblyFullName>mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyFullName>
      <AssemblyName>mscorlib.dll</AssemblyName>
      <AssemblyLocation>C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>2aaa4103-ef69-4893-9248-176bda9c4c89</RecID>
      <AssemblyFullName>System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyFullName>
      <AssemblyName>System.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>843fc0a1-14b9-4f9f-a2f6-48b8c421c2ee</RecID>
      <AssemblyFullName>Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</AssemblyFullName>
      <AssemblyName>Microsoft.VisualBasic.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Microsoft.VisualBasic\v4.0_10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualBasic.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>c6b7e4f0-8540-42c0-81ec-ca4b97451dc4</RecID>
      <AssemblyFullName>System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</AssemblyFullName>
      <AssemblyName>System.Drawing.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>b7683449-d87d-4749-bfdd-18eb9f7bb3c9</RecID>
      <AssemblyFullName>JiwaODBC, Version=7.2.1.0, Culture=neutral, PublicKeyToken=e30ce81e37f29c8c</AssemblyFullName>
      <AssemblyName>JiwaODBC.dll</AssemblyName>
      <AssemblyLocation>C:\VSTS\Jiwa 7\07.02.00\Built Files\JiwaODBC.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>9e06e1e0-43ff-4c4f-9be8-6f151da98d85</RecID>
      <AssemblyFullName>System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyFullName>
      <AssemblyName>System.Data.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\Microsoft.Net\assembly\GAC_32\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>5806089c-c353-47c0-9324-5c7bec8d89cf</RecID>
      <AssemblyFullName>System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyFullName>
      <AssemblyName>System.Xml.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>2298f680-c8e0-4dac-a62a-2670d64f4b16</RecID>
      <AssemblyFullName>System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyFullName>
      <AssemblyName>System.Runtime.Serialization.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.Serialization\v4.0_4.0.0.0__b77a5c561934e089\System.Runtime.Serialization.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>c6b2ca04-fa73-4906-9bee-18cf5c80cec0</RecID>
      <AssemblyFullName>Microsoft.SqlServer.Smo, Version=14.100.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91</AssemblyFullName>
      <AssemblyName>Microsoft.SqlServer.Smo.dll</AssemblyName>
      <AssemblyLocation>C:\VSTS\Jiwa 7\07.02.00\Built Files\Microsoft.SqlServer.Smo.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>b6fc0e40-43eb-490a-914b-d7993d8541fa</RecID>
      <AssemblyFullName>Microsoft.SqlServer.ConnectionInfo, Version=14.100.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91</AssemblyFullName>
      <AssemblyName>Microsoft.SqlServer.ConnectionInfo.dll</AssemblyName>
      <AssemblyLocation>C:\VSTS\Jiwa 7\07.02.00\Built Files\Microsoft.SqlServer.ConnectionInfo.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>1ed29314-93b7-4e5c-8661-0f03f9849f7a</RecID>
      <AssemblyFullName>System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyFullName>
      <AssemblyName>System.Windows.Forms.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>b2287071-4780-479f-b82a-0b53f643cb96</RecID>
      <AssemblyFullName>Infragistics4.Win.v13.1, Version=13.1.20131.2060, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb</AssemblyFullName>
      <AssemblyName>Infragistics4.Win.v13.1.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Infragistics4.Win.v13.1\v4.0_13.1.20131.2060__7dd5c3163f2cd0cb\Infragistics4.Win.v13.1.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>4dddd33c-a2d7-4218-88fc-acf325d37c02</RecID>
      <AssemblyFullName>Infragistics4.Win.Misc.v13.1, Version=13.1.20131.2060, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb</AssemblyFullName>
      <AssemblyName>Infragistics4.Win.Misc.v13.1.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Infragistics4.Win.Misc.v13.1\v4.0_13.1.20131.2060__7dd5c3163f2cd0cb\Infragistics4.Win.Misc.v13.1.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>7b89fa76-5d8c-4767-869f-dad4a5c25ad6</RecID>
      <AssemblyFullName>Infragistics4.Win.UltraWinEditors.v13.1, Version=13.1.20131.2060, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb</AssemblyFullName>
      <AssemblyName>Infragistics4.Win.UltraWinEditors.v13.1.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Infragistics4.Win.UltraWinEditors.v13.1\v4.0_13.1.20131.2060__7dd5c3163f2cd0cb\Infragistics4.Win.UltraWinEditors.v13.1.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>88d4915c-b196-482c-8a05-adfe87964f6e</RecID>
      <AssemblyFullName>Infragistics4.Win.UltraWinExplorerBar.v13.1, Version=13.1.20131.2060, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb</AssemblyFullName>
      <AssemblyName>Infragistics4.Win.UltraWinExplorerBar.v13.1.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Infragistics4.Win.UltraWinExplorerBar.v13.1\v4.0_13.1.20131.2060__7dd5c3163f2cd0cb\Infragistics4.Win.UltraWinExplorerBar.v13.1.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>56bafb54-d342-4653-8239-b209dedcaf58</RecID>
      <AssemblyFullName>Infragistics4.Win.UltraWinTree.v13.1, Version=13.1.20131.2060, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb</AssemblyFullName>
      <AssemblyName>Infragistics4.Win.UltraWinTree.v13.1.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Infragistics4.Win.UltraWinTree.v13.1\v4.0_13.1.20131.2060__7dd5c3163f2cd0cb\Infragistics4.Win.UltraWinTree.v13.1.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>2b701183-0779-408a-9872-123c46851e9e</RecID>
      <AssemblyFullName>FarPoint.Win.Spread, Version=8.35.20151.0, Culture=neutral, PublicKeyToken=327c3516b1b18457</AssemblyFullName>
      <AssemblyName>FarPoint.Win.Spread.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\assembly\GAC_MSIL\FarPoint.Win.Spread\8.35.20151.0__327c3516b1b18457\FarPoint.Win.Spread.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>f8fb0c3a-1861-42a2-be1d-e25ab60b9d3f</RecID>
      <AssemblyFullName>Infragistics4.Win.UltraWinTabControl.v13.1, Version=13.1.20131.2060, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb</AssemblyFullName>
      <AssemblyName>Infragistics4.Win.UltraWinTabControl.v13.1.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Infragistics4.Win.UltraWinTabControl.v13.1\v4.0_13.1.20131.2060__7dd5c3163f2cd0cb\Infragistics4.Win.UltraWinTabControl.v13.1.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>91084cd1-7aaf-4ce4-8fa6-7c821eac9123</RecID>
      <AssemblyFullName>Infragistics4.Shared.v13.1, Version=13.1.20131.2060, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb</AssemblyFullName>
      <AssemblyName>Infragistics4.Shared.v13.1.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Infragistics4.Shared.v13.1\v4.0_13.1.20131.2060__7dd5c3163f2cd0cb\Infragistics4.Shared.v13.1.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>ae79455d-9ff9-4e91-aa01-a2edd6c35750</RecID>
      <AssemblyFullName>Infragistics4.Win.UltraWinToolbars.v13.1, Version=13.1.20131.2060, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb</AssemblyFullName>
      <AssemblyName>Infragistics4.Win.UltraWinToolbars.v13.1.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Infragistics4.Win.UltraWinToolbars.v13.1\v4.0_13.1.20131.2060__7dd5c3163f2cd0cb\Infragistics4.Win.UltraWinToolbars.v13.1.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>f4f88e4a-2d5e-461b-b6e0-76cd92e74ab1</RecID>
      <AssemblyFullName>Infragistics4.Win.UltraWinStatusBar.v13.1, Version=13.1.20131.2060, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb</AssemblyFullName>
      <AssemblyName>Infragistics4.Win.UltraWinStatusBar.v13.1.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Infragistics4.Win.UltraWinStatusBar.v13.1\v4.0_13.1.20131.2060__7dd5c3163f2cd0cb\Infragistics4.Win.UltraWinStatusBar.v13.1.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>0f823bdc-82cb-400a-a373-e5d7a53b9a42</RecID>
      <AssemblyFullName>Infragistics4.Win.UltraWinSchedule.v13.1, Version=13.1.20131.2060, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb</AssemblyFullName>
      <AssemblyName>Infragistics4.Win.UltraWinSchedule.v13.1.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Infragistics4.Win.UltraWinSchedule.v13.1\v4.0_13.1.20131.2060__7dd5c3163f2cd0cb\Infragistics4.Win.UltraWinSchedule.v13.1.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>625fca99-d124-4c28-ab4f-5b15519bb76a</RecID>
      <AssemblyFullName>Infragistics4.Win.UltraWinListView.v13.1, Version=13.1.20131.2060, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb</AssemblyFullName>
      <AssemblyName>Infragistics4.Win.UltraWinListView.v13.1.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Infragistics4.Win.UltraWinListView.v13.1\v4.0_13.1.20131.2060__7dd5c3163f2cd0cb\Infragistics4.Win.UltraWinListView.v13.1.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>77f76a0b-ff31-48e4-92dc-a977f5189c5f</RecID>
      <AssemblyFullName>ServiceStack, Version=5.0.0.0, Culture=neutral, PublicKeyToken=02c12cbda47e6587</AssemblyFullName>
      <AssemblyName>ServiceStack.dll</AssemblyName>
      <AssemblyLocation>C:\VSTS\Jiwa 7\07.02.00\Built Files\ServiceStack.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>c384a6ab-4fea-4fca-9311-4f433d9bf8fa</RecID>
      <AssemblyFullName>ActiproSoftware.SyntaxEditor.WinForms, Version=16.1.330.0, Culture=neutral, PublicKeyToken=c27e062d3c1a4763</AssemblyFullName>
      <AssemblyName>ActiproSoftware.SyntaxEditor.WinForms.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\assembly\GAC_MSIL\ActiproSoftware.SyntaxEditor.WinForms\16.1.330.0__c27e062d3c1a4763\ActiproSoftware.SyntaxEditor.WinForms.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>4243af55-2d00-4285-a3e4-baaee6b4683d</RecID>
      <AssemblyFullName>ZetaHtmlEditControl, Version=1.1.0.3, Culture=neutral, PublicKeyToken=2e2e5ba5da72b6c0</AssemblyFullName>
      <AssemblyName>ZetaHtmlEditControl.dll</AssemblyName>
      <AssemblyLocation>C:\VSTS\Jiwa 7\07.02.00\Built Files\ZetaHtmlEditControl.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>eeea2e2e-b953-4291-ba8a-c91520173d31</RecID>
      <AssemblyFullName>ActiproSoftware.SyntaxEditor.Addons.DotNet.WinForms, Version=16.1.330.0, Culture=neutral, PublicKeyToken=c27e062d3c1a4763</AssemblyFullName>
      <AssemblyName>ActiproSoftware.SyntaxEditor.Addons.DotNet.WinForms.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\assembly\GAC_MSIL\ActiproSoftware.SyntaxEditor.Addons.DotNet.WinForms\16.1.330.0__c27e062d3c1a4763\ActiproSoftware.SyntaxEditor.Addons.DotNet.WinForms.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>4da5f6da-e236-4e10-b00b-e168aff03d80</RecID>
      <AssemblyFullName>System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</AssemblyFullName>
      <AssemblyName>System.Security.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Security\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Security.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>aa187a53-bacd-4987-a27b-4615b0030f17</RecID>
      <AssemblyFullName>JiwaEncryption, Version=7.2.1.0, Culture=neutral, PublicKeyToken=e30ce81e37f29c8c</AssemblyFullName>
      <AssemblyName>JiwaEncryption.dll</AssemblyName>
      <AssemblyLocation>C:\VSTS\Jiwa 7\07.02.00\Built Files\JiwaEncryption.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>ff1d28cc-047b-4e1c-8ac6-dec09d86191a</RecID>
      <AssemblyFullName>Microsoft.SqlServer.Dac, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</AssemblyFullName>
      <AssemblyName>Microsoft.SqlServer.Dac.dll</AssemblyName>
      <AssemblyLocation>C:\VSTS\Jiwa 7\07.02.00\Built Files\Microsoft.SqlServer.Dac.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>9dbdbc2d-8c3b-47df-9330-f6163c992179</RecID>
      <AssemblyFullName>CrystalDecisions.CrystalReports.Engine, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304</AssemblyFullName>
      <AssemblyName>CrystalDecisions.CrystalReports.Engine.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\assembly\GAC_MSIL\CrystalDecisions.CrystalReports.Engine\13.0.3500.0__692fbea5521e1304\CrystalDecisions.CrystalReports.Engine.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>5e237b57-d9c6-4789-8e2f-f5dacf16af0c</RecID>
      <AssemblyFullName>CrystalDecisions.Shared, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304</AssemblyFullName>
      <AssemblyName>CrystalDecisions.Shared.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\assembly\GAC_MSIL\CrystalDecisions.Shared\13.0.3500.0__692fbea5521e1304\CrystalDecisions.Shared.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>ec941710-4d40-4f95-a234-43f171827fdd</RecID>
      <AssemblyFullName>CrystalDecisions.ReportAppServer.ClientDoc, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304</AssemblyFullName>
      <AssemblyName>CrystalDecisions.ReportAppServer.ClientDoc.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\assembly\GAC_MSIL\CrystalDecisions.ReportAppServer.ClientDoc\13.0.3500.0__692fbea5521e1304\CrystalDecisions.ReportAppServer.ClientDoc.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>246f0a56-229d-4e32-9381-06fea3048f06</RecID>
      <AssemblyFullName>CrystalDecisions.ReportAppServer.Controllers, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304</AssemblyFullName>
      <AssemblyName>CrystalDecisions.ReportAppServer.Controllers.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\assembly\GAC_MSIL\CrystalDecisions.ReportAppServer.Controllers\13.0.3500.0__692fbea5521e1304\CrystalDecisions.ReportAppServer.Controllers.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>6cdf7e2a-3d33-40d6-94a8-23fc5aa4a14d</RecID>
      <AssemblyFullName>System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyFullName>
      <AssemblyName>System.Core.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>e85e7742-73b5-4cc7-9f87-c19c2873c245</RecID>
      <AssemblyFullName>Infragistics4.Win.AppStylistSupport.v13.1, Version=13.1.20131.2060, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb</AssemblyFullName>
      <AssemblyName>Infragistics4.Win.AppStylistSupport.v13.1.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Infragistics4.Win.AppStylistSupport.v13.1\v4.0_13.1.20131.2060__7dd5c3163f2cd0cb\Infragistics4.Win.AppStylistSupport.v13.1.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>440f7828-ab55-4230-ba13-b439ff49d684</RecID>
      <AssemblyFullName>JiwaLib, Version=7.2.1.0, Culture=neutral, PublicKeyToken=e30ce81e37f29c8c</AssemblyFullName>
      <AssemblyName>JiwaLib.dll</AssemblyName>
      <AssemblyLocation>C:\VSTS\Jiwa 7\07.02.00\Built Files\JiwaLib.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>496a3326-75d1-4f54-a131-4a0915356751</RecID>
      <AssemblyFullName>Microsoft.ApplicationInsights, Version=2.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35</AssemblyFullName>
      <AssemblyName>Microsoft.ApplicationInsights.dll</AssemblyName>
      <AssemblyLocation>C:\VSTS\Jiwa 7\07.02.00\Built Files\Microsoft.ApplicationInsights.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>c8ea53f8-4f82-4148-af9d-1a6d3c640ab0</RecID>
      <AssemblyFullName>CrystalDecisions.Windows.Forms, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304</AssemblyFullName>
      <AssemblyName>CrystalDecisions.Windows.Forms.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\assembly\GAC_MSIL\CrystalDecisions.Windows.Forms\13.0.3500.0__692fbea5521e1304\CrystalDecisions.Windows.Forms.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>d43c8000-e87b-4efb-b8c5-585f1abd17a7</RecID>
      <AssemblyFullName>Infragistics4.Win.UltraWinGrid.v13.1, Version=13.1.20131.2060, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb</AssemblyFullName>
      <AssemblyName>Infragistics4.Win.UltraWinGrid.v13.1.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Infragistics4.Win.UltraWinGrid.v13.1\v4.0_13.1.20131.2060__7dd5c3163f2cd0cb\Infragistics4.Win.UltraWinGrid.v13.1.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>532c0e7c-8ac9-40a1-a581-284e402b35f7</RecID>
      <AssemblyFullName>ActiproSoftware.Shared.WinForms, Version=16.1.330.0, Culture=neutral, PublicKeyToken=c27e062d3c1a4763</AssemblyFullName>
      <AssemblyName>ActiproSoftware.Shared.WinForms.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\assembly\GAC_MSIL\ActiproSoftware.Shared.WinForms\16.1.330.0__c27e062d3c1a4763\ActiproSoftware.Shared.WinForms.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>88e4b170-d9bf-42a5-be70-7e1c0cc590a4</RecID>
      <AssemblyFullName>FarPoint.Win, Version=8.35.20151.0, Culture=neutral, PublicKeyToken=327c3516b1b18457</AssemblyFullName>
      <AssemblyName>FarPoint.Win.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\assembly\GAC_MSIL\FarPoint.Win\8.35.20151.0__327c3516b1b18457\FarPoint.Win.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>189f2d23-045c-4555-8a3d-6bbc7b42f8d0</RecID>
      <AssemblyFullName>CrystalDecisions.ReportAppServer.ReportDefModel, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304</AssemblyFullName>
      <AssemblyName>CrystalDecisions.ReportAppServer.ReportDefModel.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\assembly\GAC_MSIL\CrystalDecisions.ReportAppServer.ReportDefModel\13.0.3500.0__692fbea5521e1304\CrystalDecisions.ReportAppServer.ReportDefModel.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>f9e796f4-35fe-4916-bcf2-a4e04d466dfe</RecID>
      <AssemblyFullName>ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=02c12cbda47e6587</AssemblyFullName>
      <AssemblyName>ServiceStack.Interfaces.dll</AssemblyName>
      <AssemblyLocation>C:\VSTS\Jiwa 7\07.02.00\Built Files\ServiceStack.Interfaces.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>6eb2dd07-2aed-4ec8-a3e2-8b12a3452c8c</RecID>
      <AssemblyFullName>ServiceStack.Server, Version=5.0.0.0, Culture=neutral, PublicKeyToken=02c12cbda47e6587</AssemblyFullName>
      <AssemblyName>ServiceStack.Server.dll</AssemblyName>
      <AssemblyLocation>C:\VSTS\Jiwa 7\07.02.00\Built Files\ServiceStack.Server.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>b56c522e-635a-455d-924f-2ee4769d2948</RecID>
      <AssemblyFullName>ServiceStack.OrmLite, Version=5.0.0.0, Culture=neutral, PublicKeyToken=02c12cbda47e6587</AssemblyFullName>
      <AssemblyName>ServiceStack.OrmLite.dll</AssemblyName>
      <AssemblyLocation>C:\VSTS\Jiwa 7\07.02.00\Built Files\ServiceStack.OrmLite.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>10dc34fa-139f-4682-964f-4e37c0dbf260</RecID>
      <AssemblyFullName>JiwaServiceModel, Version=7.2.1.0, Culture=neutral, PublicKeyToken=e30ce81e37f29c8c</AssemblyFullName>
      <AssemblyName>JiwaServiceModel.dll</AssemblyName>
      <AssemblyLocation>C:\VSTS\Jiwa 7\07.02.00\Built Files\JiwaServiceModel.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>418f05cb-0b3e-45ae-a515-568f503e55d2</RecID>
      <AssemblyFullName>System.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</AssemblyFullName>
      <AssemblyName>System.Net.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Net\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Net.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>401f68c6-f837-4ea7-9129-37b63293bd0d</RecID>
      <AssemblyFullName>System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</AssemblyFullName>
      <AssemblyName>System.Net.Http.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Net.Http\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Net.Http.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>498d7686-7c41-4dc9-a7d6-0461bc402bd4</RecID>
      <AssemblyFullName>System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyFullName>
      <AssemblyName>System.Xml.Linq.dll</AssemblyName>
      <AssemblyLocation>C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Xml.Linq\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.Linq.dll</AssemblyLocation>
    </Reference>
  </ReferenceCollection>
  <SystemSettingCollection>
    <SystemSetting>
      <RecID>792bde3560964861b11e</RecID>
      <IDKey>APIKey</IDKey>
      <Description>Azure Cognitive Services API Key</Description>
      <DisplayOrder>1</DisplayOrder>
      <CellType>Text</CellType>
      <Contents />
      <DisplayContents />
    </SystemSetting>
  </SystemSettingCollection>
</JiwaDocument>