From d51f7ec0403bd9b41b092fa9c9dd8aa6772d43f2 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Mon, 19 Dec 2016 21:20:49 -0500 Subject: [PATCH 01/42] Fitness methods can now specify their own GA settings. This enables reuse of values for crossover, mutation, etc specific to a fitness solution. --- AIProgrammer.Fitness/Base/FitnessBase.cs | 37 ++++++++++++++++ .../Concrete/ExtractInQuotesFitness.cs | 44 ++++++++++++++++++- AIProgrammer.Types/Interface/IFitness.cs | 39 +++++++++++++++- AIProgrammer/Program.cs | 32 +++++++++++--- 4 files changed, 145 insertions(+), 7 deletions(-) diff --git a/AIProgrammer.Fitness/Base/FitnessBase.cs b/AIProgrammer.Fitness/Base/FitnessBase.cs index 5c62aac..70e2b46 100755 --- a/AIProgrammer.Fitness/Base/FitnessBase.cs +++ b/AIProgrammer.Fitness/Base/FitnessBase.cs @@ -18,6 +18,43 @@ public abstract class FitnessBase : IFitness public double TargetFitness { get { return _targetFitness; } } // Target fitness to achieve solution. public int Ticks { get; set; } // Number of instructions executed by the best program. + #region Settings + + /// + /// Program code, containing functions, that will be appended to main program code. + /// + public virtual string AppendCode { get; } + /// + /// Percentage chance that a child genome will use crossover of two parents. Default 0.7 + /// + public virtual double? CrossoverRate { get; } + /// + /// Percentage chance that a child genome will mutate a gene. Default 0.01 + /// + public virtual double? MutationRate { get; } + /// + /// Number of programming instructions in generated program (size of genome array). loops). Default 100 + /// + public virtual int? GenomeSize { get; } + /// + /// The max length a genome may grow to (only applicable if _expandAmount > 0). Default 100 + /// + public virtual int? MaxGenomeSize { get; } + /// + /// Max iterations a program may run before being killed (prevents infinite loops). Default 5000 + /// + public virtual int? MaxIterationCount { get; } + /// + /// The max genome size will expand by this amount, every _expandRate iterations (may help learning). Set to 0 to disable. Default 0 + /// + public virtual int? ExpandAmount { get; } + /// + /// The max genome size will expand by _expandAmount, at this interval of generations. Default 5000 + /// + public virtual int? ExpandRate { get; } + + #endregion + protected double _fitness = 0; // Total fitness to return to genetic algorithm (may be variable, solution is not based upon this value, just the rank). protected static double _targetFitness = 0; // Target fitness to achieve. Static so we only evaluate this once across instantiations of the fitness class. protected int _maxIterationCount = 2000; // Max iterations a program may run before being killed (prevents infinite loops). diff --git a/AIProgrammer.Fitness/Concrete/ExtractInQuotesFitness.cs b/AIProgrammer.Fitness/Concrete/ExtractInQuotesFitness.cs index 81addec..c1bcfaf 100644 --- a/AIProgrammer.Fitness/Concrete/ExtractInQuotesFitness.cs +++ b/AIProgrammer.Fitness/Concrete/ExtractInQuotesFitness.cs @@ -21,13 +21,55 @@ public class ExtractInQuotesFitness : FitnessBase private static string[] _trainingExamples = { "\"inside\"", "\"test\"", "\"foresting\"" }; private static string[] _trainingResults = new string[] { "inside", "test", "foresting" }; + #region Settings + /// /// Previously generated BrainPlus code for FindQuoteFitness. The function returns 0 if the current memory value is a quote and a positive value otherwise. /// Note, the function was not actually used in the solution. /// Another potential useful function: removing first and last character from a string (starts at memory location 0): +>!+!>++>,>$[...+.!,.<>..<]$,>$-,[<.>>,]@ /// Usage in main program: _appendCode = ExtractInQuotesFitness.Function /// - public static string Function = ",$+*+[[$---][!][]+>+[$<$>+,>,+-*++$+!<><>$-<*<>>,],+**!!<,,,![[,@"; + public override string AppendCode + { + get + { + return ",$+*+[[$---][!][]+>+[$<$>+,>,+-*++$+!<><>$-<*<>>,],+**!!<,,,![[,@"; + } + } + + public override int? GenomeSize + { + get + { + return 5; + } + } + + public override int? MaxGenomeSize + { + get + { + return 100; + } + } + + public override int? ExpandAmount + { + get + { + return 2; + } + } + + public override int? ExpandRate + { + get + { + return 5000; + } + } + + #endregion public ExtractInQuotesFitness(GA ga, int maxIterationCount, string appendFunctions = null) : base(ga, maxIterationCount, appendFunctions) diff --git a/AIProgrammer.Types/Interface/IFitness.cs b/AIProgrammer.Types/Interface/IFitness.cs index 00fb3ca..e7a50dc 100755 --- a/AIProgrammer.Types/Interface/IFitness.cs +++ b/AIProgrammer.Types/Interface/IFitness.cs @@ -25,8 +25,45 @@ public interface IFitness /// /// Number of instructions executed for the best fitness. /// - int Ticks { get; set; } + int Ticks { get; set; } + + #region Settings + /// + /// Program code, containing functions, that will be appended to main program code. + /// + string AppendCode { get; } + /// + /// Percentage chance that a child genome will use crossover of two parents. Default 0.7 + /// + double? CrossoverRate { get; } + /// + /// Percentage chance that a child genome will mutate a gene. Default 0.01 + /// + double? MutationRate { get; } + /// + /// Number of programming instructions in generated program (size of genome array). loops). Default 100 + /// + int? GenomeSize { get; } + /// + /// The max length a genome may grow to (only applicable if _expandAmount > 0). Default 100 + /// + int? MaxGenomeSize { get; } + /// + /// Max iterations a program may run before being killed (prevents infinite loops). Default 5000 + /// + int? MaxIterationCount { get; } + /// + /// The max genome size will expand by this amount, every _expandRate iterations (may help learning). Set to 0 to disable. Default 0 + /// + int? ExpandAmount { get; } + /// + /// The max genome size will expand by _expandAmount, at this interval of generations. Default 5000 + /// + int? ExpandRate { get; } + + #endregion + /// /// Gets the fitness for the weights. Converts the weights into program code, executes the code, ranks the result. /// diff --git a/AIProgrammer/Program.cs b/AIProgrammer/Program.cs index 4f0e8e2..9c2e83e 100755 --- a/AIProgrammer/Program.cs +++ b/AIProgrammer/Program.cs @@ -39,8 +39,8 @@ class Program private static double _crossoverRate = 0.70; // Percentage chance that a child genome will use crossover of two parents. private static double _mutationRate = 0.01; // Percentage chance that a child genome will mutate a gene. - private static int _genomeSize = 250; // Number of programming instructions in generated program (size of genome array). loops). private static int _maxGenomeSize = 150; // The max length a genome may grow to (only applicable if _expandAmount > 0). - private static int _maxGenomeSize = 150; // The max length a genome may grow to (only applicable if _expandAmount > 0). + private static int _genomeSize = 100; // Number of programming instructions in generated program (size of genome array). loops). + private static int _maxGenomeSize = 100; // The max length a genome may grow to (only applicable if _expandAmount > 0). private static int _maxIterationCount = 5000; // Max iterations a program may run before being killed (prevents infinite loops). private static int _expandAmount = 0; // The max genome size will expand by this amount, every _expandRate iterations (may help learning). Set to 0 to disable. private static int _expandRate = 5000; // The max genome size will expand by _expandAmount, at this interval of generations. @@ -78,7 +78,7 @@ private static void OnGeneration(GA ga) { _bestStatus.Iteration = 0; Console.WriteLine("Best Fitness: " + _bestStatus.TrueFitness + "/" + _targetParams.TargetFitness + " " + Math.Round(_bestStatus.TrueFitness / _targetParams.TargetFitness * 100, 2) + "%, Ticks: " + _bestStatus.Ticks + ", Running: " + Math.Round((DateTime.Now - _startTime).TotalMinutes) + "m, Size: " + _genomeSize + ", Best Output: " + _bestStatus.Output + ", Changed: " + _bestStatus.LastChangeDate.ToString() + ", Program: " + _bestStatus.Program); - + ga.Save("my-genetic-algorithm.dat"); } @@ -136,8 +136,8 @@ static void Main(string[] args) _appendCode += _functionGenerator.Generate(_ga); } - // Generate main program. Get the selected fitness type. - IFitness myFitness = GetFitnessMethod(); + // Generate main program. Instantiate the fitness method. + IFitness myFitness = GetFitness(); // Get the target fitness for this method. _targetParams.TargetFitness = myFitness.TargetFitness; @@ -165,6 +165,28 @@ static void Main(string[] args) Console.ReadKey(); } + /// + /// Instantiates a fitness method. + /// This includes initializing any custom GA settings, as specified by the fitness. + /// This allows for reuse of the same GA settings when running a fitness method. + /// + /// IFitness + private static IFitness GetFitness() + { + IFitness fitness = GetFitnessMethod(); + + _appendCode += fitness.AppendCode; + _ga.GAParams.CrossoverRate = _crossoverRate = fitness.CrossoverRate.HasValue ? fitness.CrossoverRate.Value : _ga.GAParams.CrossoverRate; + _ga.GAParams.MutationRate = _mutationRate = fitness.MutationRate.HasValue ? fitness.MutationRate.Value : _ga.GAParams.MutationRate; + _ga.GAParams.GenomeSize = _genomeSize = fitness.GenomeSize.HasValue ? fitness.GenomeSize.Value : _ga.GAParams.GenomeSize; + _maxGenomeSize = fitness.MaxGenomeSize.HasValue ? fitness.MaxGenomeSize.Value : _maxGenomeSize; + _maxIterationCount = fitness.MaxIterationCount.HasValue ? fitness.MaxIterationCount.Value : _maxIterationCount; + _expandAmount = fitness.ExpandAmount.HasValue ? fitness.ExpandAmount.Value : _expandAmount; + _expandRate = fitness.ExpandRate.HasValue ? fitness.ExpandRate.Value : _expandRate; + + return fitness; + } + #endregion } } From 2f71d10c6480b8dfdf9c9a1afef3e6ac42d9a47c Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Tue, 20 Dec 2016 09:25:33 -0500 Subject: [PATCH 02/42] Cleanup. --- AIProgrammer/Program.cs | 48 ++++++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/AIProgrammer/Program.cs b/AIProgrammer/Program.cs index 9c2e83e..799b1a1 100755 --- a/AIProgrammer/Program.cs +++ b/AIProgrammer/Program.cs @@ -120,6 +120,32 @@ private static double fitnessFunction(double[] weights) #endregion + #region Utility Methods + + /// + /// Instantiates a fitness method. + /// This includes initializing any custom GA settings, as specified by the fitness. + /// This allows for reuse of the same GA settings when running a fitness method. + /// + /// IFitness + private static IFitness GetFitness() + { + IFitness fitness = GetFitnessMethod(); + + _appendCode += fitness.AppendCode; + _ga.GAParams.CrossoverRate = _crossoverRate = fitness.CrossoverRate.HasValue ? fitness.CrossoverRate.Value : _ga.GAParams.CrossoverRate; + _ga.GAParams.MutationRate = _mutationRate = fitness.MutationRate.HasValue ? fitness.MutationRate.Value : _ga.GAParams.MutationRate; + _ga.GAParams.GenomeSize = _genomeSize = fitness.GenomeSize.HasValue ? fitness.GenomeSize.Value : _ga.GAParams.GenomeSize; + _maxGenomeSize = fitness.MaxGenomeSize.HasValue ? fitness.MaxGenomeSize.Value : _maxGenomeSize; + _maxIterationCount = fitness.MaxIterationCount.HasValue ? fitness.MaxIterationCount.Value : _maxIterationCount; + _expandAmount = fitness.ExpandAmount.HasValue ? fitness.ExpandAmount.Value : _expandAmount; + _expandRate = fitness.ExpandRate.HasValue ? fitness.ExpandRate.Value : _expandRate; + + return fitness; + } + + #endregion + #region Main Program /// @@ -165,28 +191,6 @@ static void Main(string[] args) Console.ReadKey(); } - /// - /// Instantiates a fitness method. - /// This includes initializing any custom GA settings, as specified by the fitness. - /// This allows for reuse of the same GA settings when running a fitness method. - /// - /// IFitness - private static IFitness GetFitness() - { - IFitness fitness = GetFitnessMethod(); - - _appendCode += fitness.AppendCode; - _ga.GAParams.CrossoverRate = _crossoverRate = fitness.CrossoverRate.HasValue ? fitness.CrossoverRate.Value : _ga.GAParams.CrossoverRate; - _ga.GAParams.MutationRate = _mutationRate = fitness.MutationRate.HasValue ? fitness.MutationRate.Value : _ga.GAParams.MutationRate; - _ga.GAParams.GenomeSize = _genomeSize = fitness.GenomeSize.HasValue ? fitness.GenomeSize.Value : _ga.GAParams.GenomeSize; - _maxGenomeSize = fitness.MaxGenomeSize.HasValue ? fitness.MaxGenomeSize.Value : _maxGenomeSize; - _maxIterationCount = fitness.MaxIterationCount.HasValue ? fitness.MaxIterationCount.Value : _maxIterationCount; - _expandAmount = fitness.ExpandAmount.HasValue ? fitness.ExpandAmount.Value : _expandAmount; - _expandRate = fitness.ExpandRate.HasValue ? fitness.ExpandRate.Value : _expandRate; - - return fitness; - } - #endregion } } From 78c392eaea008b613e3b943bcccf04e8098c06a4 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Tue, 20 Dec 2016 14:04:17 -0500 Subject: [PATCH 03/42] Changed m_FunctionCallStack to private. Added IsInsideFunction property to indicate when the interpreter is running a function vs main Program.cs Added m_CurrentFunction to indicate the name (a-z) of the currently executing function or null. --- .../Concrete/ExtractInQuotesFitness.cs | 44 +++++++++++++++++-- .../Concrete/GuidingFunctionFitness.cs | 2 +- .../Concrete/XmlToJsonFitness.cs | 2 +- AIProgrammer.Interpreter/Interpreter.cs | 22 +++++++--- 4 files changed, 59 insertions(+), 11 deletions(-) diff --git a/AIProgrammer.Fitness/Concrete/ExtractInQuotesFitness.cs b/AIProgrammer.Fitness/Concrete/ExtractInQuotesFitness.cs index c1bcfaf..74e22a7 100644 --- a/AIProgrammer.Fitness/Concrete/ExtractInQuotesFitness.cs +++ b/AIProgrammer.Fitness/Concrete/ExtractInQuotesFitness.cs @@ -18,7 +18,7 @@ namespace AIProgrammer.Fitness.Concrete /// public class ExtractInQuotesFitness : FitnessBase { - private static string[] _trainingExamples = { "\"inside\"", "\"test\"", "\"foresting\"" }; + private static string[] _trainingExamples = { "one \"inside\"", "a \"test\"", "something \"foresting\"" }; private static string[] _trainingResults = new string[] { "inside", "test", "foresting" }; #region Settings @@ -33,7 +33,7 @@ public override string AppendCode { get { - return ",$+*+[[$---][!][]+>+[$<$>+,>,+-*++$+!<><>$-<*<>>,],+**!!<,,,![[,@"; + return ",$+*+[[$---][!][]+>+[$<$>+,>,+-*++$+!<><>$-<*<>>,],+**!!<,,,![[,@-+,>,<,[$,>+-.!<]<][!+[<[[+$+[[+<[[>$+[[-+$,->!>>$<$[+-,>6,$.-><-[!-[$>,+,,[,!+>!,,[$![!5@"; } } @@ -41,7 +41,7 @@ public override int? GenomeSize { get { - return 5; + return 30; } } @@ -96,6 +96,9 @@ protected override double GetFitnessMethod(string program) try { int state = 0; + int startingDataPointer = -1; + HashSet memoryHash = new HashSet(); + _console.Clear(); // Run the program. @@ -103,6 +106,15 @@ protected override double GetFitnessMethod(string program) { if (state < _trainingExamples[i].Length) { + if (startingDataPointer == -1 && _trainingExamples[i][state] == '"') + { + // Remember the data pointer position for the first quote input. + startingDataPointer = _bf.m_CurrentDataPointer; + } + + // Store data in different memory positions, so that function can access the data. + memoryHash.Add(_bf.m_CurrentDataPointer); + // Send input. return (byte)_trainingExamples[i][state++]; } @@ -114,9 +126,29 @@ protected override double GetFitnessMethod(string program) }, (b) => { + // We want the function to do the printing, so apply a penalty if the print comes from the main program. + if (!_bf.IsInsideFunction) + { + penalty += 50; + } + _console.Append((char)b); + }, + (function) => + { + if (startingDataPointer != -1 && function == 'b') + { + // The function requires the starting memory pointer to be at the first quote of input for "test". The function will then strip the quotes. + //// Apply a penalty if the function is called and the memory pointer is anywhere else. + //penalty += Math.Abs(startingDataPointer - _bf.m_CurrentDataPointer) * 5; + // Give a bonus for calling the function at the correct memory location. + countBonus += 100 * ((startingDataPointer - Math.Abs(_bf.m_CurrentDataPointer - startingDataPointer)) / startingDataPointer); + } }); _bf.Run(_maxIterationCount); + + // Give a bonus for using multiple memory registers, supporting diversity. + countBonus += memoryHash.Count * 5; } catch { @@ -143,6 +175,12 @@ protected override double GetFitnessMethod(string program) // Check for solution. IsFitnessAchieved(); + // Bonus for executing functions. + if (!string.IsNullOrEmpty(_appendFunctions) && _bf.m_ExecutedFunctions.ContainsKey('b')) + { + countBonus += 100; + } + // Bonus for less operations to optimize the code. countBonus += ((_maxIterationCount - _bf.m_Ticks) / 1000.0); diff --git a/AIProgrammer.Fitness/Concrete/GuidingFunctionFitness.cs b/AIProgrammer.Fitness/Concrete/GuidingFunctionFitness.cs index f484b1b..7921383 100644 --- a/AIProgrammer.Fitness/Concrete/GuidingFunctionFitness.cs +++ b/AIProgrammer.Fitness/Concrete/GuidingFunctionFitness.cs @@ -84,7 +84,7 @@ protected override double GetFitnessMethod(string program) (b) => { // We want the function to do the printing, so apply a penalty if the print comes from the main program. - if (!string.IsNullOrEmpty(_appendFunctions) && _bf.m_FunctionCallStack.Count == 0) + if (!string.IsNullOrEmpty(_appendFunctions) && !_bf.IsInsideFunction) { penalty += 100; } diff --git a/AIProgrammer.Fitness/Concrete/XmlToJsonFitness.cs b/AIProgrammer.Fitness/Concrete/XmlToJsonFitness.cs index 1b8aabb..05c9a2e 100644 --- a/AIProgrammer.Fitness/Concrete/XmlToJsonFitness.cs +++ b/AIProgrammer.Fitness/Concrete/XmlToJsonFitness.cs @@ -91,7 +91,7 @@ protected override double GetFitnessMethod(string program) _console.Append((char)b); // We want the function to do the printing (at least for the first case), so apply a penalty if the print comes from the main program. {"a":"boy"} - if (!string.IsNullOrEmpty(_appendFunctions) && _console.Length >= 7 && _console.Length <= 9 && (_bf.m_FunctionCallStack.Count == 0 || _bf.m_FunctionCallStack.Peek().Instruction != 'e')) + if (!string.IsNullOrEmpty(_appendFunctions) && _console.Length >= 7 && _console.Length <= 9 && (!_bf.IsInsideFunction || _bf.m_CurrentFunction != 'e')) { penalty += 150; } diff --git a/AIProgrammer.Interpreter/Interpreter.cs b/AIProgrammer.Interpreter/Interpreter.cs index ea3e8f8..1b3ca8d 100755 --- a/AIProgrammer.Interpreter/Interpreter.cs +++ b/AIProgrammer.Interpreter/Interpreter.cs @@ -109,7 +109,7 @@ public class FunctionCallObj /// /// The function "call stack". /// - public readonly Stack m_FunctionCallStack = new Stack(); + private readonly Stack m_FunctionCallStack = new Stack(); /// /// Pointer to the current call stack (m_FunctionCallStack or m_CallStack). @@ -168,6 +168,16 @@ public class FunctionCallObj /// public Dictionary m_ExecutedFunctions = new Dictionary(); + /// + /// True if a function is currently running. False if the main program is running. + /// + public bool IsInsideFunction { get { return m_FunctionCallStack.Count > 0; } } + + /// + /// The name of the currently executing function or null. + /// + public char? m_CurrentFunction { get { if (IsInsideFunction) return m_FunctionCallStack.Peek().Instruction; else return null; } } + /// /// Constructor /// @@ -203,7 +213,7 @@ public Interpreter(string programCode, Func input, Action output, Ac this.m_InstructionSet.Add('.', () => { if (!m_ExitLoop) this.m_Output(this.m_Memory[this.m_DataPointer]); }); // Prompt for input. If inside a function, pull input from parent memory, using the current FunctionInputPointer. Each call for input advances the parent memory cell that gets read from, allowing the passing of multiple values as input to a function. - this.m_InstructionSet.Add(',', () => { if (!m_ExitLoop) m_Memory[this.m_DataPointer] = m_FunctionCallStack.Count == 0 ? this.m_Input() : this.m_Memory[this.m_FunctionInputPointer++]; }); + this.m_InstructionSet.Add(',', () => { if (!m_ExitLoop) m_Memory[this.m_DataPointer] = IsInsideFunction ? this.m_Memory[this.m_FunctionInputPointer++] : this.m_Input(); }); this.m_InstructionSet.Add('[', () => { @@ -260,7 +270,7 @@ public Interpreter(string programCode, Func input, Action output, Ac this.m_InstructionSet.Add('*', () => { if (!m_ExitLoop) this.m_ReturnValue = this.m_Memory[this.m_DataPointer]; }); this.m_InstructionSet.Add('@', () => { - if (m_FunctionCallStack.Count > 0) + if (IsInsideFunction) { // Exit function. var temp = m_FunctionCallStack.Pop(); @@ -302,7 +312,7 @@ public Interpreter(string programCode, Func input, Action output, Ac { // If we're inside a function, use the function's own global storage (separate from the main program). // However, if this is the last storage command in the function code, then use the main/calling-function storage, to allow returning a value. - if (m_FunctionCallStack.Count > 0 && this.m_Source[m_InstructionPointer + 1] == '@') + if (IsInsideFunction && this.m_Source[m_InstructionPointer + 1] == '@') { // Set function return value. this.m_ReturnValue = this.m_Memory[this.m_DataPointer]; @@ -329,7 +339,7 @@ public Interpreter(string programCode, Func input, Action output, Ac if (!m_ExitLoop) { // Record a list of executed function names from the main program (not a function calling another function). - if (m_FunctionCallStack.Count == 0) + if (!IsInsideFunction) { if (m_ExecutedFunctions.ContainsKey(instruction)) { @@ -425,7 +435,7 @@ private void RunLimited(int maxInstructions) // Have we exceeded the max instruction count? if (maxInstructions > 0 && m_Ticks >= maxInstructions) { - if (m_FunctionCallStack.Count > 0) + if (IsInsideFunction) { // We're inside a function, but ran out of instructions. Exit the function, but continue. if (this.m_InstructionSet.TryGetValue('@', out action)) From 2d3b82eb9b9c47eaa2e4dd5827857790c27f7c9c Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Tue, 20 Dec 2016 14:08:37 -0500 Subject: [PATCH 04/42] Rolled back fitness method. Will create separate fitness method for this. --- .../Concrete/ExtractInQuotesFitness.cs | 44 ++----------------- 1 file changed, 3 insertions(+), 41 deletions(-) diff --git a/AIProgrammer.Fitness/Concrete/ExtractInQuotesFitness.cs b/AIProgrammer.Fitness/Concrete/ExtractInQuotesFitness.cs index 74e22a7..c1bcfaf 100644 --- a/AIProgrammer.Fitness/Concrete/ExtractInQuotesFitness.cs +++ b/AIProgrammer.Fitness/Concrete/ExtractInQuotesFitness.cs @@ -18,7 +18,7 @@ namespace AIProgrammer.Fitness.Concrete /// public class ExtractInQuotesFitness : FitnessBase { - private static string[] _trainingExamples = { "one \"inside\"", "a \"test\"", "something \"foresting\"" }; + private static string[] _trainingExamples = { "\"inside\"", "\"test\"", "\"foresting\"" }; private static string[] _trainingResults = new string[] { "inside", "test", "foresting" }; #region Settings @@ -33,7 +33,7 @@ public override string AppendCode { get { - return ",$+*+[[$---][!][]+>+[$<$>+,>,+-*++$+!<><>$-<*<>>,],+**!!<,,,![[,@-+,>,<,[$,>+-.!<]<][!+[<[[+$+[[+<[[>$+[[-+$,->!>>$<$[+-,>6,$.-><-[!-[$>,+,,[,!+>!,,[$![!5@"; + return ",$+*+[[$---][!][]+>+[$<$>+,>,+-*++$+!<><>$-<*<>>,],+**!!<,,,![[,@"; } } @@ -41,7 +41,7 @@ public override int? GenomeSize { get { - return 30; + return 5; } } @@ -96,9 +96,6 @@ protected override double GetFitnessMethod(string program) try { int state = 0; - int startingDataPointer = -1; - HashSet memoryHash = new HashSet(); - _console.Clear(); // Run the program. @@ -106,15 +103,6 @@ protected override double GetFitnessMethod(string program) { if (state < _trainingExamples[i].Length) { - if (startingDataPointer == -1 && _trainingExamples[i][state] == '"') - { - // Remember the data pointer position for the first quote input. - startingDataPointer = _bf.m_CurrentDataPointer; - } - - // Store data in different memory positions, so that function can access the data. - memoryHash.Add(_bf.m_CurrentDataPointer); - // Send input. return (byte)_trainingExamples[i][state++]; } @@ -126,29 +114,9 @@ protected override double GetFitnessMethod(string program) }, (b) => { - // We want the function to do the printing, so apply a penalty if the print comes from the main program. - if (!_bf.IsInsideFunction) - { - penalty += 50; - } - _console.Append((char)b); - }, - (function) => - { - if (startingDataPointer != -1 && function == 'b') - { - // The function requires the starting memory pointer to be at the first quote of input for "test". The function will then strip the quotes. - //// Apply a penalty if the function is called and the memory pointer is anywhere else. - //penalty += Math.Abs(startingDataPointer - _bf.m_CurrentDataPointer) * 5; - // Give a bonus for calling the function at the correct memory location. - countBonus += 100 * ((startingDataPointer - Math.Abs(_bf.m_CurrentDataPointer - startingDataPointer)) / startingDataPointer); - } }); _bf.Run(_maxIterationCount); - - // Give a bonus for using multiple memory registers, supporting diversity. - countBonus += memoryHash.Count * 5; } catch { @@ -175,12 +143,6 @@ protected override double GetFitnessMethod(string program) // Check for solution. IsFitnessAchieved(); - // Bonus for executing functions. - if (!string.IsNullOrEmpty(_appendFunctions) && _bf.m_ExecutedFunctions.ContainsKey('b')) - { - countBonus += 100; - } - // Bonus for less operations to optimize the code. countBonus += ((_maxIterationCount - _bf.m_Ticks) / 1000.0); From bbea700bce8904a5c4577a459cee1a50de145ce0 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Tue, 20 Dec 2016 14:18:03 -0500 Subject: [PATCH 05/42] Organized code with regions. --- AIProgrammer.Interpreter/Interpreter.cs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/AIProgrammer.Interpreter/Interpreter.cs b/AIProgrammer.Interpreter/Interpreter.cs index 1b3ca8d..bf2a14c 100755 --- a/AIProgrammer.Interpreter/Interpreter.cs +++ b/AIProgrammer.Interpreter/Interpreter.cs @@ -20,18 +20,21 @@ namespace AIProgrammer /// ] Jump backward to the matching [ unless the byte at the pointer is zero. /// /// Extended commands, included in BrainPlus. - /// @ Exits the program or if inside a function, return to last position in main program and restore state. + /// @ Exits the program or if inside a function, return to prior position in main program and restore state. /// $ Overwrites the byte in storage with the byte at the pointer. /// ! Overwrites the byte at the pointer with the byte in storage. /// a,b Call function a - z. /// 0-F Sets the value of the current memory pointer to a multiple of 16. + /// * Sets the return value of a function to the value at the current memory pointer; parent storage will get return value. /// public class Interpreter { + #region Private Members + /// /// Object used to swap state for a function call. This data is restored when the function terminates. /// - public class FunctionCallObj + private class FunctionCallObj { public int InstructionPointer { get; set; } public int DataPointer { get; set; } @@ -58,8 +61,7 @@ public class FunctionCallObj /// /// The instruction set /// - private readonly IDictionary m_InstructionSet = - new Dictionary(); + private readonly IDictionary m_InstructionSet = new Dictionary(); /// /// The memory of the program @@ -143,6 +145,10 @@ public class FunctionCallObj /// private InterpreterOptions m_Options = new InterpreterOptions(); + #endregion + + #region Public Members + /// /// Number of instructions executed. /// @@ -178,6 +184,8 @@ public class FunctionCallObj /// public char? m_CurrentFunction { get { if (IsInsideFunction) return m_FunctionCallStack.Peek().Instruction; else return null; } } + #endregion + /// /// Constructor /// From f690011879f3e1c8885088b68554db907dd9f2ff Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Wed, 21 Dec 2016 08:57:04 -0500 Subject: [PATCH 06/42] Added helper method IsInsideLoop() to Interpreter.cs. Added comments to ExtractInQuotesFitness.cs. Added ExtractInQuotesExtraFitness.cs. --- .../AIProgrammer.Fitness.csproj | 1 + .../Concrete/ExtractInQuotesFitness.cs | 2 +- .../Concrete/FindQuoteFitness.cs | 64 +++- .../Research/ExtractInQuotesExtraFitness.cs | 273 ++++++++++++++++++ AIProgrammer.Interpreter/Interpreter.cs | 5 + 5 files changed, 336 insertions(+), 9 deletions(-) create mode 100644 AIProgrammer.Fitness/Concrete/Research/ExtractInQuotesExtraFitness.cs diff --git a/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj b/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj index 807f7dd..a40bc30 100644 --- a/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj +++ b/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj @@ -54,6 +54,7 @@ + diff --git a/AIProgrammer.Fitness/Concrete/ExtractInQuotesFitness.cs b/AIProgrammer.Fitness/Concrete/ExtractInQuotesFitness.cs index c1bcfaf..50f7f22 100644 --- a/AIProgrammer.Fitness/Concrete/ExtractInQuotesFitness.cs +++ b/AIProgrammer.Fitness/Concrete/ExtractInQuotesFitness.cs @@ -14,7 +14,7 @@ namespace AIProgrammer.Fitness.Concrete { /// - /// Outputs the text inside quotes. Use with genomeSize = 100. + /// Outputs the text inside quotes. /// public class ExtractInQuotesFitness : FitnessBase { diff --git a/AIProgrammer.Fitness/Concrete/FindQuoteFitness.cs b/AIProgrammer.Fitness/Concrete/FindQuoteFitness.cs index 3ac2dd0..74d9e95 100644 --- a/AIProgrammer.Fitness/Concrete/FindQuoteFitness.cs +++ b/AIProgrammer.Fitness/Concrete/FindQuoteFitness.cs @@ -15,18 +15,57 @@ namespace AIProgrammer.Fitness.Concrete { /// /// Outputs value 0 if the input is a quote, and a positive value otherwise. Intended to be used as a function, where the last output is the return value. + /// To use the final program, replace all occurrences of . with * + /// This prevents outputting the result and instead sets the result as the function return value (storage to parent). + /// To test the solution, you can use the following stub: ,a!.@generated_code_here /// public class FindQuoteFitness : FitnessBase { - private static char[] _trainingExamples = "abcdefg123 \"\"\"\"\"\"\"\"\"\"\"".ToCharArray(); + private static char[] _trainingExamples = "abcdts123 \"".ToCharArray(); + + #region Settings + + public override int? GenomeSize + { + get + { + return 75; + } + } + + public override int? MaxGenomeSize + { + get + { + return 100; + } + } + + public override int? ExpandAmount + { + get + { + return 2; + } + } + + public override int? ExpandRate + { + get + { + return 2500; + } + } + + #endregion public FindQuoteFitness(GA ga, int maxIterationCount, string appendFunctions = null) : base(ga, maxIterationCount, appendFunctions) { if (_targetFitness == 0) { - _targetFitness = _trainingExamples.Length * 256; - //_targetFitness += _trainingExamples.Length * 10; // length + _targetFitness = (_trainingExamples.Length - 1) * 256; // -1 to not include the quote, as we'll add that next. + _targetFitness *= 2; // Include a " for each non-quote to balance training. } } @@ -63,6 +102,12 @@ protected override double GetFitnessMethod(string program) }, (b) => { + if (state < 1) + { + // Not ready for output. + penalty += 10; + } + result = b; _console.Append(b); }); @@ -86,8 +131,11 @@ protected override double GetFitnessMethod(string program) { if (expectedValue == 0) { - // We expect the value to be 0. - Fitness += 256 - Math.Abs(result - expectedValue); + // This is a quote, so we expect the value to be 0. + double score = 256 - Math.Abs(result - expectedValue); + + // Multiply this result to balance training against non-quotes. + Fitness += score * (_trainingExamples.Length - 1); } else if (result != 0) { @@ -96,8 +144,8 @@ protected override double GetFitnessMethod(string program) } } - // Length bonus (percentage of 10). - countBonus += 10 * ((1 - Math.Abs(_console.Length - 1)) / 1); + // Length bonus (percentage of 100). + countBonus += 100 * ((1 - Math.Abs(_console.Length - 1)) / 1); // Make the AI wait until a solution is found without the penalty. Fitness -= penalty; @@ -106,7 +154,7 @@ protected override double GetFitnessMethod(string program) IsFitnessAchieved(); // Bonus for less operations to optimize the code. - countBonus += ((_maxIterationCount - _bf.m_Ticks) / 1000.0); + countBonus += ((_maxIterationCount - _bf.m_Ticks) / 20.0); Ticks += _bf.m_Ticks; } diff --git a/AIProgrammer.Fitness/Concrete/Research/ExtractInQuotesExtraFitness.cs b/AIProgrammer.Fitness/Concrete/Research/ExtractInQuotesExtraFitness.cs new file mode 100644 index 0000000..0be297a --- /dev/null +++ b/AIProgrammer.Fitness/Concrete/Research/ExtractInQuotesExtraFitness.cs @@ -0,0 +1,273 @@ +using AIProgrammer.Fitness.Base; +using AIProgrammer.GeneticAlgorithm; +using AIProgrammer.Managers; +using AIProgrammer.Types; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; +using System.Xml; + +namespace AIProgrammer.Fitness.Concrete.Research +{ + /// + /// Outputs the text inside quotes, with additional text in front of it. + /// + public class ExtractInQuotesExtraFitness : FitnessBase + { + private static string[] _trainingExamples = { "dot \"inside\"", "milk \"test\"", "final \"foresting\"" }; + private static string[] _trainingResults = new string[] { "inside", "test", "foresting" }; + + #region Settings + + /// + /// Previously generated BrainPlus code for FindQuoteFitness. + /// The first function returns 0 (to storage) if the current memory value is a quote and a positive value otherwise. + /// The second function removes the first and last character from a string. + /// Note, the function was not actually used in the solution. + /// Another potential useful function: removing first and last character from a string (starts at memory location 0): +>!+!>++>,>$[...+.!,.<>..<]$,>$-,[<.>>,]@ + /// + public override string AppendCode + { + get + { + return "!$$,++[[$+-+]->$+[*[+[+*$*+[++*++[+[>]$!+[$+[>[+!*-*>,**-,,$>*[,**-,]!-+]],]*],-!$<]>@-+,>,<,[$,>+-.!<]<][!+[<[[+$+[[+<[[>$+[[-+$,->!>>$<$[+-,>6,$.-><-[!-[$>,+,,[,!+>!,,[$![!5@"; + } + } + + public override int? GenomeSize + { + get + { + return 50; + } + } + + public override int? MaxGenomeSize + { + get + { + return 100; + } + } + + public override int? ExpandAmount + { + get + { + return 2; + } + } + + public override int? ExpandRate + { + get + { + return 5000; + } + } + + #endregion + + public ExtractInQuotesExtraFitness(GA ga, int maxIterationCount, string appendFunctions = null) + : base(ga, maxIterationCount, appendFunctions) + { + if (_targetFitness == 0) + { + for (int i = 0; i < _trainingExamples.Length; i++) + { + _targetFitness += _trainingResults[i].Length * 256; + _targetFitness += 10; // length fitness + } + } + } + + #region FitnessBase Members + + protected override double GetFitnessMethod(string program) + { + double countBonus = 0; + double penalty = 0; + + for (int i = 0; i < _trainingExamples.Length; i++) + { + try + { + int state = 0; + int startingDataPointer = -1; + HashSet memoryHash = new HashSet(); + bool aBonus = false; + + _console.Clear(); + + // Run the program. + _bf = new Interpreter(program, () => + { + if (state < _trainingExamples[i].Length) + { + if (startingDataPointer == -1 && _trainingExamples[i][state] == '"') + { + // Remember the data pointer position for the first quote input. + startingDataPointer = _bf.m_CurrentDataPointer; + } + + // Store data in different memory positions, so that function can access the data. + memoryHash.Add(_bf.m_CurrentDataPointer); + + // Send input. + return (byte)_trainingExamples[i][state++]; + } + else + { + // Not ready for input. + return 0; + } + }, + (b) => + { + // We want the function to do the printing, so apply a bonus if the print comes from a function. + if (_console.Length < _trainingResults[i].Length) + { + if (_bf.IsInsideFunction) + { + countBonus += 50; + } + else + { + penalty += 50; + } + } + + _console.Append((char)b); + }, + (function) => + { + switch (function) + { + case 'a': + { + // Give a bonus for calling the function within a loop. + if (!aBonus && _bf.IsInsideLoop) + { + countBonus += 25; + countBonus += (_bf.m_CurrentInstructionPointer + 1 < program.Length) && program[_bf.m_CurrentInstructionPointer + 1] == '!' ? 75 : 0; + aBonus = true; + } + } + break; + case 'b': + { + if (startingDataPointer != -1) + { + // The function requires the starting memory pointer to be at the first quote of input for "test". The function will then strip the quotes. + // Give a bonus for calling the function at the correct memory location. + countBonus += 100 * ((startingDataPointer - Math.Abs(_bf.m_CurrentDataPointer - startingDataPointer)) / startingDataPointer); + } + } + break; + }; + }); + _bf.Run(_maxIterationCount); + + // Give a bonus for using multiple memory registers, supporting diversity. + countBonus += memoryHash.Count * 25; + } + catch + { + } + + _output.Append(_console.ToString()); + _output.Append("|"); + + // Check result. + for (int j = 0; j < _trainingResults[i].Length; j++) + { + if (_console.Length > j) + { + Fitness += 256 - Math.Abs(_console[j] - _trainingResults[i][j]); + } + } + + // Length bonus (percentage of 10). + Fitness += 10 * ((_trainingResults[i].Length - Math.Abs(_console.Length - _trainingResults[i].Length)) / _trainingResults[i].Length); + + // Make the AI wait until a solution is found without the penalty. + Fitness -= penalty; + + // Check for solution. + IsFitnessAchieved(); + + // Bonus for executing functions. + countBonus += _bf.m_ExecutedFunctions.Count * 100; + + // Bonus for less operations to optimize the code. + countBonus += ((_maxIterationCount - _bf.m_Ticks) / 20.0); + + Ticks += _bf.m_Ticks; + } + + if (_fitness != Double.MaxValue) + { + _fitness = Fitness + countBonus; + } + + return _fitness; + } + + protected override void RunProgramMethod(string program) + { + for (int i = 0; i < 99; i++) + { + // Get input from the user. + Console.WriteLine(); + Console.Write(">: "); + string line = Console.ReadLine(); + int index = 0; + + _console.Clear(); + + try + { + // Run the program. + Interpreter bf = new Interpreter(program, () => + { + byte b; + + // Send the next character. + if (index < line.Length) + { + b = (byte)line[index++]; + } + else + { + b = 0; + } + + return b; + }, + (b) => + { + _console.Append((char)b); + }); + + bf.Run(_maxIterationCount); + } + catch + { + } + + Console.WriteLine(_console.ToString()); + } + } + + public override string GetConstructorParameters() + { + return _maxIterationCount.ToString(); + } + + #endregion + } +} diff --git a/AIProgrammer.Interpreter/Interpreter.cs b/AIProgrammer.Interpreter/Interpreter.cs index bf2a14c..03dae3c 100755 --- a/AIProgrammer.Interpreter/Interpreter.cs +++ b/AIProgrammer.Interpreter/Interpreter.cs @@ -179,6 +179,11 @@ private class FunctionCallObj /// public bool IsInsideFunction { get { return m_FunctionCallStack.Count > 0; } } + /// + /// True if currently inside a loop []. False otherwise. Note, check IsInsideFunction to tell if this is a loop within a function or the main program. + /// + public bool IsInsideLoop { get { return m_CurrentCallStack.Count > 0; } } + /// /// The name of the currently executing function or null. /// From e0ce79ee5221364e1e231715d904b78f76b16605 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Thu, 22 Dec 2016 09:35:39 -0500 Subject: [PATCH 07/42] Fix for _maxIterationCount not properly set due to constructor and then setting config values. We now re-initialize the IFitness after changing settings during program startup. Added TotalTicks, which includes the main program and any functions executed. --- AIProgrammer.Fitness/Base/FitnessBase.cs | 1 + AIProgrammer.Interpreter/Interpreter.cs | 14 +++++++++++--- AIProgrammer.Types/GAStatus.cs | 4 ++++ AIProgrammer.Types/Interface/IFitness.cs | 5 +++++ AIProgrammer/Program.cs | 8 ++++++-- 5 files changed, 27 insertions(+), 5 deletions(-) diff --git a/AIProgrammer.Fitness/Base/FitnessBase.cs b/AIProgrammer.Fitness/Base/FitnessBase.cs index 70e2b46..2470f1d 100755 --- a/AIProgrammer.Fitness/Base/FitnessBase.cs +++ b/AIProgrammer.Fitness/Base/FitnessBase.cs @@ -17,6 +17,7 @@ public abstract class FitnessBase : IFitness public double Fitness { get; set; } // Fitness used for determining solution fitness (ie., true fitness). public double TargetFitness { get { return _targetFitness; } } // Target fitness to achieve solution. public int Ticks { get; set; } // Number of instructions executed by the best program. + public int TotalTicks { get; set; } // Number of instructions executed by the best program, including functions. #region Settings diff --git a/AIProgrammer.Interpreter/Interpreter.cs b/AIProgrammer.Interpreter/Interpreter.cs index 03dae3c..c5b40a6 100755 --- a/AIProgrammer.Interpreter/Interpreter.cs +++ b/AIProgrammer.Interpreter/Interpreter.cs @@ -150,14 +150,19 @@ private class FunctionCallObj #region Public Members /// - /// Number of instructions executed. + /// Number of instructions executed within the main program or the current function. /// - public int m_Ticks; + public int m_Ticks { get; private set; } + + /// + /// Number of total instructions executed, including within functions. + /// + public int m_TotalTicks { get; private set; } /// /// Flag to stop execution of the program. /// - public bool m_Stop; + public bool m_Stop { get; set; } /// /// Read-only access to the current data pointer index in memory. @@ -410,6 +415,7 @@ public Interpreter(string programCode, Func input, Action output, Ac public void Run(int maxInstructions = 0) { m_Ticks = 0; + m_TotalTicks = 0; m_Stop = false; if (maxInstructions > 0) @@ -464,6 +470,7 @@ private void RunLimited(int maxInstructions) } m_Ticks++; + m_TotalTicks++; } } @@ -490,6 +497,7 @@ private void RunUnlimited() this.m_InstructionPointer++; m_Ticks++; + m_TotalTicks++; } } diff --git a/AIProgrammer.Types/GAStatus.cs b/AIProgrammer.Types/GAStatus.cs index bc63e71..38aacf0 100644 --- a/AIProgrammer.Types/GAStatus.cs +++ b/AIProgrammer.Types/GAStatus.cs @@ -37,6 +37,10 @@ public class GAStatus /// public int Ticks = 0; /// + /// Number of instructions executed by the best program, including function calls. + /// + public int TotalTicks = 0; + /// /// Time of last improved evolution. /// public DateTime LastChangeDate = DateTime.Now; diff --git a/AIProgrammer.Types/Interface/IFitness.cs b/AIProgrammer.Types/Interface/IFitness.cs index e7a50dc..0b52396 100755 --- a/AIProgrammer.Types/Interface/IFitness.cs +++ b/AIProgrammer.Types/Interface/IFitness.cs @@ -27,6 +27,11 @@ public interface IFitness /// int Ticks { get; set; } + /// + /// Number of instructions executed for the best fitness, including function calls. + /// + int TotalTicks { get; set; } + #region Settings /// diff --git a/AIProgrammer/Program.cs b/AIProgrammer/Program.cs index 799b1a1..ad28bb7 100755 --- a/AIProgrammer/Program.cs +++ b/AIProgrammer/Program.cs @@ -77,7 +77,7 @@ private static void OnGeneration(GA ga) if (_bestStatus.Iteration++ > 1000) { _bestStatus.Iteration = 0; - Console.WriteLine("Best Fitness: " + _bestStatus.TrueFitness + "/" + _targetParams.TargetFitness + " " + Math.Round(_bestStatus.TrueFitness / _targetParams.TargetFitness * 100, 2) + "%, Ticks: " + _bestStatus.Ticks + ", Running: " + Math.Round((DateTime.Now - _startTime).TotalMinutes) + "m, Size: " + _genomeSize + ", Best Output: " + _bestStatus.Output + ", Changed: " + _bestStatus.LastChangeDate.ToString() + ", Program: " + _bestStatus.Program); + Console.WriteLine("Best Fitness: " + _bestStatus.TrueFitness + "/" + _targetParams.TargetFitness + " " + Math.Round(_bestStatus.TrueFitness / _targetParams.TargetFitness * 100, 2) + "%, Ticks: " + _bestStatus.Ticks + ", Total Ticks: " + _bestStatus.TotalTicks + ", Running: " + Math.Round((DateTime.Now - _startTime).TotalMinutes) + "m, Size: " + _genomeSize + ", Best Output: " + _bestStatus.Output + ", Changed: " + _bestStatus.LastChangeDate.ToString() + ", Program: " + _bestStatus.Program); ga.Save("my-genetic-algorithm.dat"); } @@ -113,6 +113,7 @@ private static double fitnessFunction(double[] weights) _bestStatus.LastChangeDate = DateTime.Now; _bestStatus.Program = myFitness.Program; _bestStatus.Ticks = myFitness.Ticks; + _bestStatus.TotalTicks = myFitness.TotalTicks; } return fitness; @@ -141,6 +142,9 @@ private static IFitness GetFitness() _expandAmount = fitness.ExpandAmount.HasValue ? fitness.ExpandAmount.Value : _expandAmount; _expandRate = fitness.ExpandRate.HasValue ? fitness.ExpandRate.Value : _expandRate; + // Re-initialize the fitness method for any changed internal values. + fitness = GetFitnessMethod(); + return fitness; } @@ -187,7 +191,7 @@ static void Main(string[] args) // Run the result for the user. string result = myFitness.RunProgram(program); Console.WriteLine(result); - + Console.ReadKey(); } From c6c96816901692aaa72d1f8c1ddc1abead0f09fd Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Thu, 22 Dec 2016 11:34:29 -0500 Subject: [PATCH 08/42] Changed default genome size. --- AIProgrammer/Program.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AIProgrammer/Program.cs b/AIProgrammer/Program.cs index ad28bb7..e9c8197 100755 --- a/AIProgrammer/Program.cs +++ b/AIProgrammer/Program.cs @@ -39,8 +39,8 @@ class Program private static double _crossoverRate = 0.70; // Percentage chance that a child genome will use crossover of two parents. private static double _mutationRate = 0.01; // Percentage chance that a child genome will mutate a gene. - private static int _genomeSize = 100; // Number of programming instructions in generated program (size of genome array). loops). - private static int _maxGenomeSize = 100; // The max length a genome may grow to (only applicable if _expandAmount > 0). + private static int _genomeSize = 150; // Number of programming instructions in generated program (size of genome array). loops). + private static int _maxGenomeSize = 150; // The max length a genome may grow to (only applicable if _expandAmount > 0). private static int _maxIterationCount = 5000; // Max iterations a program may run before being killed (prevents infinite loops). private static int _expandAmount = 0; // The max genome size will expand by this amount, every _expandRate iterations (may help learning). Set to 0 to disable. private static int _expandRate = 5000; // The max genome size will expand by _expandAmount, at this interval of generations. From fbe6e6b2c56cd5c4e24e9b17fa6789bbcbe8c4c0 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Thu, 22 Dec 2016 12:18:59 -0500 Subject: [PATCH 09/42] Added new interpreter option to specify custom max iteration counts for individual functions. --- .../Concrete/FindQuoteFitness.cs | 14 +++++++-- .../Research/ExtractInQuotesExtraFitness.cs | 6 ++-- AIProgrammer.Interpreter/Interpreter.cs | 30 ++++++++++++++----- AIProgrammer.Types/InterpreterOptions.cs | 4 +++ 4 files changed, 41 insertions(+), 13 deletions(-) diff --git a/AIProgrammer.Fitness/Concrete/FindQuoteFitness.cs b/AIProgrammer.Fitness/Concrete/FindQuoteFitness.cs index 74d9e95..6188897 100644 --- a/AIProgrammer.Fitness/Concrete/FindQuoteFitness.cs +++ b/AIProgrammer.Fitness/Concrete/FindQuoteFitness.cs @@ -29,7 +29,7 @@ public override int? GenomeSize { get { - return 75; + return 25; } } @@ -57,6 +57,14 @@ public override int? ExpandRate } } + public override int? MaxIterationCount + { + get + { + return 100; + } + } + #endregion public FindQuoteFitness(GA ga, int maxIterationCount, string appendFunctions = null) @@ -110,7 +118,7 @@ protected override double GetFitnessMethod(string program) result = b; _console.Append(b); - }); + }, null, new InterpreterOptions() { FunctionMaxIterationCounts = new int[] { 100 } }); _bf.Run(_maxIterationCount); } catch @@ -196,7 +204,7 @@ protected override void RunProgramMethod(string program) (b) => { Console.Write(b + " "); - }); + }, null, new InterpreterOptions() { FunctionMaxIterationCounts = new int[] { 100 } }); bf.Run(_maxIterationCount); } diff --git a/AIProgrammer.Fitness/Concrete/Research/ExtractInQuotesExtraFitness.cs b/AIProgrammer.Fitness/Concrete/Research/ExtractInQuotesExtraFitness.cs index 0be297a..67570da 100644 --- a/AIProgrammer.Fitness/Concrete/Research/ExtractInQuotesExtraFitness.cs +++ b/AIProgrammer.Fitness/Concrete/Research/ExtractInQuotesExtraFitness.cs @@ -34,7 +34,7 @@ public override string AppendCode { get { - return "!$$,++[[$+-+]->$+[*[+[+*$*+[++*++[+[>]$!+[$+[>[+!*-*>,**-,,$>*[,**-,]!-+]],]*],-!$<]>@-+,>,<,[$,>+-.!<]<][!+[<[[+$+[[+<[[>$+[[-+$,->!>>$<$[+-,>6,$.-><-[!-[$>,+,,[,!+>!,,[$![!5@"; + return "A!,+*+>+*+<[[---$*]]>-,[-@-+,>,<,[$,>+-.!<]<][!+[<[[+$+[[+<[[>$+[[-+$,->!>>$<$[+-,>6,$.-><-[!-[$>,+,,[,!+>!,,[$![!5@"; } } @@ -169,7 +169,7 @@ protected override double GetFitnessMethod(string program) } break; }; - }); + }, new InterpreterOptions() { FunctionMaxIterationCounts = new int[] { 100 } }); _bf.Run(_maxIterationCount); // Give a bonus for using multiple memory registers, supporting diversity. @@ -251,7 +251,7 @@ protected override void RunProgramMethod(string program) (b) => { _console.Append((char)b); - }); + }, null, new InterpreterOptions() { FunctionMaxIterationCounts = new int[] { 100 } }); bf.Run(_maxIterationCount); } diff --git a/AIProgrammer.Interpreter/Interpreter.cs b/AIProgrammer.Interpreter/Interpreter.cs index c5b40a6..9924e7a 100755 --- a/AIProgrammer.Interpreter/Interpreter.cs +++ b/AIProgrammer.Interpreter/Interpreter.cs @@ -46,6 +46,7 @@ private class FunctionCallObj public char Instruction { get; set; } public byte Storage { get; set; } public byte? ReturnValue { get; set; } + public int MaxIterationCount { get; set; } }; /// @@ -101,7 +102,7 @@ private class FunctionCallObj /// /// The list of functions and their starting instruction index. /// - private readonly Dictionary m_Functions = new Dictionary(); + private readonly Dictionary> m_Functions = new Dictionary>(); /// /// Identifier for next function. Will serve as the instruction to call this function. @@ -130,6 +131,11 @@ private class FunctionCallObj /// private const int _functionSize = 300; + /// + /// Max number of iterations for a program or function to run. Can be custom specified within a function using the syntax: @maxit=1234|function_code_here + /// + private int m_MaxIterationCount; + /// /// Storage memory value. Usually used to hold return values from function calls. /// @@ -286,7 +292,7 @@ public Interpreter(string programCode, Func input, Action output, Ac this.m_InstructionSet.Add('E', () => { if (!m_ExitLoop) this.m_Memory[this.m_DataPointer] = 224; }); this.m_InstructionSet.Add('F', () => { if (!m_ExitLoop) this.m_Memory[this.m_DataPointer] = 240; }); this.m_InstructionSet.Add('*', () => { if (!m_ExitLoop) this.m_ReturnValue = this.m_Memory[this.m_DataPointer]; }); - this.m_InstructionSet.Add('@', () => + this.m_InstructionSet.Add('@', () => { if (IsInsideFunction) { @@ -313,6 +319,8 @@ public Interpreter(string programCode, Func input, Action output, Ac this.m_Storage = this.m_ReturnValue.HasValue ? this.m_ReturnValue.Value : temp.Storage; // Restore parent return value. this.m_ReturnValue = temp.ReturnValue; + // Restore max iteraction count. + this.m_MaxIterationCount = temp.MaxIterationCount; // Restore the instruction pointer. this.m_InstructionPointer = temp.InstructionPointer; // Restore function input pointer. @@ -324,7 +332,7 @@ public Interpreter(string programCode, Func input, Action output, Ac this.m_Stop = true; } }); - this.m_InstructionSet.Add('$', () => + this.m_InstructionSet.Add('$', () => { if (!m_ExitLoop) { @@ -376,7 +384,7 @@ public Interpreter(string programCode, Func input, Action output, Ac } // Store the current instruction pointer and data pointer before we move to the function. - var functionCallObj = new FunctionCallObj { InstructionPointer = this.m_InstructionPointer, DataPointer = this.m_DataPointer, FunctionInputPointer = this.m_FunctionInputPointer, CallStack = this.m_CurrentCallStack, ExitLoop = this.m_ExitLoop, ExitLoopInstructionPointer = this.m_ExitLoopInstructionPointer, Ticks = this.m_Ticks, Instruction = instruction, Storage = this.m_Storage, ReturnValue = this.m_ReturnValue }; + var functionCallObj = new FunctionCallObj { InstructionPointer = this.m_InstructionPointer, DataPointer = this.m_DataPointer, FunctionInputPointer = this.m_FunctionInputPointer, CallStack = this.m_CurrentCallStack, ExitLoop = this.m_ExitLoop, ExitLoopInstructionPointer = this.m_ExitLoopInstructionPointer, Ticks = this.m_Ticks, Instruction = instruction, Storage = this.m_Storage, ReturnValue = this.m_ReturnValue, MaxIterationCount = this.m_MaxIterationCount }; this.m_FunctionCallStack.Push(functionCallObj); // Give the function a fresh call stack. @@ -402,8 +410,11 @@ public Interpreter(string programCode, Func input, Action output, Ac // Set ticks to 0. this.m_Ticks = 0; + // Set the max iteration count for this function, if one was specified. + this.m_MaxIterationCount = m_Functions[instruction].Value > 0 ? m_Functions[instruction].Value : this.m_MaxIterationCount; + // Set the instruction pointer to the beginning of the function. - this.m_InstructionPointer = m_Functions[instruction]; + this.m_InstructionPointer = m_Functions[instruction].Key; } }); } @@ -434,6 +445,8 @@ public void Run(int maxInstructions = 0) /// Max number of instructions to execute private void RunLimited(int maxInstructions) { + m_MaxIterationCount = maxInstructions; + // Iterate through the whole program source while (this.m_InstructionPointer < this.m_Source.Length && !m_Stop) { @@ -452,7 +465,7 @@ private void RunLimited(int maxInstructions) this.m_InstructionPointer++; // Have we exceeded the max instruction count? - if (maxInstructions > 0 && m_Ticks >= maxInstructions) + if (m_MaxIterationCount > 0 && m_Ticks >= m_MaxIterationCount) { if (IsInsideFunction) { @@ -509,8 +522,11 @@ private void ScanFunctions(string source) this.m_InstructionPointer = source.IndexOf('@'); while (this.m_InstructionPointer > -1 && this.m_InstructionPointer < source.Length - 1 && !m_Stop) { + // Extract a max iteration count, if specified. + int maxFunctionIterationCount = m_Options.FunctionMaxIterationCounts != null && m_Options.FunctionMaxIterationCounts.Length > m_Functions.Count ? m_Options.FunctionMaxIterationCounts[m_Functions.Count] : 0; + // Store the function. - m_Functions.Add(m_NextFunctionCharacter++, this.m_InstructionPointer); + m_Functions.Add(m_NextFunctionCharacter++, new KeyValuePair(this.m_InstructionPointer, maxFunctionIterationCount)); this.m_InstructionPointer = source.IndexOf('@', this.m_InstructionPointer + 1); } diff --git a/AIProgrammer.Types/InterpreterOptions.cs b/AIProgrammer.Types/InterpreterOptions.cs index d645d1e..c090b69 100644 --- a/AIProgrammer.Types/InterpreterOptions.cs +++ b/AIProgrammer.Types/InterpreterOptions.cs @@ -17,5 +17,9 @@ public class InterpreterOptions /// If false (default), input will be read from the current memory data position of the parent. Meaning, if the parent has shifted the memory pointer up 3 slots, the function will begin reading from memory at position 3. /// public bool ReadFunctionInputAtMemoryStart { get; set; } + /// + /// Custom max iteration counts for functions. + /// + public int[] FunctionMaxIterationCounts { get; set; } } } From 07a889346df60c71434e56ecdf3751f3b0740810 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Thu, 22 Dec 2016 12:39:29 -0500 Subject: [PATCH 10/42] Updated client driver for FindQuoteFitness.cs to support multiple inputs. --- .../Concrete/FindQuoteFitness.cs | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/AIProgrammer.Fitness/Concrete/FindQuoteFitness.cs b/AIProgrammer.Fitness/Concrete/FindQuoteFitness.cs index 6188897..0ba13fa 100644 --- a/AIProgrammer.Fitness/Concrete/FindQuoteFitness.cs +++ b/AIProgrammer.Fitness/Concrete/FindQuoteFitness.cs @@ -183,23 +183,14 @@ protected override void RunProgramMethod(string program) try { - int state = 0; - // Run the program. Interpreter bf = new Interpreter(program, () => { - if (state++ == 0) - { - // Get input from the user. - Console.WriteLine(); - Console.Write(">: "); - byte b = (byte)Console.ReadLine()[0]; - return b; - } - else - { - return 0; - } + // Get input from the user. + Console.WriteLine(); + Console.Write(">: "); + byte b = (byte)Console.ReadLine()[0]; + return b; }, (b) => { From 29c85a7b26e3a6d785d425f0759e8f9d2a23e657 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Thu, 22 Dec 2016 18:49:40 -0500 Subject: [PATCH 11/42] Added comments. --- AIProgrammer.Fitness/Concrete/FindQuoteFitness.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/AIProgrammer.Fitness/Concrete/FindQuoteFitness.cs b/AIProgrammer.Fitness/Concrete/FindQuoteFitness.cs index 0ba13fa..5eaf02c 100644 --- a/AIProgrammer.Fitness/Concrete/FindQuoteFitness.cs +++ b/AIProgrammer.Fitness/Concrete/FindQuoteFitness.cs @@ -15,9 +15,9 @@ namespace AIProgrammer.Fitness.Concrete { /// /// Outputs value 0 if the input is a quote, and a positive value otherwise. Intended to be used as a function, where the last output is the return value. - /// To use the final program, replace all occurrences of . with * + /// To test the solution, you can use the following code: ,a!.@generated_code_here + /// When using as a function, replace all occurrences of . with * inside generated_code_here. /// This prevents outputting the result and instead sets the result as the function return value (storage to parent). - /// To test the solution, you can use the following stub: ,a!.@generated_code_here /// public class FindQuoteFitness : FitnessBase { @@ -61,6 +61,7 @@ public override int? MaxIterationCount { get { + // We want this function to run fast, so limit the max iterations. return 100; } } @@ -165,6 +166,7 @@ protected override double GetFitnessMethod(string program) countBonus += ((_maxIterationCount - _bf.m_Ticks) / 20.0); Ticks += _bf.m_Ticks; + TotalTicks += _bf.m_TotalTicks; } if (_fitness != Double.MaxValue) From f3b44267b355648a8bf4eeb018201f0b8074ee20 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Fri, 23 Dec 2016 13:35:02 -0500 Subject: [PATCH 12/42] Updated working example. --- .../Research/ExtractInQuotesExtraFitness.cs | 60 ++++--------------- 1 file changed, 10 insertions(+), 50 deletions(-) diff --git a/AIProgrammer.Fitness/Concrete/Research/ExtractInQuotesExtraFitness.cs b/AIProgrammer.Fitness/Concrete/Research/ExtractInQuotesExtraFitness.cs index 67570da..94a4936 100644 --- a/AIProgrammer.Fitness/Concrete/Research/ExtractInQuotesExtraFitness.cs +++ b/AIProgrammer.Fitness/Concrete/Research/ExtractInQuotesExtraFitness.cs @@ -11,14 +11,14 @@ using System.Threading.Tasks; using System.Xml; -namespace AIProgrammer.Fitness.Concrete.Research +namespace AIProgrammer.Fitness.Concrete { /// /// Outputs the text inside quotes, with additional text in front of it. /// public class ExtractInQuotesExtraFitness : FitnessBase { - private static string[] _trainingExamples = { "dot \"inside\"", "milk \"test\"", "final \"foresting\"" }; + private static string[] _trainingExamples = { "dot \"inside\"", "mil \"test\"", "fin \"foresting\"" }; private static string[] _trainingResults = new string[] { "inside", "test", "foresting" }; #region Settings @@ -42,7 +42,7 @@ public override int? GenomeSize { get { - return 50; + return 15; } } @@ -97,9 +97,8 @@ protected override double GetFitnessMethod(string program) try { int state = 0; - int startingDataPointer = -1; HashSet memoryHash = new HashSet(); - bool aBonus = false; + int aBonus = 0; _console.Clear(); @@ -108,12 +107,6 @@ protected override double GetFitnessMethod(string program) { if (state < _trainingExamples[i].Length) { - if (startingDataPointer == -1 && _trainingExamples[i][state] == '"') - { - // Remember the data pointer position for the first quote input. - startingDataPointer = _bf.m_CurrentDataPointer; - } - // Store data in different memory positions, so that function can access the data. memoryHash.Add(_bf.m_CurrentDataPointer); @@ -128,47 +121,16 @@ protected override double GetFitnessMethod(string program) }, (b) => { - // We want the function to do the printing, so apply a bonus if the print comes from a function. - if (_console.Length < _trainingResults[i].Length) - { - if (_bf.IsInsideFunction) - { - countBonus += 50; - } - else - { - penalty += 50; - } - } - _console.Append((char)b); }, (function) => { - switch (function) + if (function == 'a' && aBonus < 2 && _bf.IsInsideLoop) { - case 'a': - { - // Give a bonus for calling the function within a loop. - if (!aBonus && _bf.IsInsideLoop) - { - countBonus += 25; - countBonus += (_bf.m_CurrentInstructionPointer + 1 < program.Length) && program[_bf.m_CurrentInstructionPointer + 1] == '!' ? 75 : 0; - aBonus = true; - } - } - break; - case 'b': - { - if (startingDataPointer != -1) - { - // The function requires the starting memory pointer to be at the first quote of input for "test". The function will then strip the quotes. - // Give a bonus for calling the function at the correct memory location. - countBonus += 100 * ((startingDataPointer - Math.Abs(_bf.m_CurrentDataPointer - startingDataPointer)) / startingDataPointer); - } - } - break; - }; + countBonus += 50; + countBonus += (_bf.m_CurrentInstructionPointer + 1 < program.Length) && program[_bf.m_CurrentInstructionPointer + 1] == '!' ? 50 : 0; + aBonus++; + } }, new InterpreterOptions() { FunctionMaxIterationCounts = new int[] { 100 } }); _bf.Run(_maxIterationCount); @@ -200,13 +162,11 @@ protected override double GetFitnessMethod(string program) // Check for solution. IsFitnessAchieved(); - // Bonus for executing functions. - countBonus += _bf.m_ExecutedFunctions.Count * 100; - // Bonus for less operations to optimize the code. countBonus += ((_maxIterationCount - _bf.m_Ticks) / 20.0); Ticks += _bf.m_Ticks; + TotalTicks += _bf.m_TotalTicks; } if (_fitness != Double.MaxValue) From 91a3be178a8e54c39ae3801536e2fc016c86780c Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Fri, 23 Dec 2016 15:15:11 -0500 Subject: [PATCH 13/42] Changed how function options are specified to use a custom class for more flexibility. Added Function.cs and FunctionInst.cs. Added ReadInputAtMemoryStart as an option for individual functions. --- .../AIProgrammer.Fitness.csproj | 1 + .../Concrete/FindQuoteFitness.cs | 4 +- .../Research/ExtractInQuotesExtraFitness.cs | 4 +- .../Research/TrimLeftOfQuoteFitness.cs | 233 ++++++++++++++++++ AIProgrammer.Interpreter/Interpreter.cs | 23 +- AIProgrammer.Types/AIProgrammer.Types.csproj | 3 +- .../{InterpreterOptions.cs => Function.cs} | 22 +- AIProgrammer.Types/FunctionInst.cs | 25 ++ 8 files changed, 296 insertions(+), 19 deletions(-) create mode 100644 AIProgrammer.Fitness/Concrete/Research/TrimLeftOfQuoteFitness.cs rename AIProgrammer.Types/{InterpreterOptions.cs => Function.cs} (68%) create mode 100644 AIProgrammer.Types/FunctionInst.cs diff --git a/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj b/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj index a40bc30..95e3d56 100644 --- a/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj +++ b/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj @@ -54,6 +54,7 @@ + diff --git a/AIProgrammer.Fitness/Concrete/FindQuoteFitness.cs b/AIProgrammer.Fitness/Concrete/FindQuoteFitness.cs index 5eaf02c..88c131e 100644 --- a/AIProgrammer.Fitness/Concrete/FindQuoteFitness.cs +++ b/AIProgrammer.Fitness/Concrete/FindQuoteFitness.cs @@ -119,7 +119,7 @@ protected override double GetFitnessMethod(string program) result = b; _console.Append(b); - }, null, new InterpreterOptions() { FunctionMaxIterationCounts = new int[] { 100 } }); + }, null, new Function[] { new Function() { MaxIterationCount = 100 } }); _bf.Run(_maxIterationCount); } catch @@ -197,7 +197,7 @@ protected override void RunProgramMethod(string program) (b) => { Console.Write(b + " "); - }, null, new InterpreterOptions() { FunctionMaxIterationCounts = new int[] { 100 } }); + }, null, new Function[] { new Function() { MaxIterationCount = 100 } }); bf.Run(_maxIterationCount); } diff --git a/AIProgrammer.Fitness/Concrete/Research/ExtractInQuotesExtraFitness.cs b/AIProgrammer.Fitness/Concrete/Research/ExtractInQuotesExtraFitness.cs index 94a4936..cd26ffb 100644 --- a/AIProgrammer.Fitness/Concrete/Research/ExtractInQuotesExtraFitness.cs +++ b/AIProgrammer.Fitness/Concrete/Research/ExtractInQuotesExtraFitness.cs @@ -131,7 +131,7 @@ protected override double GetFitnessMethod(string program) countBonus += (_bf.m_CurrentInstructionPointer + 1 < program.Length) && program[_bf.m_CurrentInstructionPointer + 1] == '!' ? 50 : 0; aBonus++; } - }, new InterpreterOptions() { FunctionMaxIterationCounts = new int[] { 100 } }); + }, new Function[] { new Function() { MaxIterationCount = 100 } }); _bf.Run(_maxIterationCount); // Give a bonus for using multiple memory registers, supporting diversity. @@ -211,7 +211,7 @@ protected override void RunProgramMethod(string program) (b) => { _console.Append((char)b); - }, null, new InterpreterOptions() { FunctionMaxIterationCounts = new int[] { 100 } }); + }, null, new Function[] { new Function() { MaxIterationCount = 100 } }); bf.Run(_maxIterationCount); } diff --git a/AIProgrammer.Fitness/Concrete/Research/TrimLeftOfQuoteFitness.cs b/AIProgrammer.Fitness/Concrete/Research/TrimLeftOfQuoteFitness.cs new file mode 100644 index 0000000..589926e --- /dev/null +++ b/AIProgrammer.Fitness/Concrete/Research/TrimLeftOfQuoteFitness.cs @@ -0,0 +1,233 @@ +using AIProgrammer.Fitness.Base; +using AIProgrammer.GeneticAlgorithm; +using AIProgrammer.Managers; +using AIProgrammer.Types; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; +using System.Xml; + +namespace AIProgrammer.Fitness.Concrete +{ + /// + /// Removes text to the left of the first quote. Example: one "two" three => "two" three + /// + public class TrimLeftOfQuoteFitness : FitnessBase + { + private static string[] _trainingExamples = { "dot \"inside\" over", "million \"test\" rights", "final \"foresting\" service" }; + private static string[] _trainingResults = new string[] { "\"inside\" over", "\"test\" rights", "\"foresting\" service" }; + + #region Settings + + /// + /// Previously generated BrainPlus code for FindQuoteFitness. + /// The first function returns 0 (to storage) if the current memory value is a quote and a positive value otherwise. + /// The second function removes the first and last character from a string. + /// Note, the function was not actually used in the solution. + /// Another potential useful function: removing first and last character from a string (starts at memory location 0): +>!+!>++>,>$[...+.!,.<>..<]$,>$-,[<.>>,]@ + /// + public override string AppendCode + { + get + { + return "A!,+*+>+*+<[[---$*]]>-,[-@-+,>,<,[$,>+-.!<]<][!+[<[[+$+[[+<[[>$+[[-+$,->!>>$<$[+-,>6,$.-><-[!-[$>,+,,[,!+>!,,[$![!5@"; + } + } + + public override int? GenomeSize + { + get + { + return 15; + } + } + + public override int? MaxGenomeSize + { + get + { + return 100; + } + } + + public override int? ExpandAmount + { + get + { + return 2; + } + } + + public override int? ExpandRate + { + get + { + return 5000; + } + } + + #endregion + + public TrimLeftOfQuoteFitness(GA ga, int maxIterationCount, string appendFunctions = null) + : base(ga, maxIterationCount, appendFunctions) + { + if (_targetFitness == 0) + { + for (int i = 0; i < _trainingExamples.Length; i++) + { + _targetFitness += _trainingResults[i].Length * 256; + _targetFitness += 10; // length fitness + } + } + } + + #region FitnessBase Members + + protected override double GetFitnessMethod(string program) + { + double countBonus = 0; + double penalty = 0; + + for (int i = 0; i < _trainingExamples.Length; i++) + { + try + { + int state = 0; + HashSet memoryHash = new HashSet(); + int aBonus = 0; + + _console.Clear(); + + // Run the program. + _bf = new Interpreter(program, () => + { + if (state < _trainingExamples[i].Length) + { + // Store data in different memory positions, so that function can access the data. + memoryHash.Add(_bf.m_CurrentDataPointer); + + // Send input. + return (byte)_trainingExamples[i][state++]; + } + else + { + // Not ready for input. + return 0; + } + }, + (b) => + { + _console.Append((char)b); + }, + (function) => + { + if (function == 'a' && aBonus < 2 && _bf.IsInsideLoop) + { + countBonus += 50; + countBonus += (_bf.m_CurrentInstructionPointer + 1 < program.Length) && program[_bf.m_CurrentInstructionPointer + 1] == '!' ? 50 : 0; + aBonus++; + } + }, new Function[] { new Function() { MaxIterationCount = 100 } }); + _bf.Run(_maxIterationCount); + + // Give a bonus for using multiple memory registers, supporting diversity. + countBonus += memoryHash.Count * 25; + } + catch + { + } + + _output.Append(_console.ToString()); + _output.Append("|"); + + // Check result. + for (int j = 0; j < _trainingResults[i].Length; j++) + { + if (_console.Length > j) + { + Fitness += 256 - Math.Abs(_console[j] - _trainingResults[i][j]); + } + } + + // Length bonus (percentage of 10). + Fitness += 10 * ((_trainingResults[i].Length - Math.Abs(_console.Length - _trainingResults[i].Length)) / _trainingResults[i].Length); + + // Make the AI wait until a solution is found without the penalty. + Fitness -= penalty; + + // Check for solution. + IsFitnessAchieved(); + + // Bonus for less operations to optimize the code. + countBonus += ((_maxIterationCount - _bf.m_Ticks) / 20.0); + + Ticks += _bf.m_Ticks; + TotalTicks += _bf.m_TotalTicks; + } + + if (_fitness != Double.MaxValue) + { + _fitness = Fitness + countBonus; + } + + return _fitness; + } + + protected override void RunProgramMethod(string program) + { + for (int i = 0; i < 99; i++) + { + // Get input from the user. + Console.WriteLine(); + Console.Write(">: "); + string line = Console.ReadLine(); + int index = 0; + + _console.Clear(); + + try + { + // Run the program. + Interpreter bf = new Interpreter(program, () => + { + byte b; + + // Send the next character. + if (index < line.Length) + { + b = (byte)line[index++]; + } + else + { + b = 0; + } + + return b; + }, + (b) => + { + _console.Append((char)b); + }, null, new Function[] { new Function() { MaxIterationCount = 100 } }); + + bf.Run(_maxIterationCount); + } + catch + { + } + + Console.WriteLine(_console.ToString()); + } + } + + public override string GetConstructorParameters() + { + return _maxIterationCount.ToString(); + } + + #endregion + } +} diff --git a/AIProgrammer.Interpreter/Interpreter.cs b/AIProgrammer.Interpreter/Interpreter.cs index 9924e7a..991dc59 100755 --- a/AIProgrammer.Interpreter/Interpreter.cs +++ b/AIProgrammer.Interpreter/Interpreter.cs @@ -102,7 +102,7 @@ private class FunctionCallObj /// /// The list of functions and their starting instruction index. /// - private readonly Dictionary> m_Functions = new Dictionary>(); + private readonly Dictionary m_Functions = new Dictionary(); /// /// Identifier for next function. Will serve as the instruction to call this function. @@ -147,9 +147,9 @@ private class FunctionCallObj private byte? m_ReturnValue; /// - /// Options for the interpreter. + /// Options for function behavior in the interpreter. /// - private InterpreterOptions m_Options = new InterpreterOptions(); + private Function[] m_Options = null; #endregion @@ -210,7 +210,7 @@ private class FunctionCallObj /// Function to call when output command (.) is executed. /// Callback handler to notify that a function is being executed: callback(instruction). /// Additional interpreter options. - public Interpreter(string programCode, Func input, Action output, Action function = null, InterpreterOptions options = null) + public Interpreter(string programCode, Func input, Action output, Action function = null, Function[] options = null) { // Save the program code this.m_Source = programCode.ToCharArray(); @@ -396,10 +396,13 @@ public Interpreter(string programCode, Func input, Action output, Ac this.m_Storage = 0; this.m_ReturnValue = null; + // Load options for this function. + FunctionInst functionOptions = m_Functions[instruction]; + // Set the function input pointer to the parent's starting memory. Calls for input (,) from within the function will read from parent's memory, each call advances the parent memory cell that gets read from. This allows passing multiple values to a function. // Note, if we set the starting m_FunctionInputPointer to 0, functions will read from the first input position (0). // If we set it to m_DataPointer, functions will read input from the current position in the parent memory (n). This is trickier for the GA to figure out, because it may have to downshift the memory back to 0 before calling the function so that the function gets all input. Setting this to 0 makes it easier for the function to get the input. - this.m_FunctionInputPointer = this.m_Options.ReadFunctionInputAtMemoryStart ? 0 : this.m_DataPointer; + this.m_FunctionInputPointer = functionOptions.ReadInputAtMemoryStart ? 0 : this.m_DataPointer; // Set the data pointer to the functions starting memory address. this.m_DataPointer = _functionSize * (instruction - 96); // each function gets a space of 1000 memory slots. @@ -411,10 +414,10 @@ public Interpreter(string programCode, Func input, Action output, Ac this.m_Ticks = 0; // Set the max iteration count for this function, if one was specified. - this.m_MaxIterationCount = m_Functions[instruction].Value > 0 ? m_Functions[instruction].Value : this.m_MaxIterationCount; + this.m_MaxIterationCount = functionOptions.MaxIterationCount > 0 ? functionOptions.MaxIterationCount : this.m_MaxIterationCount; // Set the instruction pointer to the beginning of the function. - this.m_InstructionPointer = m_Functions[instruction].Key; + this.m_InstructionPointer = functionOptions.InstructionPointer; } }); } @@ -522,11 +525,11 @@ private void ScanFunctions(string source) this.m_InstructionPointer = source.IndexOf('@'); while (this.m_InstructionPointer > -1 && this.m_InstructionPointer < source.Length - 1 && !m_Stop) { - // Extract a max iteration count, if specified. - int maxFunctionIterationCount = m_Options.FunctionMaxIterationCounts != null && m_Options.FunctionMaxIterationCounts.Length > m_Functions.Count ? m_Options.FunctionMaxIterationCounts[m_Functions.Count] : 0; + // Retrieve any settings for this function. + Function functionDetail = m_Options != null && m_Options.Length > m_Functions.Count ? m_Options[m_Functions.Count] : null; // Store the function. - m_Functions.Add(m_NextFunctionCharacter++, new KeyValuePair(this.m_InstructionPointer, maxFunctionIterationCount)); + m_Functions.Add(m_NextFunctionCharacter++, new FunctionInst(this.m_InstructionPointer, functionDetail)); this.m_InstructionPointer = source.IndexOf('@', this.m_InstructionPointer + 1); } diff --git a/AIProgrammer.Types/AIProgrammer.Types.csproj b/AIProgrammer.Types/AIProgrammer.Types.csproj index 403be7d..ed4e896 100644 --- a/AIProgrammer.Types/AIProgrammer.Types.csproj +++ b/AIProgrammer.Types/AIProgrammer.Types.csproj @@ -39,13 +39,14 @@ + - + diff --git a/AIProgrammer.Types/InterpreterOptions.cs b/AIProgrammer.Types/Function.cs similarity index 68% rename from AIProgrammer.Types/InterpreterOptions.cs rename to AIProgrammer.Types/Function.cs index c090b69..91975b4 100644 --- a/AIProgrammer.Types/InterpreterOptions.cs +++ b/AIProgrammer.Types/Function.cs @@ -7,19 +7,33 @@ namespace AIProgrammer.Types { /// - /// Additional interpreter options that can be set in the constructor. + /// Function specific settings. /// - public class InterpreterOptions + public class Function { /// /// Controls how functions read input (,) from parent memory: either at the current memory data pointer or from the start of memory. /// If true, input will be read from position 0 from the parent. Meaning, the first input value that the parent read will be the first input value the function gets, regardless of the parent's current memory data position. This may make it easier for the GA to run the function, since it does not require an exact memory position before calling the function. /// If false (default), input will be read from the current memory data position of the parent. Meaning, if the parent has shifted the memory pointer up 3 slots, the function will begin reading from memory at position 3. /// - public bool ReadFunctionInputAtMemoryStart { get; set; } + public bool ReadInputAtMemoryStart { get; set; } /// /// Custom max iteration counts for functions. /// - public int[] FunctionMaxIterationCounts { get; set; } + public int MaxIterationCount { get; set; } + + public Function() + { + } + + public Function(Function function) + : this() + { + if (function != null) + { + ReadInputAtMemoryStart = function.ReadInputAtMemoryStart; + MaxIterationCount = function.MaxIterationCount; + } + } } } diff --git a/AIProgrammer.Types/FunctionInst.cs b/AIProgrammer.Types/FunctionInst.cs new file mode 100644 index 0000000..c24f4cd --- /dev/null +++ b/AIProgrammer.Types/FunctionInst.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AIProgrammer.Types +{ + /// + /// Function specific settings for the interpreter. Includes the instruction pointer value. + /// + public class FunctionInst : Function + { + /// + /// Starting instruction index for this function, within the program code. + /// + public int InstructionPointer { get; private set; } + + public FunctionInst(int instructionPointer, Function function) + : base(function) + { + InstructionPointer = instructionPointer; + } + } +} From 7d104fb6a622afde8df9ac4be6bca0860fc31a73 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Sat, 24 Dec 2016 10:26:38 -0500 Subject: [PATCH 14/42] Added working solution. --- .../Research/TrimLeftOfQuoteFitness.cs | 2 +- Results/trimleftofquote/history.txt | 3418 +++++++++++++++++ Results/trimleftofquote/program.txt | 1 + Results/trimleftofquote/trimleftofquote-1.png | Bin 0 -> 30837 bytes 4 files changed, 3420 insertions(+), 1 deletion(-) create mode 100644 Results/trimleftofquote/history.txt create mode 100644 Results/trimleftofquote/program.txt create mode 100644 Results/trimleftofquote/trimleftofquote-1.png diff --git a/AIProgrammer.Fitness/Concrete/Research/TrimLeftOfQuoteFitness.cs b/AIProgrammer.Fitness/Concrete/Research/TrimLeftOfQuoteFitness.cs index 589926e..b684f51 100644 --- a/AIProgrammer.Fitness/Concrete/Research/TrimLeftOfQuoteFitness.cs +++ b/AIProgrammer.Fitness/Concrete/Research/TrimLeftOfQuoteFitness.cs @@ -18,7 +18,7 @@ namespace AIProgrammer.Fitness.Concrete /// public class TrimLeftOfQuoteFitness : FitnessBase { - private static string[] _trainingExamples = { "dot \"inside\" over", "million \"test\" rights", "final \"foresting\" service" }; + private static string[] _trainingExamples = { "a \"inside\" over", "xy \"test\" rights", "ca6 \"foresting\" service" }; private static string[] _trainingResults = new string[] { "\"inside\" over", "\"test\" rights", "\"foresting\" service" }; #region Settings diff --git a/Results/trimleftofquote/history.txt b/Results/trimleftofquote/history.txt new file mode 100644 index 0000000..01c82f1 --- /dev/null +++ b/Results/trimleftofquote/history.txt @@ -0,0 +1,3418 @@ +12/23/2016 8:54:53 PM,4861.6,0,0 +12/23/2016 8:54:54 PM,12726.85,0,100 +12/23/2016 8:54:55 PM,12729.1,0,200 +12/23/2016 8:54:56 PM,12806.35,0,300 +12/23/2016 8:54:57 PM,12881.35,0,400 +12/23/2016 8:54:57 PM,12881.35,0,500 +12/23/2016 8:54:59 PM,12881.35,0,600 +12/23/2016 8:55:00 PM,12881.35,0,700 +12/23/2016 8:55:01 PM,12961.8,0,800 +12/23/2016 8:55:01 PM,12961.8,0,900 +12/23/2016 8:55:02 PM,13036.8,0,1000 +12/23/2016 8:55:04 PM,13036.8,0,1100 +12/23/2016 8:55:05 PM,13036.8,0,1200 +12/23/2016 8:55:05 PM,13036.8,0,1300 +12/23/2016 8:55:06 PM,13036.8,0,1400 +12/23/2016 8:55:07 PM,13036.8,0,1500 +12/23/2016 8:55:08 PM,13036.8,0,1600 +12/23/2016 8:55:09 PM,13036.8,0,1700 +12/23/2016 8:55:10 PM,13036.8,0,1800 +12/23/2016 8:55:11 PM,13036.8,0,1900 +12/23/2016 8:55:12 PM,13111.8,0,2000 +12/23/2016 8:55:13 PM,13111.8,0,2100 +12/23/2016 8:55:14 PM,13111.8,0,2200 +12/23/2016 8:55:15 PM,13111.8,0,2300 +12/23/2016 8:55:15 PM,13111.8,0,2400 +12/23/2016 8:55:16 PM,13111.8,0,2500 +12/23/2016 8:55:17 PM,13111.8,0,2600 +12/23/2016 8:55:18 PM,13111.8,0,2700 +12/23/2016 8:55:19 PM,13111.8,0,2800 +12/23/2016 8:55:20 PM,13111.8,0,2900 +12/23/2016 8:55:21 PM,13111.8,0,3000 +12/23/2016 8:55:22 PM,13111.8,0,3100 +12/23/2016 8:55:22 PM,13111.8,0,3200 +12/23/2016 8:55:23 PM,13111.8,0,3300 +12/23/2016 8:55:24 PM,13111.8,0,3400 +12/23/2016 8:55:25 PM,13111.8,0,3500 +12/23/2016 8:55:26 PM,13111.8,0,3600 +12/23/2016 8:55:26 PM,13111.8,0,3700 +12/23/2016 8:55:28 PM,13111.8,0,3800 +12/23/2016 8:55:28 PM,13111.8,0,3900 +12/23/2016 8:55:29 PM,13111.8,0,4000 +12/23/2016 8:55:30 PM,13111.8,0,4100 +12/23/2016 8:55:31 PM,13111.8,0,4200 +12/23/2016 8:55:32 PM,13111.8,0,4300 +12/23/2016 8:55:33 PM,13111.8,0,4400 +12/23/2016 8:55:33 PM,13111.8,0,4500 +12/23/2016 8:55:34 PM,13111.8,0,4600 +12/23/2016 8:55:35 PM,13111.8,0,4700 +12/23/2016 8:55:36 PM,13111.8,0,4800 +12/23/2016 8:55:37 PM,13111.8,0,4900 +12/23/2016 8:55:38 PM,13111.8,0,5000 +12/23/2016 8:55:39 PM,13111.5,0,5100 +12/23/2016 8:55:40 PM,13111.5,0,5200 +12/23/2016 8:55:40 PM,13111.5,0,5300 +12/23/2016 8:55:41 PM,13111.5,0,5400 +12/23/2016 8:55:42 PM,13111.5,0,5500 +12/23/2016 8:55:43 PM,13111.5,0,5600 +12/23/2016 8:55:44 PM,13111.5,0,5700 +12/23/2016 8:55:45 PM,13111.5,0,5800 +12/23/2016 8:55:46 PM,13111.5,0,5900 +12/23/2016 8:55:47 PM,13111.5,0,6000 +12/23/2016 8:55:48 PM,13111.5,0,6100 +12/23/2016 8:55:49 PM,13334.3,0,6200 +12/23/2016 8:55:52 PM,13335.4,0,6300 +12/23/2016 8:55:54 PM,13335.4,0,6400 +12/23/2016 8:55:56 PM,13335.4,0,6500 +12/23/2016 8:55:58 PM,13335.4,0,6600 +12/23/2016 8:56:00 PM,13335.4,0,6700 +12/23/2016 8:56:04 PM,13335.4,0,6800 +12/23/2016 8:56:07 PM,13335.4,0,6900 +12/23/2016 8:56:11 PM,13335.4,0,7000 +12/23/2016 8:56:13 PM,13335.4,0,7100 +12/23/2016 8:56:16 PM,13335.4,0,7200 +12/23/2016 8:56:18 PM,13335.4,0,7300 +12/23/2016 8:56:23 PM,13634.3,0,7400 +12/23/2016 8:56:25 PM,13634.3,0,7500 +12/23/2016 8:56:27 PM,13634.3,0,7600 +12/23/2016 8:56:29 PM,13634.3,0,7700 +12/23/2016 8:56:38 PM,13709.3,0,7800 +12/23/2016 8:56:41 PM,13709.3,0,7900 +12/23/2016 8:56:43 PM,13709.3,0,8000 +12/23/2016 8:56:46 PM,13709.3,0,8100 +12/23/2016 8:56:47 PM,13709.3,0,8200 +12/23/2016 8:56:50 PM,13709.3,0,8300 +12/23/2016 8:56:52 PM,13709.3,0,8400 +12/23/2016 8:56:55 PM,13709.3,0,8500 +12/23/2016 8:56:59 PM,13709.3,0,8600 +12/23/2016 8:57:03 PM,13709.3,0,8700 +12/23/2016 8:57:07 PM,13709.3,0,8800 +12/23/2016 8:57:09 PM,13709.3,0,8900 +12/23/2016 8:57:13 PM,13709.3,0,9000 +12/23/2016 8:57:15 PM,13709.3,0,9100 +12/23/2016 8:57:18 PM,13709.3,0,9200 +12/23/2016 8:57:22 PM,13709.3,0,9300 +12/23/2016 8:57:25 PM,13709.3,0,9400 +12/23/2016 8:57:28 PM,13709.3,0,9500 +12/23/2016 8:57:30 PM,13709.3,0,9600 +12/23/2016 8:57:32 PM,13709.3,0,9700 +12/23/2016 8:57:37 PM,13709.3,0,9800 +12/23/2016 8:57:42 PM,13709.3,0,9900 +12/23/2016 8:57:45 PM,13709.3,0,10000 +12/23/2016 8:57:48 PM,13709,0,10100 +12/23/2016 8:57:50 PM,13709,0,10200 +12/23/2016 8:57:52 PM,13709,0,10300 +12/23/2016 8:57:55 PM,13709,0,10400 +12/23/2016 8:57:56 PM,13709,0,10500 +12/23/2016 8:57:58 PM,13709,0,10600 +12/23/2016 8:58:00 PM,13709,0,10700 +12/23/2016 8:58:03 PM,13709,0,10800 +12/23/2016 8:58:06 PM,13709,0,10900 +12/23/2016 8:58:08 PM,13709,0,11000 +12/23/2016 8:58:12 PM,13709,0,11100 +12/23/2016 8:58:14 PM,13709,0,11200 +12/23/2016 8:58:17 PM,13709,0,11300 +12/23/2016 8:58:20 PM,13709,0,11400 +12/23/2016 8:58:24 PM,13709,0,11500 +12/23/2016 8:58:27 PM,13709,0,11600 +12/23/2016 8:58:28 PM,13709,0,11700 +12/23/2016 8:58:31 PM,13709,0,11800 +12/23/2016 8:58:33 PM,13709,0,11900 +12/23/2016 8:58:35 PM,13709,0,12000 +12/23/2016 8:58:37 PM,13709,0,12100 +12/23/2016 8:58:38 PM,13709,0,12200 +12/23/2016 8:58:42 PM,13709,0,12300 +12/23/2016 8:58:46 PM,13709,0,12400 +12/23/2016 8:58:48 PM,13709,0,12500 +12/23/2016 8:58:51 PM,13709,0,12600 +12/23/2016 8:58:53 PM,13709,0,12700 +12/23/2016 8:58:55 PM,13709,0,12800 +12/23/2016 8:58:57 PM,13709,0,12900 +12/23/2016 8:59:00 PM,13709,0,13000 +12/23/2016 8:59:03 PM,13709,0,13100 +12/23/2016 8:59:07 PM,13709,0,13200 +12/23/2016 8:59:10 PM,13709,0,13300 +12/23/2016 8:59:12 PM,13709,0,13400 +12/23/2016 8:59:16 PM,13709,0,13500 +12/23/2016 8:59:19 PM,13709,0,13600 +12/23/2016 8:59:25 PM,13709,0,13700 +12/23/2016 8:59:29 PM,13709,0,13800 +12/23/2016 8:59:31 PM,13709,0,13900 +12/23/2016 8:59:34 PM,13709,0,14000 +12/23/2016 8:59:39 PM,13709,0,14100 +12/23/2016 8:59:42 PM,13709,0,14200 +12/23/2016 8:59:45 PM,13709,0,14300 +12/23/2016 8:59:47 PM,13709,0,14400 +12/23/2016 8:59:49 PM,13709,0,14500 +12/23/2016 8:59:52 PM,13709,0,14600 +12/23/2016 8:59:55 PM,13709,0,14700 +12/23/2016 8:59:57 PM,13709,0,14800 +12/23/2016 8:59:59 PM,13709,0,14900 +12/23/2016 9:00:03 PM,13709,0,15000 +12/23/2016 9:00:09 PM,13708.7,0,15100 +12/23/2016 9:00:14 PM,13708.7,0,15200 +12/23/2016 9:00:18 PM,13708.7,0,15300 +12/23/2016 9:00:21 PM,13708.7,0,15400 +12/23/2016 9:00:24 PM,13708.7,0,15500 +12/23/2016 9:00:26 PM,13708.7,0,15600 +12/23/2016 9:00:31 PM,13708.7,0,15700 +12/23/2016 9:00:35 PM,13708.7,0,15800 +12/23/2016 9:00:38 PM,13708.7,0,15900 +12/23/2016 9:00:39 PM,13708.7,0,16000 +12/23/2016 9:00:42 PM,13708.7,0,16100 +12/23/2016 9:00:45 PM,13708.7,0,16200 +12/23/2016 9:00:49 PM,13708.7,0,16300 +12/23/2016 9:00:52 PM,13708.7,0,16400 +12/23/2016 9:00:54 PM,13708.7,0,16500 +12/23/2016 9:00:57 PM,13708.7,0,16600 +12/23/2016 9:00:59 PM,13708.7,0,16700 +12/23/2016 9:01:06 PM,13708.7,0,16800 +12/23/2016 9:01:09 PM,13708.7,0,16900 +12/23/2016 9:01:11 PM,13708.7,0,17000 +12/23/2016 9:01:14 PM,13708.7,0,17100 +12/23/2016 9:01:18 PM,13708.7,0,17200 +12/23/2016 9:01:22 PM,13708.7,0,17300 +12/23/2016 9:01:24 PM,13708.7,0,17400 +12/23/2016 9:01:26 PM,13708.7,0,17500 +12/23/2016 9:01:29 PM,13708.7,0,17600 +12/23/2016 9:01:32 PM,13708.7,0,17700 +12/23/2016 9:01:36 PM,13708.7,0,17800 +12/23/2016 9:01:41 PM,13708.7,0,17900 +12/23/2016 9:01:43 PM,13708.7,0,18000 +12/23/2016 9:01:46 PM,13708.7,0,18100 +12/23/2016 9:01:51 PM,13708.7,0,18200 +12/23/2016 9:01:54 PM,13708.7,0,18300 +12/23/2016 9:01:57 PM,13708.7,0,18400 +12/23/2016 9:02:02 PM,13708.7,0,18500 +12/23/2016 9:02:03 PM,13708.7,0,18600 +12/23/2016 9:02:05 PM,13708.7,0,18700 +12/23/2016 9:02:07 PM,13708.7,0,18800 +12/23/2016 9:02:09 PM,13708.7,0,18900 +12/23/2016 9:02:14 PM,13708.7,0,19000 +12/23/2016 9:02:16 PM,13708.7,0,19100 +12/23/2016 9:02:20 PM,13708.7,0,19200 +12/23/2016 9:02:22 PM,13708.7,0,19300 +12/23/2016 9:02:25 PM,13708.7,0,19400 +12/23/2016 9:02:27 PM,13708.7,0,19500 +12/23/2016 9:02:30 PM,13708.7,0,19600 +12/23/2016 9:02:33 PM,13708.7,0,19700 +12/23/2016 9:02:35 PM,13708.7,0,19800 +12/23/2016 9:02:37 PM,13708.7,0,19900 +12/23/2016 9:02:40 PM,13708.7,0,20000 +12/23/2016 9:02:43 PM,13708.4,0,20100 +12/23/2016 9:02:46 PM,13708.4,0,20200 +12/23/2016 9:02:50 PM,13708.4,0,20300 +12/23/2016 9:02:53 PM,13708.4,0,20400 +12/23/2016 9:02:56 PM,13708.4,0,20500 +12/23/2016 9:03:00 PM,13708.4,0,20600 +12/23/2016 9:03:04 PM,13708.4,0,20700 +12/23/2016 9:03:10 PM,13708.4,0,20800 +12/23/2016 9:03:12 PM,13708.4,0,20900 +12/23/2016 9:03:16 PM,13708.4,0,21000 +12/23/2016 9:03:19 PM,13708.4,0,21100 +12/23/2016 9:03:21 PM,13708.4,0,21200 +12/23/2016 9:03:23 PM,13708.4,0,21300 +12/23/2016 9:03:25 PM,13708.4,0,21400 +12/23/2016 9:03:28 PM,13708.4,0,21500 +12/23/2016 9:03:32 PM,13708.4,0,21600 +12/23/2016 9:03:37 PM,13708.4,0,21700 +12/23/2016 9:03:40 PM,13708.4,0,21800 +12/23/2016 9:03:43 PM,13708.4,0,21900 +12/23/2016 9:03:45 PM,13708.4,0,22000 +12/23/2016 9:03:49 PM,13708.4,0,22100 +12/23/2016 9:03:51 PM,13708.4,0,22200 +12/23/2016 9:03:53 PM,13708.4,0,22300 +12/23/2016 9:03:57 PM,13708.4,0,22400 +12/23/2016 9:03:59 PM,13708.4,0,22500 +12/23/2016 9:04:03 PM,13708.4,0,22600 +12/23/2016 9:04:07 PM,13708.4,0,22700 +12/23/2016 9:04:10 PM,13708.4,0,22800 +12/23/2016 9:04:14 PM,13708.4,0,22900 +12/23/2016 9:04:17 PM,13708.4,0,23000 +12/23/2016 9:04:20 PM,13708.4,0,23100 +12/23/2016 9:04:23 PM,13708.4,0,23200 +12/23/2016 9:04:27 PM,13708.4,0,23300 +12/23/2016 9:04:32 PM,13708.4,0,23400 +12/23/2016 9:04:35 PM,13708.4,0,23500 +12/23/2016 9:04:39 PM,13708.4,0,23600 +12/23/2016 9:04:41 PM,13708.4,0,23700 +12/23/2016 9:04:43 PM,13708.4,0,23800 +12/23/2016 9:04:47 PM,13708.4,0,23900 +12/23/2016 9:04:50 PM,13708.4,0,24000 +12/23/2016 9:04:54 PM,13708.4,0,24100 +12/23/2016 9:04:56 PM,13708.4,0,24200 +12/23/2016 9:05:04 PM,13708.4,0,24300 +12/23/2016 9:05:06 PM,13708.4,0,24400 +12/23/2016 9:05:12 PM,13708.4,0,24500 +12/23/2016 9:05:15 PM,13708.4,0,24600 +12/23/2016 9:05:19 PM,13708.4,0,24700 +12/23/2016 9:05:21 PM,13708.4,0,24800 +12/23/2016 9:05:25 PM,13708.4,0,24900 +12/23/2016 9:05:28 PM,13708.4,0,25000 +12/23/2016 9:05:30 PM,13708.1,0,25100 +12/23/2016 9:05:33 PM,13718.3,0,25200 +12/23/2016 9:05:35 PM,13718.3,0,25300 +12/23/2016 9:05:36 PM,13718.3,0,25400 +12/23/2016 9:05:38 PM,13718.3,0,25500 +12/23/2016 9:05:40 PM,13718.3,0,25600 +12/23/2016 9:05:41 PM,13718.3,0,25700 +12/23/2016 9:05:43 PM,13718.3,0,25800 +12/23/2016 9:05:46 PM,13718.3,0,25900 +12/23/2016 9:05:47 PM,13718.3,0,26000 +12/23/2016 9:05:49 PM,13718.3,0,26100 +12/23/2016 9:05:51 PM,13718.3,0,26200 +12/23/2016 9:05:54 PM,13718.3,0,26300 +12/23/2016 9:05:56 PM,13718.3,0,26400 +12/23/2016 9:05:58 PM,13718.3,0,26500 +12/23/2016 9:06:00 PM,13718.3,0,26600 +12/23/2016 9:06:02 PM,13718.3,0,26700 +12/23/2016 9:06:04 PM,13718.3,0,26800 +12/23/2016 9:06:06 PM,13718.3,0,26900 +12/23/2016 9:06:08 PM,13718.3,0,27000 +12/23/2016 9:06:11 PM,13718.3,0,27100 +12/23/2016 9:06:14 PM,13718.3,0,27200 +12/23/2016 9:06:16 PM,13718.3,0,27300 +12/23/2016 9:06:18 PM,13718.3,0,27400 +12/23/2016 9:06:20 PM,13733.3,0,27500 +12/23/2016 9:06:22 PM,13733.3,0,27600 +12/23/2016 9:06:24 PM,13733.3,0,27700 +12/23/2016 9:06:27 PM,13733.3,0,27800 +12/23/2016 9:06:29 PM,13733.3,0,27900 +12/23/2016 9:06:32 PM,13733.3,0,28000 +12/23/2016 9:06:35 PM,13733.3,0,28100 +12/23/2016 9:06:38 PM,13733.3,0,28200 +12/23/2016 9:06:41 PM,13733.3,0,28300 +12/23/2016 9:06:43 PM,13733.3,0,28400 +12/23/2016 9:06:46 PM,13733.3,0,28500 +12/23/2016 9:06:48 PM,13733.3,0,28600 +12/23/2016 9:06:50 PM,13733.3,0,28700 +12/23/2016 9:06:52 PM,13733.3,0,28800 +12/23/2016 9:06:54 PM,13733.3,0,28900 +12/23/2016 9:06:57 PM,13733.3,0,29000 +12/23/2016 9:06:59 PM,13733.3,0,29100 +12/23/2016 9:07:05 PM,13733.3,0,29200 +12/23/2016 9:07:07 PM,13733.3,0,29300 +12/23/2016 9:07:09 PM,13733.3,0,29400 +12/23/2016 9:07:12 PM,13733.3,0,29500 +12/23/2016 9:07:14 PM,13733.3,0,29600 +12/23/2016 9:07:16 PM,13733.3,0,29700 +12/23/2016 9:07:19 PM,13733.3,0,29800 +12/23/2016 9:07:21 PM,13733.3,0,29900 +12/23/2016 9:07:23 PM,13733.3,0,30000 +12/23/2016 9:07:26 PM,13733,0,30100 +12/23/2016 9:07:28 PM,13733,0,30200 +12/23/2016 9:07:30 PM,13733,0,30300 +12/23/2016 9:07:33 PM,13733,0,30400 +12/23/2016 9:07:34 PM,13736,0,30500 +12/23/2016 9:07:36 PM,13736,0,30600 +12/23/2016 9:07:38 PM,13736,0,30700 +12/23/2016 9:07:40 PM,13736,0,30800 +12/23/2016 9:07:43 PM,13736,0,30900 +12/23/2016 9:07:45 PM,13736,0,31000 +12/23/2016 9:07:47 PM,13736,0,31100 +12/23/2016 9:07:49 PM,13736,0,31200 +12/23/2016 9:07:51 PM,13736,0,31300 +12/23/2016 9:07:53 PM,13736,0,31400 +12/23/2016 9:07:55 PM,13736,0,31500 +12/23/2016 9:07:57 PM,13736,0,31600 +12/23/2016 9:07:59 PM,13736,0,31700 +12/23/2016 9:08:01 PM,13736,0,31800 +12/23/2016 9:08:04 PM,13736,0,31900 +12/23/2016 9:08:06 PM,13736,0,32000 +12/23/2016 9:08:09 PM,13736,0,32100 +12/23/2016 9:08:11 PM,13736,0,32200 +12/23/2016 9:08:14 PM,13736,0,32300 +12/23/2016 9:08:16 PM,13736,0,32400 +12/23/2016 9:08:18 PM,13736,0,32500 +12/23/2016 9:08:21 PM,13736,0,32600 +12/23/2016 9:08:23 PM,13736,0,32700 +12/23/2016 9:08:25 PM,13736,0,32800 +12/23/2016 9:08:28 PM,13736,0,32900 +12/23/2016 9:08:31 PM,13736,0,33000 +12/23/2016 9:08:34 PM,13736,0,33100 +12/23/2016 9:08:36 PM,13736,0,33200 +12/23/2016 9:08:38 PM,13736,0,33300 +12/23/2016 9:08:41 PM,13736,0,33400 +12/23/2016 9:08:44 PM,13736,0,33500 +12/23/2016 9:08:46 PM,13736,0,33600 +12/23/2016 9:08:48 PM,13736,0,33700 +12/23/2016 9:08:49 PM,13736,0,33800 +12/23/2016 9:08:51 PM,13736,0,33900 +12/23/2016 9:08:53 PM,13736,0,34000 +12/23/2016 9:08:55 PM,13736,0,34100 +12/23/2016 9:08:58 PM,13736,0,34200 +12/23/2016 9:08:59 PM,13736,0,34300 +12/23/2016 9:09:01 PM,13736,0,34400 +12/23/2016 9:09:03 PM,13736,0,34500 +12/23/2016 9:09:05 PM,13736,0,34600 +12/23/2016 9:09:08 PM,13736,0,34700 +12/23/2016 9:09:09 PM,13736,0,34800 +12/23/2016 9:09:13 PM,13736,0,34900 +12/23/2016 9:09:15 PM,13736,0,35000 +12/23/2016 9:09:17 PM,13735.7,0,35100 +12/23/2016 9:09:20 PM,13735.7,0,35200 +12/23/2016 9:09:22 PM,13735.7,0,35300 +12/23/2016 9:09:24 PM,13735.7,0,35400 +12/23/2016 9:09:27 PM,13735.7,0,35500 +12/23/2016 9:09:28 PM,13735.7,0,35600 +12/23/2016 9:09:30 PM,13735.7,0,35700 +12/23/2016 9:09:32 PM,13735.7,0,35800 +12/23/2016 9:09:33 PM,13735.7,0,35900 +12/23/2016 9:09:36 PM,13735.7,0,36000 +12/23/2016 9:09:38 PM,13735.7,0,36100 +12/23/2016 9:09:40 PM,13735.7,0,36200 +12/23/2016 9:09:42 PM,13735.7,0,36300 +12/23/2016 9:09:46 PM,13735.7,0,36400 +12/23/2016 9:09:48 PM,13735.7,0,36500 +12/23/2016 9:09:50 PM,13735.7,0,36600 +12/23/2016 9:09:52 PM,13735.7,0,36700 +12/23/2016 9:09:54 PM,13735.7,0,36800 +12/23/2016 9:09:56 PM,13735.7,0,36900 +12/23/2016 9:09:59 PM,13735.7,0,37000 +12/23/2016 9:10:00 PM,13735.7,0,37100 +12/23/2016 9:10:03 PM,13735.7,0,37200 +12/23/2016 9:10:06 PM,13735.7,0,37300 +12/23/2016 9:10:08 PM,13735.7,0,37400 +12/23/2016 9:10:10 PM,13735.7,0,37500 +12/23/2016 9:10:12 PM,13735.7,0,37600 +12/23/2016 9:10:15 PM,13735.7,0,37700 +12/23/2016 9:10:18 PM,13735.7,0,37800 +12/23/2016 9:10:21 PM,13735.7,0,37900 +12/23/2016 9:10:23 PM,13735.7,0,38000 +12/23/2016 9:10:24 PM,13735.7,0,38100 +12/23/2016 9:10:27 PM,13735.7,0,38200 +12/23/2016 9:10:28 PM,13735.7,0,38300 +12/23/2016 9:10:30 PM,13735.7,0,38400 +12/23/2016 9:10:31 PM,13735.7,0,38500 +12/23/2016 9:10:33 PM,13735.7,0,38600 +12/23/2016 9:10:35 PM,13735.7,0,38700 +12/23/2016 9:10:36 PM,13735.7,0,38800 +12/23/2016 9:10:38 PM,13735.7,0,38900 +12/23/2016 9:10:40 PM,13735.7,0,39000 +12/23/2016 9:10:42 PM,13735.7,0,39100 +12/23/2016 9:10:44 PM,13735.7,0,39200 +12/23/2016 9:10:47 PM,13735.7,0,39300 +12/23/2016 9:10:50 PM,13735.7,0,39400 +12/23/2016 9:10:52 PM,13735.7,0,39500 +12/23/2016 9:10:55 PM,13735.7,0,39600 +12/23/2016 9:10:57 PM,13735.7,0,39700 +12/23/2016 9:10:58 PM,13735.7,0,39800 +12/23/2016 9:11:00 PM,13735.7,0,39900 +12/23/2016 9:11:02 PM,13735.7,0,40000 +12/23/2016 9:11:04 PM,13735.4,0,40100 +12/23/2016 9:11:06 PM,13735.4,0,40200 +12/23/2016 9:11:08 PM,13735.4,0,40300 +12/23/2016 9:11:09 PM,13735.4,0,40400 +12/23/2016 9:11:12 PM,13735.4,0,40500 +12/23/2016 9:11:15 PM,13735.4,0,40600 +12/23/2016 9:11:17 PM,13735.4,0,40700 +12/23/2016 9:11:18 PM,13735.4,0,40800 +12/23/2016 9:11:20 PM,13735.4,0,40900 +12/23/2016 9:11:22 PM,13735.4,0,41000 +12/23/2016 9:11:24 PM,13735.4,0,41100 +12/23/2016 9:11:26 PM,13735.4,0,41200 +12/23/2016 9:11:27 PM,13735.4,0,41300 +12/23/2016 9:11:29 PM,13735.4,0,41400 +12/23/2016 9:11:31 PM,13735.4,0,41500 +12/23/2016 9:11:33 PM,13735.4,0,41600 +12/23/2016 9:11:37 PM,13735.4,0,41700 +12/23/2016 9:11:40 PM,13735.4,0,41800 +12/23/2016 9:11:42 PM,13735.4,0,41900 +12/23/2016 9:11:45 PM,13735.4,0,42000 +12/23/2016 9:11:48 PM,13735.4,0,42100 +12/23/2016 9:11:51 PM,13735.4,0,42200 +12/23/2016 9:11:53 PM,13735.4,0,42300 +12/23/2016 9:11:55 PM,13735.4,0,42400 +12/23/2016 9:11:58 PM,13735.4,0,42500 +12/23/2016 9:11:59 PM,13735.4,0,42600 +12/23/2016 9:12:03 PM,13735.4,0,42700 +12/23/2016 9:12:05 PM,13735.4,0,42800 +12/23/2016 9:12:06 PM,13735.4,0,42900 +12/23/2016 9:12:08 PM,13735.4,0,43000 +12/23/2016 9:12:12 PM,13735.4,0,43100 +12/23/2016 9:12:15 PM,13735.4,0,43200 +12/23/2016 9:12:18 PM,13735.4,0,43300 +12/23/2016 9:12:20 PM,13735.4,0,43400 +12/23/2016 9:12:22 PM,13735.4,0,43500 +12/23/2016 9:12:24 PM,13735.4,0,43600 +12/23/2016 9:12:27 PM,13735.4,0,43700 +12/23/2016 9:12:29 PM,13735.4,0,43800 +12/23/2016 9:12:30 PM,13735.4,0,43900 +12/23/2016 9:12:32 PM,13735.4,0,44000 +12/23/2016 9:12:35 PM,13735.4,0,44100 +12/23/2016 9:12:36 PM,13735.4,0,44200 +12/23/2016 9:12:38 PM,13735.4,0,44300 +12/23/2016 9:12:40 PM,13735.4,0,44400 +12/23/2016 9:12:43 PM,13735.4,0,44500 +12/23/2016 9:12:45 PM,13735.4,0,44600 +12/23/2016 9:12:47 PM,13735.4,0,44700 +12/23/2016 9:12:49 PM,13735.4,0,44800 +12/23/2016 9:12:51 PM,13735.4,0,44900 +12/23/2016 9:12:53 PM,13735.4,0,45000 +12/23/2016 9:12:55 PM,13735.1,0,45100 +12/23/2016 9:12:57 PM,13735.1,0,45200 +12/23/2016 9:12:59 PM,13735.1,0,45300 +12/23/2016 9:13:01 PM,13735.1,0,45400 +12/23/2016 9:13:05 PM,13735.1,0,45500 +12/23/2016 9:13:08 PM,13735.1,0,45600 +12/23/2016 9:13:10 PM,13735.1,0,45700 +12/23/2016 9:13:12 PM,13735.1,0,45800 +12/23/2016 9:13:13 PM,13735.1,0,45900 +12/23/2016 9:13:15 PM,13735.1,0,46000 +12/23/2016 9:13:17 PM,13735.1,0,46100 +12/23/2016 9:13:20 PM,13735.1,0,46200 +12/23/2016 9:13:23 PM,13735.1,0,46300 +12/23/2016 9:13:26 PM,13735.1,0,46400 +12/23/2016 9:13:29 PM,13735.1,0,46500 +12/23/2016 9:13:32 PM,13735.1,0,46600 +12/23/2016 9:13:35 PM,13735.1,0,46700 +12/23/2016 9:13:37 PM,13735.1,0,46800 +12/23/2016 9:13:39 PM,13735.1,0,46900 +12/23/2016 9:13:41 PM,13735.1,0,47000 +12/23/2016 9:13:44 PM,13735.1,0,47100 +12/23/2016 9:13:47 PM,13735.1,0,47200 +12/23/2016 9:13:49 PM,13735.1,0,47300 +12/23/2016 9:13:51 PM,13735.1,0,47400 +12/23/2016 9:13:53 PM,13735.1,0,47500 +12/23/2016 9:13:55 PM,13735.1,0,47600 +12/23/2016 9:13:59 PM,13735.1,0,47700 +12/23/2016 9:14:01 PM,13735.1,0,47800 +12/23/2016 9:14:03 PM,13735.1,0,47900 +12/23/2016 9:14:05 PM,13735.55,0,48000 +12/23/2016 9:14:07 PM,13735.55,0,48100 +12/23/2016 9:14:08 PM,13735.55,0,48200 +12/23/2016 9:14:10 PM,13735.55,0,48300 +12/23/2016 9:14:12 PM,13735.55,0,48400 +12/23/2016 9:14:14 PM,13735.55,0,48500 +12/23/2016 9:14:17 PM,13735.55,0,48600 +12/23/2016 9:14:20 PM,13735.55,0,48700 +12/23/2016 9:14:21 PM,13735.55,0,48800 +12/23/2016 9:14:24 PM,13735.55,0,48900 +12/23/2016 9:14:26 PM,13735.55,0,49000 +12/23/2016 9:14:28 PM,13735.55,0,49100 +12/23/2016 9:14:30 PM,13735.55,0,49200 +12/23/2016 9:14:33 PM,13735.55,0,49300 +12/23/2016 9:14:36 PM,13735.55,0,49400 +12/23/2016 9:14:38 PM,13735.55,0,49500 +12/23/2016 9:14:41 PM,13735.55,0,49600 +12/23/2016 9:14:43 PM,13735.55,0,49700 +12/23/2016 9:14:45 PM,13735.55,0,49800 +12/23/2016 9:14:47 PM,13735.55,0,49900 +12/23/2016 9:14:51 PM,13735.55,0,50000 +12/23/2016 9:14:54 PM,13733.15,0,50100 +12/23/2016 9:14:56 PM,13733.7,0,50200 +12/23/2016 9:14:57 PM,13733.7,0,50300 +12/23/2016 9:15:00 PM,13733.7,0,50400 +12/23/2016 9:15:02 PM,13734.25,0,50500 +12/23/2016 9:15:04 PM,13734.25,0,50600 +12/23/2016 9:15:07 PM,13734.8,0,50700 +12/23/2016 9:15:09 PM,13734.8,0,50800 +12/23/2016 9:15:12 PM,13734.8,0,50900 +12/23/2016 9:15:14 PM,13734.8,0,51000 +12/23/2016 9:15:16 PM,13734.8,0,51100 +12/23/2016 9:15:19 PM,13734.8,0,51200 +12/23/2016 9:15:21 PM,13734.8,0,51300 +12/23/2016 9:15:24 PM,13734.8,0,51400 +12/23/2016 9:15:26 PM,13734.8,0,51500 +12/23/2016 9:15:28 PM,13734.8,0,51600 +12/23/2016 9:15:31 PM,13734.8,0,51700 +12/23/2016 9:15:33 PM,13734.8,0,51800 +12/23/2016 9:15:36 PM,13734.8,0,51900 +12/23/2016 9:15:37 PM,13734.8,0,52000 +12/23/2016 9:15:40 PM,13734.8,0,52100 +12/23/2016 9:15:41 PM,13734.8,0,52200 +12/23/2016 9:15:43 PM,13734.8,0,52300 +12/23/2016 9:15:46 PM,13734.8,0,52400 +12/23/2016 9:15:48 PM,13734.8,0,52500 +12/23/2016 9:15:50 PM,13734.8,0,52600 +12/23/2016 9:15:51 PM,13734.8,0,52700 +12/23/2016 9:15:53 PM,13734.8,0,52800 +12/23/2016 9:15:55 PM,13734.8,0,52900 +12/23/2016 9:15:57 PM,13734.8,0,53000 +12/23/2016 9:16:00 PM,13734.8,0,53100 +12/23/2016 9:16:02 PM,13734.8,0,53200 +12/23/2016 9:16:04 PM,13734.8,0,53300 +12/23/2016 9:16:07 PM,13734.8,0,53400 +12/23/2016 9:16:10 PM,13734.8,0,53500 +12/23/2016 9:16:11 PM,13734.8,0,53600 +12/23/2016 9:16:13 PM,13734.8,0,53700 +12/23/2016 9:16:15 PM,13734.8,0,53800 +12/23/2016 9:16:17 PM,13734.8,0,53900 +12/23/2016 9:16:19 PM,13734.8,0,54000 +12/23/2016 9:16:21 PM,13735.25,0,54100 +12/23/2016 9:16:23 PM,13735.25,0,54200 +12/23/2016 9:16:26 PM,13735.25,0,54300 +12/23/2016 9:16:28 PM,13735.25,0,54400 +12/23/2016 9:16:30 PM,13735.25,0,54500 +12/23/2016 9:16:32 PM,13735.25,0,54600 +12/23/2016 9:16:34 PM,13735.25,0,54700 +12/23/2016 9:16:37 PM,13735.25,0,54800 +12/23/2016 9:16:40 PM,13735.25,0,54900 +12/23/2016 9:16:42 PM,13735.25,0,55000 +12/23/2016 9:16:45 PM,13734.95,0,55100 +12/23/2016 9:16:48 PM,13734.95,0,55200 +12/23/2016 9:16:50 PM,13734.95,0,55300 +12/23/2016 9:16:52 PM,13734.95,0,55400 +12/23/2016 9:16:54 PM,13734.95,0,55500 +12/23/2016 9:16:56 PM,13734.95,0,55600 +12/23/2016 9:16:58 PM,13734.95,0,55700 +12/23/2016 9:17:00 PM,13734.95,0,55800 +12/23/2016 9:17:02 PM,13734.95,0,55900 +12/23/2016 9:17:05 PM,13734.95,0,56000 +12/23/2016 9:17:07 PM,13734.95,0,56100 +12/23/2016 9:17:10 PM,13734.95,0,56200 +12/23/2016 9:17:13 PM,13734.95,0,56300 +12/23/2016 9:17:15 PM,13734.95,0,56400 +12/23/2016 9:17:17 PM,13734.95,0,56500 +12/23/2016 9:17:19 PM,13734.95,0,56600 +12/23/2016 9:17:22 PM,13734.95,0,56700 +12/23/2016 9:17:24 PM,13734.95,0,56800 +12/23/2016 9:17:26 PM,13734.95,0,56900 +12/23/2016 9:17:28 PM,13734.95,0,57000 +12/23/2016 9:17:31 PM,13734.95,0,57100 +12/23/2016 9:17:34 PM,13734.95,0,57200 +12/23/2016 9:17:36 PM,13734.95,0,57300 +12/23/2016 9:17:38 PM,13734.95,0,57400 +12/23/2016 9:17:40 PM,13734.95,0,57500 +12/23/2016 9:17:42 PM,13734.95,0,57600 +12/23/2016 9:17:44 PM,13734.95,0,57700 +12/23/2016 9:17:47 PM,13734.95,0,57800 +12/23/2016 9:17:49 PM,13734.95,0,57900 +12/23/2016 9:17:52 PM,13734.95,0,58000 +12/23/2016 9:17:54 PM,13734.95,0,58100 +12/23/2016 9:17:56 PM,13734.95,0,58200 +12/23/2016 9:17:58 PM,13734.95,0,58300 +12/23/2016 9:18:01 PM,13734.95,0,58400 +12/23/2016 9:18:03 PM,13734.95,0,58500 +12/23/2016 9:18:06 PM,13734.95,0,58600 +12/23/2016 9:18:09 PM,13734.95,0,58700 +12/23/2016 9:18:11 PM,13734.95,0,58800 +12/23/2016 9:18:14 PM,13734.95,0,58900 +12/23/2016 9:18:16 PM,13734.95,0,59000 +12/23/2016 9:18:19 PM,13734.95,0,59100 +12/23/2016 9:18:23 PM,13734.95,0,59200 +12/23/2016 9:18:24 PM,13734.95,0,59300 +12/23/2016 9:18:27 PM,13734.95,0,59400 +12/23/2016 9:18:29 PM,13734.95,0,59500 +12/23/2016 9:18:30 PM,13734.95,0,59600 +12/23/2016 9:18:33 PM,13734.95,0,59700 +12/23/2016 9:18:35 PM,13734.95,0,59800 +12/23/2016 9:18:37 PM,13734.95,0,59900 +12/23/2016 9:18:40 PM,13734.95,0,60000 +12/23/2016 9:18:42 PM,13734.65,0,60100 +12/23/2016 9:18:44 PM,13734.65,0,60200 +12/23/2016 9:18:46 PM,13734.65,0,60300 +12/23/2016 9:18:49 PM,13734.65,0,60400 +12/23/2016 9:18:51 PM,13734.65,0,60500 +12/23/2016 9:18:53 PM,13734.65,0,60600 +12/23/2016 9:18:54 PM,13734.65,0,60700 +12/23/2016 9:18:57 PM,13734.65,0,60800 +12/23/2016 9:18:59 PM,13734.65,0,60900 +12/23/2016 9:19:02 PM,13734.65,0,61000 +12/23/2016 9:19:04 PM,13734.65,0,61100 +12/23/2016 9:19:06 PM,13734.65,0,61200 +12/23/2016 9:19:08 PM,13734.65,0,61300 +12/23/2016 9:19:10 PM,13734.65,0,61400 +12/23/2016 9:19:12 PM,13734.65,0,61500 +12/23/2016 9:19:14 PM,13734.65,0,61600 +12/23/2016 9:19:18 PM,13734.65,0,61700 +12/23/2016 9:19:21 PM,13734.65,0,61800 +12/23/2016 9:19:23 PM,13734.65,0,61900 +12/23/2016 9:19:26 PM,13734.65,0,62000 +12/23/2016 9:19:28 PM,13734.65,0,62100 +12/23/2016 9:19:30 PM,13734.65,0,62200 +12/23/2016 9:19:33 PM,13734.65,0,62300 +12/23/2016 9:19:35 PM,13734.65,0,62400 +12/23/2016 9:19:37 PM,13734.65,0,62500 +12/23/2016 9:19:40 PM,13734.65,0,62600 +12/23/2016 9:19:42 PM,13734.65,0,62700 +12/23/2016 9:19:44 PM,13734.65,0,62800 +12/23/2016 9:19:47 PM,13734.65,0,62900 +12/23/2016 9:19:49 PM,13734.65,0,63000 +12/23/2016 9:19:52 PM,13734.65,0,63100 +12/23/2016 9:19:54 PM,13734.65,0,63200 +12/23/2016 9:19:56 PM,13734.65,0,63300 +12/23/2016 9:19:59 PM,13734.65,0,63400 +12/23/2016 9:20:01 PM,13734.65,0,63500 +12/23/2016 9:20:03 PM,13734.65,0,63600 +12/23/2016 9:20:04 PM,13734.65,0,63700 +12/23/2016 9:20:06 PM,13734.65,0,63800 +12/23/2016 9:20:08 PM,13734.65,0,63900 +12/23/2016 9:20:10 PM,13734.65,0,64000 +12/23/2016 9:20:12 PM,13734.65,0,64100 +12/23/2016 9:20:13 PM,13734.65,0,64200 +12/23/2016 9:20:16 PM,13734.65,0,64300 +12/23/2016 9:20:18 PM,13734.65,0,64400 +12/23/2016 9:20:21 PM,13734.65,0,64500 +12/23/2016 9:20:22 PM,13734.65,0,64600 +12/23/2016 9:20:24 PM,13734.65,0,64700 +12/23/2016 9:20:27 PM,13734.65,0,64800 +12/23/2016 9:20:29 PM,13734.65,0,64900 +12/23/2016 9:20:30 PM,13734.65,0,65000 +12/23/2016 9:20:32 PM,13734.35,0,65100 +12/23/2016 9:20:34 PM,13734.35,0,65200 +12/23/2016 9:20:36 PM,13734.35,0,65300 +12/23/2016 9:20:38 PM,13734.35,0,65400 +12/23/2016 9:20:41 PM,13734.35,0,65500 +12/23/2016 9:20:43 PM,13734.35,0,65600 +12/23/2016 9:20:46 PM,13734.35,0,65700 +12/23/2016 9:20:48 PM,13734.35,0,65800 +12/23/2016 9:20:51 PM,13734.35,0,65900 +12/23/2016 9:20:53 PM,13734.35,0,66000 +12/23/2016 9:20:55 PM,13734.35,0,66100 +12/23/2016 9:20:58 PM,13734.35,0,66200 +12/23/2016 9:21:00 PM,13734.35,0,66300 +12/23/2016 9:21:02 PM,13734.35,0,66400 +12/23/2016 9:21:04 PM,13734.35,0,66500 +12/23/2016 9:21:05 PM,13734.35,0,66600 +12/23/2016 9:21:07 PM,13734.35,0,66700 +12/23/2016 9:21:10 PM,13734.35,0,66800 +12/23/2016 9:21:12 PM,13734.35,0,66900 +12/23/2016 9:21:14 PM,13734.35,0,67000 +12/23/2016 9:21:17 PM,13734.35,0,67100 +12/23/2016 9:21:20 PM,13734.35,0,67200 +12/23/2016 9:21:22 PM,13734.35,0,67300 +12/23/2016 9:21:24 PM,13734.35,0,67400 +12/23/2016 9:21:26 PM,13734.35,0,67500 +12/23/2016 9:21:30 PM,13734.35,0,67600 +12/23/2016 9:21:33 PM,13734.35,0,67700 +12/23/2016 9:21:35 PM,13734.35,0,67800 +12/23/2016 9:21:38 PM,13734.35,0,67900 +12/23/2016 9:21:40 PM,13734.35,0,68000 +12/23/2016 9:21:42 PM,13734.35,0,68100 +12/23/2016 9:21:45 PM,13734.35,0,68200 +12/23/2016 9:21:47 PM,13734.35,0,68300 +12/23/2016 9:21:49 PM,13734.35,0,68400 +12/23/2016 9:21:51 PM,13734.35,0,68500 +12/23/2016 9:21:55 PM,13734.35,0,68600 +12/23/2016 9:21:57 PM,13734.35,0,68700 +12/23/2016 9:22:00 PM,13734.35,0,68800 +12/23/2016 9:22:02 PM,13734.35,0,68900 +12/23/2016 9:22:04 PM,13734.35,0,69000 +12/23/2016 9:22:07 PM,13734.35,0,69100 +12/23/2016 9:22:09 PM,13734.35,0,69200 +12/23/2016 9:22:10 PM,13734.35,0,69300 +12/23/2016 9:22:12 PM,13747.35,0,69400 +12/23/2016 9:22:15 PM,13747.35,0,69500 +12/23/2016 9:22:18 PM,13750.35,0,69600 +12/23/2016 9:22:21 PM,13750.35,0,69700 +12/23/2016 9:22:22 PM,13750.35,0,69800 +12/23/2016 9:22:24 PM,13750.35,0,69900 +12/23/2016 9:22:27 PM,13750.35,0,70000 +12/23/2016 9:22:29 PM,13750.05,0,70100 +12/23/2016 9:22:31 PM,13753.05,0,70200 +12/23/2016 9:22:34 PM,13753.05,0,70300 +12/23/2016 9:22:36 PM,13753.05,0,70400 +12/23/2016 9:22:38 PM,13753.05,0,70500 +12/23/2016 9:22:40 PM,13756.05,0,70600 +12/23/2016 9:22:43 PM,13756.05,0,70700 +12/23/2016 9:22:45 PM,13756.05,0,70800 +12/23/2016 9:22:48 PM,13756.05,0,70900 +12/23/2016 9:22:51 PM,13756.05,0,71000 +12/23/2016 9:22:54 PM,13756.05,0,71100 +12/23/2016 9:22:56 PM,13756.05,0,71200 +12/23/2016 9:22:58 PM,13756.05,0,71300 +12/23/2016 9:23:00 PM,13756.05,0,71400 +12/23/2016 9:23:03 PM,13756.05,0,71500 +12/23/2016 9:23:05 PM,13756.05,0,71600 +12/23/2016 9:23:07 PM,13756.05,0,71700 +12/23/2016 9:23:09 PM,13756.05,0,71800 +12/23/2016 9:23:12 PM,13756.05,0,71900 +12/23/2016 9:23:14 PM,13756.05,0,72000 +12/23/2016 9:23:16 PM,13756.05,0,72100 +12/23/2016 9:23:20 PM,13756.05,0,72200 +12/23/2016 9:23:22 PM,13756.05,0,72300 +12/23/2016 9:23:25 PM,13756.05,0,72400 +12/23/2016 9:23:27 PM,13756.05,0,72500 +12/23/2016 9:23:28 PM,13756.05,0,72600 +12/23/2016 9:23:31 PM,13756.05,0,72700 +12/23/2016 9:23:35 PM,13756.05,0,72800 +12/23/2016 9:23:38 PM,13756.05,0,72900 +12/23/2016 9:23:41 PM,13756.05,0,73000 +12/23/2016 9:23:43 PM,13756.05,0,73100 +12/23/2016 9:23:47 PM,13756.05,0,73200 +12/23/2016 9:23:49 PM,13756.05,0,73300 +12/23/2016 9:23:52 PM,13756.05,0,73400 +12/23/2016 9:23:55 PM,13756.05,0,73500 +12/23/2016 9:23:57 PM,13756.05,0,73600 +12/23/2016 9:23:59 PM,13756.05,0,73700 +12/23/2016 9:24:02 PM,13756.05,0,73800 +12/23/2016 9:24:05 PM,13756.05,0,73900 +12/23/2016 9:24:07 PM,13756.05,0,74000 +12/23/2016 9:24:09 PM,13756.05,0,74100 +12/23/2016 9:24:12 PM,13756.05,0,74200 +12/23/2016 9:24:14 PM,13756.05,0,74300 +12/23/2016 9:24:16 PM,13756.05,0,74400 +12/23/2016 9:24:18 PM,13756.05,0,74500 +12/23/2016 9:24:20 PM,13756.05,0,74600 +12/23/2016 9:24:22 PM,13756.05,0,74700 +12/23/2016 9:24:25 PM,13756.05,0,74800 +12/23/2016 9:24:27 PM,13756.05,0,74900 +12/23/2016 9:24:29 PM,13756.05,0,75000 +12/23/2016 9:24:31 PM,13755.75,0,75100 +12/23/2016 9:24:33 PM,13755.75,0,75200 +12/23/2016 9:24:35 PM,13755.75,0,75300 +12/23/2016 9:24:38 PM,13755.75,0,75400 +12/23/2016 9:24:40 PM,13755.75,0,75500 +12/23/2016 9:24:41 PM,13755.75,0,75600 +12/23/2016 9:24:43 PM,13755.75,0,75700 +12/23/2016 9:24:45 PM,13755.75,0,75800 +12/23/2016 9:24:47 PM,13755.75,0,75900 +12/23/2016 9:24:49 PM,13755.75,0,76000 +12/23/2016 9:24:51 PM,13755.75,0,76100 +12/23/2016 9:24:56 PM,13755.75,0,76200 +12/23/2016 9:25:00 PM,13755.75,0,76300 +12/23/2016 9:25:03 PM,13755.75,0,76400 +12/23/2016 9:25:05 PM,13755.75,0,76500 +12/23/2016 9:25:06 PM,13755.75,0,76600 +12/23/2016 9:25:09 PM,13755.75,0,76700 +12/23/2016 9:25:11 PM,13755.75,0,76800 +12/23/2016 9:25:12 PM,13755.75,0,76900 +12/23/2016 9:25:15 PM,13755.75,0,77000 +12/23/2016 9:25:16 PM,13755.75,0,77100 +12/23/2016 9:25:19 PM,13755.75,0,77200 +12/23/2016 9:25:22 PM,13755.75,0,77300 +12/23/2016 9:25:24 PM,13755.75,0,77400 +12/23/2016 9:25:26 PM,13755.75,0,77500 +12/23/2016 9:25:29 PM,13755.75,0,77600 +12/23/2016 9:25:32 PM,13755.75,0,77700 +12/23/2016 9:25:34 PM,13755.75,0,77800 +12/23/2016 9:25:36 PM,13755.75,0,77900 +12/23/2016 9:25:38 PM,13755.75,0,78000 +12/23/2016 9:25:40 PM,13755.75,0,78100 +12/23/2016 9:25:43 PM,13755.75,0,78200 +12/23/2016 9:25:45 PM,13755.75,0,78300 +12/23/2016 9:25:47 PM,13755.75,0,78400 +12/23/2016 9:25:50 PM,13755.75,0,78500 +12/23/2016 9:25:53 PM,13755.75,0,78600 +12/23/2016 9:25:55 PM,13755.75,0,78700 +12/23/2016 9:25:57 PM,13755.75,0,78800 +12/23/2016 9:25:59 PM,13755.75,0,78900 +12/23/2016 9:26:02 PM,13755.75,0,79000 +12/23/2016 9:26:05 PM,13755.75,0,79100 +12/23/2016 9:26:08 PM,13755.75,0,79200 +12/23/2016 9:26:10 PM,13755.75,0,79300 +12/23/2016 9:26:12 PM,13755.75,0,79400 +12/23/2016 9:26:14 PM,13755.75,0,79500 +12/23/2016 9:26:17 PM,13755.75,0,79600 +12/23/2016 9:26:20 PM,13755.75,0,79700 +12/23/2016 9:26:22 PM,13755.75,0,79800 +12/23/2016 9:26:25 PM,13755.75,0,79900 +12/23/2016 9:26:28 PM,13755.75,0,80000 +12/23/2016 9:26:31 PM,13755.45,0,80100 +12/23/2016 9:26:33 PM,13755.45,0,80200 +12/23/2016 9:26:35 PM,13755.45,0,80300 +12/23/2016 9:26:37 PM,13755.45,0,80400 +12/23/2016 9:26:39 PM,13755.45,0,80500 +12/23/2016 9:26:41 PM,13755.45,0,80600 +12/23/2016 9:26:43 PM,13755.45,0,80700 +12/23/2016 9:26:46 PM,13755.45,0,80800 +12/23/2016 9:26:48 PM,13755.45,0,80900 +12/23/2016 9:26:49 PM,13755.45,0,81000 +12/23/2016 9:26:52 PM,13755.45,0,81100 +12/23/2016 9:26:56 PM,13755.45,0,81200 +12/23/2016 9:26:58 PM,13755.45,0,81300 +12/23/2016 9:27:00 PM,13755.45,0,81400 +12/23/2016 9:27:03 PM,13755.45,0,81500 +12/23/2016 9:27:05 PM,13755.45,0,81600 +12/23/2016 9:27:07 PM,13755.45,0,81700 +12/23/2016 9:27:09 PM,13755.45,0,81800 +12/23/2016 9:27:12 PM,13755.45,0,81900 +12/23/2016 9:27:14 PM,13755.45,0,82000 +12/23/2016 9:27:16 PM,13755.45,0,82100 +12/23/2016 9:27:18 PM,13755.45,0,82200 +12/23/2016 9:27:20 PM,13755.45,0,82300 +12/23/2016 9:27:23 PM,13755.45,0,82400 +12/23/2016 9:27:25 PM,13755.45,0,82500 +12/23/2016 9:27:28 PM,13755.45,0,82600 +12/23/2016 9:27:30 PM,13755.45,0,82700 +12/23/2016 9:27:33 PM,13755.45,0,82800 +12/23/2016 9:27:36 PM,13755.45,0,82900 +12/23/2016 9:27:38 PM,13755.45,0,83000 +12/23/2016 9:27:40 PM,13755.45,0,83100 +12/23/2016 9:27:43 PM,13755.45,0,83200 +12/23/2016 9:27:45 PM,13755.45,0,83300 +12/23/2016 9:27:47 PM,13755.45,0,83400 +12/23/2016 9:27:49 PM,13755.45,0,83500 +12/23/2016 9:27:52 PM,13755.45,0,83600 +12/23/2016 9:27:54 PM,13755.45,0,83700 +12/23/2016 9:27:56 PM,13755.45,0,83800 +12/23/2016 9:27:57 PM,13755.45,0,83900 +12/23/2016 9:27:59 PM,13755.45,0,84000 +12/23/2016 9:28:01 PM,13755.45,0,84100 +12/23/2016 9:28:03 PM,13755.45,0,84200 +12/23/2016 9:28:05 PM,13755.45,0,84300 +12/23/2016 9:28:06 PM,13755.45,0,84400 +12/23/2016 9:28:08 PM,13755.45,0,84500 +12/23/2016 9:28:10 PM,13755.45,0,84600 +12/23/2016 9:28:13 PM,13755.45,0,84700 +12/23/2016 9:28:14 PM,13755.45,0,84800 +12/23/2016 9:28:17 PM,13755.45,0,84900 +12/23/2016 9:28:19 PM,13755.45,0,85000 +12/23/2016 9:28:20 PM,13735.6,0,85100 +12/23/2016 9:28:22 PM,13735.6,0,85200 +12/23/2016 9:28:24 PM,13736.15,0,85300 +12/23/2016 9:28:26 PM,13736.15,0,85400 +12/23/2016 9:28:28 PM,13736.15,0,85500 +12/23/2016 9:28:30 PM,13736.15,0,85600 +12/23/2016 9:28:32 PM,13753.6,0,85700 +12/23/2016 9:28:34 PM,13753.6,0,85800 +12/23/2016 9:28:36 PM,13753.6,0,85900 +12/23/2016 9:28:39 PM,13754.15,0,86000 +12/23/2016 9:28:41 PM,13754.15,0,86100 +12/23/2016 9:28:43 PM,13754.15,0,86200 +12/23/2016 9:28:44 PM,13754.15,0,86300 +12/23/2016 9:28:46 PM,13754.7,0,86400 +12/23/2016 9:28:48 PM,13754.7,0,86500 +12/23/2016 9:28:49 PM,13754.7,0,86600 +12/23/2016 9:28:51 PM,13754.7,0,86700 +12/23/2016 9:28:53 PM,13754.7,0,86800 +12/23/2016 9:28:57 PM,13754.7,0,86900 +12/23/2016 9:28:58 PM,13754.7,0,87000 +12/23/2016 9:29:00 PM,13754.7,0,87100 +12/23/2016 9:29:02 PM,13754.7,0,87200 +12/23/2016 9:29:04 PM,13754.7,0,87300 +12/23/2016 9:29:06 PM,13754.7,0,87400 +12/23/2016 9:29:09 PM,13754.7,0,87500 +12/23/2016 9:29:11 PM,13754.7,0,87600 +12/23/2016 9:29:13 PM,13754.7,0,87700 +12/23/2016 9:29:16 PM,13754.7,0,87800 +12/23/2016 9:29:17 PM,13754.7,0,87900 +12/23/2016 9:29:19 PM,13754.7,0,88000 +12/23/2016 9:29:22 PM,13754.7,0,88100 +12/23/2016 9:29:25 PM,13754.7,0,88200 +12/23/2016 9:29:26 PM,13754.7,0,88300 +12/23/2016 9:29:28 PM,13754.7,0,88400 +12/23/2016 9:29:30 PM,13754.7,0,88500 +12/23/2016 9:29:32 PM,13754.7,0,88600 +12/23/2016 9:29:35 PM,13754.7,0,88700 +12/23/2016 9:29:37 PM,13754.7,0,88800 +12/23/2016 9:29:39 PM,13754.7,0,88900 +12/23/2016 9:29:41 PM,13754.7,0,89000 +12/23/2016 9:29:43 PM,13754.7,0,89100 +12/23/2016 9:29:45 PM,13754.7,0,89200 +12/23/2016 9:29:47 PM,13754.7,0,89300 +12/23/2016 9:29:49 PM,13754.7,0,89400 +12/23/2016 9:29:51 PM,13754.7,0,89500 +12/23/2016 9:29:54 PM,13754.7,0,89600 +12/23/2016 9:29:56 PM,13754.7,0,89700 +12/23/2016 9:29:58 PM,13754.7,0,89800 +12/23/2016 9:30:01 PM,13754.7,0,89900 +12/23/2016 9:30:03 PM,13754.7,0,90000 +12/23/2016 9:30:05 PM,13748.4,0,90100 +12/23/2016 9:30:07 PM,13748.4,0,90200 +12/23/2016 9:30:09 PM,13751.85,0,90300 +12/23/2016 9:30:12 PM,13753.85,0,90400 +12/23/2016 9:30:15 PM,13753.85,0,90500 +12/23/2016 9:30:17 PM,13754.4,0,90600 +12/23/2016 9:30:19 PM,13754.4,0,90700 +12/23/2016 9:30:20 PM,13754.4,0,90800 +12/23/2016 9:30:23 PM,13754.4,0,90900 +12/23/2016 9:30:25 PM,13754.4,0,91000 +12/23/2016 9:30:27 PM,13754.4,0,91100 +12/23/2016 9:30:30 PM,13754.4,0,91200 +12/23/2016 9:30:32 PM,13754.4,0,91300 +12/23/2016 9:30:35 PM,13754.4,0,91400 +12/23/2016 9:30:37 PM,13754.4,0,91500 +12/23/2016 9:30:39 PM,13754.4,0,91600 +12/23/2016 9:30:41 PM,13754.4,0,91700 +12/23/2016 9:30:43 PM,13754.4,0,91800 +12/23/2016 9:30:45 PM,13754.4,0,91900 +12/23/2016 9:30:47 PM,13754.4,0,92000 +12/23/2016 9:30:48 PM,13754.4,0,92100 +12/23/2016 9:30:50 PM,13754.4,0,92200 +12/23/2016 9:30:52 PM,13754.4,0,92300 +12/23/2016 9:30:53 PM,13754.4,0,92400 +12/23/2016 9:30:56 PM,13754.4,0,92500 +12/23/2016 9:30:58 PM,13754.4,0,92600 +12/23/2016 9:30:59 PM,13754.4,0,92700 +12/23/2016 9:31:02 PM,13754.4,0,92800 +12/23/2016 9:31:06 PM,13754.4,0,92900 +12/23/2016 9:31:08 PM,13754.4,0,93000 +12/23/2016 9:31:10 PM,13754.4,0,93100 +12/23/2016 9:31:12 PM,13754.4,0,93200 +12/23/2016 9:31:14 PM,13754.4,0,93300 +12/23/2016 9:31:16 PM,13754.4,0,93400 +12/23/2016 9:31:18 PM,13754.4,0,93500 +12/23/2016 9:31:20 PM,13754.4,0,93600 +12/23/2016 9:31:23 PM,13754.4,0,93700 +12/23/2016 9:31:25 PM,13754.4,0,93800 +12/23/2016 9:31:27 PM,13754.4,0,93900 +12/23/2016 9:31:29 PM,13754.4,0,94000 +12/23/2016 9:31:31 PM,13754.4,0,94100 +12/23/2016 9:31:33 PM,13754.4,0,94200 +12/23/2016 9:31:35 PM,13754.4,0,94300 +12/23/2016 9:31:36 PM,13754.4,0,94400 +12/23/2016 9:31:38 PM,13754.4,0,94500 +12/23/2016 9:31:40 PM,13754.4,0,94600 +12/23/2016 9:31:42 PM,13754.4,0,94700 +12/23/2016 9:31:44 PM,13754.4,0,94800 +12/23/2016 9:31:46 PM,13754.4,0,94900 +12/23/2016 9:31:48 PM,13754.4,0,95000 +12/23/2016 9:31:49 PM,13754.1,0,95100 +12/23/2016 9:31:52 PM,13754.1,0,95200 +12/23/2016 9:31:54 PM,13754.1,0,95300 +12/23/2016 9:31:55 PM,13754.1,0,95400 +12/23/2016 9:31:58 PM,13754.1,0,95500 +12/23/2016 9:32:00 PM,13754.1,0,95600 +12/23/2016 9:32:02 PM,13754.1,0,95700 +12/23/2016 9:32:04 PM,13754.1,0,95800 +12/23/2016 9:32:06 PM,13754.1,0,95900 +12/23/2016 9:32:08 PM,13754.1,0,96000 +12/23/2016 9:32:12 PM,13754.1,0,96100 +12/23/2016 9:32:15 PM,13754.1,0,96200 +12/23/2016 9:32:17 PM,13754.1,0,96300 +12/23/2016 9:32:18 PM,13754.1,0,96400 +12/23/2016 9:32:20 PM,13754.1,0,96500 +12/23/2016 9:32:22 PM,13754.1,0,96600 +12/23/2016 9:32:25 PM,13754.1,0,96700 +12/23/2016 9:32:27 PM,13754.1,0,96800 +12/23/2016 9:32:28 PM,13754.1,0,96900 +12/23/2016 9:32:30 PM,13754.1,0,97000 +12/23/2016 9:32:32 PM,13754.1,0,97100 +12/23/2016 9:32:33 PM,13754.1,0,97200 +12/23/2016 9:32:35 PM,13754.1,0,97300 +12/23/2016 9:32:37 PM,13754.1,0,97400 +12/23/2016 9:32:39 PM,13754.1,0,97500 +12/23/2016 9:32:41 PM,13754.1,0,97600 +12/23/2016 9:32:43 PM,13754.1,0,97700 +12/23/2016 9:32:45 PM,13754.1,0,97800 +12/23/2016 9:32:48 PM,13754.1,0,97900 +12/23/2016 9:32:52 PM,13754.1,0,98000 +12/23/2016 9:32:54 PM,13754.1,0,98100 +12/23/2016 9:32:56 PM,13754.1,0,98200 +12/23/2016 9:32:58 PM,13754.1,0,98300 +12/23/2016 9:33:00 PM,13754.1,0,98400 +12/23/2016 9:33:02 PM,13754.1,0,98500 +12/23/2016 9:33:04 PM,13754.1,0,98600 +12/23/2016 9:33:06 PM,13754.1,0,98700 +12/23/2016 9:33:08 PM,13754.1,0,98800 +12/23/2016 9:33:11 PM,13754.1,0,98900 +12/23/2016 9:33:13 PM,13754.1,0,99000 +12/23/2016 9:33:16 PM,13754.1,0,99100 +12/23/2016 9:33:18 PM,13754.1,0,99200 +12/23/2016 9:33:21 PM,13754.1,0,99300 +12/23/2016 9:33:22 PM,13754.1,0,99400 +12/23/2016 9:33:25 PM,13754.1,0,99500 +12/23/2016 9:33:27 PM,13754.1,0,99600 +12/23/2016 9:33:29 PM,13754.1,0,99700 +12/23/2016 9:33:32 PM,13754.1,0,99800 +12/23/2016 9:33:34 PM,13754.1,0,99900 +12/23/2016 9:33:35 PM,13754.1,0,100000 +12/23/2016 9:33:38 PM,13753.8,0,100100 +12/23/2016 9:33:40 PM,13753.8,0,100200 +12/23/2016 9:33:41 PM,13753.8,0,100300 +12/23/2016 9:33:43 PM,13753.8,0,100400 +12/23/2016 9:33:45 PM,13753.8,0,100500 +12/23/2016 9:33:49 PM,13753.8,0,100600 +12/23/2016 9:33:52 PM,13753.8,0,100700 +12/23/2016 9:33:58 PM,13753.8,0,100800 +12/23/2016 9:34:00 PM,13753.8,0,100900 +12/23/2016 9:34:02 PM,13753.8,0,101000 +12/23/2016 9:34:04 PM,13753.8,0,101100 +12/23/2016 9:34:06 PM,13753.8,0,101200 +12/23/2016 9:34:07 PM,13753.8,0,101300 +12/23/2016 9:34:10 PM,13753.8,0,101400 +12/23/2016 9:34:12 PM,13753.8,0,101500 +12/23/2016 9:34:14 PM,13753.8,0,101600 +12/23/2016 9:34:16 PM,13753.8,0,101700 +12/23/2016 9:34:18 PM,13753.8,0,101800 +12/23/2016 9:34:20 PM,13753.8,0,101900 +12/23/2016 9:34:23 PM,13753.8,0,102000 +12/23/2016 9:34:24 PM,13753.8,0,102100 +12/23/2016 9:34:27 PM,13753.8,0,102200 +12/23/2016 9:34:30 PM,13753.8,0,102300 +12/23/2016 9:34:32 PM,13753.8,0,102400 +12/23/2016 9:34:34 PM,13753.8,0,102500 +12/23/2016 9:34:36 PM,13753.8,0,102600 +12/23/2016 9:34:38 PM,13753.8,0,102700 +12/23/2016 9:34:39 PM,13753.8,0,102800 +12/23/2016 9:34:41 PM,13753.8,0,102900 +12/23/2016 9:34:43 PM,13753.8,0,103000 +12/23/2016 9:34:45 PM,13753.8,0,103100 +12/23/2016 9:34:47 PM,13753.8,0,103200 +12/23/2016 9:34:49 PM,13753.8,0,103300 +12/23/2016 9:34:51 PM,13753.8,0,103400 +12/23/2016 9:34:53 PM,13753.8,0,103500 +12/23/2016 9:34:55 PM,13753.8,0,103600 +12/23/2016 9:34:57 PM,13753.8,0,103700 +12/23/2016 9:34:58 PM,13754.25,0,103800 +12/23/2016 9:35:01 PM,13754.25,0,103900 +12/23/2016 9:35:04 PM,13754.25,0,104000 +12/23/2016 9:35:06 PM,13754.25,0,104100 +12/23/2016 9:35:08 PM,13754.25,0,104200 +12/23/2016 9:35:12 PM,13754.25,0,104300 +12/23/2016 9:35:14 PM,13754.25,0,104400 +12/23/2016 9:35:16 PM,13754.25,0,104500 +12/23/2016 9:35:18 PM,13754.25,0,104600 +12/23/2016 9:35:20 PM,13754.25,0,104700 +12/23/2016 9:35:22 PM,13754.25,0,104800 +12/23/2016 9:35:24 PM,13754.25,0,104900 +12/23/2016 9:35:26 PM,13754.25,0,105000 +12/23/2016 9:35:29 PM,13753.95,0,105100 +12/23/2016 9:35:31 PM,13753.95,0,105200 +12/23/2016 9:35:33 PM,13753.95,0,105300 +12/23/2016 9:35:36 PM,13753.95,0,105400 +12/23/2016 9:35:38 PM,13753.95,0,105500 +12/23/2016 9:35:41 PM,13753.95,0,105600 +12/23/2016 9:35:44 PM,13753.95,0,105700 +12/23/2016 9:35:46 PM,13753.95,0,105800 +12/23/2016 9:35:48 PM,13753.95,0,105900 +12/23/2016 9:35:52 PM,13753.95,0,106000 +12/23/2016 9:35:53 PM,13753.95,0,106100 +12/23/2016 9:35:55 PM,13753.95,0,106200 +12/23/2016 9:35:58 PM,13753.95,0,106300 +12/23/2016 9:36:01 PM,13753.95,0,106400 +12/23/2016 9:36:03 PM,13753.95,0,106500 +12/23/2016 9:36:06 PM,13753.95,0,106600 +12/23/2016 9:36:08 PM,13753.95,0,106700 +12/23/2016 9:36:10 PM,13753.95,0,106800 +12/23/2016 9:36:12 PM,13753.95,0,106900 +12/23/2016 9:36:14 PM,13753.95,0,107000 +12/23/2016 9:36:17 PM,13753.95,0,107100 +12/23/2016 9:36:19 PM,13753.95,0,107200 +12/23/2016 9:36:22 PM,13753.95,0,107300 +12/23/2016 9:36:24 PM,13753.95,0,107400 +12/23/2016 9:36:26 PM,13753.95,0,107500 +12/23/2016 9:36:29 PM,13753.95,0,107600 +12/23/2016 9:36:31 PM,13753.95,0,107700 +12/23/2016 9:36:33 PM,13753.95,0,107800 +12/23/2016 9:36:35 PM,13753.95,0,107900 +12/23/2016 9:36:38 PM,13753.95,0,108000 +12/23/2016 9:36:40 PM,13753.95,0,108100 +12/23/2016 9:36:42 PM,13753.95,0,108200 +12/23/2016 9:36:44 PM,13753.95,0,108300 +12/23/2016 9:36:47 PM,13753.95,0,108400 +12/23/2016 9:36:49 PM,13753.95,0,108500 +12/23/2016 9:36:51 PM,13753.95,0,108600 +12/23/2016 9:36:54 PM,13753.95,0,108700 +12/23/2016 9:36:57 PM,13753.95,0,108800 +12/23/2016 9:36:59 PM,13753.95,0,108900 +12/23/2016 9:37:02 PM,13753.95,0,109000 +12/23/2016 9:37:04 PM,13753.95,0,109100 +12/23/2016 9:37:08 PM,13753.95,0,109200 +12/23/2016 9:37:10 PM,13753.95,0,109300 +12/23/2016 9:37:12 PM,13753.95,0,109400 +12/23/2016 9:37:15 PM,13753.95,0,109500 +12/23/2016 9:37:17 PM,13753.95,0,109600 +12/23/2016 9:37:19 PM,13753.95,0,109700 +12/23/2016 9:37:21 PM,13753.95,0,109800 +12/23/2016 9:37:23 PM,13753.95,0,109900 +12/23/2016 9:37:25 PM,13753.95,0,110000 +12/23/2016 9:37:27 PM,13753.65,0,110100 +12/23/2016 9:37:29 PM,13753.65,0,110200 +12/23/2016 9:37:32 PM,13753.65,0,110300 +12/23/2016 9:37:35 PM,13753.65,0,110400 +12/23/2016 9:37:37 PM,13753.65,0,110500 +12/23/2016 9:37:39 PM,13753.65,0,110600 +12/23/2016 9:37:41 PM,13753.65,0,110700 +12/23/2016 9:37:44 PM,13753.65,0,110800 +12/23/2016 9:37:47 PM,13753.65,0,110900 +12/23/2016 9:37:49 PM,13753.65,0,111000 +12/23/2016 9:37:52 PM,13753.65,0,111100 +12/23/2016 9:37:54 PM,13753.65,0,111200 +12/23/2016 9:37:57 PM,13753.65,0,111300 +12/23/2016 9:38:00 PM,13753.65,0,111400 +12/23/2016 9:38:02 PM,13753.65,0,111500 +12/23/2016 9:38:05 PM,13753.65,0,111600 +12/23/2016 9:38:07 PM,13753.65,0,111700 +12/23/2016 9:38:09 PM,13753.65,0,111800 +12/23/2016 9:38:11 PM,13753.65,0,111900 +12/23/2016 9:38:14 PM,13753.65,0,112000 +12/23/2016 9:38:16 PM,13753.65,0,112100 +12/23/2016 9:38:19 PM,13753.65,0,112200 +12/23/2016 9:38:21 PM,13753.65,0,112300 +12/23/2016 9:38:23 PM,13753.65,0,112400 +12/23/2016 9:38:26 PM,13753.65,0,112500 +12/23/2016 9:38:28 PM,13753.65,0,112600 +12/23/2016 9:38:30 PM,13753.65,0,112700 +12/23/2016 9:38:32 PM,13753.65,0,112800 +12/23/2016 9:38:34 PM,13753.65,0,112900 +12/23/2016 9:38:36 PM,13753.65,0,113000 +12/23/2016 9:38:38 PM,13753.65,0,113100 +12/23/2016 9:38:40 PM,13753.65,0,113200 +12/23/2016 9:38:43 PM,13753.65,0,113300 +12/23/2016 9:38:45 PM,13753.65,0,113400 +12/23/2016 9:38:47 PM,13753.65,0,113500 +12/23/2016 9:38:50 PM,13753.65,0,113600 +12/23/2016 9:38:52 PM,13753.65,0,113700 +12/23/2016 9:38:54 PM,13753.65,0,113800 +12/23/2016 9:38:56 PM,13753.65,0,113900 +12/23/2016 9:38:58 PM,13753.65,0,114000 +12/23/2016 9:39:00 PM,13753.65,0,114100 +12/23/2016 9:39:01 PM,13753.65,0,114200 +12/23/2016 9:39:03 PM,13753.65,0,114300 +12/23/2016 9:39:05 PM,13753.65,0,114400 +12/23/2016 9:39:07 PM,13753.65,0,114500 +12/23/2016 9:39:09 PM,13753.65,0,114600 +12/23/2016 9:39:11 PM,13753.65,0,114700 +12/23/2016 9:39:14 PM,13753.65,0,114800 +12/23/2016 9:39:16 PM,13753.65,0,114900 +12/23/2016 9:39:18 PM,13753.65,0,115000 +12/23/2016 9:39:20 PM,13753.35,0,115100 +12/23/2016 9:39:22 PM,13753.35,0,115200 +12/23/2016 9:39:24 PM,13753.35,0,115300 +12/23/2016 9:39:26 PM,13753.35,0,115400 +12/23/2016 9:39:27 PM,13753.35,0,115500 +12/23/2016 9:39:29 PM,13753.35,0,115600 +12/23/2016 9:39:31 PM,13753.35,0,115700 +12/23/2016 9:39:33 PM,13753.35,0,115800 +12/23/2016 9:39:36 PM,13753.35,0,115900 +12/23/2016 9:39:38 PM,13753.35,0,116000 +12/23/2016 9:39:40 PM,13753.35,0,116100 +12/23/2016 9:39:44 PM,13753.35,0,116200 +12/23/2016 9:39:47 PM,13753.35,0,116300 +12/23/2016 9:39:49 PM,13753.35,0,116400 +12/23/2016 9:39:51 PM,13753.35,0,116500 +12/23/2016 9:39:54 PM,13753.35,0,116600 +12/23/2016 9:39:55 PM,13753.35,0,116700 +12/23/2016 9:39:58 PM,13753.35,0,116800 +12/23/2016 9:40:00 PM,13753.35,0,116900 +12/23/2016 9:40:05 PM,13753.35,0,117000 +12/23/2016 9:40:08 PM,13753.35,0,117100 +12/23/2016 9:40:10 PM,13753.35,0,117200 +12/23/2016 9:40:14 PM,13753.35,0,117300 +12/23/2016 9:40:16 PM,13753.35,0,117400 +12/23/2016 9:40:19 PM,13753.35,0,117500 +12/23/2016 9:40:22 PM,13753.35,0,117600 +12/23/2016 9:40:25 PM,13753.35,0,117700 +12/23/2016 9:40:27 PM,13753.35,0,117800 +12/23/2016 9:40:29 PM,13753.35,0,117900 +12/23/2016 9:40:31 PM,13753.35,0,118000 +12/23/2016 9:40:33 PM,13753.35,0,118100 +12/23/2016 9:40:35 PM,13753.35,0,118200 +12/23/2016 9:40:38 PM,13753.35,0,118300 +12/23/2016 9:40:40 PM,13753.35,0,118400 +12/23/2016 9:40:42 PM,13753.35,0,118500 +12/23/2016 9:40:44 PM,13753.35,0,118600 +12/23/2016 9:40:47 PM,13753.35,0,118700 +12/23/2016 9:40:49 PM,13753.35,0,118800 +12/23/2016 9:40:51 PM,13753.35,0,118900 +12/23/2016 9:40:55 PM,13753.35,0,119000 +12/23/2016 9:40:57 PM,13753.35,0,119100 +12/23/2016 9:41:00 PM,13753.35,0,119200 +12/23/2016 9:41:03 PM,13753.35,0,119300 +12/23/2016 9:41:05 PM,13753.35,0,119400 +12/23/2016 9:41:08 PM,13753.35,0,119500 +12/23/2016 9:41:11 PM,13753.35,0,119600 +12/23/2016 9:41:13 PM,13753.35,0,119700 +12/23/2016 9:41:15 PM,13753.35,0,119800 +12/23/2016 9:41:17 PM,13753.35,0,119900 +12/23/2016 9:41:20 PM,13753.35,0,120000 +12/23/2016 9:41:21 PM,13753.05,0,120100 +12/23/2016 9:41:24 PM,13753.05,0,120200 +12/23/2016 9:41:28 PM,13753.05,0,120300 +12/23/2016 9:41:32 PM,13753.05,0,120400 +12/23/2016 9:41:35 PM,13753.05,0,120500 +12/23/2016 9:41:38 PM,13753.05,0,120600 +12/23/2016 9:41:41 PM,13753.05,0,120700 +12/23/2016 9:41:45 PM,13753.05,0,120800 +12/23/2016 9:41:47 PM,13753.05,0,120900 +12/23/2016 9:41:50 PM,13753.05,0,121000 +12/23/2016 9:41:52 PM,13753.05,0,121100 +12/23/2016 9:41:55 PM,13753.05,0,121200 +12/23/2016 9:41:58 PM,13753.05,0,121300 +12/23/2016 9:42:00 PM,13753.05,0,121400 +12/23/2016 9:42:02 PM,13753.05,0,121500 +12/23/2016 9:42:04 PM,13753.05,0,121600 +12/23/2016 9:42:06 PM,13753.05,0,121700 +12/23/2016 9:42:08 PM,13753.05,0,121800 +12/23/2016 9:42:10 PM,13753.05,0,121900 +12/23/2016 9:42:11 PM,13753.05,0,122000 +12/23/2016 9:42:13 PM,13753.05,0,122100 +12/23/2016 9:42:16 PM,13753.05,0,122200 +12/23/2016 9:42:19 PM,13753.05,0,122300 +12/23/2016 9:42:22 PM,13753.05,0,122400 +12/23/2016 9:42:23 PM,13753.05,0,122500 +12/23/2016 9:42:25 PM,13753.05,0,122600 +12/23/2016 9:42:27 PM,13753.05,0,122700 +12/23/2016 9:42:30 PM,13753.05,0,122800 +12/23/2016 9:42:32 PM,13753.05,0,122900 +12/23/2016 9:42:34 PM,13753.05,0,123000 +12/23/2016 9:42:37 PM,13753.05,0,123100 +12/23/2016 9:42:38 PM,13753.05,0,123200 +12/23/2016 9:42:41 PM,13753.05,0,123300 +12/23/2016 9:42:43 PM,13753.05,0,123400 +12/23/2016 9:42:46 PM,13753.05,0,123500 +12/23/2016 9:42:49 PM,13753.05,0,123600 +12/23/2016 9:42:52 PM,13753.05,0,123700 +12/23/2016 9:42:53 PM,13753.05,0,123800 +12/23/2016 9:42:56 PM,13753.05,0,123900 +12/23/2016 9:42:59 PM,13753.05,0,124000 +12/23/2016 9:43:01 PM,13753.05,0,124100 +12/23/2016 9:43:03 PM,13753.05,0,124200 +12/23/2016 9:43:05 PM,13753.05,0,124300 +12/23/2016 9:43:07 PM,13753.05,0,124400 +12/23/2016 9:43:08 PM,13753.05,0,124500 +12/23/2016 9:43:11 PM,13753.05,0,124600 +12/23/2016 9:43:13 PM,13753.05,0,124700 +12/23/2016 9:43:16 PM,13753.05,0,124800 +12/23/2016 9:43:18 PM,13753.05,0,124900 +12/23/2016 9:43:21 PM,13753.05,0,125000 +12/23/2016 9:43:23 PM,13752.75,0,125100 +12/23/2016 9:43:26 PM,13752.75,0,125200 +12/23/2016 9:43:28 PM,13752.75,0,125300 +12/23/2016 9:43:31 PM,13752.75,0,125400 +12/23/2016 9:43:33 PM,13752.75,0,125500 +12/23/2016 9:43:36 PM,13752.75,0,125600 +12/23/2016 9:43:39 PM,13752.75,0,125700 +12/23/2016 9:43:41 PM,13752.75,0,125800 +12/23/2016 9:43:43 PM,13752.75,0,125900 +12/23/2016 9:43:45 PM,13752.75,0,126000 +12/23/2016 9:43:47 PM,13752.75,0,126100 +12/23/2016 9:43:50 PM,13752.75,0,126200 +12/23/2016 9:43:52 PM,13752.75,0,126300 +12/23/2016 9:43:55 PM,13752.75,0,126400 +12/23/2016 9:43:57 PM,13752.75,0,126500 +12/23/2016 9:43:59 PM,13752.75,0,126600 +12/23/2016 9:44:02 PM,13752.75,0,126700 +12/23/2016 9:44:04 PM,13752.75,0,126800 +12/23/2016 9:44:06 PM,13752.75,0,126900 +12/23/2016 9:44:08 PM,13752.75,0,127000 +12/23/2016 9:44:10 PM,13752.75,0,127100 +12/23/2016 9:44:12 PM,13752.75,0,127200 +12/23/2016 9:44:14 PM,13752.75,0,127300 +12/23/2016 9:44:16 PM,13752.75,0,127400 +12/23/2016 9:44:18 PM,13752.75,0,127500 +12/23/2016 9:44:21 PM,13752.75,0,127600 +12/23/2016 9:44:23 PM,13752.75,0,127700 +12/23/2016 9:44:25 PM,13752.75,0,127800 +12/23/2016 9:44:28 PM,13752.75,0,127900 +12/23/2016 9:44:30 PM,13752.75,0,128000 +12/23/2016 9:44:32 PM,13752.75,0,128100 +12/23/2016 9:44:36 PM,13752.75,0,128200 +12/23/2016 9:44:38 PM,13752.75,0,128300 +12/23/2016 9:44:40 PM,13752.75,0,128400 +12/23/2016 9:44:42 PM,13752.75,0,128500 +12/23/2016 9:44:47 PM,13752.75,0,128600 +12/23/2016 9:44:50 PM,13752.75,0,128700 +12/23/2016 9:44:52 PM,13752.75,0,128800 +12/23/2016 9:44:54 PM,13752.75,0,128900 +12/23/2016 9:44:56 PM,13752.75,0,129000 +12/23/2016 9:44:58 PM,13752.75,0,129100 +12/23/2016 9:45:01 PM,13752.75,0,129200 +12/23/2016 9:45:03 PM,13752.75,0,129300 +12/23/2016 9:45:05 PM,13752.75,0,129400 +12/23/2016 9:45:07 PM,13752.75,0,129500 +12/23/2016 9:45:10 PM,13752.75,0,129600 +12/23/2016 9:45:11 PM,13752.75,0,129700 +12/23/2016 9:45:14 PM,13752.75,0,129800 +12/23/2016 9:45:16 PM,13752.75,0,129900 +12/23/2016 9:45:18 PM,13752.75,0,130000 +12/23/2016 9:45:20 PM,13752.45,0,130100 +12/23/2016 9:45:22 PM,13752.45,0,130200 +12/23/2016 9:45:25 PM,13752.45,0,130300 +12/23/2016 9:45:29 PM,13752.45,0,130400 +12/23/2016 9:45:31 PM,13752.45,0,130500 +12/23/2016 9:45:33 PM,13752.45,0,130600 +12/23/2016 9:45:35 PM,13752.45,0,130700 +12/23/2016 9:45:37 PM,13752.45,0,130800 +12/23/2016 9:45:39 PM,13752.45,0,130900 +12/23/2016 9:45:41 PM,13752.45,0,131000 +12/23/2016 9:45:43 PM,13752.45,0,131100 +12/23/2016 9:45:45 PM,13752.45,0,131200 +12/23/2016 9:45:48 PM,13752.45,0,131300 +12/23/2016 9:45:50 PM,13752.45,0,131400 +12/23/2016 9:45:52 PM,13752.45,0,131500 +12/23/2016 9:45:54 PM,13752.45,0,131600 +12/23/2016 9:45:57 PM,13752.45,0,131700 +12/23/2016 9:45:59 PM,13752.45,0,131800 +12/23/2016 9:46:02 PM,13752.45,0,131900 +12/23/2016 9:46:04 PM,13752.45,0,132000 +12/23/2016 9:46:06 PM,13752.45,0,132100 +12/23/2016 9:46:08 PM,13752.45,0,132200 +12/23/2016 9:46:11 PM,13752.45,0,132300 +12/23/2016 9:46:14 PM,13752.45,0,132400 +12/23/2016 9:46:17 PM,13752.45,0,132500 +12/23/2016 9:46:20 PM,13752.45,0,132600 +12/23/2016 9:46:22 PM,13752.45,0,132700 +12/23/2016 9:46:24 PM,13752.45,0,132800 +12/23/2016 9:46:27 PM,13752.45,0,132900 +12/23/2016 9:46:29 PM,13752.45,0,133000 +12/23/2016 9:46:31 PM,13752.45,0,133100 +12/23/2016 9:46:33 PM,13752.45,0,133200 +12/23/2016 9:46:36 PM,13752.45,0,133300 +12/23/2016 9:46:38 PM,13752.45,0,133400 +12/23/2016 9:46:41 PM,13752.45,0,133500 +12/23/2016 9:46:43 PM,13752.45,0,133600 +12/23/2016 9:46:46 PM,13752.45,0,133700 +12/23/2016 9:46:48 PM,13752.45,0,133800 +12/23/2016 9:46:51 PM,13752.45,0,133900 +12/23/2016 9:46:53 PM,13752.45,0,134000 +12/23/2016 9:46:55 PM,13752.45,0,134100 +12/23/2016 9:46:56 PM,13752.45,0,134200 +12/23/2016 9:46:59 PM,13752.45,0,134300 +12/23/2016 9:47:01 PM,13752.45,0,134400 +12/23/2016 9:47:04 PM,13752.45,0,134500 +12/23/2016 9:47:07 PM,13752.45,0,134600 +12/23/2016 9:47:09 PM,13752.45,0,134700 +12/23/2016 9:47:11 PM,13752.45,0,134800 +12/23/2016 9:47:12 PM,13752.45,0,134900 +12/23/2016 9:47:14 PM,13752.45,0,135000 +12/23/2016 9:47:16 PM,13752.15,0,135100 +12/23/2016 9:47:18 PM,13752.15,0,135200 +12/23/2016 9:47:20 PM,13752.15,0,135300 +12/23/2016 9:47:22 PM,13752.15,0,135400 +12/23/2016 9:47:24 PM,13752.15,0,135500 +12/23/2016 9:47:27 PM,13752.15,0,135600 +12/23/2016 9:47:28 PM,13752.15,0,135700 +12/23/2016 9:47:30 PM,13752.15,0,135800 +12/23/2016 9:47:33 PM,13752.15,0,135900 +12/23/2016 9:47:35 PM,13752.15,0,136000 +12/23/2016 9:47:37 PM,13752.15,0,136100 +12/23/2016 9:47:39 PM,13752.15,0,136200 +12/23/2016 9:47:42 PM,13752.15,0,136300 +12/23/2016 9:47:46 PM,13752.15,0,136400 +12/23/2016 9:47:48 PM,13752.15,0,136500 +12/23/2016 9:47:50 PM,13752.15,0,136600 +12/23/2016 9:47:52 PM,13752.15,0,136700 +12/23/2016 9:47:54 PM,13752.15,0,136800 +12/23/2016 9:47:57 PM,13752.15,0,136900 +12/23/2016 9:47:59 PM,13752.15,0,137000 +12/23/2016 9:48:01 PM,13752.15,0,137100 +12/23/2016 9:48:04 PM,13752.15,0,137200 +12/23/2016 9:48:06 PM,13752.15,0,137300 +12/23/2016 9:48:09 PM,13752.15,0,137400 +12/23/2016 9:48:11 PM,13752.15,0,137500 +12/23/2016 9:48:13 PM,13752.15,0,137600 +12/23/2016 9:48:15 PM,13752.15,0,137700 +12/23/2016 9:48:18 PM,13752.15,0,137800 +12/23/2016 9:48:19 PM,13752.15,0,137900 +12/23/2016 9:48:22 PM,13752.15,0,138000 +12/23/2016 9:48:24 PM,13752.15,0,138100 +12/23/2016 9:48:26 PM,13752.15,0,138200 +12/23/2016 9:48:29 PM,13752.15,0,138300 +12/23/2016 9:48:31 PM,13752.15,0,138400 +12/23/2016 9:48:33 PM,13752.15,0,138500 +12/23/2016 9:48:35 PM,13752.15,0,138600 +12/23/2016 9:48:37 PM,13752.15,0,138700 +12/23/2016 9:48:39 PM,13752.15,0,138800 +12/23/2016 9:48:41 PM,13752.15,0,138900 +12/23/2016 9:48:42 PM,13752.15,0,139000 +12/23/2016 9:48:45 PM,13752.15,0,139100 +12/23/2016 9:48:46 PM,13752.15,0,139200 +12/23/2016 9:48:48 PM,13752.15,0,139300 +12/23/2016 9:48:50 PM,13752.15,0,139400 +12/23/2016 9:48:52 PM,13752.15,0,139500 +12/23/2016 9:48:54 PM,13752.15,0,139600 +12/23/2016 9:48:56 PM,13752.15,0,139700 +12/23/2016 9:48:57 PM,13752.15,0,139800 +12/23/2016 9:49:00 PM,13752.15,0,139900 +12/23/2016 9:49:02 PM,13752.15,0,140000 +12/23/2016 9:49:04 PM,13751.85,0,140100 +12/23/2016 9:49:06 PM,13751.85,0,140200 +12/23/2016 9:49:08 PM,13751.85,0,140300 +12/23/2016 9:49:11 PM,13751.85,0,140400 +12/23/2016 9:49:17 PM,13751.85,0,140500 +12/23/2016 9:49:19 PM,13751.85,0,140600 +12/23/2016 9:49:20 PM,13751.85,0,140700 +12/23/2016 9:49:23 PM,13751.85,0,140800 +12/23/2016 9:49:25 PM,13751.85,0,140900 +12/23/2016 9:49:28 PM,13751.85,0,141000 +12/23/2016 9:49:31 PM,13751.85,0,141100 +12/23/2016 9:49:33 PM,13751.85,0,141200 +12/23/2016 9:49:35 PM,13751.85,0,141300 +12/23/2016 9:49:37 PM,13751.85,0,141400 +12/23/2016 9:49:39 PM,13751.85,0,141500 +12/23/2016 9:49:41 PM,13751.85,0,141600 +12/23/2016 9:49:43 PM,13751.85,0,141700 +12/23/2016 9:49:46 PM,13751.85,0,141800 +12/23/2016 9:49:48 PM,13751.85,0,141900 +12/23/2016 9:49:50 PM,13751.85,0,142000 +12/23/2016 9:49:52 PM,13751.85,0,142100 +12/23/2016 9:49:54 PM,13751.85,0,142200 +12/23/2016 9:49:56 PM,13751.85,0,142300 +12/23/2016 9:49:58 PM,13751.85,0,142400 +12/23/2016 9:50:01 PM,13751.85,0,142500 +12/23/2016 9:50:04 PM,13751.85,0,142600 +12/23/2016 9:50:05 PM,13751.85,0,142700 +12/23/2016 9:50:07 PM,13751.85,0,142800 +12/23/2016 9:50:11 PM,13751.85,0,142900 +12/23/2016 9:50:14 PM,13751.85,0,143000 +12/23/2016 9:50:17 PM,13751.85,0,143100 +12/23/2016 9:50:19 PM,13751.85,0,143200 +12/23/2016 9:50:21 PM,13751.85,0,143300 +12/23/2016 9:50:24 PM,13751.85,0,143400 +12/23/2016 9:50:27 PM,13751.85,0,143500 +12/23/2016 9:50:29 PM,13751.85,0,143600 +12/23/2016 9:50:30 PM,13751.85,0,143700 +12/23/2016 9:50:32 PM,13751.85,0,143800 +12/23/2016 9:50:35 PM,13751.85,0,143900 +12/23/2016 9:50:37 PM,13751.85,0,144000 +12/23/2016 9:50:39 PM,13751.85,0,144100 +12/23/2016 9:50:41 PM,13751.85,0,144200 +12/23/2016 9:50:44 PM,13751.85,0,144300 +12/23/2016 9:50:46 PM,13751.85,0,144400 +12/23/2016 9:50:49 PM,13751.85,0,144500 +12/23/2016 9:50:50 PM,13751.85,0,144600 +12/23/2016 9:50:53 PM,13751.85,0,144700 +12/23/2016 9:50:55 PM,13751.85,0,144800 +12/23/2016 9:50:58 PM,13751.85,0,144900 +12/23/2016 9:51:00 PM,13751.85,0,145000 +12/23/2016 9:51:02 PM,13751.55,0,145100 +12/23/2016 9:51:04 PM,13751.55,0,145200 +12/23/2016 9:51:07 PM,13751.55,0,145300 +12/23/2016 9:51:11 PM,13751.55,0,145400 +12/23/2016 9:51:13 PM,13751.55,0,145500 +12/23/2016 9:51:15 PM,13751.55,0,145600 +12/23/2016 9:51:17 PM,13751.55,0,145700 +12/23/2016 9:51:19 PM,13751.55,0,145800 +12/23/2016 9:51:21 PM,13751.55,0,145900 +12/23/2016 9:51:24 PM,13751.55,0,146000 +12/23/2016 9:51:27 PM,13751.55,0,146100 +12/23/2016 9:51:29 PM,13751.55,0,146200 +12/23/2016 9:51:32 PM,13751.55,0,146300 +12/23/2016 9:51:35 PM,13751.55,0,146400 +12/23/2016 9:51:37 PM,13751.55,0,146500 +12/23/2016 9:51:40 PM,13751.55,0,146600 +12/23/2016 9:51:42 PM,13751.55,0,146700 +12/23/2016 9:51:45 PM,13751.55,0,146800 +12/23/2016 9:51:47 PM,13751.55,0,146900 +12/23/2016 9:51:50 PM,13751.55,0,147000 +12/23/2016 9:51:51 PM,13751.55,0,147100 +12/23/2016 9:51:53 PM,13751.55,0,147200 +12/23/2016 9:51:55 PM,13751.55,0,147300 +12/23/2016 9:51:58 PM,13751.55,0,147400 +12/23/2016 9:52:00 PM,13751.55,0,147500 +12/23/2016 9:52:02 PM,13751.55,0,147600 +12/23/2016 9:52:05 PM,13751.55,0,147700 +12/23/2016 9:52:07 PM,13751.55,0,147800 +12/23/2016 9:52:09 PM,13751.55,0,147900 +12/23/2016 9:52:11 PM,13751.55,0,148000 +12/23/2016 9:52:13 PM,13751.55,0,148100 +12/23/2016 9:52:16 PM,13751.55,0,148200 +12/23/2016 9:52:18 PM,13751.55,0,148300 +12/23/2016 9:52:20 PM,13751.55,0,148400 +12/23/2016 9:52:22 PM,13751.55,0,148500 +12/23/2016 9:52:25 PM,13751.55,0,148600 +12/23/2016 9:52:27 PM,13751.55,0,148700 +12/23/2016 9:52:31 PM,13751.55,0,148800 +12/23/2016 9:52:33 PM,13751.55,0,148900 +12/23/2016 9:52:35 PM,13751.55,0,149000 +12/23/2016 9:52:38 PM,13751.55,0,149100 +12/23/2016 9:52:41 PM,13751.55,0,149200 +12/23/2016 9:52:43 PM,13751.55,0,149300 +12/23/2016 9:52:45 PM,13751.55,0,149400 +12/23/2016 9:52:47 PM,13751.55,0,149500 +12/23/2016 9:52:49 PM,13751.55,0,149600 +12/23/2016 9:52:51 PM,13751.55,0,149700 +12/23/2016 9:52:53 PM,13751.55,0,149800 +12/23/2016 9:52:55 PM,13751.55,0,149900 +12/23/2016 9:52:57 PM,13751.55,0,150000 +12/23/2016 9:53:00 PM,13751.25,0,150100 +12/23/2016 9:53:03 PM,13751.25,0,150200 +12/23/2016 9:53:05 PM,13751.25,0,150300 +12/23/2016 9:53:08 PM,13751.25,0,150400 +12/23/2016 9:53:10 PM,13751.25,0,150500 +12/23/2016 9:53:12 PM,13751.25,0,150600 +12/23/2016 9:53:14 PM,13751.25,0,150700 +12/23/2016 9:53:16 PM,13751.25,0,150800 +12/23/2016 9:53:19 PM,13751.25,0,150900 +12/23/2016 9:53:21 PM,13751.25,0,151000 +12/23/2016 9:53:24 PM,13751.25,0,151100 +12/23/2016 9:53:27 PM,13751.25,0,151200 +12/23/2016 9:53:29 PM,13751.25,0,151300 +12/23/2016 9:53:32 PM,13751.25,0,151400 +12/23/2016 9:53:34 PM,13751.25,0,151500 +12/23/2016 9:53:36 PM,13751.25,0,151600 +12/23/2016 9:53:38 PM,13751.25,0,151700 +12/23/2016 9:53:40 PM,13751.25,0,151800 +12/23/2016 9:53:42 PM,13751.25,0,151900 +12/23/2016 9:53:45 PM,13751.25,0,152000 +12/23/2016 9:53:47 PM,13751.25,0,152100 +12/23/2016 9:53:49 PM,13751.25,0,152200 +12/23/2016 9:53:51 PM,13751.25,0,152300 +12/23/2016 9:53:53 PM,13751.25,0,152400 +12/23/2016 9:53:55 PM,13751.25,0,152500 +12/23/2016 9:53:57 PM,13751.25,0,152600 +12/23/2016 9:54:00 PM,13751.25,0,152700 +12/23/2016 9:54:03 PM,13751.25,0,152800 +12/23/2016 9:54:05 PM,13751.25,0,152900 +12/23/2016 9:54:07 PM,13751.25,0,153000 +12/23/2016 9:54:09 PM,13751.25,0,153100 +12/23/2016 9:54:10 PM,13751.25,0,153200 +12/23/2016 9:54:12 PM,13751.25,0,153300 +12/23/2016 9:54:14 PM,13751.25,0,153400 +12/23/2016 9:54:16 PM,13751.25,0,153500 +12/23/2016 9:54:18 PM,13751.25,0,153600 +12/23/2016 9:54:21 PM,13751.25,0,153700 +12/23/2016 9:54:23 PM,13751.25,0,153800 +12/23/2016 9:54:24 PM,13751.25,0,153900 +12/23/2016 9:54:26 PM,13751.25,0,154000 +12/23/2016 9:54:28 PM,13751.25,0,154100 +12/23/2016 9:54:32 PM,13751.25,0,154200 +12/23/2016 9:54:34 PM,13751.25,0,154300 +12/23/2016 9:54:37 PM,13751.25,0,154400 +12/23/2016 9:54:40 PM,13751.25,0,154500 +12/23/2016 9:54:42 PM,13751.25,0,154600 +12/23/2016 9:54:45 PM,13751.25,0,154700 +12/23/2016 9:54:47 PM,13751.25,0,154800 +12/23/2016 9:54:49 PM,13751.25,0,154900 +12/23/2016 9:54:52 PM,13751.25,0,155000 +12/23/2016 9:54:55 PM,13750.95,0,155100 +12/23/2016 9:54:57 PM,13750.95,0,155200 +12/23/2016 9:55:00 PM,13750.95,0,155300 +12/23/2016 9:55:02 PM,13750.95,0,155400 +12/23/2016 9:55:05 PM,13750.95,0,155500 +12/23/2016 9:55:06 PM,13750.95,0,155600 +12/23/2016 9:55:08 PM,13750.95,0,155700 +12/23/2016 9:55:10 PM,13750.95,0,155800 +12/23/2016 9:55:12 PM,13750.95,0,155900 +12/23/2016 9:55:14 PM,13750.95,0,156000 +12/23/2016 9:55:17 PM,13750.95,0,156100 +12/23/2016 9:55:21 PM,13750.95,0,156200 +12/23/2016 9:55:23 PM,13750.95,0,156300 +12/23/2016 9:55:26 PM,13750.95,0,156400 +12/23/2016 9:55:28 PM,13750.95,0,156500 +12/23/2016 9:55:30 PM,13750.95,0,156600 +12/23/2016 9:55:32 PM,13750.95,0,156700 +12/23/2016 9:55:34 PM,13750.95,0,156800 +12/23/2016 9:55:36 PM,13750.95,0,156900 +12/23/2016 9:55:39 PM,13750.95,0,157000 +12/23/2016 9:55:41 PM,13750.95,0,157100 +12/23/2016 9:55:42 PM,13750.95,0,157200 +12/23/2016 9:55:44 PM,13750.95,0,157300 +12/23/2016 9:55:46 PM,13750.95,0,157400 +12/23/2016 9:55:48 PM,13750.95,0,157500 +12/23/2016 9:55:50 PM,13750.95,0,157600 +12/23/2016 9:55:52 PM,13750.95,0,157700 +12/23/2016 9:55:54 PM,13750.95,0,157800 +12/23/2016 9:55:57 PM,13750.95,0,157900 +12/23/2016 9:56:00 PM,13750.95,0,158000 +12/23/2016 9:56:03 PM,13750.95,0,158100 +12/23/2016 9:56:05 PM,13750.95,0,158200 +12/23/2016 9:56:08 PM,13750.95,0,158300 +12/23/2016 9:56:11 PM,13750.95,0,158400 +12/23/2016 9:56:14 PM,13750.95,0,158500 +12/23/2016 9:56:17 PM,13750.95,0,158600 +12/23/2016 9:56:19 PM,13750.95,0,158700 +12/23/2016 9:56:21 PM,13750.95,0,158800 +12/23/2016 9:56:24 PM,13750.95,0,158900 +12/23/2016 9:56:26 PM,13750.95,0,159000 +12/23/2016 9:56:28 PM,13750.95,0,159100 +12/23/2016 9:56:31 PM,13750.95,0,159200 +12/23/2016 9:56:35 PM,13750.95,0,159300 +12/23/2016 9:56:37 PM,13750.95,0,159400 +12/23/2016 9:56:39 PM,13750.95,0,159500 +12/23/2016 9:56:41 PM,13750.95,0,159600 +12/23/2016 9:56:43 PM,13750.95,0,159700 +12/23/2016 9:56:45 PM,13750.95,0,159800 +12/23/2016 9:56:48 PM,13750.95,0,159900 +12/23/2016 9:56:51 PM,13750.95,0,160000 +12/23/2016 9:56:53 PM,13750.65,0,160100 +12/23/2016 9:56:55 PM,13750.65,0,160200 +12/23/2016 9:56:57 PM,13750.65,0,160300 +12/23/2016 9:56:59 PM,13750.65,0,160400 +12/23/2016 9:57:02 PM,13750.65,0,160500 +12/23/2016 9:57:04 PM,13750.65,0,160600 +12/23/2016 9:57:06 PM,13750.65,0,160700 +12/23/2016 9:57:09 PM,13750.65,0,160800 +12/23/2016 9:57:11 PM,13750.65,0,160900 +12/23/2016 9:57:14 PM,13750.65,0,161000 +12/23/2016 9:57:17 PM,13750.65,0,161100 +12/23/2016 9:57:18 PM,13750.65,0,161200 +12/23/2016 9:57:20 PM,13750.65,0,161300 +12/23/2016 9:57:23 PM,13750.65,0,161400 +12/23/2016 9:57:25 PM,13750.65,0,161500 +12/23/2016 9:57:28 PM,13750.65,0,161600 +12/23/2016 9:57:31 PM,13750.65,0,161700 +12/23/2016 9:57:33 PM,13750.65,0,161800 +12/23/2016 9:57:35 PM,13750.65,0,161900 +12/23/2016 9:57:37 PM,13750.65,0,162000 +12/23/2016 9:57:39 PM,13750.65,0,162100 +12/23/2016 9:57:42 PM,13750.65,0,162200 +12/23/2016 9:57:45 PM,13750.65,0,162300 +12/23/2016 9:57:48 PM,13750.65,0,162400 +12/23/2016 9:57:50 PM,13750.65,0,162500 +12/23/2016 9:57:52 PM,13750.65,0,162600 +12/23/2016 9:57:54 PM,13750.65,0,162700 +12/23/2016 9:57:55 PM,13750.65,0,162800 +12/23/2016 9:57:57 PM,13750.65,0,162900 +12/23/2016 9:57:59 PM,13750.65,0,163000 +12/23/2016 9:58:01 PM,13750.65,0,163100 +12/23/2016 9:58:04 PM,13750.65,0,163200 +12/23/2016 9:58:06 PM,13750.65,0,163300 +12/23/2016 9:58:08 PM,13750.65,0,163400 +12/23/2016 9:58:10 PM,13750.65,0,163500 +12/23/2016 9:58:11 PM,13750.65,0,163600 +12/23/2016 9:58:14 PM,13750.65,0,163700 +12/23/2016 9:58:16 PM,13750.65,0,163800 +12/23/2016 9:58:18 PM,13750.65,0,163900 +12/23/2016 9:58:20 PM,13750.65,0,164000 +12/23/2016 9:58:22 PM,13750.65,0,164100 +12/23/2016 9:58:24 PM,13750.65,0,164200 +12/23/2016 9:58:26 PM,13750.65,0,164300 +12/23/2016 9:58:28 PM,13750.65,0,164400 +12/23/2016 9:58:31 PM,13750.65,0,164500 +12/23/2016 9:58:33 PM,13750.65,0,164600 +12/23/2016 9:58:35 PM,13750.65,0,164700 +12/23/2016 9:58:37 PM,13750.65,0,164800 +12/23/2016 9:58:40 PM,13750.65,0,164900 +12/23/2016 9:58:43 PM,13750.65,0,165000 +12/23/2016 9:58:45 PM,13750.35,0,165100 +12/23/2016 9:58:48 PM,13750.35,0,165200 +12/23/2016 9:58:50 PM,13750.35,0,165300 +12/23/2016 9:58:52 PM,13750.35,0,165400 +12/23/2016 9:58:54 PM,13750.35,0,165500 +12/23/2016 9:58:56 PM,13750.35,0,165600 +12/23/2016 9:58:59 PM,13750.35,0,165700 +12/23/2016 9:59:01 PM,13750.35,0,165800 +12/23/2016 9:59:02 PM,13750.35,0,165900 +12/23/2016 9:59:04 PM,13750.35,0,166000 +12/23/2016 9:59:05 PM,13750.35,0,166100 +12/23/2016 9:59:08 PM,13750.35,0,166200 +12/23/2016 9:59:10 PM,13750.35,0,166300 +12/23/2016 9:59:13 PM,13750.35,0,166400 +12/23/2016 9:59:15 PM,13750.35,0,166500 +12/23/2016 9:59:18 PM,13750.35,0,166600 +12/23/2016 9:59:20 PM,13750.35,0,166700 +12/23/2016 9:59:23 PM,13750.35,0,166800 +12/23/2016 9:59:25 PM,13750.35,0,166900 +12/23/2016 9:59:28 PM,13750.35,0,167000 +12/23/2016 9:59:30 PM,13750.35,0,167100 +12/23/2016 9:59:32 PM,13750.35,0,167200 +12/23/2016 9:59:34 PM,13750.35,0,167300 +12/23/2016 9:59:36 PM,13750.35,0,167400 +12/23/2016 9:59:38 PM,13750.35,0,167500 +12/23/2016 9:59:40 PM,13750.35,0,167600 +12/23/2016 9:59:42 PM,13750.35,0,167700 +12/23/2016 9:59:45 PM,13750.35,0,167800 +12/23/2016 9:59:48 PM,13750.35,0,167900 +12/23/2016 9:59:50 PM,13750.35,0,168000 +12/23/2016 9:59:52 PM,13750.35,0,168100 +12/23/2016 9:59:55 PM,13750.35,0,168200 +12/23/2016 9:59:57 PM,13750.35,0,168300 +12/23/2016 9:59:59 PM,13750.35,0,168400 +12/23/2016 10:00:02 PM,13750.35,0,168500 +12/23/2016 10:00:04 PM,13750.35,0,168600 +12/23/2016 10:00:07 PM,13750.35,0,168700 +12/23/2016 10:00:09 PM,13750.35,0,168800 +12/23/2016 10:00:11 PM,13750.35,0,168900 +12/23/2016 10:00:13 PM,13750.35,0,169000 +12/23/2016 10:00:17 PM,13750.35,0,169100 +12/23/2016 10:00:20 PM,13750.35,0,169200 +12/23/2016 10:00:22 PM,13750.35,0,169300 +12/23/2016 10:00:24 PM,13750.35,0,169400 +12/23/2016 10:00:27 PM,13750.35,0,169500 +12/23/2016 10:00:29 PM,13750.35,0,169600 +12/23/2016 10:00:31 PM,13750.35,0,169700 +12/23/2016 10:00:33 PM,13750.35,0,169800 +12/23/2016 10:00:36 PM,13750.35,0,169900 +12/23/2016 10:00:39 PM,13750.35,0,170000 +12/23/2016 10:00:42 PM,13750.05,0,170100 +12/23/2016 10:00:44 PM,13750.05,0,170200 +12/23/2016 10:00:46 PM,13750.05,0,170300 +12/23/2016 10:00:48 PM,13750.05,0,170400 +12/23/2016 10:00:50 PM,13750.05,0,170500 +12/23/2016 10:00:51 PM,13750.05,0,170600 +12/23/2016 10:00:54 PM,13750.05,0,170700 +12/23/2016 10:00:56 PM,13750.05,0,170800 +12/23/2016 10:00:58 PM,13750.05,0,170900 +12/23/2016 10:01:00 PM,13750.05,0,171000 +12/23/2016 10:01:02 PM,13750.05,0,171100 +12/23/2016 10:01:05 PM,13750.05,0,171200 +12/23/2016 10:01:08 PM,13750.05,0,171300 +12/23/2016 10:01:10 PM,13750.05,0,171400 +12/23/2016 10:01:12 PM,13750.05,0,171500 +12/23/2016 10:01:15 PM,13750.05,0,171600 +12/23/2016 10:01:16 PM,13750.05,0,171700 +12/23/2016 10:01:18 PM,13750.05,0,171800 +12/23/2016 10:01:19 PM,13750.05,0,171900 +12/23/2016 10:01:21 PM,13750.05,0,172000 +12/23/2016 10:01:23 PM,13750.05,0,172100 +12/23/2016 10:01:25 PM,13750.05,0,172200 +12/23/2016 10:01:26 PM,13750.05,0,172300 +12/23/2016 10:01:29 PM,13750.05,0,172400 +12/23/2016 10:01:32 PM,13750.05,0,172500 +12/23/2016 10:01:34 PM,13750.05,0,172600 +12/23/2016 10:01:36 PM,13750.05,0,172700 +12/23/2016 10:01:37 PM,13750.05,0,172800 +12/23/2016 10:01:40 PM,13750.05,0,172900 +12/23/2016 10:01:42 PM,13750.05,0,173000 +12/23/2016 10:01:44 PM,13750.05,0,173100 +12/23/2016 10:01:46 PM,13750.05,0,173200 +12/23/2016 10:01:48 PM,13750.05,0,173300 +12/23/2016 10:01:51 PM,13750.05,0,173400 +12/23/2016 10:01:53 PM,13750.05,0,173500 +12/23/2016 10:01:55 PM,13750.05,0,173600 +12/23/2016 10:01:57 PM,13750.05,0,173700 +12/23/2016 10:01:59 PM,13750.05,0,173800 +12/23/2016 10:02:02 PM,13750.05,0,173900 +12/23/2016 10:02:04 PM,13750.05,0,174000 +12/23/2016 10:02:06 PM,13750.05,0,174100 +12/23/2016 10:02:08 PM,13750.05,0,174200 +12/23/2016 10:02:11 PM,13750.05,0,174300 +12/23/2016 10:02:13 PM,13750.05,0,174400 +12/23/2016 10:02:15 PM,13750.05,0,174500 +12/23/2016 10:02:17 PM,13750.05,0,174600 +12/23/2016 10:02:19 PM,13750.05,0,174700 +12/23/2016 10:02:21 PM,13750.05,0,174800 +12/23/2016 10:02:24 PM,13750.05,0,174900 +12/23/2016 10:02:26 PM,13750.05,0,175000 +12/23/2016 10:02:28 PM,13749.75,0,175100 +12/23/2016 10:02:30 PM,13749.75,0,175200 +12/23/2016 10:02:32 PM,13749.75,0,175300 +12/23/2016 10:02:34 PM,13749.75,0,175400 +12/23/2016 10:02:36 PM,13749.75,0,175500 +12/23/2016 10:02:38 PM,13749.75,0,175600 +12/23/2016 10:02:41 PM,13749.75,0,175700 +12/23/2016 10:02:43 PM,13749.75,0,175800 +12/23/2016 10:02:45 PM,13749.75,0,175900 +12/23/2016 10:02:47 PM,13749.75,0,176000 +12/23/2016 10:02:49 PM,13749.75,0,176100 +12/23/2016 10:02:52 PM,13749.75,0,176200 +12/23/2016 10:02:54 PM,13749.75,0,176300 +12/23/2016 10:02:56 PM,13749.75,0,176400 +12/23/2016 10:02:59 PM,13749.75,0,176500 +12/23/2016 10:03:01 PM,13749.75,0,176600 +12/23/2016 10:03:03 PM,13749.75,0,176700 +12/23/2016 10:03:05 PM,13749.75,0,176800 +12/23/2016 10:03:08 PM,13749.75,0,176900 +12/23/2016 10:03:10 PM,13749.75,0,177000 +12/23/2016 10:03:13 PM,13749.75,0,177100 +12/23/2016 10:03:14 PM,13749.75,0,177200 +12/23/2016 10:03:17 PM,13749.75,0,177300 +12/23/2016 10:03:19 PM,13749.75,0,177400 +12/23/2016 10:03:21 PM,13749.75,0,177500 +12/23/2016 10:03:24 PM,13749.75,0,177600 +12/23/2016 10:03:27 PM,13749.75,0,177700 +12/23/2016 10:03:30 PM,13749.75,0,177800 +12/23/2016 10:03:33 PM,13749.75,0,177900 +12/23/2016 10:03:35 PM,13749.75,0,178000 +12/23/2016 10:03:38 PM,13749.75,0,178100 +12/23/2016 10:03:40 PM,13749.75,0,178200 +12/23/2016 10:03:43 PM,13749.75,0,178300 +12/23/2016 10:03:45 PM,13749.75,0,178400 +12/23/2016 10:03:47 PM,13749.75,0,178500 +12/23/2016 10:03:50 PM,13749.75,0,178600 +12/23/2016 10:03:52 PM,13749.75,0,178700 +12/23/2016 10:03:55 PM,13749.75,0,178800 +12/23/2016 10:03:58 PM,13749.75,0,178900 +12/23/2016 10:04:00 PM,13749.75,0,179000 +12/23/2016 10:04:02 PM,13749.75,0,179100 +12/23/2016 10:04:04 PM,13749.75,0,179200 +12/23/2016 10:04:07 PM,13749.75,0,179300 +12/23/2016 10:04:09 PM,13749.75,0,179400 +12/23/2016 10:04:11 PM,13749.75,0,179500 +12/23/2016 10:04:13 PM,13749.75,0,179600 +12/23/2016 10:04:15 PM,13749.75,0,179700 +12/23/2016 10:04:17 PM,13749.75,0,179800 +12/23/2016 10:04:19 PM,13749.75,0,179900 +12/23/2016 10:04:21 PM,13749.75,0,180000 +12/23/2016 10:04:23 PM,13749.45,0,180100 +12/23/2016 10:04:26 PM,13749.45,0,180200 +12/23/2016 10:04:29 PM,13749.45,0,180300 +12/23/2016 10:04:31 PM,13749.45,0,180400 +12/23/2016 10:04:33 PM,13749.45,0,180500 +12/23/2016 10:04:35 PM,13749.45,0,180600 +12/23/2016 10:04:37 PM,13749.45,0,180700 +12/23/2016 10:04:39 PM,13749.45,0,180800 +12/23/2016 10:04:41 PM,13749.45,0,180900 +12/23/2016 10:04:44 PM,13749.45,0,181000 +12/23/2016 10:04:47 PM,13749.45,0,181100 +12/23/2016 10:04:49 PM,13749.45,0,181200 +12/23/2016 10:04:52 PM,13749.45,0,181300 +12/23/2016 10:04:56 PM,13749.45,0,181400 +12/23/2016 10:04:58 PM,13749.45,0,181500 +12/23/2016 10:05:00 PM,13749.45,0,181600 +12/23/2016 10:05:02 PM,13749.45,0,181700 +12/23/2016 10:05:05 PM,13749.45,0,181800 +12/23/2016 10:05:07 PM,13749.45,0,181900 +12/23/2016 10:05:10 PM,13749.45,0,182000 +12/23/2016 10:05:12 PM,13749.45,0,182100 +12/23/2016 10:05:15 PM,13749.45,0,182200 +12/23/2016 10:05:16 PM,13749.45,0,182300 +12/23/2016 10:05:19 PM,13749.45,0,182400 +12/23/2016 10:05:21 PM,13749.45,0,182500 +12/23/2016 10:05:23 PM,13749.45,0,182600 +12/23/2016 10:05:26 PM,13749.45,0,182700 +12/23/2016 10:05:28 PM,13749.45,0,182800 +12/23/2016 10:05:30 PM,13749.45,0,182900 +12/23/2016 10:05:33 PM,13749.45,0,183000 +12/23/2016 10:05:35 PM,13749.45,0,183100 +12/23/2016 10:05:37 PM,13749.45,0,183200 +12/23/2016 10:05:40 PM,13749.45,0,183300 +12/23/2016 10:05:42 PM,13749.45,0,183400 +12/23/2016 10:05:44 PM,13749.45,0,183500 +12/23/2016 10:05:46 PM,13749.45,0,183600 +12/23/2016 10:05:49 PM,13749.45,0,183700 +12/23/2016 10:05:51 PM,13749.45,0,183800 +12/23/2016 10:05:54 PM,13749.45,0,183900 +12/23/2016 10:05:55 PM,13749.45,0,184000 +12/23/2016 10:05:58 PM,13749.45,0,184100 +12/23/2016 10:06:00 PM,13749.45,0,184200 +12/23/2016 10:06:03 PM,13749.45,0,184300 +12/23/2016 10:06:05 PM,13749.45,0,184400 +12/23/2016 10:06:07 PM,13749.45,0,184500 +12/23/2016 10:06:10 PM,13749.45,0,184600 +12/23/2016 10:06:15 PM,13749.45,0,184700 +12/23/2016 10:06:18 PM,13749.45,0,184800 +12/23/2016 10:06:20 PM,13749.45,0,184900 +12/23/2016 10:06:22 PM,13749.45,0,185000 +12/23/2016 10:06:24 PM,13749.15,0,185100 +12/23/2016 10:06:26 PM,13749.15,0,185200 +12/23/2016 10:06:28 PM,13749.15,0,185300 +12/23/2016 10:06:30 PM,13749.15,0,185400 +12/23/2016 10:06:34 PM,13749.15,0,185500 +12/23/2016 10:06:36 PM,13749.15,0,185600 +12/23/2016 10:06:38 PM,13749.15,0,185700 +12/23/2016 10:06:41 PM,13749.15,0,185800 +12/23/2016 10:06:42 PM,13749.15,0,185900 +12/23/2016 10:06:44 PM,13749.15,0,186000 +12/23/2016 10:06:46 PM,13749.15,0,186100 +12/23/2016 10:06:48 PM,13749.15,0,186200 +12/23/2016 10:06:50 PM,13749.15,0,186300 +12/23/2016 10:06:52 PM,13749.15,0,186400 +12/23/2016 10:06:54 PM,13749.15,0,186500 +12/23/2016 10:06:57 PM,13749.15,0,186600 +12/23/2016 10:06:58 PM,13749.15,0,186700 +12/23/2016 10:07:00 PM,13749.15,0,186800 +12/23/2016 10:07:02 PM,13749.15,0,186900 +12/23/2016 10:07:04 PM,13749.15,0,187000 +12/23/2016 10:07:07 PM,13749.15,0,187100 +12/23/2016 10:07:09 PM,13749.15,0,187200 +12/23/2016 10:07:11 PM,13749.15,0,187300 +12/23/2016 10:07:14 PM,13749.15,0,187400 +12/23/2016 10:07:16 PM,13749.15,0,187500 +12/23/2016 10:07:18 PM,13749.15,0,187600 +12/23/2016 10:07:20 PM,13749.15,0,187700 +12/23/2016 10:07:23 PM,13749.15,0,187800 +12/23/2016 10:07:25 PM,13749.15,0,187900 +12/23/2016 10:07:27 PM,13749.15,0,188000 +12/23/2016 10:07:29 PM,13749.15,0,188100 +12/23/2016 10:07:31 PM,13749.15,0,188200 +12/23/2016 10:07:33 PM,13749.15,0,188300 +12/23/2016 10:07:35 PM,13749.15,0,188400 +12/23/2016 10:07:37 PM,13749.15,0,188500 +12/23/2016 10:07:39 PM,13749.15,0,188600 +12/23/2016 10:07:41 PM,13749.15,0,188700 +12/23/2016 10:07:43 PM,13749.15,0,188800 +12/23/2016 10:07:46 PM,13749.15,0,188900 +12/23/2016 10:07:49 PM,13749.15,0,189000 +12/23/2016 10:07:51 PM,13749.15,0,189100 +12/23/2016 10:07:53 PM,13749.15,0,189200 +12/23/2016 10:07:55 PM,13749.15,0,189300 +12/23/2016 10:07:58 PM,13749.15,0,189400 +12/23/2016 10:08:01 PM,13749.15,0,189500 +12/23/2016 10:08:03 PM,13749.15,0,189600 +12/23/2016 10:08:05 PM,13749.15,0,189700 +12/23/2016 10:08:08 PM,13749.15,0,189800 +12/23/2016 10:08:10 PM,13749.15,0,189900 +12/23/2016 10:08:12 PM,13749.15,0,190000 +12/23/2016 10:08:14 PM,13748.85,0,190100 +12/23/2016 10:08:16 PM,13748.85,0,190200 +12/23/2016 10:08:18 PM,13748.85,0,190300 +12/23/2016 10:08:20 PM,13748.85,0,190400 +12/23/2016 10:08:22 PM,13748.85,0,190500 +12/23/2016 10:08:25 PM,13748.85,0,190600 +12/23/2016 10:08:27 PM,13748.85,0,190700 +12/23/2016 10:08:31 PM,13748.85,0,190800 +12/23/2016 10:08:33 PM,13748.85,0,190900 +12/23/2016 10:08:35 PM,13748.85,0,191000 +12/23/2016 10:08:37 PM,13748.85,0,191100 +12/23/2016 10:08:39 PM,13748.85,0,191200 +12/23/2016 10:08:41 PM,13748.85,0,191300 +12/23/2016 10:08:44 PM,13748.85,0,191400 +12/23/2016 10:08:46 PM,13748.85,0,191500 +12/23/2016 10:08:49 PM,13748.85,0,191600 +12/23/2016 10:08:51 PM,13748.85,0,191700 +12/23/2016 10:08:54 PM,13748.85,0,191800 +12/23/2016 10:08:56 PM,13748.85,0,191900 +12/23/2016 10:08:59 PM,13748.85,0,192000 +12/23/2016 10:09:01 PM,13748.85,0,192100 +12/23/2016 10:09:03 PM,13748.85,0,192200 +12/23/2016 10:09:06 PM,13748.85,0,192300 +12/23/2016 10:09:10 PM,13748.85,0,192400 +12/23/2016 10:09:13 PM,13748.85,0,192500 +12/23/2016 10:09:16 PM,13748.85,0,192600 +12/23/2016 10:09:18 PM,13748.85,0,192700 +12/23/2016 10:09:20 PM,13748.85,0,192800 +12/23/2016 10:09:22 PM,13748.85,0,192900 +12/23/2016 10:09:25 PM,13748.85,0,193000 +12/23/2016 10:09:27 PM,13748.85,0,193100 +12/23/2016 10:09:30 PM,13748.85,0,193200 +12/23/2016 10:09:32 PM,13748.85,0,193300 +12/23/2016 10:09:33 PM,13748.85,0,193400 +12/23/2016 10:09:36 PM,13748.85,0,193500 +12/23/2016 10:09:38 PM,13748.85,0,193600 +12/23/2016 10:09:39 PM,13748.85,0,193700 +12/23/2016 10:09:41 PM,13748.85,0,193800 +12/23/2016 10:09:44 PM,13748.85,0,193900 +12/23/2016 10:09:48 PM,13748.85,0,194000 +12/23/2016 10:09:51 PM,13748.85,0,194100 +12/23/2016 10:09:53 PM,13748.85,0,194200 +12/23/2016 10:09:56 PM,13748.85,0,194300 +12/23/2016 10:09:59 PM,13748.85,0,194400 +12/23/2016 10:10:02 PM,13748.85,0,194500 +12/23/2016 10:10:05 PM,13748.85,0,194600 +12/23/2016 10:10:07 PM,13748.85,0,194700 +12/23/2016 10:10:09 PM,13748.85,0,194800 +12/23/2016 10:10:11 PM,13748.85,0,194900 +12/23/2016 10:10:13 PM,13748.85,0,195000 +12/23/2016 10:10:15 PM,13748.55,0,195100 +12/23/2016 10:10:18 PM,13748.55,0,195200 +12/23/2016 10:10:20 PM,13748.55,0,195300 +12/23/2016 10:10:24 PM,13748.55,0,195400 +12/23/2016 10:10:27 PM,13748.55,0,195500 +12/23/2016 10:10:29 PM,13748.55,0,195600 +12/23/2016 10:10:31 PM,13748.55,0,195700 +12/23/2016 10:10:34 PM,13748.55,0,195800 +12/23/2016 10:10:36 PM,13748.55,0,195900 +12/23/2016 10:10:38 PM,13748.55,0,196000 +12/23/2016 10:10:39 PM,13748.55,0,196100 +12/23/2016 10:10:42 PM,13748.55,0,196200 +12/23/2016 10:10:44 PM,13748.55,0,196300 +12/23/2016 10:10:47 PM,13748.55,0,196400 +12/23/2016 10:10:49 PM,13748.55,0,196500 +12/23/2016 10:10:51 PM,13748.55,0,196600 +12/23/2016 10:10:54 PM,13748.55,0,196700 +12/23/2016 10:10:55 PM,13748.55,0,196800 +12/23/2016 10:10:57 PM,13748.55,0,196900 +12/23/2016 10:11:00 PM,13748.55,0,197000 +12/23/2016 10:11:02 PM,13748.55,0,197100 +12/23/2016 10:11:04 PM,13748.55,0,197200 +12/23/2016 10:11:07 PM,13748.55,0,197300 +12/23/2016 10:11:08 PM,13748.55,0,197400 +12/23/2016 10:11:11 PM,13748.55,0,197500 +12/23/2016 10:11:13 PM,13748.55,0,197600 +12/23/2016 10:11:16 PM,13748.55,0,197700 +12/23/2016 10:11:19 PM,13748.55,0,197800 +12/23/2016 10:11:21 PM,13748.55,0,197900 +12/23/2016 10:11:24 PM,13748.55,0,198000 +12/23/2016 10:11:26 PM,13748.55,0,198100 +12/23/2016 10:11:29 PM,13748.55,0,198200 +12/23/2016 10:11:31 PM,13748.55,0,198300 +12/23/2016 10:11:33 PM,13748.55,0,198400 +12/23/2016 10:11:35 PM,13748.55,0,198500 +12/23/2016 10:11:38 PM,13748.55,0,198600 +12/23/2016 10:11:40 PM,13748.55,0,198700 +12/23/2016 10:11:42 PM,13748.55,0,198800 +12/23/2016 10:11:44 PM,13748.55,0,198900 +12/23/2016 10:11:47 PM,13748.55,0,199000 +12/23/2016 10:11:48 PM,13748.55,0,199100 +12/23/2016 10:11:51 PM,13748.55,0,199200 +12/23/2016 10:11:54 PM,13748.55,0,199300 +12/23/2016 10:11:57 PM,13748.55,0,199400 +12/23/2016 10:11:59 PM,13748.55,0,199500 +12/23/2016 10:12:02 PM,13748.55,0,199600 +12/23/2016 10:12:04 PM,13748.55,0,199700 +12/23/2016 10:12:06 PM,13748.55,0,199800 +12/23/2016 10:12:08 PM,13748.55,0,199900 +12/23/2016 10:12:10 PM,13748.55,0,200000 +12/23/2016 10:12:12 PM,13748.25,0,200100 +12/23/2016 10:12:14 PM,13748.25,0,200200 +12/23/2016 10:12:16 PM,13748.25,0,200300 +12/23/2016 10:12:19 PM,13748.25,0,200400 +12/23/2016 10:12:21 PM,13748.25,0,200500 +12/23/2016 10:12:23 PM,13748.25,0,200600 +12/23/2016 10:12:25 PM,13748.25,0,200700 +12/23/2016 10:12:27 PM,13748.25,0,200800 +12/23/2016 10:12:29 PM,13748.25,0,200900 +12/23/2016 10:12:31 PM,13748.25,0,201000 +12/23/2016 10:12:33 PM,13748.25,0,201100 +12/23/2016 10:12:36 PM,13748.25,0,201200 +12/23/2016 10:12:38 PM,13748.25,0,201300 +12/23/2016 10:12:40 PM,13748.25,0,201400 +12/23/2016 10:12:43 PM,13748.25,0,201500 +12/23/2016 10:12:46 PM,13748.25,0,201600 +12/23/2016 10:12:48 PM,13748.25,0,201700 +12/23/2016 10:12:50 PM,13748.25,0,201800 +12/23/2016 10:12:53 PM,13748.25,0,201900 +12/23/2016 10:12:55 PM,13748.25,0,202000 +12/23/2016 10:12:57 PM,13748.25,0,202100 +12/23/2016 10:12:59 PM,13748.25,0,202200 +12/23/2016 10:13:02 PM,13748.25,0,202300 +12/23/2016 10:13:04 PM,13748.25,0,202400 +12/23/2016 10:13:07 PM,13748.25,0,202500 +12/23/2016 10:13:09 PM,13748.25,0,202600 +12/23/2016 10:13:12 PM,13748.25,0,202700 +12/23/2016 10:13:13 PM,13748.25,0,202800 +12/23/2016 10:13:16 PM,13748.25,0,202900 +12/23/2016 10:13:17 PM,13748.25,0,203000 +12/23/2016 10:13:19 PM,13748.25,0,203100 +12/23/2016 10:13:21 PM,13748.25,0,203200 +12/23/2016 10:13:23 PM,13748.25,0,203300 +12/23/2016 10:13:26 PM,13748.25,0,203400 +12/23/2016 10:13:30 PM,13748.25,0,203500 +12/23/2016 10:13:33 PM,13748.25,0,203600 +12/23/2016 10:13:35 PM,13748.25,0,203700 +12/23/2016 10:13:38 PM,13748.25,0,203800 +12/23/2016 10:13:41 PM,13748.25,0,203900 +12/23/2016 10:13:43 PM,13748.25,0,204000 +12/23/2016 10:13:45 PM,13748.25,0,204100 +12/23/2016 10:13:48 PM,13748.25,0,204200 +12/23/2016 10:13:50 PM,13748.25,0,204300 +12/23/2016 10:13:52 PM,13748.25,0,204400 +12/23/2016 10:13:55 PM,13748.25,0,204500 +12/23/2016 10:13:57 PM,13748.25,0,204600 +12/23/2016 10:14:00 PM,13748.25,0,204700 +12/23/2016 10:14:02 PM,13748.25,0,204800 +12/23/2016 10:14:05 PM,13748.25,0,204900 +12/23/2016 10:14:07 PM,13748.25,0,205000 +12/23/2016 10:14:09 PM,13747.95,0,205100 +12/23/2016 10:14:11 PM,13747.95,0,205200 +12/23/2016 10:14:13 PM,13747.95,0,205300 +12/23/2016 10:14:16 PM,13747.95,0,205400 +12/23/2016 10:14:19 PM,13747.95,0,205500 +12/23/2016 10:14:21 PM,13747.95,0,205600 +12/23/2016 10:14:24 PM,13747.95,0,205700 +12/23/2016 10:14:26 PM,13747.95,0,205800 +12/23/2016 10:14:28 PM,13747.95,0,205900 +12/23/2016 10:14:30 PM,13747.95,0,206000 +12/23/2016 10:14:33 PM,13747.95,0,206100 +12/23/2016 10:14:36 PM,13747.95,0,206200 +12/23/2016 10:14:38 PM,13747.95,0,206300 +12/23/2016 10:14:40 PM,13747.95,0,206400 +12/23/2016 10:14:42 PM,13747.95,0,206500 +12/23/2016 10:14:44 PM,13747.95,0,206600 +12/23/2016 10:14:47 PM,13747.95,0,206700 +12/23/2016 10:14:49 PM,13747.95,0,206800 +12/23/2016 10:14:50 PM,13747.95,0,206900 +12/23/2016 10:14:53 PM,13747.95,0,207000 +12/23/2016 10:14:56 PM,13747.95,0,207100 +12/23/2016 10:14:58 PM,13747.95,0,207200 +12/23/2016 10:15:00 PM,13747.95,0,207300 +12/23/2016 10:15:02 PM,13747.95,0,207400 +12/23/2016 10:15:04 PM,13747.95,0,207500 +12/23/2016 10:15:07 PM,13747.95,0,207600 +12/23/2016 10:15:09 PM,13747.95,0,207700 +12/23/2016 10:15:11 PM,13747.95,0,207800 +12/23/2016 10:15:14 PM,13747.95,0,207900 +12/23/2016 10:15:16 PM,13747.95,0,208000 +12/23/2016 10:15:18 PM,13747.95,0,208100 +12/23/2016 10:15:20 PM,13747.95,0,208200 +12/23/2016 10:15:22 PM,13747.95,0,208300 +12/23/2016 10:15:24 PM,13747.95,0,208400 +12/23/2016 10:15:27 PM,13747.95,0,208500 +12/23/2016 10:15:29 PM,13747.95,0,208600 +12/23/2016 10:15:32 PM,13747.95,0,208700 +12/23/2016 10:15:34 PM,13747.95,0,208800 +12/23/2016 10:15:37 PM,13747.95,0,208900 +12/23/2016 10:15:39 PM,13747.95,0,209000 +12/23/2016 10:15:41 PM,13747.95,0,209100 +12/23/2016 10:15:44 PM,13747.95,0,209200 +12/23/2016 10:15:46 PM,13747.95,0,209300 +12/23/2016 10:15:48 PM,13747.95,0,209400 +12/23/2016 10:15:50 PM,13747.95,0,209500 +12/23/2016 10:15:52 PM,13747.95,0,209600 +12/23/2016 10:15:55 PM,13747.95,0,209700 +12/23/2016 10:15:57 PM,13747.95,0,209800 +12/23/2016 10:15:59 PM,13747.95,0,209900 +12/23/2016 10:16:01 PM,13747.95,0,210000 +12/23/2016 10:16:04 PM,13747.65,0,210100 +12/23/2016 10:16:05 PM,13747.65,0,210200 +12/23/2016 10:16:08 PM,13747.65,0,210300 +12/23/2016 10:16:10 PM,13747.65,0,210400 +12/23/2016 10:16:13 PM,13747.65,0,210500 +12/23/2016 10:16:16 PM,13747.65,0,210600 +12/23/2016 10:16:20 PM,13747.65,0,210700 +12/23/2016 10:16:23 PM,13747.65,0,210800 +12/23/2016 10:16:25 PM,13747.65,0,210900 +12/23/2016 10:16:28 PM,13747.65,0,211000 +12/23/2016 10:16:31 PM,13747.65,0,211100 +12/23/2016 10:16:33 PM,13747.65,0,211200 +12/23/2016 10:16:36 PM,13747.65,0,211300 +12/23/2016 10:16:39 PM,13747.65,0,211400 +12/23/2016 10:16:42 PM,13747.65,0,211500 +12/23/2016 10:16:45 PM,13747.65,0,211600 +12/23/2016 10:16:48 PM,13747.65,0,211700 +12/23/2016 10:16:50 PM,13747.65,0,211800 +12/23/2016 10:16:51 PM,13747.65,0,211900 +12/23/2016 10:16:54 PM,13747.65,0,212000 +12/23/2016 10:16:56 PM,13747.65,0,212100 +12/23/2016 10:16:58 PM,13747.65,0,212200 +12/23/2016 10:17:01 PM,13747.65,0,212300 +12/23/2016 10:17:02 PM,13747.65,0,212400 +12/23/2016 10:17:05 PM,13747.65,0,212500 +12/23/2016 10:17:07 PM,13747.65,0,212600 +12/23/2016 10:17:09 PM,13747.65,0,212700 +12/23/2016 10:17:11 PM,13747.65,0,212800 +12/23/2016 10:17:14 PM,13747.65,0,212900 +12/23/2016 10:17:18 PM,13747.65,0,213000 +12/23/2016 10:17:21 PM,13747.65,0,213100 +12/23/2016 10:17:23 PM,13747.65,0,213200 +12/23/2016 10:17:26 PM,13747.65,0,213300 +12/23/2016 10:17:29 PM,13747.65,0,213400 +12/23/2016 10:17:32 PM,13747.65,0,213500 +12/23/2016 10:17:34 PM,13747.65,0,213600 +12/23/2016 10:17:36 PM,13747.65,0,213700 +12/23/2016 10:17:38 PM,13747.65,0,213800 +12/23/2016 10:17:40 PM,13747.65,0,213900 +12/23/2016 10:17:43 PM,13747.65,0,214000 +12/23/2016 10:17:45 PM,13747.65,0,214100 +12/23/2016 10:17:47 PM,13747.65,0,214200 +12/23/2016 10:17:50 PM,13747.65,0,214300 +12/23/2016 10:17:53 PM,13747.65,0,214400 +12/23/2016 10:17:56 PM,13747.65,0,214500 +12/23/2016 10:17:59 PM,13747.65,0,214600 +12/23/2016 10:18:01 PM,13747.65,0,214700 +12/23/2016 10:18:03 PM,13747.65,0,214800 +12/23/2016 10:18:06 PM,13747.65,0,214900 +12/23/2016 10:18:08 PM,13747.65,0,215000 +12/23/2016 10:18:11 PM,13747.35,0,215100 +12/23/2016 10:18:14 PM,13747.35,0,215200 +12/23/2016 10:18:16 PM,13747.35,0,215300 +12/23/2016 10:18:19 PM,13747.35,0,215400 +12/23/2016 10:18:22 PM,13747.35,0,215500 +12/23/2016 10:18:24 PM,13747.35,0,215600 +12/23/2016 10:18:26 PM,13747.35,0,215700 +12/23/2016 10:18:28 PM,13747.35,0,215800 +12/23/2016 10:18:30 PM,13747.35,0,215900 +12/23/2016 10:18:32 PM,13747.35,0,216000 +12/23/2016 10:18:35 PM,13747.35,0,216100 +12/23/2016 10:18:37 PM,13747.35,0,216200 +12/23/2016 10:18:38 PM,13747.35,0,216300 +12/23/2016 10:18:40 PM,13747.35,0,216400 +12/23/2016 10:18:43 PM,13747.35,0,216500 +12/23/2016 10:18:45 PM,13747.35,0,216600 +12/23/2016 10:18:48 PM,13747.35,0,216700 +12/23/2016 10:18:52 PM,13747.35,0,216800 +12/23/2016 10:18:53 PM,13747.35,0,216900 +12/23/2016 10:18:55 PM,13747.35,0,217000 +12/23/2016 10:18:57 PM,13747.35,0,217100 +12/23/2016 10:19:00 PM,13747.35,0,217200 +12/23/2016 10:19:02 PM,13747.35,0,217300 +12/23/2016 10:19:05 PM,13747.35,0,217400 +12/23/2016 10:19:07 PM,13747.35,0,217500 +12/23/2016 10:19:10 PM,13747.35,0,217600 +12/23/2016 10:19:12 PM,13747.35,0,217700 +12/23/2016 10:19:15 PM,13747.35,0,217800 +12/23/2016 10:19:17 PM,13747.35,0,217900 +12/23/2016 10:19:20 PM,13747.35,0,218000 +12/23/2016 10:19:22 PM,13747.35,0,218100 +12/23/2016 10:19:24 PM,13747.35,0,218200 +12/23/2016 10:19:26 PM,13747.35,0,218300 +12/23/2016 10:19:28 PM,13747.35,0,218400 +12/23/2016 10:19:31 PM,13747.35,0,218500 +12/23/2016 10:19:34 PM,13747.35,0,218600 +12/23/2016 10:19:36 PM,13747.35,0,218700 +12/23/2016 10:19:39 PM,13747.35,0,218800 +12/23/2016 10:19:41 PM,13747.35,0,218900 +12/23/2016 10:19:44 PM,13747.35,0,219000 +12/23/2016 10:19:47 PM,13747.35,0,219100 +12/23/2016 10:19:49 PM,13747.35,0,219200 +12/23/2016 10:19:51 PM,13747.35,0,219300 +12/23/2016 10:19:53 PM,13747.35,0,219400 +12/23/2016 10:19:55 PM,13747.35,0,219500 +12/23/2016 10:19:58 PM,13747.35,0,219600 +12/23/2016 10:20:01 PM,13747.35,0,219700 +12/23/2016 10:20:02 PM,13747.35,0,219800 +12/23/2016 10:20:04 PM,13747.35,0,219900 +12/23/2016 10:20:07 PM,13747.35,0,220000 +12/23/2016 10:20:10 PM,13747.35,0,220100 +12/23/2016 10:20:12 PM,13747.35,0,220200 +12/23/2016 10:20:15 PM,13747.35,0,220300 +12/23/2016 10:20:17 PM,13747.35,0,220400 +12/23/2016 10:20:20 PM,13747.35,0,220500 +12/23/2016 10:20:22 PM,13747.35,0,220600 +12/23/2016 10:20:24 PM,13747.35,0,220700 +12/23/2016 10:20:26 PM,13747.35,0,220800 +12/23/2016 10:20:28 PM,13747.35,0,220900 +12/23/2016 10:20:31 PM,13747.35,0,221000 +12/23/2016 10:20:33 PM,13747.35,0,221100 +12/23/2016 10:20:36 PM,13747.35,0,221200 +12/23/2016 10:20:38 PM,13747.35,0,221300 +12/23/2016 10:20:40 PM,13747.35,0,221400 +12/23/2016 10:20:42 PM,13747.35,0,221500 +12/23/2016 10:20:44 PM,13747.35,0,221600 +12/23/2016 10:20:47 PM,13747.35,0,221700 +12/23/2016 10:20:49 PM,13747.35,0,221800 +12/23/2016 10:20:50 PM,13747.35,0,221900 +12/23/2016 10:20:53 PM,13747.35,0,222000 +12/23/2016 10:20:55 PM,13747.35,0,222100 +12/23/2016 10:20:57 PM,13747.35,0,222200 +12/23/2016 10:20:59 PM,13747.35,0,222300 +12/23/2016 10:21:01 PM,13747.35,0,222400 +12/23/2016 10:21:05 PM,13747.35,0,222500 +12/23/2016 10:21:07 PM,13747.35,0,222600 +12/23/2016 10:21:10 PM,13747.35,0,222700 +12/23/2016 10:21:13 PM,13747.35,0,222800 +12/23/2016 10:21:15 PM,13747.35,0,222900 +12/23/2016 10:21:17 PM,13747.35,0,223000 +12/23/2016 10:21:19 PM,13747.35,0,223100 +12/23/2016 10:21:21 PM,13747.35,0,223200 +12/23/2016 10:21:23 PM,13747.35,0,223300 +12/23/2016 10:21:25 PM,13747.35,0,223400 +12/23/2016 10:21:28 PM,13747.35,0,223500 +12/23/2016 10:21:30 PM,13747.35,0,223600 +12/23/2016 10:21:33 PM,13747.35,0,223700 +12/23/2016 10:21:35 PM,13747.35,0,223800 +12/23/2016 10:21:38 PM,13747.35,0,223900 +12/23/2016 10:21:41 PM,13747.35,0,224000 +12/23/2016 10:21:44 PM,13747.35,0,224100 +12/23/2016 10:21:46 PM,13747.35,0,224200 +12/23/2016 10:21:49 PM,13747.35,0,224300 +12/23/2016 10:21:52 PM,13747.35,0,224400 +12/23/2016 10:21:55 PM,13747.35,0,224500 +12/23/2016 10:21:57 PM,13747.35,0,224600 +12/23/2016 10:22:00 PM,13747.35,0,224700 +12/23/2016 10:22:03 PM,13747.35,0,224800 +12/23/2016 10:22:06 PM,13747.35,0,224900 +12/23/2016 10:22:09 PM,13747.35,0,225000 +12/23/2016 10:22:11 PM,13747.35,0,225100 +12/23/2016 10:22:13 PM,13747.35,0,225200 +12/23/2016 10:22:16 PM,13747.35,0,225300 +12/23/2016 10:22:18 PM,13747.35,0,225400 +12/23/2016 10:22:21 PM,13747.35,0,225500 +12/23/2016 10:22:23 PM,13747.35,0,225600 +12/23/2016 10:22:26 PM,13747.35,0,225700 +12/23/2016 10:22:28 PM,13747.35,0,225800 +12/23/2016 10:22:30 PM,13747.35,0,225900 +12/23/2016 10:22:32 PM,13747.35,0,226000 +12/23/2016 10:22:36 PM,13747.35,0,226100 +12/23/2016 10:22:38 PM,13747.35,0,226200 +12/23/2016 10:22:40 PM,13747.35,0,226300 +12/23/2016 10:22:43 PM,13747.35,0,226400 +12/23/2016 10:22:45 PM,13747.35,0,226500 +12/23/2016 10:22:48 PM,13747.35,0,226600 +12/23/2016 10:22:50 PM,13747.35,0,226700 +12/23/2016 10:22:53 PM,13747.35,0,226800 +12/23/2016 10:22:55 PM,13747.35,0,226900 +12/23/2016 10:22:58 PM,13747.35,0,227000 +12/23/2016 10:23:00 PM,13747.35,0,227100 +12/23/2016 10:23:04 PM,13747.35,0,227200 +12/23/2016 10:23:06 PM,13747.35,0,227300 +12/23/2016 10:23:08 PM,13747.35,0,227400 +12/23/2016 10:23:10 PM,13747.35,0,227500 +12/23/2016 10:23:13 PM,13747.35,0,227600 +12/23/2016 10:23:15 PM,13747.35,0,227700 +12/23/2016 10:23:17 PM,13747.35,0,227800 +12/23/2016 10:23:19 PM,13747.35,0,227900 +12/23/2016 10:23:21 PM,13747.35,0,228000 +12/23/2016 10:23:23 PM,13747.35,0,228100 +12/23/2016 10:23:26 PM,13747.35,0,228200 +12/23/2016 10:23:28 PM,13747.35,0,228300 +12/23/2016 10:23:31 PM,13747.35,0,228400 +12/23/2016 10:23:34 PM,13747.35,0,228500 +12/23/2016 10:23:36 PM,13747.35,0,228600 +12/23/2016 10:23:39 PM,13747.35,0,228700 +12/23/2016 10:23:41 PM,13747.35,0,228800 +12/23/2016 10:23:43 PM,13747.35,0,228900 +12/23/2016 10:23:45 PM,13747.35,0,229000 +12/23/2016 10:23:47 PM,13747.35,0,229100 +12/23/2016 10:23:49 PM,13747.35,0,229200 +12/23/2016 10:23:51 PM,13747.35,0,229300 +12/23/2016 10:23:54 PM,13747.35,0,229400 +12/23/2016 10:23:56 PM,13747.35,0,229500 +12/23/2016 10:23:58 PM,13747.35,0,229600 +12/23/2016 10:24:01 PM,13747.35,0,229700 +12/23/2016 10:24:04 PM,13747.35,0,229800 +12/23/2016 10:24:06 PM,13747.35,0,229900 +12/23/2016 10:24:08 PM,13747.35,0,230000 +12/23/2016 10:24:11 PM,13747.35,0,230100 +12/23/2016 10:24:13 PM,13747.35,0,230200 +12/23/2016 10:24:15 PM,13747.35,0,230300 +12/23/2016 10:24:17 PM,13747.35,0,230400 +12/23/2016 10:24:21 PM,13747.35,0,230500 +12/23/2016 10:24:23 PM,13747.35,0,230600 +12/23/2016 10:24:26 PM,13747.35,0,230700 +12/23/2016 10:24:28 PM,13747.35,0,230800 +12/23/2016 10:24:30 PM,13747.35,0,230900 +12/23/2016 10:24:33 PM,13747.35,0,231000 +12/23/2016 10:24:35 PM,13747.35,0,231100 +12/23/2016 10:24:36 PM,13747.35,0,231200 +12/23/2016 10:24:39 PM,13747.35,0,231300 +12/23/2016 10:24:41 PM,13747.35,0,231400 +12/23/2016 10:24:43 PM,13747.35,0,231500 +12/23/2016 10:24:46 PM,13747.35,0,231600 +12/23/2016 10:24:48 PM,13747.35,0,231700 +12/23/2016 10:24:50 PM,13747.35,0,231800 +12/23/2016 10:24:52 PM,13747.35,0,231900 +12/23/2016 10:24:54 PM,13747.35,0,232000 +12/23/2016 10:24:55 PM,13747.35,0,232100 +12/23/2016 10:24:58 PM,13747.35,0,232200 +12/23/2016 10:25:01 PM,13747.35,0,232300 +12/23/2016 10:25:03 PM,13747.35,0,232400 +12/23/2016 10:25:06 PM,13747.35,0,232500 +12/23/2016 10:25:08 PM,13747.35,0,232600 +12/23/2016 10:25:11 PM,13747.35,0,232700 +12/23/2016 10:25:14 PM,13747.35,0,232800 +12/23/2016 10:25:17 PM,13747.35,0,232900 +12/23/2016 10:25:18 PM,13747.35,0,233000 +12/23/2016 10:25:20 PM,13747.35,0,233100 +12/23/2016 10:25:23 PM,13747.35,0,233200 +12/23/2016 10:25:25 PM,13747.35,0,233300 +12/23/2016 10:25:27 PM,13747.35,0,233400 +12/23/2016 10:25:29 PM,13747.35,0,233500 +12/23/2016 10:25:33 PM,13747.35,0,233600 +12/23/2016 10:25:35 PM,13747.35,0,233700 +12/23/2016 10:25:37 PM,13747.35,0,233800 +12/23/2016 10:25:39 PM,13747.35,0,233900 +12/23/2016 10:25:42 PM,13747.35,0,234000 +12/23/2016 10:25:44 PM,13747.35,0,234100 +12/23/2016 10:25:46 PM,13747.35,0,234200 +12/23/2016 10:25:48 PM,13747.35,0,234300 +12/23/2016 10:25:50 PM,13747.35,0,234400 +12/23/2016 10:25:53 PM,13747.35,0,234500 +12/23/2016 10:25:56 PM,13747.35,0,234600 +12/23/2016 10:25:58 PM,13747.35,0,234700 +12/23/2016 10:26:01 PM,13747.35,0,234800 +12/23/2016 10:26:03 PM,13747.35,0,234900 +12/23/2016 10:26:05 PM,13747.35,0,235000 +12/23/2016 10:26:06 PM,13747.35,0,235100 +12/23/2016 10:26:09 PM,13747.35,0,235200 +12/23/2016 10:26:11 PM,13747.35,0,235300 +12/23/2016 10:26:13 PM,13747.35,0,235400 +12/23/2016 10:26:16 PM,13747.35,0,235500 +12/23/2016 10:26:19 PM,13747.35,0,235600 +12/23/2016 10:26:21 PM,13747.35,0,235700 +12/23/2016 10:26:22 PM,13747.35,0,235800 +12/23/2016 10:26:25 PM,13747.35,0,235900 +12/23/2016 10:26:27 PM,13747.35,0,236000 +12/23/2016 10:26:30 PM,13747.35,0,236100 +12/23/2016 10:26:31 PM,13747.35,0,236200 +12/23/2016 10:26:33 PM,13747.35,0,236300 +12/23/2016 10:26:35 PM,13747.35,0,236400 +12/23/2016 10:26:38 PM,13747.35,0,236500 +12/23/2016 10:26:41 PM,13747.35,0,236600 +12/23/2016 10:26:42 PM,13747.35,0,236700 +12/23/2016 10:26:45 PM,13747.35,0,236800 +12/23/2016 10:26:47 PM,13747.35,0,236900 +12/23/2016 10:26:49 PM,13747.35,0,237000 +12/23/2016 10:26:51 PM,13747.35,0,237100 +12/23/2016 10:26:53 PM,13747.35,0,237200 +12/23/2016 10:26:55 PM,13747.35,0,237300 +12/23/2016 10:26:57 PM,13747.35,0,237400 +12/23/2016 10:26:59 PM,13747.35,0,237500 +12/23/2016 10:27:02 PM,13747.35,0,237600 +12/23/2016 10:27:05 PM,13747.35,0,237700 +12/23/2016 10:27:07 PM,13747.35,0,237800 +12/23/2016 10:27:09 PM,13747.35,0,237900 +12/23/2016 10:27:13 PM,13747.35,0,238000 +12/23/2016 10:27:15 PM,13747.35,0,238100 +12/23/2016 10:27:17 PM,13747.35,0,238200 +12/23/2016 10:27:19 PM,13747.35,0,238300 +12/23/2016 10:27:21 PM,13747.35,0,238400 +12/23/2016 10:27:23 PM,13747.35,0,238500 +12/23/2016 10:27:25 PM,13747.35,0,238600 +12/23/2016 10:27:28 PM,13747.35,0,238700 +12/23/2016 10:27:31 PM,13747.35,0,238800 +12/23/2016 10:27:33 PM,13747.35,0,238900 +12/23/2016 10:27:34 PM,13747.35,0,239000 +12/23/2016 10:27:37 PM,13747.35,0,239100 +12/23/2016 10:27:39 PM,13747.35,0,239200 +12/23/2016 10:27:41 PM,13747.35,0,239300 +12/23/2016 10:27:43 PM,13747.35,0,239400 +12/23/2016 10:27:45 PM,13747.35,0,239500 +12/23/2016 10:27:48 PM,13747.35,0,239600 +12/23/2016 10:27:50 PM,13747.35,0,239700 +12/23/2016 10:27:53 PM,13747.35,0,239800 +12/23/2016 10:27:55 PM,13747.35,0,239900 +12/23/2016 10:27:57 PM,13747.35,0,240000 +12/23/2016 10:28:00 PM,13747.35,0,240100 +12/23/2016 10:28:02 PM,13747.35,0,240200 +12/23/2016 10:28:04 PM,13747.35,0,240300 +12/23/2016 10:28:06 PM,13747.35,0,240400 +12/23/2016 10:28:08 PM,13747.35,0,240500 +12/23/2016 10:28:11 PM,13747.35,0,240600 +12/23/2016 10:28:13 PM,13747.35,0,240700 +12/23/2016 10:28:15 PM,13747.35,0,240800 +12/23/2016 10:28:17 PM,13747.35,0,240900 +12/23/2016 10:28:19 PM,13747.35,0,241000 +12/23/2016 10:28:20 PM,13747.35,0,241100 +12/23/2016 10:28:23 PM,13747.35,0,241200 +12/23/2016 10:28:25 PM,13747.35,0,241300 +12/23/2016 10:28:27 PM,13747.35,0,241400 +12/23/2016 10:28:29 PM,13747.35,0,241500 +12/23/2016 10:28:31 PM,13747.35,0,241600 +12/23/2016 10:28:34 PM,13747.35,0,241700 +12/23/2016 10:28:36 PM,13747.35,0,241800 +12/23/2016 10:28:38 PM,13747.35,0,241900 +12/23/2016 10:28:40 PM,13747.35,0,242000 +12/23/2016 10:28:42 PM,13747.35,0,242100 +12/23/2016 10:28:44 PM,13747.35,0,242200 +12/23/2016 10:28:46 PM,13747.35,0,242300 +12/23/2016 10:28:48 PM,13747.35,0,242400 +12/23/2016 10:28:50 PM,13747.35,0,242500 +12/23/2016 10:28:53 PM,13747.35,0,242600 +12/23/2016 10:28:56 PM,13747.35,0,242700 +12/23/2016 10:28:58 PM,13747.35,0,242800 +12/23/2016 10:29:00 PM,13747.35,0,242900 +12/23/2016 10:29:03 PM,13747.35,0,243000 +12/23/2016 10:29:05 PM,13747.35,0,243100 +12/23/2016 10:29:07 PM,13747.35,0,243200 +12/23/2016 10:29:10 PM,13747.35,0,243300 +12/23/2016 10:29:12 PM,13747.35,0,243400 +12/23/2016 10:29:15 PM,13747.35,0,243500 +12/23/2016 10:29:18 PM,13747.35,0,243600 +12/23/2016 10:29:19 PM,13747.35,0,243700 +12/23/2016 10:29:22 PM,13747.35,0,243800 +12/23/2016 10:29:25 PM,13747.35,0,243900 +12/23/2016 10:29:27 PM,13747.35,0,244000 +12/23/2016 10:29:30 PM,13747.35,0,244100 +12/23/2016 10:29:34 PM,13747.35,0,244200 +12/23/2016 10:29:37 PM,13747.35,0,244300 +12/23/2016 10:29:40 PM,13747.35,0,244400 +12/23/2016 10:29:42 PM,13747.35,0,244500 +12/23/2016 10:29:45 PM,13747.35,0,244600 +12/23/2016 10:29:47 PM,13747.35,0,244700 +12/23/2016 10:29:50 PM,13747.35,0,244800 +12/23/2016 10:29:52 PM,13747.35,0,244900 +12/23/2016 10:29:56 PM,13747.35,0,245000 +12/23/2016 10:29:58 PM,13747.35,0,245100 +12/23/2016 10:30:00 PM,13747.35,0,245200 +12/23/2016 10:30:03 PM,13747.35,0,245300 +12/23/2016 10:30:05 PM,13747.35,0,245400 +12/23/2016 10:30:07 PM,13747.35,0,245500 +12/23/2016 10:30:10 PM,13747.35,0,245600 +12/23/2016 10:30:12 PM,13747.35,0,245700 +12/23/2016 10:30:14 PM,13747.35,0,245800 +12/23/2016 10:30:16 PM,13747.35,0,245900 +12/23/2016 10:30:19 PM,13747.35,0,246000 +12/23/2016 10:30:21 PM,13747.35,0,246100 +12/23/2016 10:30:24 PM,13747.35,0,246200 +12/23/2016 10:30:27 PM,13747.35,0,246300 +12/23/2016 10:30:29 PM,13747.35,0,246400 +12/23/2016 10:30:32 PM,13747.35,0,246500 +12/23/2016 10:30:35 PM,13747.35,0,246600 +12/23/2016 10:30:39 PM,13747.35,0,246700 +12/23/2016 10:30:41 PM,13747.35,0,246800 +12/23/2016 10:30:43 PM,13747.35,0,246900 +12/23/2016 10:30:45 PM,13747.35,0,247000 +12/23/2016 10:30:47 PM,13747.35,0,247100 +12/23/2016 10:30:49 PM,13747.35,0,247200 +12/23/2016 10:30:51 PM,13747.35,0,247300 +12/23/2016 10:30:54 PM,13747.35,0,247400 +12/23/2016 10:30:57 PM,13747.35,0,247500 +12/23/2016 10:31:00 PM,13747.35,0,247600 +12/23/2016 10:31:01 PM,13747.35,0,247700 +12/23/2016 10:31:04 PM,13747.35,0,247800 +12/23/2016 10:31:06 PM,13747.35,0,247900 +12/23/2016 10:31:09 PM,13747.35,0,248000 +12/23/2016 10:31:11 PM,13747.35,0,248100 +12/23/2016 10:31:13 PM,13747.35,0,248200 +12/23/2016 10:31:16 PM,13747.35,0,248300 +12/23/2016 10:31:17 PM,13747.35,0,248400 +12/23/2016 10:31:19 PM,13747.35,0,248500 +12/23/2016 10:31:22 PM,13747.35,0,248600 +12/23/2016 10:31:24 PM,13747.35,0,248700 +12/23/2016 10:31:26 PM,13747.35,0,248800 +12/23/2016 10:31:28 PM,13747.35,0,248900 +12/23/2016 10:31:29 PM,13747.35,0,249000 +12/23/2016 10:31:31 PM,13747.35,0,249100 +12/23/2016 10:31:34 PM,13747.35,0,249200 +12/23/2016 10:31:36 PM,13747.35,0,249300 +12/23/2016 10:31:38 PM,13747.35,0,249400 +12/23/2016 10:31:39 PM,13747.35,0,249500 +12/23/2016 10:31:42 PM,13747.35,0,249600 +12/23/2016 10:31:44 PM,13747.35,0,249700 +12/23/2016 10:31:46 PM,13747.35,0,249800 +12/23/2016 10:31:48 PM,13747.35,0,249900 +12/23/2016 10:31:50 PM,13747.35,0,250000 +12/23/2016 10:31:52 PM,13747.35,0,250100 +12/23/2016 10:31:54 PM,13747.35,0,250200 +12/23/2016 10:31:56 PM,13747.35,0,250300 +12/23/2016 10:31:58 PM,13747.35,0,250400 +12/23/2016 10:32:01 PM,13747.35,0,250500 +12/23/2016 10:32:04 PM,13747.35,0,250600 +12/23/2016 10:32:06 PM,13747.35,0,250700 +12/23/2016 10:32:09 PM,13747.35,0,250800 +12/23/2016 10:32:11 PM,13747.35,0,250900 +12/23/2016 10:32:13 PM,13747.35,0,251000 +12/23/2016 10:32:16 PM,13747.35,0,251100 +12/23/2016 10:32:18 PM,13747.35,0,251200 +12/23/2016 10:32:21 PM,13747.35,0,251300 +12/23/2016 10:32:23 PM,13747.35,0,251400 +12/23/2016 10:32:25 PM,13747.35,0,251500 +12/23/2016 10:32:28 PM,13747.35,0,251600 +12/23/2016 10:32:30 PM,13747.35,0,251700 +12/23/2016 10:32:32 PM,13747.35,0,251800 +12/23/2016 10:32:35 PM,13747.35,0,251900 +12/23/2016 10:32:37 PM,13747.35,0,252000 +12/23/2016 10:32:39 PM,13747.35,0,252100 +12/23/2016 10:32:41 PM,13747.35,0,252200 +12/23/2016 10:32:43 PM,13747.35,0,252300 +12/23/2016 10:32:45 PM,13747.35,0,252400 +12/23/2016 10:32:47 PM,13747.35,0,252500 +12/23/2016 10:32:50 PM,13747.35,0,252600 +12/23/2016 10:32:53 PM,13747.35,0,252700 +12/23/2016 10:32:55 PM,13747.35,0,252800 +12/23/2016 10:32:57 PM,13747.35,0,252900 +12/23/2016 10:32:59 PM,13747.35,0,253000 +12/23/2016 10:33:03 PM,13747.35,0,253100 +12/23/2016 10:33:05 PM,13747.35,0,253200 +12/23/2016 10:33:08 PM,13747.35,0,253300 +12/23/2016 10:33:11 PM,13747.35,0,253400 +12/23/2016 10:33:13 PM,13747.35,0,253500 +12/23/2016 10:33:15 PM,13747.35,0,253600 +12/23/2016 10:33:18 PM,13747.35,0,253700 +12/23/2016 10:33:20 PM,13747.35,0,253800 +12/23/2016 10:33:23 PM,13747.35,0,253900 +12/23/2016 10:33:25 PM,13747.35,0,254000 +12/23/2016 10:33:26 PM,13747.35,0,254100 +12/23/2016 10:33:28 PM,13747.35,0,254200 +12/23/2016 10:33:31 PM,13747.35,0,254300 +12/23/2016 10:33:33 PM,13747.35,0,254400 +12/23/2016 10:33:35 PM,13747.35,0,254500 +12/23/2016 10:33:39 PM,13747.35,0,254600 +12/23/2016 10:33:41 PM,13747.35,0,254700 +12/23/2016 10:33:43 PM,13747.35,0,254800 +12/23/2016 10:33:45 PM,13747.35,0,254900 +12/23/2016 10:33:47 PM,13747.35,0,255000 +12/23/2016 10:33:49 PM,13747.35,0,255100 +12/23/2016 10:33:51 PM,13747.35,0,255200 +12/23/2016 10:33:53 PM,13747.35,0,255300 +12/23/2016 10:33:55 PM,13747.35,0,255400 +12/23/2016 10:33:57 PM,13747.35,0,255500 +12/23/2016 10:34:00 PM,13747.35,0,255600 +12/23/2016 10:34:02 PM,13747.35,0,255700 +12/23/2016 10:34:05 PM,13747.35,0,255800 +12/23/2016 10:34:07 PM,13747.35,0,255900 +12/23/2016 10:34:09 PM,13747.35,0,256000 +12/23/2016 10:34:11 PM,13747.35,0,256100 +12/23/2016 10:34:13 PM,13747.35,0,256200 +12/23/2016 10:34:14 PM,13747.35,0,256300 +12/23/2016 10:34:16 PM,13747.35,0,256400 +12/23/2016 10:34:19 PM,13747.35,0,256500 +12/23/2016 10:34:22 PM,13747.35,0,256600 +12/23/2016 10:34:24 PM,13747.35,0,256700 +12/23/2016 10:34:26 PM,13747.35,0,256800 +12/23/2016 10:34:29 PM,13747.35,0,256900 +12/23/2016 10:34:31 PM,13747.35,0,257000 +12/23/2016 10:34:33 PM,13747.35,0,257100 +12/23/2016 10:34:35 PM,13747.35,0,257200 +12/23/2016 10:34:38 PM,13747.35,0,257300 +12/23/2016 10:34:41 PM,13747.35,0,257400 +12/23/2016 10:34:43 PM,13747.35,0,257500 +12/23/2016 10:34:45 PM,13747.35,0,257600 +12/23/2016 10:34:48 PM,13747.35,0,257700 +12/23/2016 10:34:51 PM,13747.35,0,257800 +12/23/2016 10:34:53 PM,13747.35,0,257900 +12/23/2016 10:34:56 PM,13747.35,0,258000 +12/23/2016 10:34:57 PM,13747.35,0,258100 +12/23/2016 10:34:59 PM,13747.35,0,258200 +12/23/2016 10:35:02 PM,13747.35,0,258300 +12/23/2016 10:35:04 PM,13747.35,0,258400 +12/23/2016 10:35:06 PM,13747.35,0,258500 +12/23/2016 10:35:10 PM,13747.35,0,258600 +12/23/2016 10:35:12 PM,13747.35,0,258700 +12/23/2016 10:35:14 PM,13747.35,0,258800 +12/23/2016 10:35:16 PM,13747.35,0,258900 +12/23/2016 10:35:18 PM,13747.35,0,259000 +12/23/2016 10:35:20 PM,13747.35,0,259100 +12/23/2016 10:35:22 PM,13747.35,0,259200 +12/23/2016 10:35:24 PM,13747.35,0,259300 +12/23/2016 10:35:26 PM,13747.35,0,259400 +12/23/2016 10:35:28 PM,13747.35,0,259500 +12/23/2016 10:35:31 PM,13747.35,0,259600 +12/23/2016 10:35:33 PM,13747.35,0,259700 +12/23/2016 10:35:35 PM,13747.35,0,259800 +12/23/2016 10:35:37 PM,13747.35,0,259900 +12/23/2016 10:35:39 PM,13747.35,0,260000 +12/23/2016 10:35:41 PM,13747.35,0,260100 +12/23/2016 10:35:44 PM,13747.35,0,260200 +12/23/2016 10:35:46 PM,13747.35,0,260300 +12/23/2016 10:35:48 PM,13747.35,0,260400 +12/23/2016 10:35:50 PM,13747.35,0,260500 +12/23/2016 10:35:53 PM,13747.35,0,260600 +12/23/2016 10:35:55 PM,13747.35,0,260700 +12/23/2016 10:35:57 PM,13747.35,0,260800 +12/23/2016 10:36:00 PM,13747.35,0,260900 +12/23/2016 10:36:02 PM,13747.35,0,261000 +12/23/2016 10:36:04 PM,13747.35,0,261100 +12/23/2016 10:36:06 PM,13747.35,0,261200 +12/23/2016 10:36:08 PM,13747.35,0,261300 +12/23/2016 10:36:11 PM,13747.35,0,261400 +12/23/2016 10:36:13 PM,13747.35,0,261500 +12/23/2016 10:36:16 PM,13747.35,0,261600 +12/23/2016 10:36:17 PM,13747.35,0,261700 +12/23/2016 10:36:20 PM,13747.35,0,261800 +12/23/2016 10:36:23 PM,13747.35,0,261900 +12/23/2016 10:36:25 PM,13747.35,0,262000 +12/23/2016 10:36:27 PM,13747.35,0,262100 +12/23/2016 10:36:30 PM,13747.35,0,262200 +12/23/2016 10:36:32 PM,13747.35,0,262300 +12/23/2016 10:36:34 PM,13747.35,0,262400 +12/23/2016 10:36:36 PM,13747.35,0,262500 +12/23/2016 10:36:38 PM,13747.35,0,262600 +12/23/2016 10:36:41 PM,13747.35,0,262700 +12/23/2016 10:36:43 PM,13747.35,0,262800 +12/23/2016 10:36:45 PM,13747.35,0,262900 +12/23/2016 10:36:47 PM,13747.35,0,263000 +12/23/2016 10:36:51 PM,13747.35,0,263100 +12/23/2016 10:36:53 PM,13747.35,0,263200 +12/23/2016 10:36:55 PM,13747.35,0,263300 +12/23/2016 10:36:57 PM,13747.35,0,263400 +12/23/2016 10:36:59 PM,13747.35,0,263500 +12/23/2016 10:37:02 PM,13747.35,0,263600 +12/23/2016 10:37:03 PM,13747.35,0,263700 +12/23/2016 10:37:06 PM,13747.35,0,263800 +12/23/2016 10:37:10 PM,13747.35,0,263900 +12/23/2016 10:37:12 PM,13747.35,0,264000 +12/23/2016 10:37:15 PM,13747.35,0,264100 +12/23/2016 10:37:17 PM,13747.35,0,264200 +12/23/2016 10:37:19 PM,13747.35,0,264300 +12/23/2016 10:37:22 PM,13747.35,0,264400 +12/23/2016 10:37:25 PM,13747.35,0,264500 +12/23/2016 10:37:29 PM,13747.35,0,264600 +12/23/2016 10:37:32 PM,13747.35,0,264700 +12/23/2016 10:37:34 PM,13747.35,0,264800 +12/23/2016 10:37:37 PM,13747.35,0,264900 +12/23/2016 10:37:38 PM,13747.35,0,265000 +12/23/2016 10:37:41 PM,13747.35,0,265100 +12/23/2016 10:37:44 PM,13747.35,0,265200 +12/23/2016 10:37:49 PM,13747.35,0,265300 +12/23/2016 10:37:52 PM,13747.35,0,265400 +12/23/2016 10:37:53 PM,13747.35,0,265500 +12/23/2016 10:37:55 PM,13747.35,0,265600 +12/23/2016 10:37:58 PM,13747.35,0,265700 +12/23/2016 10:38:00 PM,13747.35,0,265800 +12/23/2016 10:38:04 PM,13747.35,0,265900 +12/23/2016 10:38:06 PM,13747.35,0,266000 +12/23/2016 10:38:08 PM,13747.35,0,266100 +12/23/2016 10:38:11 PM,13747.35,0,266200 +12/23/2016 10:38:13 PM,13747.35,0,266300 +12/23/2016 10:38:15 PM,13747.35,0,266400 +12/23/2016 10:38:18 PM,13747.35,0,266500 +12/23/2016 10:38:21 PM,13747.35,0,266600 +12/23/2016 10:38:23 PM,13747.35,0,266700 +12/23/2016 10:38:26 PM,13747.35,0,266800 +12/23/2016 10:38:28 PM,13747.35,0,266900 +12/23/2016 10:38:30 PM,13747.35,0,267000 +12/23/2016 10:38:32 PM,13747.35,0,267100 +12/23/2016 10:38:34 PM,13747.35,0,267200 +12/23/2016 10:38:36 PM,13747.35,0,267300 +12/23/2016 10:38:38 PM,13747.35,0,267400 +12/23/2016 10:38:40 PM,13747.35,0,267500 +12/23/2016 10:38:44 PM,13747.35,0,267600 +12/23/2016 10:38:47 PM,13747.35,0,267700 +12/23/2016 10:38:49 PM,13747.35,0,267800 +12/23/2016 10:38:51 PM,13747.35,0,267900 +12/23/2016 10:38:54 PM,13747.35,0,268000 +12/23/2016 10:38:56 PM,13747.35,0,268100 +12/23/2016 10:38:58 PM,13747.35,0,268200 +12/23/2016 10:39:00 PM,13747.35,0,268300 +12/23/2016 10:39:02 PM,13747.35,0,268400 +12/23/2016 10:39:04 PM,13747.35,0,268500 +12/23/2016 10:39:07 PM,13747.35,0,268600 +12/23/2016 10:39:09 PM,13747.35,0,268700 +12/23/2016 10:39:12 PM,13747.35,0,268800 +12/23/2016 10:39:14 PM,13747.35,0,268900 +12/23/2016 10:39:16 PM,13747.35,0,269000 +12/23/2016 10:39:18 PM,13747.35,0,269100 +12/23/2016 10:39:20 PM,13747.35,0,269200 +12/23/2016 10:39:22 PM,13747.35,0,269300 +12/23/2016 10:39:23 PM,13747.35,0,269400 +12/23/2016 10:39:26 PM,13747.35,0,269500 +12/23/2016 10:39:29 PM,13747.35,0,269600 +12/23/2016 10:39:31 PM,13747.35,0,269700 +12/23/2016 10:39:33 PM,13747.35,0,269800 +12/23/2016 10:39:35 PM,13747.35,0,269900 +12/23/2016 10:39:37 PM,13747.35,0,270000 +12/23/2016 10:39:39 PM,13747.35,0,270100 +12/23/2016 10:39:41 PM,13747.35,0,270200 +12/23/2016 10:39:43 PM,13747.35,0,270300 +12/23/2016 10:39:47 PM,13747.35,0,270400 +12/23/2016 10:39:48 PM,13747.35,0,270500 +12/23/2016 10:39:50 PM,13747.35,0,270600 +12/23/2016 10:39:53 PM,13747.35,0,270700 +12/23/2016 10:39:55 PM,13747.35,0,270800 +12/23/2016 10:39:57 PM,13747.35,0,270900 +12/23/2016 10:39:59 PM,13747.35,0,271000 +12/23/2016 10:40:01 PM,13747.35,0,271100 +12/23/2016 10:40:03 PM,13747.35,0,271200 +12/23/2016 10:40:05 PM,13747.35,0,271300 +12/23/2016 10:40:08 PM,13747.35,0,271400 +12/23/2016 10:40:10 PM,13747.35,0,271500 +12/23/2016 10:40:13 PM,13747.35,0,271600 +12/23/2016 10:40:16 PM,13747.35,0,271700 +12/23/2016 10:40:18 PM,13747.35,0,271800 +12/23/2016 10:40:21 PM,13747.35,0,271900 +12/23/2016 10:40:23 PM,13747.35,0,272000 +12/23/2016 10:40:26 PM,13747.35,0,272100 +12/23/2016 10:40:28 PM,13747.35,0,272200 +12/23/2016 10:40:31 PM,13747.35,0,272300 +12/23/2016 10:40:33 PM,13747.35,0,272400 +12/23/2016 10:40:35 PM,13747.35,0,272500 +12/23/2016 10:40:37 PM,13747.35,0,272600 +12/23/2016 10:40:40 PM,13747.35,0,272700 +12/23/2016 10:40:44 PM,13747.35,0,272800 +12/23/2016 10:40:45 PM,13747.35,0,272900 +12/23/2016 10:40:47 PM,13747.35,0,273000 +12/23/2016 10:40:50 PM,13747.35,0,273100 +12/23/2016 10:40:52 PM,13747.35,0,273200 +12/23/2016 10:40:54 PM,13747.35,0,273300 +12/23/2016 10:40:57 PM,13747.35,0,273400 +12/23/2016 10:40:59 PM,13747.35,0,273500 +12/23/2016 10:41:02 PM,13747.35,0,273600 +12/23/2016 10:41:04 PM,13747.35,0,273700 +12/23/2016 10:41:06 PM,13747.35,0,273800 +12/23/2016 10:41:09 PM,13747.35,0,273900 +12/23/2016 10:41:11 PM,13747.35,0,274000 +12/23/2016 10:41:13 PM,13747.35,0,274100 +12/23/2016 10:41:15 PM,13747.35,0,274200 +12/23/2016 10:41:17 PM,13747.35,0,274300 +12/23/2016 10:41:20 PM,13747.35,0,274400 +12/23/2016 10:41:22 PM,13747.35,0,274500 +12/23/2016 10:41:25 PM,13747.35,0,274600 +12/23/2016 10:41:27 PM,13747.35,0,274700 +12/23/2016 10:41:30 PM,13747.35,0,274800 +12/23/2016 10:41:32 PM,13747.35,0,274900 +12/23/2016 10:41:34 PM,13747.35,0,275000 +12/23/2016 10:41:38 PM,13747.35,0,275100 +12/23/2016 10:41:40 PM,13747.35,0,275200 +12/23/2016 10:41:43 PM,13747.35,0,275300 +12/23/2016 10:41:45 PM,13747.35,0,275400 +12/23/2016 10:41:48 PM,13747.35,0,275500 +12/23/2016 10:41:51 PM,13747.35,0,275600 +12/23/2016 10:41:53 PM,13747.35,0,275700 +12/23/2016 10:41:55 PM,13747.35,0,275800 +12/23/2016 10:41:58 PM,13747.35,0,275900 +12/23/2016 10:42:00 PM,13747.35,0,276000 +12/23/2016 10:42:02 PM,13747.35,0,276100 +12/23/2016 10:42:04 PM,13747.35,0,276200 +12/23/2016 10:42:07 PM,13747.35,0,276300 +12/23/2016 10:42:10 PM,13747.35,0,276400 +12/23/2016 10:42:12 PM,13747.35,0,276500 +12/23/2016 10:42:14 PM,13747.35,0,276600 +12/23/2016 10:42:16 PM,13747.35,0,276700 +12/23/2016 10:42:19 PM,13747.35,0,276800 +12/23/2016 10:42:21 PM,13747.35,0,276900 +12/23/2016 10:42:24 PM,13747.35,0,277000 +12/23/2016 10:42:26 PM,13747.35,0,277100 +12/23/2016 10:42:28 PM,13747.35,0,277200 +12/23/2016 10:42:31 PM,13747.35,0,277300 +12/23/2016 10:42:33 PM,13747.35,0,277400 +12/23/2016 10:42:35 PM,13747.35,0,277500 +12/23/2016 10:42:37 PM,13747.35,0,277600 +12/23/2016 10:42:39 PM,13747.35,0,277700 +12/23/2016 10:42:42 PM,13747.35,0,277800 +12/23/2016 10:42:44 PM,13747.35,0,277900 +12/23/2016 10:42:46 PM,13747.35,0,278000 +12/23/2016 10:42:48 PM,13747.35,0,278100 +12/23/2016 10:42:50 PM,13747.35,0,278200 +12/23/2016 10:42:51 PM,13747.35,0,278300 +12/23/2016 10:42:53 PM,13747.35,0,278400 +12/23/2016 10:42:55 PM,13747.35,0,278500 +12/23/2016 10:42:57 PM,13747.35,0,278600 +12/23/2016 10:43:00 PM,13747.35,0,278700 +12/23/2016 10:43:02 PM,13747.35,0,278800 +12/23/2016 10:43:04 PM,13747.35,0,278900 +12/23/2016 10:43:06 PM,13747.35,0,279000 +12/23/2016 10:43:08 PM,13747.35,0,279100 +12/23/2016 10:43:11 PM,13747.35,0,279200 +12/23/2016 10:43:13 PM,13747.35,0,279300 +12/23/2016 10:43:14 PM,13747.35,0,279400 +12/23/2016 10:43:17 PM,13747.35,0,279500 +12/23/2016 10:43:20 PM,13747.35,0,279600 +12/23/2016 10:43:22 PM,13747.35,0,279700 +12/23/2016 10:43:24 PM,13747.35,0,279800 +12/23/2016 10:43:26 PM,13747.35,0,279900 +12/23/2016 10:43:28 PM,13747.35,0,280000 +12/23/2016 10:43:30 PM,13747.35,0,280100 +12/23/2016 10:43:32 PM,13747.35,0,280200 +12/23/2016 10:43:35 PM,13747.35,0,280300 +12/23/2016 10:43:37 PM,13747.35,0,280400 +12/23/2016 10:43:39 PM,13747.35,0,280500 +12/23/2016 10:43:41 PM,13747.35,0,280600 +12/23/2016 10:43:44 PM,13747.35,0,280700 +12/23/2016 10:43:46 PM,13747.35,0,280800 +12/23/2016 10:43:48 PM,13747.35,0,280900 +12/23/2016 10:43:51 PM,13747.35,0,281000 +12/23/2016 10:43:54 PM,13747.35,0,281100 +12/23/2016 10:43:57 PM,13747.35,0,281200 +12/23/2016 10:43:58 PM,13747.35,0,281300 +12/23/2016 10:44:01 PM,13747.35,0,281400 +12/23/2016 10:44:02 PM,13747.35,0,281500 +12/23/2016 10:44:05 PM,13747.35,0,281600 +12/23/2016 10:44:08 PM,13747.35,0,281700 +12/23/2016 10:44:11 PM,13747.35,0,281800 +12/23/2016 10:44:12 PM,13747.35,0,281900 +12/23/2016 10:44:15 PM,13747.35,0,282000 +12/23/2016 10:44:17 PM,13747.35,0,282100 +12/23/2016 10:44:19 PM,13747.35,0,282200 +12/23/2016 10:44:22 PM,13747.35,0,282300 +12/23/2016 10:44:24 PM,13747.35,0,282400 +12/23/2016 10:44:26 PM,13747.35,0,282500 +12/23/2016 10:44:28 PM,13747.35,0,282600 +12/23/2016 10:44:30 PM,13747.35,0,282700 +12/23/2016 10:44:32 PM,13747.35,0,282800 +12/23/2016 10:44:35 PM,13747.35,0,282900 +12/23/2016 10:44:37 PM,13747.35,0,283000 +12/23/2016 10:44:39 PM,13747.35,0,283100 +12/23/2016 10:44:41 PM,13747.35,0,283200 +12/23/2016 10:44:45 PM,13747.35,0,283300 +12/23/2016 10:44:47 PM,13747.35,0,283400 +12/23/2016 10:44:50 PM,13747.35,0,283500 +12/23/2016 10:44:52 PM,13747.35,0,283600 +12/23/2016 10:44:55 PM,13747.35,0,283700 +12/23/2016 10:44:57 PM,13747.35,0,283800 +12/23/2016 10:44:59 PM,13747.35,0,283900 +12/23/2016 10:45:02 PM,13747.35,0,284000 +12/23/2016 10:45:04 PM,13747.35,0,284100 +12/23/2016 10:45:07 PM,13747.35,0,284200 +12/23/2016 10:45:10 PM,13747.35,0,284300 +12/23/2016 10:45:13 PM,13747.35,0,284400 +12/23/2016 10:45:15 PM,13747.35,0,284500 +12/23/2016 10:45:18 PM,13747.35,0,284600 +12/23/2016 10:45:21 PM,13747.35,0,284700 +12/23/2016 10:45:23 PM,13747.35,0,284800 +12/23/2016 10:45:25 PM,13747.35,0,284900 +12/23/2016 10:45:27 PM,13747.35,0,285000 +12/23/2016 10:45:29 PM,13747.35,0,285100 +12/23/2016 10:45:31 PM,13747.35,0,285200 +12/23/2016 10:45:33 PM,13747.35,0,285300 +12/23/2016 10:45:35 PM,13747.35,0,285400 +12/23/2016 10:45:37 PM,13747.35,0,285500 +12/23/2016 10:45:40 PM,13747.35,0,285600 +12/23/2016 10:45:42 PM,13747.35,0,285700 +12/23/2016 10:45:44 PM,13747.35,0,285800 +12/23/2016 10:45:47 PM,13747.35,0,285900 +12/23/2016 10:45:49 PM,13747.35,0,286000 +12/23/2016 10:45:51 PM,13747.35,0,286100 +12/23/2016 10:45:54 PM,13747.35,0,286200 +12/23/2016 10:45:56 PM,13747.35,0,286300 +12/23/2016 10:45:59 PM,13747.35,0,286400 +12/23/2016 10:46:02 PM,13747.35,0,286500 +12/23/2016 10:46:04 PM,13747.35,0,286600 +12/23/2016 10:46:06 PM,13747.35,0,286700 +12/23/2016 10:46:09 PM,13747.35,0,286800 +12/23/2016 10:46:12 PM,13747.35,0,286900 +12/23/2016 10:46:14 PM,13747.35,0,287000 +12/23/2016 10:46:16 PM,13747.35,0,287100 +12/23/2016 10:46:18 PM,13747.35,0,287200 +12/23/2016 10:46:21 PM,13747.35,0,287300 +12/23/2016 10:46:24 PM,13747.35,0,287400 +12/23/2016 10:46:26 PM,13747.35,0,287500 +12/23/2016 10:46:28 PM,13747.35,0,287600 +12/23/2016 10:46:30 PM,13747.35,0,287700 +12/23/2016 10:46:33 PM,13747.35,0,287800 +12/23/2016 10:46:35 PM,13747.35,0,287900 +12/23/2016 10:46:37 PM,13747.35,0,288000 +12/23/2016 10:46:39 PM,13747.35,0,288100 +12/23/2016 10:46:42 PM,13747.35,0,288200 +12/23/2016 10:46:45 PM,13747.35,0,288300 +12/23/2016 10:46:48 PM,13747.35,0,288400 +12/23/2016 10:46:50 PM,13747.35,0,288500 +12/23/2016 10:46:54 PM,13747.35,0,288600 +12/23/2016 10:46:58 PM,13747.35,0,288700 +12/23/2016 10:47:04 PM,13747.35,0,288800 +12/23/2016 10:47:07 PM,13747.35,0,288900 +12/23/2016 10:47:09 PM,13747.35,0,289000 +12/23/2016 10:47:12 PM,13747.35,0,289100 +12/23/2016 10:47:13 PM,13747.35,0,289200 +12/23/2016 10:47:15 PM,13747.35,0,289300 +12/23/2016 10:47:18 PM,13747.35,0,289400 +12/23/2016 10:47:19 PM,13747.35,0,289500 +12/23/2016 10:47:22 PM,13747.35,0,289600 +12/23/2016 10:47:24 PM,13747.35,0,289700 +12/23/2016 10:47:26 PM,13747.35,0,289800 +12/23/2016 10:47:28 PM,13747.35,0,289900 +12/23/2016 10:47:31 PM,13747.35,0,290000 +12/23/2016 10:47:33 PM,13747.35,0,290100 +12/23/2016 10:47:35 PM,13747.35,0,290200 +12/23/2016 10:47:39 PM,13747.35,0,290300 +12/23/2016 10:47:41 PM,13747.35,0,290400 +12/23/2016 10:47:43 PM,13747.35,0,290500 +12/23/2016 10:47:45 PM,13747.35,0,290600 +12/23/2016 10:47:48 PM,13747.35,0,290700 +12/23/2016 10:47:51 PM,13747.35,0,290800 +12/23/2016 10:47:53 PM,13747.35,0,290900 +12/23/2016 10:47:56 PM,13747.35,0,291000 +12/23/2016 10:47:58 PM,13747.35,0,291100 +12/23/2016 10:48:00 PM,13747.35,0,291200 +12/23/2016 10:48:03 PM,13747.35,0,291300 +12/23/2016 10:48:06 PM,13747.35,0,291400 +12/23/2016 10:48:08 PM,13747.35,0,291500 +12/23/2016 10:48:10 PM,13747.35,0,291600 +12/23/2016 10:48:12 PM,13747.35,0,291700 +12/23/2016 10:48:14 PM,13747.35,0,291800 +12/23/2016 10:48:16 PM,13747.35,0,291900 +12/23/2016 10:48:18 PM,13747.35,0,292000 +12/23/2016 10:48:21 PM,13747.35,0,292100 +12/23/2016 10:48:23 PM,13747.35,0,292200 +12/23/2016 10:48:25 PM,13747.35,0,292300 +12/23/2016 10:48:28 PM,13747.35,0,292400 +12/23/2016 10:48:31 PM,13747.35,0,292500 +12/23/2016 10:48:34 PM,13747.35,0,292600 +12/23/2016 10:48:37 PM,13747.35,0,292700 +12/23/2016 10:48:39 PM,13747.35,0,292800 +12/23/2016 10:48:41 PM,13747.35,0,292900 +12/23/2016 10:48:43 PM,13747.35,0,293000 +12/23/2016 10:48:45 PM,13747.35,0,293100 +12/23/2016 10:48:48 PM,13747.35,0,293200 +12/23/2016 10:48:50 PM,13747.35,0,293300 +12/23/2016 10:48:52 PM,13747.35,0,293400 +12/23/2016 10:48:54 PM,13747.35,0,293500 +12/23/2016 10:48:58 PM,13747.35,0,293600 +12/23/2016 10:49:00 PM,13747.35,0,293700 +12/23/2016 10:49:03 PM,13747.35,0,293800 +12/23/2016 10:49:04 PM,13747.35,0,293900 +12/23/2016 10:49:06 PM,13747.35,0,294000 +12/23/2016 10:49:08 PM,13747.35,0,294100 +12/23/2016 10:49:10 PM,13747.35,0,294200 +12/23/2016 10:49:12 PM,13747.35,0,294300 +12/23/2016 10:49:14 PM,13747.35,0,294400 +12/23/2016 10:49:17 PM,13747.35,0,294500 +12/23/2016 10:49:19 PM,13747.35,0,294600 +12/23/2016 10:49:23 PM,13747.35,0,294700 +12/23/2016 10:49:25 PM,13747.35,0,294800 +12/23/2016 10:49:28 PM,13747.35,0,294900 +12/23/2016 10:49:30 PM,13747.35,0,295000 +12/23/2016 10:49:32 PM,13747.35,0,295100 +12/23/2016 10:49:34 PM,13747.35,0,295200 +12/23/2016 10:49:37 PM,13747.35,0,295300 +12/23/2016 10:49:39 PM,13747.35,0,295400 +12/23/2016 10:49:41 PM,13747.35,0,295500 +12/23/2016 10:49:42 PM,13747.35,0,295600 +12/23/2016 10:49:45 PM,13747.35,0,295700 +12/23/2016 10:49:48 PM,13747.35,0,295800 +12/23/2016 10:49:50 PM,13747.35,0,295900 +12/23/2016 10:49:52 PM,13747.35,0,296000 +12/23/2016 10:49:54 PM,13747.35,0,296100 +12/23/2016 10:49:56 PM,13747.35,0,296200 +12/23/2016 10:49:59 PM,13747.35,0,296300 +12/23/2016 10:50:02 PM,13747.35,0,296400 +12/23/2016 10:50:04 PM,13747.35,0,296500 +12/23/2016 10:50:07 PM,13747.35,0,296600 +12/23/2016 10:50:09 PM,13747.35,0,296700 +12/23/2016 10:50:12 PM,13747.35,0,296800 +12/23/2016 10:50:14 PM,13747.35,0,296900 +12/23/2016 10:50:17 PM,13747.35,0,297000 +12/23/2016 10:50:20 PM,13747.35,0,297100 +12/23/2016 10:50:22 PM,13747.35,0,297200 +12/23/2016 10:50:26 PM,13747.35,0,297300 +12/23/2016 10:50:28 PM,13747.35,0,297400 +12/23/2016 10:50:29 PM,13747.35,0,297500 +12/23/2016 10:50:32 PM,13747.35,0,297600 +12/23/2016 10:50:34 PM,13747.35,0,297700 +12/23/2016 10:50:36 PM,13747.35,0,297800 +12/23/2016 10:50:38 PM,13747.35,0,297900 +12/23/2016 10:50:40 PM,13747.35,0,298000 +12/23/2016 10:50:43 PM,13747.35,0,298100 +12/23/2016 10:50:47 PM,13747.35,0,298200 +12/23/2016 10:50:49 PM,13747.35,0,298300 +12/23/2016 10:50:53 PM,13747.35,0,298400 +12/23/2016 10:50:55 PM,13747.35,0,298500 +12/23/2016 10:50:58 PM,13747.35,0,298600 +12/23/2016 10:51:01 PM,13747.35,0,298700 +12/23/2016 10:51:02 PM,13747.35,0,298800 +12/23/2016 10:51:04 PM,13747.35,0,298900 +12/23/2016 10:51:07 PM,13747.35,0,299000 +12/23/2016 10:51:10 PM,13747.35,0,299100 +12/23/2016 10:51:13 PM,13747.35,0,299200 +12/23/2016 10:51:15 PM,13747.35,0,299300 +12/23/2016 10:51:18 PM,13747.35,0,299400 +12/23/2016 10:51:20 PM,13747.35,0,299500 +12/23/2016 10:51:22 PM,13747.35,0,299600 +12/23/2016 10:51:24 PM,13747.35,0,299700 +12/23/2016 10:51:26 PM,13747.35,0,299800 +12/23/2016 10:51:29 PM,13747.35,0,299900 +12/23/2016 10:51:31 PM,13747.35,0,300000 +12/23/2016 10:51:33 PM,13747.35,0,300100 +12/23/2016 10:51:34 PM,13747.35,0,300200 +12/23/2016 10:51:36 PM,13747.35,0,300300 +12/23/2016 10:51:38 PM,13747.35,0,300400 +12/23/2016 10:51:40 PM,13747.35,0,300500 +12/23/2016 10:51:42 PM,13747.35,0,300600 +12/23/2016 10:51:45 PM,13747.35,0,300700 +12/23/2016 10:51:47 PM,13747.35,0,300800 +12/23/2016 10:51:49 PM,13747.35,0,300900 +12/23/2016 10:51:52 PM,13747.35,0,301000 +12/23/2016 10:51:54 PM,13747.35,0,301100 +12/23/2016 10:51:56 PM,13747.35,0,301200 +12/23/2016 10:51:59 PM,13747.35,0,301300 +12/23/2016 10:52:02 PM,13747.35,0,301400 +12/23/2016 10:52:04 PM,13747.35,0,301500 +12/23/2016 10:52:08 PM,13747.35,0,301600 +12/23/2016 10:52:13 PM,13747.35,0,301700 +12/23/2016 10:52:16 PM,13747.35,0,301800 +12/23/2016 10:52:18 PM,13747.35,0,301900 +12/23/2016 10:52:20 PM,13747.35,0,302000 +12/23/2016 10:52:22 PM,13747.35,0,302100 +12/23/2016 10:52:24 PM,13747.35,0,302200 +12/23/2016 10:52:27 PM,13747.35,0,302300 +12/23/2016 10:52:30 PM,13747.35,0,302400 +12/23/2016 10:52:32 PM,13747.35,0,302500 +12/23/2016 10:52:34 PM,13747.35,0,302600 +12/23/2016 10:52:37 PM,13747.35,0,302700 +12/23/2016 10:52:39 PM,13747.35,0,302800 +12/23/2016 10:52:42 PM,13747.35,0,302900 +12/23/2016 10:52:44 PM,13747.35,0,303000 +12/23/2016 10:52:47 PM,13747.35,0,303100 +12/23/2016 10:52:50 PM,13747.35,0,303200 +12/23/2016 10:52:53 PM,13747.35,0,303300 +12/23/2016 10:52:56 PM,13747.35,0,303400 +12/23/2016 10:52:58 PM,13747.35,0,303500 +12/23/2016 10:53:01 PM,13747.35,0,303600 +12/23/2016 10:53:04 PM,13747.35,0,303700 +12/23/2016 10:53:05 PM,13747.35,0,303800 +12/23/2016 10:53:08 PM,13747.35,0,303900 +12/23/2016 10:53:10 PM,13747.35,0,304000 +12/23/2016 10:53:12 PM,13747.35,0,304100 +12/23/2016 10:53:14 PM,13747.35,0,304200 +12/23/2016 10:53:16 PM,13747.35,0,304300 +12/23/2016 10:53:18 PM,13747.35,0,304400 +12/23/2016 10:53:20 PM,13747.35,0,304500 +12/23/2016 10:53:22 PM,13747.35,0,304600 +12/23/2016 10:53:24 PM,13747.35,0,304700 +12/23/2016 10:53:26 PM,13747.35,0,304800 +12/23/2016 10:53:28 PM,13747.35,0,304900 +12/23/2016 10:53:30 PM,13747.35,0,305000 +12/23/2016 10:53:32 PM,13747.35,0,305100 +12/23/2016 10:53:34 PM,13747.35,0,305200 +12/23/2016 10:53:36 PM,13747.35,0,305300 +12/23/2016 10:53:38 PM,13747.35,0,305400 +12/23/2016 10:53:41 PM,13747.35,0,305500 +12/23/2016 10:53:43 PM,13747.35,0,305600 +12/23/2016 10:53:45 PM,13747.35,0,305700 +12/23/2016 10:53:48 PM,13747.35,0,305800 +12/23/2016 10:53:50 PM,13747.35,0,305900 +12/23/2016 10:53:51 PM,13747.35,0,306000 +12/23/2016 10:53:54 PM,13747.35,0,306100 +12/23/2016 10:53:56 PM,13747.35,0,306200 +12/23/2016 10:53:58 PM,13747.35,0,306300 +12/23/2016 10:54:01 PM,13747.35,0,306400 +12/23/2016 10:54:03 PM,13747.35,0,306500 +12/23/2016 10:54:05 PM,13747.35,0,306600 +12/23/2016 10:54:08 PM,13747.35,0,306700 +12/23/2016 10:54:10 PM,13747.35,0,306800 +12/23/2016 10:54:14 PM,13747.35,0,306900 +12/23/2016 10:54:17 PM,13747.35,0,307000 +12/23/2016 10:54:20 PM,13747.35,0,307100 +12/23/2016 10:54:23 PM,13747.35,0,307200 +12/23/2016 10:54:25 PM,13747.35,0,307300 +12/23/2016 10:54:28 PM,13747.35,0,307400 +12/23/2016 10:54:30 PM,13747.35,0,307500 +12/23/2016 10:54:32 PM,13747.35,0,307600 +12/23/2016 10:54:35 PM,13747.35,0,307700 +12/23/2016 10:54:38 PM,13747.35,0,307800 +12/23/2016 10:54:40 PM,13747.35,0,307900 +12/23/2016 10:54:42 PM,13747.35,0,308000 +12/23/2016 10:54:45 PM,13747.35,0,308100 +12/23/2016 10:54:47 PM,13747.35,0,308200 +12/23/2016 10:54:49 PM,13747.35,0,308300 +12/23/2016 10:54:52 PM,13747.35,0,308400 +12/23/2016 10:54:55 PM,13747.35,0,308500 +12/23/2016 10:54:57 PM,13747.35,0,308600 +12/23/2016 10:55:00 PM,13747.35,0,308700 +12/23/2016 10:55:02 PM,13747.35,0,308800 +12/23/2016 10:55:04 PM,13747.35,0,308900 +12/23/2016 10:55:06 PM,13747.35,0,309000 +12/23/2016 10:55:08 PM,13747.35,0,309100 +12/23/2016 10:55:11 PM,14002.8,0,309200 +12/23/2016 10:55:16 PM,14085.6,0,309300 +12/23/2016 10:55:20 PM,14105.55,0,309400 +12/23/2016 10:55:25 PM,14113.35,0,309500 +12/23/2016 10:55:29 PM,14116.35,0,309600 +12/23/2016 10:55:36 PM,14137.35,0,309700 +12/23/2016 10:55:41 PM,14140.35,0,309800 +12/23/2016 10:55:47 PM,14149.35,0,309900 +12/23/2016 10:55:54 PM,14153.85,0,310000 +12/23/2016 10:55:59 PM,14158.35,0,310100 +12/23/2016 10:56:04 PM,14160.15,0,310200 +12/23/2016 10:56:10 PM,14163.15,0,310300 +12/23/2016 10:56:16 PM,14165.85,0,310400 +12/23/2016 10:56:23 PM,14165.85,0,310500 +12/23/2016 10:56:27 PM,14166.15,0,310600 +12/23/2016 10:56:34 PM,14174.85,0,310700 +12/23/2016 10:56:40 PM,14177.85,0,310800 +12/23/2016 10:56:47 PM,14181.9,0,310900 +12/23/2016 10:56:56 PM,14184.9,0,311000 +12/23/2016 10:57:03 PM,14190.9,0,311100 +12/23/2016 10:57:11 PM,14191.2,0,311200 +12/23/2016 10:57:17 PM,14192.1,0,311300 +12/23/2016 10:57:25 PM,14192.1,0,311400 +12/23/2016 10:57:33 PM,14194.5,0,311500 +12/23/2016 10:57:41 PM,14194.5,0,311600 +12/23/2016 10:57:47 PM,14194.5,0,311700 +12/23/2016 10:57:53 PM,14194.5,0,311800 +12/23/2016 10:57:59 PM,14194.5,0,311900 +12/23/2016 10:58:04 PM,14194.5,0,312000 +12/23/2016 10:58:10 PM,14194.5,0,312100 +12/23/2016 10:58:16 PM,14194.5,0,312200 +12/23/2016 10:58:22 PM,14194.8,0,312300 +12/23/2016 10:58:29 PM,14194.8,0,312400 +12/23/2016 10:58:36 PM,14194.8,0,312500 +12/23/2016 10:58:43 PM,14194.8,0,312600 +12/23/2016 10:58:51 PM,14194.8,0,312700 +12/23/2016 10:58:58 PM,14194.8,0,312800 +12/23/2016 10:59:08 PM,14194.8,0,312900 +12/23/2016 10:59:17 PM,14194.8,0,313000 +12/23/2016 10:59:26 PM,14194.8,0,313100 +12/23/2016 10:59:33 PM,14194.8,0,313200 +12/23/2016 10:59:40 PM,14194.8,0,313300 +12/23/2016 10:59:48 PM,14194.8,0,313400 +12/23/2016 10:59:55 PM,14194.8,0,313500 +12/23/2016 11:00:02 PM,14194.8,0,313600 +12/23/2016 11:00:08 PM,14194.8,0,313700 +12/23/2016 11:00:15 PM,14195.7,0,313800 +12/23/2016 11:00:20 PM,14195.7,0,313900 +12/23/2016 11:00:26 PM,14196.85,0,314000 +12/23/2016 11:00:31 PM,14196.85,0,314100 +12/23/2016 11:00:36 PM,14196.85,0,314200 +12/23/2016 11:00:41 PM,14196.85,0,314300 +12/23/2016 11:00:46 PM,14196.85,0,314400 +12/23/2016 11:00:52 PM,14196.85,0,314500 +12/23/2016 11:01:00 PM,14196.85,0,314600 +12/23/2016 11:01:06 PM,14196.85,0,314700 +12/23/2016 11:01:11 PM,14196.85,0,314800 +12/23/2016 11:01:19 PM,14196.85,0,314900 +12/23/2016 11:01:26 PM,14196.85,0,315000 +12/23/2016 11:01:33 PM,14196.85,0,315100 +12/23/2016 11:01:43 PM,14196.85,0,315200 +12/23/2016 11:01:52 PM,14196.85,0,315300 +12/23/2016 11:01:59 PM,14196.85,0,315400 +12/23/2016 11:02:05 PM,14196.85,0,315500 +12/23/2016 11:02:12 PM,14196.85,0,315600 +12/23/2016 11:02:20 PM,14196.85,0,315700 +12/23/2016 11:02:26 PM,14196.85,0,315800 +12/23/2016 11:02:32 PM,14196.85,0,315900 +12/23/2016 11:02:38 PM,14196.85,0,316000 +12/23/2016 11:02:45 PM,14196.85,0,316100 +12/23/2016 11:02:53 PM,14196.85,0,316200 +12/23/2016 11:03:00 PM,14196.85,0,316300 +12/23/2016 11:03:06 PM,14196.85,0,316400 +12/23/2016 11:03:12 PM,14196.85,0,316500 +12/23/2016 11:03:19 PM,14196.85,0,316600 +12/23/2016 11:03:25 PM,14196.85,0,316700 +12/23/2016 11:03:30 PM,14196.85,0,316800 +12/23/2016 11:03:35 PM,14196.85,0,316900 +12/23/2016 11:03:42 PM,14196.85,0,317000 +12/23/2016 11:03:48 PM,14196.85,0,317100 +12/23/2016 11:03:53 PM,14196.85,0,317200 +12/23/2016 11:03:58 PM,14196.85,0,317300 +12/23/2016 11:04:04 PM,14196.85,0,317400 +12/23/2016 11:04:10 PM,14196.85,0,317500 +12/23/2016 11:04:16 PM,14196.85,0,317600 +12/23/2016 11:04:22 PM,14196.85,0,317700 +12/23/2016 11:04:28 PM,14196.85,0,317800 +12/23/2016 11:04:33 PM,14196.85,0,317900 +12/23/2016 11:04:39 PM,14196.85,0,318000 +12/23/2016 11:04:45 PM,14196.85,0,318100 +12/23/2016 11:04:52 PM,14196.85,0,318200 +12/23/2016 11:04:58 PM,14196.85,0,318300 +12/23/2016 11:05:03 PM,14196.85,0,318400 +12/23/2016 11:05:07 PM,14196.85,0,318500 +12/23/2016 11:05:12 PM,14196.85,0,318600 +12/23/2016 11:05:18 PM,14196.85,0,318700 +12/23/2016 11:05:23 PM,14196.85,0,318800 +12/23/2016 11:05:30 PM,14196.85,0,318900 +12/23/2016 11:05:36 PM,14196.85,0,319000 +12/23/2016 11:05:41 PM,14196.85,0,319100 +12/23/2016 11:05:46 PM,14196.85,0,319200 +12/23/2016 11:05:52 PM,14196.85,0,319300 +12/23/2016 11:05:57 PM,14196.85,0,319400 +12/23/2016 11:06:03 PM,14196.85,0,319500 +12/23/2016 11:06:07 PM,14196.85,0,319600 +12/23/2016 11:06:14 PM,14196.85,0,319700 +12/23/2016 11:06:20 PM,14196.85,0,319800 +12/23/2016 11:06:26 PM,14196.85,0,319900 +12/23/2016 11:06:31 PM,14196.85,0,320000 +12/23/2016 11:06:35 PM,14196.85,0,320100 +12/23/2016 11:06:39 PM,14196.85,0,320200 +12/23/2016 11:06:44 PM,14196.85,0,320300 +12/23/2016 11:06:49 PM,14196.85,0,320400 +12/23/2016 11:06:54 PM,14196.85,0,320500 +12/23/2016 11:07:01 PM,14196.85,0,320600 +12/23/2016 11:07:08 PM,14196.85,0,320700 +12/23/2016 11:07:12 PM,14196.85,0,320800 +12/23/2016 11:07:17 PM,14196.85,0,320900 +12/23/2016 11:07:21 PM,14196.85,0,321000 +12/23/2016 11:07:26 PM,14196.85,0,321100 +12/23/2016 11:07:30 PM,14196.85,0,321200 +12/23/2016 11:07:33 PM,14196.85,0,321300 +12/23/2016 11:07:38 PM,14196.85,0,321400 +12/23/2016 11:07:41 PM,14196.85,0,321500 +12/23/2016 11:07:47 PM,14196.85,0,321600 +12/23/2016 11:07:52 PM,14196.85,0,321700 +12/23/2016 11:07:56 PM,14196.85,0,321800 +12/23/2016 11:07:59 PM,14196.85,0,321900 +12/23/2016 11:08:03 PM,14196.85,0,322000 +12/23/2016 11:08:07 PM,14196.85,0,322100 +12/23/2016 11:08:11 PM,14197.3,0,322200 +12/23/2016 11:08:16 PM,14197.3,0,322300 +12/23/2016 11:08:20 PM,14197.3,0,322400 +12/23/2016 11:08:24 PM,14197.3,0,322500 +12/23/2016 11:08:29 PM,14197.3,0,322600 +12/23/2016 11:08:34 PM,14197.3,0,322700 +12/23/2016 11:08:39 PM,14197.3,0,322800 +12/23/2016 11:08:43 PM,14197.3,0,322900 +12/23/2016 11:08:48 PM,14197.3,0,323000 +12/23/2016 11:08:54 PM,14197.3,0,323100 +12/23/2016 11:09:00 PM,14197.3,0,323200 +12/23/2016 11:09:04 PM,14197.3,0,323300 +12/23/2016 11:09:07 PM,14197.3,0,323400 +12/23/2016 11:09:12 PM,14197.3,0,323500 +12/23/2016 11:09:16 PM,14197.3,0,323600 +12/23/2016 11:09:21 PM,14197.3,0,323700 +12/23/2016 11:09:27 PM,14197.3,0,323800 +12/23/2016 11:09:33 PM,14198,0,323900 +12/23/2016 11:09:37 PM,14198,0,324000 +12/23/2016 11:09:43 PM,14198,0,324100 +12/23/2016 11:09:47 PM,14198,0,324200 +12/23/2016 11:09:52 PM,14198,0,324300 +12/23/2016 11:09:56 PM,14198,0,324400 +12/23/2016 11:10:00 PM,14198,0,324500 +12/23/2016 11:10:04 PM,14198,0,324600 +12/23/2016 11:10:08 PM,14198,0,324700 +12/23/2016 11:10:12 PM,14198,0,324800 +12/23/2016 11:10:18 PM,14198,0,324900 +12/23/2016 11:10:23 PM,14198,0,325000 +12/23/2016 11:10:30 PM,14198,0,325100 +12/23/2016 11:10:37 PM,14198,0,325200 +12/23/2016 11:10:40 PM,14198,0,325300 +12/23/2016 11:10:45 PM,14198,0,325400 +12/23/2016 11:10:48 PM,14198,0,325500 +12/23/2016 11:10:51 PM,14198,0,325600 +12/23/2016 11:10:55 PM,14198,0,325700 +12/23/2016 11:10:59 PM,14198,0,325800 +12/23/2016 11:11:05 PM,14198,0,325900 +12/23/2016 11:11:10 PM,14198,0,326000 +12/23/2016 11:11:13 PM,14198,0,326100 +12/23/2016 11:11:17 PM,14198,0,326200 +12/23/2016 11:11:23 PM,14198,0,326300 +12/23/2016 11:11:26 PM,14198,0,326400 +12/23/2016 11:11:32 PM,14198,0,326500 +12/23/2016 11:11:36 PM,14198,0,326600 +12/23/2016 11:11:43 PM,14198,0,326700 +12/23/2016 11:11:48 PM,14198.65,0,326800 +12/23/2016 11:11:54 PM,14198.65,0,326900 +12/23/2016 11:11:59 PM,14198.65,0,327000 +12/23/2016 11:12:03 PM,14198.65,0,327100 +12/23/2016 11:12:07 PM,14198.65,0,327200 +12/23/2016 11:12:10 PM,14198.65,0,327300 +12/23/2016 11:12:14 PM,14198.65,0,327400 +12/23/2016 11:12:19 PM,14198.65,0,327500 +12/23/2016 11:12:24 PM,14198.65,0,327600 +12/23/2016 11:12:30 PM,14198.9,0,327700 +12/23/2016 11:12:34 PM,14198.9,0,327800 +12/23/2016 11:12:39 PM,14198.9,0,327900 +12/23/2016 11:12:46 PM,14198.9,0,328000 +12/23/2016 11:12:53 PM,14198.9,0,328100 +12/23/2016 11:12:57 PM,14198.9,0,328200 +12/23/2016 11:13:04 PM,14198.9,0,328300 +12/23/2016 11:13:08 PM,14198.9,0,328400 +12/23/2016 11:13:12 PM,14198.9,0,328500 +12/23/2016 11:13:17 PM,14198.9,0,328600 +12/23/2016 11:13:22 PM,14198.9,0,328700 +12/23/2016 11:13:26 PM,14198.9,0,328800 +12/23/2016 11:13:30 PM,14198.9,0,328900 +12/23/2016 11:13:34 PM,14198.9,0,329000 +12/23/2016 11:13:39 PM,14198.9,0,329100 +12/23/2016 11:13:42 PM,14198.9,0,329200 +12/23/2016 11:13:47 PM,14198.9,0,329300 +12/23/2016 11:13:52 PM,14198.9,0,329400 +12/23/2016 11:13:57 PM,14198.9,0,329500 +12/23/2016 11:14:01 PM,14198.9,0,329600 +12/23/2016 11:14:08 PM,14198.9,0,329700 +12/23/2016 11:14:14 PM,14198.9,0,329800 +12/23/2016 11:14:20 PM,14198.9,0,329900 +12/23/2016 11:14:26 PM,14198.9,0,330000 +12/23/2016 11:14:33 PM,14198.9,0,330100 +12/23/2016 11:14:40 PM,14198.9,0,330200 +12/23/2016 11:14:46 PM,14198.9,0,330300 +12/23/2016 11:14:51 PM,14198.9,0,330400 +12/23/2016 11:14:56 PM,14198.9,0,330500 +12/23/2016 11:15:01 PM,14198.9,0,330600 +12/23/2016 11:15:05 PM,14198.9,0,330700 +12/23/2016 11:15:12 PM,14198.9,0,330800 +12/23/2016 11:15:18 PM,14198.9,0,330900 +12/23/2016 11:15:24 PM,14198.9,0,331000 +12/23/2016 11:15:30 PM,14198.9,0,331100 +12/23/2016 11:15:34 PM,14198.9,0,331200 +12/23/2016 11:15:41 PM,14198.9,0,331300 +12/23/2016 11:15:47 PM,14198.9,0,331400 +12/23/2016 11:15:51 PM,14198.9,0,331500 +12/23/2016 11:15:56 PM,14198.9,0,331600 +12/23/2016 11:16:01 PM,14198.9,0,331700 +12/23/2016 11:16:05 PM,14198.9,0,331800 +12/23/2016 11:16:11 PM,14198.9,0,331900 +12/23/2016 11:16:16 PM,14198.9,0,332000 +12/23/2016 11:16:22 PM,14198.9,0,332100 +12/23/2016 11:16:28 PM,14198.9,0,332200 +12/23/2016 11:16:33 PM,14198.9,0,332300 +12/23/2016 11:16:39 PM,14198.9,0,332400 +12/23/2016 11:16:45 PM,14198.9,0,332500 +12/23/2016 11:16:51 PM,14198.9,0,332600 +12/23/2016 11:16:59 PM,14198.9,0,332700 +12/23/2016 11:17:06 PM,14198.9,0,332800 +12/23/2016 11:17:12 PM,14198.9,0,332900 +12/23/2016 11:17:19 PM,14198.9,0,333000 +12/23/2016 11:17:26 PM,14198.9,0,333100 +12/23/2016 11:17:33 PM,14198.9,0,333200 +12/23/2016 11:17:39 PM,14198.9,0,333300 +12/23/2016 11:17:44 PM,14198.9,0,333400 +12/23/2016 11:17:48 PM,14198.9,0,333500 +12/23/2016 11:17:55 PM,14198.9,0,333600 +12/23/2016 11:18:03 PM,14198.9,0,333700 +12/23/2016 11:18:12 PM,14198.9,0,333800 +12/23/2016 11:18:17 PM,14198.9,0,333900 +12/23/2016 11:18:24 PM,14198.9,0,334000 +12/23/2016 11:18:28 PM,14198.9,0,334100 +12/23/2016 11:18:33 PM,14199.8,0,334200 +12/23/2016 11:18:36 PM,14199.8,0,334300 +12/23/2016 11:18:41 PM,14199.8,0,334400 +12/23/2016 11:18:45 PM,14199.8,0,334500 +12/23/2016 11:18:49 PM,14199.8,0,334600 +12/23/2016 11:18:55 PM,14199.8,0,334700 +12/23/2016 11:18:59 PM,14199.8,0,334800 +12/23/2016 11:19:05 PM,14199.8,0,334900 +12/23/2016 11:19:13 PM,14199.8,0,335000 +12/23/2016 11:19:20 PM,14199.8,0,335100 +12/23/2016 11:19:26 PM,14199.8,0,335200 +12/23/2016 11:19:32 PM,14199.8,0,335300 +12/23/2016 11:19:38 PM,14199.8,0,335400 +12/23/2016 11:19:44 PM,14199.8,0,335500 +12/23/2016 11:19:51 PM,14199.8,0,335600 +12/23/2016 11:20:01 PM,14199.8,0,335700 +12/23/2016 11:20:05 PM,14199.8,0,335800 +12/23/2016 11:20:10 PM,14199.8,0,335900 +12/23/2016 11:20:18 PM,14199.8,0,336000 +12/23/2016 11:20:24 PM,14199.8,0,336100 +12/23/2016 11:20:31 PM,14199.8,0,336200 +12/23/2016 11:20:35 PM,14199.8,0,336300 +12/23/2016 11:20:40 PM,14199.8,0,336400 +12/23/2016 11:20:46 PM,14199.8,0,336500 +12/23/2016 11:20:50 PM,14199.8,0,336600 +12/23/2016 11:20:56 PM,14199.8,0,336700 +12/23/2016 11:21:01 PM,14199.8,0,336800 +12/23/2016 11:21:06 PM,14199.8,0,336900 +12/23/2016 11:21:11 PM,14199.8,0,337000 +12/23/2016 11:21:15 PM,14199.8,0,337100 +12/23/2016 11:21:19 PM,14199.8,0,337200 +12/23/2016 11:21:25 PM,14199.8,0,337300 +12/23/2016 11:21:29 PM,14199.8,0,337400 +12/23/2016 11:21:34 PM,14199.8,0,337500 +12/23/2016 11:21:39 PM,14199.8,0,337600 +12/23/2016 11:21:44 PM,14199.8,0,337700 +12/23/2016 11:21:48 PM,14199.8,0,337800 +12/23/2016 11:21:54 PM,14199.8,0,337900 +12/23/2016 11:21:58 PM,14199.8,0,338000 +12/23/2016 11:22:03 PM,14199.8,0,338100 +12/23/2016 11:22:10 PM,14199.8,0,338200 +12/23/2016 11:22:15 PM,14199.8,0,338300 +12/23/2016 11:22:21 PM,14199.8,0,338400 +12/23/2016 11:22:28 PM,14199.8,0,338500 +12/23/2016 11:22:34 PM,14199.8,0,338600 +12/23/2016 11:22:42 PM,14199.8,0,338700 +12/23/2016 11:22:48 PM,14199.8,0,338800 +12/23/2016 11:22:54 PM,14199.8,0,338900 +12/23/2016 11:22:57 PM,14199.8,0,339000 +12/23/2016 11:23:01 PM,14199.8,0,339100 +12/23/2016 11:23:07 PM,14199.8,0,339200 +12/23/2016 11:23:11 PM,14199.8,0,339300 +12/23/2016 11:23:16 PM,14199.8,0,339400 +12/23/2016 11:23:21 PM,14199.8,0,339500 +12/23/2016 11:23:25 PM,14199.8,0,339600 +12/23/2016 11:23:31 PM,14199.8,0,339700 +12/23/2016 11:23:36 PM,14199.8,0,339800 +12/23/2016 11:23:42 PM,14199.8,0,339900 +12/23/2016 11:23:47 PM,14199.8,0,340000 +12/23/2016 11:23:54 PM,14199.8,0,340100 +12/23/2016 11:24:02 PM,14199.8,0,340200 +12/23/2016 11:24:07 PM,14199.8,0,340300 +12/23/2016 11:24:12 PM,14199.8,0,340400 +12/23/2016 11:24:17 PM,14199.8,0,340500 +12/23/2016 11:24:20 PM,14199.8,0,340600 +12/23/2016 11:24:26 PM,14199.8,0,340700 +12/23/2016 11:24:32 PM,14199.8,0,340800 +12/23/2016 11:24:38 PM,14199.8,0,340900 +12/23/2016 11:24:43 PM,14199.8,0,341000 +12/23/2016 11:24:48 PM,14199.8,0,341100 +12/23/2016 11:24:56 PM,14199.8,0,341200 +12/23/2016 11:25:01 PM,14199.8,0,341300 +12/23/2016 11:25:06 PM,14199.8,0,341400 +12/23/2016 11:25:11 PM,14199.8,0,341500 +12/23/2016 11:25:18 PM,14199.8,0,341600 +12/23/2016 11:25:23 PM,14199.8,0,341700 diff --git a/Results/trimleftofquote/program.txt b/Results/trimleftofquote/program.txt new file mode 100644 index 0000000..0e61b39 --- /dev/null +++ b/Results/trimleftofquote/program.txt @@ -0,0 +1 @@ ++++++$!+$++++++++++[+++++[+++++++++$$++>,-<++.>!-+$$>!>,>a!-,a!]+>-,.++!!+$-+[>,.$>,[.,+-],$<+!!>@A!,+*+>+*+<[[---$*]]>-,[-@-+,>,<,[$,>+-.!<]<][!+[<[[+$+[[+<[[>$+[[-+$,->!>>$<$[+-,>6,$.-><-[!-[$>,+,,[,!+>!,,[$![!5@ \ No newline at end of file diff --git a/Results/trimleftofquote/trimleftofquote-1.png b/Results/trimleftofquote/trimleftofquote-1.png new file mode 100644 index 0000000000000000000000000000000000000000..fcb49419fa04fa88d8f0bd5dc3bc65e942039a49 GIT binary patch literal 30837 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 J=%QofzX6aMiL(Fz literal 0 HcmV?d00001 From e5a0fe8f5a83164fc3101a7d503f8b322b25e43d Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Sat, 24 Dec 2016 10:27:15 -0500 Subject: [PATCH 15/42] Moved file. --- .../Concrete/{Research => }/TrimLeftOfQuoteFitness.cs | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename AIProgrammer.Fitness/Concrete/{Research => }/TrimLeftOfQuoteFitness.cs (100%) diff --git a/AIProgrammer.Fitness/Concrete/Research/TrimLeftOfQuoteFitness.cs b/AIProgrammer.Fitness/Concrete/TrimLeftOfQuoteFitness.cs similarity index 100% rename from AIProgrammer.Fitness/Concrete/Research/TrimLeftOfQuoteFitness.cs rename to AIProgrammer.Fitness/Concrete/TrimLeftOfQuoteFitness.cs From 2450a1ea910f0734edf573327139951eda42befb Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Sat, 24 Dec 2016 10:29:43 -0500 Subject: [PATCH 16/42] Moved file. --- AIProgrammer.Fitness/AIProgrammer.Fitness.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj b/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj index 95e3d56..ec78ce8 100644 --- a/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj +++ b/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj @@ -54,7 +54,7 @@ - + From ca1ed5959fd0d001ffe1c1fda07a534583d7fa91 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Sat, 24 Dec 2016 14:06:33 -0500 Subject: [PATCH 17/42] Updated README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4cb65b3..7a2b633 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ AI-Programmer ========= Read the full article at: -http://www.primaryobjects.com/CMS/Article149 +http://www.primaryobjects.com/2013/01/27/using-artificial-intelligence-to-write-self-modifying-improving-programs/ AI-Programmer is an experiment with using artificial intelligence and genetic algorithms to automatically generate programs in the Brainf**k programming language. Successfully created [programs](https://github.com/primaryobjects/AI-Programmer/tree/master/Results) by the AI include: hello world, hello , addition, subtraction, reversing a string, fibonnaci sequence, 99 bottles of beer on the wall, and more. It's getting smarter. In short, it's an AI genetic algorithm implementation with self modifying code. @@ -168,4 +168,4 @@ https://github.com/primaryobjects/ai-programmer ## Copyright -Copyright (c) 2015 Kory Becker http://primaryobjects.com/kory-becker +Copyright (c) 2017 Kory Becker http://primaryobjects.com/kory-becker From ae5ed184d4648bab7ed1dbb3d2880db3964ba730 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Thu, 29 Dec 2016 09:35:29 -0500 Subject: [PATCH 18/42] Added solution and results for ExtractInQuotes2Fitness. --- .../AIProgrammer.Fitness.csproj | 2 +- ...aFitness.cs => ExtractInQuotes2Fitness.cs} | 37 +- .../extractinquotes2/extract-in-quotes-1.png | Bin 0 -> 40389 bytes .../extract-in-quotes-2-1.png | Bin 0 -> 42826 bytes .../extractinquotes2/extract-in-quotes-2.exe | Bin 0 -> 5120 bytes .../extractinquotes2/extract-in-quotes-2.png | Bin 0 -> 30848 bytes .../extractinquotes2/extract-in-quotes.exe | Bin 0 -> 5120 bytes Results/extractinquotes2/history-2.txt | 1885 +++++++++++++++++ Results/extractinquotes2/history.txt | 370 ++++ 9 files changed, 2280 insertions(+), 14 deletions(-) rename AIProgrammer.Fitness/Concrete/{Research/ExtractInQuotesExtraFitness.cs => ExtractInQuotes2Fitness.cs} (83%) create mode 100644 Results/extractinquotes2/extract-in-quotes-1.png create mode 100644 Results/extractinquotes2/extract-in-quotes-2-1.png create mode 100644 Results/extractinquotes2/extract-in-quotes-2.exe create mode 100644 Results/extractinquotes2/extract-in-quotes-2.png create mode 100644 Results/extractinquotes2/extract-in-quotes.exe create mode 100644 Results/extractinquotes2/history-2.txt create mode 100644 Results/extractinquotes2/history.txt diff --git a/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj b/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj index ec78ce8..316978a 100644 --- a/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj +++ b/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj @@ -55,7 +55,7 @@ - + diff --git a/AIProgrammer.Fitness/Concrete/Research/ExtractInQuotesExtraFitness.cs b/AIProgrammer.Fitness/Concrete/ExtractInQuotes2Fitness.cs similarity index 83% rename from AIProgrammer.Fitness/Concrete/Research/ExtractInQuotesExtraFitness.cs rename to AIProgrammer.Fitness/Concrete/ExtractInQuotes2Fitness.cs index cd26ffb..b39d311 100644 --- a/AIProgrammer.Fitness/Concrete/Research/ExtractInQuotesExtraFitness.cs +++ b/AIProgrammer.Fitness/Concrete/ExtractInQuotes2Fitness.cs @@ -14,12 +14,12 @@ namespace AIProgrammer.Fitness.Concrete { /// - /// Outputs the text inside quotes, with additional text in front of it. + /// Outputs the text inside quotes, with additional text before and after. /// - public class ExtractInQuotesExtraFitness : FitnessBase + public class ExtractInQuotes2Fitness : FitnessBase { - private static string[] _trainingExamples = { "dot \"inside\"", "mil \"test\"", "fin \"foresting\"" }; - private static string[] _trainingResults = new string[] { "inside", "test", "foresting" }; + private static string[] _trainingExamples = { "alice \"inside\" over", "xy \"test\" rights", "hopping \"foresting\" bat", "more \"steady\" working" }; + private static string[] _trainingResults = new string[] { "inside", "test", "foresting", "steady" }; #region Settings @@ -72,7 +72,7 @@ public override int? ExpandRate #endregion - public ExtractInQuotesExtraFitness(GA ga, int maxIterationCount, string appendFunctions = null) + public ExtractInQuotes2Fitness(GA ga, int maxIterationCount, string appendFunctions = null) : base(ga, maxIterationCount, appendFunctions) { if (_targetFitness == 0) @@ -81,6 +81,7 @@ public ExtractInQuotesExtraFitness(GA ga, int maxIterationCount, string appendFu { _targetFitness += _trainingResults[i].Length * 256; _targetFitness += 10; // length fitness + _targetFitness += 10 * _trainingResults[i].Length; } } } @@ -97,9 +98,9 @@ protected override double GetFitnessMethod(string program) try { int state = 0; - HashSet memoryHash = new HashSet(); + //HashSet memoryHash = new HashSet(); int aBonus = 0; - + int quoteCount = 0; _console.Clear(); // Run the program. @@ -108,7 +109,11 @@ protected override double GetFitnessMethod(string program) if (state < _trainingExamples[i].Length) { // Store data in different memory positions, so that function can access the data. - memoryHash.Add(_bf.m_CurrentDataPointer); + //memoryHash.Add(_bf.m_CurrentDataPointer); + if (_trainingExamples[i][state] == '"') + { + quoteCount++; + } // Send input. return (byte)_trainingExamples[i][state++]; @@ -121,21 +126,27 @@ protected override double GetFitnessMethod(string program) }, (b) => { + if (_console.Length < _trainingResults[i].Length && quoteCount == 1) + { + // Only output whats in the quotes. + Fitness += 10; + } + _console.Append((char)b); }, (function) => { if (function == 'a' && aBonus < 2 && _bf.IsInsideLoop) { - countBonus += 50; - countBonus += (_bf.m_CurrentInstructionPointer + 1 < program.Length) && program[_bf.m_CurrentInstructionPointer + 1] == '!' ? 50 : 0; + countBonus += 25; + countBonus += (_bf.m_CurrentInstructionPointer + 1 < program.Length) && program[_bf.m_CurrentInstructionPointer + 1] == '!' ? 25 : 0; aBonus++; - } + } }, new Function[] { new Function() { MaxIterationCount = 100 } }); _bf.Run(_maxIterationCount); // Give a bonus for using multiple memory registers, supporting diversity. - countBonus += memoryHash.Count * 25; + //countBonus += memoryHash.Count * 25; } catch { @@ -163,7 +174,7 @@ protected override double GetFitnessMethod(string program) IsFitnessAchieved(); // Bonus for less operations to optimize the code. - countBonus += ((_maxIterationCount - _bf.m_Ticks) / 20.0); + countBonus += ((_maxIterationCount - _bf.m_Ticks) / 1000.0); Ticks += _bf.m_Ticks; TotalTicks += _bf.m_TotalTicks; diff --git a/Results/extractinquotes2/extract-in-quotes-1.png b/Results/extractinquotes2/extract-in-quotes-1.png new file mode 100644 index 0000000000000000000000000000000000000000..3a7fe621c009849e6296c4afdaf9fdc6b6159feb GIT binary patch literal 40389 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 z%0A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 UpXNVJue>fQs9ngAH@^FS0KG}p*#H0l literal 0 HcmV?d00001 diff --git a/Results/extractinquotes2/extract-in-quotes-2-1.png b/Results/extractinquotes2/extract-in-quotes-2-1.png new file mode 100644 index 0000000000000000000000000000000000000000..1f347016e90486dc52688d5bdc1695ad0739bbad GIT binary patch literal 42826 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%0AS(+^Tkl#q~MB9d0Dp{uA$Q0hfgP+ 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 literal 0 HcmV?d00001 diff --git a/Results/extractinquotes2/extract-in-quotes-2.png b/Results/extractinquotes2/extract-in-quotes-2.png new file mode 100644 index 0000000000000000000000000000000000000000..c0b79e2ea09d4effab2a70fd11d70fa54ba21446 GIT binary patch literal 30848 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 NVsKi&SntxU{{?On-Wvb_ literal 0 HcmV?d00001 diff --git a/Results/extractinquotes2/extract-in-quotes.exe b/Results/extractinquotes2/extract-in-quotes.exe new file mode 100644 index 0000000000000000000000000000000000000000..86c13165c4f1ef879b8ebf366766a0b09c3c736b GIT binary patch literal 5120 zcmeHKO>7&-6@E+ohKdDQb_BPLlO-)DvMsLUNKIpxl1Q1d%0#vlNtWAKs=Zu}sEzlp zvrC4|!B7jdNO~x8DvBJ69*SO@L(m3pixfqVHhSpAhoa4?FmlNyryi1iZPG$ibD|H>a>*(BXtIm$!Dnv|()&-`O?{v(-A%3U z*r6UszamXnw@lCTBfTVaS@m?=(+kUMy6cyPap+KTv zHb9hwra#usoJj9^6CmhQb8W^ANfn*wh9N^~K~k~h z!1SVWKpiEA=nW|xABL*y209sQ7`3D1h~_&)#p=ASC>&dYdgxe+=x6YuK}Kb7|5G_K z*+uVT1jZgF2^u7i>Tew(IvQeilLLvL*yF>Ak$2^oM!{GQR3o2hXS5M|vOhCN(qJu| zCP{9#*&nyr`)!uNW81MlwSIlQK2A%rQ}-x$M@S|UfWQtUX$)sA`5c{oCNahb@AUlI z%k!FAg?LSC)5fGRH92+m94|)?IiPPLf)lrhK1F+v`L#&eUL|CUJ9w!I*n<;S)@TS5 z!YQN^i&u&Tv^wNE%kz$3LdylF+Tv3Q;^RR7Iyprn@g5);wUy{s(Xh<#E8M9XAK9eh zdAl<79OzXl&;Z?pO)tGmZ-U+iP13OTDGlO%Gqhe>*4VNPI!wRP-iGFn;JGk1Q*MXo zDbOAzt>|Fsr!);DjfPSz{pi>^*u>GzVaw0aQA&Y+l}>>U(OJ-EDNh^P^Hd~9%P9H+ zy-L5IL&BzTcUpjV))*4|XTv{%@F061fJU@(VE2M%bRVx*<Hbd_w!jvDRWcs7(THs|6BX7>jzZ?>$MIZ4Wsi&z%cJ1f^6Q9M>&Z|^T4o;eH_0Xsub@L!=ybY3KDiV? z>ySXdju+dYNutaJNCNf|Xc_tvH9%j1y;R&h^cGSPkD{#|*hRoOPZN0FP>%sw0@(!$ zkMV)=x*8S1w}H{@djc3SW(NIjOar4rAk;}qts+_v5650X6pZVGC^>$mRo7C%hqe(>|(%>0%5fBWX<##g34dK zJ3iQ@WBqhZJA9}cw7*a9(uR-s5B5+ZF*w)_lR;!{4Sg)p;Y@E|*WmD}M88IT8sme( zw+rPN&b#Z0k*m@SF8kg>-4X%6_v<^-e_BbmV|*FOI=^`(6f)erSrXPwAvX&myczkyX1$xLc_T ziD|SOxT9YOU7%HPMOvoIkc*%f!E^aT_a~p>1yg({nQIDsTX?XypmZB5?Obf8wjy5p zZ6pFNqr{`uRr>IdG8|ZPV(?)Tm-o7V2~Z6&MX-v~&cjH%%4QPjGJd9!z>qqTf)g0q zvM;E_WGS3rpC28zlSmJ3+YQ)CMAVLDQl(=~$to>l?*?Gcv*E-n(VB?=GN=ogFo!C7 z0!0mI>PkyArea!xR8b>1@drqcJi7{U`X=IdateRBsppw9erql)J=)K-nh&RAAD@jX z(r$$P-9M{`=frD}SLs^-zXXq*xc}QYgiD|N?!)X{-F5UD5+Ty*O!}-bnbw78`DI+g zX3|&IFJ@j!>tSSiWz+FJF_UhHFg-VWD48|GP`D+hp##7RXVO*aoe!-Y;hJH_wJqs~ z{&tkHeD}N=x<>76T6ay)-WFlB(di9Py1oZiEDPNBqQ<_6@FxRNd8P~Zmm2vXaBNFm z_6#!!(i1U4B rWZV8@#`8j2jf3w{SXErS8ci7*iJKYX6y+6Z*Kp^oi10B{r&_2w zN*f2M(yHrnYCgU_X}xOaE!=6bjN7IYisqyg$ixBBv_hZQ7khSM kZxLXSooMY41m5j0%VV#A9{<11ssFW)J?cxtFUSh~8|J;Y;s5{u literal 0 HcmV?d00001 diff --git a/Results/extractinquotes2/history-2.txt b/Results/extractinquotes2/history-2.txt new file mode 100644 index 0000000..c0123d1 --- /dev/null +++ b/Results/extractinquotes2/history-2.txt @@ -0,0 +1,1885 @@ +12/28/2016 10:22:24 PM,5489.746,0,0 +12/28/2016 10:22:25 PM,6403.646,0,100 +12/28/2016 10:22:26 PM,6403.698,0,200 +12/28/2016 10:22:28 PM,6403.698,0,300 +12/28/2016 10:22:29 PM,6403.722,0,400 +12/28/2016 10:22:31 PM,6403.748,0,500 +12/28/2016 10:22:32 PM,6403.756,0,600 +12/28/2016 10:22:33 PM,6403.756,0,700 +12/28/2016 10:22:34 PM,6403.756,0,800 +12/28/2016 10:22:36 PM,6403.768,0,900 +12/28/2016 10:22:37 PM,6403.768,0,1000 +12/28/2016 10:22:38 PM,6403.768,0,1100 +12/28/2016 10:22:40 PM,6403.768,0,1200 +12/28/2016 10:22:41 PM,6403.768,0,1300 +12/28/2016 10:22:42 PM,6403.768,0,1400 +12/28/2016 10:22:44 PM,6403.768,0,1500 +12/28/2016 10:22:45 PM,6403.768,0,1600 +12/28/2016 10:22:47 PM,6403.768,0,1700 +12/28/2016 10:22:48 PM,6403.768,0,1800 +12/28/2016 10:22:50 PM,6403.768,0,1900 +12/28/2016 10:22:54 PM,6403.768,0,2000 +12/28/2016 10:22:55 PM,6403.768,0,2100 +12/28/2016 10:22:56 PM,6403.768,0,2200 +12/28/2016 10:22:58 PM,6403.768,0,2300 +12/28/2016 10:22:59 PM,6403.772,0,2400 +12/28/2016 10:23:00 PM,6403.772,0,2500 +12/28/2016 10:23:01 PM,6408.738,0,2600 +12/28/2016 10:23:03 PM,6411.704,0,2700 +12/28/2016 10:23:04 PM,6411.704,0,2800 +12/28/2016 10:23:06 PM,6411.704,0,2900 +12/28/2016 10:23:07 PM,6421.704,0,3000 +12/28/2016 10:23:08 PM,6421.704,0,3100 +12/28/2016 10:23:10 PM,6421.704,0,3200 +12/28/2016 10:23:11 PM,6421.704,0,3300 +12/28/2016 10:23:13 PM,6421.704,0,3400 +12/28/2016 10:23:14 PM,6422.696,0,3500 +12/28/2016 10:23:16 PM,6422.696,0,3600 +12/28/2016 10:23:18 PM,6422.696,0,3700 +12/28/2016 10:23:19 PM,6422.696,0,3800 +12/28/2016 10:23:20 PM,6422.696,0,3900 +12/28/2016 10:23:22 PM,6433.728,0,4000 +12/28/2016 10:23:23 PM,6453.559,0,4100 +12/28/2016 10:23:25 PM,6470.63,0,4200 +12/28/2016 10:23:26 PM,6470.63,0,4300 +12/28/2016 10:23:27 PM,6470.63,0,4400 +12/28/2016 10:23:29 PM,6470.63,0,4500 +12/28/2016 10:23:30 PM,6470.63,0,4600 +12/28/2016 10:23:31 PM,6470.63,0,4700 +12/28/2016 10:23:32 PM,6470.63,0,4800 +12/28/2016 10:23:34 PM,6470.63,0,4900 +12/28/2016 10:23:35 PM,6470.63,0,5000 +12/28/2016 10:23:36 PM,6480.622,0,5100 +12/28/2016 10:23:37 PM,6481.571,0,5200 +12/28/2016 10:23:39 PM,6481.571,0,5300 +12/28/2016 10:23:40 PM,6481.571,0,5400 +12/28/2016 10:23:42 PM,6481.571,0,5500 +12/28/2016 10:23:43 PM,6481.571,0,5600 +12/28/2016 10:23:44 PM,6481.571,0,5700 +12/28/2016 10:23:50 PM,6489.178,0,5800 +12/28/2016 10:23:56 PM,6631.447,0,5900 +12/28/2016 10:24:00 PM,6632.518,0,6000 +12/28/2016 10:24:07 PM,6633.518,0,6100 +12/28/2016 10:24:10 PM,6633.522,0,6200 +12/28/2016 10:24:15 PM,6634.518,0,6300 +12/28/2016 10:24:19 PM,6634.656,0,6400 +12/28/2016 10:24:24 PM,6634.656,0,6500 +12/28/2016 10:24:30 PM,6637.518,0,6600 +12/28/2016 10:24:37 PM,6639.514,0,6700 +12/28/2016 10:24:43 PM,6641.502,0,6800 +12/28/2016 10:24:46 PM,6641.502,0,6900 +12/28/2016 10:24:52 PM,6641.51,0,7000 +12/28/2016 10:24:57 PM,6641.51,0,7100 +12/28/2016 10:25:03 PM,6641.51,0,7200 +12/28/2016 10:25:08 PM,6642.51,0,7300 +12/28/2016 10:25:11 PM,6642.51,0,7400 +12/28/2016 10:25:17 PM,6642.51,0,7500 +12/28/2016 10:25:20 PM,6642.51,0,7600 +12/28/2016 10:25:23 PM,6642.51,0,7700 +12/28/2016 10:25:29 PM,6642.51,0,7800 +12/28/2016 10:25:33 PM,6642.51,0,7900 +12/28/2016 10:25:37 PM,6642.51,0,8000 +12/28/2016 10:25:41 PM,6642.51,0,8100 +12/28/2016 10:25:43 PM,6642.51,0,8200 +12/28/2016 10:25:46 PM,6642.51,0,8300 +12/28/2016 10:25:51 PM,6642.51,0,8400 +12/28/2016 10:25:56 PM,6642.51,0,8500 +12/28/2016 10:25:59 PM,6642.51,0,8600 +12/28/2016 10:26:02 PM,6642.51,0,8700 +12/28/2016 10:26:06 PM,6654.816,0,8800 +12/28/2016 10:26:13 PM,6654.816,0,8900 +12/28/2016 10:26:22 PM,6664.794,0,9000 +12/28/2016 10:26:29 PM,6664.808,0,9100 +12/28/2016 10:26:36 PM,6664.814,0,9200 +12/28/2016 10:26:40 PM,6664.818,0,9300 +12/28/2016 10:26:44 PM,6664.826,0,9400 +12/28/2016 10:26:51 PM,6664.826,0,9500 +12/28/2016 10:26:57 PM,6664.83,0,9600 +12/28/2016 10:27:06 PM,6664.83,0,9700 +12/28/2016 10:27:12 PM,6664.83,0,9800 +12/28/2016 10:27:16 PM,6664.83,0,9900 +12/28/2016 10:27:18 PM,6664.83,0,10000 +12/28/2016 10:27:21 PM,6664.83,0,10100 +12/28/2016 10:27:26 PM,6664.83,0,10200 +12/28/2016 10:27:30 PM,6664.83,0,10300 +12/28/2016 10:27:33 PM,6677.696,0,10400 +12/28/2016 10:27:37 PM,6677.722,0,10500 +12/28/2016 10:27:42 PM,6677.744,0,10600 +12/28/2016 10:27:44 PM,6677.766,0,10700 +12/28/2016 10:27:49 PM,6677.766,0,10800 +12/28/2016 10:27:54 PM,6677.776,0,10900 +12/28/2016 10:27:59 PM,6677.778,0,11000 +12/28/2016 10:28:03 PM,6677.778,0,11100 +12/28/2016 10:28:07 PM,6677.786,0,11200 +12/28/2016 10:28:09 PM,6677.794,0,11300 +12/28/2016 10:28:13 PM,6677.798,0,11400 +12/28/2016 10:28:16 PM,6677.798,0,11500 +12/28/2016 10:28:19 PM,6677.8,0,11600 +12/28/2016 10:28:26 PM,6677.8,0,11700 +12/28/2016 10:28:29 PM,6677.8,0,11800 +12/28/2016 10:28:32 PM,6677.8,0,11900 +12/28/2016 10:28:34 PM,6677.8,0,12000 +12/28/2016 10:28:36 PM,6677.8,0,12100 +12/28/2016 10:28:38 PM,6677.8,0,12200 +12/28/2016 10:28:40 PM,6677.8,0,12300 +12/28/2016 10:28:43 PM,6677.8,0,12400 +12/28/2016 10:28:45 PM,6677.8,0,12500 +12/28/2016 10:28:48 PM,6677.8,0,12600 +12/28/2016 10:28:51 PM,6677.8,0,12700 +12/28/2016 10:28:54 PM,6677.8,0,12800 +12/28/2016 10:28:58 PM,6677.8,0,12900 +12/28/2016 10:28:59 PM,6677.8,0,13000 +12/28/2016 10:29:02 PM,6677.8,0,13100 +12/28/2016 10:29:06 PM,6677.8,0,13200 +12/28/2016 10:29:11 PM,6677.8,0,13300 +12/28/2016 10:29:14 PM,6677.8,0,13400 +12/28/2016 10:29:19 PM,6677.8,0,13500 +12/28/2016 10:29:23 PM,6677.8,0,13600 +12/28/2016 10:29:28 PM,6677.8,0,13700 +12/28/2016 10:29:30 PM,6677.8,0,13800 +12/28/2016 10:29:35 PM,6677.8,0,13900 +12/28/2016 10:29:38 PM,6677.8,0,14000 +12/28/2016 10:29:42 PM,6677.8,0,14100 +12/28/2016 10:29:47 PM,6677.8,0,14200 +12/28/2016 10:29:52 PM,6677.8,0,14300 +12/28/2016 10:29:56 PM,6677.988,0,14400 +12/28/2016 10:30:00 PM,6677.988,0,14500 +12/28/2016 10:30:06 PM,6677.988,0,14600 +12/28/2016 10:30:10 PM,6677.988,0,14700 +12/28/2016 10:30:13 PM,6677.988,0,14800 +12/28/2016 10:30:15 PM,6677.988,0,14900 +12/28/2016 10:30:18 PM,6677.988,0,15000 +12/28/2016 10:30:20 PM,6677.988,0,15100 +12/28/2016 10:30:24 PM,6677.988,0,15200 +12/28/2016 10:30:26 PM,6677.988,0,15300 +12/28/2016 10:30:29 PM,6677.988,0,15400 +12/28/2016 10:30:32 PM,6677.988,0,15500 +12/28/2016 10:30:36 PM,6677.988,0,15600 +12/28/2016 10:30:39 PM,6677.988,0,15700 +12/28/2016 10:30:44 PM,6677.988,0,15800 +12/28/2016 10:30:46 PM,6677.988,0,15900 +12/28/2016 10:30:50 PM,6677.988,0,16000 +12/28/2016 10:30:56 PM,6728,0,16100 +12/28/2016 10:31:10 PM,6741,0,16200 +12/28/2016 10:31:24 PM,6741,0,16300 +12/28/2016 10:31:30 PM,6741,0,16400 +12/28/2016 10:31:40 PM,6741,0,16500 +12/28/2016 10:31:52 PM,6741,0,16600 +12/28/2016 10:32:03 PM,6741,0,16700 +12/28/2016 10:32:20 PM,6741,0,16800 +12/28/2016 10:32:35 PM,6741,0,16900 +12/28/2016 10:32:47 PM,6741,0,17000 +12/28/2016 10:32:56 PM,6741,0,17100 +12/28/2016 10:33:09 PM,6741,0,17200 +12/28/2016 10:33:16 PM,6741,0,17300 +12/28/2016 10:33:26 PM,6741,0,17400 +12/28/2016 10:33:36 PM,6741,0,17500 +12/28/2016 10:33:49 PM,6741,0,17600 +12/28/2016 10:34:01 PM,6741,0,17700 +12/28/2016 10:34:16 PM,6741,0,17800 +12/28/2016 10:34:29 PM,6741,0,17900 +12/28/2016 10:34:40 PM,6741,0,18000 +12/28/2016 10:34:54 PM,6741,0,18100 +12/28/2016 10:35:11 PM,6741,0,18200 +12/28/2016 10:35:21 PM,6741,0,18300 +12/28/2016 10:35:32 PM,6741,0,18400 +12/28/2016 10:35:47 PM,6741,0,18500 +12/28/2016 10:35:57 PM,6741,0,18600 +12/28/2016 10:36:09 PM,6741,0,18700 +12/28/2016 10:36:20 PM,6741,0,18800 +12/28/2016 10:36:30 PM,6741,0,18900 +12/28/2016 10:36:45 PM,6741,0,19000 +12/28/2016 10:36:57 PM,6741,0,19100 +12/28/2016 10:37:07 PM,6741,0,19200 +12/28/2016 10:37:18 PM,6741,0,19300 +12/28/2016 10:37:33 PM,6741,0,19400 +12/28/2016 10:37:49 PM,6741,0,19500 +12/28/2016 10:38:05 PM,6741,0,19600 +12/28/2016 10:38:16 PM,6741,0,19700 +12/28/2016 10:38:32 PM,6741,0,19800 +12/28/2016 10:38:48 PM,6741,0,19900 +12/28/2016 10:39:01 PM,6741,0,20000 +12/28/2016 10:39:13 PM,6753,0,20100 +12/28/2016 10:39:25 PM,6836.614,0,20200 +12/28/2016 10:39:31 PM,7059.664,0,20300 +12/28/2016 10:39:36 PM,7059.664,0,20400 +12/28/2016 10:39:41 PM,7059.664,0,20500 +12/28/2016 10:39:47 PM,7059.664,0,20600 +12/28/2016 10:39:52 PM,7059.664,0,20700 +12/28/2016 10:39:56 PM,7059.664,0,20800 +12/28/2016 10:40:01 PM,7059.682,0,20900 +12/28/2016 10:40:05 PM,7059.694,0,21000 +12/28/2016 10:40:10 PM,7059.708,0,21100 +12/28/2016 10:40:14 PM,7059.708,0,21200 +12/28/2016 10:40:18 PM,7059.708,0,21300 +12/28/2016 10:40:22 PM,7059.708,0,21400 +12/28/2016 10:40:28 PM,7059.728,0,21500 +12/28/2016 10:40:32 PM,7059.728,0,21600 +12/28/2016 10:40:39 PM,7059.736,0,21700 +12/28/2016 10:40:45 PM,7059.736,0,21800 +12/28/2016 10:40:49 PM,7059.736,0,21900 +12/28/2016 10:40:55 PM,7059.736,0,22000 +12/28/2016 10:41:01 PM,7059.74,0,22100 +12/28/2016 10:41:05 PM,7059.74,0,22200 +12/28/2016 10:41:10 PM,7059.75,0,22300 +12/28/2016 10:41:13 PM,7059.754,0,22400 +12/28/2016 10:41:18 PM,7059.754,0,22500 +12/28/2016 10:41:23 PM,7059.754,0,22600 +12/28/2016 10:41:26 PM,7059.754,0,22700 +12/28/2016 10:41:32 PM,7059.754,0,22800 +12/28/2016 10:41:39 PM,7059.754,0,22900 +12/28/2016 10:41:44 PM,7059.754,0,23000 +12/28/2016 10:41:50 PM,7059.754,0,23100 +12/28/2016 10:41:55 PM,7059.754,0,23200 +12/28/2016 10:41:58 PM,7059.754,0,23300 +12/28/2016 10:42:02 PM,7059.754,0,23400 +12/28/2016 10:42:06 PM,7059.754,0,23500 +12/28/2016 10:42:10 PM,7059.754,0,23600 +12/28/2016 10:42:17 PM,7059.754,0,23700 +12/28/2016 10:42:23 PM,7059.754,0,23800 +12/28/2016 10:42:28 PM,7059.754,0,23900 +12/28/2016 10:42:35 PM,7059.754,0,24000 +12/28/2016 10:42:41 PM,7059.754,0,24100 +12/28/2016 10:42:44 PM,7059.754,0,24200 +12/28/2016 10:42:50 PM,7059.754,0,24300 +12/28/2016 10:42:55 PM,7059.754,0,24400 +12/28/2016 10:42:58 PM,7059.754,0,24500 +12/28/2016 10:43:02 PM,7059.754,0,24600 +12/28/2016 10:43:06 PM,7059.754,0,24700 +12/28/2016 10:43:11 PM,7059.754,0,24800 +12/28/2016 10:43:17 PM,7059.754,0,24900 +12/28/2016 10:43:21 PM,7059.754,0,25000 +12/28/2016 10:43:26 PM,7059.754,0,25100 +12/28/2016 10:43:30 PM,7059.754,0,25200 +12/28/2016 10:43:34 PM,7059.754,0,25300 +12/28/2016 10:43:39 PM,7059.758,0,25400 +12/28/2016 10:43:45 PM,7059.758,0,25500 +12/28/2016 10:43:50 PM,7059.758,0,25600 +12/28/2016 10:43:55 PM,7059.758,0,25700 +12/28/2016 10:44:00 PM,7059.758,0,25800 +12/28/2016 10:44:04 PM,7059.758,0,25900 +12/28/2016 10:44:08 PM,7059.758,0,26000 +12/28/2016 10:44:14 PM,7059.758,0,26100 +12/28/2016 10:44:20 PM,7059.758,0,26200 +12/28/2016 10:44:24 PM,7059.758,0,26300 +12/28/2016 10:44:28 PM,7059.758,0,26400 +12/28/2016 10:44:33 PM,7059.758,0,26500 +12/28/2016 10:44:40 PM,7059.758,0,26600 +12/28/2016 10:44:45 PM,7059.758,0,26700 +12/28/2016 10:44:53 PM,7059.758,0,26800 +12/28/2016 10:44:59 PM,7059.758,0,26900 +12/28/2016 10:45:04 PM,7059.758,0,27000 +12/28/2016 10:45:10 PM,7059.758,0,27100 +12/28/2016 10:45:15 PM,7059.758,0,27200 +12/28/2016 10:45:18 PM,7059.758,0,27300 +12/28/2016 10:45:24 PM,7059.758,0,27400 +12/28/2016 10:45:29 PM,7059.758,0,27500 +12/28/2016 10:45:34 PM,7059.758,0,27600 +12/28/2016 10:45:40 PM,7059.758,0,27700 +12/28/2016 10:45:46 PM,7059.758,0,27800 +12/28/2016 10:45:51 PM,7059.758,0,27900 +12/28/2016 10:45:55 PM,7059.758,0,28000 +12/28/2016 10:46:01 PM,7059.758,0,28100 +12/28/2016 10:46:05 PM,7059.758,0,28200 +12/28/2016 10:46:09 PM,7059.758,0,28300 +12/28/2016 10:46:13 PM,7061.806,0,28400 +12/28/2016 10:46:18 PM,7061.806,0,28500 +12/28/2016 10:46:22 PM,7072.806,0,28600 +12/28/2016 10:46:27 PM,7074.806,0,28700 +12/28/2016 10:46:32 PM,7079.806,0,28800 +12/28/2016 10:46:36 PM,7079.806,0,28900 +12/28/2016 10:46:41 PM,7079.806,0,29000 +12/28/2016 10:46:44 PM,7079.806,0,29100 +12/28/2016 10:46:49 PM,7079.806,0,29200 +12/28/2016 10:46:54 PM,7079.826,0,29300 +12/28/2016 10:46:58 PM,7079.826,0,29400 +12/28/2016 10:47:02 PM,7079.826,0,29500 +12/28/2016 10:47:05 PM,7079.826,0,29600 +12/28/2016 10:47:09 PM,7079.826,0,29700 +12/28/2016 10:47:14 PM,7079.826,0,29800 +12/28/2016 10:47:22 PM,7079.826,0,29900 +12/28/2016 10:47:29 PM,7079.826,0,30000 +12/28/2016 10:47:35 PM,7079.818,0,30100 +12/28/2016 10:47:43 PM,7079.83,0,30200 +12/28/2016 10:47:48 PM,7079.83,0,30300 +12/28/2016 10:47:54 PM,7079.83,0,30400 +12/28/2016 10:48:02 PM,7079.83,0,30500 +12/28/2016 10:48:07 PM,7079.83,0,30600 +12/28/2016 10:48:11 PM,7079.83,0,30700 +12/28/2016 10:48:16 PM,7079.83,0,30800 +12/28/2016 10:48:20 PM,7079.83,0,30900 +12/28/2016 10:48:25 PM,7079.83,0,31000 +12/28/2016 10:48:29 PM,7079.83,0,31100 +12/28/2016 10:48:35 PM,7079.83,0,31200 +12/28/2016 10:48:42 PM,7079.83,0,31300 +12/28/2016 10:48:46 PM,7079.83,0,31400 +12/28/2016 10:48:50 PM,7079.83,0,31500 +12/28/2016 10:48:55 PM,7079.83,0,31600 +12/28/2016 10:49:01 PM,7079.83,0,31700 +12/28/2016 10:49:06 PM,7079.83,0,31800 +12/28/2016 10:49:15 PM,7079.83,0,31900 +12/28/2016 10:49:20 PM,7079.83,0,32000 +12/28/2016 10:49:24 PM,7079.83,0,32100 +12/28/2016 10:49:28 PM,7079.83,0,32200 +12/28/2016 10:49:34 PM,7079.83,0,32300 +12/28/2016 10:49:38 PM,7079.83,0,32400 +12/28/2016 10:49:44 PM,7079.83,0,32500 +12/28/2016 10:49:49 PM,7079.83,0,32600 +12/28/2016 10:49:56 PM,7079.83,0,32700 +12/28/2016 10:50:00 PM,7079.83,0,32800 +12/28/2016 10:50:06 PM,7079.83,0,32900 +12/28/2016 10:50:12 PM,7079.83,0,33000 +12/28/2016 10:50:17 PM,7079.83,0,33100 +12/28/2016 10:50:24 PM,7079.83,0,33200 +12/28/2016 10:50:30 PM,7079.83,0,33300 +12/28/2016 10:50:36 PM,7079.83,0,33400 +12/28/2016 10:50:41 PM,7079.83,0,33500 +12/28/2016 10:50:45 PM,7079.83,0,33600 +12/28/2016 10:50:50 PM,7079.83,0,33700 +12/28/2016 10:50:53 PM,7079.83,0,33800 +12/28/2016 10:50:59 PM,7079.83,0,33900 +12/28/2016 10:51:05 PM,7079.83,0,34000 +12/28/2016 10:51:10 PM,7079.83,0,34100 +12/28/2016 10:51:15 PM,7079.83,0,34200 +12/28/2016 10:51:20 PM,7079.83,0,34300 +12/28/2016 10:51:24 PM,7079.83,0,34400 +12/28/2016 10:51:32 PM,7079.83,0,34500 +12/28/2016 10:51:38 PM,7079.83,0,34600 +12/28/2016 10:51:43 PM,7079.83,0,34700 +12/28/2016 10:51:47 PM,7079.83,0,34800 +12/28/2016 10:51:52 PM,7079.83,0,34900 +12/28/2016 10:51:57 PM,7079.83,0,35000 +12/28/2016 10:52:03 PM,7079.83,0,35100 +12/28/2016 10:52:09 PM,7079.83,0,35200 +12/28/2016 10:52:14 PM,7079.83,0,35300 +12/28/2016 10:52:18 PM,7079.83,0,35400 +12/28/2016 10:52:22 PM,7079.83,0,35500 +12/28/2016 10:52:28 PM,7079.83,0,35600 +12/28/2016 10:52:33 PM,7079.83,0,35700 +12/28/2016 10:52:37 PM,7079.83,0,35800 +12/28/2016 10:52:43 PM,7079.83,0,35900 +12/28/2016 10:52:47 PM,7079.83,0,36000 +12/28/2016 10:52:53 PM,7079.83,0,36100 +12/28/2016 10:53:00 PM,7079.83,0,36200 +12/28/2016 10:53:05 PM,7079.83,0,36300 +12/28/2016 10:53:09 PM,7079.83,0,36400 +12/28/2016 10:53:17 PM,7079.83,0,36500 +12/28/2016 10:53:21 PM,7079.83,0,36600 +12/28/2016 10:53:25 PM,7079.83,0,36700 +12/28/2016 10:53:29 PM,7079.83,0,36800 +12/28/2016 10:53:33 PM,7079.83,0,36900 +12/28/2016 10:53:41 PM,7079.83,0,37000 +12/28/2016 10:53:46 PM,7079.83,0,37100 +12/28/2016 10:53:51 PM,7079.83,0,37200 +12/28/2016 10:53:57 PM,7079.83,0,37300 +12/28/2016 10:54:00 PM,7079.83,0,37400 +12/28/2016 10:54:09 PM,7079.83,0,37500 +12/28/2016 10:54:14 PM,7079.83,0,37600 +12/28/2016 10:54:20 PM,7079.83,0,37700 +12/28/2016 10:54:24 PM,7079.83,0,37800 +12/28/2016 10:54:28 PM,7079.83,0,37900 +12/28/2016 10:54:33 PM,7079.83,0,38000 +12/28/2016 10:54:39 PM,7079.83,0,38100 +12/28/2016 10:54:44 PM,7079.83,0,38200 +12/28/2016 10:54:47 PM,7079.83,0,38300 +12/28/2016 10:54:54 PM,7079.83,0,38400 +12/28/2016 10:54:59 PM,7079.83,0,38500 +12/28/2016 10:55:05 PM,7079.83,0,38600 +12/28/2016 10:55:11 PM,7079.83,0,38700 +12/28/2016 10:55:16 PM,7079.83,0,38800 +12/28/2016 10:55:20 PM,7079.83,0,38900 +12/28/2016 10:55:24 PM,7079.83,0,39000 +12/28/2016 10:55:30 PM,7079.83,0,39100 +12/28/2016 10:55:38 PM,7079.83,0,39200 +12/28/2016 10:55:42 PM,7079.83,0,39300 +12/28/2016 10:55:47 PM,7079.83,0,39400 +12/28/2016 10:55:53 PM,7079.83,0,39500 +12/28/2016 10:55:57 PM,7079.83,0,39600 +12/28/2016 10:56:06 PM,7079.83,0,39700 +12/28/2016 10:56:11 PM,7079.83,0,39800 +12/28/2016 10:56:15 PM,7079.83,0,39900 +12/28/2016 10:56:21 PM,7079.83,0,40000 +12/28/2016 10:56:26 PM,7079.83,0,40100 +12/28/2016 10:56:31 PM,7079.83,0,40200 +12/28/2016 10:56:37 PM,7079.83,0,40300 +12/28/2016 10:56:42 PM,7079.83,0,40400 +12/28/2016 10:56:46 PM,7079.83,0,40500 +12/28/2016 10:56:51 PM,7079.83,0,40600 +12/28/2016 10:56:58 PM,7079.83,0,40700 +12/28/2016 10:57:03 PM,7079.83,0,40800 +12/28/2016 10:57:10 PM,7079.83,0,40900 +12/28/2016 10:57:14 PM,7079.83,0,41000 +12/28/2016 10:57:19 PM,7079.83,0,41100 +12/28/2016 10:57:25 PM,7079.83,0,41200 +12/28/2016 10:57:29 PM,7079.83,0,41300 +12/28/2016 10:57:33 PM,7079.83,0,41400 +12/28/2016 10:57:36 PM,7079.924,0,41500 +12/28/2016 10:57:42 PM,7079.924,0,41600 +12/28/2016 10:57:47 PM,7079.924,0,41700 +12/28/2016 10:57:54 PM,7079.924,0,41800 +12/28/2016 10:57:59 PM,7079.924,0,41900 +12/28/2016 10:58:06 PM,7079.924,0,42000 +12/28/2016 10:58:12 PM,7079.924,0,42100 +12/28/2016 10:58:19 PM,7079.924,0,42200 +12/28/2016 10:58:26 PM,7079.924,0,42300 +12/28/2016 10:58:31 PM,7079.924,0,42400 +12/28/2016 10:58:37 PM,7079.924,0,42500 +12/28/2016 10:58:42 PM,7079.924,0,42600 +12/28/2016 10:58:47 PM,7079.924,0,42700 +12/28/2016 10:58:53 PM,7079.924,0,42800 +12/28/2016 10:59:00 PM,7079.924,0,42900 +12/28/2016 10:59:09 PM,7079.924,0,43000 +12/28/2016 10:59:13 PM,7079.924,0,43100 +12/28/2016 10:59:17 PM,7079.924,0,43200 +12/28/2016 10:59:22 PM,7079.924,0,43300 +12/28/2016 10:59:26 PM,7079.924,0,43400 +12/28/2016 10:59:31 PM,7079.924,0,43500 +12/28/2016 10:59:36 PM,7079.924,0,43600 +12/28/2016 10:59:43 PM,7079.924,0,43700 +12/28/2016 10:59:50 PM,7079.924,0,43800 +12/28/2016 10:59:58 PM,7079.924,0,43900 +12/28/2016 11:00:05 PM,7079.924,0,44000 +12/28/2016 11:00:11 PM,7079.924,0,44100 +12/28/2016 11:00:19 PM,7079.924,0,44200 +12/28/2016 11:00:24 PM,7079.924,0,44300 +12/28/2016 11:00:28 PM,7079.924,0,44400 +12/28/2016 11:00:33 PM,7079.924,0,44500 +12/28/2016 11:00:37 PM,7079.924,0,44600 +12/28/2016 11:00:42 PM,7079.924,0,44700 +12/28/2016 11:00:47 PM,7079.924,0,44800 +12/28/2016 11:00:54 PM,7079.924,0,44900 +12/28/2016 11:01:02 PM,7079.924,0,45000 +12/28/2016 11:01:08 PM,7079.988,0,45100 +12/28/2016 11:01:11 PM,7079.988,0,45200 +12/28/2016 11:01:18 PM,7079.988,0,45300 +12/28/2016 11:01:26 PM,7079.988,0,45400 +12/28/2016 11:01:33 PM,7079.988,0,45500 +12/28/2016 11:01:37 PM,7079.988,0,45600 +12/28/2016 11:01:41 PM,7079.988,0,45700 +12/28/2016 11:01:46 PM,7079.988,0,45800 +12/28/2016 11:01:51 PM,7079.988,0,45900 +12/28/2016 11:01:55 PM,7079.988,0,46000 +12/28/2016 11:02:01 PM,7079.988,0,46100 +12/28/2016 11:02:05 PM,7079.988,0,46200 +12/28/2016 11:02:08 PM,7079.988,0,46300 +12/28/2016 11:02:11 PM,7079.988,0,46400 +12/28/2016 11:02:14 PM,7079.988,0,46500 +12/28/2016 11:02:19 PM,7079.988,0,46600 +12/28/2016 11:02:23 PM,7079.988,0,46700 +12/28/2016 11:02:27 PM,7079.988,0,46800 +12/28/2016 11:02:32 PM,7079.988,0,46900 +12/28/2016 11:02:38 PM,7079.988,0,47000 +12/28/2016 11:02:43 PM,7079.988,0,47100 +12/28/2016 11:02:47 PM,7079.988,0,47200 +12/28/2016 11:02:52 PM,7079.988,0,47300 +12/28/2016 11:02:57 PM,7079.988,0,47400 +12/28/2016 11:03:00 PM,7079.988,0,47500 +12/28/2016 11:03:03 PM,7079.988,0,47600 +12/28/2016 11:03:08 PM,7079.988,0,47700 +12/28/2016 11:03:12 PM,7079.988,0,47800 +12/28/2016 11:03:16 PM,7079.988,0,47900 +12/28/2016 11:03:20 PM,7079.988,0,48000 +12/28/2016 11:03:24 PM,7079.988,0,48100 +12/28/2016 11:03:29 PM,7079.988,0,48200 +12/28/2016 11:03:32 PM,7079.988,0,48300 +12/28/2016 11:03:36 PM,7079.988,0,48400 +12/28/2016 11:03:40 PM,7079.988,0,48500 +12/28/2016 11:03:45 PM,7079.988,0,48600 +12/28/2016 11:03:49 PM,7079.988,0,48700 +12/28/2016 11:03:52 PM,7079.988,0,48800 +12/28/2016 11:03:56 PM,7079.988,0,48900 +12/28/2016 11:04:02 PM,7079.988,0,49000 +12/28/2016 11:04:09 PM,7079.988,0,49100 +12/28/2016 11:04:17 PM,7079.988,0,49200 +12/28/2016 11:04:24 PM,7079.988,0,49300 +12/28/2016 11:04:28 PM,7079.988,0,49400 +12/28/2016 11:04:33 PM,7079.988,0,49500 +12/28/2016 11:04:39 PM,7079.988,0,49600 +12/28/2016 11:04:45 PM,7079.988,0,49700 +12/28/2016 11:04:52 PM,7079.988,0,49800 +12/28/2016 11:04:56 PM,7079.988,0,49900 +12/28/2016 11:05:01 PM,7079.988,0,50000 +12/28/2016 11:05:05 PM,7079.988,0,50100 +12/28/2016 11:05:09 PM,7079.988,0,50200 +12/28/2016 11:05:16 PM,7079.988,0,50300 +12/28/2016 11:05:20 PM,7079.988,0,50400 +12/28/2016 11:05:26 PM,7079.988,0,50500 +12/28/2016 11:05:30 PM,7079.988,0,50600 +12/28/2016 11:05:34 PM,7079.988,0,50700 +12/28/2016 11:05:37 PM,7079.988,0,50800 +12/28/2016 11:05:44 PM,7079.988,0,50900 +12/28/2016 11:05:48 PM,7079.988,0,51000 +12/28/2016 11:05:52 PM,7079.988,0,51100 +12/28/2016 11:05:57 PM,7079.988,0,51200 +12/28/2016 11:06:00 PM,7079.988,0,51300 +12/28/2016 11:06:04 PM,7079.988,0,51400 +12/28/2016 11:06:09 PM,7079.988,0,51500 +12/28/2016 11:06:13 PM,7079.988,0,51600 +12/28/2016 11:06:16 PM,7079.988,0,51700 +12/28/2016 11:06:20 PM,7079.988,0,51800 +12/28/2016 11:06:23 PM,7079.988,0,51900 +12/28/2016 11:06:29 PM,7079.988,0,52000 +12/28/2016 11:06:32 PM,7079.988,0,52100 +12/28/2016 11:06:35 PM,7079.988,0,52200 +12/28/2016 11:06:38 PM,7079.988,0,52300 +12/28/2016 11:06:42 PM,7079.988,0,52400 +12/28/2016 11:06:44 PM,7079.988,0,52500 +12/28/2016 11:06:49 PM,7079.988,0,52600 +12/28/2016 11:06:57 PM,7079.988,0,52700 +12/28/2016 11:07:02 PM,7079.988,0,52800 +12/28/2016 11:07:06 PM,7079.988,0,52900 +12/28/2016 11:07:11 PM,7079.988,0,53000 +12/28/2016 11:07:15 PM,7079.988,0,53100 +12/28/2016 11:07:19 PM,7079.988,0,53200 +12/28/2016 11:07:23 PM,7079.988,0,53300 +12/28/2016 11:07:26 PM,7079.988,0,53400 +12/28/2016 11:07:30 PM,7079.988,0,53500 +12/28/2016 11:07:34 PM,7079.988,0,53600 +12/28/2016 11:07:39 PM,7079.988,0,53700 +12/28/2016 11:07:41 PM,7079.988,0,53800 +12/28/2016 11:07:46 PM,7079.988,0,53900 +12/28/2016 11:07:50 PM,7079.988,0,54000 +12/28/2016 11:07:54 PM,7079.988,0,54100 +12/28/2016 11:08:01 PM,7079.988,0,54200 +12/28/2016 11:08:05 PM,7079.988,0,54300 +12/28/2016 11:08:09 PM,7079.988,0,54400 +12/28/2016 11:08:14 PM,7079.988,0,54500 +12/28/2016 11:08:25 PM,7079.988,0,54600 +12/28/2016 11:08:33 PM,7079.988,0,54700 +12/28/2016 11:08:38 PM,7079.988,0,54800 +12/28/2016 11:08:42 PM,7079.988,0,54900 +12/28/2016 11:08:46 PM,7079.988,0,55000 +12/28/2016 11:08:50 PM,7079.988,0,55100 +12/28/2016 11:08:57 PM,7079.988,0,55200 +12/28/2016 11:09:01 PM,7079.988,0,55300 +12/28/2016 11:09:06 PM,7079.988,0,55400 +12/28/2016 11:09:11 PM,7079.988,0,55500 +12/28/2016 11:09:15 PM,7079.988,0,55600 +12/28/2016 11:09:25 PM,7079.988,0,55700 +12/28/2016 11:09:34 PM,7079.988,0,55800 +12/28/2016 11:09:42 PM,7079.988,0,55900 +12/28/2016 11:09:48 PM,7079.988,0,56000 +12/28/2016 11:09:54 PM,7079.988,0,56100 +12/28/2016 11:09:58 PM,7079.988,0,56200 +12/28/2016 11:10:02 PM,7079.988,0,56300 +12/28/2016 11:10:07 PM,7079.988,0,56400 +12/28/2016 11:10:11 PM,7079.988,0,56500 +12/28/2016 11:10:14 PM,7079.988,0,56600 +12/28/2016 11:10:19 PM,7079.988,0,56700 +12/28/2016 11:10:24 PM,7079.988,0,56800 +12/28/2016 11:10:29 PM,7079.988,0,56900 +12/28/2016 11:10:33 PM,7079.988,0,57000 +12/28/2016 11:10:38 PM,7079.988,0,57100 +12/28/2016 11:10:43 PM,7079.988,0,57200 +12/28/2016 11:10:48 PM,7079.988,0,57300 +12/28/2016 11:10:51 PM,7079.988,0,57400 +12/28/2016 11:10:54 PM,7079.988,0,57500 +12/28/2016 11:11:00 PM,7079.988,0,57600 +12/28/2016 11:11:04 PM,7079.988,0,57700 +12/28/2016 11:11:09 PM,7079.988,0,57800 +12/28/2016 11:11:13 PM,7079.988,0,57900 +12/28/2016 11:11:16 PM,7079.988,0,58000 +12/28/2016 11:11:21 PM,7079.988,0,58100 +12/28/2016 11:11:26 PM,7079.988,0,58200 +12/28/2016 11:11:29 PM,7079.988,0,58300 +12/28/2016 11:11:35 PM,7079.988,0,58400 +12/28/2016 11:11:41 PM,7079.988,0,58500 +12/28/2016 11:11:47 PM,7079.988,0,58600 +12/28/2016 11:11:52 PM,7079.988,0,58700 +12/28/2016 11:11:57 PM,7079.988,0,58800 +12/28/2016 11:12:02 PM,7079.988,0,58900 +12/28/2016 11:12:07 PM,7079.988,0,59000 +12/28/2016 11:12:12 PM,7079.988,0,59100 +12/28/2016 11:12:18 PM,7079.988,0,59200 +12/28/2016 11:12:22 PM,7079.988,0,59300 +12/28/2016 11:12:27 PM,7079.988,0,59400 +12/28/2016 11:12:32 PM,7079.988,0,59500 +12/28/2016 11:12:39 PM,7079.988,0,59600 +12/28/2016 11:12:45 PM,7079.988,0,59700 +12/28/2016 11:12:50 PM,7079.988,0,59800 +12/28/2016 11:12:55 PM,7079.988,0,59900 +12/28/2016 11:13:00 PM,7079.988,0,60000 +12/28/2016 11:13:04 PM,7079.988,0,60100 +12/28/2016 11:13:10 PM,7079.988,0,60200 +12/28/2016 11:13:15 PM,7079.988,0,60300 +12/28/2016 11:13:20 PM,7079.988,0,60400 +12/28/2016 11:13:26 PM,7079.988,0,60500 +12/28/2016 11:13:31 PM,7079.988,0,60600 +12/28/2016 11:13:35 PM,7079.988,0,60700 +12/28/2016 11:13:41 PM,7079.988,0,60800 +12/28/2016 11:13:47 PM,7079.988,0,60900 +12/28/2016 11:13:52 PM,7079.988,0,61000 +12/28/2016 11:13:57 PM,7079.988,0,61100 +12/28/2016 11:14:04 PM,7079.988,0,61200 +12/28/2016 11:14:11 PM,7079.988,0,61300 +12/28/2016 11:14:20 PM,7079.988,0,61400 +12/28/2016 11:14:31 PM,7079.988,0,61500 +12/28/2016 11:14:36 PM,7079.988,0,61600 +12/28/2016 11:14:40 PM,7079.988,0,61700 +12/28/2016 11:14:47 PM,7079.988,0,61800 +12/28/2016 11:14:51 PM,7079.988,0,61900 +12/28/2016 11:14:55 PM,7079.988,0,62000 +12/28/2016 11:14:59 PM,7079.988,0,62100 +12/28/2016 11:15:04 PM,7079.988,0,62200 +12/28/2016 11:15:09 PM,7079.988,0,62300 +12/28/2016 11:15:14 PM,7079.988,0,62400 +12/28/2016 11:15:18 PM,7079.988,0,62500 +12/28/2016 11:15:22 PM,7079.988,0,62600 +12/28/2016 11:15:25 PM,7079.988,0,62700 +12/28/2016 11:15:31 PM,7079.988,0,62800 +12/28/2016 11:15:35 PM,7079.988,0,62900 +12/28/2016 11:15:42 PM,7079.988,0,63000 +12/28/2016 11:15:49 PM,7079.988,0,63100 +12/28/2016 11:15:57 PM,7079.988,0,63200 +12/28/2016 11:16:01 PM,7079.988,0,63300 +12/28/2016 11:16:06 PM,7079.988,0,63400 +12/28/2016 11:16:14 PM,7079.988,0,63500 +12/28/2016 11:16:21 PM,7079.988,0,63600 +12/28/2016 11:16:25 PM,7079.988,0,63700 +12/28/2016 11:16:32 PM,7079.988,0,63800 +12/28/2016 11:16:39 PM,7079.988,0,63900 +12/28/2016 11:16:46 PM,7079.988,0,64000 +12/28/2016 11:16:53 PM,7079.988,0,64100 +12/28/2016 11:17:01 PM,7079.988,0,64200 +12/28/2016 11:17:06 PM,7079.988,0,64300 +12/28/2016 11:17:12 PM,7079.988,0,64400 +12/28/2016 11:17:17 PM,7079.988,0,64500 +12/28/2016 11:17:21 PM,7079.988,0,64600 +12/28/2016 11:17:24 PM,7079.988,0,64700 +12/28/2016 11:17:28 PM,7079.988,0,64800 +12/28/2016 11:17:33 PM,7079.988,0,64900 +12/28/2016 11:17:38 PM,7079.988,0,65000 +12/28/2016 11:17:44 PM,7079.988,0,65100 +12/28/2016 11:17:50 PM,7079.988,0,65200 +12/28/2016 11:17:57 PM,7079.988,0,65300 +12/28/2016 11:18:02 PM,7079.988,0,65400 +12/28/2016 11:18:14 PM,7079.988,0,65500 +12/28/2016 11:18:22 PM,7079.988,0,65600 +12/28/2016 11:18:27 PM,7079.988,0,65700 +12/28/2016 11:18:30 PM,7079.988,0,65800 +12/28/2016 11:18:34 PM,7079.988,0,65900 +12/28/2016 11:18:40 PM,7079.988,0,66000 +12/28/2016 11:18:49 PM,7079.988,0,66100 +12/28/2016 11:18:56 PM,7079.988,0,66200 +12/28/2016 11:18:59 PM,7079.988,0,66300 +12/28/2016 11:19:03 PM,7079.988,0,66400 +12/28/2016 11:19:09 PM,7079.988,0,66500 +12/28/2016 11:19:15 PM,7079.988,0,66600 +12/28/2016 11:19:20 PM,7079.988,0,66700 +12/28/2016 11:19:26 PM,7079.988,0,66800 +12/28/2016 11:19:31 PM,7079.988,0,66900 +12/28/2016 11:19:38 PM,7079.988,0,67000 +12/28/2016 11:19:44 PM,7079.988,0,67100 +12/28/2016 11:19:49 PM,7079.988,0,67200 +12/28/2016 11:19:55 PM,7079.988,0,67300 +12/28/2016 11:19:59 PM,7079.988,0,67400 +12/28/2016 11:20:05 PM,7079.988,0,67500 +12/28/2016 11:20:08 PM,7079.988,0,67600 +12/28/2016 11:20:11 PM,7079.988,0,67700 +12/28/2016 11:20:17 PM,7079.988,0,67800 +12/28/2016 11:20:21 PM,7079.988,0,67900 +12/28/2016 11:20:24 PM,7079.988,0,68000 +12/28/2016 11:20:30 PM,7079.988,0,68100 +12/28/2016 11:20:35 PM,7079.988,0,68200 +12/28/2016 11:20:39 PM,7079.988,0,68300 +12/28/2016 11:20:45 PM,7079.988,0,68400 +12/28/2016 11:20:50 PM,7079.988,0,68500 +12/28/2016 11:20:58 PM,7079.988,0,68600 +12/28/2016 11:21:02 PM,7079.988,0,68700 +12/28/2016 11:21:06 PM,7079.988,0,68800 +12/28/2016 11:21:10 PM,7079.988,0,68900 +12/28/2016 11:21:13 PM,7079.988,0,69000 +12/28/2016 11:21:18 PM,7079.988,0,69100 +12/28/2016 11:21:24 PM,7079.988,0,69200 +12/28/2016 11:21:28 PM,7079.988,0,69300 +12/28/2016 11:21:32 PM,7079.988,0,69400 +12/28/2016 11:21:36 PM,7079.988,0,69500 +12/28/2016 11:21:40 PM,7079.988,0,69600 +12/28/2016 11:21:44 PM,7079.988,0,69700 +12/28/2016 11:21:48 PM,7079.988,0,69800 +12/28/2016 11:21:54 PM,7079.988,0,69900 +12/28/2016 11:21:58 PM,7079.988,0,70000 +12/28/2016 11:22:06 PM,7079.988,0,70100 +12/28/2016 11:22:14 PM,7079.988,0,70200 +12/28/2016 11:22:18 PM,7079.988,0,70300 +12/28/2016 11:22:23 PM,7079.988,0,70400 +12/28/2016 11:22:27 PM,7079.988,0,70500 +12/28/2016 11:22:31 PM,7079.988,0,70600 +12/28/2016 11:22:35 PM,7079.988,0,70700 +12/28/2016 11:22:42 PM,7079.988,0,70800 +12/28/2016 11:22:47 PM,7079.988,0,70900 +12/28/2016 11:22:52 PM,7079.988,0,71000 +12/28/2016 11:22:59 PM,7079.988,0,71100 +12/28/2016 11:23:09 PM,7079.988,0,71200 +12/28/2016 11:23:17 PM,7079.988,0,71300 +12/28/2016 11:23:24 PM,7079.988,0,71400 +12/28/2016 11:23:32 PM,7079.988,0,71500 +12/28/2016 11:23:38 PM,7079.988,0,71600 +12/28/2016 11:23:45 PM,7079.988,0,71700 +12/28/2016 11:23:49 PM,7079.988,0,71800 +12/28/2016 11:23:54 PM,7079.988,0,71900 +12/28/2016 11:24:01 PM,7079.988,0,72000 +12/28/2016 11:24:07 PM,7079.988,0,72100 +12/28/2016 11:24:12 PM,7079.988,0,72200 +12/28/2016 11:24:16 PM,7079.988,0,72300 +12/28/2016 11:24:24 PM,7079.988,0,72400 +12/28/2016 11:24:31 PM,7079.988,0,72500 +12/28/2016 11:24:39 PM,7079.988,0,72600 +12/28/2016 11:24:44 PM,7079.988,0,72700 +12/28/2016 11:24:50 PM,7079.988,0,72800 +12/28/2016 11:24:58 PM,7079.988,0,72900 +12/28/2016 11:25:07 PM,7079.988,0,73000 +12/28/2016 11:25:15 PM,7079.988,0,73100 +12/28/2016 11:25:21 PM,7079.988,0,73200 +12/28/2016 11:25:27 PM,7079.988,0,73300 +12/28/2016 11:25:32 PM,7079.988,0,73400 +12/28/2016 11:25:36 PM,7079.988,0,73500 +12/28/2016 11:25:42 PM,7079.988,0,73600 +12/28/2016 11:25:48 PM,7079.988,0,73700 +12/28/2016 11:25:53 PM,7079.988,0,73800 +12/28/2016 11:25:59 PM,7079.988,0,73900 +12/28/2016 11:26:05 PM,7079.988,0,74000 +12/28/2016 11:26:09 PM,7079.988,0,74100 +12/28/2016 11:26:14 PM,7079.988,0,74200 +12/28/2016 11:26:19 PM,7079.988,0,74300 +12/28/2016 11:26:24 PM,7079.988,0,74400 +12/28/2016 11:26:30 PM,7079.988,0,74500 +12/28/2016 11:26:35 PM,7079.988,0,74600 +12/28/2016 11:26:40 PM,7079.988,0,74700 +12/28/2016 11:26:45 PM,7079.988,0,74800 +12/28/2016 11:26:51 PM,7079.988,0,74900 +12/28/2016 11:26:58 PM,7079.988,0,75000 +12/28/2016 11:27:04 PM,7079.988,0,75100 +12/28/2016 11:27:09 PM,7079.988,0,75200 +12/28/2016 11:27:16 PM,7079.988,0,75300 +12/28/2016 11:27:22 PM,7079.988,0,75400 +12/28/2016 11:27:31 PM,7079.988,0,75500 +12/28/2016 11:27:38 PM,7079.988,0,75600 +12/28/2016 11:27:44 PM,7079.988,0,75700 +12/28/2016 11:27:49 PM,7079.988,0,75800 +12/28/2016 11:27:56 PM,7079.988,0,75900 +12/28/2016 11:28:00 PM,7079.988,0,76000 +12/28/2016 11:28:06 PM,7079.988,0,76100 +12/28/2016 11:28:10 PM,7079.988,0,76200 +12/28/2016 11:28:16 PM,7079.988,0,76300 +12/28/2016 11:28:23 PM,7079.988,0,76400 +12/28/2016 11:28:30 PM,7079.988,0,76500 +12/28/2016 11:28:37 PM,7079.988,0,76600 +12/28/2016 11:28:42 PM,7079.988,0,76700 +12/28/2016 11:28:48 PM,7079.988,0,76800 +12/28/2016 11:28:56 PM,7079.988,0,76900 +12/28/2016 11:29:01 PM,7079.988,0,77000 +12/28/2016 11:29:05 PM,7079.988,0,77100 +12/28/2016 11:29:09 PM,7079.988,0,77200 +12/28/2016 11:29:15 PM,7079.988,0,77300 +12/28/2016 11:29:20 PM,7079.988,0,77400 +12/28/2016 11:29:25 PM,7079.988,0,77500 +12/28/2016 11:29:32 PM,7079.988,0,77600 +12/28/2016 11:29:37 PM,7079.988,0,77700 +12/28/2016 11:29:42 PM,7079.988,0,77800 +12/28/2016 11:29:49 PM,7079.988,0,77900 +12/28/2016 11:29:57 PM,7079.988,0,78000 +12/28/2016 11:29:59 PM,7079.988,0,78100 +12/28/2016 11:30:03 PM,7079.988,0,78200 +12/28/2016 11:30:09 PM,7079.988,0,78300 +12/28/2016 11:30:13 PM,7079.988,0,78400 +12/28/2016 11:30:18 PM,7079.988,0,78500 +12/28/2016 11:30:24 PM,7079.988,0,78600 +12/28/2016 11:30:27 PM,7079.988,0,78700 +12/28/2016 11:30:32 PM,7079.988,0,78800 +12/28/2016 11:30:35 PM,7079.988,0,78900 +12/28/2016 11:30:39 PM,7079.988,0,79000 +12/28/2016 11:30:43 PM,7079.988,0,79100 +12/28/2016 11:30:47 PM,7079.988,0,79200 +12/28/2016 11:30:52 PM,7079.988,0,79300 +12/28/2016 11:30:57 PM,7079.988,0,79400 +12/28/2016 11:31:04 PM,7079.988,0,79500 +12/28/2016 11:31:12 PM,7079.988,0,79600 +12/28/2016 11:31:17 PM,7079.988,0,79700 +12/28/2016 11:31:22 PM,7079.988,0,79800 +12/28/2016 11:31:27 PM,7079.988,0,79900 +12/28/2016 11:31:31 PM,7079.988,0,80000 +12/28/2016 11:31:36 PM,7079.988,0,80100 +12/28/2016 11:31:41 PM,7079.988,0,80200 +12/28/2016 11:31:45 PM,7079.988,0,80300 +12/28/2016 11:31:50 PM,7079.988,0,80400 +12/28/2016 11:31:54 PM,7079.988,0,80500 +12/28/2016 11:31:59 PM,7079.988,0,80600 +12/28/2016 11:32:03 PM,7079.988,0,80700 +12/28/2016 11:32:08 PM,7079.988,0,80800 +12/28/2016 11:32:14 PM,7079.988,0,80900 +12/28/2016 11:32:20 PM,7079.988,0,81000 +12/28/2016 11:32:25 PM,7079.988,0,81100 +12/28/2016 11:32:29 PM,7079.988,0,81200 +12/28/2016 11:32:34 PM,7079.988,0,81300 +12/28/2016 11:32:40 PM,7079.988,0,81400 +12/28/2016 11:32:46 PM,7079.988,0,81500 +12/28/2016 11:32:50 PM,7079.988,0,81600 +12/28/2016 11:32:53 PM,7079.988,0,81700 +12/28/2016 11:32:59 PM,7079.988,0,81800 +12/28/2016 11:33:04 PM,7079.988,0,81900 +12/28/2016 11:33:08 PM,7079.988,0,82000 +12/28/2016 11:33:15 PM,7079.988,0,82100 +12/28/2016 11:33:19 PM,7079.988,0,82200 +12/28/2016 11:33:27 PM,7079.988,0,82300 +12/28/2016 11:33:34 PM,7079.988,0,82400 +12/28/2016 11:33:37 PM,7079.988,0,82500 +12/28/2016 11:33:42 PM,7079.988,0,82600 +12/28/2016 11:33:46 PM,7079.988,0,82700 +12/28/2016 11:33:50 PM,7079.988,0,82800 +12/28/2016 11:33:57 PM,7079.988,0,82900 +12/28/2016 11:34:01 PM,7079.988,0,83000 +12/28/2016 11:34:04 PM,7079.988,0,83100 +12/28/2016 11:34:09 PM,7079.988,0,83200 +12/28/2016 11:34:14 PM,7079.988,0,83300 +12/28/2016 11:34:17 PM,7079.988,0,83400 +12/28/2016 11:34:23 PM,7079.988,0,83500 +12/28/2016 11:34:27 PM,7079.988,0,83600 +12/28/2016 11:34:31 PM,7079.988,0,83700 +12/28/2016 11:34:35 PM,7079.988,0,83800 +12/28/2016 11:34:39 PM,7079.988,0,83900 +12/28/2016 11:34:43 PM,7079.988,0,84000 +12/28/2016 11:34:46 PM,7079.988,0,84100 +12/28/2016 11:34:50 PM,7079.988,0,84200 +12/28/2016 11:34:54 PM,7079.988,0,84300 +12/28/2016 11:34:59 PM,7079.988,0,84400 +12/28/2016 11:35:05 PM,7079.988,0,84500 +12/28/2016 11:35:09 PM,7079.988,0,84600 +12/28/2016 11:35:14 PM,7079.988,0,84700 +12/28/2016 11:35:17 PM,7079.988,0,84800 +12/28/2016 11:35:20 PM,7079.988,0,84900 +12/28/2016 11:35:24 PM,7079.988,0,85000 +12/28/2016 11:35:28 PM,7079.988,0,85100 +12/28/2016 11:35:32 PM,7079.988,0,85200 +12/28/2016 11:35:36 PM,7079.988,0,85300 +12/28/2016 11:35:40 PM,7079.988,0,85400 +12/28/2016 11:35:45 PM,7079.988,0,85500 +12/28/2016 11:35:49 PM,7079.988,0,85600 +12/28/2016 11:35:53 PM,7079.988,0,85700 +12/28/2016 11:35:57 PM,7079.988,0,85800 +12/28/2016 11:36:01 PM,7079.988,0,85900 +12/28/2016 11:36:05 PM,7079.988,0,86000 +12/28/2016 11:36:09 PM,7079.988,0,86100 +12/28/2016 11:36:15 PM,7079.988,0,86200 +12/28/2016 11:36:19 PM,7089.124,0,86300 +12/28/2016 11:36:25 PM,7089.134,0,86400 +12/28/2016 11:36:32 PM,7089.134,0,86500 +12/28/2016 11:36:36 PM,7089.151,0,86600 +12/28/2016 11:36:42 PM,7089.151,0,86700 +12/28/2016 11:36:47 PM,7089.167,0,86800 +12/28/2016 11:36:51 PM,7089.167,0,86900 +12/28/2016 11:36:58 PM,7089.169,0,87000 +12/28/2016 11:37:06 PM,7089.171,0,87100 +12/28/2016 11:37:12 PM,7089.171,0,87200 +12/28/2016 11:37:18 PM,7089.171,0,87300 +12/28/2016 11:37:24 PM,7089.173,0,87400 +12/28/2016 11:37:32 PM,7089.177,0,87500 +12/28/2016 11:37:39 PM,7089.177,0,87600 +12/28/2016 11:37:45 PM,7089.177,0,87700 +12/28/2016 11:37:50 PM,7089.177,0,87800 +12/28/2016 11:37:55 PM,7089.177,0,87900 +12/28/2016 11:38:00 PM,7089.177,0,88000 +12/28/2016 11:38:06 PM,7089.177,0,88100 +12/28/2016 11:38:12 PM,7089.179,0,88200 +12/28/2016 11:38:17 PM,7089.179,0,88300 +12/28/2016 11:38:22 PM,7089.179,0,88400 +12/28/2016 11:38:27 PM,7089.179,0,88500 +12/28/2016 11:38:33 PM,7089.179,0,88600 +12/28/2016 11:38:38 PM,7089.181,0,88700 +12/28/2016 11:38:42 PM,7089.183,0,88800 +12/28/2016 11:38:47 PM,7089.183,0,88900 +12/28/2016 11:38:53 PM,7089.183,0,89000 +12/28/2016 11:38:57 PM,7089.183,0,89100 +12/28/2016 11:39:01 PM,7089.183,0,89200 +12/28/2016 11:39:06 PM,7089.183,0,89300 +12/28/2016 11:39:12 PM,7089.183,0,89400 +12/28/2016 11:39:17 PM,7089.183,0,89500 +12/28/2016 11:39:21 PM,7089.185,0,89600 +12/28/2016 11:39:26 PM,7089.185,0,89700 +12/28/2016 11:39:34 PM,7089.185,0,89800 +12/28/2016 11:39:41 PM,7089.355,0,89900 +12/28/2016 11:39:45 PM,7089.355,0,90000 +12/28/2016 11:39:49 PM,7069.778,0,90100 +12/28/2016 11:39:56 PM,7079.822,0,90200 +12/28/2016 11:40:02 PM,7079.822,0,90300 +12/28/2016 11:40:08 PM,7079.822,0,90400 +12/28/2016 11:40:12 PM,7079.826,0,90500 +12/28/2016 11:40:16 PM,7079.83,0,90600 +12/28/2016 11:40:23 PM,7079.83,0,90700 +12/28/2016 11:40:26 PM,7079.83,0,90800 +12/28/2016 11:40:30 PM,7079.83,0,90900 +12/28/2016 11:40:34 PM,7079.83,0,91000 +12/28/2016 11:40:39 PM,7079.83,0,91100 +12/28/2016 11:40:43 PM,7079.83,0,91200 +12/28/2016 11:40:45 PM,7079.83,0,91300 +12/28/2016 11:40:49 PM,7079.83,0,91400 +12/28/2016 11:40:54 PM,7079.83,0,91500 +12/28/2016 11:41:02 PM,7079.83,0,91600 +12/28/2016 11:41:07 PM,7079.83,0,91700 +12/28/2016 11:41:13 PM,7079.83,0,91800 +12/28/2016 11:41:17 PM,7079.83,0,91900 +12/28/2016 11:41:22 PM,7079.83,0,92000 +12/28/2016 11:41:26 PM,7079.83,0,92100 +12/28/2016 11:41:32 PM,7079.83,0,92200 +12/28/2016 11:41:37 PM,7079.83,0,92300 +12/28/2016 11:41:42 PM,7079.83,0,92400 +12/28/2016 11:41:46 PM,7079.83,0,92500 +12/28/2016 11:41:52 PM,7079.83,0,92600 +12/28/2016 11:41:55 PM,7079.83,0,92700 +12/28/2016 11:42:01 PM,7079.83,0,92800 +12/28/2016 11:42:05 PM,7079.83,0,92900 +12/28/2016 11:42:09 PM,7079.83,0,93000 +12/28/2016 11:42:13 PM,7079.83,0,93100 +12/28/2016 11:42:19 PM,7079.83,0,93200 +12/28/2016 11:42:24 PM,7079.83,0,93300 +12/28/2016 11:42:28 PM,7079.83,0,93400 +12/28/2016 11:42:31 PM,7079.83,0,93500 +12/28/2016 11:42:36 PM,7079.83,0,93600 +12/28/2016 11:42:41 PM,7079.83,0,93700 +12/28/2016 11:42:45 PM,7079.83,0,93800 +12/28/2016 11:42:52 PM,7079.83,0,93900 +12/28/2016 11:42:59 PM,7079.83,0,94000 +12/28/2016 11:43:07 PM,7079.83,0,94100 +12/28/2016 11:43:12 PM,7079.83,0,94200 +12/28/2016 11:43:17 PM,7079.83,0,94300 +12/28/2016 11:43:22 PM,7079.83,0,94400 +12/28/2016 11:43:24 PM,7079.83,0,94500 +12/28/2016 11:43:30 PM,7079.83,0,94600 +12/28/2016 11:43:36 PM,7079.83,0,94700 +12/28/2016 11:43:40 PM,7079.83,0,94800 +12/28/2016 11:43:45 PM,7079.83,0,94900 +12/28/2016 11:43:49 PM,7079.83,0,95000 +12/28/2016 11:43:53 PM,7079.83,0,95100 +12/28/2016 11:43:58 PM,7079.83,0,95200 +12/28/2016 11:44:02 PM,7079.83,0,95300 +12/28/2016 11:44:10 PM,7079.83,0,95400 +12/28/2016 11:44:14 PM,7079.83,0,95500 +12/28/2016 11:44:19 PM,7079.83,0,95600 +12/28/2016 11:44:24 PM,7079.83,0,95700 +12/28/2016 11:44:28 PM,7079.83,0,95800 +12/28/2016 11:44:32 PM,7079.83,0,95900 +12/28/2016 11:44:37 PM,7079.83,0,96000 +12/28/2016 11:44:42 PM,7079.83,0,96100 +12/28/2016 11:44:48 PM,7079.83,0,96200 +12/28/2016 11:44:53 PM,7079.83,0,96300 +12/28/2016 11:44:58 PM,7079.83,0,96400 +12/28/2016 11:45:04 PM,7079.83,0,96500 +12/28/2016 11:45:08 PM,7079.83,0,96600 +12/28/2016 11:45:13 PM,7079.83,0,96700 +12/28/2016 11:45:19 PM,7079.83,0,96800 +12/28/2016 11:45:25 PM,7079.83,0,96900 +12/28/2016 11:45:29 PM,7079.83,0,97000 +12/28/2016 11:45:32 PM,7079.83,0,97100 +12/28/2016 11:45:35 PM,7079.83,0,97200 +12/28/2016 11:45:42 PM,7079.83,0,97300 +12/28/2016 11:45:49 PM,7079.83,0,97400 +12/28/2016 11:45:53 PM,7079.83,0,97500 +12/28/2016 11:46:01 PM,7079.83,0,97600 +12/28/2016 11:46:05 PM,7079.83,0,97700 +12/28/2016 11:46:09 PM,7079.83,0,97800 +12/28/2016 11:46:15 PM,7079.83,0,97900 +12/28/2016 11:46:19 PM,7079.83,0,98000 +12/28/2016 11:46:23 PM,7079.83,0,98100 +12/28/2016 11:46:27 PM,7079.83,0,98200 +12/28/2016 11:46:31 PM,7079.83,0,98300 +12/28/2016 11:46:34 PM,7079.83,0,98400 +12/28/2016 11:46:39 PM,7079.83,0,98500 +12/28/2016 11:46:44 PM,7079.83,0,98600 +12/28/2016 11:46:49 PM,7079.83,0,98700 +12/28/2016 11:46:54 PM,7079.83,0,98800 +12/28/2016 11:46:58 PM,7079.83,0,98900 +12/28/2016 11:47:04 PM,7079.83,0,99000 +12/28/2016 11:47:08 PM,7079.83,0,99100 +12/28/2016 11:47:11 PM,7079.83,0,99200 +12/28/2016 11:47:18 PM,7079.83,0,99300 +12/28/2016 11:47:24 PM,7079.83,0,99400 +12/28/2016 11:47:30 PM,7079.83,0,99500 +12/28/2016 11:47:36 PM,7079.83,0,99600 +12/28/2016 11:47:42 PM,7079.83,0,99700 +12/28/2016 11:47:47 PM,7079.83,0,99800 +12/28/2016 11:47:52 PM,7079.83,0,99900 +12/28/2016 11:47:58 PM,7079.83,0,100000 +12/28/2016 11:48:04 PM,7079.83,0,100100 +12/28/2016 11:48:09 PM,7079.83,0,100200 +12/28/2016 11:48:15 PM,7079.83,0,100300 +12/28/2016 11:48:18 PM,7079.83,0,100400 +12/28/2016 11:48:23 PM,7079.83,0,100500 +12/28/2016 11:48:28 PM,7079.83,0,100600 +12/28/2016 11:48:31 PM,7079.83,0,100700 +12/28/2016 11:48:37 PM,7079.83,0,100800 +12/28/2016 11:48:42 PM,7079.83,0,100900 +12/28/2016 11:48:51 PM,7079.83,0,101000 +12/28/2016 11:48:55 PM,7079.83,0,101100 +12/28/2016 11:49:00 PM,7079.83,0,101200 +12/28/2016 11:49:04 PM,7079.83,0,101300 +12/28/2016 11:49:10 PM,7079.83,0,101400 +12/28/2016 11:49:15 PM,7079.83,0,101500 +12/28/2016 11:49:19 PM,7079.83,0,101600 +12/28/2016 11:49:24 PM,7079.83,0,101700 +12/28/2016 11:49:27 PM,7079.83,0,101800 +12/28/2016 11:49:31 PM,7079.83,0,101900 +12/28/2016 11:49:37 PM,7079.83,0,102000 +12/28/2016 11:49:43 PM,7079.83,0,102100 +12/28/2016 11:49:47 PM,7079.83,0,102200 +12/28/2016 11:49:53 PM,7079.83,0,102300 +12/28/2016 11:50:00 PM,7079.83,0,102400 +12/28/2016 11:50:06 PM,7079.83,0,102500 +12/28/2016 11:50:10 PM,7079.83,0,102600 +12/28/2016 11:50:18 PM,7079.83,0,102700 +12/28/2016 11:50:23 PM,7079.83,0,102800 +12/28/2016 11:50:30 PM,7079.83,0,102900 +12/28/2016 11:50:36 PM,7079.83,0,103000 +12/28/2016 11:50:40 PM,7079.83,0,103100 +12/28/2016 11:50:45 PM,7079.83,0,103200 +12/28/2016 11:50:50 PM,7079.83,0,103300 +12/28/2016 11:50:54 PM,7079.83,0,103400 +12/28/2016 11:50:59 PM,7079.83,0,103500 +12/28/2016 11:51:03 PM,7079.83,0,103600 +12/28/2016 11:51:08 PM,7079.83,0,103700 +12/28/2016 11:51:15 PM,7079.83,0,103800 +12/28/2016 11:51:18 PM,7079.83,0,103900 +12/28/2016 11:51:22 PM,7079.83,0,104000 +12/28/2016 11:51:30 PM,7079.83,0,104100 +12/28/2016 11:51:35 PM,7079.83,0,104200 +12/28/2016 11:51:39 PM,7079.83,0,104300 +12/28/2016 11:51:42 PM,7079.83,0,104400 +12/28/2016 11:51:47 PM,7079.83,0,104500 +12/28/2016 11:51:50 PM,7079.83,0,104600 +12/28/2016 11:51:55 PM,7079.83,0,104700 +12/28/2016 11:51:59 PM,7079.83,0,104800 +12/28/2016 11:52:03 PM,7079.83,0,104900 +12/28/2016 11:52:07 PM,7079.83,0,105000 +12/28/2016 11:52:11 PM,7079.83,0,105100 +12/28/2016 11:52:16 PM,7079.83,0,105200 +12/28/2016 11:52:21 PM,7079.83,0,105300 +12/28/2016 11:52:25 PM,7079.83,0,105400 +12/28/2016 11:52:29 PM,7079.83,0,105500 +12/28/2016 11:52:33 PM,7079.83,0,105600 +12/28/2016 11:52:39 PM,7079.83,0,105700 +12/28/2016 11:52:44 PM,7079.83,0,105800 +12/28/2016 11:52:48 PM,7079.83,0,105900 +12/28/2016 11:52:53 PM,7079.83,0,106000 +12/28/2016 11:52:57 PM,7079.83,0,106100 +12/28/2016 11:53:02 PM,7079.83,0,106200 +12/28/2016 11:53:07 PM,7079.83,0,106300 +12/28/2016 11:53:12 PM,7079.83,0,106400 +12/28/2016 11:53:19 PM,7079.83,0,106500 +12/28/2016 11:53:25 PM,7079.83,0,106600 +12/28/2016 11:53:29 PM,7079.83,0,106700 +12/28/2016 11:53:34 PM,7079.83,0,106800 +12/28/2016 11:53:41 PM,7079.83,0,106900 +12/28/2016 11:53:48 PM,7079.83,0,107000 +12/28/2016 11:53:55 PM,7079.83,0,107100 +12/28/2016 11:53:59 PM,7079.83,0,107200 +12/28/2016 11:54:04 PM,7079.83,0,107300 +12/28/2016 11:54:09 PM,7079.83,0,107400 +12/28/2016 11:54:12 PM,7079.83,0,107500 +12/28/2016 11:54:17 PM,7079.83,0,107600 +12/28/2016 11:54:22 PM,7079.83,0,107700 +12/28/2016 11:54:27 PM,7079.83,0,107800 +12/28/2016 11:54:31 PM,7079.83,0,107900 +12/28/2016 11:54:35 PM,7079.83,0,108000 +12/28/2016 11:54:40 PM,7079.83,0,108100 +12/28/2016 11:54:45 PM,7079.83,0,108200 +12/28/2016 11:54:51 PM,7079.83,0,108300 +12/28/2016 11:54:57 PM,7079.83,0,108400 +12/28/2016 11:55:02 PM,7079.924,0,108500 +12/28/2016 11:55:06 PM,7079.924,0,108600 +12/28/2016 11:55:12 PM,7079.924,0,108700 +12/28/2016 11:55:16 PM,7079.924,0,108800 +12/28/2016 11:55:21 PM,7079.924,0,108900 +12/28/2016 11:55:25 PM,7079.924,0,109000 +12/28/2016 11:55:30 PM,7079.924,0,109100 +12/28/2016 11:55:37 PM,7079.924,0,109200 +12/28/2016 11:55:41 PM,7079.924,0,109300 +12/28/2016 11:55:46 PM,7079.924,0,109400 +12/28/2016 11:55:49 PM,7079.924,0,109500 +12/28/2016 11:56:00 PM,7079.924,0,109600 +12/28/2016 11:56:04 PM,7079.924,0,109700 +12/28/2016 11:56:09 PM,7079.924,0,109800 +12/28/2016 11:56:13 PM,7079.924,0,109900 +12/28/2016 11:56:17 PM,7079.924,0,110000 +12/28/2016 11:56:21 PM,7079.924,0,110100 +12/28/2016 11:56:26 PM,7079.924,0,110200 +12/28/2016 11:56:29 PM,7079.924,0,110300 +12/28/2016 11:56:35 PM,7079.924,0,110400 +12/28/2016 11:56:42 PM,7079.924,0,110500 +12/28/2016 11:56:46 PM,7079.924,0,110600 +12/28/2016 11:56:51 PM,7079.924,0,110700 +12/28/2016 11:56:55 PM,7079.924,0,110800 +12/28/2016 11:57:00 PM,7079.924,0,110900 +12/28/2016 11:57:04 PM,7079.924,0,111000 +12/28/2016 11:57:09 PM,7079.924,0,111100 +12/28/2016 11:57:14 PM,7079.924,0,111200 +12/28/2016 11:57:19 PM,7079.924,0,111300 +12/28/2016 11:57:24 PM,7079.924,0,111400 +12/28/2016 11:57:28 PM,7079.988,0,111500 +12/28/2016 11:57:33 PM,7079.988,0,111600 +12/28/2016 11:57:38 PM,7079.988,0,111700 +12/28/2016 11:57:44 PM,7079.988,0,111800 +12/28/2016 11:57:52 PM,7079.988,0,111900 +12/28/2016 11:57:57 PM,7079.988,0,112000 +12/28/2016 11:58:00 PM,7079.988,0,112100 +12/28/2016 11:58:04 PM,7079.988,0,112200 +12/28/2016 11:58:09 PM,7079.988,0,112300 +12/28/2016 11:58:15 PM,7079.988,0,112400 +12/28/2016 11:58:19 PM,7079.988,0,112500 +12/28/2016 11:58:23 PM,7079.988,0,112600 +12/28/2016 11:58:30 PM,7079.988,0,112700 +12/28/2016 11:58:34 PM,7079.988,0,112800 +12/28/2016 11:58:37 PM,7079.988,0,112900 +12/28/2016 11:58:43 PM,7079.988,0,113000 +12/28/2016 11:58:48 PM,7079.988,0,113100 +12/28/2016 11:58:55 PM,7079.988,0,113200 +12/28/2016 11:59:00 PM,7079.988,0,113300 +12/28/2016 11:59:04 PM,7079.988,0,113400 +12/28/2016 11:59:09 PM,7079.988,0,113500 +12/28/2016 11:59:12 PM,7079.988,0,113600 +12/28/2016 11:59:16 PM,7079.988,0,113700 +12/28/2016 11:59:22 PM,7079.988,0,113800 +12/28/2016 11:59:27 PM,7079.988,0,113900 +12/28/2016 11:59:32 PM,7079.988,0,114000 +12/28/2016 11:59:41 PM,7079.988,0,114100 +12/28/2016 11:59:48 PM,7079.988,0,114200 +12/28/2016 11:59:55 PM,7079.988,0,114300 +12/29/2016 12:00:00 AM,7079.988,0,114400 +12/29/2016 12:00:05 AM,7079.988,0,114500 +12/29/2016 12:00:09 AM,7079.988,0,114600 +12/29/2016 12:00:15 AM,7079.988,0,114700 +12/29/2016 12:00:22 AM,7079.988,0,114800 +12/29/2016 12:00:28 AM,7079.988,0,114900 +12/29/2016 12:00:33 AM,7079.988,0,115000 +12/29/2016 12:00:37 AM,7079.924,0,115100 +12/29/2016 12:00:41 AM,7079.924,0,115200 +12/29/2016 12:00:45 AM,7079.924,0,115300 +12/29/2016 12:00:49 AM,7079.924,0,115400 +12/29/2016 12:00:53 AM,7079.924,0,115500 +12/29/2016 12:00:57 AM,7079.924,0,115600 +12/29/2016 12:01:00 AM,7079.924,0,115700 +12/29/2016 12:01:07 AM,7079.924,0,115800 +12/29/2016 12:01:11 AM,7079.924,0,115900 +12/29/2016 12:01:16 AM,7079.924,0,116000 +12/29/2016 12:01:20 AM,7079.924,0,116100 +12/29/2016 12:01:24 AM,7079.924,0,116200 +12/29/2016 12:01:28 AM,7079.924,0,116300 +12/29/2016 12:01:32 AM,7079.924,0,116400 +12/29/2016 12:01:37 AM,7079.924,0,116500 +12/29/2016 12:01:42 AM,7079.924,0,116600 +12/29/2016 12:01:46 AM,7079.924,0,116700 +12/29/2016 12:01:51 AM,7079.924,0,116800 +12/29/2016 12:01:56 AM,7079.924,0,116900 +12/29/2016 12:02:00 AM,7079.924,0,117000 +12/29/2016 12:02:04 AM,7079.924,0,117100 +12/29/2016 12:02:08 AM,7079.924,0,117200 +12/29/2016 12:02:12 AM,7079.924,0,117300 +12/29/2016 12:02:17 AM,7079.924,0,117400 +12/29/2016 12:02:21 AM,7079.924,0,117500 +12/29/2016 12:02:26 AM,7079.924,0,117600 +12/29/2016 12:02:30 AM,7079.924,0,117700 +12/29/2016 12:02:35 AM,7079.924,0,117800 +12/29/2016 12:02:41 AM,7079.924,0,117900 +12/29/2016 12:02:47 AM,7079.924,0,118000 +12/29/2016 12:02:55 AM,7079.924,0,118100 +12/29/2016 12:03:01 AM,7079.924,0,118200 +12/29/2016 12:03:09 AM,7079.924,0,118300 +12/29/2016 12:03:19 AM,7079.924,0,118400 +12/29/2016 12:03:26 AM,7079.924,0,118500 +12/29/2016 12:03:35 AM,7079.924,0,118600 +12/29/2016 12:03:41 AM,7079.924,0,118700 +12/29/2016 12:03:46 AM,7079.924,0,118800 +12/29/2016 12:03:52 AM,7079.924,0,118900 +12/29/2016 12:03:56 AM,7079.924,0,119000 +12/29/2016 12:04:01 AM,7079.924,0,119100 +12/29/2016 12:04:06 AM,7079.924,0,119200 +12/29/2016 12:04:12 AM,7079.924,0,119300 +12/29/2016 12:04:18 AM,7079.924,0,119400 +12/29/2016 12:04:25 AM,7079.924,0,119500 +12/29/2016 12:04:31 AM,7079.924,0,119600 +12/29/2016 12:04:37 AM,7079.924,0,119700 +12/29/2016 12:04:45 AM,7079.924,0,119800 +12/29/2016 12:04:50 AM,7079.924,0,119900 +12/29/2016 12:04:56 AM,7079.924,0,120000 +12/29/2016 12:05:00 AM,7079.924,0,120100 +12/29/2016 12:05:03 AM,7079.924,0,120200 +12/29/2016 12:05:07 AM,7079.924,0,120300 +12/29/2016 12:05:11 AM,7079.924,0,120400 +12/29/2016 12:05:20 AM,7079.924,0,120500 +12/29/2016 12:05:28 AM,7079.924,0,120600 +12/29/2016 12:05:32 AM,7079.924,0,120700 +12/29/2016 12:05:41 AM,7079.924,0,120800 +12/29/2016 12:05:50 AM,7079.924,0,120900 +12/29/2016 12:05:56 AM,7079.924,0,121000 +12/29/2016 12:06:01 AM,7079.924,0,121100 +12/29/2016 12:06:08 AM,7079.924,0,121200 +12/29/2016 12:06:14 AM,7079.924,0,121300 +12/29/2016 12:06:20 AM,7079.924,0,121400 +12/29/2016 12:06:25 AM,7079.924,0,121500 +12/29/2016 12:06:30 AM,7079.924,0,121600 +12/29/2016 12:06:35 AM,7079.924,0,121700 +12/29/2016 12:06:41 AM,7079.924,0,121800 +12/29/2016 12:06:48 AM,7079.924,0,121900 +12/29/2016 12:06:55 AM,7079.924,0,122000 +12/29/2016 12:07:02 AM,7079.924,0,122100 +12/29/2016 12:07:07 AM,7079.924,0,122200 +12/29/2016 12:07:17 AM,7079.924,0,122300 +12/29/2016 12:07:25 AM,7079.924,0,122400 +12/29/2016 12:07:32 AM,7079.924,0,122500 +12/29/2016 12:07:37 AM,7079.924,0,122600 +12/29/2016 12:07:43 AM,7079.924,0,122700 +12/29/2016 12:07:46 AM,7079.924,0,122800 +12/29/2016 12:07:52 AM,7079.924,0,122900 +12/29/2016 12:07:57 AM,7079.924,0,123000 +12/29/2016 12:08:03 AM,7079.924,0,123100 +12/29/2016 12:08:10 AM,7079.924,0,123200 +12/29/2016 12:08:16 AM,7079.924,0,123300 +12/29/2016 12:08:21 AM,7079.924,0,123400 +12/29/2016 12:08:28 AM,7079.924,0,123500 +12/29/2016 12:08:33 AM,7079.924,0,123600 +12/29/2016 12:08:40 AM,7079.924,0,123700 +12/29/2016 12:08:44 AM,7079.924,0,123800 +12/29/2016 12:08:50 AM,7079.924,0,123900 +12/29/2016 12:08:54 AM,7079.924,0,124000 +12/29/2016 12:08:58 AM,7079.924,0,124100 +12/29/2016 12:09:03 AM,7079.924,0,124200 +12/29/2016 12:09:08 AM,7079.924,0,124300 +12/29/2016 12:09:12 AM,7079.924,0,124400 +12/29/2016 12:09:15 AM,7079.924,0,124500 +12/29/2016 12:09:18 AM,7079.988,0,124600 +12/29/2016 12:09:22 AM,7079.988,0,124700 +12/29/2016 12:09:26 AM,7079.988,0,124800 +12/29/2016 12:09:32 AM,7079.988,0,124900 +12/29/2016 12:09:37 AM,7079.988,0,125000 +12/29/2016 12:09:43 AM,7079.988,0,125100 +12/29/2016 12:09:49 AM,7079.988,0,125200 +12/29/2016 12:09:55 AM,7079.988,0,125300 +12/29/2016 12:10:03 AM,7079.988,0,125400 +12/29/2016 12:10:08 AM,7079.988,0,125500 +12/29/2016 12:10:11 AM,7079.988,0,125600 +12/29/2016 12:10:15 AM,7079.988,0,125700 +12/29/2016 12:10:21 AM,7079.988,0,125800 +12/29/2016 12:10:24 AM,7079.988,0,125900 +12/29/2016 12:10:30 AM,7079.988,0,126000 +12/29/2016 12:10:33 AM,7079.988,0,126100 +12/29/2016 12:10:37 AM,7079.988,0,126200 +12/29/2016 12:10:41 AM,7079.988,0,126300 +12/29/2016 12:10:46 AM,7079.988,0,126400 +12/29/2016 12:10:51 AM,7079.988,0,126500 +12/29/2016 12:10:54 AM,7079.988,0,126600 +12/29/2016 12:10:58 AM,7079.988,0,126700 +12/29/2016 12:11:02 AM,7079.988,0,126800 +12/29/2016 12:11:08 AM,7079.988,0,126900 +12/29/2016 12:11:13 AM,7079.988,0,127000 +12/29/2016 12:11:17 AM,7079.988,0,127100 +12/29/2016 12:11:23 AM,7079.988,0,127200 +12/29/2016 12:11:28 AM,7079.988,0,127300 +12/29/2016 12:11:32 AM,7079.988,0,127400 +12/29/2016 12:11:38 AM,7079.988,0,127500 +12/29/2016 12:11:42 AM,7079.988,0,127600 +12/29/2016 12:11:46 AM,7079.988,0,127700 +12/29/2016 12:11:49 AM,7079.988,0,127800 +12/29/2016 12:11:53 AM,7079.988,0,127900 +12/29/2016 12:11:59 AM,7079.988,0,128000 +12/29/2016 12:12:06 AM,7079.988,0,128100 +12/29/2016 12:12:14 AM,7079.988,0,128200 +12/29/2016 12:12:20 AM,7079.988,0,128300 +12/29/2016 12:12:25 AM,7079.988,0,128400 +12/29/2016 12:12:29 AM,7079.988,0,128500 +12/29/2016 12:12:33 AM,7079.988,0,128600 +12/29/2016 12:12:37 AM,7079.988,0,128700 +12/29/2016 12:12:43 AM,7079.988,0,128800 +12/29/2016 12:12:48 AM,7079.988,0,128900 +12/29/2016 12:12:54 AM,7079.988,0,129000 +12/29/2016 12:12:59 AM,7079.988,0,129100 +12/29/2016 12:13:03 AM,7079.988,0,129200 +12/29/2016 12:13:09 AM,7079.988,0,129300 +12/29/2016 12:13:14 AM,7079.988,0,129400 +12/29/2016 12:13:20 AM,7079.988,0,129500 +12/29/2016 12:13:25 AM,7079.988,0,129600 +12/29/2016 12:13:33 AM,7079.988,0,129700 +12/29/2016 12:13:39 AM,7079.988,0,129800 +12/29/2016 12:13:46 AM,7079.988,0,129900 +12/29/2016 12:13:55 AM,7079.988,0,130000 +12/29/2016 12:14:04 AM,7079.988,0,130100 +12/29/2016 12:14:13 AM,7079.988,0,130200 +12/29/2016 12:14:20 AM,7079.988,0,130300 +12/29/2016 12:14:29 AM,7079.988,0,130400 +12/29/2016 12:14:38 AM,7079.988,0,130500 +12/29/2016 12:14:45 AM,7079.988,0,130600 +12/29/2016 12:14:52 AM,7079.988,0,130700 +12/29/2016 12:15:00 AM,7079.988,0,130800 +12/29/2016 12:15:07 AM,7079.988,0,130900 +12/29/2016 12:15:16 AM,7079.988,0,131000 +12/29/2016 12:15:24 AM,7079.988,0,131100 +12/29/2016 12:15:39 AM,7079.988,0,131200 +12/29/2016 12:15:47 AM,7079.988,0,131300 +12/29/2016 12:15:54 AM,7079.988,0,131400 +12/29/2016 12:16:01 AM,7079.988,0,131500 +12/29/2016 12:16:08 AM,7079.988,0,131600 +12/29/2016 12:16:19 AM,7079.988,0,131700 +12/29/2016 12:16:26 AM,7079.988,0,131800 +12/29/2016 12:16:36 AM,7079.988,0,131900 +12/29/2016 12:16:48 AM,7079.988,0,132000 +12/29/2016 12:16:54 AM,7079.988,0,132100 +12/29/2016 12:17:00 AM,7079.988,0,132200 +12/29/2016 12:17:05 AM,7079.988,0,132300 +12/29/2016 12:17:12 AM,7079.988,0,132400 +12/29/2016 12:17:22 AM,7079.988,0,132500 +12/29/2016 12:17:30 AM,7079.988,0,132600 +12/29/2016 12:17:40 AM,7079.988,0,132700 +12/29/2016 12:17:47 AM,7079.988,0,132800 +12/29/2016 12:17:52 AM,7079.988,0,132900 +12/29/2016 12:17:56 AM,7079.988,0,133000 +12/29/2016 12:18:00 AM,7079.988,0,133100 +12/29/2016 12:18:04 AM,7079.988,0,133200 +12/29/2016 12:18:09 AM,7079.988,0,133300 +12/29/2016 12:18:13 AM,7079.988,0,133400 +12/29/2016 12:18:18 AM,7079.988,0,133500 +12/29/2016 12:18:23 AM,7079.988,0,133600 +12/29/2016 12:18:26 AM,7079.988,0,133700 +12/29/2016 12:18:32 AM,7079.988,0,133800 +12/29/2016 12:18:37 AM,7079.988,0,133900 +12/29/2016 12:18:41 AM,7079.988,0,134000 +12/29/2016 12:18:44 AM,7079.988,0,134100 +12/29/2016 12:18:48 AM,7079.988,0,134200 +12/29/2016 12:18:51 AM,7079.988,0,134300 +12/29/2016 12:18:55 AM,7079.988,0,134400 +12/29/2016 12:19:06 AM,7079.988,0,134500 +12/29/2016 12:19:10 AM,7079.988,0,134600 +12/29/2016 12:19:15 AM,7079.988,0,134700 +12/29/2016 12:19:19 AM,7079.988,0,134800 +12/29/2016 12:19:24 AM,7079.988,0,134900 +12/29/2016 12:19:29 AM,7079.988,0,135000 +12/29/2016 12:19:33 AM,7079.988,0,135100 +12/29/2016 12:19:37 AM,7079.988,0,135200 +12/29/2016 12:19:41 AM,7079.988,0,135300 +12/29/2016 12:19:45 AM,7079.988,0,135400 +12/29/2016 12:19:49 AM,7079.988,0,135500 +12/29/2016 12:19:55 AM,7079.988,0,135600 +12/29/2016 12:20:02 AM,7079.988,0,135700 +12/29/2016 12:20:08 AM,7079.988,0,135800 +12/29/2016 12:20:13 AM,7079.988,0,135900 +12/29/2016 12:20:17 AM,7079.988,0,136000 +12/29/2016 12:20:22 AM,7079.988,0,136100 +12/29/2016 12:20:26 AM,7079.988,0,136200 +12/29/2016 12:20:30 AM,7079.988,0,136300 +12/29/2016 12:20:33 AM,7079.988,0,136400 +12/29/2016 12:20:37 AM,7079.988,0,136500 +12/29/2016 12:20:41 AM,7079.988,0,136600 +12/29/2016 12:20:46 AM,7079.988,0,136700 +12/29/2016 12:20:49 AM,7079.988,0,136800 +12/29/2016 12:20:53 AM,7079.988,0,136900 +12/29/2016 12:20:59 AM,7079.988,0,137000 +12/29/2016 12:21:05 AM,7079.988,0,137100 +12/29/2016 12:21:11 AM,7079.988,0,137200 +12/29/2016 12:21:15 AM,7079.988,0,137300 +12/29/2016 12:21:19 AM,7079.988,0,137400 +12/29/2016 12:21:25 AM,7079.988,0,137500 +12/29/2016 12:21:32 AM,7079.988,0,137600 +12/29/2016 12:21:37 AM,7079.988,0,137700 +12/29/2016 12:21:41 AM,7079.988,0,137800 +12/29/2016 12:21:46 AM,7079.988,0,137900 +12/29/2016 12:21:53 AM,7079.988,0,138000 +12/29/2016 12:21:57 AM,7079.988,0,138100 +12/29/2016 12:22:01 AM,7079.988,0,138200 +12/29/2016 12:22:05 AM,7079.988,0,138300 +12/29/2016 12:22:08 AM,7079.988,0,138400 +12/29/2016 12:22:13 AM,7079.988,0,138500 +12/29/2016 12:22:20 AM,7079.988,0,138600 +12/29/2016 12:22:26 AM,7079.988,0,138700 +12/29/2016 12:22:31 AM,7079.988,0,138800 +12/29/2016 12:22:36 AM,7079.988,0,138900 +12/29/2016 12:22:39 AM,7079.988,0,139000 +12/29/2016 12:22:44 AM,7079.988,0,139100 +12/29/2016 12:22:48 AM,7079.988,0,139200 +12/29/2016 12:22:52 AM,7079.988,0,139300 +12/29/2016 12:22:59 AM,7079.988,0,139400 +12/29/2016 12:23:04 AM,7079.988,0,139500 +12/29/2016 12:23:11 AM,7079.988,0,139600 +12/29/2016 12:23:18 AM,7079.988,0,139700 +12/29/2016 12:23:23 AM,7079.988,0,139800 +12/29/2016 12:23:28 AM,7079.988,0,139900 +12/29/2016 12:23:32 AM,7079.988,0,140000 +12/29/2016 12:23:36 AM,7079.988,0,140100 +12/29/2016 12:23:40 AM,7079.988,0,140200 +12/29/2016 12:23:44 AM,7079.988,0,140300 +12/29/2016 12:23:49 AM,7079.988,0,140400 +12/29/2016 12:23:54 AM,7079.988,0,140500 +12/29/2016 12:23:58 AM,7079.988,0,140600 +12/29/2016 12:24:02 AM,7079.988,0,140700 +12/29/2016 12:24:07 AM,7079.988,0,140800 +12/29/2016 12:24:12 AM,7079.988,0,140900 +12/29/2016 12:24:19 AM,7079.988,0,141000 +12/29/2016 12:24:28 AM,7079.988,0,141100 +12/29/2016 12:24:36 AM,7079.988,0,141200 +12/29/2016 12:24:42 AM,7079.988,0,141300 +12/29/2016 12:24:49 AM,7079.988,0,141400 +12/29/2016 12:24:53 AM,7079.988,0,141500 +12/29/2016 12:25:02 AM,7079.988,0,141600 +12/29/2016 12:25:08 AM,7079.988,0,141700 +12/29/2016 12:25:16 AM,7079.988,0,141800 +12/29/2016 12:25:24 AM,7079.988,0,141900 +12/29/2016 12:25:31 AM,7079.988,0,142000 +12/29/2016 12:25:36 AM,7079.988,0,142100 +12/29/2016 12:25:43 AM,7079.988,0,142200 +12/29/2016 12:25:50 AM,7079.988,0,142300 +12/29/2016 12:25:57 AM,7079.988,0,142400 +12/29/2016 12:26:03 AM,7079.988,0,142500 +12/29/2016 12:26:06 AM,7079.988,0,142600 +12/29/2016 12:26:13 AM,7079.988,0,142700 +12/29/2016 12:26:19 AM,7079.988,0,142800 +12/29/2016 12:26:25 AM,7079.988,0,142900 +12/29/2016 12:26:29 AM,7079.988,0,143000 +12/29/2016 12:26:35 AM,7079.988,0,143100 +12/29/2016 12:26:40 AM,7079.988,0,143200 +12/29/2016 12:26:45 AM,7079.988,0,143300 +12/29/2016 12:26:49 AM,7079.988,0,143400 +12/29/2016 12:26:55 AM,7079.988,0,143500 +12/29/2016 12:27:02 AM,7079.988,0,143600 +12/29/2016 12:27:07 AM,7079.988,0,143700 +12/29/2016 12:27:13 AM,7079.988,0,143800 +12/29/2016 12:27:19 AM,7079.988,0,143900 +12/29/2016 12:27:22 AM,7079.988,0,144000 +12/29/2016 12:27:27 AM,7079.988,0,144100 +12/29/2016 12:27:30 AM,7079.988,0,144200 +12/29/2016 12:27:34 AM,7079.988,0,144300 +12/29/2016 12:27:37 AM,7079.988,0,144400 +12/29/2016 12:27:41 AM,7079.988,0,144500 +12/29/2016 12:27:45 AM,7079.988,0,144600 +12/29/2016 12:27:48 AM,7079.988,0,144700 +12/29/2016 12:27:52 AM,7079.988,0,144800 +12/29/2016 12:27:56 AM,7079.988,0,144900 +12/29/2016 12:28:00 AM,7079.988,0,145000 +12/29/2016 12:28:05 AM,7079.988,0,145100 +12/29/2016 12:28:10 AM,7079.988,0,145200 +12/29/2016 12:28:15 AM,7079.988,0,145300 +12/29/2016 12:28:19 AM,7079.988,0,145400 +12/29/2016 12:28:22 AM,7079.988,0,145500 +12/29/2016 12:28:27 AM,7079.988,0,145600 +12/29/2016 12:28:31 AM,7079.988,0,145700 +12/29/2016 12:28:35 AM,7079.988,0,145800 +12/29/2016 12:28:39 AM,7079.988,0,145900 +12/29/2016 12:28:42 AM,7079.988,0,146000 +12/29/2016 12:28:46 AM,7079.988,0,146100 +12/29/2016 12:28:51 AM,7079.988,0,146200 +12/29/2016 12:28:55 AM,7079.988,0,146300 +12/29/2016 12:29:00 AM,7079.988,0,146400 +12/29/2016 12:29:06 AM,7079.988,0,146500 +12/29/2016 12:29:09 AM,7079.988,0,146600 +12/29/2016 12:29:13 AM,7079.988,0,146700 +12/29/2016 12:29:17 AM,7079.988,0,146800 +12/29/2016 12:29:22 AM,7079.988,0,146900 +12/29/2016 12:29:26 AM,7079.988,0,147000 +12/29/2016 12:29:29 AM,7079.988,0,147100 +12/29/2016 12:29:33 AM,7079.988,0,147200 +12/29/2016 12:29:36 AM,7079.988,0,147300 +12/29/2016 12:29:40 AM,7079.988,0,147400 +12/29/2016 12:29:44 AM,7079.988,0,147500 +12/29/2016 12:29:51 AM,7079.988,0,147600 +12/29/2016 12:29:57 AM,7079.988,0,147700 +12/29/2016 12:30:03 AM,7079.988,0,147800 +12/29/2016 12:30:11 AM,7079.988,0,147900 +12/29/2016 12:30:17 AM,7079.988,0,148000 +12/29/2016 12:30:26 AM,7079.988,0,148100 +12/29/2016 12:30:34 AM,7079.988,0,148200 +12/29/2016 12:30:45 AM,7079.988,0,148300 +12/29/2016 12:30:51 AM,7079.988,0,148400 +12/29/2016 12:30:56 AM,7079.988,0,148500 +12/29/2016 12:31:02 AM,7079.988,0,148600 +12/29/2016 12:31:07 AM,7079.988,0,148700 +12/29/2016 12:31:12 AM,7079.988,0,148800 +12/29/2016 12:31:16 AM,7079.988,0,148900 +12/29/2016 12:31:22 AM,7079.988,0,149000 +12/29/2016 12:31:27 AM,7079.988,0,149100 +12/29/2016 12:31:31 AM,7079.988,0,149200 +12/29/2016 12:31:38 AM,7079.988,0,149300 +12/29/2016 12:31:43 AM,7079.988,0,149400 +12/29/2016 12:31:48 AM,7079.988,0,149500 +12/29/2016 12:31:52 AM,7079.988,0,149600 +12/29/2016 12:31:56 AM,7079.988,0,149700 +12/29/2016 12:32:00 AM,7079.988,0,149800 +12/29/2016 12:32:06 AM,7079.988,0,149900 +12/29/2016 12:32:11 AM,7079.988,0,150000 +12/29/2016 12:32:14 AM,7079.988,0,150100 +12/29/2016 12:32:19 AM,7079.988,0,150200 +12/29/2016 12:32:24 AM,7079.988,0,150300 +12/29/2016 12:32:29 AM,7079.988,0,150400 +12/29/2016 12:32:34 AM,7079.988,0,150500 +12/29/2016 12:32:41 AM,7079.988,0,150600 +12/29/2016 12:32:49 AM,7079.988,0,150700 +12/29/2016 12:32:57 AM,7079.988,0,150800 +12/29/2016 12:33:02 AM,7079.988,0,150900 +12/29/2016 12:33:08 AM,7079.988,0,151000 +12/29/2016 12:33:15 AM,7079.988,0,151100 +12/29/2016 12:33:20 AM,7079.988,0,151200 +12/29/2016 12:33:25 AM,7079.988,0,151300 +12/29/2016 12:33:32 AM,7079.988,0,151400 +12/29/2016 12:33:40 AM,7079.988,0,151500 +12/29/2016 12:33:52 AM,7079.988,0,151600 +12/29/2016 12:34:01 AM,7079.988,0,151700 +12/29/2016 12:34:08 AM,7079.988,0,151800 +12/29/2016 12:34:14 AM,7079.988,0,151900 +12/29/2016 12:34:23 AM,7079.988,0,152000 +12/29/2016 12:34:30 AM,7079.988,0,152100 +12/29/2016 12:34:36 AM,7079.988,0,152200 +12/29/2016 12:34:42 AM,7079.988,0,152300 +12/29/2016 12:34:47 AM,7079.988,0,152400 +12/29/2016 12:34:54 AM,7079.988,0,152500 +12/29/2016 12:34:59 AM,7079.988,0,152600 +12/29/2016 12:35:05 AM,7079.988,0,152700 +12/29/2016 12:35:10 AM,7079.988,0,152800 +12/29/2016 12:35:14 AM,7079.988,0,152900 +12/29/2016 12:35:18 AM,7079.988,0,153000 +12/29/2016 12:35:23 AM,7079.988,0,153100 +12/29/2016 12:35:32 AM,7079.988,0,153200 +12/29/2016 12:35:41 AM,7079.988,0,153300 +12/29/2016 12:35:50 AM,7079.988,0,153400 +12/29/2016 12:35:58 AM,7079.988,0,153500 +12/29/2016 12:36:07 AM,7079.988,0,153600 +12/29/2016 12:36:13 AM,7079.988,0,153700 +12/29/2016 12:36:18 AM,7079.988,0,153800 +12/29/2016 12:36:23 AM,7079.988,0,153900 +12/29/2016 12:36:28 AM,7079.988,0,154000 +12/29/2016 12:36:33 AM,7079.988,0,154100 +12/29/2016 12:36:37 AM,7079.988,0,154200 +12/29/2016 12:36:41 AM,7079.988,0,154300 +12/29/2016 12:36:45 AM,7079.988,0,154400 +12/29/2016 12:36:53 AM,7079.988,0,154500 +12/29/2016 12:36:59 AM,7079.988,0,154600 +12/29/2016 12:37:05 AM,7079.988,0,154700 +12/29/2016 12:37:11 AM,7079.988,0,154800 +12/29/2016 12:37:17 AM,7079.988,0,154900 +12/29/2016 12:37:21 AM,7079.988,0,155000 +12/29/2016 12:37:26 AM,7079.988,0,155100 +12/29/2016 12:37:29 AM,7079.988,0,155200 +12/29/2016 12:37:33 AM,7079.988,0,155300 +12/29/2016 12:37:37 AM,7079.988,0,155400 +12/29/2016 12:37:41 AM,7079.988,0,155500 +12/29/2016 12:37:46 AM,7079.988,0,155600 +12/29/2016 12:37:53 AM,7079.988,0,155700 +12/29/2016 12:37:59 AM,7079.988,0,155800 +12/29/2016 12:38:04 AM,7079.988,0,155900 +12/29/2016 12:38:12 AM,7079.988,0,156000 +12/29/2016 12:38:20 AM,7079.988,0,156100 +12/29/2016 12:38:26 AM,7079.988,0,156200 +12/29/2016 12:38:32 AM,7079.988,0,156300 +12/29/2016 12:38:38 AM,7079.988,0,156400 +12/29/2016 12:38:43 AM,7079.988,0,156500 +12/29/2016 12:38:49 AM,7079.988,0,156600 +12/29/2016 12:38:55 AM,7079.988,0,156700 +12/29/2016 12:39:02 AM,7079.988,0,156800 +12/29/2016 12:39:10 AM,7079.988,0,156900 +12/29/2016 12:39:17 AM,7079.988,0,157000 +12/29/2016 12:39:25 AM,7079.988,0,157100 +12/29/2016 12:39:34 AM,7079.988,0,157200 +12/29/2016 12:39:41 AM,7079.988,0,157300 +12/29/2016 12:39:49 AM,7079.988,0,157400 +12/29/2016 12:39:56 AM,7079.988,0,157500 +12/29/2016 12:40:03 AM,7079.988,0,157600 +12/29/2016 12:40:11 AM,7079.988,0,157700 +12/29/2016 12:40:18 AM,7079.988,0,157800 +12/29/2016 12:40:25 AM,7079.988,0,157900 +12/29/2016 12:40:31 AM,7079.988,0,158000 +12/29/2016 12:40:36 AM,7079.988,0,158100 +12/29/2016 12:40:40 AM,7079.988,0,158200 +12/29/2016 12:40:43 AM,7079.988,0,158300 +12/29/2016 12:40:49 AM,7079.988,0,158400 +12/29/2016 12:40:54 AM,7079.988,0,158500 +12/29/2016 12:40:58 AM,7079.988,0,158600 +12/29/2016 12:41:02 AM,7079.988,0,158700 +12/29/2016 12:41:06 AM,7079.988,0,158800 +12/29/2016 12:41:10 AM,7079.988,0,158900 +12/29/2016 12:41:16 AM,7079.988,0,159000 +12/29/2016 12:41:23 AM,7079.988,0,159100 +12/29/2016 12:41:30 AM,7079.988,0,159200 +12/29/2016 12:41:34 AM,7079.988,0,159300 +12/29/2016 12:41:41 AM,7079.988,0,159400 +12/29/2016 12:41:47 AM,7079.988,0,159500 +12/29/2016 12:41:54 AM,7079.988,0,159600 +12/29/2016 12:41:59 AM,7079.988,0,159700 +12/29/2016 12:42:04 AM,7079.988,0,159800 +12/29/2016 12:42:10 AM,7079.988,0,159900 +12/29/2016 12:42:16 AM,7079.988,0,160000 +12/29/2016 12:42:21 AM,7079.988,0,160100 +12/29/2016 12:42:26 AM,7079.988,0,160200 +12/29/2016 12:42:30 AM,7079.988,0,160300 +12/29/2016 12:42:34 AM,7079.988,0,160400 +12/29/2016 12:42:40 AM,7079.988,0,160500 +12/29/2016 12:42:45 AM,7079.988,0,160600 +12/29/2016 12:42:55 AM,7079.988,0,160700 +12/29/2016 12:43:02 AM,7079.988,0,160800 +12/29/2016 12:43:10 AM,7079.988,0,160900 +12/29/2016 12:43:15 AM,7079.988,0,161000 +12/29/2016 12:43:21 AM,7079.988,0,161100 +12/29/2016 12:43:25 AM,7079.988,0,161200 +12/29/2016 12:43:30 AM,7079.988,0,161300 +12/29/2016 12:43:36 AM,7079.988,0,161400 +12/29/2016 12:43:40 AM,7079.988,0,161500 +12/29/2016 12:43:45 AM,7079.988,0,161600 +12/29/2016 12:43:50 AM,7079.988,0,161700 +12/29/2016 12:43:54 AM,7079.988,0,161800 +12/29/2016 12:43:58 AM,7079.988,0,161900 +12/29/2016 12:44:03 AM,7079.988,0,162000 +12/29/2016 12:44:09 AM,7079.988,0,162100 +12/29/2016 12:44:13 AM,7079.988,0,162200 +12/29/2016 12:44:19 AM,7079.988,0,162300 +12/29/2016 12:44:26 AM,7079.988,0,162400 +12/29/2016 12:44:32 AM,7079.988,0,162500 +12/29/2016 12:44:37 AM,7079.988,0,162600 +12/29/2016 12:44:41 AM,7079.988,0,162700 +12/29/2016 12:44:46 AM,7079.988,0,162800 +12/29/2016 12:44:50 AM,7079.988,0,162900 +12/29/2016 12:44:53 AM,7079.988,0,163000 +12/29/2016 12:44:58 AM,7079.988,0,163100 +12/29/2016 12:45:03 AM,7079.988,0,163200 +12/29/2016 12:45:08 AM,7079.988,0,163300 +12/29/2016 12:45:14 AM,7079.988,0,163400 +12/29/2016 12:45:18 AM,7079.988,0,163500 +12/29/2016 12:45:24 AM,7079.988,0,163600 +12/29/2016 12:45:30 AM,7079.988,0,163700 +12/29/2016 12:45:37 AM,7079.988,0,163800 +12/29/2016 12:45:42 AM,7079.988,0,163900 +12/29/2016 12:45:48 AM,7079.988,0,164000 +12/29/2016 12:45:52 AM,7079.988,0,164100 +12/29/2016 12:45:55 AM,7079.988,0,164200 +12/29/2016 12:46:00 AM,7079.988,0,164300 +12/29/2016 12:46:04 AM,7079.988,0,164400 +12/29/2016 12:46:08 AM,7079.988,0,164500 +12/29/2016 12:46:12 AM,7079.988,0,164600 +12/29/2016 12:46:17 AM,7079.988,0,164700 +12/29/2016 12:46:20 AM,7079.988,0,164800 +12/29/2016 12:46:24 AM,7079.988,0,164900 +12/29/2016 12:46:28 AM,7079.988,0,165000 +12/29/2016 12:46:32 AM,7079.988,0,165100 +12/29/2016 12:46:35 AM,7079.988,0,165200 +12/29/2016 12:46:39 AM,7079.988,0,165300 +12/29/2016 12:46:44 AM,7079.988,0,165400 +12/29/2016 12:46:49 AM,7079.988,0,165500 +12/29/2016 12:46:53 AM,7079.988,0,165600 +12/29/2016 12:46:58 AM,7079.988,0,165700 +12/29/2016 12:47:03 AM,7079.988,0,165800 +12/29/2016 12:47:10 AM,7079.988,0,165900 +12/29/2016 12:47:15 AM,7079.988,0,166000 +12/29/2016 12:47:19 AM,7079.988,0,166100 +12/29/2016 12:47:24 AM,7079.988,0,166200 +12/29/2016 12:47:29 AM,7079.988,0,166300 +12/29/2016 12:47:35 AM,7079.988,0,166400 +12/29/2016 12:47:45 AM,7079.988,0,166500 +12/29/2016 12:47:51 AM,7079.988,0,166600 +12/29/2016 12:47:56 AM,7079.988,0,166700 +12/29/2016 12:48:01 AM,7079.988,0,166800 +12/29/2016 12:48:06 AM,7079.988,0,166900 +12/29/2016 12:48:10 AM,7079.988,0,167000 +12/29/2016 12:48:15 AM,7079.988,0,167100 +12/29/2016 12:48:20 AM,7079.988,0,167200 +12/29/2016 12:48:24 AM,7079.988,0,167300 +12/29/2016 12:48:29 AM,7079.988,0,167400 +12/29/2016 12:48:32 AM,7079.988,0,167500 +12/29/2016 12:48:38 AM,7079.988,0,167600 +12/29/2016 12:48:43 AM,7079.988,0,167700 +12/29/2016 12:48:48 AM,7079.988,0,167800 +12/29/2016 12:48:52 AM,7079.988,0,167900 +12/29/2016 12:48:57 AM,7079.988,0,168000 +12/29/2016 12:49:03 AM,7079.988,0,168100 +12/29/2016 12:49:12 AM,7079.988,0,168200 +12/29/2016 12:49:19 AM,7079.988,0,168300 +12/29/2016 12:49:28 AM,7079.988,0,168400 +12/29/2016 12:49:37 AM,7079.988,0,168500 +12/29/2016 12:49:44 AM,7079.988,0,168600 +12/29/2016 12:49:53 AM,7079.988,0,168700 +12/29/2016 12:50:01 AM,7079.988,0,168800 +12/29/2016 12:50:12 AM,7079.988,0,168900 +12/29/2016 12:50:20 AM,7079.988,0,169000 +12/29/2016 12:50:28 AM,7079.988,0,169100 +12/29/2016 12:50:37 AM,7079.988,0,169200 +12/29/2016 12:50:47 AM,7079.988,0,169300 +12/29/2016 12:50:56 AM,7079.988,0,169400 +12/29/2016 12:51:02 AM,7079.988,0,169500 +12/29/2016 12:51:09 AM,7079.988,0,169600 +12/29/2016 12:51:16 AM,7079.988,0,169700 +12/29/2016 12:51:25 AM,7079.988,0,169800 +12/29/2016 12:51:33 AM,7079.988,0,169900 +12/29/2016 12:51:39 AM,7079.988,0,170000 +12/29/2016 12:51:47 AM,7079.988,0,170100 +12/29/2016 12:51:53 AM,7079.988,0,170200 +12/29/2016 12:52:00 AM,7079.988,0,170300 +12/29/2016 12:52:07 AM,7079.988,0,170400 +12/29/2016 12:52:15 AM,7079.988,0,170500 +12/29/2016 12:52:21 AM,7079.988,0,170600 +12/29/2016 12:52:27 AM,7079.988,0,170700 +12/29/2016 12:52:33 AM,7079.988,0,170800 +12/29/2016 12:52:40 AM,7079.988,0,170900 +12/29/2016 12:52:44 AM,7079.988,0,171000 +12/29/2016 12:52:52 AM,7079.988,0,171100 +12/29/2016 12:53:00 AM,7079.988,0,171200 +12/29/2016 12:53:07 AM,7079.988,0,171300 +12/29/2016 12:53:16 AM,7079.988,0,171400 +12/29/2016 12:53:24 AM,7079.988,0,171500 +12/29/2016 12:53:31 AM,7079.988,0,171600 +12/29/2016 12:53:38 AM,7079.988,0,171700 +12/29/2016 12:53:47 AM,7079.988,0,171800 +12/29/2016 12:53:55 AM,7079.988,0,171900 +12/29/2016 12:54:02 AM,7079.988,0,172000 +12/29/2016 12:54:06 AM,7079.988,0,172100 +12/29/2016 12:54:13 AM,7079.988,0,172200 +12/29/2016 12:54:18 AM,7079.988,0,172300 +12/29/2016 12:54:25 AM,7079.988,0,172400 +12/29/2016 12:54:30 AM,7079.988,0,172500 +12/29/2016 12:54:37 AM,7079.988,0,172600 +12/29/2016 12:54:42 AM,7079.988,0,172700 +12/29/2016 12:54:47 AM,7079.988,0,172800 +12/29/2016 12:54:52 AM,7079.988,0,172900 +12/29/2016 12:54:58 AM,7079.988,0,173000 +12/29/2016 12:55:03 AM,7079.988,0,173100 +12/29/2016 12:55:07 AM,7079.988,0,173200 +12/29/2016 12:55:12 AM,7079.988,0,173300 +12/29/2016 12:55:17 AM,7079.988,0,173400 +12/29/2016 12:55:21 AM,7079.988,0,173500 +12/29/2016 12:55:25 AM,7079.988,0,173600 +12/29/2016 12:55:29 AM,7079.988,0,173700 +12/29/2016 12:55:34 AM,7079.988,0,173800 +12/29/2016 12:55:38 AM,7079.988,0,173900 +12/29/2016 12:55:44 AM,7079.988,0,174000 +12/29/2016 12:55:48 AM,7079.988,0,174100 +12/29/2016 12:55:54 AM,7079.988,0,174200 +12/29/2016 12:55:57 AM,7079.988,0,174300 +12/29/2016 12:56:02 AM,7079.988,0,174400 +12/29/2016 12:56:08 AM,7079.988,0,174500 +12/29/2016 12:56:14 AM,7079.988,0,174600 +12/29/2016 12:56:18 AM,7079.988,0,174700 +12/29/2016 12:56:23 AM,7079.988,0,174800 +12/29/2016 12:56:27 AM,7079.988,0,174900 +12/29/2016 12:56:30 AM,7079.988,0,175000 +12/29/2016 12:56:34 AM,7079.988,0,175100 +12/29/2016 12:56:39 AM,7079.988,0,175200 +12/29/2016 12:56:43 AM,7079.988,0,175300 +12/29/2016 12:56:47 AM,7079.988,0,175400 +12/29/2016 12:56:51 AM,7079.988,0,175500 +12/29/2016 12:56:56 AM,7079.988,0,175600 +12/29/2016 12:57:06 AM,7079.988,0,175700 +12/29/2016 12:57:12 AM,7079.988,0,175800 +12/29/2016 12:57:17 AM,7079.988,0,175900 +12/29/2016 12:57:23 AM,7079.988,0,176000 +12/29/2016 12:57:29 AM,7079.988,0,176100 +12/29/2016 12:57:37 AM,7079.988,0,176200 +12/29/2016 12:57:42 AM,7079.988,0,176300 +12/29/2016 12:57:49 AM,7079.988,0,176400 +12/29/2016 12:57:56 AM,7079.988,0,176500 +12/29/2016 12:58:03 AM,7079.988,0,176600 +12/29/2016 12:58:08 AM,7079.988,0,176700 +12/29/2016 12:58:13 AM,7079.988,0,176800 +12/29/2016 12:58:20 AM,7079.988,0,176900 +12/29/2016 12:58:25 AM,7079.988,0,177000 +12/29/2016 12:58:30 AM,7079.988,0,177100 +12/29/2016 12:58:36 AM,7079.988,0,177200 +12/29/2016 12:58:45 AM,7079.988,0,177300 +12/29/2016 12:58:53 AM,7079.988,0,177400 +12/29/2016 12:58:58 AM,7079.988,0,177500 +12/29/2016 12:59:04 AM,7079.988,0,177600 +12/29/2016 12:59:10 AM,7079.988,0,177700 +12/29/2016 12:59:14 AM,7079.988,0,177800 +12/29/2016 12:59:21 AM,7079.988,0,177900 +12/29/2016 12:59:26 AM,7079.988,0,178000 +12/29/2016 12:59:34 AM,7079.988,0,178100 +12/29/2016 12:59:38 AM,7079.988,0,178200 +12/29/2016 12:59:42 AM,7079.988,0,178300 +12/29/2016 12:59:46 AM,7079.988,0,178400 +12/29/2016 12:59:50 AM,7079.988,0,178500 +12/29/2016 12:59:56 AM,7079.988,0,178600 +12/29/2016 1:00:02 AM,7079.988,0,178700 +12/29/2016 1:00:08 AM,7079.988,0,178800 +12/29/2016 1:00:14 AM,7079.988,0,178900 +12/29/2016 1:00:20 AM,7079.988,0,179000 +12/29/2016 1:00:25 AM,7079.988,0,179100 +12/29/2016 1:00:32 AM,7079.988,0,179200 +12/29/2016 1:00:40 AM,7079.988,0,179300 +12/29/2016 1:00:47 AM,7079.988,0,179400 +12/29/2016 1:00:54 AM,7079.988,0,179500 +12/29/2016 1:01:00 AM,7079.988,0,179600 +12/29/2016 1:01:05 AM,7079.988,0,179700 +12/29/2016 1:01:11 AM,7079.988,0,179800 +12/29/2016 1:01:15 AM,7079.988,0,179900 +12/29/2016 1:01:21 AM,7079.988,0,180000 +12/29/2016 1:01:26 AM,7079.988,0,180100 +12/29/2016 1:01:32 AM,7079.988,0,180200 +12/29/2016 1:01:37 AM,7079.988,0,180300 +12/29/2016 1:01:44 AM,7099.582,0,180400 +12/29/2016 1:01:50 AM,7099.616,0,180500 +12/29/2016 1:01:56 AM,7099.632,0,180600 +12/29/2016 1:02:01 AM,7099.654,0,180700 +12/29/2016 1:02:06 AM,7099.654,0,180800 +12/29/2016 1:02:11 AM,7099.654,0,180900 +12/29/2016 1:02:16 AM,7099.686,0,181000 +12/29/2016 1:02:21 AM,7099.686,0,181100 +12/29/2016 1:02:25 AM,7099.688,0,181200 +12/29/2016 1:02:29 AM,7099.706,0,181300 +12/29/2016 1:02:35 AM,7099.714,0,181400 +12/29/2016 1:02:39 AM,7099.718,0,181500 +12/29/2016 1:02:45 AM,7099.718,0,181600 +12/29/2016 1:02:49 AM,7099.722,0,181700 +12/29/2016 1:02:55 AM,7099.722,0,181800 +12/29/2016 1:03:00 AM,7099.722,0,181900 +12/29/2016 1:03:05 AM,7099.728,0,182000 +12/29/2016 1:03:12 AM,7099.752,0,182100 +12/29/2016 1:03:17 AM,7099.752,0,182200 +12/29/2016 1:03:22 AM,7099.752,0,182300 +12/29/2016 1:03:26 AM,7099.76,0,182400 +12/29/2016 1:03:35 AM,7099.76,0,182500 +12/29/2016 1:03:40 AM,7099.764,0,182600 +12/29/2016 1:03:45 AM,7099.764,0,182700 +12/29/2016 1:03:50 AM,7099.77,0,182800 +12/29/2016 1:03:55 AM,7099.774,0,182900 +12/29/2016 1:04:01 AM,7099.774,0,183000 +12/29/2016 1:04:05 AM,7099.778,0,183100 +12/29/2016 1:04:11 AM,7099.782,0,183200 +12/29/2016 1:04:16 AM,7099.782,0,183300 +12/29/2016 1:04:23 AM,7099.782,0,183400 +12/29/2016 1:04:28 AM,7099.782,0,183500 +12/29/2016 1:04:33 AM,7099.782,0,183600 +12/29/2016 1:04:40 AM,7099.782,0,183700 +12/29/2016 1:04:46 AM,7099.782,0,183800 +12/29/2016 1:04:55 AM,7099.782,0,183900 +12/29/2016 1:05:01 AM,7099.786,0,184000 +12/29/2016 1:05:06 AM,7099.786,0,184100 +12/29/2016 1:05:12 AM,7099.786,0,184200 +12/29/2016 1:05:18 AM,7099.786,0,184300 +12/29/2016 1:05:23 AM,7099.786,0,184400 +12/29/2016 1:05:27 AM,7099.786,0,184500 +12/29/2016 1:05:32 AM,7099.786,0,184600 +12/29/2016 1:05:36 AM,7099.786,0,184700 +12/29/2016 1:05:40 AM,7099.786,0,184800 +12/29/2016 1:05:45 AM,7099.786,0,184900 +12/29/2016 1:05:51 AM,7099.786,0,185000 +12/29/2016 1:05:57 AM,7099.786,0,185100 +12/29/2016 1:06:03 AM,7099.786,0,185200 +12/29/2016 1:06:09 AM,7099.79,0,185300 +12/29/2016 1:06:13 AM,7099.79,0,185400 +12/29/2016 1:06:18 AM,7099.79,0,185500 +12/29/2016 1:06:24 AM,7099.79,0,185600 +12/29/2016 1:06:29 AM,7099.79,0,185700 +12/29/2016 1:06:34 AM,7099.79,0,185800 +12/29/2016 1:06:39 AM,7099.79,0,185900 +12/29/2016 1:06:46 AM,7099.79,0,186000 +12/29/2016 1:06:52 AM,7099.79,0,186100 +12/29/2016 1:06:57 AM,7099.79,0,186200 +12/29/2016 1:07:02 AM,7099.79,0,186300 +12/29/2016 1:07:07 AM,7099.79,0,186400 +12/29/2016 1:07:11 AM,7099.79,0,186500 +12/29/2016 1:07:17 AM,7099.79,0,186600 +12/29/2016 1:07:22 AM,7099.79,0,186700 +12/29/2016 1:07:30 AM,7099.79,0,186800 +12/29/2016 1:07:35 AM,7099.79,0,186900 +12/29/2016 1:07:39 AM,7099.79,0,187000 +12/29/2016 1:07:45 AM,7099.79,0,187100 +12/29/2016 1:07:51 AM,7099.79,0,187200 +12/29/2016 1:07:57 AM,7099.79,0,187300 +12/29/2016 1:08:03 AM,7099.79,0,187400 +12/29/2016 1:08:09 AM,7099.79,0,187500 +12/29/2016 1:08:16 AM,7099.79,0,187600 +12/29/2016 1:08:20 AM,7099.79,0,187700 +12/29/2016 1:08:25 AM,7099.793,0,187800 +12/29/2016 1:08:30 AM,7099.793,0,187900 +12/29/2016 1:08:35 AM,7099.793,0,188000 +12/29/2016 1:08:41 AM,7099.793,0,188100 +12/29/2016 1:08:46 AM,7099.793,0,188200 +12/29/2016 1:08:52 AM,7102.792,0,188300 +12/29/2016 1:09:00 AM,7102.792,0,188400 diff --git a/Results/extractinquotes2/history.txt b/Results/extractinquotes2/history.txt new file mode 100644 index 0000000..e8a42b8 --- /dev/null +++ b/Results/extractinquotes2/history.txt @@ -0,0 +1,370 @@ +12/28/2016 9:39:01 PM,4277.567,0,0 +12/28/2016 9:39:02 PM,4779.952,0,100 +12/28/2016 9:39:03 PM,4856.952,0,200 +12/28/2016 9:39:03 PM,4856.952,0,300 +12/28/2016 9:39:05 PM,5082.875,0,400 +12/28/2016 9:39:07 PM,5096.875,0,500 +12/28/2016 9:39:12 PM,5096.886,0,600 +12/28/2016 9:39:15 PM,5096.892,0,700 +12/28/2016 9:39:20 PM,5097.886,0,800 +12/28/2016 9:39:23 PM,5097.892,0,900 +12/28/2016 9:39:25 PM,5097.892,0,1000 +12/28/2016 9:39:31 PM,5097.892,0,1100 +12/28/2016 9:39:33 PM,5099.886,0,1200 +12/28/2016 9:39:35 PM,5099.886,0,1300 +12/28/2016 9:39:37 PM,5099.886,0,1400 +12/28/2016 9:39:39 PM,5099.886,0,1500 +12/28/2016 9:39:42 PM,5099.886,0,1600 +12/28/2016 9:39:47 PM,5099.886,0,1700 +12/28/2016 9:39:51 PM,5099.886,0,1800 +12/28/2016 9:39:54 PM,5103.886,0,1900 +12/28/2016 9:39:56 PM,5103.886,0,2000 +12/28/2016 9:39:58 PM,5103.886,0,2100 +12/28/2016 9:40:00 PM,5103.886,0,2200 +12/28/2016 9:40:02 PM,5103.886,0,2300 +12/28/2016 9:40:04 PM,5103.886,0,2400 +12/28/2016 9:40:09 PM,5103.886,0,2500 +12/28/2016 9:40:11 PM,5103.886,0,2600 +12/28/2016 9:40:16 PM,5103.886,0,2700 +12/28/2016 9:40:19 PM,5103.886,0,2800 +12/28/2016 9:40:21 PM,5103.886,0,2900 +12/28/2016 9:40:27 PM,5103.886,0,3000 +12/28/2016 9:40:29 PM,5103.886,0,3100 +12/28/2016 9:40:32 PM,5103.886,0,3200 +12/28/2016 9:40:37 PM,5103.886,0,3300 +12/28/2016 9:40:41 PM,5103.886,0,3400 +12/28/2016 9:40:45 PM,5103.886,0,3500 +12/28/2016 9:40:49 PM,5103.886,0,3600 +12/28/2016 9:40:51 PM,5103.886,0,3700 +12/28/2016 9:40:54 PM,5103.886,0,3800 +12/28/2016 9:40:57 PM,5103.886,0,3900 +12/28/2016 9:41:00 PM,5103.886,0,4000 +12/28/2016 9:41:04 PM,5103.886,0,4100 +12/28/2016 9:41:06 PM,5103.886,0,4200 +12/28/2016 9:41:09 PM,5103.886,0,4300 +12/28/2016 9:41:12 PM,5103.886,0,4400 +12/28/2016 9:41:14 PM,5103.886,0,4500 +12/28/2016 9:41:18 PM,5103.886,0,4600 +12/28/2016 9:41:22 PM,5103.886,0,4700 +12/28/2016 9:41:24 PM,5103.886,0,4800 +12/28/2016 9:41:26 PM,5103.886,0,4900 +12/28/2016 9:41:29 PM,5103.886,0,5000 +12/28/2016 9:41:32 PM,5103.886,0,5100 +12/28/2016 9:41:36 PM,5103.886,0,5200 +12/28/2016 9:41:39 PM,5103.886,0,5300 +12/28/2016 9:41:42 PM,5103.886,0,5400 +12/28/2016 9:41:46 PM,5103.886,0,5500 +12/28/2016 9:41:50 PM,5103.886,0,5600 +12/28/2016 9:41:54 PM,5103.886,0,5700 +12/28/2016 9:41:58 PM,5103.889,0,5800 +12/28/2016 9:42:04 PM,5103.889,0,5900 +12/28/2016 9:42:09 PM,5103.889,0,6000 +12/28/2016 9:42:14 PM,5107,0,6100 +12/28/2016 9:42:21 PM,5121,0,6200 +12/28/2016 9:42:29 PM,5121,0,6300 +12/28/2016 9:42:39 PM,5121,0,6400 +12/28/2016 9:42:49 PM,5121,0,6500 +12/28/2016 9:42:58 PM,5121,0,6600 +12/28/2016 9:43:08 PM,5121,0,6700 +12/28/2016 9:43:17 PM,5121,0,6800 +12/28/2016 9:43:25 PM,5125.905,0,6900 +12/28/2016 9:43:31 PM,5125.905,0,7000 +12/28/2016 9:43:41 PM,5125.905,0,7100 +12/28/2016 9:43:49 PM,5126.905,0,7200 +12/28/2016 9:43:58 PM,5126.905,0,7300 +12/28/2016 9:44:06 PM,5126.905,0,7400 +12/28/2016 9:44:15 PM,5126.905,0,7500 +12/28/2016 9:44:23 PM,5126.905,0,7600 +12/28/2016 9:44:31 PM,5126.905,0,7700 +12/28/2016 9:44:41 PM,5126.905,0,7800 +12/28/2016 9:44:52 PM,5126.905,0,7900 +12/28/2016 9:45:04 PM,5126.905,0,8000 +12/28/2016 9:45:15 PM,5126.905,0,8100 +12/28/2016 9:45:25 PM,5126.905,0,8200 +12/28/2016 9:45:36 PM,5126.905,0,8300 +12/28/2016 9:45:44 PM,5126.905,0,8400 +12/28/2016 9:45:53 PM,5126.905,0,8500 +12/28/2016 9:46:00 PM,5126.905,0,8600 +12/28/2016 9:46:11 PM,5126.905,0,8700 +12/28/2016 9:46:22 PM,5126.905,0,8800 +12/28/2016 9:46:28 PM,5126.905,0,8900 +12/28/2016 9:46:35 PM,5126.905,0,9000 +12/28/2016 9:46:41 PM,5126.905,0,9100 +12/28/2016 9:46:47 PM,5126.905,0,9200 +12/28/2016 9:46:54 PM,5126.905,0,9300 +12/28/2016 9:47:06 PM,5126.905,0,9400 +12/28/2016 9:47:14 PM,5126.905,0,9500 +12/28/2016 9:47:23 PM,5126.905,0,9600 +12/28/2016 9:47:32 PM,5126.905,0,9700 +12/28/2016 9:47:40 PM,5126.905,0,9800 +12/28/2016 9:47:49 PM,5126.905,0,9900 +12/28/2016 9:47:57 PM,5126.905,0,10000 +12/28/2016 9:48:08 PM,5126.906,0,10100 +12/28/2016 9:48:19 PM,5126.906,0,10200 +12/28/2016 9:48:29 PM,5126.906,0,10300 +12/28/2016 9:48:39 PM,5126.906,0,10400 +12/28/2016 9:48:49 PM,5126.906,0,10500 +12/28/2016 9:49:00 PM,5126.906,0,10600 +12/28/2016 9:49:09 PM,5198.429,0,10700 +12/28/2016 9:49:14 PM,5358.505,0,10800 +12/28/2016 9:49:23 PM,5358.505,0,10900 +12/28/2016 9:49:30 PM,5358.511,0,11000 +12/28/2016 9:49:39 PM,5358.657,0,11100 +12/28/2016 9:49:45 PM,5358.657,0,11200 +12/28/2016 9:49:52 PM,5358.657,0,11300 +12/28/2016 9:50:00 PM,5358.657,0,11400 +12/28/2016 9:50:08 PM,5358.657,0,11500 +12/28/2016 9:50:15 PM,5358.657,0,11600 +12/28/2016 9:50:23 PM,5358.657,0,11700 +12/28/2016 9:50:31 PM,5358.717,0,11800 +12/28/2016 9:50:40 PM,5358.717,0,11900 +12/28/2016 9:50:48 PM,5358.717,0,12000 +12/28/2016 9:50:54 PM,5358.722,0,12100 +12/28/2016 9:51:03 PM,5358.745,0,12200 +12/28/2016 9:51:07 PM,5358.745,0,12300 +12/28/2016 9:51:12 PM,5358.789,0,12400 +12/28/2016 9:51:17 PM,5358.789,0,12500 +12/28/2016 9:51:21 PM,5358.789,0,12600 +12/28/2016 9:51:27 PM,5358.789,0,12700 +12/28/2016 9:51:32 PM,5358.794,0,12800 +12/28/2016 9:51:38 PM,5358.794,0,12900 +12/28/2016 9:51:43 PM,5358.794,0,13000 +12/28/2016 9:51:47 PM,5358.795,0,13100 +12/28/2016 9:51:49 PM,5358.795,0,13200 +12/28/2016 9:51:53 PM,5358.795,0,13300 +12/28/2016 9:51:56 PM,5358.795,0,13400 +12/28/2016 9:52:01 PM,5358.795,0,13500 +12/28/2016 9:52:05 PM,5358.795,0,13600 +12/28/2016 9:52:10 PM,5358.795,0,13700 +12/28/2016 9:52:14 PM,5358.805,0,13800 +12/28/2016 9:52:19 PM,5358.805,0,13900 +12/28/2016 9:52:24 PM,5368.799,0,14000 +12/28/2016 9:52:28 PM,5388.789,0,14100 +12/28/2016 9:52:33 PM,5388.792,0,14200 +12/28/2016 9:52:38 PM,5388.795,0,14300 +12/28/2016 9:52:42 PM,5388.798,0,14400 +12/28/2016 9:52:46 PM,5388.807,0,14500 +12/28/2016 9:52:51 PM,5388.807,0,14600 +12/28/2016 9:52:54 PM,5388.807,0,14700 +12/28/2016 9:52:57 PM,5388.807,0,14800 +12/28/2016 9:53:01 PM,5388.807,0,14900 +12/28/2016 9:53:05 PM,5388.816,0,15000 +12/28/2016 9:53:09 PM,5388.807,0,15100 +12/28/2016 9:53:15 PM,5388.81,0,15200 +12/28/2016 9:53:19 PM,5388.81,0,15300 +12/28/2016 9:53:23 PM,5388.81,0,15400 +12/28/2016 9:53:28 PM,5388.81,0,15500 +12/28/2016 9:53:32 PM,5388.81,0,15600 +12/28/2016 9:53:38 PM,5388.81,0,15700 +12/28/2016 9:53:42 PM,5388.81,0,15800 +12/28/2016 9:53:47 PM,5388.81,0,15900 +12/28/2016 9:53:51 PM,5388.81,0,16000 +12/28/2016 9:53:55 PM,5388.81,0,16100 +12/28/2016 9:53:59 PM,5388.816,0,16200 +12/28/2016 9:54:05 PM,5388.816,0,16300 +12/28/2016 9:54:09 PM,5388.816,0,16400 +12/28/2016 9:54:13 PM,5388.816,0,16500 +12/28/2016 9:54:18 PM,5388.816,0,16600 +12/28/2016 9:54:21 PM,5388.816,0,16700 +12/28/2016 9:54:25 PM,5388.816,0,16800 +12/28/2016 9:54:30 PM,5388.816,0,16900 +12/28/2016 9:54:36 PM,5388.816,0,17000 +12/28/2016 9:54:41 PM,5388.816,0,17100 +12/28/2016 9:54:45 PM,5388.816,0,17200 +12/28/2016 9:54:50 PM,5388.816,0,17300 +12/28/2016 9:54:54 PM,5388.816,0,17400 +12/28/2016 9:54:58 PM,5388.816,0,17500 +12/28/2016 9:55:02 PM,5388.816,0,17600 +12/28/2016 9:55:05 PM,5388.816,0,17700 +12/28/2016 9:55:10 PM,5388.816,0,17800 +12/28/2016 9:55:16 PM,5388.816,0,17900 +12/28/2016 9:55:21 PM,5388.816,0,18000 +12/28/2016 9:55:24 PM,5388.816,0,18100 +12/28/2016 9:55:28 PM,5388.816,0,18200 +12/28/2016 9:55:33 PM,5388.816,0,18300 +12/28/2016 9:55:37 PM,5388.816,0,18400 +12/28/2016 9:55:41 PM,5388.816,0,18500 +12/28/2016 9:55:45 PM,5388.816,0,18600 +12/28/2016 9:55:50 PM,5388.829,0,18700 +12/28/2016 9:55:56 PM,5388.829,0,18800 +12/28/2016 9:56:02 PM,5388.829,0,18900 +12/28/2016 9:56:08 PM,5388.829,0,19000 +12/28/2016 9:56:12 PM,5388.829,0,19100 +12/28/2016 9:56:16 PM,5388.829,0,19200 +12/28/2016 9:56:20 PM,5388.829,0,19300 +12/28/2016 9:56:25 PM,5388.829,0,19400 +12/28/2016 9:56:29 PM,5388.829,0,19500 +12/28/2016 9:56:32 PM,5388.829,0,19600 +12/28/2016 9:56:35 PM,5388.829,0,19700 +12/28/2016 9:56:39 PM,5388.829,0,19800 +12/28/2016 9:56:43 PM,5388.829,0,19900 +12/28/2016 9:56:47 PM,5388.829,0,20000 +12/28/2016 9:56:52 PM,5388.829,0,20100 +12/28/2016 9:56:56 PM,5388.829,0,20200 +12/28/2016 9:57:00 PM,5388.829,0,20300 +12/28/2016 9:57:04 PM,5388.829,0,20400 +12/28/2016 9:57:08 PM,5388.829,0,20500 +12/28/2016 9:57:11 PM,5388.829,0,20600 +12/28/2016 9:57:16 PM,5388.829,0,20700 +12/28/2016 9:57:22 PM,5388.829,0,20800 +12/28/2016 9:57:27 PM,5388.829,0,20900 +12/28/2016 9:57:31 PM,5388.829,0,21000 +12/28/2016 9:57:36 PM,5388.829,0,21100 +12/28/2016 9:57:42 PM,5388.829,0,21200 +12/28/2016 9:57:47 PM,5388.832,0,21300 +12/28/2016 9:57:51 PM,5388.832,0,21400 +12/28/2016 9:57:55 PM,5388.838,0,21500 +12/28/2016 9:58:00 PM,5388.838,0,21600 +12/28/2016 9:58:04 PM,5388.838,0,21700 +12/28/2016 9:58:07 PM,5388.838,0,21800 +12/28/2016 9:58:12 PM,5388.838,0,21900 +12/28/2016 9:58:17 PM,5388.838,0,22000 +12/28/2016 9:58:20 PM,5388.844,0,22100 +12/28/2016 9:58:25 PM,5388.844,0,22200 +12/28/2016 9:58:30 PM,5388.844,0,22300 +12/28/2016 9:58:35 PM,5388.844,0,22400 +12/28/2016 9:58:38 PM,5388.844,0,22500 +12/28/2016 9:58:42 PM,5388.844,0,22600 +12/28/2016 9:58:45 PM,5388.844,0,22700 +12/28/2016 9:58:49 PM,5388.844,0,22800 +12/28/2016 9:58:54 PM,5388.844,0,22900 +12/28/2016 9:58:57 PM,5388.844,0,23000 +12/28/2016 9:59:01 PM,5388.844,0,23100 +12/28/2016 9:59:08 PM,5388.844,0,23200 +12/28/2016 9:59:12 PM,5388.844,0,23300 +12/28/2016 9:59:17 PM,5388.844,0,23400 +12/28/2016 9:59:22 PM,5388.844,0,23500 +12/28/2016 9:59:26 PM,5388.844,0,23600 +12/28/2016 9:59:29 PM,5388.844,0,23700 +12/28/2016 9:59:34 PM,5388.844,0,23800 +12/28/2016 9:59:38 PM,5388.844,0,23900 +12/28/2016 9:59:44 PM,5388.844,0,24000 +12/28/2016 9:59:48 PM,5388.844,0,24100 +12/28/2016 9:59:51 PM,5388.844,0,24200 +12/28/2016 9:59:55 PM,5388.844,0,24300 +12/28/2016 9:59:58 PM,5388.844,0,24400 +12/28/2016 10:00:03 PM,5388.844,0,24500 +12/28/2016 10:00:07 PM,5388.844,0,24600 +12/28/2016 10:00:11 PM,5388.844,0,24700 +12/28/2016 10:00:15 PM,5388.844,0,24800 +12/28/2016 10:00:19 PM,5388.844,0,24900 +12/28/2016 10:00:24 PM,5388.844,0,25000 +12/28/2016 10:00:28 PM,5388.844,0,25100 +12/28/2016 10:00:33 PM,5388.844,0,25200 +12/28/2016 10:00:39 PM,5388.844,0,25300 +12/28/2016 10:00:43 PM,5388.844,0,25400 +12/28/2016 10:00:47 PM,5388.844,0,25500 +12/28/2016 10:00:52 PM,5388.844,0,25600 +12/28/2016 10:00:56 PM,5388.844,0,25700 +12/28/2016 10:01:00 PM,5388.844,0,25800 +12/28/2016 10:01:04 PM,5388.844,0,25900 +12/28/2016 10:01:09 PM,5388.844,0,26000 +12/28/2016 10:01:14 PM,5388.844,0,26100 +12/28/2016 10:01:18 PM,5388.844,0,26200 +12/28/2016 10:01:23 PM,5388.844,0,26300 +12/28/2016 10:01:27 PM,5388.844,0,26400 +12/28/2016 10:01:32 PM,5388.844,0,26500 +12/28/2016 10:01:36 PM,5388.844,0,26600 +12/28/2016 10:01:40 PM,5388.844,0,26700 +12/28/2016 10:01:44 PM,5388.844,0,26800 +12/28/2016 10:01:47 PM,5388.844,0,26900 +12/28/2016 10:01:52 PM,5388.844,0,27000 +12/28/2016 10:01:57 PM,5388.844,0,27100 +12/28/2016 10:02:03 PM,5388.844,0,27200 +12/28/2016 10:02:07 PM,5388.844,0,27300 +12/28/2016 10:02:10 PM,5388.844,0,27400 +12/28/2016 10:02:15 PM,5388.844,0,27500 +12/28/2016 10:02:20 PM,5388.844,0,27600 +12/28/2016 10:02:27 PM,5388.844,0,27700 +12/28/2016 10:02:31 PM,5388.844,0,27800 +12/28/2016 10:02:35 PM,5388.844,0,27900 +12/28/2016 10:02:40 PM,5388.846,0,28000 +12/28/2016 10:02:44 PM,5388.846,0,28100 +12/28/2016 10:02:48 PM,5388.846,0,28200 +12/28/2016 10:02:52 PM,5388.846,0,28300 +12/28/2016 10:02:56 PM,5388.846,0,28400 +12/28/2016 10:03:01 PM,5388.846,0,28500 +12/28/2016 10:03:06 PM,5388.846,0,28600 +12/28/2016 10:03:11 PM,5388.846,0,28700 +12/28/2016 10:03:15 PM,5388.846,0,28800 +12/28/2016 10:03:19 PM,5388.846,0,28900 +12/28/2016 10:03:23 PM,5388.846,0,29000 +12/28/2016 10:03:28 PM,5388.846,0,29100 +12/28/2016 10:03:33 PM,5388.846,0,29200 +12/28/2016 10:03:37 PM,5388.846,0,29300 +12/28/2016 10:03:42 PM,5388.846,0,29400 +12/28/2016 10:03:46 PM,5388.846,0,29500 +12/28/2016 10:03:51 PM,5388.846,0,29600 +12/28/2016 10:03:55 PM,5388.846,0,29700 +12/28/2016 10:04:00 PM,5388.846,0,29800 +12/28/2016 10:04:04 PM,5388.846,0,29900 +12/28/2016 10:04:09 PM,5388.846,0,30000 +12/28/2016 10:04:14 PM,5388.838,0,30100 +12/28/2016 10:04:19 PM,5388.838,0,30200 +12/28/2016 10:04:22 PM,5388.838,0,30300 +12/28/2016 10:04:26 PM,5388.838,0,30400 +12/28/2016 10:04:30 PM,5388.838,0,30500 +12/28/2016 10:04:34 PM,5388.838,0,30600 +12/28/2016 10:04:38 PM,5388.838,0,30700 +12/28/2016 10:04:42 PM,5388.838,0,30800 +12/28/2016 10:04:46 PM,5388.838,0,30900 +12/28/2016 10:04:51 PM,5388.838,0,31000 +12/28/2016 10:04:54 PM,5388.838,0,31100 +12/28/2016 10:04:58 PM,5388.838,0,31200 +12/28/2016 10:05:02 PM,5388.838,0,31300 +12/28/2016 10:05:07 PM,5388.838,0,31400 +12/28/2016 10:05:12 PM,5388.838,0,31500 +12/28/2016 10:05:16 PM,5388.838,0,31600 +12/28/2016 10:05:22 PM,5388.838,0,31700 +12/28/2016 10:05:27 PM,5388.838,0,31800 +12/28/2016 10:05:31 PM,5388.838,0,31900 +12/28/2016 10:05:35 PM,5388.838,0,32000 +12/28/2016 10:05:40 PM,5388.838,0,32100 +12/28/2016 10:05:44 PM,5388.838,0,32200 +12/28/2016 10:05:47 PM,5388.838,0,32300 +12/28/2016 10:05:50 PM,5388.838,0,32400 +12/28/2016 10:05:54 PM,5388.838,0,32500 +12/28/2016 10:05:58 PM,5388.838,0,32600 +12/28/2016 10:06:02 PM,5388.838,0,32700 +12/28/2016 10:06:08 PM,5388.838,0,32800 +12/28/2016 10:06:12 PM,5388.844,0,32900 +12/28/2016 10:06:16 PM,5388.844,0,33000 +12/28/2016 10:06:20 PM,5388.844,0,33100 +12/28/2016 10:06:25 PM,5388.844,0,33200 +12/28/2016 10:06:30 PM,5388.844,0,33300 +12/28/2016 10:06:34 PM,5388.844,0,33400 +12/28/2016 10:06:38 PM,5388.844,0,33500 +12/28/2016 10:06:42 PM,5388.844,0,33600 +12/28/2016 10:06:46 PM,5388.844,0,33700 +12/28/2016 10:06:51 PM,5388.844,0,33800 +12/28/2016 10:06:56 PM,5388.844,0,33900 +12/28/2016 10:07:02 PM,5388.844,0,34000 +12/28/2016 10:07:08 PM,5388.844,0,34100 +12/28/2016 10:07:12 PM,5388.844,0,34200 +12/28/2016 10:07:18 PM,5388.844,0,34300 +12/28/2016 10:07:21 PM,5388.844,0,34400 +12/28/2016 10:07:25 PM,5388.844,0,34500 +12/28/2016 10:07:31 PM,5388.844,0,34600 +12/28/2016 10:07:36 PM,5388.844,0,34700 +12/28/2016 10:07:41 PM,5388.844,0,34800 +12/28/2016 10:07:44 PM,5388.844,0,34900 +12/28/2016 10:07:48 PM,5388.844,0,35000 +12/28/2016 10:07:54 PM,5388.844,0,35100 +12/28/2016 10:07:58 PM,5388.844,0,35200 +12/28/2016 10:08:03 PM,5388.844,0,35300 +12/28/2016 10:08:07 PM,5388.844,0,35400 +12/28/2016 10:08:13 PM,5388.844,0,35500 +12/28/2016 10:08:17 PM,5388.844,0,35600 +12/28/2016 10:08:21 PM,5388.844,0,35700 +12/28/2016 10:08:27 PM,5388.844,0,35800 +12/28/2016 10:08:30 PM,5388.844,0,35900 +12/28/2016 10:08:35 PM,5388.844,0,36000 +12/28/2016 10:08:40 PM,5388.844,0,36100 +12/28/2016 10:08:44 PM,5388.844,0,36200 +12/28/2016 10:08:48 PM,5388.844,0,36300 +12/28/2016 10:08:52 PM,5388.844,0,36400 +12/28/2016 10:08:56 PM,5388.844,0,36500 +12/28/2016 10:08:59 PM,5388.844,0,36600 +12/28/2016 10:09:03 PM,5388.844,0,36700 +12/28/2016 10:09:07 PM,5388.844,0,36800 +12/28/2016 10:09:11 PM,5388.844,0,36900 \ No newline at end of file From 3b335931a6322bc22efdf4cc659cd38d5ec5d8e3 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Thu, 29 Dec 2016 09:42:19 -0500 Subject: [PATCH 19/42] Added screenshots. --- .../extractinquotes2/extract-in-quotes-2-2.png | Bin 0 -> 31574 bytes .../extractinquotes2/extract-in-quotes-2-3.png | Bin 0 -> 16990 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Results/extractinquotes2/extract-in-quotes-2-2.png create mode 100644 Results/extractinquotes2/extract-in-quotes-2-3.png diff --git a/Results/extractinquotes2/extract-in-quotes-2-2.png b/Results/extractinquotes2/extract-in-quotes-2-2.png new file mode 100644 index 0000000000000000000000000000000000000000..4e66ca43d5e8b584e56457ea941d11e0b701f798 GIT binary patch literal 31574 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 literal 0 HcmV?d00001 diff --git a/Results/extractinquotes2/extract-in-quotes-2-3.png b/Results/extractinquotes2/extract-in-quotes-2-3.png new file mode 100644 index 0000000000000000000000000000000000000000..04f290b7dcff4573e0fbb20b9ea8bc114122c61f GIT binary patch literal 16990 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 Date: Wed, 25 Jan 2017 13:58:49 -0500 Subject: [PATCH 20/42] Added null/empty string check. This fixes an error in StringFunction if target string ends in a space character. --- AIProgrammer.Functions/Concrete/StringFunction.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/AIProgrammer.Functions/Concrete/StringFunction.cs b/AIProgrammer.Functions/Concrete/StringFunction.cs index d75859d..73ec376 100755 --- a/AIProgrammer.Functions/Concrete/StringFunction.cs +++ b/AIProgrammer.Functions/Concrete/StringFunction.cs @@ -51,7 +51,10 @@ public string Generate(IGeneticAlgorithm ga) Dictionary terms = new Dictionary(); foreach (string part in parts) { - terms[part] = part; + if (!string.IsNullOrEmpty(part)) + { + terms[part] = part; + } } foreach (string term in terms.Values) From f76902f3f59a447e34dd20998aff445701c4d0f0 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Thu, 4 May 2017 20:53:29 -0400 Subject: [PATCH 21/42] Update README.md --- README.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7a2b633..ac31b2e 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,10 @@ AI-Programmer ========= -Read the full article at: -http://www.primaryobjects.com/2013/01/27/using-artificial-intelligence-to-write-self-modifying-improving-programs/ - +Read the full article [Using Artificial Intelligence to Write Self-Modifying/Improving Programs](http://www.primaryobjects.com/2013/01/27/using-artificial-intelligence-to-write-self-modifying-improving-programs/) + +See also: [BF-Programmer: A Counterintuitive Approach to Autonomously Building Simplistic Programs Using Genetic Algorithms](https://drive.google.com/open?id=0B1ZVyY5eRQNibTl0Q3NIcVV4VlU) + AI-Programmer is an experiment with using artificial intelligence and genetic algorithms to automatically generate programs in the Brainf**k programming language. Successfully created [programs](https://github.com/primaryobjects/AI-Programmer/tree/master/Results) by the AI include: hello world, hello , addition, subtraction, reversing a string, fibonnaci sequence, 99 bottles of beer on the wall, and more. It's getting smarter. In short, it's an AI genetic algorithm implementation with self modifying code. ## Motivation @@ -163,6 +164,8 @@ http://www.primaryobjects.com/CMS/Article150 Self-Programming Artificial Intelligence Learns to Use Functions http://www.primaryobjects.com/CMS/Article163 +[BF-Programmer: A Counterintuitive Approach to Autonomously Building Simplistic Programs Using Genetic Algorithms](https://drive.google.com/open?id=0B1ZVyY5eRQNibTl0Q3NIcVV4VlU) + View @ GitHub https://github.com/primaryobjects/ai-programmer From b436988fcc480559f36b4d4b07742e5edd84fe3a Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Thu, 4 May 2017 20:55:26 -0400 Subject: [PATCH 22/42] Update README.md --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index ac31b2e..847a90d 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,7 @@ AI-Programmer ========= -Read the full article [Using Artificial Intelligence to Write Self-Modifying/Improving Programs](http://www.primaryobjects.com/2013/01/27/using-artificial-intelligence-to-write-self-modifying-improving-programs/) - -See also: [BF-Programmer: A Counterintuitive Approach to Autonomously Building Simplistic Programs Using Genetic Algorithms](https://drive.google.com/open?id=0B1ZVyY5eRQNibTl0Q3NIcVV4VlU) +Read the full article [Using Artificial Intelligence to Write Self-Modifying/Improving Programs](http://www.primaryobjects.com/2013/01/27/using-artificial-intelligence-to-write-self-modifying-improving-programs/) and [research paper](https://drive.google.com/open?id=0B1ZVyY5eRQNibTl0Q3NIcVV4VlU "BF-Programmer: A Counterintuitive Approach to Autonomously Building Simplistic Programs Using Genetic Algorithms"). AI-Programmer is an experiment with using artificial intelligence and genetic algorithms to automatically generate programs in the Brainf**k programming language. Successfully created [programs](https://github.com/primaryobjects/AI-Programmer/tree/master/Results) by the AI include: hello world, hello , addition, subtraction, reversing a string, fibonnaci sequence, 99 bottles of beer on the wall, and more. It's getting smarter. In short, it's an AI genetic algorithm implementation with self modifying code. @@ -164,6 +162,7 @@ http://www.primaryobjects.com/CMS/Article150 Self-Programming Artificial Intelligence Learns to Use Functions http://www.primaryobjects.com/CMS/Article163 +Reseach Paper [BF-Programmer: A Counterintuitive Approach to Autonomously Building Simplistic Programs Using Genetic Algorithms](https://drive.google.com/open?id=0B1ZVyY5eRQNibTl0Q3NIcVV4VlU) View @ GitHub From 00acb7de91949be2ea3c49d3c28341dd1eda18e5 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Thu, 4 May 2017 20:56:19 -0400 Subject: [PATCH 23/42] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 847a90d..a985906 100644 --- a/README.md +++ b/README.md @@ -162,7 +162,7 @@ http://www.primaryobjects.com/CMS/Article150 Self-Programming Artificial Intelligence Learns to Use Functions http://www.primaryobjects.com/CMS/Article163 -Reseach Paper +Reseach Paper
[BF-Programmer: A Counterintuitive Approach to Autonomously Building Simplistic Programs Using Genetic Algorithms](https://drive.google.com/open?id=0B1ZVyY5eRQNibTl0Q3NIcVV4VlU) View @ GitHub From aa0c76563c9d4abfaf9fe1337034c0dd90e7ecd1 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Thu, 4 May 2017 20:57:07 -0400 Subject: [PATCH 24/42] Update README.md --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a985906..3791d4c 100644 --- a/README.md +++ b/README.md @@ -152,7 +152,6 @@ Experiment and have fun! Kory Becker http://www.primaryobjects.com/kory-becker -Read @ Primary Objects Using Artificial Intelligence to Write Self-Modifying/Improving Programs http://www.primaryobjects.com/CMS/Article149 @@ -162,8 +161,8 @@ http://www.primaryobjects.com/CMS/Article150 Self-Programming Artificial Intelligence Learns to Use Functions http://www.primaryobjects.com/CMS/Article163 -Reseach Paper
-[BF-Programmer: A Counterintuitive Approach to Autonomously Building Simplistic Programs Using Genetic Algorithms](https://drive.google.com/open?id=0B1ZVyY5eRQNibTl0Q3NIcVV4VlU) +BF-Programmer: A Counterintuitive Approach to Autonomously Building Simplistic Programs Using Genetic Algorithms +https://drive.google.com/open?id=0B1ZVyY5eRQNibTl0Q3NIcVV4VlU View @ GitHub https://github.com/primaryobjects/ai-programmer From 5e505780e9365e5375582d5019366ae606204c16 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Thu, 4 May 2017 20:57:55 -0400 Subject: [PATCH 25/42] Update README.md --- README.md | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 3791d4c..8754efc 100644 --- a/README.md +++ b/README.md @@ -152,17 +152,13 @@ Experiment and have fun! Kory Becker http://www.primaryobjects.com/kory-becker -Using Artificial Intelligence to Write Self-Modifying/Improving Programs -http://www.primaryobjects.com/CMS/Article149 +[Using Artificial Intelligence to Write Self-Modifying/Improving Programs](http://www.primaryobjects.com/CMS/Article149) -Pushing the Limits of Self-Programming Artificial Intelligence -http://www.primaryobjects.com/CMS/Article150 +[Pushing the Limits of Self-Programming Artificial Intelligence](http://www.primaryobjects.com/CMS/Article150) -Self-Programming Artificial Intelligence Learns to Use Functions -http://www.primaryobjects.com/CMS/Article163 +[Self-Programming Artificial Intelligence Learns to Use Functions](http://www.primaryobjects.com/CMS/Article163) -BF-Programmer: A Counterintuitive Approach to Autonomously Building Simplistic Programs Using Genetic Algorithms -https://drive.google.com/open?id=0B1ZVyY5eRQNibTl0Q3NIcVV4VlU +[BF-Programmer: A Counterintuitive Approach to Autonomously Building Simplistic Programs Using Genetic Algorithms](https://drive.google.com/open?id=0B1ZVyY5eRQNibTl0Q3NIcVV4VlU) View @ GitHub https://github.com/primaryobjects/ai-programmer From 9197ce02ad4c076b8548ff46ea1354f293d0965c Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Tue, 25 Jul 2017 11:40:44 -0400 Subject: [PATCH 26/42] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8754efc..10578c2 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,9 @@ AI-Programmer ========= -Read the full article [Using Artificial Intelligence to Write Self-Modifying/Improving Programs](http://www.primaryobjects.com/2013/01/27/using-artificial-intelligence-to-write-self-modifying-improving-programs/) and [research paper](https://drive.google.com/open?id=0B1ZVyY5eRQNibTl0Q3NIcVV4VlU "BF-Programmer: A Counterintuitive Approach to Autonomously Building Simplistic Programs Using Genetic Algorithms"). +Read the full article [Using Artificial Intelligence to Write Self-Modifying/Improving Programs](http://www.primaryobjects.com/2013/01/27/using-artificial-intelligence-to-write-self-modifying-improving-programs/) + +Read the research paper [BF-Programmer: A Counterintuitive Approach to Autonomously Building Simplistic Programs Using Genetic Algorithms](http://www.primaryobjects.com/bf-programmer-2017.pdf "BF-Programmer: A Counterintuitive Approach to Autonomously Building Simplistic Programs Using Genetic Algorithms"). AI-Programmer is an experiment with using artificial intelligence and genetic algorithms to automatically generate programs in the Brainf**k programming language. Successfully created [programs](https://github.com/primaryobjects/AI-Programmer/tree/master/Results) by the AI include: hello world, hello , addition, subtraction, reversing a string, fibonnaci sequence, 99 bottles of beer on the wall, and more. It's getting smarter. In short, it's an AI genetic algorithm implementation with self modifying code. From ead7d43bc2d08512f9096e19a23859fe827109cb Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Tue, 25 Jul 2017 11:41:55 -0400 Subject: [PATCH 27/42] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 10578c2..07ff3a5 100644 --- a/README.md +++ b/README.md @@ -160,7 +160,7 @@ http://www.primaryobjects.com/kory-becker [Self-Programming Artificial Intelligence Learns to Use Functions](http://www.primaryobjects.com/CMS/Article163) -[BF-Programmer: A Counterintuitive Approach to Autonomously Building Simplistic Programs Using Genetic Algorithms](https://drive.google.com/open?id=0B1ZVyY5eRQNibTl0Q3NIcVV4VlU) +[BF-Programmer: A Counterintuitive Approach to Autonomously Building Simplistic Programs Using Genetic Algorithms](http://www.primaryobjects.com/bf-programmer-2017.pdf) View @ GitHub https://github.com/primaryobjects/ai-programmer From 280880d74ce88e82b9c8d8b2132ac46fc9bfe988 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Wed, 30 Aug 2017 09:30:13 -0400 Subject: [PATCH 28/42] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 07ff3a5..e425b5c 100644 --- a/README.md +++ b/README.md @@ -5,13 +5,13 @@ Read the full article [Using Artificial Intelligence to Write Self-Modifying/Imp Read the research paper [BF-Programmer: A Counterintuitive Approach to Autonomously Building Simplistic Programs Using Genetic Algorithms](http://www.primaryobjects.com/bf-programmer-2017.pdf "BF-Programmer: A Counterintuitive Approach to Autonomously Building Simplistic Programs Using Genetic Algorithms"). -AI-Programmer is an experiment with using artificial intelligence and genetic algorithms to automatically generate programs in the Brainf**k programming language. Successfully created [programs](https://github.com/primaryobjects/AI-Programmer/tree/master/Results) by the AI include: hello world, hello , addition, subtraction, reversing a string, fibonnaci sequence, 99 bottles of beer on the wall, and more. It's getting smarter. In short, it's an AI genetic algorithm implementation with self modifying code. +AI-Programmer is an experiment with using artificial intelligence and genetic algorithms to automatically generate programs. Successfully created [programs](https://github.com/primaryobjects/AI-Programmer/tree/master/Results) by the AI include: hello world, hello , addition, subtraction, reversing a string, fibonnaci sequence, 99 bottles of beer on the wall, and more. It's getting smarter. In short, it's an AI genetic algorithm implementation with self modifying code. ## Motivation Is it possible for a computer to write its own programs? Need a word processor? Let the computer create one for you. Need a screen capture tool? Let the computer create one for you. Take it a step further, and let the computer create programs that simplify your life, that you didn't even know you needed! -This is the idea behind the AI-Programmer experiment. The goal is to ultimately create a computer program that can write its own computer programs to solve specific computational problems. While the capability of a computer deciding what type of program to write is beyond our current means, we can still have a computer generate programs to solve very specific tasks, such as outputting the text, "Hello World". First, we need to choose a target programming language. For this experiment, we'll choose [Brainfuck](http://en.wikipedia.org/wiki/Brainfuck) (BF). +This is the idea behind the AI-Programmer experiment. The goal is to ultimately create a computer program that can write its own computer programs to solve specific computational problems. While the capability of a computer deciding what type of program to write is beyond our current means, we can still have a computer generate programs to solve very specific tasks, such as outputting the text, "Hello World". AI Programmer uses an esoteric [programming language](http://en.wikipedia.org/wiki/Brainfuck) for generating software programs. ## Details @@ -137,7 +137,7 @@ Set the App.config to use BrainPlus, so the AI has access to sub-routine instruc ``` - + ``` From 84caa433a8b4880b72e0b42f7a23cc7c970acc71 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Wed, 30 Aug 2017 09:32:17 -0400 Subject: [PATCH 29/42] Update README.md --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index e425b5c..e715566 100644 --- a/README.md +++ b/README.md @@ -15,14 +15,14 @@ This is the idea behind the AI-Programmer experiment. The goal is to ultimately ## Details -The BF programming language was selected due to the fact that it consists of only 8 instructions, while being Turing complete. Theoretically, it is capable of solving any computational problem. This makes it easy to develop an interpreter, capable of running the AI-generated programs in a simulated environment. In this manner, each generated program may be executed and its performance ranked as a fitness score. Since the AI is using a Turing complete programming language, the AI itself, is also theoretically capable of solving any computational problem. However, for this experiment, the AI will focus on outputting a simple string to the console. +The underlying programming language consists of only 8 instructions, while being Turing complete. Theoretically, it is capable of solving any computational problem. This makes it easy to develop an interpreter, capable of running the AI-generated programs in a simulated environment. In this manner, each generated program may be executed and its performance ranked as a fitness score. Since the AI is using a Turing complete programming language, the AI itself, is also theoretically capable of solving any computational problem. However, for this experiment, the AI will focus on outputting a simple string to the console. ## How It Works AI-Programmer works as follows: - A genome consists of an array of doubles. -- Each gene corresponds to an instruction in the BF programming language. +- Each gene corresponds to an instruction in the programming language. - Start with a population of random genomes. - Decode each genome into a resulting program by converting each double into its corresponding instruction and execute the program. - Get each program's fitness score, based upon the output it writes to the console (if any), and rank them. @@ -64,7 +64,7 @@ The AI successfully wrote a program to output "hi" after 5,700 generations in ab While the above code contains parsing errors, such as non-matching brackets, our simulation interpreter computes the result up until the program fails, so in the above case, the syntax error (which is later on in the code, after a solution is found) doesn't impact the fitness. -You can try pasting the above code into a BF [interpreter](http://www.iamcal.com/misc/bf_debug/). Click "Start Debugger", ignore the warnings, then click Run To Breakpoint. Note the output. +You can try pasting the above code into an online [interpreter](http://www.iamcal.com/misc/bf_debug/). Click "Start Debugger", ignore the warnings, then click Run To Breakpoint. Note the output. If we trim off the excess code, we see the following syntactically-valid code: @@ -102,7 +102,7 @@ More complex programs could likely be generated while using faster PCs. Next ste ## Quick-Start Guide to Using the Code -By default, the code is configured to use the BF Classic instruction set and to write a program to output a string. To change the string that is generated, simply expand the "Private Variables" section and change the text for TargetString to your desired value. +By default, the code is configured to use the Classic instruction set and to write a program to output a string. To change the string that is generated, simply expand the "Private Variables" section and change the text for TargetString to your desired value. ``` private static TargetParams _targetParams = new TargetParams { TargetString = "hello world" }; From 56ee953395a8583275ff9beaa1d23c8839e14a89 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Wed, 30 Aug 2017 09:33:44 -0400 Subject: [PATCH 30/42] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e715566..3fcd07b 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ AI-Programmer is an experiment with using artificial intelligence and genetic al Is it possible for a computer to write its own programs? Need a word processor? Let the computer create one for you. Need a screen capture tool? Let the computer create one for you. Take it a step further, and let the computer create programs that simplify your life, that you didn't even know you needed! -This is the idea behind the AI-Programmer experiment. The goal is to ultimately create a computer program that can write its own computer programs to solve specific computational problems. While the capability of a computer deciding what type of program to write is beyond our current means, we can still have a computer generate programs to solve very specific tasks, such as outputting the text, "Hello World". AI Programmer uses an esoteric [programming language](http://en.wikipedia.org/wiki/Brainfuck) for generating software programs. +This is the idea behind the AI-Programmer experiment. The goal is to ultimately create a computer program that can write its own computer programs to solve specific computational problems. While the capability of a computer deciding what type of program to write is beyond our current means, we can still have a computer generate programs to solve very specific tasks, such as outputting the text, "Hello World". AI Programmer uses an esoteric programming language for generating software programs. ## Details From 3d25559c90b1a30eb918ed2b1bab3720d55a47f5 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Mon, 4 Jun 2018 17:22:50 -0400 Subject: [PATCH 31/42] Added callback event for when a function solves a step. Allows for client code to output the program code generated so far. Reset genomeSize when a function completes a step. Display minutes and seconds in status. --- .../Concrete/StringFunction.cs | 7 +++++- .../Concrete/StringFunctionChunk.cs | 7 +++++- AIProgrammer.Managers/GAManager.cs | 13 ++++++++--- AIProgrammer/Program.cs | 23 +++++++++++++++++-- 4 files changed, 43 insertions(+), 7 deletions(-) diff --git a/AIProgrammer.Functions/Concrete/StringFunction.cs b/AIProgrammer.Functions/Concrete/StringFunction.cs index 73ec376..447d5cd 100755 --- a/AIProgrammer.Functions/Concrete/StringFunction.cs +++ b/AIProgrammer.Functions/Concrete/StringFunction.cs @@ -19,12 +19,14 @@ public class StringFunction : IFunction private double _mutationRate; private int _genomeSize; private GAFunction _fitnessFunc; + private Action _onStepComplete; private OnGeneration _generationFunc; private TargetParams _targetParams; - public StringFunction(Func getFitnessMethod, GAStatus bestStatus, GAFunction fitnessFunc, OnGeneration generationFunc, double crossoverRate, double mutationRate, int genomeSize, TargetParams targetParams) + public StringFunction(Func getFitnessMethod, Action onStepComplete, GAStatus bestStatus, GAFunction fitnessFunc, OnGeneration generationFunc, double crossoverRate, double mutationRate, int genomeSize, TargetParams targetParams) { _getFitnessFunc = getFitnessMethod; + _onStepComplete = onStepComplete; _bestStatus = bestStatus; _crossoverRate = crossoverRate; _mutationRate = mutationRate; @@ -79,6 +81,9 @@ public string Generate(IGeneticAlgorithm ga) _bestStatus.LastChangeDate = DateTime.Now; _bestStatus.Program = ""; _bestStatus.Ticks = 0; + + // Notify parent of progress. + _onStepComplete(appendCode, term); } // Restore target string. diff --git a/AIProgrammer.Functions/Concrete/StringFunctionChunk.cs b/AIProgrammer.Functions/Concrete/StringFunctionChunk.cs index d495460..fea2b66 100644 --- a/AIProgrammer.Functions/Concrete/StringFunctionChunk.cs +++ b/AIProgrammer.Functions/Concrete/StringFunctionChunk.cs @@ -31,13 +31,15 @@ public class StringFunctionChunk : IFunction private double _mutationRate; private int _genomeSize; private GAFunction _fitnessFunc; + private Action _onStepComplete; private OnGeneration _generationFunc; private TargetParams _targetParams; private int _chunkSize; - public StringFunctionChunk(Func getFitnessMethod, GAStatus bestStatus, GAFunction fitnessFunc, OnGeneration generationFunc, double crossoverRate, double mutationRate, int genomeSize, TargetParams targetParams, int chunkSize = 4) + public StringFunctionChunk(Func getFitnessMethod, Action onStepComplete, GAStatus bestStatus, GAFunction fitnessFunc, OnGeneration generationFunc, double crossoverRate, double mutationRate, int genomeSize, TargetParams targetParams, int chunkSize = 4) { _getFitnessFunc = getFitnessMethod; + _onStepComplete = onStepComplete; _bestStatus = bestStatus; _crossoverRate = crossoverRate; _mutationRate = mutationRate; @@ -111,6 +113,9 @@ public string Generate(IGeneticAlgorithm ga) _bestStatus.LastChangeDate = DateTime.Now; _bestStatus.Program = ""; _bestStatus.Ticks = 0; + + // Notify parent of progress. + _onStepComplete(appendCode, term); } // Restore target string. diff --git a/AIProgrammer.Managers/GAManager.cs b/AIProgrammer.Managers/GAManager.cs index 1dc26d7..36415fd 100644 --- a/AIProgrammer.Managers/GAManager.cs +++ b/AIProgrammer.Managers/GAManager.cs @@ -25,10 +25,17 @@ public static string Run(IGeneticAlgorithm iga, GAFunction fitnessFunc, OnGenera { // Perform any additional setup for this fitness. setupFunc(); + } + + try + { + // Delete any existing dat file. + File.Delete(Directory.GetCurrentDirectory() + "\\my-genetic-algorithm.dat"); + } + catch (Exception excep) + { + Console.WriteLine("Unable to delete " + Directory.GetCurrentDirectory() + "\\my-genetic-algorithm.dat\n" + excep.Message); } - - // Delete any existing dat file. - File.Delete(Directory.GetCurrentDirectory() + "\\my-genetic-algorithm.dat"); // Start a new genetic algorithm. ga.GAParams.Elitism = true; diff --git a/AIProgrammer/Program.cs b/AIProgrammer/Program.cs index e9c8197..fc1f379 100755 --- a/AIProgrammer/Program.cs +++ b/AIProgrammer/Program.cs @@ -44,10 +44,11 @@ class Program private static int _maxIterationCount = 5000; // Max iterations a program may run before being killed (prevents infinite loops). private static int _expandAmount = 0; // The max genome size will expand by this amount, every _expandRate iterations (may help learning). Set to 0 to disable. private static int _expandRate = 5000; // The max genome size will expand by _expandAmount, at this interval of generations. + private static int _originalGenomeSize = _genomeSize; #endregion - private static IFunction _functionGenerator = null; //new StringFunction(() => GetFitnessMethod(), _bestStatus, fitnessFunction, OnGeneration, _crossoverRate, _mutationRate, _genomeSize, _targetParams); /* Functions require setting BrainfuckVersion=2 in App.config */ + private static IFunction _functionGenerator = null; //new StringFunction(() => GetFitnessMethod(), (program, param) => OnFunctionStepComplete(program, param), _bestStatus, fitnessFunction, OnGeneration, _crossoverRate, _mutationRate, _genomeSize, _targetParams); /* Functions require setting BrainfuckVersion=2 in App.config */ /// /// Selects the type of fitness algorithm to use (Hello World solutions, Calculation solutions, etc). @@ -67,6 +68,24 @@ private static IFitness GetFitnessMethod() return new StringStrictFitness(_ga, _maxIterationCount, _targetParams.TargetString, _appendCode); } + /// + /// Callback handler for each time a function completes solving a step of its process. For example, solving a word within a sentence, etc. + /// + /// Complete append code generated so far. This can be set as the value for _appendCode to generate programs. + /// Optional parameter supplied by Function to indicate what has been solved (i.e., the term, sentence, numeric value, etc). + private static void OnFunctionStepComplete(string program, object param) + { + // Reset genome size back to its original value for subsequent solving steps. + _genomeSize = _originalGenomeSize; + _ga.GAParams.GenomeSize = _genomeSize; + + // Reset timer. + _startTime = DateTime.Now; + + // Display generated code so far. + Console.WriteLine(param.ToString() + "\n" + program); + } + #region Worker Methods /// @@ -77,7 +96,7 @@ private static void OnGeneration(GA ga) if (_bestStatus.Iteration++ > 1000) { _bestStatus.Iteration = 0; - Console.WriteLine("Best Fitness: " + _bestStatus.TrueFitness + "/" + _targetParams.TargetFitness + " " + Math.Round(_bestStatus.TrueFitness / _targetParams.TargetFitness * 100, 2) + "%, Ticks: " + _bestStatus.Ticks + ", Total Ticks: " + _bestStatus.TotalTicks + ", Running: " + Math.Round((DateTime.Now - _startTime).TotalMinutes) + "m, Size: " + _genomeSize + ", Best Output: " + _bestStatus.Output + ", Changed: " + _bestStatus.LastChangeDate.ToString() + ", Program: " + _bestStatus.Program); + Console.WriteLine("Best Fitness: " + _bestStatus.TrueFitness + "/" + _targetParams.TargetFitness + " " + Math.Round(_bestStatus.TrueFitness / _targetParams.TargetFitness * 100, 2) + "%, Ticks: " + _bestStatus.Ticks + ", Total Ticks: " + _bestStatus.TotalTicks + ", Running: " + Math.Floor((DateTime.Now - _startTime).TotalSeconds / 60) + "m " + Math.Round(((DateTime.Now - _startTime).TotalSeconds % 60)) + "s, Size: " + _genomeSize + ", Best Output: " + _bestStatus.Output + ", Changed: " + _bestStatus.LastChangeDate.ToString() + ", Program: " + _bestStatus.Program); ga.Save("my-genetic-algorithm.dat"); } From 5d02c2dd37fdef01781ce92259d15888b850a3e2 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Mon, 4 Jun 2018 17:32:43 -0400 Subject: [PATCH 32/42] Optimized AlphabetFunctions. --- AIProgrammer.Managers/CommonManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AIProgrammer.Managers/CommonManager.cs b/AIProgrammer.Managers/CommonManager.cs index 68ffae8..b20cdd9 100644 --- a/AIProgrammer.Managers/CommonManager.cs +++ b/AIProgrammer.Managers/CommonManager.cs @@ -79,7 +79,7 @@ public static class CommonManager /// ... /// return new StringStrictFitness(_ga, _maxIterationCount, _targetParams.TargetString, _appendCode); /// - public static string AlphabetFunctions = "6+.>>[->>>.+-++><<+.[-]><.<+-+[...-+[++.+-.<+]+<[-@6-+++.->[[--..>->--<>+++.[[-.+.>.<.<.><[+,+.--<[<.@>6+++.>-[+[.-[-[-][.-]+..+>--++>-].<>.>.->+[..]]-<@---6++++.>-++-[>-+>++[[+-[-.[]<>..[<--]..<]<>>[-,.@-7---+---------.>>[.>>+.>.+>.>>.[+,>>.].>...-<-@>>+-+[6+++[+++.[]]>[.]<.-.-.+<.<.]---<.>>[-+>[<+[.@6++++++<<>>+.+[--[-]-]-[..][[[>-.-.[-<.]][]>..>.-,@7--------<>.>[-..,.+-.+[[]...+++[++-<<++<+]<>]<>,[@7-><------.[[+]+]]].....[[]+<[-><<>++[-[<-<].<<>->@6++++++++><><++.+>-<->>[>>++>[-]>.>......-...[-,.[@-7-----.>><>[-[-]-]]@><7----.[]>.>....+.-<+.->+><-,-]]-+.+...<>.<+[]]8<@6--7---.>->+-[>..->+>>.[<->-.-.....+<>+.[>>.>-[]->@+>[,++<>+.+--.>>.>>....<.-->+[+<<[+]<>.-<.]]7--.-+@>6+++++++++++++++.-++[-[-]-[+[-[+-+--+--]..<.,<[,>@8----------------.>[+-[-<>.>++><]+<..[<-++]>[--],-@><----[[[+]>1+[7+.--<[-[-[[++-,-+[+].<.[<<-+<<[[+,@8[[++++[+-+7++.++>[]>+>><[>-.++.<+[+-.[+[<[[<++.+[@8------------->+<>+<.[]->[>..-><.>..<[.->>[]-]]9<.@7++><++.[]+-.>+.<[-[..[[-]<.].]+,-.++d-[d[>]-,-]+]@<>-->+[>[+++.[][,][,]]7++<][-+<+.<>-[>+]+,+>[.-.w<@>5>+7++++++.[].,.[+[.+--.<>-<-.<<-.<]->.[-+-+>]>1u@8-------[--.++>-+>>+>++>][[+..<>..[..<<[.<+<<<]-.<@";//>8-------+--[[.<[-...[+><><[.-..>[.[]]]>>>>].>,[><@7><+++++++++.>[<.<<.-.+-.>[-+--[][.-.+[<,>0]>[[[->@8---++--[--[+--.[->+>>->[<><>+[.++-++<+++]]-[[],,,@"; + public static string AlphabetFunctions = "6+.@6++.@6+++.@6++++.@6+++++.@6++++++.@6+++++++.@6++++++++.@7-------.@7------.@7-----.@7----.@7---.@7[--.@7-.@7.@-7+.@7++.-@7+++.@7++++.@7+++++.@7++++++.@8---------.@7++++++++.@8-------.@8------.@"; public static string ConvertDoubleArrayToBF(double[] array) { From 833c76a62c523af0278620ed82421a2a20c64664 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Tue, 5 Jun 2018 10:21:01 -0400 Subject: [PATCH 33/42] Added GetAlphabet function to use a subset of letters from AlphabetFunctions. --- AIProgrammer.Managers/CommonManager.cs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/AIProgrammer.Managers/CommonManager.cs b/AIProgrammer.Managers/CommonManager.cs index b20cdd9..941b620 100644 --- a/AIProgrammer.Managers/CommonManager.cs +++ b/AIProgrammer.Managers/CommonManager.cs @@ -267,5 +267,21 @@ public static int GetFunctionCount(string program) return count; } + + /// + /// Returns a string alphabet functions to be used within appendCode. + /// + /// Return alphabet functions from a through "to" inclusive. + /// string + public static string GetAlphabet(char to = 'z') + { + string result = ""; + + string[] parts = AlphabetFunctions.Split("@".ToCharArray()); + int index = to - 'a'; + result = string.Join("@", parts.Take(index + 1)) + "@"; + + return result; + } } } From 69ddc2fa2443acffc2185327dce5e8e6438ffd31 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Tue, 5 Jun 2018 11:27:41 -0400 Subject: [PATCH 34/42] Removed extraneous loops from function generated code. --- AIProgrammer.Functions/Concrete/StringFunction.cs | 5 ++++- AIProgrammer.Functions/Concrete/StringFunctionChunk.cs | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/AIProgrammer.Functions/Concrete/StringFunction.cs b/AIProgrammer.Functions/Concrete/StringFunction.cs index 447d5cd..39356e4 100755 --- a/AIProgrammer.Functions/Concrete/StringFunction.cs +++ b/AIProgrammer.Functions/Concrete/StringFunction.cs @@ -70,7 +70,10 @@ public string Generate(IGeneticAlgorithm ga) // Run the genetic algorithm and get the best brain. program = GAManager.Run(ga, _fitnessFunc, _generationFunc); - + + // Trim extraneous loop instructions from the end. + program = program.Replace("[]", ""); + appendCode += program + "@"; // Reset the target fitness. diff --git a/AIProgrammer.Functions/Concrete/StringFunctionChunk.cs b/AIProgrammer.Functions/Concrete/StringFunctionChunk.cs index fea2b66..57d9719 100644 --- a/AIProgrammer.Functions/Concrete/StringFunctionChunk.cs +++ b/AIProgrammer.Functions/Concrete/StringFunctionChunk.cs @@ -102,7 +102,10 @@ public string Generate(IGeneticAlgorithm ga) // Run the genetic algorithm and get the best brain. program = GAManager.Run(ga, _fitnessFunc, _generationFunc); - + + // Trim extraneous loop instructions from the end. + program = program.Replace("[]", ""); + appendCode += program + "@"; // Reset the target fitness. From 1a30fe1e999a57468c6fd0b37752cdfa4e9858a4 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Tue, 5 Jun 2018 13:15:41 -0400 Subject: [PATCH 35/42] Updated README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3fcd07b..459388e 100644 --- a/README.md +++ b/README.md @@ -167,4 +167,4 @@ https://github.com/primaryobjects/ai-programmer ## Copyright -Copyright (c) 2017 Kory Becker http://primaryobjects.com/kory-becker +Copyright (c) 2018 Kory Becker http://primaryobjects.com/kory-becker From 0b4e4daa982dca7d13945bfea8a9010d19e4e14c Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Fri, 7 Sep 2018 13:45:21 -0400 Subject: [PATCH 36/42] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 459388e..b0acb49 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,9 @@ AI-Programmer Read the full article [Using Artificial Intelligence to Write Self-Modifying/Improving Programs](http://www.primaryobjects.com/2013/01/27/using-artificial-intelligence-to-write-self-modifying-improving-programs/) -Read the research paper [BF-Programmer: A Counterintuitive Approach to Autonomously Building Simplistic Programs Using Genetic Algorithms](http://www.primaryobjects.com/bf-programmer-2017.pdf "BF-Programmer: A Counterintuitive Approach to Autonomously Building Simplistic Programs Using Genetic Algorithms"). +Read the research paper [AI Programmer: Autonomously Creating +Software Programs Using Genetic Algorithms](https://arxiv.org/pdf/1709.05703.pdf "AI Programmer: Autonomously Creating +Software Programs Using Genetic Algorithms"). AI-Programmer is an experiment with using artificial intelligence and genetic algorithms to automatically generate programs. Successfully created [programs](https://github.com/primaryobjects/AI-Programmer/tree/master/Results) by the AI include: hello world, hello , addition, subtraction, reversing a string, fibonnaci sequence, 99 bottles of beer on the wall, and more. It's getting smarter. In short, it's an AI genetic algorithm implementation with self modifying code. From 9a1751b7eba13cc82c7c6c2105672649f63c1f44 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Sun, 30 Sep 2018 17:58:22 -0400 Subject: [PATCH 37/42] Added StringLengthFitness.cs with successful result. --- .../AIProgrammer.Fitness.csproj | 1 + .../Concrete/StringLengthFitness.cs | 207 ++++++++++++++++++ Results/string-length/history.txt | 186 ++++++++++++++++ Results/string-length/output.exe | Bin 0 -> 5120 bytes Results/string-length/string-length-1.png | Bin 0 -> 38300 bytes 5 files changed, 394 insertions(+) create mode 100644 AIProgrammer.Fitness/Concrete/StringLengthFitness.cs create mode 100644 Results/string-length/history.txt create mode 100644 Results/string-length/output.exe create mode 100644 Results/string-length/string-length-1.png diff --git a/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj b/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj index 316978a..0421884 100644 --- a/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj +++ b/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj @@ -75,6 +75,7 @@ + diff --git a/AIProgrammer.Fitness/Concrete/StringLengthFitness.cs b/AIProgrammer.Fitness/Concrete/StringLengthFitness.cs new file mode 100644 index 0000000..faa7ed2 --- /dev/null +++ b/AIProgrammer.Fitness/Concrete/StringLengthFitness.cs @@ -0,0 +1,207 @@ +using AIProgrammer.Fitness.Base; +using AIProgrammer.GeneticAlgorithm; +using AIProgrammer.Managers; +using AIProgrammer.Types; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; +using System.Xml; + +namespace AIProgrammer.Fitness.Concrete +{ + /// + /// Returns the length of a string. + /// + public class StringLengthFitness : FitnessBase + { + private static string[] _trainingExamples = { "cori@domain.com", "mt@po.box", "test", "johnandjanesdfgjnsdkfjgjnrtkhreuitgure", "unknown-string-goes-here" }; + private static int[] _trainingResults; + + #region Settings + + public override int? GenomeSize + { + get + { + return 10; + } + } + + public override int? MaxGenomeSize + { + get + { + return 150; + } + } + + public override int? ExpandAmount + { + get + { + return 2; + } + } + + public override int? ExpandRate + { + get + { + return 2000; + } + } + + #endregion + + public StringLengthFitness(GA ga, int maxIterationCount, string appendFunctions = null) + : base(ga, maxIterationCount, appendFunctions) + { + if (_targetFitness == 0) + { + // Extract expected results from training examples. + _trainingResults = _trainingExamples.ToList().ConvertAll(e => { return e.Length; }).ToArray(); + + // Assign target fitness. + _targetFitness = _trainingExamples.Length * 256; + //_targetFitness += _trainingExamples.Length * 10; // bonus for matching exact length of output + } + } + + #region FitnessBase Members + + protected override double GetFitnessMethod(string program) + { + double countBonus = 0; + double penalty = 0; + + for (int i = 0; i < _trainingExamples.Length; i++) + { + try + { + int state = 0; + _console.Clear(); + + // Run the program. + _bf = new Interpreter(program, () => + { + if (state < _trainingExamples[i].Length) + { + // Send input. + return (byte)_trainingExamples[i][state++]; + } + else + { + // Not ready for input. + return 0; + } + }, + (b) => + { + if (state < _trainingExamples[i].Length) + { + // Apply a penalty for outputting before reading the input. + penalty += 10; + } + + _console.Append(b.ToString()); + }); + _bf.Run(_maxIterationCount); + } + catch + { + } + + if (_console.Length > 0) + { + string console = _console.ToString(); + _output.Append(console); + _output.Append(","); + + if (Int32.TryParse(console, out int value)) + { + Fitness += 256 - Math.Abs(value - _trainingResults[i]); + } + } + + // Make the AI wait until a solution is found without the penalty. + Fitness -= penalty; + + // Check for solution. + IsFitnessAchieved(); + + // Length bonus (percentage of 100). + //Fitness += 10;// * ((1 - Math.Abs(_console.Length - 1)) / 1); + + // Bonus for less operations to optimize the code. + countBonus += ((_maxIterationCount - _bf.m_Ticks) / 1000.0); + + Ticks += _bf.m_Ticks; + TotalTicks += _bf.m_TotalTicks; + } + + if (_fitness != Double.MaxValue) + { + _fitness = Fitness + countBonus; + } + + return _fitness; + } + + protected override void RunProgramMethod(string program) + { + for (int i = 0; i < 99; i++) + { + // Get input from the user. + Console.WriteLine(); + Console.Write(">: "); + string line = Console.ReadLine(); + int index = 0; + + _console.Clear(); + + try + { + // Run the program. + Interpreter bf = new Interpreter(program, () => + { + byte b; + + // Send the next character. + if (index < line.Length) + { + b = (byte)line[index++]; + } + else + { + b = 0; + } + + return b; + }, + (b) => + { + _console.Append(b.ToString()); + }); + + bf.Run(_maxIterationCount); + } + catch + { + } + + Console.WriteLine(_console.ToString()); + } + } + + public override string GetConstructorParameters() + { + return _maxIterationCount.ToString(); + } + + #endregion + } +} diff --git a/Results/string-length/history.txt b/Results/string-length/history.txt new file mode 100644 index 0000000..7b6e118 --- /dev/null +++ b/Results/string-length/history.txt @@ -0,0 +1,186 @@ +9/30/2018 4:55:35 PM,1064.99,0,0 +9/30/2018 4:55:36 PM,1096.945,0,100 +9/30/2018 4:55:37 PM,1099.945,0,200 +9/30/2018 4:55:38 PM,1099.945,0,300 +9/30/2018 4:55:39 PM,1099.945,0,400 +9/30/2018 4:55:40 PM,1099.945,0,500 +9/30/2018 4:55:42 PM,1099.945,0,600 +9/30/2018 4:55:44 PM,1104.955,0,700 +9/30/2018 4:55:46 PM,1104.99,0,800 +9/30/2018 4:55:48 PM,1104.99,0,900 +9/30/2018 4:55:50 PM,1214.675,0,1000 +9/30/2018 4:55:51 PM,1252.495,0,1100 +9/30/2018 4:55:52 PM,1252.675,0,1200 +9/30/2018 4:55:54 PM,1253.585,0,1300 +9/30/2018 4:55:55 PM,1253.675,0,1400 +9/30/2018 4:55:57 PM,1254.675,0,1500 +9/30/2018 4:55:58 PM,1254.675,0,1600 +9/30/2018 4:56:00 PM,1254.675,0,1700 +9/30/2018 4:56:01 PM,1254.675,0,1800 +9/30/2018 4:56:02 PM,1254.675,0,1900 +9/30/2018 4:56:04 PM,1254.69,0,2000 +9/30/2018 4:56:06 PM,1255.665,0,2100 +9/30/2018 4:56:08 PM,1255.665,0,2200 +9/30/2018 4:56:09 PM,1255.665,0,2300 +9/30/2018 4:56:11 PM,1255.665,0,2400 +9/30/2018 4:56:13 PM,1255.68,0,2500 +9/30/2018 4:56:14 PM,1255.68,0,2600 +9/30/2018 4:56:15 PM,1255.68,0,2700 +9/30/2018 4:56:17 PM,1255.68,0,2800 +9/30/2018 4:56:18 PM,1255.68,0,2900 +9/30/2018 4:56:20 PM,1255.68,0,3000 +9/30/2018 4:56:21 PM,1255.68,0,3100 +9/30/2018 4:56:22 PM,1255.759,0,3200 +9/30/2018 4:56:24 PM,1255.759,0,3300 +9/30/2018 4:56:25 PM,1255.759,0,3400 +9/30/2018 4:56:26 PM,1255.759,0,3500 +9/30/2018 4:56:28 PM,1255.759,0,3600 +9/30/2018 4:56:29 PM,1255.759,0,3700 +9/30/2018 4:56:30 PM,1255.759,0,3800 +9/30/2018 4:56:32 PM,1255.759,0,3900 +9/30/2018 4:56:33 PM,1255.759,0,4000 +9/30/2018 4:56:35 PM,1255.759,0,4100 +9/30/2018 4:56:36 PM,1255.761,0,4200 +9/30/2018 4:56:37 PM,1255.761,0,4300 +9/30/2018 4:56:39 PM,1255.764,0,4400 +9/30/2018 4:56:40 PM,1255.764,0,4500 +9/30/2018 4:56:42 PM,1255.764,0,4600 +9/30/2018 4:56:43 PM,1255.771,0,4700 +9/30/2018 4:56:44 PM,1255.771,0,4800 +9/30/2018 4:56:46 PM,1255.771,0,4900 +9/30/2018 4:56:48 PM,1255.771,0,5000 +9/30/2018 4:56:49 PM,1255.771,0,5100 +9/30/2018 4:56:51 PM,1255.771,0,5200 +9/30/2018 4:56:52 PM,1255.771,0,5300 +9/30/2018 4:56:54 PM,1255.771,0,5400 +9/30/2018 4:56:56 PM,1255.771,0,5500 +9/30/2018 4:56:58 PM,1255.771,0,5600 +9/30/2018 4:57:00 PM,1255.771,0,5700 +9/30/2018 4:57:03 PM,1255.771,0,5800 +9/30/2018 4:57:05 PM,1255.771,0,5900 +9/30/2018 4:57:08 PM,1255.771,0,6000 +9/30/2018 4:57:10 PM,1255.771,0,6100 +9/30/2018 4:57:12 PM,1255.771,0,6200 +9/30/2018 4:57:15 PM,1255.771,0,6300 +9/30/2018 4:57:17 PM,1255.771,0,6400 +9/30/2018 4:57:19 PM,1255.779,0,6500 +9/30/2018 4:57:21 PM,1255.786,0,6600 +9/30/2018 4:57:23 PM,1255.786,0,6700 +9/30/2018 4:57:25 PM,1255.79,0,6800 +9/30/2018 4:57:27 PM,1255.79,0,6900 +9/30/2018 4:57:29 PM,1255.79,0,7000 +9/30/2018 4:57:30 PM,1255.805,0,7100 +9/30/2018 4:57:32 PM,1255.805,0,7200 +9/30/2018 4:57:33 PM,1255.805,0,7300 +9/30/2018 4:57:35 PM,1255.805,0,7400 +9/30/2018 4:57:37 PM,1255.805,0,7500 +9/30/2018 4:57:38 PM,1255.805,0,7600 +9/30/2018 4:57:40 PM,1255.805,0,7700 +9/30/2018 4:57:41 PM,1255.805,0,7800 +9/30/2018 4:57:43 PM,1255.805,0,7900 +9/30/2018 4:57:45 PM,1255.805,0,8000 +9/30/2018 4:57:47 PM,1255.805,0,8100 +9/30/2018 4:57:49 PM,1255.805,0,8200 +9/30/2018 4:57:51 PM,1255.805,0,8300 +9/30/2018 4:57:53 PM,1255.805,0,8400 +9/30/2018 4:57:55 PM,1255.805,0,8500 +9/30/2018 4:57:58 PM,1255.805,0,8600 +9/30/2018 4:58:01 PM,1255.805,0,8700 +9/30/2018 4:58:03 PM,1255.805,0,8800 +9/30/2018 4:58:05 PM,1255.805,0,8900 +9/30/2018 4:58:08 PM,1255.805,0,9000 +9/30/2018 4:58:11 PM,1255.805,0,9100 +9/30/2018 4:58:13 PM,1255.805,0,9200 +9/30/2018 4:58:15 PM,1255.805,0,9300 +9/30/2018 4:58:17 PM,1255.805,0,9400 +9/30/2018 4:58:19 PM,1255.805,0,9500 +9/30/2018 4:58:20 PM,1255.805,0,9600 +9/30/2018 4:58:22 PM,1255.805,0,9700 +9/30/2018 4:58:23 PM,1255.805,0,9800 +9/30/2018 4:58:25 PM,1255.805,0,9900 +9/30/2018 4:58:27 PM,1255.805,0,10000 +9/30/2018 4:58:30 PM,1255.805,0,10100 +9/30/2018 4:58:32 PM,1255.805,0,10200 +9/30/2018 4:58:35 PM,1255.805,0,10300 +9/30/2018 4:58:37 PM,1255.805,0,10400 +9/30/2018 4:58:40 PM,1255.805,0,10500 +9/30/2018 4:58:42 PM,1255.805,0,10600 +9/30/2018 4:58:44 PM,1255.811,0,10700 +9/30/2018 4:58:46 PM,1255.811,0,10800 +9/30/2018 4:58:48 PM,1255.811,0,10900 +9/30/2018 4:58:50 PM,1255.817,0,11000 +9/30/2018 4:58:53 PM,1255.817,0,11100 +9/30/2018 4:58:55 PM,1255.817,0,11200 +9/30/2018 4:58:58 PM,1255.82,0,11300 +9/30/2018 4:59:00 PM,1255.82,0,11400 +9/30/2018 4:59:03 PM,1255.824,0,11500 +9/30/2018 4:59:06 PM,1255.824,0,11600 +9/30/2018 4:59:08 PM,1255.824,0,11700 +9/30/2018 4:59:11 PM,1255.827,0,11800 +9/30/2018 4:59:14 PM,1255.827,0,11900 +9/30/2018 4:59:16 PM,1255.827,0,12000 +9/30/2018 4:59:18 PM,1251.729,0,12100 +9/30/2018 4:59:21 PM,1252.655,0,12200 +9/30/2018 4:59:23 PM,1256.715,0,12300 +9/30/2018 4:59:26 PM,1256.719,0,12400 +9/30/2018 4:59:28 PM,1256.719,0,12500 +9/30/2018 4:59:31 PM,1256.727,0,12600 +9/30/2018 4:59:33 PM,1256.735,0,12700 +9/30/2018 4:59:36 PM,1257.727,0,12800 +9/30/2018 4:59:38 PM,1257.729,0,12900 +9/30/2018 4:59:41 PM,1257.735,0,13000 +9/30/2018 4:59:42 PM,1257.795,0,13100 +9/30/2018 4:59:44 PM,1257.795,0,13200 +9/30/2018 4:59:47 PM,1257.795,0,13300 +9/30/2018 4:59:48 PM,1257.795,0,13400 +9/30/2018 4:59:50 PM,1257.795,0,13500 +9/30/2018 4:59:52 PM,1257.795,0,13600 +9/30/2018 4:59:54 PM,1257.795,0,13700 +9/30/2018 4:59:56 PM,1257.797,0,13800 +9/30/2018 4:59:59 PM,1263.726,0,13900 +9/30/2018 5:00:02 PM,1263.726,0,14000 +9/30/2018 5:00:04 PM,1252.672,0,14100 +9/30/2018 5:00:07 PM,1255.719,0,14200 +9/30/2018 5:00:09 PM,1255.719,0,14300 +9/30/2018 5:00:11 PM,1255.749,0,14400 +9/30/2018 5:00:13 PM,1255.749,0,14500 +9/30/2018 5:00:15 PM,1255.75,0,14600 +9/30/2018 5:00:17 PM,1255.75,0,14700 +9/30/2018 5:00:20 PM,1255.756,0,14800 +9/30/2018 5:00:22 PM,1255.765,0,14900 +9/30/2018 5:00:24 PM,1255.781,0,15000 +9/30/2018 5:00:27 PM,1255.781,0,15100 +9/30/2018 5:00:29 PM,1255.802,0,15200 +9/30/2018 5:00:32 PM,1255.807,0,15300 +9/30/2018 5:00:34 PM,1255.812,0,15400 +9/30/2018 5:00:37 PM,1255.812,0,15500 +9/30/2018 5:00:39 PM,1255.812,0,15600 +9/30/2018 5:00:42 PM,1255.812,0,15700 +9/30/2018 5:00:44 PM,1255.812,0,15800 +9/30/2018 5:00:46 PM,1255.812,0,15900 +9/30/2018 5:00:49 PM,1255.812,0,16000 +9/30/2018 5:00:51 PM,1255.812,0,16100 +9/30/2018 5:00:54 PM,1255.812,0,16200 +9/30/2018 5:00:57 PM,1255.812,0,16300 +9/30/2018 5:00:59 PM,1255.812,0,16400 +9/30/2018 5:01:02 PM,1255.812,0,16500 +9/30/2018 5:01:04 PM,1255.812,0,16600 +9/30/2018 5:01:07 PM,1255.812,0,16700 +9/30/2018 5:01:09 PM,1255.812,0,16800 +9/30/2018 5:01:12 PM,1255.822,0,16900 +9/30/2018 5:01:15 PM,1255.822,0,17000 +9/30/2018 5:01:18 PM,1255.822,0,17100 +9/30/2018 5:01:21 PM,1255.822,0,17200 +9/30/2018 5:01:23 PM,1255.822,0,17300 +9/30/2018 5:01:25 PM,1255.822,0,17400 +9/30/2018 5:01:28 PM,1255.822,0,17500 +9/30/2018 5:01:31 PM,1255.822,0,17600 +9/30/2018 5:01:33 PM,1255.822,0,17700 +9/30/2018 5:01:36 PM,1255.822,0,17800 +9/30/2018 5:01:39 PM,1255.822,0,17900 +9/30/2018 5:01:42 PM,1255.822,0,18000 +9/30/2018 5:01:44 PM,1255.822,0,18100 +9/30/2018 5:01:46 PM,1255.822,0,18200 +9/30/2018 5:01:49 PM,1255.822,0,18300 +9/30/2018 5:01:51 PM,1255.822,0,18400 +9/30/2018 5:01:52 PM,1302.413,0,18500 diff --git a/Results/string-length/output.exe b/Results/string-length/output.exe new file mode 100644 index 0000000000000000000000000000000000000000..8aa0716ec9b1d2c39f5f3c4251acfb29d9d3bf57 GIT binary patch literal 5120 zcmeHKU2Ggz75--Z+f8F7PHF-q?RcBIZkruDjRkdTC%g8>W{Kk%+i`%nN@i!T*VD|- zEHksNw-3lXfXYiLF9^zykf_894}dBW6{-k?#8V|6^8^u3h?l-ZeE_NDJ9l=o>(qqs zSdp{7=bm%!x#ym9@11k5FMRb4bOGpQ`{*O!277^=#`i}%93FV$odLZ4$a}*#jD`1x zS2x|rtc5`(w5z6L`+g9cC1r+n-*kPmaB;<~24!XK-=99-G`(~VSTMTq`^jHjX{~k} zDPy0p4@gtepGX%+*_&)RHbEx4RN^-&?Z5QcVWV823%PFs2lQXNZ?cIB?mP`#7CHyq zl1;c5t^toy_PY__=)Gh2l2=gN4 zqG^OdoBVN`{8yV4TOdjQ3OON2$$5W$n@t&Po z`QnVBcOlu+tqE(~IyHXkdPX#w1T4y zleZ90&R;4P*q+91?psGDsgrnjmPbB`!x$$144xrAfRn^eAdf}kX%ta5vKl{+ zFX89L=ScrrOa5fM$jC+CqTlnxhpy3&Z>j!u57~%T z*{$cd*r^Lax$dbm2u@{~*s&Y<%gVF2H5IkZH7AN1hf1#J#*Ox95)JajW-L_|T61pft0>x2$n||ERCF`B z&V$$s&T0odJ&(E_~ib4|U2+%pyP)HA+1wj+?yW7RG_>EICE} zn7B-N2@T@&)DJZ^L%GARQfA?$P3pz8a~fm(y`p~>`H+^Yv?6l?+IU&din+GM*|PQ+ zZ6r3c9BL-RJ2!{szO#Y;-@LlM_UVb+-)5dLjtz8~+(6SX4({(J z?(Z|ZjKO3513gHk1_rvRGQbRGa7;KH%=Y$m4Gcb$>Nn75h51oejcs+e#-sofMU_%AV9iz9651nbXum^hw--6f3a44m(HK zzmUA9I|51G1WW%xzPX27Chv4uNJ#zZ;teuC%>f1Zc$@I|8Q>quu$B~36YSTpf~&;m zuuQ6mi&!LIB%UKJ@NW0}AIh8MUO3wn$ZO%=(Snw(>0CS4%;!bsx(#MOf#Z-_t2$@; z%#$89B^w6RN#K{=Z_%hhpJHkyx%T6hcC^koYee#!VAf{6VD(9HZcD$Qv$3P?)OM|7 zQg@swv8}sC-H;x&eHqs^Na~QTMLfHG)R$=SWRsi;`_E1xB?` z3*;(#hE%&6Yl1{qfz&KO{K;wi7n^d4TU!(SC_5O11iL^XM+#|Lx7Gv)fhA++y-)37O8Ew8k^0@|~c}XV`S+(&}9Hg^U@+ zwqLfrz*p0mhKe$0&+Jc6*-@mbC9h%9fFDg~>Y;x+ayC`fjwIdwk38cm*(kS{d)sme>CyTvzWMMV#2^;FBMNod<)X>jUN zq!-kd@=QV=}LwMjFFq8jpmzeAy!vEh6{2LqTo)Q26 literal 0 HcmV?d00001 diff --git a/Results/string-length/string-length-1.png b/Results/string-length/string-length-1.png new file mode 100644 index 0000000000000000000000000000000000000000..fec2ec4eaec00bba18d77adfd1c9db53de557604 GIT binary patch literal 38300 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 Date: Sun, 30 Sep 2018 22:42:40 -0400 Subject: [PATCH 38/42] Fixed path. --- AIProgrammer.Fitness/AIProgrammer.Fitness.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj b/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj index 0421884..da33722 100644 --- a/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj +++ b/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj @@ -54,6 +54,7 @@ + @@ -75,7 +76,6 @@ - From e74d2ce1e391cbed69abe9275151400149392c43 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Sun, 30 Sep 2018 22:45:21 -0400 Subject: [PATCH 39/42] Cleanup. --- AIProgrammer.Fitness/Concrete/StringLengthFitness.cs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/AIProgrammer.Fitness/Concrete/StringLengthFitness.cs b/AIProgrammer.Fitness/Concrete/StringLengthFitness.cs index faa7ed2..5e07b73 100644 --- a/AIProgrammer.Fitness/Concrete/StringLengthFitness.cs +++ b/AIProgrammer.Fitness/Concrete/StringLengthFitness.cs @@ -67,7 +67,6 @@ public StringLengthFitness(GA ga, int maxIterationCount, string appendFunctions // Assign target fitness. _targetFitness = _trainingExamples.Length * 256; - //_targetFitness += _trainingExamples.Length * 10; // bonus for matching exact length of output } } @@ -133,9 +132,6 @@ protected override double GetFitnessMethod(string program) // Check for solution. IsFitnessAchieved(); - // Length bonus (percentage of 100). - //Fitness += 10;// * ((1 - Math.Abs(_console.Length - 1)) / 1); - // Bonus for less operations to optimize the code. countBonus += ((_maxIterationCount - _bf.m_Ticks) / 1000.0); From 077909f5ff7d9f8a58a94da5e92d105ccc1270a8 Mon Sep 17 00:00:00 2001 From: Alfred Feldmeyer <6654064+byteSamurai@users.noreply.github.com> Date: Thu, 17 Sep 2020 18:16:15 +0200 Subject: [PATCH 40/42] Delete CountDownFitness.cs unused regarding AIProgrammer.Fitness.csproj, produces warnings on case insensitive file systems --- .../Concrete/CountDownFitness.cs | 167 ------------------ 1 file changed, 167 deletions(-) delete mode 100644 AIProgrammer.Fitness/Concrete/CountDownFitness.cs diff --git a/AIProgrammer.Fitness/Concrete/CountDownFitness.cs b/AIProgrammer.Fitness/Concrete/CountDownFitness.cs deleted file mode 100644 index 46a28c8..0000000 --- a/AIProgrammer.Fitness/Concrete/CountDownFitness.cs +++ /dev/null @@ -1,167 +0,0 @@ -using AIProgrammer.Fitness.Base; -using AIProgrammer.GeneticAlgorithm; -using AIProgrammer.Managers; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace AIProgrammer.Fitness.Concrete -{ - /// - /// Outputs a countdown from an input number. Note, input is taken in byte value. - /// Example: input = 5: 543210 - /// - public class CountdownFitness : FitnessBase - { - private int _trainingCount; - - public CountdownFitness(GA ga, int maxIterationCount, int maxTrainingCount = 4) - : base(ga, maxIterationCount) - { - _trainingCount = maxTrainingCount; - - if (_targetFitness == 0) - { - // A * 256 => A = Number of numeric values in training example, 256 = 256 characters per byte. - _targetFitness += 6 * 256; - _targetFitness += 4 * 256; - _targetFitness += 3 * 256; - _targetFitness += 7 * 256; - } - } - - #region FitnessBase Members - - protected override double GetFitnessMethod(string program) - { - byte[][] trainingExamples = { new byte[] { 5, 4, 3, 2, 1, 0 }, - new byte[] { 3, 2, 1, 0 }, - new byte[] { 2, 1, 0 }, - new byte[] { 6, 5, 4, 3, 2, 1, 0 } }; - double countBonus = 0; - double penalty = 0; - - for (int i = 0; i < trainingExamples.Length; i++) - { - try - { - int state = 0; - _console.Clear(); - - // Run the program. - _bf = new Interpreter(program, () => - { - if (state == 0) - { - state++; - - // Send input. - return trainingExamples[i][0]; - } - else - { - // Not ready for input. - penalty++; - - return 255; - } - }, - (b) => - { - _console.Append((char)b); - }); - _bf.Run(_maxIterationCount); - } - catch - { - } - - _output.Append(_console.ToString()); - _output.Append(","); - - // Order bonus. - for (int j = 0; j < trainingExamples[i].Length; j++) - { - if (_console.Length > j) - { - Fitness += 256 - Math.Abs((byte)_console[j] - trainingExamples[i][j]); - } - } - - // Make the AI wait until a solution is found without the penalty (too many input characters). - Fitness -= penalty; - - // Check for solution. - IsFitnessAchieved(); - - // Bonus for less operations to optimize the code. - countBonus += ((_maxIterationCount - _bf.m_Ticks) / 20.0); - - Ticks += _bf.m_Ticks; - } - - if (_fitness != Double.MaxValue) - { - _fitness = Fitness + countBonus; - } - - return _fitness; - } - - protected override void RunProgramMethod(string program) - { - for (int i = 0; i < 99; i++) - { - // Get input from the user. - Console.WriteLine(); - Console.Write(">: "); - byte startingValue = Byte.Parse(Console.ReadLine()); - int index = 0; - - _console.Clear(); - - try - { - // Run the program. - Interpreter bf = new Interpreter(program, () => - { - byte b; - - // Send the next character. - if (index++ == 0) - { - b = startingValue; - } - else - { - b = 255; - } - - return b; - }, - (b) => - { - // Append numeric byte value. - _console.Append(b); - }); - - bf.Run(_maxIterationCount); - } - catch - { - } - - Console.WriteLine(_console); - } - } - - public override string GetConstructorParameters() - { - return _maxIterationCount + ", " + _trainingCount; - } - - #endregion - } -} From 42c0ba644fdeb5ae907c407a76e3054197d2e4c2 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Wed, 7 Oct 2020 17:23:37 -0400 Subject: [PATCH 41/42] Added CountdownFitness.cs. --- AIProgrammer.Fitness/AIProgrammer.Fitness.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj b/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj index da33722..1902e0b 100644 --- a/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj +++ b/AIProgrammer.Fitness/AIProgrammer.Fitness.csproj @@ -46,6 +46,7 @@ + @@ -60,7 +61,6 @@ - From 1b2faab214055b720fafb5d5e2a29319964c1f24 Mon Sep 17 00:00:00 2001 From: Kory Becker Date: Mon, 16 Jan 2023 08:42:32 -0500 Subject: [PATCH 42/42] Create FUNDING.yml --- .github/FUNDING.yml | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..c5ca883 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,3 @@ +# These are supported funding model platforms + +github: [primaryobjects]