From f2068641d4a1c549dc3807c0b74d35f07688224e Mon Sep 17 00:00:00 2001 From: Carlos Ernesto Alvarez Berumen Date: Thu, 26 Feb 2026 13:46:39 -0600 Subject: [PATCH 01/12] v1 --- amber/src/main/python/pyamber/__init__.py | 2 + .../main/python/pytexera/udf/udf_operator.py | 88 ++++- .../texera/amber/core/tuple/Attribute.java | 6 +- .../DualInputPortsPythonUDFOpDescV2.scala | 9 +- .../udf/python/PythonUDFOpDescV2.scala | 9 +- .../python/PythonUdfUiParameterInjector.scala | 159 +++++++++ .../operator/udf/python/UiUDFParameter.scala | 41 +++ .../source/PythonUDFSourceOpDescV2.scala | 8 +- .../PythonUdfUiParameterInjectorSpec.scala | 56 ++++ frontend/src/app/app.module.ts | 2 + .../src/app/common/formly/formly-config.ts | 2 + .../code-editor.component.ts | 33 +- ...perator-property-edit-frame.component.scss | 14 + .../operator-property-edit-frame.component.ts | 58 +++- .../ui-udf-parameters.component.html | 39 +++ .../ui-udf-parameters.component.scss | 20 ++ .../ui-udf-parameters.component.ts | 71 ++++ .../ui-udf-parameters-parser.service.spec.ts | 79 +++++ .../ui-udf-parameters-parser.service.ts | 308 ++++++++++++++++++ .../ui-udf-parameters-sync.service.ts | 130 ++++++++ .../types/workflow-compiling.interface.ts | 18 +- 21 files changed, 1131 insertions(+), 21 deletions(-) create mode 100644 common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjector.scala create mode 100644 common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/UiUDFParameter.scala create mode 100644 common/workflow-operator/src/test/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjectorSpec.scala create mode 100644 frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.html create mode 100644 frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.scss create mode 100644 frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.ts create mode 100644 frontend/src/app/workspace/service/code-editor/ui-udf-parameters-parser.service.spec.ts create mode 100644 frontend/src/app/workspace/service/code-editor/ui-udf-parameters-parser.service.ts create mode 100644 frontend/src/app/workspace/service/code-editor/ui-udf-parameters-sync.service.ts diff --git a/amber/src/main/python/pyamber/__init__.py b/amber/src/main/python/pyamber/__init__.py index 01ee5e08279..7a3d45c2ff9 100644 --- a/amber/src/main/python/pyamber/__init__.py +++ b/amber/src/main/python/pyamber/__init__.py @@ -27,6 +27,7 @@ SourceOperator, TupleOperatorV2, State, + AttributeType, ) __all__ = [ @@ -41,4 +42,5 @@ "TupleOperatorV2", "SourceOperator", "State", + "AttributeType", ] diff --git a/amber/src/main/python/pytexera/udf/udf_operator.py b/amber/src/main/python/pytexera/udf/udf_operator.py index 003225c75c3..59af65f3b86 100644 --- a/amber/src/main/python/pytexera/udf/udf_operator.py +++ b/amber/src/main/python/pytexera/udf/udf_operator.py @@ -15,13 +15,87 @@ # specific language governing permissions and limitations # under the License. +import datetime from abc import abstractmethod -from typing import Iterator, Optional, Union - -from pyamber import * +from typing import Any, Dict, Iterator, Optional, Union +import functools +import datetime +from abc import abstractmethod +from typing import Any, Dict, Iterator, Optional, Union -class UDFOperatorV2(TupleOperatorV2): +from pyamber import * +from core.models.schema.attribute_type import AttributeType, TO_PYOBJECT_MAPPING + +class _UiParameterSupport: + _ui_parameter_injected_values: Dict[str, Any] = {} + _ui_parameter_name_types: Dict[str, AttributeType] = {} + + # Reserved hook name. Backend injector will generate this in the user's class. + def _texera_injected_ui_parameters(self) -> Dict[str, Any]: + return {} + + def _texera_apply_injected_ui_parameters(self) -> None: + values = self._texera_injected_ui_parameters() + # Write to base class storage (not cls) because UiParameter reads from _UiParameterSupport directly + _UiParameterSupport._ui_parameter_injected_values = dict(values or {}) + _UiParameterSupport._ui_parameter_name_types = {} + + def __init_subclass__(cls, **kwargs): + super().__init_subclass__(**kwargs) + + # Wrap only methods defined on this class (not inherited ones) + original_open = getattr(cls, "open", None) + if original_open is None: + return + + # Avoid double wrapping + if getattr(original_open, "__texera_ui_params_wrapped__", False): + return + + @functools.wraps(original_open) + def wrapped_open(self, *args, **kwargs): + self._texera_apply_injected_ui_parameters() + return original_open(self, *args, **kwargs) + + setattr(wrapped_open, "__texera_ui_params_wrapped__", True) + cls.open = wrapped_open + + class UiParameter: + def __init__(self, name: str, type: AttributeType): + if not isinstance(type, AttributeType): + raise TypeError( + f"UiParameter.type must be an AttributeType, got {type!r}." + ) + + existing_type = _UiParameterSupport._ui_parameter_name_types.get(name) + if existing_type is not None and existing_type != type: + raise ValueError( + f"Duplicate UiParameter name '{name}' with conflicting types: " + f"{existing_type.name} vs {type.name}." + ) + + _UiParameterSupport._ui_parameter_name_types[name] = type + raw_value = _UiParameterSupport._ui_parameter_injected_values.get(name) + self.name = name + self.type = type + self.value = _UiParameterSupport._parse(raw_value, type) + + @classmethod + def set_injected_ui_parameters(cls, values: Dict[str, Any]) -> None: + # keep for backward compatibility if anything else calls it + _UiParameterSupport._ui_parameter_injected_values = dict(values or {}) + _UiParameterSupport._ui_parameter_name_types = {} + + @staticmethod + def _parse(value: Any, attr_type: AttributeType) -> Any: + if value is None: + return None + + py_type = TO_PYOBJECT_MAPPING.get(attr_type) + return py_type(value) + +class UDFOperatorV2(_UiParameterSupport, TupleOperatorV2): """ Base class for tuple-oriented user-defined operators. A concrete implementation must be provided upon using. @@ -65,7 +139,7 @@ def close(self) -> None: pass -class UDFSourceOperator(SourceOperator): +class UDFSourceOperator(_UiParameterSupport, SourceOperator): def open(self) -> None: """ Open a context of the operator. Usually can be used for loading/initiating some @@ -90,7 +164,7 @@ def close(self) -> None: pass -class UDFTableOperator(TableOperator): +class UDFTableOperator(_UiParameterSupport, TableOperator): """ Base class for table-oriented user-defined operators. A concrete implementation must be provided upon using. @@ -123,7 +197,7 @@ def close(self) -> None: pass -class UDFBatchOperator(BatchOperator): +class UDFBatchOperator(_UiParameterSupport, BatchOperator): """ Base class for batch-oriented user-defined operators. A concrete implementation must be provided upon using. diff --git a/common/workflow-core/src/main/scala/org/apache/texera/amber/core/tuple/Attribute.java b/common/workflow-core/src/main/scala/org/apache/texera/amber/core/tuple/Attribute.java index 84d52fddced..40373dcbaca 100644 --- a/common/workflow-core/src/main/scala/org/apache/texera/amber/core/tuple/Attribute.java +++ b/common/workflow-core/src/main/scala/org/apache/texera/amber/core/tuple/Attribute.java @@ -21,6 +21,8 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; +import org.apache.texera.amber.pybuilder.EncodableStringAnnotation; +import org.apache.texera.amber.pybuilder.PyStringTypes; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; @@ -33,7 +35,7 @@ */ public class Attribute implements Serializable { - private final String attributeName; + private final @EncodableStringAnnotation String attributeName; private final AttributeType attributeType; @JsonCreator @@ -49,7 +51,7 @@ public Attribute( @JsonProperty(value = "attributeName", required = true) @NotBlank(message = "Attribute name is required") - public String getName() { + public @EncodableStringAnnotation String getName() { return attributeName; } diff --git a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/DualInputPortsPythonUDFOpDescV2.scala b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/DualInputPortsPythonUDFOpDescV2.scala index 3f056c96055..a7a02560901 100644 --- a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/DualInputPortsPythonUDFOpDescV2.scala +++ b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/DualInputPortsPythonUDFOpDescV2.scala @@ -77,6 +77,11 @@ class DualInputPortsPythonUDFOpDescV2 extends LogicalOp { ) var outputColumns: List[Attribute] = List() + @JsonProperty + @JsonSchemaTitle("Parameters") + @JsonPropertyDescription("Parameters inferred from self.UiParameter(...) in Python script") + var uiParameters: List[UiUDFParameter] = List() + override def getPhysicalOp( workflowId: WorkflowIdentity, executionId: ExecutionIdentity @@ -88,7 +93,7 @@ class DualInputPortsPythonUDFOpDescV2 extends LogicalOp { workflowId, executionId, operatorIdentifier, - OpExecWithCode(code, "python") + OpExecWithCode(PythonUdfUiParameterInjector.inject(code, uiParameters), "python") ) .withParallelizable(true) .withSuggestedWorkerNum(workers) @@ -98,7 +103,7 @@ class DualInputPortsPythonUDFOpDescV2 extends LogicalOp { workflowId, executionId, operatorIdentifier, - OpExecWithCode(code, "python") + OpExecWithCode(PythonUdfUiParameterInjector.inject(code, uiParameters), "python") ) .withParallelizable(false) } diff --git a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUDFOpDescV2.scala b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUDFOpDescV2.scala index ef4da06cef9..efac09d63b4 100644 --- a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUDFOpDescV2.scala +++ b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUDFOpDescV2.scala @@ -79,6 +79,11 @@ class PythonUDFOpDescV2 extends LogicalOp { ) var outputColumns: List[Attribute] = List() + @JsonProperty + @JsonSchemaTitle("Parameters") + @JsonPropertyDescription("Parameters inferred from self.UiParameter(...) in Python script") + var uiParameters: List[UiUDFParameter] = List() + override def getPhysicalOp( workflowId: WorkflowIdentity, executionId: ExecutionIdentity @@ -118,7 +123,7 @@ class PythonUDFOpDescV2 extends LogicalOp { workflowId, executionId, operatorIdentifier, - OpExecWithCode(code, "python") + OpExecWithCode(PythonUdfUiParameterInjector.inject(code, uiParameters), "python") ) .withParallelizable(true) .withSuggestedWorkerNum(workers) @@ -128,7 +133,7 @@ class PythonUDFOpDescV2 extends LogicalOp { workflowId, executionId, operatorIdentifier, - OpExecWithCode(code, "python") + OpExecWithCode(PythonUdfUiParameterInjector.inject(code, uiParameters), "python") ) .withParallelizable(false) } diff --git a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjector.scala b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjector.scala new file mode 100644 index 00000000000..e6e181aad29 --- /dev/null +++ b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjector.scala @@ -0,0 +1,159 @@ +package org.apache.texera.amber.operator.udf.python + +import org.apache.texera.amber.pybuilder.PyStringTypes.{EncodableString, EncodableStringFactory} +import org.apache.texera.amber.pybuilder.PythonTemplateBuilder +import org.apache.texera.amber.pybuilder.PythonTemplateBuilder.PythonTemplateBuilderStringContext + +import scala.util.matching.Regex + +object PythonUdfUiParameterInjector { + + private val ReservedHookMethod = "_texera_injected_ui_parameters" + + // Match user-facing UDF classes (the ones users write) + private val SupportedUserClassRegex: Regex = + """(?m)^([ \t]*)class\s+(ProcessTupleOperator|ProcessBatchOperator|ProcessTableOperator|GenerateOperator)\s*\([^)]*\)\s*:\s*(?:#.*)?$""".r + + private def validate(uiParameters: List[UiUDFParameter]): Unit = { + uiParameters.foreach { parameter => + if (parameter.attribute == null) { + throw new RuntimeException("UiParameter attribute is required.") + } + } + + val grouped = uiParameters.groupBy(_.attribute.getName) + grouped.foreach { + case (key, values) => + val typeSet = values.map(_.attribute.getType).toSet + if (typeSet.size > 1) { + throw new RuntimeException( + s"UiParameter key '$key' has multiple types: ${typeSet.map(_.name()).mkString(",")}." + ) + } + } + } + + private def buildInjectedParametersMap(uiParameters: List[UiUDFParameter]): PythonTemplateBuilder = { + val entries = uiParameters.map { parameter => + val key: EncodableString = EncodableStringFactory(parameter.attribute.getName) + val value: EncodableString = EncodableStringFactory(parameter.value) + pyb"$key: $value" + } + + entries.reduceOption((acc, entry) => acc + pyb", " + entry).getOrElse(pyb"") + } + + private def buildInjectedHookMethod(uiParameters: List[UiUDFParameter]): String = { + val injectedParametersMap = buildInjectedParametersMap(uiParameters) + + // unindented method; we indent it when inserting into the class body + (pyb"""def """ + pyb"$ReservedHookMethod" + pyb"""(self): + | return {""" + + injectedParametersMap + + pyb"""} + |""").encode + } + + private def indentBlock(block: String, indent: String): String = { + block + .split("\n", -1) + .map { line => + if (line.nonEmpty) indent + line else line + } + .mkString("\n") + } + + private def lineEndIndex(text: String, from: Int): Int = { + val idx = text.indexOf('\n', from) + if (idx < 0) text.length else idx + } + + private def detectClassBlockEnd(code: String, classHeaderStart: Int, classIndent: String): Int = { + val classLineEnd = lineEndIndex(code, classHeaderStart) + var pos = if (classLineEnd < code.length) classLineEnd + 1 else code.length + + while (pos < code.length) { + val end = lineEndIndex(code, pos) + val line = code.substring(pos, end) + + val trimmed = line.trim + val isBlank = trimmed.isEmpty + + // a top-level (or same/lower-indented) non-blank line ends the class block + val currentIndentLen = line.prefixLength(ch => ch == ' ' || ch == '\t') + val classIndentLen = classIndent.length + + if (!isBlank && currentIndentLen <= classIndentLen) { + return pos + } + + pos = if (end < code.length) end + 1 else code.length + } + + code.length + } + + private def containsReservedHook(classBlock: String): Boolean = { + val hookRegex = ("""(?m)^[ \t]+def\s+""" + Regex.quote(ReservedHookMethod) + """\s*\(""").r + hookRegex.findFirstIn(classBlock).isDefined + } + + private def findInsertionPointInsideClass(classBlock: String, classIndent: String): Int = { + // Insert before the first method definition in the class body. + // This preserves existing open() and also preserves class docstrings if present. + val methodRegex = """(?m)^[ \t]+def\s+\w+\s*\(""".r + methodRegex.findFirstMatchIn(classBlock).map(_.start).getOrElse(classBlock.length) + } + + private def injectHookIntoUserClass(encodedUserCode: String, hookMethod: String): String = { + val m = SupportedUserClassRegex.findFirstMatchIn(encodedUserCode).getOrElse { + return encodedUserCode + } + + val classHeaderStart = m.start + val classIndent = m.group(1) + val classBlockEnd = detectClassBlockEnd(encodedUserCode, classHeaderStart, classIndent) + + val classBlock = encodedUserCode.substring(classHeaderStart, classBlockEnd) + + if (containsReservedHook(classBlock)) { + throw new RuntimeException( + s"Reserved method '$ReservedHookMethod' is already defined in the UDF class. Please rename your method." + ) + } + + val bodyIndent = inferClassBodyIndent(classBlock, classIndent).getOrElse(classIndent + " ") + val indentedHook = indentBlock((if (classBlock.endsWith("\n")) "" else "\n") + hookMethod.trim + "\n", bodyIndent) + + encodedUserCode.substring(0, classBlockEnd) + + indentedHook + + encodedUserCode.substring(classBlockEnd) + } + private def inferClassBodyIndent(classBlock: String, classIndent: String): Option[String] = { + val lines = classBlock.split("\n", -1).toList.drop(1) // skip class header line + + lines.collectFirst { + case line if line.trim.nonEmpty => + val leading = line.takeWhile(ch => ch == ' ' || ch == '\t') + if (leading.length > classIndent.length) leading else classIndent + " " + } + } + def inject(code: String, uiParameters: List[UiUDFParameter]): String = { + val params = Option(uiParameters).getOrElse(List.empty) + validate(params) + + // Let pyb encode the user's source normally + val encodedUserCode = pyb"$code".encode + + // If there are no UI params, return unchanged code (no hook injection needed) + if (params.isEmpty) { + return encodedUserCode + } + + // Build encoded hook method (contains self.decode_python_template(...)) + val hookMethod = buildInjectedHookMethod(params) + + // Inject hook into the UDF class body; Python base class will auto-call it before open() + injectHookIntoUserClass(encodedUserCode, hookMethod) + } +} \ No newline at end of file diff --git a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/UiUDFParameter.scala b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/UiUDFParameter.scala new file mode 100644 index 00000000000..71ce2596788 --- /dev/null +++ b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/UiUDFParameter.scala @@ -0,0 +1,41 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.texera.amber.operator.udf.python + +import com.fasterxml.jackson.annotation.JsonProperty +import com.kjetland.jackson.jsonSchema.annotations.JsonSchemaTitle +import org.apache.texera.amber.core.tuple.Attribute +import org.apache.texera.amber.pybuilder.PyStringTypes.EncodableString + +import javax.validation.Valid +import javax.validation.constraints.NotNull + +class UiUDFParameter { + + @JsonProperty(required = true) + @JsonSchemaTitle("Attribute") + @Valid + @NotNull(message = "Attribute is required") + var attribute: Attribute = _ + + @JsonProperty() + @JsonSchemaTitle("Value") + var value: EncodableString = "" +} diff --git a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/source/PythonUDFSourceOpDescV2.scala b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/source/PythonUDFSourceOpDescV2.scala index b575612d884..a845f17ad3a 100644 --- a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/source/PythonUDFSourceOpDescV2.scala +++ b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/source/PythonUDFSourceOpDescV2.scala @@ -27,6 +27,7 @@ import org.apache.texera.amber.core.virtualidentity.{ExecutionIdentity, Workflow import org.apache.texera.amber.core.workflow.{OutputPort, PhysicalOp, SchemaPropagationFunc} import org.apache.texera.amber.operator.metadata.{OperatorGroupConstants, OperatorInfo} import org.apache.texera.amber.operator.source.SourceOperatorDescriptor +import org.apache.texera.amber.operator.udf.python.{PythonUdfUiParameterInjector, UiUDFParameter} class PythonUDFSourceOpDescV2 extends SourceOperatorDescriptor { @@ -54,13 +55,18 @@ class PythonUDFSourceOpDescV2 extends SourceOperatorDescriptor { @JsonPropertyDescription("The columns of the source") var columns: List[Attribute] = List.empty + @JsonProperty + @JsonSchemaTitle("Parameters") + @JsonPropertyDescription("Parameters inferred from self.UiParameter(...) in Python script") + var uiParameters: List[UiUDFParameter] = List() + override def getPhysicalOp( workflowId: WorkflowIdentity, executionId: ExecutionIdentity ): PhysicalOp = { require(workers >= 1, "Need at least 1 worker.") val physicalOp = PhysicalOp - .sourcePhysicalOp(workflowId, executionId, operatorIdentifier, OpExecWithCode(code, "python")) + .sourcePhysicalOp(workflowId, executionId, operatorIdentifier, OpExecWithCode(PythonUdfUiParameterInjector.inject(code, uiParameters), "python")) .withInputPorts(operatorInfo.inputPorts) .withOutputPorts(operatorInfo.outputPorts) .withIsOneToManyOp(true) diff --git a/common/workflow-operator/src/test/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjectorSpec.scala b/common/workflow-operator/src/test/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjectorSpec.scala new file mode 100644 index 00000000000..ba8c2335c44 --- /dev/null +++ b/common/workflow-operator/src/test/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjectorSpec.scala @@ -0,0 +1,56 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.texera.amber.operator.udf.python + +import org.apache.texera.amber.core.tuple.{Attribute, AttributeType} +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers + +class PythonUdfUiParameterInjectorSpec extends AnyFlatSpec with Matchers { + + private def createParameter(key: String, attributeType: AttributeType, value: String): UiUDFParameter = { + val parameter = new UiUDFParameter + parameter.attribute = new Attribute(key, attributeType) + parameter.value = value + parameter + } + + it should "inject ui parameter prelude through PythonTemplateBuilder" in { + val injectedCode = PythonUdfUiParameterInjector.inject( + "print('done')", + List(createParameter("date", AttributeType.TIMESTAMP, "2024-01-01T00:00:00Z")) + ) + + injectedCode should include("UDFOperatorV2.set_injected_ui_parameters({") + injectedCode should include("self.decode_python_template") + injectedCode should include("print('done')") + } + + it should "throw when a key is declared with conflicting types" in { + val conflictingParameters = List( + createParameter("date", AttributeType.DATE, "2024-01-01"), + createParameter("date", AttributeType.TIMESTAMP, "2024-01-01T00:00:00Z") + ) + + assertThrows[RuntimeException] { + PythonUdfUiParameterInjector.inject("print('done')", conflictingParameters) + } + } +} diff --git a/frontend/src/app/app.module.ts b/frontend/src/app/app.module.ts index b41b1f80b73..d0acf5e5f35 100644 --- a/frontend/src/app/app.module.ts +++ b/frontend/src/app/app.module.ts @@ -153,6 +153,7 @@ import { NzTreeViewModule } from "ng-zorro-antd/tree-view"; import { NzNoAnimationModule } from "ng-zorro-antd/core/no-animation"; import { TreeModule } from "@ali-hm/angular-tree-component"; import { FileSelectionComponent } from "./workspace/component/file-selection/file-selection.component"; +import { UiUdfParametersComponent } from "./workspace/component/ui-udf-parameters/ui-udf-parameters.component"; import { ResultExportationComponent } from "./workspace/component/result-exportation/result-exportation.component"; import { ReportGenerationService } from "./workspace/service/report-generation/report-generation.service"; import { SearchBarComponent } from "./dashboard/component/user/search-bar/search-bar.component"; @@ -257,6 +258,7 @@ registerLocaleData(en); AgentRegistrationComponent, InputAutoCompleteComponent, FileSelectionComponent, + UiUdfParametersComponent, CollabWrapperComponent, AboutComponent, UserWorkflowListItemComponent, diff --git a/frontend/src/app/common/formly/formly-config.ts b/frontend/src/app/common/formly/formly-config.ts index d950bd3690c..f2fa38ab493 100644 --- a/frontend/src/app/common/formly/formly-config.ts +++ b/frontend/src/app/common/formly/formly-config.ts @@ -27,6 +27,7 @@ import { PresetWrapperComponent } from "./preset-wrapper/preset-wrapper.componen import { InputAutoCompleteComponent } from "../../workspace/component/input-autocomplete/input-autocomplete.component"; import { CollabWrapperComponent } from "./collab-wrapper/collab-wrapper/collab-wrapper.component"; import { FormlyRepeatDndComponent } from "./repeat-dnd/repeat-dnd.component"; +import { UiUdfParametersComponent } from "../../workspace/component/ui-udf-parameters/ui-udf-parameters.component"; /** * Configuration for using Json Schema with Formly. @@ -78,6 +79,7 @@ export const TEXERA_FORMLY_CONFIG = { { name: "codearea", component: CodeareaCustomTemplateComponent }, { name: "inputautocomplete", component: InputAutoCompleteComponent, wrappers: ["form-field"] }, { name: "repeat-section-dnd", component: FormlyRepeatDndComponent }, + { name: "ui-udf-parameters", component: UiUdfParametersComponent, wrappers: ["form-field"] }, ], wrappers: [ { name: "preset-wrapper", component: PresetWrapperComponent }, diff --git a/frontend/src/app/workspace/component/code-editor-dialog/code-editor.component.ts b/frontend/src/app/workspace/component/code-editor-dialog/code-editor.component.ts index 18ebfc59a1f..74afaae7a52 100644 --- a/frontend/src/app/workspace/component/code-editor-dialog/code-editor.component.ts +++ b/frontend/src/app/workspace/component/code-editor-dialog/code-editor.component.ts @@ -47,11 +47,12 @@ import "@codingame/monaco-vscode-python-default-extension"; import "@codingame/monaco-vscode-r-default-extension"; import "@codingame/monaco-vscode-java-default-extension"; import { isDefined } from "../../../common/util/predicate"; -import { filter, switchMap } from "rxjs/operators"; +import { debounceTime, filter, switchMap } from "rxjs/operators"; import { BreakpointConditionInputComponent } from "./breakpoint-condition-input/breakpoint-condition-input.component"; import { CodeDebuggerComponent } from "./code-debugger.component"; import { MonacoEditor } from "monaco-breakpoints/dist/types"; import { GuiConfigService } from "src/app/common/service/gui-config.service"; +import { UiUdfParametersSyncService } from "../../service/code-editor/ui-udf-parameters-sync.service"; export const LANGUAGE_SERVER_CONNECTION_TIMEOUT_MS = 1000; @@ -102,6 +103,7 @@ export class CodeEditorComponent implements AfterViewInit, SafeStyle, OnDestroy private isMultipleVariables: boolean = false; public codeDebuggerComponent!: Type | null; public editorToPass!: MonacoEditor; + // private readonly pythonCodeChangeSubject = new Subject(); private generateLanguageTitle(language: string): string { return `${language.charAt(0).toUpperCase()}${language.slice(1)} UDF`; @@ -118,7 +120,8 @@ export class CodeEditorComponent implements AfterViewInit, SafeStyle, OnDestroy private workflowVersionService: WorkflowVersionService, public coeditorPresenceService: CoeditorPresenceService, private aiAssistantService: AIAssistantService, - private config: GuiConfigService + private config: GuiConfigService, + private uiUdfParametersSyncService: UiUdfParametersSyncService ) { this.currentOperatorId = this.workflowActionService.getJointGraphWrapper().getCurrentHighlightedOperatorIDs()[0]; const operatorType = this.workflowActionService.getTexeraGraph().getOperator(this.currentOperatorId).operatorType; @@ -143,9 +146,11 @@ export class CodeEditorComponent implements AfterViewInit, SafeStyle, OnDestroy .get("operatorProperties") as YType> ).get("code") as YText; } - + private detachYCodeListener?: () => void; ngAfterViewInit() { - // hacky solution to reset view after view is rendered. + // this.pythonCodeChangeSubject + // .pipe(debounceTime(250), untilDestroyed(this)) + // .subscribe(code => this.uiUdfParametersSyncService.syncStructureFromCode(this.currentOperatorId, code)); // hacky solution to reset view after view is rendered. const style = localStorage.getItem(this.currentOperatorId); if (style) this.containerElement.nativeElement.style.cssText = style; @@ -176,6 +181,9 @@ export class CodeEditorComponent implements AfterViewInit, SafeStyle, OnDestroy this.workflowVersionStreamSubject.next(); this.workflowVersionStreamSubject.complete(); } + if (this.detachYCodeListener) { + this.detachYCodeListener(); + } } /** @@ -273,6 +281,23 @@ export class CodeEditorComponent implements AfterViewInit, SafeStyle, OnDestroy ); this.setupAIAssistantActions(editor); this.initCodeDebuggerComponent(editor); + if (this.detachYCodeListener) { + this.detachYCodeListener(); + } + + if (this.code) { + this.detachYCodeListener = + this.uiUdfParametersSyncService.attachToYCode( + this.currentOperatorId, + this.code + ); + } + // editor.onDidChangeModelContent(() => { + // const latestCode = editor.getModel()?.getValue(); + // if (isDefined(latestCode)) { + // this.pythonCodeChangeSubject.next(latestCode); + // } + // }); }); } diff --git a/frontend/src/app/workspace/component/property-editor/operator-property-edit-frame/operator-property-edit-frame.component.scss b/frontend/src/app/workspace/component/property-editor/operator-property-edit-frame/operator-property-edit-frame.component.scss index 4126a9ee1ce..aa32d22b4aa 100644 --- a/frontend/src/app/workspace/component/property-editor/operator-property-edit-frame/operator-property-edit-frame.component.scss +++ b/frontend/src/app/workspace/component/property-editor/operator-property-edit-frame/operator-property-edit-frame.component.scss @@ -73,3 +73,17 @@ margin-bottom: 0; } } + +/* ================================ + Style ONLY the UDF Parameters field + ================================ */ + +:host ::ng-deep label[for*="ui-udf-parameters"] { + font-weight: 700; +} + +:host ::ng-deep nz-form-item:has(label[for*="ui-udf-parameters"]) { + border-top: 1.5px solid #d1d1d1; + padding-top: 12px; + margin-top: 8px; +} diff --git a/frontend/src/app/workspace/component/property-editor/operator-property-edit-frame/operator-property-edit-frame.component.ts b/frontend/src/app/workspace/component/property-editor/operator-property-edit-frame/operator-property-edit-frame.component.ts index 5d457e9050e..56b0395fc6e 100644 --- a/frontend/src/app/workspace/component/property-editor/operator-property-edit-frame/operator-property-edit-frame.component.ts +++ b/frontend/src/app/workspace/component/property-editor/operator-property-edit-frame/operator-property-edit-frame.component.ts @@ -67,7 +67,7 @@ import * as Y from "yjs"; import { OperatorSchema } from "src/app/workspace/types/operator-schema.interface"; import { AttributeType, PortSchema } from "../../../types/workflow-compiling.interface"; import { GuiConfigService } from "../../../../common/service/gui-config.service"; - +import { UiUdfParametersSyncService } from "../../../service/code-editor/ui-udf-parameters-sync.service"; Quill.register("modules/cursors", QuillCursors); /** @@ -155,7 +155,8 @@ export class OperatorPropertyEditFrameComponent implements OnInit, OnChanges, On private changeDetectorRef: ChangeDetectorRef, private workflowVersionService: WorkflowVersionService, private workflowStatusSerivce: WorkflowStatusService, - private config: GuiConfigService + private config: GuiConfigService, + private uiUdfParametersSyncService: UiUdfParametersSyncService ) {} ngOnChanges(changes: SimpleChanges): void { @@ -193,6 +194,54 @@ export class OperatorPropertyEditFrameComponent implements OnInit, OnChanges, On this.currentOperatorStatus = update[this.currentOperatorId]; } }); + + this.uiUdfParametersSyncService.uiParametersChanged$ + .pipe(untilDestroyed(this)) + .subscribe(({ operatorId, parameters }) => { + if (operatorId !== this.currentOperatorId) return; + + const readCurrentUiParams = () => + this.workflowActionService + .getTexeraGraph() + .getOperator(operatorId) + .operatorProperties?.uiParameters ?? []; + + // initial read + let currentUiParams = readCurrentUiParams(); + + // max attempts = abs(prevLen - newLen), with sane bounds + const diffLen = Math.abs((currentUiParams?.length ?? 0) - (parameters?.length ?? 0)); + const MAX_ATTEMPTS = Math.min(Math.max(diffLen, 1), 20); + + let attempts = 0; + + while (!isEqual(currentUiParams, parameters) && attempts < MAX_ATTEMPTS) { + const currentOperator = + this.workflowActionService + .getTexeraGraph() + .getOperator(operatorId); + + const newModel = { + ...cloneDeep(currentOperator.operatorProperties), + uiParameters: cloneDeep(parameters), + }; + + this.listeningToChange = false; + this.workflowActionService.setOperatorProperty(operatorId, newModel); + this.listeningToChange = true; + + // re-read after mutation + currentUiParams = readCurrentUiParams(); + attempts++; + } + + if (!isEqual(currentUiParams, parameters)) { + console.warn( + `uiParameters did not converge after ${attempts}/${MAX_ATTEMPTS} attempts`, + { currentLen: currentUiParams.length, targetLen: parameters.length } + ); + } + }); } async ngOnDestroy() { @@ -331,6 +380,7 @@ export class OperatorPropertyEditFrameComponent implements OnInit, OnChanges, On this.listeningToChange = false; this.typeInferenceOnLambdaFunction(formData); this.workflowActionService.setOperatorProperty(this.currentOperatorId, cloneDeep(formData)); + //const normalizedFormData = this.uiUdfParametersSyncService.syncStructureFromCode(this.currentOperatorId, formData.code) this.listeningToChange = true; } }); @@ -453,6 +503,10 @@ export class OperatorPropertyEditFrameComponent implements OnInit, OnChanges, On mappedField.type = "inputautocomplete"; } + if (mappedField.key === "uiParameters") { + mappedField.type = "ui-udf-parameters"; + } + // if the title is python script (for Python UDF), then make this field a custom template 'codearea' if (mapSource?.description?.toLowerCase() === "input your code here") { if (mappedField.type) { diff --git a/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.html b/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.html new file mode 100644 index 00000000000..16e859d79c8 --- /dev/null +++ b/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.html @@ -0,0 +1,39 @@ +
+ + +
+
Value
+
Name
+
Type
+
+ +
+ + + +
+ + + +
+ + +
+ + + +
+ + +
+ + + +
+ +
+
+
diff --git a/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.scss b/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.scss new file mode 100644 index 00000000000..a56edd4753e --- /dev/null +++ b/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.scss @@ -0,0 +1,20 @@ +.ui-udf-param-row { + display: grid; + grid-template-columns: 250px 250px 1fr; + gap: 12px; + align-items: start; +} + +.field-cell { + min-width: 0; +} + +/* Remove Formly/Ant label spacing */ +:host ::ng-deep .ant-form-item { + margin-bottom: 0; +} + +/* Hide Formly labels since you already have a header row */ +:host ::ng-deep .ant-form-item-label { + display: none; +} diff --git a/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.ts b/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.ts new file mode 100644 index 00000000000..2ca3ffb0a3a --- /dev/null +++ b/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.ts @@ -0,0 +1,71 @@ +import { Component } from "@angular/core"; +import { FieldArrayType, FormlyFieldConfig } from "@ngx-formly/core"; + +@Component({ + selector: "texera-ui-udf-parameters", + templateUrl: "./ui-udf-parameters.component.html", + styleUrls: ["./ui-udf-parameters.component.scss"], +}) +export class UiUdfParametersComponent extends FieldArrayType { + private getField(rowField: FormlyFieldConfig, key: string): FormlyFieldConfig | undefined { + return rowField.fieldGroup?.find(f => f.key === key); + } + + private getAttributeChild(rowField: FormlyFieldConfig, childKey: string): FormlyFieldConfig | undefined { + const attributeGroup = this.getField(rowField, "attribute"); + return attributeGroup?.fieldGroup?.find(f => f.key === childKey); + } + + private setDisabled(field: FormlyFieldConfig | undefined, disabled: boolean): FormlyFieldConfig | undefined { + if (!field) return undefined; + + // 1) Modern Formly + field.props = { ...(field.props ?? {}), disabled }; + + // 2) Compatibility for templates/wrappers still using templateOptions + // (use `as any` so you don't get nagged by the @deprecated JSDoc) + (field as any).templateOptions = { ...((field as any).templateOptions ?? {}), disabled }; + + // 3) Enforce at the reactive form level + if (field.formControl) { + disabled + ? field.formControl.disable({ emitEvent: false }) + : field.formControl.enable({ emitEvent: false }); + } else { + // If control isn't created yet, disable it at init time. + const prevOnInit = field.hooks?.onInit; + field.hooks = { + ...(field.hooks ?? {}), + onInit: f => { + prevOnInit?.(f); + if (disabled) { + f.formControl?.disable({ emitEvent: false }); + } else { + f.formControl?.enable({ emitEvent: false }); + } + }, + }; + } + + return field; + } + + // Disable Name + getNameField(rowField: FormlyFieldConfig): FormlyFieldConfig | undefined { + return this.setDisabled(this.getAttributeChild(rowField, "attributeName"), true); + } + + // Disable Type (set to false if you want it editable) + getTypeField(rowField: FormlyFieldConfig): FormlyFieldConfig | undefined { + return this.setDisabled(this.getAttributeChild(rowField, "attributeType"), true); + } + + // Value editable (set to true to disable) + getValueField(rowField: FormlyFieldConfig): FormlyFieldConfig | undefined { + return this.setDisabled(this.getField(rowField, "value"), false); + } + + trackByParamName = (index: number, param: any): string | number => { + return param?.attribute?.attributeName ?? index; + }; +} diff --git a/frontend/src/app/workspace/service/code-editor/ui-udf-parameters-parser.service.spec.ts b/frontend/src/app/workspace/service/code-editor/ui-udf-parameters-parser.service.spec.ts new file mode 100644 index 00000000000..d64c81ef463 --- /dev/null +++ b/frontend/src/app/workspace/service/code-editor/ui-udf-parameters-parser.service.spec.ts @@ -0,0 +1,79 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { UiUdfParametersParserService } from "./ui-udf-parameters-parser.service"; + +describe("UiUdfParametersParserService", () => { + let service: UiUdfParametersParserService; + + beforeEach(() => { + service = new UiUdfParametersParserService(); + }); + + it("should parse positional and name-based arguments", () => { + const code = ` + class ProcessTupleOperator(UDFOperatorV2): + def open(self): + self.UiParameter(AttributeType.INT, "count") + self.UiParameter(type=AttributeType.STRING, name="name") + self.UiParameter(name="age", type=AttributeType.LONG) + self.UiParameter(AttributeType.DOUBLE, name="score") + self.UiParameter("created_at", type=AttributeType.TIMESTAMP) + `; + + expect(service.parse(code)).toEqual([ + { attribute: { attributeName: "count", attributeType: "INT" }, value: "" }, + { attribute: { attributeName: "name", attributeType: "STRING" }, value: "" }, + { attribute: { attributeName: "age", attributeType: "LONG" }, value: "" }, + { attribute: { attributeName: "score", attributeType: "DOUBLE" }, value: "" }, + { attribute: { attributeName: "created_at", attributeType: "TIMESTAMP" }, value: "" }, + ]); + }); + + it("should ignore calls where name or type is missing", () => { + const code = ` + class ProcessTupleOperator(UDFOperatorV2): + def open(self): + self.UiParameter(name="a") + self.UiParameter(type=AttributeType.DOUBLE) + `; + + expect(service.parse(code)).toEqual([]); + }); + + it("should ignore legacy key= named argument", () => { + const code = ` + class ProcessTupleOperator(UDFOperatorV2): + def open(self): + self.UiParameter(type=AttributeType.DOUBLE, key="a") + `; + + expect(service.parse(code)).toEqual([]); + }); + + it("should ignore unsupported classes", () => { + const code = ` + class RandomClass(ABC): + def open(self): + self.UiParameter(type=AttributeType.DOUBLE, name="a") + `; + + expect(service.parse(code)).toEqual([]); + }); +}); diff --git a/frontend/src/app/workspace/service/code-editor/ui-udf-parameters-parser.service.ts b/frontend/src/app/workspace/service/code-editor/ui-udf-parameters-parser.service.ts new file mode 100644 index 00000000000..bf080bb5fee --- /dev/null +++ b/frontend/src/app/workspace/service/code-editor/ui-udf-parameters-parser.service.ts @@ -0,0 +1,308 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { Injectable } from "@angular/core"; +import { + AttributeType, + JavaAttributeTypeName, + PythonAttributeTypeName, + SchemaAttribute, + JAVA_ATTRIBUTE_TYPE_NAMES, + PYTHON_ATTRIBUTE_TYPE_NAMES, +} from "../../types/workflow-compiling.interface"; + +export interface UiUdfParameter { + attribute: SchemaAttribute; + value: string; +} + +type ParserAttributeTypeToken = JavaAttributeTypeName | PythonAttributeTypeName; + +const ATTRIBUTE_TYPE_TOKEN_TO_CANONICAL: Readonly> = { + STRING: "string", + INTEGER: "integer", + INT: "integer", + LONG: "long", + DOUBLE: "double", + BOOLEAN: "boolean", + BOOL: "boolean", + TIMESTAMP: "timestamp", + BINARY: "binary", + LARGE_BINARY: "large_binary", +}; + +const JAVA_ATTRIBUTE_TYPE_NAME_SET = new Set(JAVA_ATTRIBUTE_TYPE_NAMES); +const PYTHON_ATTRIBUTE_TYPE_NAME_SET = new Set(PYTHON_ATTRIBUTE_TYPE_NAMES); + +@Injectable({ providedIn: "root" }) +export class UiUdfParametersParserService { + private static readonly SUPPORTED_CLASSES = [ + "ProcessTupleOperator", + "ProcessBatchOperator", + "ProcessTableOperator", + "GenerateOperator", + ]; + + parse(code: string): UiUdfParameter[] { + if (!code) { + return []; + } + + const classPattern = UiUdfParametersParserService.SUPPORTED_CLASSES.join("|"); + const classRegex = new RegExp( + `class\\s+(${classPattern})\\s*\\([^)]*\\)\\s*:[\\s\\S]*?(?=\\nclass\\s+\\w+\\s*\\(|$)`, + "g" + ); + + const parsed: UiUdfParameter[] = []; + const existingNames = new Set(); + + let classMatch: RegExpExecArray | null; + while ((classMatch = classRegex.exec(code)) !== null) { + const classBlock = classMatch[0]; + + for (const args of this.extractUiParameterArgumentLists(classBlock)) { + const argumentTokens = this.tokenizeArguments(args); + const extracted = this.extractParameter(argumentTokens); + if (!extracted || existingNames.has(extracted.attribute.attributeName)) { + continue; + } + + existingNames.add(extracted.attribute.attributeName); + parsed.push(extracted); + } + } + + return parsed; + } + + /** + * Extract argument strings from self.UiParameter(...) + * More robust than regex when there are nested parentheses. + */ + private extractUiParameterArgumentLists(code: string): string[] { + const result: string[] = []; + const needle = "self.UiParameter("; + let index = 0; + + while (index < code.length) { + const start = code.indexOf(needle, index); + if (start === -1) { + break; + } + + const openParenIndex = start + needle.length - 1; + const closeParenIndex = this.findMatchingParen(code, openParenIndex); + if (closeParenIndex === -1) { + break; + } + + result.push(code.slice(openParenIndex + 1, closeParenIndex)); + index = closeParenIndex + 1; + } + + return result; + } + + /** + * Find matching ')' for a '(' while ignoring quoted strings. + */ + private findMatchingParen(text: string, openIndex: number): number { + let depth = 0; + let inSingle = false; + let inDouble = false; + let escaped = false; + + for (let i = openIndex; i < text.length; i++) { + const ch = text[i]; + + if (escaped) { + escaped = false; + continue; + } + + if ((inSingle || inDouble) && ch === "\\") { + escaped = true; + continue; + } + + if (!inDouble && ch === "'") { + inSingle = !inSingle; + continue; + } + + if (!inSingle && ch === "\"") { + inDouble = !inDouble; + continue; + } + + if (inSingle || inDouble) { + continue; + } + + if (ch === "(") { + depth++; + } else if (ch === ")") { + depth--; + if (depth === 0) { + return i; + } + } + } + + return -1; + } + + /** + * Split on top-level commas only (ignores commas inside strings / nested calls). + */ + private tokenizeArguments(argumentList: string): string[] { + const tokens: string[] = []; + let current = ""; + let depth = 0; + let inSingle = false; + let inDouble = false; + let escaped = false; + + for (let i = 0; i < argumentList.length; i++) { + const ch = argumentList[i]; + + if (escaped) { + current += ch; + escaped = false; + continue; + } + + if ((inSingle || inDouble) && ch === "\\") { + current += ch; + escaped = true; + continue; + } + + if (!inDouble && ch === "'") { + inSingle = !inSingle; + current += ch; + continue; + } + + if (!inSingle && ch === "\"") { + inDouble = !inDouble; + current += ch; + continue; + } + + if (!inSingle && !inDouble) { + if (ch === "(") { + depth++; + current += ch; + continue; + } + + if (ch === ")") { + depth = Math.max(0, depth - 1); + current += ch; + continue; + } + + if (ch === "," && depth === 0) { + const token = current.trim(); + if (token.length > 0) { + tokens.push(token); + } + current = ""; + continue; + } + } + + current += ch; + } + + const tail = current.trim(); + if (tail.length > 0) { + tokens.push(tail); + } + + return tokens; + } + + private extractParameter(tokens: string[]): UiUdfParameter | undefined { + let namedName: string | undefined; + let namedType: AttributeType | undefined; + let positionalName: string | undefined; + let positionalType: AttributeType | undefined; + + for (const token of tokens) { + const namedNameMatch = token.match(/^name\s*=\s*["']([^"']+)["']$/); + if (namedNameMatch) { + namedName = namedNameMatch[1].trim(); + continue; + } + + const namedTypeMatch = token.match(/^type\s*=\s*AttributeType\.([A-Za-z_][A-Za-z0-9_]*)$/); + if (namedTypeMatch) { + namedType = this.normalizeAttributeType(namedTypeMatch[1]); + continue; + } + + const positionalTypeMatch = token.match(/^AttributeType\.([A-Za-z_][A-Za-z0-9_]*)$/); + if (positionalTypeMatch && !positionalType) { + positionalType = this.normalizeAttributeType(positionalTypeMatch[1]); + continue; + } + + const positionalNameMatch = token.match(/^["']([^"']+)["']$/); + if (positionalNameMatch && !positionalName) { + positionalName = positionalNameMatch[1].trim(); + } + } + + const attributeName = namedName ?? positionalName; + const attributeType = namedType ?? positionalType; + + if (!attributeName || !attributeType) { + return undefined; + } + + return { + attribute: { + attributeName, + attributeType, + }, + value: "", + }; + } + + /** + * Convert Java/Python enum tokens into canonical schema names. + * Examples: + * STRING -> string + * INTEGER -> integer + * INT -> integer + * BOOL -> boolean + */ + private normalizeAttributeType(token: string): AttributeType | undefined { + const normalized = token.trim().toUpperCase(); + + if (!JAVA_ATTRIBUTE_TYPE_NAME_SET.has(normalized) && !PYTHON_ATTRIBUTE_TYPE_NAME_SET.has(normalized)) { + return undefined; + } + + return ATTRIBUTE_TYPE_TOKEN_TO_CANONICAL[normalized as ParserAttributeTypeToken]; + } +} diff --git a/frontend/src/app/workspace/service/code-editor/ui-udf-parameters-sync.service.ts b/frontend/src/app/workspace/service/code-editor/ui-udf-parameters-sync.service.ts new file mode 100644 index 00000000000..cae70645aac --- /dev/null +++ b/frontend/src/app/workspace/service/code-editor/ui-udf-parameters-sync.service.ts @@ -0,0 +1,130 @@ +import { Injectable } from "@angular/core"; +import { isEqual } from "lodash-es"; +import { ReplaySubject } from "rxjs"; +import { Subject } from "rxjs"; +import { WorkflowActionService } from "../workflow-graph/model/workflow-action.service"; +import { UiUdfParameter, UiUdfParametersParserService } from "./ui-udf-parameters-parser.service"; +import { isDefined } from "../../../common/util/predicate"; +import { + DUAL_INPUT_PORTS_PYTHON_UDF_V2_OP_TYPE, + PYTHON_UDF_SOURCE_V2_OP_TYPE, + PYTHON_UDF_V2_OP_TYPE, +} from "../workflow-graph/model/workflow-graph"; +import { YType } from "../../types/shared-editing.interface"; +import { YText } from "yjs/dist/src/types/YText"; + +@Injectable({ providedIn: "root" }) +export class UiUdfParametersSyncService { + + private readonly uiParametersChangedSubject = + new ReplaySubject<{ operatorId: string; parameters: UiUdfParameter[] }>(1); + + + readonly uiParametersChanged$ = + this.uiParametersChangedSubject.asObservable(); + + constructor( + private workflowActionService: WorkflowActionService, + private uiUdfParametersParserService: UiUdfParametersParserService + ) {} + + /** + * Attach directly to YText and sync whenever it changes + */ + attachToYCode(operatorId: string, yCode: YText): () => void { + const handler = () => { + const latestCode = yCode.toString(); + this.syncStructureFromCode(operatorId, latestCode); + }; + + yCode.observe(handler); + + handler(); + + // return cleanup function + return () => yCode.unobserve(handler); + } + + syncStructureFromCode(operatorId: string, codeFromEditor?: string): void { + const operator = this.workflowActionService + .getTexeraGraph() + .getOperator(operatorId); + + if (!operator || !this.isSupportedPythonUdfType(operator.operatorType)) { + return; + } + + const code = codeFromEditor ?? this.getSharedCode(operatorId); + if (!isDefined(code)) { + return; + } + + const existingParameters = operator.operatorProperties?.uiParameters ?? []; + const mergedUiParameters = + this.buildParsedShapeWithPreservedValues(code, existingParameters); + + if (isEqual(existingParameters, mergedUiParameters)) { + return; + } + + // Emit event so UI updates + this.uiParametersChangedSubject.next({ + operatorId, + parameters: mergedUiParameters, + }); + + // optionally persist here if desired + // this.workflowActionService.setOperatorProperty(...) + } + + private buildParsedShapeWithPreservedValues( + code: string, + existingParameters: any[] + ): UiUdfParameter[] { + const parsedParameters = + this.uiUdfParametersParserService.parse(code); + + const existingValues = new Map(); + existingParameters.forEach((parameter: any) => { + const parameterName = + parameter?.attribute?.attributeName ?? + parameter?.attribute?.name; + + if (isDefined(parameterName) && isDefined(parameter?.value)) { + existingValues.set(parameterName, parameter.value); + } + }); + + return parsedParameters.map(parameter => ({ + ...parameter, + value: + existingValues.get(parameter.attribute.attributeName) ?? "", + })); + } + + private getSharedCode(operatorId: string): string | undefined { + try { + const sharedOperatorType = + this.workflowActionService + .getTexeraGraph() + .getSharedOperatorType(operatorId); + + const operatorProperties = + sharedOperatorType.get("operatorProperties") as + YType>; + + const yCode = operatorProperties.get("code") as YText; + return yCode?.toString(); + } catch { + return undefined; + } + } + + private isSupportedPythonUdfType(operatorType: string): boolean { + return [ + PYTHON_UDF_V2_OP_TYPE, + PYTHON_UDF_SOURCE_V2_OP_TYPE, + DUAL_INPUT_PORTS_PYTHON_UDF_V2_OP_TYPE, + ].includes(operatorType); + } +} diff --git a/frontend/src/app/workspace/types/workflow-compiling.interface.ts b/frontend/src/app/workspace/types/workflow-compiling.interface.ts index 8c4499d3d4c..1849552c0ab 100644 --- a/frontend/src/app/workspace/types/workflow-compiling.interface.ts +++ b/frontend/src/app/workspace/types/workflow-compiling.interface.ts @@ -70,8 +70,24 @@ export type CompilationStateInfo = Readonly< operatorErrors: Readonly>; } >; + // possible types of an attribute -export type AttributeType = "string" | "integer" | "double" | "boolean" | "long" | "timestamp" | "binary"; // schema: an array of attribute names and types +// Canonical frontend / JSON schema names +export type AttributeType = "string" | "integer" | "long" | "double" | "boolean" | "timestamp" | "binary" | "large_binary"; + +// Java enum constant names (AttributeType.java) +export const JAVA_ATTRIBUTE_TYPE_NAMES = ["STRING", "INTEGER", "LONG", "DOUBLE", "BOOLEAN", "TIMESTAMP", "BINARY", "LARGE_BINARY",] as const; + +export type JavaAttributeTypeName = (typeof JAVA_ATTRIBUTE_TYPE_NAMES)[number]; + +// Python enum constant names (core.models.AttributeType) +export const PYTHON_ATTRIBUTE_TYPE_NAMES = ["STRING", "INT", "LONG", "DOUBLE", "BOOL", "TIMESTAMP", "BINARY", "LARGE_BINARY",] as const; + +export type PythonAttributeTypeName = (typeof PYTHON_ATTRIBUTE_TYPE_NAMES)[number]; + +// Useful when parsing code from either side +export type AttributeTypeToken = AttributeType | JavaAttributeTypeName | PythonAttributeTypeName; + export interface SchemaAttribute extends Readonly<{ attributeName: string; From 5b29ad86bbf5759b4195ee7c81820b2c18480d2e Mon Sep 17 00:00:00 2001 From: Carlos Ernesto Alvarez Berumen Date: Fri, 27 Feb 2026 18:02:31 -0600 Subject: [PATCH 02/12] v2 --- amber/src/main/python/pytexera/udf/udf_operator.py | 6 ------ .../org/apache/texera/amber/core/tuple/Attribute.java | 6 ++++-- .../code-editor-dialog/code-editor.component.ts | 9 --------- .../operator-property-edit-frame.component.ts | 1 - .../ui-udf-parameters/ui-udf-parameters.component.scss | 2 +- 5 files changed, 5 insertions(+), 19 deletions(-) diff --git a/amber/src/main/python/pytexera/udf/udf_operator.py b/amber/src/main/python/pytexera/udf/udf_operator.py index 59af65f3b86..3c8e2d22291 100644 --- a/amber/src/main/python/pytexera/udf/udf_operator.py +++ b/amber/src/main/python/pytexera/udf/udf_operator.py @@ -81,12 +81,6 @@ def __init__(self, name: str, type: AttributeType): self.type = type self.value = _UiParameterSupport._parse(raw_value, type) - @classmethod - def set_injected_ui_parameters(cls, values: Dict[str, Any]) -> None: - # keep for backward compatibility if anything else calls it - _UiParameterSupport._ui_parameter_injected_values = dict(values or {}) - _UiParameterSupport._ui_parameter_name_types = {} - @staticmethod def _parse(value: Any, attr_type: AttributeType) -> Any: if value is None: diff --git a/common/workflow-core/src/main/scala/org/apache/texera/amber/core/tuple/Attribute.java b/common/workflow-core/src/main/scala/org/apache/texera/amber/core/tuple/Attribute.java index 40373dcbaca..730ab0fb8ec 100644 --- a/common/workflow-core/src/main/scala/org/apache/texera/amber/core/tuple/Attribute.java +++ b/common/workflow-core/src/main/scala/org/apache/texera/amber/core/tuple/Attribute.java @@ -23,6 +23,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import org.apache.texera.amber.pybuilder.EncodableStringAnnotation; import org.apache.texera.amber.pybuilder.PyStringTypes; +import org.apache.texera.amber.pybuilder.PyStringTypes.EncodableStringFactory$; + import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; @@ -35,7 +37,7 @@ */ public class Attribute implements Serializable { - private final @EncodableStringAnnotation String attributeName; + private final String attributeName; private final AttributeType attributeType; @JsonCreator @@ -52,7 +54,7 @@ public Attribute( @JsonProperty(value = "attributeName", required = true) @NotBlank(message = "Attribute name is required") public @EncodableStringAnnotation String getName() { - return attributeName; + return PyStringTypes.EncodableStringFactory$.MODULE$.apply(attributeName); } @JsonProperty(value = "attributeType", required = true) diff --git a/frontend/src/app/workspace/component/code-editor-dialog/code-editor.component.ts b/frontend/src/app/workspace/component/code-editor-dialog/code-editor.component.ts index 74afaae7a52..6f999a770f1 100644 --- a/frontend/src/app/workspace/component/code-editor-dialog/code-editor.component.ts +++ b/frontend/src/app/workspace/component/code-editor-dialog/code-editor.component.ts @@ -148,9 +148,6 @@ export class CodeEditorComponent implements AfterViewInit, SafeStyle, OnDestroy } private detachYCodeListener?: () => void; ngAfterViewInit() { - // this.pythonCodeChangeSubject - // .pipe(debounceTime(250), untilDestroyed(this)) - // .subscribe(code => this.uiUdfParametersSyncService.syncStructureFromCode(this.currentOperatorId, code)); // hacky solution to reset view after view is rendered. const style = localStorage.getItem(this.currentOperatorId); if (style) this.containerElement.nativeElement.style.cssText = style; @@ -292,12 +289,6 @@ export class CodeEditorComponent implements AfterViewInit, SafeStyle, OnDestroy this.code ); } - // editor.onDidChangeModelContent(() => { - // const latestCode = editor.getModel()?.getValue(); - // if (isDefined(latestCode)) { - // this.pythonCodeChangeSubject.next(latestCode); - // } - // }); }); } diff --git a/frontend/src/app/workspace/component/property-editor/operator-property-edit-frame/operator-property-edit-frame.component.ts b/frontend/src/app/workspace/component/property-editor/operator-property-edit-frame/operator-property-edit-frame.component.ts index 56b0395fc6e..6e71b076e22 100644 --- a/frontend/src/app/workspace/component/property-editor/operator-property-edit-frame/operator-property-edit-frame.component.ts +++ b/frontend/src/app/workspace/component/property-editor/operator-property-edit-frame/operator-property-edit-frame.component.ts @@ -380,7 +380,6 @@ export class OperatorPropertyEditFrameComponent implements OnInit, OnChanges, On this.listeningToChange = false; this.typeInferenceOnLambdaFunction(formData); this.workflowActionService.setOperatorProperty(this.currentOperatorId, cloneDeep(formData)); - //const normalizedFormData = this.uiUdfParametersSyncService.syncStructureFromCode(this.currentOperatorId, formData.code) this.listeningToChange = true; } }); diff --git a/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.scss b/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.scss index a56edd4753e..5b7e498731e 100644 --- a/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.scss +++ b/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.scss @@ -14,7 +14,7 @@ margin-bottom: 0; } -/* Hide Formly labels since you already have a header row */ +/* Hide Formly labels*/ :host ::ng-deep .ant-form-item-label { display: none; } From 3550ccd48c7e0ad38090ab4ae98bc5a9486a1634 Mon Sep 17 00:00:00 2001 From: Carlos Ernesto Alvarez Berumen Date: Mon, 2 Mar 2026 14:45:44 -0600 Subject: [PATCH 03/12] v2 --- .../core/models/schema/attribute_type.py | 12 +- .../main/python/pytexera/udf/udf_operator.py | 8 +- .../web/service/ExecutionResultService.scala | 3 +- .../amber/pybuilder/EncodableInspector.scala | 16 +- .../pybuilder/EncodableStringAnnotation.java | 3 +- .../texera/amber/core/tuple/Attribute.java | 5 +- .../DualInputPortsPythonUDFOpDescV2.scala | 1 + .../python/PythonLambdaFunctionOpDesc.scala | 1 + .../udf/python/PythonTableReducerOpDesc.scala | 1 + .../udf/python/PythonUDFOpDescV2.scala | 1 + .../python/PythonUdfUiParameterInjector.scala | 16 +- .../source/PythonUDFSourceOpDescV2.scala | 22 ++- .../PythonUdfUiParameterInjectorSpec.scala | 165 +++++++++++++++--- .../collab-wrapper.component.css | 2 +- .../code-editor.component.ts | 6 +- .../coeditor-user-icon.component.css | 1 - .../operator-property-edit-frame.component.ts | 18 +- .../ui-udf-parameters.component.html | 10 +- .../ui-udf-parameters.component.ts | 8 +- .../ui-udf-parameters-sync.service.ts | 51 ++---- .../types/workflow-compiling.interface.ts | 32 +++- 21 files changed, 258 insertions(+), 124 deletions(-) diff --git a/amber/src/main/python/core/models/schema/attribute_type.py b/amber/src/main/python/core/models/schema/attribute_type.py index 24d0745f41e..0e56ec10fb6 100644 --- a/amber/src/main/python/core/models/schema/attribute_type.py +++ b/amber/src/main/python/core/models/schema/attribute_type.py @@ -22,7 +22,6 @@ from pyarrow import lib from core.models.type.large_binary import largebinary - class AttributeType(Enum): """ Types supported by PyTexera & PyAmber. @@ -78,6 +77,17 @@ class AttributeType(Enum): } +FROM_STRING_PARSER_MAPPING = { + AttributeType.STRING: str, + AttributeType.INT: int, + AttributeType.LONG: int, + AttributeType.DOUBLE: float, + AttributeType.BOOL: lambda v: str(v).strip().lower() in ("true", "1", "yes"), + AttributeType.BINARY: lambda v: v if isinstance(v, bytes) else str(v).encode(), + AttributeType.TIMESTAMP: lambda v: datetime.datetime.fromisoformat(v), + AttributeType.LARGE_BINARY: largebinary, +} + # Only single-directional mapping. TO_PYOBJECT_MAPPING = { AttributeType.STRING: str, diff --git a/amber/src/main/python/pytexera/udf/udf_operator.py b/amber/src/main/python/pytexera/udf/udf_operator.py index 3c8e2d22291..25c7f0695e6 100644 --- a/amber/src/main/python/pytexera/udf/udf_operator.py +++ b/amber/src/main/python/pytexera/udf/udf_operator.py @@ -15,17 +15,13 @@ # specific language governing permissions and limitations # under the License. -import datetime from abc import abstractmethod from typing import Any, Dict, Iterator, Optional, Union import functools -import datetime -from abc import abstractmethod -from typing import Any, Dict, Iterator, Optional, Union from pyamber import * -from core.models.schema.attribute_type import AttributeType, TO_PYOBJECT_MAPPING +from core.models.schema.attribute_type import AttributeType, FROM_STRING_PARSER_MAPPING class _UiParameterSupport: _ui_parameter_injected_values: Dict[str, Any] = {} @@ -86,7 +82,7 @@ def _parse(value: Any, attr_type: AttributeType) -> Any: if value is None: return None - py_type = TO_PYOBJECT_MAPPING.get(attr_type) + py_type = FROM_STRING_PARSER_MAPPING.get(attr_type) return py_type(value) class UDFOperatorV2(_UiParameterSupport, TupleOperatorV2): diff --git a/amber/src/main/scala/org/apache/texera/web/service/ExecutionResultService.scala b/amber/src/main/scala/org/apache/texera/web/service/ExecutionResultService.scala index 285c836b607..3f0362f8242 100644 --- a/amber/src/main/scala/org/apache/texera/web/service/ExecutionResultService.scala +++ b/amber/src/main/scala/org/apache/texera/web/service/ExecutionResultService.scala @@ -23,8 +23,7 @@ import org.apache.pekko.actor.Cancellable import com.fasterxml.jackson.annotation.{JsonTypeInfo, JsonTypeName} import com.fasterxml.jackson.databind.node.ObjectNode import com.typesafe.scalalogging.LazyLogging -import org.apache.texera.amber.config.{ApplicationConfig, StorageConfig} -import org.apache.texera.amber.core.storage.DocumentFactory.ICEBERG +import org.apache.texera.amber.config.ApplicationConfig import org.apache.texera.amber.core.storage.model.VirtualDocument import org.apache.texera.amber.core.storage.result._ import org.apache.texera.amber.core.storage.{DocumentFactory, VFSURIFactory} diff --git a/common/pybuilder/src/main/scala/org/apache/texera/amber/pybuilder/EncodableInspector.scala b/common/pybuilder/src/main/scala/org/apache/texera/amber/pybuilder/EncodableInspector.scala index 58bdcb649ec..9362016c72f 100644 --- a/common/pybuilder/src/main/scala/org/apache/texera/amber/pybuilder/EncodableInspector.scala +++ b/common/pybuilder/src/main/scala/org/apache/texera/amber/pybuilder/EncodableInspector.scala @@ -46,7 +46,7 @@ final class EncodableInspector[C <: blackbox.Context](val c: C) { // Keep this as a string so it also works if the annotation is referenced indirectly. private val encodableStringAnnotationFqn = - "org.apache.texera.amber.EncodableStringAnn" + "org.apache.texera.amber.pybuilder.EncodableStringAnnotation" /** * If we are pointing at a getter/accessor, hop to its accessed field symbol when possible. @@ -110,10 +110,20 @@ final class EncodableInspector[C <: blackbox.Context](val c: C) { val symHasAnn = rawSym != null && rawSym != NoSymbol && { val accessed = safeAccessed(rawSym) - accessed != null && accessed != NoSymbol && accessed.annotations.exists(annIsEncodableString) + accessed != null && accessed != NoSymbol && + accessed.annotations.exists(annIsEncodableString) } - symHasAnn || (tree.tpe != null && typeHasEncodableString(tree.tpe)) + val methodReturnHasAnn = + rawSym != null && rawSym != NoSymbol && (rawSym match { + case m: MethodSymbol => + typeHasEncodableString(m.typeSignature.finalResultType) + case _ => + false + }) + + symHasAnn || methodReturnHasAnn || + (tree.tpe != null && typeHasEncodableString(tree.tpe)) } def isPythonTemplateBuilderArg(argExpr: c.Expr[Any]): Boolean = { diff --git a/common/pybuilder/src/main/scala/org/apache/texera/amber/pybuilder/EncodableStringAnnotation.java b/common/pybuilder/src/main/scala/org/apache/texera/amber/pybuilder/EncodableStringAnnotation.java index ea17e6d0130..f94c01f680a 100644 --- a/common/pybuilder/src/main/scala/org/apache/texera/amber/pybuilder/EncodableStringAnnotation.java +++ b/common/pybuilder/src/main/scala/org/apache/texera/amber/pybuilder/EncodableStringAnnotation.java @@ -29,6 +29,7 @@ ElementType.FIELD, ElementType.PARAMETER, ElementType.TYPE_USE, - ElementType.LOCAL_VARIABLE + ElementType.LOCAL_VARIABLE, + ElementType.METHOD }) public @interface EncodableStringAnnotation {} \ No newline at end of file diff --git a/common/workflow-core/src/main/scala/org/apache/texera/amber/core/tuple/Attribute.java b/common/workflow-core/src/main/scala/org/apache/texera/amber/core/tuple/Attribute.java index 730ab0fb8ec..dc812a55991 100644 --- a/common/workflow-core/src/main/scala/org/apache/texera/amber/core/tuple/Attribute.java +++ b/common/workflow-core/src/main/scala/org/apache/texera/amber/core/tuple/Attribute.java @@ -53,8 +53,9 @@ public Attribute( @JsonProperty(value = "attributeName", required = true) @NotBlank(message = "Attribute name is required") - public @EncodableStringAnnotation String getName() { - return PyStringTypes.EncodableStringFactory$.MODULE$.apply(attributeName); + @EncodableStringAnnotation + public String getName() { + return attributeName; } @JsonProperty(value = "attributeType", required = true) diff --git a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/DualInputPortsPythonUDFOpDescV2.scala b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/DualInputPortsPythonUDFOpDescV2.scala index a7a02560901..975ff0d7edd 100644 --- a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/DualInputPortsPythonUDFOpDescV2.scala +++ b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/DualInputPortsPythonUDFOpDescV2.scala @@ -36,6 +36,7 @@ class DualInputPortsPythonUDFOpDescV2 extends LogicalOp { "# Choose from the following templates:\n" + "# \n" + "# from pytexera import *\n" + + "# from core.models.schema.attribute_type import *\n" + "# \n" + "# class ProcessTupleOperator(UDFOperatorV2):\n" + "# \n" + diff --git a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonLambdaFunctionOpDesc.scala b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonLambdaFunctionOpDesc.scala index 9b66dde0759..c18ed1ee8be 100644 --- a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonLambdaFunctionOpDesc.scala +++ b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonLambdaFunctionOpDesc.scala @@ -78,6 +78,7 @@ class PythonLambdaFunctionOpDesc extends PythonOperatorDescriptor { // build the python udf code var code: String = "from pytexera import *\n" + + "from core.models.schema.attribute_type import *\n" + "class ProcessTupleOperator(UDFOperatorV2):\n" + " @overrides\n" + " def process_tuple(self, tuple_: Tuple, port: int) -> Iterator[Optional[TupleLike]]:\n" diff --git a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonTableReducerOpDesc.scala b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonTableReducerOpDesc.scala index 0c2bb07ff13..2221c6a1fa2 100644 --- a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonTableReducerOpDesc.scala +++ b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonTableReducerOpDesc.scala @@ -57,6 +57,7 @@ class PythonTableReducerOpDesc extends PythonOperatorDescriptor { s""" |from pytexera import * + |from core.models.schema.attribute_type import *"+ |class ProcessTableOperator(UDFTableOperator): | | @overrides diff --git a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUDFOpDescV2.scala b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUDFOpDescV2.scala index efac09d63b4..dcac72cc900 100644 --- a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUDFOpDescV2.scala +++ b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUDFOpDescV2.scala @@ -38,6 +38,7 @@ class PythonUDFOpDescV2 extends LogicalOp { "# Choose from the following templates:\n" + "# \n" + "# from pytexera import *\n" + + "# from core.models.schema.attribute_type import *\n" + "# \n" + "# class ProcessTupleOperator(UDFOperatorV2):\n" + "# \n" + diff --git a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjector.scala b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjector.scala index e6e181aad29..76bf11048e4 100644 --- a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjector.scala +++ b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjector.scala @@ -1,6 +1,5 @@ package org.apache.texera.amber.operator.udf.python -import org.apache.texera.amber.pybuilder.PyStringTypes.{EncodableString, EncodableStringFactory} import org.apache.texera.amber.pybuilder.PythonTemplateBuilder import org.apache.texera.amber.pybuilder.PythonTemplateBuilder.PythonTemplateBuilderStringContext @@ -33,11 +32,11 @@ object PythonUdfUiParameterInjector { } } - private def buildInjectedParametersMap(uiParameters: List[UiUDFParameter]): PythonTemplateBuilder = { + private def buildInjectedParametersMap( + uiParameters: List[UiUDFParameter] + ): PythonTemplateBuilder = { val entries = uiParameters.map { parameter => - val key: EncodableString = EncodableStringFactory(parameter.attribute.getName) - val value: EncodableString = EncodableStringFactory(parameter.value) - pyb"$key: $value" + pyb"${parameter.attribute.getName()}: ${parameter.value}" } entries.reduceOption((acc, entry) => acc + pyb", " + entry).getOrElse(pyb"") @@ -123,7 +122,10 @@ object PythonUdfUiParameterInjector { } val bodyIndent = inferClassBodyIndent(classBlock, classIndent).getOrElse(classIndent + " ") - val indentedHook = indentBlock((if (classBlock.endsWith("\n")) "" else "\n") + hookMethod.trim + "\n", bodyIndent) + val indentedHook = indentBlock( + (if (classBlock.endsWith("\n")) "" else "\n") + hookMethod.trim + "\n", + bodyIndent + ) encodedUserCode.substring(0, classBlockEnd) + indentedHook + @@ -156,4 +158,4 @@ object PythonUdfUiParameterInjector { // Inject hook into the UDF class body; Python base class will auto-call it before open() injectHookIntoUserClass(encodedUserCode, hookMethod) } -} \ No newline at end of file +} diff --git a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/source/PythonUDFSourceOpDescV2.scala b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/source/PythonUDFSourceOpDescV2.scala index a845f17ad3a..3a9eddd465e 100644 --- a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/source/PythonUDFSourceOpDescV2.scala +++ b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/source/PythonUDFSourceOpDescV2.scala @@ -33,13 +33,14 @@ class PythonUDFSourceOpDescV2 extends SourceOperatorDescriptor { @JsonProperty( required = true, - defaultValue = "# from pytexera import *\n" + - "# class GenerateOperator(UDFSourceOperator):\n" + - "# \n" + - "# @overrides\n" + - "# \n" + - "# def produce(self) -> Iterator[Union[TupleLike, TableLike, None]]:\n" + - "# yield\n" + defaultValue = + "# from pytexera import *\n" + "# from core.models.schema.attribute_type import *\n" + + "# class GenerateOperator(UDFSourceOperator):\n" + + "# \n" + + "# @overrides\n" + + "# \n" + + "# def produce(self) -> Iterator[Union[TupleLike, TableLike, None]]:\n" + + "# yield\n" ) @JsonSchemaTitle("Python script") @JsonPropertyDescription("Input your code here") @@ -66,7 +67,12 @@ class PythonUDFSourceOpDescV2 extends SourceOperatorDescriptor { ): PhysicalOp = { require(workers >= 1, "Need at least 1 worker.") val physicalOp = PhysicalOp - .sourcePhysicalOp(workflowId, executionId, operatorIdentifier, OpExecWithCode(PythonUdfUiParameterInjector.inject(code, uiParameters), "python")) + .sourcePhysicalOp( + workflowId, + executionId, + operatorIdentifier, + OpExecWithCode(PythonUdfUiParameterInjector.inject(code, uiParameters), "python") + ) .withInputPorts(operatorInfo.inputPorts) .withOutputPorts(operatorInfo.outputPorts) .withIsOneToManyOp(true) diff --git a/common/workflow-operator/src/test/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjectorSpec.scala b/common/workflow-operator/src/test/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjectorSpec.scala index ba8c2335c44..e4946c1b0f6 100644 --- a/common/workflow-operator/src/test/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjectorSpec.scala +++ b/common/workflow-operator/src/test/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjectorSpec.scala @@ -1,22 +1,3 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - package org.apache.texera.amber.operator.udf.python import org.apache.texera.amber.core.tuple.{Attribute, AttributeType} @@ -25,32 +6,158 @@ import org.scalatest.matchers.should.Matchers class PythonUdfUiParameterInjectorSpec extends AnyFlatSpec with Matchers { - private def createParameter(key: String, attributeType: AttributeType, value: String): UiUDFParameter = { + private def createParameter( + key: String, + attributeType: AttributeType, + value: String + ): UiUDFParameter = { val parameter = new UiUDFParameter parameter.attribute = new Attribute(key, attributeType) parameter.value = value parameter } - it should "inject ui parameter prelude through PythonTemplateBuilder" in { + private val baseUdfCode: String = + """from pytexera import * + | + |class ProcessTupleOperator(UDFOperatorV2): + | @overrides + | def open(self): + | print("open") + | + | @overrides + | def process_tuple(self, tuple_: Tuple, port: int): + | yield tuple_ + |""".stripMargin + + it should "return encoded user code unchanged when there are no ui parameters" in { + val injectedCode = PythonUdfUiParameterInjector.inject(baseUdfCode, Nil) + + injectedCode should include("class ProcessTupleOperator(UDFOperatorV2):") + injectedCode should include("""print("open")""") + injectedCode should not include ("_texera_injected_ui_parameters") + injectedCode should not include ("self.decode_python_template") + } + + it should "inject ui parameter hook into supported UDF class" in { val injectedCode = PythonUdfUiParameterInjector.inject( - "print('done')", - List(createParameter("date", AttributeType.TIMESTAMP, "2024-01-01T00:00:00Z")) + baseUdfCode, + List( + createParameter("date", AttributeType.TIMESTAMP, "2024-01-01T00:00:00Z") + ) ) - injectedCode should include("UDFOperatorV2.set_injected_ui_parameters({") + injectedCode should include("class ProcessTupleOperator(UDFOperatorV2):") + injectedCode should include("def _texera_injected_ui_parameters(self):") + injectedCode should include("return {") injectedCode should include("self.decode_python_template") - injectedCode should include("print('done')") + injectedCode should include("""print("open")""") + } + + it should "inject the reserved hook before the first method definition" in { + val injectedCode = PythonUdfUiParameterInjector.inject( + baseUdfCode, + List(createParameter("k", AttributeType.STRING, "v")) + ) + + val hookIndex = injectedCode.indexOf("def _texera_injected_ui_parameters(self):") + val openIndex = injectedCode.indexOf("def open(self):") + + hookIndex should be >= 0 + openIndex should be > hookIndex } - it should "throw when a key is declared with conflicting types" in { + it should "preserve multiple ui parameters in the injected map" in { + val injectedCode = PythonUdfUiParameterInjector.inject( + baseUdfCode, + List( + createParameter("param1", AttributeType.DOUBLE, "12.5"), + createParameter("param2", AttributeType.INTEGER, "1"), + createParameter("param3", AttributeType.STRING, "Hola"), + createParameter("param4", AttributeType.TIMESTAMP, "2026-02-28T03:15:00Z") + ) + ) + + injectedCode should include("def _texera_injected_ui_parameters(self):") + injectedCode should include("self.decode_python_template") + injectedCode.count(_ == ':') should be > 0 + } + + it should "throw when a parameter attribute is missing" in { + val invalidParameter = new UiUDFParameter + invalidParameter.attribute = null + invalidParameter.value = "anything" + + val exception = the[RuntimeException] thrownBy { + PythonUdfUiParameterInjector.inject(baseUdfCode, List(invalidParameter)) + } + + exception.getMessage should include("UiParameter attribute is required") + } + + it should "throw when a key is declared with conflicting attribute types" in { val conflictingParameters = List( - createParameter("date", AttributeType.DATE, "2024-01-01"), + createParameter("date", AttributeType.STRING, "2024-01-01"), + createParameter("date", AttributeType.TIMESTAMP, "2024-01-01T00:00:00Z") + ) + + val exception = the[RuntimeException] thrownBy { + PythonUdfUiParameterInjector.inject(baseUdfCode, conflictingParameters) + } + + exception.getMessage should include("UiParameter key 'date' has multiple types") + } + + it should "allow duplicate keys when the attribute type is the same" in { + val sameTypeParameters = List( + createParameter("date", AttributeType.TIMESTAMP, "2024-01-01"), createParameter("date", AttributeType.TIMESTAMP, "2024-01-01T00:00:00Z") ) - assertThrows[RuntimeException] { - PythonUdfUiParameterInjector.inject("print('done')", conflictingParameters) + noException should be thrownBy { + PythonUdfUiParameterInjector.inject(baseUdfCode, sameTypeParameters) + } + } + + it should "throw when the reserved hook is already defined by the user" in { + val udfWithReservedHook = + """from pytexera import * + | + |class ProcessTupleOperator(UDFOperatorV2): + | def _texera_injected_ui_parameters(self): + | return {} + | + | def open(self): + | pass + |""".stripMargin + + val exception = the[RuntimeException] thrownBy { + PythonUdfUiParameterInjector.inject( + udfWithReservedHook, + List(createParameter("k", AttributeType.STRING, "v")) + ) } + + exception.getMessage should include( + "Reserved method '_texera_injected_ui_parameters' is already defined" + ) + } + + it should "leave code unchanged when no supported user class is present" in { + val nonSupportedCode = + """from pytexera import * + | + |class SomethingElse: + | def open(self): + | pass + |""".stripMargin + + val injectedCode = PythonUdfUiParameterInjector.inject( + nonSupportedCode, + List(createParameter("k", AttributeType.STRING, "v")) + ) + + injectedCode should not include ("_texera_injected_ui_parameters") + injectedCode should include("class SomethingElse:") } } diff --git a/frontend/src/app/common/formly/collab-wrapper/collab-wrapper/collab-wrapper.component.css b/frontend/src/app/common/formly/collab-wrapper/collab-wrapper/collab-wrapper.component.css index 5f583284045..500e875dfa7 100644 --- a/frontend/src/app/common/formly/collab-wrapper/collab-wrapper/collab-wrapper.component.css +++ b/frontend/src/app/common/formly/collab-wrapper/collab-wrapper/collab-wrapper.component.css @@ -25,7 +25,7 @@ outline: transparent; overflow: visible; position: relative; - : 1pt; + :1pt; } :host ::ng-deep .ql-editor > p { diff --git a/frontend/src/app/workspace/component/code-editor-dialog/code-editor.component.ts b/frontend/src/app/workspace/component/code-editor-dialog/code-editor.component.ts index 6f999a770f1..81c8db5abe9 100644 --- a/frontend/src/app/workspace/component/code-editor-dialog/code-editor.component.ts +++ b/frontend/src/app/workspace/component/code-editor-dialog/code-editor.component.ts @@ -283,11 +283,7 @@ export class CodeEditorComponent implements AfterViewInit, SafeStyle, OnDestroy } if (this.code) { - this.detachYCodeListener = - this.uiUdfParametersSyncService.attachToYCode( - this.currentOperatorId, - this.code - ); + this.detachYCodeListener = this.uiUdfParametersSyncService.attachToYCode(this.currentOperatorId, this.code); } }); } diff --git a/frontend/src/app/workspace/component/menu/coeditor-user-icon/coeditor-user-icon.component.css b/frontend/src/app/workspace/component/menu/coeditor-user-icon/coeditor-user-icon.component.css index 826a2e3e64f..51da6c0f2bb 100644 --- a/frontend/src/app/workspace/component/menu/coeditor-user-icon/coeditor-user-icon.component.css +++ b/frontend/src/app/workspace/component/menu/coeditor-user-icon/coeditor-user-icon.component.css @@ -16,4 +16,3 @@ * specific language governing permissions and limitations * under the License. */ - diff --git a/frontend/src/app/workspace/component/property-editor/operator-property-edit-frame/operator-property-edit-frame.component.ts b/frontend/src/app/workspace/component/property-editor/operator-property-edit-frame/operator-property-edit-frame.component.ts index 6e71b076e22..300c5bfcbab 100644 --- a/frontend/src/app/workspace/component/property-editor/operator-property-edit-frame/operator-property-edit-frame.component.ts +++ b/frontend/src/app/workspace/component/property-editor/operator-property-edit-frame/operator-property-edit-frame.component.ts @@ -201,10 +201,7 @@ export class OperatorPropertyEditFrameComponent implements OnInit, OnChanges, On if (operatorId !== this.currentOperatorId) return; const readCurrentUiParams = () => - this.workflowActionService - .getTexeraGraph() - .getOperator(operatorId) - .operatorProperties?.uiParameters ?? []; + this.workflowActionService.getTexeraGraph().getOperator(operatorId).operatorProperties?.uiParameters ?? []; // initial read let currentUiParams = readCurrentUiParams(); @@ -216,10 +213,7 @@ export class OperatorPropertyEditFrameComponent implements OnInit, OnChanges, On let attempts = 0; while (!isEqual(currentUiParams, parameters) && attempts < MAX_ATTEMPTS) { - const currentOperator = - this.workflowActionService - .getTexeraGraph() - .getOperator(operatorId); + const currentOperator = this.workflowActionService.getTexeraGraph().getOperator(operatorId); const newModel = { ...cloneDeep(currentOperator.operatorProperties), @@ -236,10 +230,10 @@ export class OperatorPropertyEditFrameComponent implements OnInit, OnChanges, On } if (!isEqual(currentUiParams, parameters)) { - console.warn( - `uiParameters did not converge after ${attempts}/${MAX_ATTEMPTS} attempts`, - { currentLen: currentUiParams.length, targetLen: parameters.length } - ); + console.warn(`uiParameters did not converge after ${attempts}/${MAX_ATTEMPTS} attempts`, { + currentLen: currentUiParams.length, + targetLen: parameters.length, + }); } }); } diff --git a/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.html b/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.html index 16e859d79c8..8b9ffecdb2f 100644 --- a/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.html +++ b/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.html @@ -1,5 +1,6 @@ -
- +
Value
@@ -9,10 +10,8 @@
+ *ngFor="let param of (model || []); let i = index; trackBy: trackByParamName"> -
@@ -33,7 +32,6 @@
-
diff --git a/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.ts b/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.ts index 2ca3ffb0a3a..85972be9e76 100644 --- a/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.ts +++ b/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.ts @@ -28,9 +28,11 @@ export class UiUdfParametersComponent extends FieldArrayType { // 3) Enforce at the reactive form level if (field.formControl) { - disabled - ? field.formControl.disable({ emitEvent: false }) - : field.formControl.enable({ emitEvent: false }); + if (disabled) { + field.formControl.disable({ emitEvent: false }); + } else { + field.formControl.enable({ emitEvent: false }); + } } else { // If control isn't created yet, disable it at init time. const prevOnInit = field.hooks?.onInit; diff --git a/frontend/src/app/workspace/service/code-editor/ui-udf-parameters-sync.service.ts b/frontend/src/app/workspace/service/code-editor/ui-udf-parameters-sync.service.ts index cae70645aac..c28742977ff 100644 --- a/frontend/src/app/workspace/service/code-editor/ui-udf-parameters-sync.service.ts +++ b/frontend/src/app/workspace/service/code-editor/ui-udf-parameters-sync.service.ts @@ -15,13 +15,11 @@ import { YText } from "yjs/dist/src/types/YText"; @Injectable({ providedIn: "root" }) export class UiUdfParametersSyncService { + private readonly uiParametersChangedSubject = new ReplaySubject<{ operatorId: string; parameters: UiUdfParameter[] }>( + 1 + ); - private readonly uiParametersChangedSubject = - new ReplaySubject<{ operatorId: string; parameters: UiUdfParameter[] }>(1); - - - readonly uiParametersChanged$ = - this.uiParametersChangedSubject.asObservable(); + readonly uiParametersChanged$ = this.uiParametersChangedSubject.asObservable(); constructor( private workflowActionService: WorkflowActionService, @@ -46,9 +44,7 @@ export class UiUdfParametersSyncService { } syncStructureFromCode(operatorId: string, codeFromEditor?: string): void { - const operator = this.workflowActionService - .getTexeraGraph() - .getOperator(operatorId); + const operator = this.workflowActionService.getTexeraGraph().getOperator(operatorId); if (!operator || !this.isSupportedPythonUdfType(operator.operatorType)) { return; @@ -60,8 +56,7 @@ export class UiUdfParametersSyncService { } const existingParameters = operator.operatorProperties?.uiParameters ?? []; - const mergedUiParameters = - this.buildParsedShapeWithPreservedValues(code, existingParameters); + const mergedUiParameters = this.buildParsedShapeWithPreservedValues(code, existingParameters); if (isEqual(existingParameters, mergedUiParameters)) { return; @@ -77,18 +72,12 @@ export class UiUdfParametersSyncService { // this.workflowActionService.setOperatorProperty(...) } - private buildParsedShapeWithPreservedValues( - code: string, - existingParameters: any[] - ): UiUdfParameter[] { - const parsedParameters = - this.uiUdfParametersParserService.parse(code); + private buildParsedShapeWithPreservedValues(code: string, existingParameters: any[]): UiUdfParameter[] { + const parsedParameters = this.uiUdfParametersParserService.parse(code); const existingValues = new Map(); existingParameters.forEach((parameter: any) => { - const parameterName = - parameter?.attribute?.attributeName ?? - parameter?.attribute?.name; + const parameterName = parameter?.attribute?.attributeName ?? parameter?.attribute?.name; if (isDefined(parameterName) && isDefined(parameter?.value)) { existingValues.set(parameterName, parameter.value); @@ -97,21 +86,17 @@ export class UiUdfParametersSyncService { return parsedParameters.map(parameter => ({ ...parameter, - value: - existingValues.get(parameter.attribute.attributeName) ?? "", + value: existingValues.get(parameter.attribute.attributeName) ?? "", })); } private getSharedCode(operatorId: string): string | undefined { try { - const sharedOperatorType = - this.workflowActionService - .getTexeraGraph() - .getSharedOperatorType(operatorId); + const sharedOperatorType = this.workflowActionService.getTexeraGraph().getSharedOperatorType(operatorId); - const operatorProperties = - sharedOperatorType.get("operatorProperties") as - YType>; + const operatorProperties = sharedOperatorType.get("operatorProperties") as YType< + Readonly<{ [key: string]: any }> + >; const yCode = operatorProperties.get("code") as YText; return yCode?.toString(); @@ -121,10 +106,8 @@ export class UiUdfParametersSyncService { } private isSupportedPythonUdfType(operatorType: string): boolean { - return [ - PYTHON_UDF_V2_OP_TYPE, - PYTHON_UDF_SOURCE_V2_OP_TYPE, - DUAL_INPUT_PORTS_PYTHON_UDF_V2_OP_TYPE, - ].includes(operatorType); + return [PYTHON_UDF_V2_OP_TYPE, PYTHON_UDF_SOURCE_V2_OP_TYPE, DUAL_INPUT_PORTS_PYTHON_UDF_V2_OP_TYPE].includes( + operatorType + ); } } diff --git a/frontend/src/app/workspace/types/workflow-compiling.interface.ts b/frontend/src/app/workspace/types/workflow-compiling.interface.ts index 1849552c0ab..a81d6f844cd 100644 --- a/frontend/src/app/workspace/types/workflow-compiling.interface.ts +++ b/frontend/src/app/workspace/types/workflow-compiling.interface.ts @@ -73,15 +73,41 @@ export type CompilationStateInfo = Readonly< // possible types of an attribute // Canonical frontend / JSON schema names -export type AttributeType = "string" | "integer" | "long" | "double" | "boolean" | "timestamp" | "binary" | "large_binary"; +export type AttributeType = + | "string" + | "integer" + | "long" + | "double" + | "boolean" + | "timestamp" + | "binary" + | "large_binary"; // Java enum constant names (AttributeType.java) -export const JAVA_ATTRIBUTE_TYPE_NAMES = ["STRING", "INTEGER", "LONG", "DOUBLE", "BOOLEAN", "TIMESTAMP", "BINARY", "LARGE_BINARY",] as const; +export const JAVA_ATTRIBUTE_TYPE_NAMES = [ + "STRING", + "INTEGER", + "LONG", + "DOUBLE", + "BOOLEAN", + "TIMESTAMP", + "BINARY", + "LARGE_BINARY", +] as const; export type JavaAttributeTypeName = (typeof JAVA_ATTRIBUTE_TYPE_NAMES)[number]; // Python enum constant names (core.models.AttributeType) -export const PYTHON_ATTRIBUTE_TYPE_NAMES = ["STRING", "INT", "LONG", "DOUBLE", "BOOL", "TIMESTAMP", "BINARY", "LARGE_BINARY",] as const; +export const PYTHON_ATTRIBUTE_TYPE_NAMES = [ + "STRING", + "INT", + "LONG", + "DOUBLE", + "BOOL", + "TIMESTAMP", + "BINARY", + "LARGE_BINARY", +] as const; export type PythonAttributeTypeName = (typeof PYTHON_ATTRIBUTE_TYPE_NAMES)[number]; From 7a210a7f152e4e190afb054f3775d2bdbfed6ec1 Mon Sep 17 00:00:00 2001 From: Carlos Ernesto Alvarez Berumen Date: Wed, 4 Mar 2026 02:10:02 -0600 Subject: [PATCH 04/12] py2udf --- .../src/main/scala/py2udf/catalog.json | 2889 ++++++++++ .../main/scala/py2udf/clean_sp500_2000.csv | 5106 +++++++++++++++++ .../demo_texera_workflow_vx2.workflow.json | 400 ++ ...emo_texera_workflow_vx2.workflow.meta.json | 398 ++ .../src/main/scala/py2udf/py2udf.ipynb | 2028 +++++++ 5 files changed, 10821 insertions(+) create mode 100644 common/workflow-operator/src/main/scala/py2udf/catalog.json create mode 100644 common/workflow-operator/src/main/scala/py2udf/clean_sp500_2000.csv create mode 100644 common/workflow-operator/src/main/scala/py2udf/demo_texera_workflow_vx2.workflow.json create mode 100644 common/workflow-operator/src/main/scala/py2udf/demo_texera_workflow_vx2.workflow.meta.json create mode 100644 common/workflow-operator/src/main/scala/py2udf/py2udf.ipynb diff --git a/common/workflow-operator/src/main/scala/py2udf/catalog.json b/common/workflow-operator/src/main/scala/py2udf/catalog.json new file mode 100644 index 00000000000..a65f77859a7 --- /dev/null +++ b/common/workflow-operator/src/main/scala/py2udf/catalog.json @@ -0,0 +1,2889 @@ +{ + "operators": [ + { + "operatorID": "ArrowSource-operator-2953ddfa-3b7c-4b40-be61-e86af2d5e4fa", + "operatorType": "ArrowSource", + "operatorVersion": "N/A", + "operatorProperties": { + "fileName": "" + }, + "inputPorts": [], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Arrow File Scan", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "CSVFileScan-operator-7a2892e1-8812-41d9-80aa-273aa68cb8cc", + "operatorType": "CSVFileScan", + "operatorVersion": "N/A", + "operatorProperties": { + "fileEncoding": "UTF_8", + "customDelimiter": ",", + "hasHeader": true, + "fileName": "" + }, + "inputPorts": [], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "CSV File Scan", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "FileScan-operator-a71dc68f-95db-433a-b927-4aa1748d6ee6", + "operatorType": "FileScan", + "operatorVersion": "N/A", + "operatorProperties": { + "encoding": "UTF_8", + "extract": false, + "outputFileName": false, + "attributeType": "string", + "attributeName": "line", + "fileName": "" + }, + "inputPorts": [], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": " File Scan", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "JSONLFileScan-operator-fa519958-7a70-4761-a579-aa2192e026d9", + "operatorType": "JSONLFileScan", + "operatorVersion": "N/A", + "operatorProperties": { + "fileEncoding": "UTF_8", + "fileName": "" + }, + "inputPorts": [], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "JSONL File Scan", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "TextInput-operator-c922ef7e-d321-495c-9517-25ebe6669d86", + "operatorType": "TextInput", + "operatorVersion": "N/A", + "operatorProperties": { + "attributeType": "string", + "attributeName": "line", + "textInput": "" + }, + "inputPorts": [], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Text Input", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "DictionaryMatcher-operator-433f9c67-db8c-4682-8181-d7ee21dc446f", + "operatorType": "DictionaryMatcher", + "operatorVersion": "N/A", + "operatorProperties": { + "result attribute": "matched", + "Dictionary": "", + "Attribute": "", + "Matching type": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Dictionary matcher", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "KeywordSearch-operator-f4d943e2-f145-483c-9b73-301201fbebc4", + "operatorType": "KeywordSearch", + "operatorVersion": "N/A", + "operatorProperties": { + "attribute": "", + "keyword": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Keyword Search", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "Regex-operator-a822d4bb-174d-4cda-a282-5915d5bc5f22", + "operatorType": "Regex", + "operatorVersion": "N/A", + "operatorProperties": { + "caseInsensitive": false, + "attribute": "", + "regex": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Regular Expression", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "SubstringSearch-operator-22333ad4-cf2c-4bdf-a204-a6ab2ab8e826", + "operatorType": "SubstringSearch", + "operatorVersion": "N/A", + "operatorProperties": { + "isCaseSensitive": false, + "attribute": "", + "substring": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Substring Search", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "CartesianProduct-operator-98d5fc05-8542-43fc-97f3-4ffeee552a8b", + "operatorType": "CartesianProduct", + "operatorVersion": "N/A", + "operatorProperties": {}, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "left", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + }, + { + "portID": "input-1", + "displayName": "right", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [ + { + "id": 0, + "internal": false + } + ] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Cartesian Product", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "HashJoin-operator-6be1c0e0-4ffc-4b3a-9921-652089668587", + "operatorType": "HashJoin", + "operatorVersion": "N/A", + "operatorProperties": { + "joinType": "inner", + "buildAttributeName": "", + "probeAttributeName": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "left", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + }, + { + "portID": "input-1", + "displayName": "right", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [ + { + "id": 0, + "internal": false + } + ] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Hash Join", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "IntervalJoin-operator-94ce5ee3-888d-4194-8750-6af5eafb3bcd", + "operatorType": "IntervalJoin", + "operatorVersion": "N/A", + "operatorProperties": { + "constant": 10, + "includeLeftBound": true, + "includeRightBound": true, + "timeIntervalType": "day", + "leftAttributeName": "", + "rightAttributeName": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "left table", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + }, + { + "portID": "input-1", + "displayName": "right table", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [ + { + "id": 0, + "internal": false + } + ] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Interval Join", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "Aggregate-operator-fbcc0b1a-d5bc-42c7-89d9-5f99a98d0569", + "operatorType": "Aggregate", + "operatorVersion": "N/A", + "operatorProperties": { + "aggregations": [ + { + "aggFunction": "", + "attribute": "", + "result attribute": "" + } + ] + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Aggregate", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "Distinct-operator-e55deaf5-0898-4af9-8195-965899c8ea9b", + "operatorType": "Distinct", + "operatorVersion": "N/A", + "operatorProperties": {}, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Distinct", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "Sort-operator-0ed0e580-1853-46a1-aca8-95c338099e8b", + "operatorType": "Sort", + "operatorVersion": "N/A", + "operatorProperties": { + "attributes": [] + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Sort", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "Sort-operator-6ed8c337-70be-4e3a-b931-73aa0ecf0d42", + "operatorType": "Sort", + "operatorVersion": "N/A", + "operatorProperties": {}, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Sort", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "Filter-operator-be233302-0e5f-4535-859b-21a05d90eef4", + "operatorType": "Filter", + "operatorVersion": "N/A", + "operatorProperties": {}, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Filter", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "Limit-operator-fd28a8eb-3c59-4924-8165-122642d10bd3", + "operatorType": "Limit", + "operatorVersion": "N/A", + "operatorProperties": {}, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Limit", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "Projection-operator-b3114c5f-1696-420f-bada-fe708c11c3bf", + "operatorType": "Projection", + "operatorVersion": "N/A", + "operatorProperties": { + "isDrop": false + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Projection", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "TypeCasting-operator-b8785d82-8dce-44ee-b47a-4a35ef84fe56", + "operatorType": "TypeCasting", + "operatorVersion": "N/A", + "operatorProperties": { + "typeCastingUnits": [] + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Type Casting", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "RandomKSampling-operator-914b05e3-7ab7-48d1-8ddc-1559302c5d6b", + "operatorType": "RandomKSampling", + "operatorVersion": "N/A", + "operatorProperties": {}, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Random K Sampling", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "ReservoirSampling-operator-59bc7446-274b-4934-be28-bd11b59dd70b", + "operatorType": "ReservoirSampling", + "operatorVersion": "N/A", + "operatorProperties": {}, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Reservoir Sampling", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "Split-operator-1aae1a37-276f-4863-a29f-d8bce28fb5bb", + "operatorType": "Split", + "operatorVersion": "N/A", + "operatorProperties": { + "k": 80, + "random": true, + "seed": 1 + }, + "inputPorts": [], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + }, + { + "portID": "output-1", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Split", + "dynamicInputPorts": true, + "dynamicOutputPorts": true + }, + { + "operatorID": "UnnestString-operator-10eca6e3-5952-4751-9845-e9dfaedaf5a2", + "operatorType": "UnnestString", + "operatorVersion": "N/A", + "operatorProperties": { + "Delimiter": ",", + "Result attribute": "unnestResult", + "Attribute": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Unnest String", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "BarChart-operator-ef49769f-57fa-43d2-a49c-7bec25797d6c", + "operatorType": "BarChart", + "operatorVersion": "N/A", + "operatorProperties": { + "categoryColumn": "No Selection", + "horizontalOrientation": false, + "fields": "", + "value": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Bar Chart", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "BubbleChart-operator-f702a4a4-689a-4bd3-9152-7ebe5178a0b9", + "operatorType": "BubbleChart", + "operatorVersion": "N/A", + "operatorProperties": { + "enableColor": false, + "xValue": "", + "yValue": "", + "zValue": "", + "colorCategory": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Bubble Chart", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "DotPlot-operator-b74e2826-dca4-4579-9705-e350215dd226", + "operatorType": "DotPlot", + "operatorVersion": "N/A", + "operatorProperties": { + "Count Attribute": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Dot Plot", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "DumbbellPlot-operator-7818ab0d-dad7-4179-8d6c-2ebb01ee5686", + "operatorType": "DumbbellPlot", + "operatorVersion": "N/A", + "operatorProperties": { + "categoryColumnName": "", + "dumbbellStartValue": "", + "dumbbellEndValue": "", + "measurementColumnName": "", + "comparedColumnName": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Dumbbell Plot", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "FigureFactoryTable-operator-1d300a9e-0815-441b-a778-892710a6eebb", + "operatorType": "FigureFactoryTable", + "operatorVersion": "N/A", + "operatorProperties": { + "add attribute": [] + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Figure Factory Table", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "GanttChart-operator-e0aea151-a552-46f9-8fc0-221c80a4e19c", + "operatorType": "GanttChart", + "operatorVersion": "N/A", + "operatorProperties": { + "start": "", + "finish": "", + "task": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Gantt Chart", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "IcicleChart-operator-3ae3e25c-7664-45b7-aeb3-67b6b425e4a3", + "operatorType": "IcicleChart", + "operatorVersion": "N/A", + "operatorProperties": { + "hierarchy": [ + { + "attributeName": "" + } + ], + "value": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Icicle Chart", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "IcicleChart-operator-c75d70ee-3ec0-4f32-9e13-f4c723d88efe", + "operatorType": "IcicleChart", + "operatorVersion": "N/A", + "operatorProperties": { + "hierarchy": [ + { + "attributeName": "" + } + ], + "value": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Icicle Chart", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "LineChart-operator-fcc4b934-324a-4cb5-8452-2d2acd0a7707", + "operatorType": "LineChart", + "operatorVersion": "N/A", + "operatorProperties": { + "yLabel": "Y Axis", + "xLabel": "X Axis", + "lines": [] + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Line Chart", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "PieChart-operator-3b836b59-694c-48ae-bf38-f4d0f62dd897", + "operatorType": "PieChart", + "operatorVersion": "N/A", + "operatorProperties": { + "value": "", + "name": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Pie Chart", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "RangeSlider-operator-0f974148-5915-4cf6-a739-5679cdaca92a", + "operatorType": "RangeSlider", + "operatorVersion": "N/A", + "operatorProperties": { + "Y-axis": "", + "X-axis": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Range Slider", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "SankeyDiagram-operator-066172b7-1069-47c1-b890-278ebf39ca69", + "operatorType": "SankeyDiagram", + "operatorVersion": "N/A", + "operatorProperties": { + "Source Attribute": "", + "Target Attribute": "", + "Value Attribute": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Sankey Diagram", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "Scatterplot-operator-1931db20-31dc-4c88-9da6-d3dcb398ebfc", + "operatorType": "Scatterplot", + "operatorVersion": "N/A", + "operatorProperties": { + "alpha": 1, + "xLogScale": false, + "yLogScale": false, + "xColumn": "", + "yColumn": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Scatter Plot", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "TablesPlot-operator-e0a3b5dd-6393-4a29-9c4c-56ad8b8b4e93", + "operatorType": "TablesPlot", + "operatorVersion": "N/A", + "operatorProperties": { + "add attribute": [ + { + "attributeName": "" + } + ] + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Tables Plot", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "TimeSeriesPlot-operator-2efaa07d-e691-46de-9b83-53c242841d04", + "operatorType": "TimeSeriesPlot", + "operatorVersion": "N/A", + "operatorProperties": { + "categoryColumn": "No Selection", + "facetColumn": "No Selection", + "line": "line", + "slider": false, + "timeColumn": "", + "valueColumn": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Time Series Plot", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "BoxViolinPlot-operator-f50c0377-4b0a-4ae3-bce2-7fc9b353fbd3", + "operatorType": "BoxViolinPlot", + "operatorVersion": "N/A", + "operatorProperties": { + "Quartile Method": "linear", + "horizontalOrientation": false, + "violinPlot": false, + "value": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Box/Violin Plot", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "ContinuousErrorBands-operator-07d42ae5-20f9-476e-96a0-72d24e44dbb6", + "operatorType": "ContinuousErrorBands", + "operatorVersion": "N/A", + "operatorProperties": { + "xLabel": "X Axis", + "yLabel": "Y Axis", + "bands": [] + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Continuous Error Bands", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "Histogram-operator-77939ed1-9f38-4f3b-be58-31a38916faa1", + "operatorType": "Histogram", + "operatorVersion": "N/A", + "operatorProperties": { + "value": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Histogram", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "Histogram2D-operator-60f6c41c-1e37-4ef8-b44b-c3388deb60d1", + "operatorType": "Histogram2D", + "operatorVersion": "N/A", + "operatorProperties": { + "xBins": 10, + "yBins": 10, + "normalize": "density", + "xColumn": "", + "yColumn": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Histogram2D", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "ScatterMatrixChart-operator-38745d8a-3785-4e52-ba05-5f7da4603557", + "operatorType": "ScatterMatrixChart", + "operatorVersion": "N/A", + "operatorProperties": { + "Selected Attributes": [], + "Color": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Scatter Matrix Chart", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "StripChart-operator-4f9e7bc0-1647-4d58-bacd-c65984dc6a69", + "operatorType": "StripChart", + "operatorVersion": "N/A", + "operatorProperties": { + "x": "", + "y": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Strip Chart", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "TreePlot-operator-38877af1-9b6a-4fb6-8cee-edc5a54a5c9b", + "operatorType": "TreePlot", + "operatorVersion": "N/A", + "operatorProperties": { + "Edge List Column": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Tree Plot", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "ContourPlot-operator-d430f695-c9a0-4c48-8cc2-776b5b5be8c0", + "operatorType": "ContourPlot", + "operatorVersion": "N/A", + "operatorProperties": { + "gridSize": "10", + "connectGaps": true, + "Coloring Method": "heatmap", + "x": "", + "y": "", + "z": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Contour Plot", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "Dendrogram-operator-00a7c79c-8ac3-4ef4-b7ac-b99affe5ad2e", + "operatorType": "Dendrogram", + "operatorVersion": "N/A", + "operatorProperties": { + "xVal": "", + "yVal": "", + "Labels": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Dendrogram", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "HeatMap-operator-55972f50-222c-4f85-9041-9a1a3a65605d", + "operatorType": "HeatMap", + "operatorVersion": "N/A", + "operatorProperties": { + "x": "", + "y": "", + "Values": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Heatmap", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "NetworkGraph-operator-f3c26f3a-8e31-4ac2-a477-7e747e31491e", + "operatorType": "NetworkGraph", + "operatorVersion": "N/A", + "operatorProperties": { + "title": "Network Graph", + "source": "", + "destination": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Network Graph", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "QuiverPlot-operator-1ed3209b-4831-492e-aab1-c44b9ae78430", + "operatorType": "QuiverPlot", + "operatorVersion": "N/A", + "operatorProperties": { + "x": "", + "y": "", + "u": "", + "v": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Quiver Plot", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "QuiverPlot-operator-dcebfefd-9f3a-4702-93ae-8a374c2a5c60", + "operatorType": "QuiverPlot", + "operatorVersion": "N/A", + "operatorProperties": { + "x": "", + "y": "", + "u": "", + "v": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Quiver Plot", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "TernaryPlot-operator-2000371f-c80f-41c2-a51c-a00a0ed3ac10", + "operatorType": "TernaryPlot", + "operatorVersion": "N/A", + "operatorProperties": { + "colorEnabled": false, + "firstVariable": "", + "secondVariable": "", + "thirdVariable": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Ternary Plot", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "VolcanoPlot-operator-2ca7d2cd-69f3-4d26-935d-07cb048096d6", + "operatorType": "VolcanoPlot", + "operatorVersion": "N/A", + "operatorProperties": { + "effectColumn": "", + "pvalueColumn": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Volcano Plot", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "TernaryPlot-operator-dd361c61-76a7-44f3-aa56-2ff10ce5ceaf", + "operatorType": "TernaryPlot", + "operatorVersion": "N/A", + "operatorProperties": { + "colorEnabled": false, + "firstVariable": "", + "secondVariable": "", + "thirdVariable": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Ternary Plot", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "VolcanoPlot-operator-6a436ad1-b8c7-4804-af86-2ec7f6106f72", + "operatorType": "VolcanoPlot", + "operatorVersion": "N/A", + "operatorProperties": { + "effectColumn": "", + "pvalueColumn": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Volcano Plot", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "BulletChart-operator-4ecc403d-14b3-4a22-ab8a-f19d6c57c520", + "operatorType": "BulletChart", + "operatorVersion": "N/A", + "operatorProperties": { + "value": "", + "deltaReference": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Bullet Chart", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "CandlestickChart-operator-7f934e53-f4e0-4cb5-a0dc-db96f7d3de47", + "operatorType": "CandlestickChart", + "operatorVersion": "N/A", + "operatorProperties": { + "date": "", + "open": "", + "high": "", + "low": "", + "close": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Candlestick Chart", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "FunnelPlot-operator-1ace8f58-05f7-4fae-8b7a-48fa05ca869f", + "operatorType": "FunnelPlot", + "operatorVersion": "N/A", + "operatorProperties": { + "x": "", + "y": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Funnel Plot", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "GaugeChart-operator-bdfb4bfd-51db-4300-a76b-919b66acbd34", + "operatorType": "GaugeChart", + "operatorVersion": "N/A", + "operatorProperties": { + "value": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Gauge Chart", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "WaterfallChart-operator-e51ec00c-1815-4c16-b50e-2292e5780461", + "operatorType": "WaterfallChart", + "operatorVersion": "N/A", + "operatorProperties": { + "xColumn": "", + "yColumn": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Waterfall Chart", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "HTMLVisualizer-operator-c815a669-81af-4adb-865b-d9f2404cc249", + "operatorType": "HTMLVisualizer", + "operatorVersion": "N/A", + "operatorProperties": { + "htmlContentAttrName": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "HTML Visualizer", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "ImageVisualizer-operator-569d29a2-d6d7-408d-8b3e-1920ae25fac3", + "operatorType": "ImageVisualizer", + "operatorVersion": "N/A", + "operatorProperties": { + "binaryContent": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Image Visualizer", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "URLVisualizer-operator-187113ba-5c92-4e55-beff-8c23923cae3d", + "operatorType": "URLVisualizer", + "operatorVersion": "N/A", + "operatorProperties": { + "urlContentAttrName": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "URL Visualizer", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "WordCloud-operator-83815e13-64dc-4cb1-be4c-295d1f93fee6", + "operatorType": "WordCloud", + "operatorVersion": "N/A", + "operatorProperties": { + "topN": 100, + "textColumn": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Word Cloud", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "ChoroplethMap-operator-e0b89bb9-e0f9-45eb-91e9-681d8ea4d5f0", + "operatorType": "ChoroplethMap", + "operatorVersion": "N/A", + "operatorProperties": { + "locations": "", + "color": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Choropleth Map", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "Scatter3DChart-operator-929fb224-6e2f-4917-84ed-b04c361424c7", + "operatorType": "Scatter3DChart", + "operatorVersion": "N/A", + "operatorProperties": { + "x": "", + "y": "", + "z": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Scatter3D Chart", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "NestedTable-operator-b107f3d0-9a4c-4118-8a5b-836bb94dc2a2", + "operatorType": "NestedTable", + "operatorVersion": "N/A", + "operatorProperties": { + "add attribute": [] + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Nested Table", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "If-operator-8febb7e9-56b7-41c3-ae3e-b3dab428a7cd", + "operatorType": "If", + "operatorVersion": "N/A", + "operatorProperties": { + "conditionName": "" + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "Condition", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + }, + { + "portID": "input-1", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [ + { + "id": 0, + "internal": false + } + ] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "False", + "allowMultiInputs": false, + "isDynamicPort": false + }, + { + "portID": "output-1", + "displayName": "True", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "If", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + } + ], + "operatorPositions": { + "ArrowSource-operator-2953ddfa-3b7c-4b40-be61-e86af2d5e4fa": { + "x": 535.63330078125, + "y": 281.95001220703125 + }, + "CSVFileScan-operator-7a2892e1-8812-41d9-80aa-273aa68cb8cc": { + "x": 427.6333312988281, + "y": 153.9499969482422 + }, + "FileScan-operator-a71dc68f-95db-433a-b927-4aa1748d6ee6": { + "x": 600.63330078125, + "y": 197.9499969482422 + }, + "JSONLFileScan-operator-fa519958-7a70-4761-a579-aa2192e026d9": { + "x": 710.6333618164062, + "y": 334.95001220703125 + }, + "TextInput-operator-c922ef7e-d321-495c-9517-25ebe6669d86": { + "x": 717.6333618164062, + "y": 187.9499969482422 + }, + "DictionaryMatcher-operator-433f9c67-db8c-4682-8181-d7ee21dc446f": { + "x": 417.6333312988281, + "y": 340.95001220703125 + }, + "KeywordSearch-operator-f4d943e2-f145-483c-9b73-301201fbebc4": { + "x": 406.6333312988281, + "y": 513.9500122070312 + }, + "Regex-operator-a822d4bb-174d-4cda-a282-5915d5bc5f22": { + "x": 597.63330078125, + "y": 489.95001220703125 + }, + "SubstringSearch-operator-22333ad4-cf2c-4bdf-a204-a6ab2ab8e826": { + "x": 736.6333618164062, + "y": 582.9500122070312 + }, + "CartesianProduct-operator-98d5fc05-8542-43fc-97f3-4ffeee552a8b": { + "x": -156.36668395996094, + "y": 582.9500122070312 + }, + "HashJoin-operator-6be1c0e0-4ffc-4b3a-9921-652089668587": { + "x": 85.63331604003906, + "y": 231.9499969482422 + }, + "IntervalJoin-operator-94ce5ee3-888d-4194-8750-6af5eafb3bcd": { + "x": 159.63331604003906, + "y": 414.95001220703125 + }, + "Aggregate-operator-fbcc0b1a-d5bc-42c7-89d9-5f99a98d0569": { + "x": -172.36668395996094, + "y": -22.049999237060547 + }, + "Distinct-operator-e55deaf5-0898-4af9-8195-965899c8ea9b": { + "x": -408.3666687011719, + "y": 311.95001220703125 + }, + "Sort-operator-0ed0e580-1853-46a1-aca8-95c338099e8b": { + "x": 47.63335037231445, + "y": -31.049999237060547 + }, + "Sort-operator-6ed8c337-70be-4e3a-b931-73aa0ecf0d42": { + "x": -400.3666687011719, + "y": 743.9500122070312 + }, + "Filter-operator-be233302-0e5f-4535-859b-21a05d90eef4": { + "x": -556.36669921875, + "y": 1110.949951171875 + }, + "Limit-operator-fd28a8eb-3c59-4924-8165-122642d10bd3": { + "x": -665.36669921875, + "y": 992.9500122070312 + }, + "Projection-operator-b3114c5f-1696-420f-bada-fe708c11c3bf": { + "x": -295.3666687011719, + "y": 1476.949951171875 + }, + "TypeCasting-operator-b8785d82-8dce-44ee-b47a-4a35ef84fe56": { + "x": -219.3666534423828, + "y": 1219.949951171875 + }, + "RandomKSampling-operator-914b05e3-7ab7-48d1-8ddc-1559302c5d6b": { + "x": -549, + "y": 1750 + }, + "ReservoirSampling-operator-59bc7446-274b-4934-be28-bd11b59dd70b": { + "x": -332.3666687011719, + "y": 1897.949951171875 + }, + "Split-operator-1aae1a37-276f-4863-a29f-d8bce28fb5bb": { + "x": -611.36669921875, + "y": 1597.949951171875 + }, + "UnnestString-operator-10eca6e3-5952-4751-9845-e9dfaedaf5a2": { + "x": -748, + "y": 1671 + }, + "BarChart-operator-ef49769f-57fa-43d2-a49c-7bec25797d6c": { + "x": -797.36669921875, + "y": 2364.216552734375 + }, + "BubbleChart-operator-f702a4a4-689a-4bd3-9152-7ebe5178a0b9": { + "x": -525.36669921875, + "y": 2326.216552734375 + }, + "DotPlot-operator-b74e2826-dca4-4579-9705-e350215dd226": { + "x": -561.36669921875, + "y": 2121.216552734375 + }, + "DumbbellPlot-operator-7818ab0d-dad7-4179-8d6c-2ebb01ee5686": { + "x": -499.3666687011719, + "y": 1997.2166748046875 + }, + "FigureFactoryTable-operator-1d300a9e-0815-441b-a778-892710a6eebb": { + "x": -810.36669921875, + "y": 2213.216552734375 + }, + "GanttChart-operator-e0aea151-a552-46f9-8fc0-221c80a4e19c": { + "x": -307.36663818359375, + "y": 2243.216552734375 + }, + "IcicleChart-operator-3ae3e25c-7664-45b7-aeb3-67b6b425e4a3": { + "x": -355.36663818359375, + "y": 2090.216552734375 + }, + "IcicleChart-operator-c75d70ee-3ec0-4f32-9e13-f4c723d88efe": { + "x": -551.36669921875, + "y": 1913.2166748046875 + }, + "LineChart-operator-fcc4b934-324a-4cb5-8452-2d2acd0a7707": { + "x": -578.36669921875, + "y": 2241.216552734375 + }, + "PieChart-operator-3b836b59-694c-48ae-bf38-f4d0f62dd897": { + "x": -641.36669921875, + "y": 1920.2166748046875 + }, + "RangeSlider-operator-0f974148-5915-4cf6-a739-5679cdaca92a": { + "x": -370.36663818359375, + "y": 1814.2166748046875 + }, + "SankeyDiagram-operator-066172b7-1069-47c1-b890-278ebf39ca69": { + "x": -415.3666687011719, + "y": 2164.216552734375 + }, + "Scatterplot-operator-1931db20-31dc-4c88-9da6-d3dcb398ebfc": { + "x": -681.36669921875, + "y": 2255.216552734375 + }, + "TablesPlot-operator-e0a3b5dd-6393-4a29-9c4c-56ad8b8b4e93": { + "x": -643.36669921875, + "y": 2094.216552734375 + }, + "TimeSeriesPlot-operator-2efaa07d-e691-46de-9b83-53c242841d04": { + "x": -213.3666534423828, + "y": 2077.216552734375 + }, + "BoxViolinPlot-operator-f50c0377-4b0a-4ae3-bce2-7fc9b353fbd3": { + "x": -189.3666534423828, + "y": 1905.2166748046875 + }, + "ContinuousErrorBands-operator-07d42ae5-20f9-476e-96a0-72d24e44dbb6": { + "x": -310.36663818359375, + "y": 2417.216552734375 + }, + "Histogram-operator-77939ed1-9f38-4f3b-be58-31a38916faa1": { + "x": -472.3666687011719, + "y": 2564.216552734375 + }, + "Histogram2D-operator-60f6c41c-1e37-4ef8-b44b-c3388deb60d1": { + "x": -566.36669921875, + "y": 2477.216552734375 + }, + "ScatterMatrixChart-operator-38745d8a-3785-4e52-ba05-5f7da4603557": { + "x": -609.36669921875, + "y": 2670.216552734375 + }, + "StripChart-operator-4f9e7bc0-1647-4d58-bacd-c65984dc6a69": { + "x": -714.36669921875, + "y": 2679.216552734375 + }, + "TreePlot-operator-38877af1-9b6a-4fb6-8cee-edc5a54a5c9b": { + "x": -673.36669921875, + "y": 2473.216552734375 + }, + "ContourPlot-operator-d430f695-c9a0-4c48-8cc2-776b5b5be8c0": { + "x": -511.3666687011719, + "y": 2808.216552734375 + }, + "Dendrogram-operator-00a7c79c-8ac3-4ef4-b7ac-b99affe5ad2e": { + "x": -331.36663818359375, + "y": 2703.216552734375 + }, + "HeatMap-operator-55972f50-222c-4f85-9041-9a1a3a65605d": { + "x": -424.3666687011719, + "y": 2996.216552734375 + }, + "NetworkGraph-operator-f3c26f3a-8e31-4ac2-a477-7e747e31491e": { + "x": -621.36669921875, + "y": 2992.216552734375 + }, + "QuiverPlot-operator-1ed3209b-4831-492e-aab1-c44b9ae78430": { + "x": -726.36669921875, + "y": 3100.216552734375 + }, + "QuiverPlot-operator-dcebfefd-9f3a-4702-93ae-8a374c2a5c60": { + "x": -246.3666534423828, + "y": 2863.216552734375 + }, + "TernaryPlot-operator-2000371f-c80f-41c2-a51c-a00a0ed3ac10": { + "x": -357.36663818359375, + "y": 2836.216552734375 + }, + "VolcanoPlot-operator-2ca7d2cd-69f3-4d26-935d-07cb048096d6": { + "x": -799.36669921875, + "y": 2944.216552734375 + }, + "TernaryPlot-operator-dd361c61-76a7-44f3-aa56-2ff10ce5ceaf": { + "x": -269.36663818359375, + "y": 3126.216552734375 + }, + "VolcanoPlot-operator-6a436ad1-b8c7-4804-af86-2ec7f6106f72": { + "x": -552.36669921875, + "y": 3182.216552734375 + }, + "BulletChart-operator-4ecc403d-14b3-4a22-ab8a-f19d6c57c520": { + "x": -625.36669921875, + "y": 2811.216552734375 + }, + "CandlestickChart-operator-7f934e53-f4e0-4cb5-a0dc-db96f7d3de47": { + "x": -829.36669921875, + "y": 3213.216552734375 + }, + "FunnelPlot-operator-1ace8f58-05f7-4fae-8b7a-48fa05ca869f": { + "x": -649.36669921875, + "y": 3293.216552734375 + }, + "GaugeChart-operator-bdfb4bfd-51db-4300-a76b-919b66acbd34": { + "x": -421.3666687011719, + "y": 3289.216552734375 + }, + "WaterfallChart-operator-e51ec00c-1815-4c16-b50e-2292e5780461": { + "x": -492.3666687011719, + "y": 3108.216552734375 + }, + "HTMLVisualizer-operator-c815a669-81af-4adb-865b-d9f2404cc249": { + "x": -908.36669921875, + "y": 3104.216552734375 + }, + "ImageVisualizer-operator-569d29a2-d6d7-408d-8b3e-1920ae25fac3": { + "x": -831.36669921875, + "y": 3314.216552734375 + }, + "URLVisualizer-operator-187113ba-5c92-4e55-beff-8c23923cae3d": { + "x": -842.36669921875, + "y": 3451.216552734375 + }, + "WordCloud-operator-83815e13-64dc-4cb1-be4c-295d1f93fee6": { + "x": -650.36669921875, + "y": 3464.216552734375 + }, + "ChoroplethMap-operator-e0b89bb9-e0f9-45eb-91e9-681d8ea4d5f0": { + "x": -993.36669921875, + "y": 3339.216552734375 + }, + "Scatter3DChart-operator-929fb224-6e2f-4917-84ed-b04c361424c7": { + "x": -966.36669921875, + "y": 3578.216552734375 + }, + "NestedTable-operator-b107f3d0-9a4c-4118-8a5b-836bb94dc2a2": { + "x": -754.36669921875, + "y": 3614.216552734375 + }, + "If-operator-8febb7e9-56b7-41c3-ae3e-b3dab428a7cd": { + "x": -477.36663818359375, + "y": 3573.216552734375 + } + }, + "links": [ + { + "linkID": "link-a75743d7-2d3a-42a8-996e-c2539e97cf2d", + "source": { + "operatorID": "BarChart-operator-ef49769f-57fa-43d2-a49c-7bec25797d6c", + "portID": "output-0" + }, + "target": { + "operatorID": "BubbleChart-operator-f702a4a4-689a-4bd3-9152-7ebe5178a0b9", + "portID": "input-0" + } + }, + { + "linkID": "link-82fefcae-c360-4c68-8b41-c9e34bfb8744", + "source": { + "operatorID": "DotPlot-operator-b74e2826-dca4-4579-9705-e350215dd226", + "portID": "output-0" + }, + "target": { + "operatorID": "DumbbellPlot-operator-7818ab0d-dad7-4179-8d6c-2ebb01ee5686", + "portID": "input-0" + } + }, + { + "linkID": "link-bd4157d2-ece8-4ab5-8c7f-50683a24cbaa", + "source": { + "operatorID": "DumbbellPlot-operator-7818ab0d-dad7-4179-8d6c-2ebb01ee5686", + "portID": "output-0" + }, + "target": { + "operatorID": "ReservoirSampling-operator-59bc7446-274b-4934-be28-bd11b59dd70b", + "portID": "input-0" + } + }, + { + "linkID": "link-f2024126-38db-4b83-8071-ad24c55b870a", + "source": { + "operatorID": "FigureFactoryTable-operator-1d300a9e-0815-441b-a778-892710a6eebb", + "portID": "output-0" + }, + "target": { + "operatorID": "BarChart-operator-ef49769f-57fa-43d2-a49c-7bec25797d6c", + "portID": "input-0" + } + }, + { + "linkID": "link-ec154547-5240-4f29-973b-8e8a9d1abfe3", + "source": { + "operatorID": "BubbleChart-operator-f702a4a4-689a-4bd3-9152-7ebe5178a0b9", + "portID": "output-0" + }, + "target": { + "operatorID": "GanttChart-operator-e0aea151-a552-46f9-8fc0-221c80a4e19c", + "portID": "input-0" + } + }, + { + "linkID": "link-c026a799-002b-408f-8b5a-6a2a59dc4af4", + "source": { + "operatorID": "IcicleChart-operator-c75d70ee-3ec0-4f32-9e13-f4c723d88efe", + "portID": "output-0" + }, + "target": { + "operatorID": "RandomKSampling-operator-914b05e3-7ab7-48d1-8ddc-1559302c5d6b", + "portID": "input-0" + } + }, + { + "linkID": "link-008c38f2-fefe-483e-9d61-b7dc1d79dcff", + "source": { + "operatorID": "LineChart-operator-fcc4b934-324a-4cb5-8452-2d2acd0a7707", + "portID": "output-0" + }, + "target": { + "operatorID": "DotPlot-operator-b74e2826-dca4-4579-9705-e350215dd226", + "portID": "input-0" + } + }, + { + "linkID": "link-4d15bc0b-6a22-452a-9843-ff32d8729a71", + "source": { + "operatorID": "UnnestString-operator-10eca6e3-5952-4751-9845-e9dfaedaf5a2", + "portID": "output-0" + }, + "target": { + "operatorID": "PieChart-operator-3b836b59-694c-48ae-bf38-f4d0f62dd897", + "portID": "input-0" + } + }, + { + "linkID": "link-f34c1a6f-9da0-446f-82c3-d2e43bec1c94", + "source": { + "operatorID": "PieChart-operator-3b836b59-694c-48ae-bf38-f4d0f62dd897", + "portID": "output-0" + }, + "target": { + "operatorID": "IcicleChart-operator-c75d70ee-3ec0-4f32-9e13-f4c723d88efe", + "portID": "input-0" + } + }, + { + "linkID": "link-d2ba1ba5-22b4-46cb-bc88-9f72daf355e6", + "source": { + "operatorID": "RandomKSampling-operator-914b05e3-7ab7-48d1-8ddc-1559302c5d6b", + "portID": "output-0" + }, + "target": { + "operatorID": "RangeSlider-operator-0f974148-5915-4cf6-a739-5679cdaca92a", + "portID": "input-0" + } + }, + { + "linkID": "link-8067850c-34ca-4427-8be6-5c223879eb56", + "source": { + "operatorID": "RangeSlider-operator-0f974148-5915-4cf6-a739-5679cdaca92a", + "portID": "output-0" + }, + "target": { + "operatorID": "IcicleChart-operator-3ae3e25c-7664-45b7-aeb3-67b6b425e4a3", + "portID": "input-0" + } + }, + { + "linkID": "link-01760650-5ed1-4aa9-aca7-1001c3c2c42f", + "source": { + "operatorID": "Scatterplot-operator-1931db20-31dc-4c88-9da6-d3dcb398ebfc", + "portID": "output-0" + }, + "target": { + "operatorID": "LineChart-operator-fcc4b934-324a-4cb5-8452-2d2acd0a7707", + "portID": "input-0" + } + }, + { + "linkID": "link-7cfbd2b0-3a57-4455-b567-371fd82ec571", + "source": { + "operatorID": "TablesPlot-operator-e0a3b5dd-6393-4a29-9c4c-56ad8b8b4e93", + "portID": "output-0" + }, + "target": { + "operatorID": "SankeyDiagram-operator-066172b7-1069-47c1-b890-278ebf39ca69", + "portID": "input-0" + } + }, + { + "linkID": "link-496de7cb-09a2-4a1f-8f2d-b64cf4ea42ce", + "source": { + "operatorID": "IcicleChart-operator-3ae3e25c-7664-45b7-aeb3-67b6b425e4a3", + "portID": "output-0" + }, + "target": { + "operatorID": "TimeSeriesPlot-operator-2efaa07d-e691-46de-9b83-53c242841d04", + "portID": "input-0" + } + }, + { + "linkID": "link-e474988c-cad5-4568-bc32-f760d95cc402", + "source": { + "operatorID": "ReservoirSampling-operator-59bc7446-274b-4934-be28-bd11b59dd70b", + "portID": "output-0" + }, + "target": { + "operatorID": "BoxViolinPlot-operator-f50c0377-4b0a-4ae3-bce2-7fc9b353fbd3", + "portID": "input-0" + } + }, + { + "linkID": "link-921fccba-4627-4a0a-aa24-7e4944e840a4", + "source": { + "operatorID": "SankeyDiagram-operator-066172b7-1069-47c1-b890-278ebf39ca69", + "portID": "output-0" + }, + "target": { + "operatorID": "ContinuousErrorBands-operator-07d42ae5-20f9-476e-96a0-72d24e44dbb6", + "portID": "input-0" + } + }, + { + "linkID": "link-d950ddd6-6e3b-4986-9161-9d8029333d52", + "source": { + "operatorID": "Histogram2D-operator-60f6c41c-1e37-4ef8-b44b-c3388deb60d1", + "portID": "output-0" + }, + "target": { + "operatorID": "Histogram-operator-77939ed1-9f38-4f3b-be58-31a38916faa1", + "portID": "input-0" + } + }, + { + "linkID": "link-e99d88b7-e267-434e-9d29-a40f4e4b88f4", + "source": { + "operatorID": "ScatterMatrixChart-operator-38745d8a-3785-4e52-ba05-5f7da4603557", + "portID": "output-0" + }, + "target": { + "operatorID": "Histogram2D-operator-60f6c41c-1e37-4ef8-b44b-c3388deb60d1", + "portID": "input-0" + } + }, + { + "linkID": "link-7773f83c-69e9-4f46-aa32-f85e35e9117c", + "source": { + "operatorID": "StripChart-operator-4f9e7bc0-1647-4d58-bacd-c65984dc6a69", + "portID": "output-0" + }, + "target": { + "operatorID": "ScatterMatrixChart-operator-38745d8a-3785-4e52-ba05-5f7da4603557", + "portID": "input-0" + } + }, + { + "linkID": "link-003de26b-c684-4bf1-b635-e10fe5bd1341", + "source": { + "operatorID": "Histogram-operator-77939ed1-9f38-4f3b-be58-31a38916faa1", + "portID": "output-0" + }, + "target": { + "operatorID": "Dendrogram-operator-00a7c79c-8ac3-4ef4-b7ac-b99affe5ad2e", + "portID": "input-0" + } + }, + { + "linkID": "link-d9b3571b-db9f-4af4-9f0f-d3934c7ee1ee", + "source": { + "operatorID": "ContourPlot-operator-d430f695-c9a0-4c48-8cc2-776b5b5be8c0", + "portID": "output-0" + }, + "target": { + "operatorID": "HeatMap-operator-55972f50-222c-4f85-9041-9a1a3a65605d", + "portID": "input-0" + } + }, + { + "linkID": "link-3f9e6104-379d-4b1f-a083-34fd5239b4ca", + "source": { + "operatorID": "NetworkGraph-operator-f3c26f3a-8e31-4ac2-a477-7e747e31491e", + "portID": "output-0" + }, + "target": { + "operatorID": "ContourPlot-operator-d430f695-c9a0-4c48-8cc2-776b5b5be8c0", + "portID": "input-0" + } + }, + { + "linkID": "link-69efc9d9-bbca-421a-b268-d5208a54b67f", + "source": { + "operatorID": "QuiverPlot-operator-1ed3209b-4831-492e-aab1-c44b9ae78430", + "portID": "output-0" + }, + "target": { + "operatorID": "NetworkGraph-operator-f3c26f3a-8e31-4ac2-a477-7e747e31491e", + "portID": "input-0" + } + }, + { + "linkID": "link-681eb00e-4347-474c-b069-ec8f26e7b642", + "source": { + "operatorID": "Dendrogram-operator-00a7c79c-8ac3-4ef4-b7ac-b99affe5ad2e", + "portID": "output-0" + }, + "target": { + "operatorID": "QuiverPlot-operator-dcebfefd-9f3a-4702-93ae-8a374c2a5c60", + "portID": "input-0" + } + }, + { + "linkID": "link-48d763c5-e40c-4365-893b-761f795750e7", + "source": { + "operatorID": "HeatMap-operator-55972f50-222c-4f85-9041-9a1a3a65605d", + "portID": "output-0" + }, + "target": { + "operatorID": "TernaryPlot-operator-2000371f-c80f-41c2-a51c-a00a0ed3ac10", + "portID": "input-0" + } + }, + { + "linkID": "link-a4a7a917-0119-43b4-a277-9846f94e942e", + "source": { + "operatorID": "VolcanoPlot-operator-2ca7d2cd-69f3-4d26-935d-07cb048096d6", + "portID": "output-0" + }, + "target": { + "operatorID": "QuiverPlot-operator-1ed3209b-4831-492e-aab1-c44b9ae78430", + "portID": "input-0" + } + }, + { + "linkID": "link-14f8db40-5d82-4481-917e-bb58e99a1bea", + "source": { + "operatorID": "VolcanoPlot-operator-6a436ad1-b8c7-4804-af86-2ec7f6106f72", + "portID": "output-0" + }, + "target": { + "operatorID": "TernaryPlot-operator-dd361c61-76a7-44f3-aa56-2ff10ce5ceaf", + "portID": "input-0" + } + }, + { + "linkID": "link-13314015-aaec-4135-9c4b-28bd5eb9bde6", + "source": { + "operatorID": "CandlestickChart-operator-7f934e53-f4e0-4cb5-a0dc-db96f7d3de47", + "portID": "output-0" + }, + "target": { + "operatorID": "VolcanoPlot-operator-2ca7d2cd-69f3-4d26-935d-07cb048096d6", + "portID": "input-0" + } + }, + { + "linkID": "link-8d462478-100f-40f5-8bcd-ded0e6309ba7", + "source": { + "operatorID": "FunnelPlot-operator-1ace8f58-05f7-4fae-8b7a-48fa05ca869f", + "portID": "output-0" + }, + "target": { + "operatorID": "VolcanoPlot-operator-6a436ad1-b8c7-4804-af86-2ec7f6106f72", + "portID": "input-0" + } + }, + { + "linkID": "link-46c41f5d-4114-4f2d-9f9a-f00c8b373466", + "source": { + "operatorID": "WaterfallChart-operator-e51ec00c-1815-4c16-b50e-2292e5780461", + "portID": "output-0" + }, + "target": { + "operatorID": "GaugeChart-operator-bdfb4bfd-51db-4300-a76b-919b66acbd34", + "portID": "input-0" + } + }, + { + "linkID": "link-1b06e764-16df-46b7-aac4-63d3b172abbe", + "source": { + "operatorID": "HTMLVisualizer-operator-c815a669-81af-4adb-865b-d9f2404cc249", + "portID": "output-0" + }, + "target": { + "operatorID": "CandlestickChart-operator-7f934e53-f4e0-4cb5-a0dc-db96f7d3de47", + "portID": "input-0" + } + }, + { + "linkID": "link-d216ac60-ff87-4c08-9ad2-db305e60420a", + "source": { + "operatorID": "ImageVisualizer-operator-569d29a2-d6d7-408d-8b3e-1920ae25fac3", + "portID": "output-0" + }, + "target": { + "operatorID": "FunnelPlot-operator-1ace8f58-05f7-4fae-8b7a-48fa05ca869f", + "portID": "input-0" + } + }, + { + "linkID": "link-135a2eee-804c-4997-8aba-3bdebd1747d8", + "source": { + "operatorID": "URLVisualizer-operator-187113ba-5c92-4e55-beff-8c23923cae3d", + "portID": "output-0" + }, + "target": { + "operatorID": "ImageVisualizer-operator-569d29a2-d6d7-408d-8b3e-1920ae25fac3", + "portID": "input-0" + } + }, + { + "linkID": "link-d2392f2a-c338-4f1d-b611-07f5eb36f16a", + "source": { + "operatorID": "ChoroplethMap-operator-e0b89bb9-e0f9-45eb-91e9-681d8ea4d5f0", + "portID": "output-0" + }, + "target": { + "operatorID": "URLVisualizer-operator-187113ba-5c92-4e55-beff-8c23923cae3d", + "portID": "input-0" + } + }, + { + "linkID": "link-a291b356-364d-4ab7-a969-3aca0d4404ce", + "source": { + "operatorID": "Scatter3DChart-operator-929fb224-6e2f-4917-84ed-b04c361424c7", + "portID": "output-0" + }, + "target": { + "operatorID": "NestedTable-operator-b107f3d0-9a4c-4118-8a5b-836bb94dc2a2", + "portID": "input-0" + } + }, + { + "linkID": "link-78af87f8-94d7-4d5a-9ca8-1373ef7113ad", + "source": { + "operatorID": "NestedTable-operator-b107f3d0-9a4c-4118-8a5b-836bb94dc2a2", + "portID": "output-0" + }, + "target": { + "operatorID": "WordCloud-operator-83815e13-64dc-4cb1-be4c-295d1f93fee6", + "portID": "input-0" + } + }, + { + "linkID": "link-968b2431-f25e-4de4-bc28-4cf692ccac35", + "source": { + "operatorID": "WordCloud-operator-83815e13-64dc-4cb1-be4c-295d1f93fee6", + "portID": "output-0" + }, + "target": { + "operatorID": "If-operator-8febb7e9-56b7-41c3-ae3e-b3dab428a7cd", + "portID": "input-0" + } + } + ], + "commentBoxes": [], + "settings": { + "dataTransferBatchSize": 400, + "executionMode": "PIPELINED" + } +} \ No newline at end of file diff --git a/common/workflow-operator/src/main/scala/py2udf/clean_sp500_2000.csv b/common/workflow-operator/src/main/scala/py2udf/clean_sp500_2000.csv new file mode 100644 index 00000000000..b1e782376af --- /dev/null +++ b/common/workflow-operator/src/main/scala/py2udf/clean_sp500_2000.csv @@ -0,0 +1,5106 @@ +date,open,high,low,close,volume,daily_return,ma_30 +2000-01-03,1469.25,1478.0,1438.359985,1455.219971,931800000,, +2000-01-04,1455.219971,1455.219971,1397.430054,1399.420044,1009000000,-3.834466823710192, +2000-01-05,1399.420044,1413.27002,1377.680054,1402.109985,1085500000,0.19221827009932024, +2000-01-06,1402.109985,1411.900024,1392.099976,1403.449951,1092300000,0.09556782380377715, +2000-01-07,1403.449951,1441.469971,1400.72998,1441.469971,1225200000,2.7090399606277016, +2000-01-10,1441.469971,1464.359985,1441.469971,1457.599976,1064800000,1.1189969492607643, +2000-01-11,1457.599976,1458.660034,1434.420044,1438.560059,1014000000,-1.306251187808749, +2000-01-12,1438.560059,1442.599976,1427.079956,1432.25,974600000,-0.4386371608555817, +2000-01-13,1432.25,1454.199951,1432.25,1449.680054,1030400000,1.2169700820387375, +2000-01-14,1449.680054,1473.0,1449.680054,1465.150024,1085900000,1.067129947557377, +2000-01-18,1465.150024,1465.150024,1451.300049,1455.140015,1056700000,-0.6832071007084828, +2000-01-19,1455.140015,1461.390015,1448.680054,1455.900024,1087800000,0.05222926949748352, +2000-01-20,1455.900024,1465.709961,1438.540039,1445.569946,1100700000,-0.7095320990255005, +2000-01-21,1445.569946,1453.180054,1439.599976,1441.359985,1209800000,-0.29123191248194846, +2000-01-24,1441.359985,1454.089966,1395.420044,1401.530029,1115800000,-2.7633593560598246, +2000-01-25,1401.530029,1414.26001,1388.48999,1410.030029,1073700000,0.6064800485270139, +2000-01-26,1410.030029,1412.72998,1400.160034,1404.089966,1117300000,-0.4212720919293256, +2000-01-27,1404.089966,1418.859985,1370.98999,1398.560059,1129500000,-0.39384278314827936, +2000-01-28,1398.560059,1398.560059,1356.199951,1360.160034,1095800000,-2.7456829438884944, +2000-01-31,1360.160034,1394.47998,1350.140015,1394.459961,993800000,2.521756715577772, +2000-02-01,1394.459961,1412.48999,1384.790039,1409.280029,981000000,1.0627818951052692, +2000-02-02,1409.280029,1420.609985,1403.48999,1409.119995,1038600000,-0.01135572751382874, +2000-02-03,1409.119995,1425.780029,1398.52002,1424.969971,1146500000,1.124813788480794, +2000-02-04,1424.969971,1435.910034,1420.630005,1424.369995,1045100000,-0.04210446621404351, +2000-02-07,1424.369995,1427.150024,1413.329956,1424.23999,918100000,-0.0091271931068726, +2000-02-08,1424.23999,1441.829956,1424.23999,1441.719971,1047700000,1.2273199125661272, +2000-02-09,1441.719971,1444.550049,1411.650024,1411.709961,1050500000,-2.0815422275925477, +2000-02-10,1411.699951,1422.099976,1406.430054,1416.829956,1058800000,0.3626803763836284, +2000-02-11,1416.829956,1416.829956,1378.890015,1387.119995,1025700000,-2.0969320188484186, +2000-02-14,1387.119995,1394.930054,1380.530029,1389.939941,927300000,0.2032950292811586,1421.7003295666666 +2000-02-15,1389.939941,1407.719971,1376.25,1402.050049,1092100000,0.8712684370583146,1419.9279988333333 +2000-02-16,1402.050049,1404.550049,1385.579956,1387.670044,1018800000,-1.025641346416728,1419.5363321666669 +2000-02-17,1387.670044,1399.880005,1380.069946,1388.26001,1034800000,0.04251486169575269,1419.0746663333334 +2000-02-18,1388.26001,1388.589966,1345.319946,1346.089966,1042300000,-3.037618579822088,1417.1626668333333 +2000-02-22,1346.089966,1358.109985,1331.880005,1352.170044,980000000,0.4516843712955687,1414.1860026 +2000-02-23,1352.170044,1370.109985,1342.439941,1360.689941,993700000,0.6300906485693591,1410.9556681 +2000-02-24,1360.689941,1364.800049,1329.880005,1353.430054,1215000000,-0.5335445483388157,1408.1180012666666 +2000-02-25,1353.430054,1362.140015,1329.150024,1333.359985,1065200000,-1.4829040437430607,1404.8216674333332 +2000-02-28,1333.359985,1360.819946,1325.069946,1348.050049,1026500000,1.1017327777389285,1401.4340006 +2000-02-29,1348.050049,1369.630005,1348.050049,1366.420044,1204300000,1.362708677888258,1398.1430012666667 +2000-03-01,1366.420044,1383.459961,1366.420044,1379.189941,1274100000,0.9345513523512095,1395.6113321333332 +2000-03-02,1379.189941,1386.560059,1370.349976,1381.76001,1198600000,0.1863462691829465,1393.1399983333333 +2000-03-03,1381.76001,1410.880005,1381.76001,1409.170044,1150300000,1.9837043916186348,1391.9266682666669 +2000-03-06,1409.170044,1409.73999,1384.75,1391.280029,1029000000,-1.2695426698979717,1390.2573364000002 +2000-03-07,1391.280029,1399.209961,1349.98999,1355.619995,1314100000,-2.5631097447457174,1388.7270019333334 +2000-03-08,1355.619995,1373.790039,1346.619995,1366.699951,1203000000,0.8173349493860282,1387.2826659999998 +2000-03-09,1366.699951,1401.819946,1357.880005,1401.689941,1123000000,2.560180819088953,1387.2026651666667 +2000-03-10,1401.689941,1413.459961,1392.069946,1395.069946,1138800000,-0.4722866881157195,1387.0863280666667 +2000-03-13,1395.069946,1398.390015,1364.839966,1383.619995,1016100000,-0.8207438654118993,1387.8683267666668 +2000-03-14,1383.619995,1395.150024,1359.150024,1359.150024,1094000000,-1.768547078564009,1386.6913288666667 +2000-03-15,1359.150024,1397.98999,1356.98999,1392.140015,1302800000,2.4272516217827,1386.1199950666667 +2000-03-16,1392.150024,1458.469971,1392.150024,1458.469971,1482300000,4.764603795976652,1387.7649942666665 +2000-03-17,1458.469971,1477.329956,1453.319946,1464.469971,1295100000,0.4113900264868686,1389.0816609333335 +2000-03-20,1464.469971,1470.300049,1448.48999,1456.630005,920800000,-0.5353449476773187,1390.1569946000002 +2000-03-21,1456.630005,1493.920044,1446.060059,1493.869995,1065900000,2.5565853972642882,1392.4779947666668 +2000-03-22,1493.869995,1505.079956,1487.329956,1500.640015,1075000000,0.4531866911216653,1394.4419962333334 +2000-03-23,1500.640015,1532.5,1492.390015,1527.349976,1078300000,1.7799046228951898,1398.2966634 +2000-03-24,1527.349976,1552.869995,1516.829956,1527.459961,1052200000,0.007201034584625177,1401.9843302333331 +2000-03-27,1527.459961,1534.630005,1518.459961,1523.859985,901000000,-0.23568382097839402,1406.5423299 +2000-03-28,1523.859985,1527.359985,1507.089966,1507.72998,959100000,-1.0584965258471524,1410.4686645333334 +2000-03-29,1507.72998,1521.449951,1497.449951,1508.52002,1061900000,0.05239930295741768,1414.017663566667 +2000-03-30,1508.52002,1517.380005,1474.630005,1487.920044,1193400000,-1.36557524771862,1417.3593302333334 +2000-03-31,1487.920044,1519.810059,1484.380005,1498.579956,1227400000,0.7164304320642634,1421.0366617666666 +2000-04-03,1498.579956,1507.189941,1486.959961,1505.969971,1021700000,0.4931345151396149,1426.3659952666667 +2000-04-04,1505.97998,1526.449951,1416.410034,1494.72998,1515460000,-0.7463622261031033,1431.1179931333331 +2000-04-05,1494.72998,1506.550049,1478.050049,1487.369995,1110300000,-0.49239562318807995,1435.3406616 +2000-04-06,1487.369995,1511.76001,1487.369995,1501.339966,1008000000,0.9392398022658677,1440.270992 +2000-04-07,1501.339966,1518.680054,1501.339966,1516.349976,891600000,0.9997742243544661,1446.3706583666667 +2000-04-10,1516.349976,1527.189941,1503.349976,1504.459961,853700000,-0.7841207628970226,1451.5843221 +2000-04-11,1504.459961,1512.800049,1486.780029,1500.589966,971400000,-0.25723482846480294,1456.0566528333334 +2000-04-12,1500.589966,1509.079956,1466.150024,1467.170044,1175900000,-2.2271188504002115,1458.9893229333334 +2000-04-13,1467.170044,1477.52002,1439.339966,1440.51001,1032000000,-1.8171059386760446,1460.9476562666666 +2000-04-14,1440.51001,1440.51001,1339.400024,1356.560059,1279700000,-5.827793657608815,1459.1939901 +2000-04-17,1356.560059,1401.530029,1346.5,1401.439941,1204700000,3.3083593831506164,1459.5326538333331 +2000-04-18,1401.439941,1441.609985,1397.810059,1441.609985,1109400000,2.866340741747142,1462.3989868333333 +2000-04-19,1441.609985,1447.689941,1424.26001,1427.469971,1001400000,-0.9808487834523483,1464.4246541666666 +2000-04-20,1427.469971,1435.48999,1422.079956,1434.540039,896200000,0.495286636050718,1465.5196574333334 +2000-04-24,1434.540039,1434.540039,1407.130005,1429.859985,868700000,-0.32624073729321523,1466.6793254000002 +2000-04-25,1429.859985,1477.670044,1429.859985,1477.439941,1071100000,3.32759546383139,1469.8066569333334 +2000-04-26,1477.439941,1482.939941,1456.97998,1460.98999,999600000,-1.113409116912456,1473.2013224666666 +2000-04-27,1460.98999,1469.209961,1434.810059,1464.920044,1111000000,0.2689993789758871,1475.6273234333335 +2000-04-28,1464.920044,1473.619995,1448.150024,1452.430054,984600000,-0.8526055774276786,1475.4259928666665 +2000-05-01,1452.430054,1481.51001,1452.430054,1468.25,966300000,1.089205360108858,1475.5519938333334 +2000-05-02,1468.25,1468.25,1445.219971,1446.290039,1011500000,-1.4956554401498345,1475.2073283 +2000-05-03,1446.290039,1446.290039,1398.359985,1415.099976,991600000,-2.1565565798659314,1472.581661 +2000-05-04,1415.099976,1420.98999,1404.939941,1409.569946,925800000,-0.3907872301454951,1469.5459920333333 +2000-05-05,1409.569946,1436.030029,1405.079956,1432.630005,805500000,1.6359641510120593,1466.3886596666669 +2000-05-08,1432.630005,1432.630005,1417.050049,1424.170044,787600000,-0.5905196017446213,1462.9456624333334 +2000-05-09,1424.170044,1430.280029,1401.849976,1412.140015,896600000,-0.8447045386667296,1459.2216634333333 +2000-05-10,1412.140015,1412.140015,1375.140015,1383.050049,1006400000,-2.0599916220064074,1455.0656657333334 +2000-05-11,1383.050049,1410.26001,1383.050049,1407.810059,953600000,1.790246854616906,1451.7086670333333 +2000-05-12,1407.810059,1430.130005,1407.810059,1420.959961,858200000,0.9340679103643224,1449.4766642666666 +2000-05-15,1420.959961,1452.390015,1416.540039,1452.359985,854600000,2.209775423784799,1447.9359985666667 +2000-05-16,1452.359985,1470.400024,1450.76001,1466.040039,955500000,0.9419189554440877,1446.6050008333334 +2000-05-17,1466.040039,1466.040039,1441.670044,1447.800049,820500000,-1.2441672474676535,1445.0406698000002 +2000-05-18,1447.800049,1458.040039,1436.589966,1437.209961,807900000,-0.7314606742356844,1443.3686686666667 +2000-05-19,1437.209961,1437.209961,1401.73999,1406.949951,853700000,-2.105468986517822,1440.2223348333334 +2000-05-22,1406.949951,1410.550049,1368.72998,1400.719971,869000000,-0.44280039923041414,1436.3680013333333 +2000-05-23,1400.719971,1403.77002,1373.430054,1373.859985,869900000,-1.9175842820905897,1432.0146687999998 +2000-05-24,1373.859985,1401.75,1361.089966,1399.050049,1152300000,1.8335248333184229,1428.6300049 +2000-05-25,1399.050049,1411.650024,1373.930054,1381.52002,984500000,-1.252995131412915,1425.7750041 +2000-05-26,1381.52002,1391.420044,1369.75,1378.02002,722600000,-0.25334413901580977,1423.6920044333335 +2000-05-30,1378.02002,1422.449951,1378.02002,1422.449951,844200000,3.2241861769178204,1425.8883341666665 +2000-05-31,1422.439941,1434.48999,1415.5,1420.599976,960500000,-0.13005554246035,1426.527002 +2000-06-01,1420.599976,1448.810059,1420.599976,1448.810059,960100000,1.9857865322109536,1426.7670044666665 +2000-06-02,1448.810059,1483.22998,1448.810059,1477.26001,1162400000,1.9636770757677446,1428.4266724333331 +2000-06-05,1477.26001,1477.280029,1464.680054,1467.630005,838600000,-0.651882873347398,1429.5296713 +2000-06-06,1467.630005,1471.359985,1454.73999,1457.839966,950100000,-0.6670645167138001,1430.4623373333334 +2000-06-07,1457.839966,1474.640015,1455.060059,1471.359985,854600000,0.9274007651948191,1430.2596721333332 +2000-06-08,1471.359985,1475.650024,1456.48999,1461.670044,854300000,-0.6585703769835805,1430.2823406 +2000-06-09,1461.670044,1472.670044,1454.959961,1456.949951,786000000,-0.3229246586379353,1430.0166708333334 +2000-06-12,1456.949951,1462.930054,1445.98999,1446.0,774100000,-0.7515667228297329,1429.8023356999997 +2000-06-13,1446.0,1470.420044,1442.380005,1469.439941,935900000,1.6210194329183913,1429.8420004 +2000-06-14,1469.439941,1483.619995,1467.709961,1470.540039,929700000,0.07486512169059267,1430.6503337333334 +2000-06-15,1470.540039,1482.040039,1464.619995,1478.72998,1011400000,0.5569342406732014,1432.7713338666665 +2000-06-16,1478.72998,1480.77002,1460.420044,1464.459961,1250800000,-0.9650185762785424,1434.6010010333334 +2000-06-19,1464.459961,1488.930054,1459.050049,1486.0,921700000,1.470852025567937,1436.3800008666665 +2000-06-20,1486.0,1487.319946,1470.180054,1475.949951,1031500000,-0.6763155450874803,1438.1059977666666 +2000-06-21,1475.949951,1482.189941,1468.0,1479.130005,1009600000,0.21545811887764277,1440.3389974333334 +2000-06-22,1479.130005,1479.130005,1448.030029,1452.180054,1022700000,-1.822013677560419,1442.6433309333333 +2000-06-23,1452.180054,1459.939941,1438.310059,1441.47998,847600000,-0.7368283272123688,1443.7656616333334 +2000-06-26,1441.47998,1459.660034,1441.47998,1455.310059,889000000,0.9594360790220469,1444.9106648999998 +2000-06-27,1455.310059,1463.349976,1450.550049,1450.550049,1042500000,-0.3270787534630726,1444.8503337 +2000-06-28,1450.550049,1467.630005,1450.550049,1454.819946,1095100000,0.2943639899184225,1444.4763305999998 +2000-06-29,1454.819946,1455.140015,1434.630005,1442.390015,1110900000,-0.8543965206262105,1444.2959961333333 +2000-06-30,1442.390015,1454.680054,1438.709961,1454.599976,1459700000,0.8465089797505376,1444.8756633 +2000-07-03,1454.599976,1469.579956,1450.849976,1469.540039,451900000,1.027090832290778,1446.9619995666665 +2000-07-05,1469.540039,1469.540039,1442.449951,1446.22998,1019300000,-1.5862146237173635,1448.4789998666668 +2000-07-06,1446.22998,1461.650024,1439.560059,1456.670044,947300000,0.7218813151695258,1451.2393351666667 +2000-07-07,1456.670044,1484.119995,1456.670044,1478.900024,931700000,1.526082045248689,1453.9010009999997 +2000-07-10,1478.900024,1486.560059,1474.76001,1475.619995,838700000,-0.22178842022927414,1457.0376668333333 +2000-07-11,1475.619995,1488.77002,1470.47998,1480.880005,980500000,0.3564610142057667,1460.4663329999998 +2000-07-12,1480.880005,1497.689941,1480.880005,1492.920044,1001200000,0.8130327210407629,1462.8153361000002 +2000-07-13,1492.920044,1501.390015,1489.650024,1495.839966,1026800000,0.1955846203375078,1465.3233357666666 +2000-07-14,1495.839966,1509.98999,1494.560059,1509.97998,960600000,0.9452892235398469,1467.3623331333333 +2000-07-17,1509.97998,1517.319946,1505.26001,1510.48999,906000000,0.033775944499603305,1468.4699991333332 +2000-07-18,1510.48999,1510.48999,1491.349976,1493.73999,908300000,-1.1089116850089176,1469.3403319666666 +2000-07-19,1493.73999,1495.630005,1479.920044,1481.959961,909400000,-0.7886264730717962,1470.1443318 +2000-07-20,1481.959961,1501.920044,1481.959961,1495.569946,1064600000,0.9183773757839075,1470.9513305 +2000-07-21,1495.569946,1495.569946,1477.910034,1480.189941,968300000,-1.0283708255260704,1471.5686604000002 +2000-07-24,1480.189941,1485.880005,1463.800049,1464.290039,880300000,-1.0741798440582762,1471.8133300000002 +2000-07-25,1464.290039,1476.22998,1464.290039,1474.469971,969400000,0.6952128150070624,1472.7623290333333 +2000-07-26,1474.469971,1474.469971,1452.420044,1452.420044,1235800000,-1.4954476817893747,1472.1949991333333 +2000-07-27,1452.420044,1464.910034,1445.329956,1449.619995,1156400000,-0.1927850701019307,1471.4976643333332 +2000-07-28,1449.619995,1456.680054,1413.890015,1419.890015,980000000,-2.050880927590959,1469.5363321666666 +2000-07-31,1419.890015,1437.650024,1418.709961,1430.829956,952600000,0.7704780570627623,1468.415332 +2000-08-01,1430.829956,1443.540039,1428.959961,1438.099976,938700000,0.5080981125334949,1466.8186645333333 +2000-08-02,1438.099976,1451.589966,1433.48999,1438.699951,994500000,0.04171997844466535,1465.5769978666665 +2000-08-03,1438.699951,1454.189941,1425.430054,1452.560059,1095600000,0.9633772483530034,1464.691333 +2000-08-04,1452.560059,1462.930054,1451.310059,1462.930054,956000000,0.7139116166486881,1465.0496663333333 +2000-08-07,1462.930054,1480.800049,1460.719971,1479.319946,854800000,1.12034693355203,1466.3109985333333 +2000-08-08,1479.319946,1484.52002,1472.609985,1482.800049,992200000,0.2352501911036864,1467.2273315333334 +2000-08-09,1482.800049,1490.329956,1471.160034,1472.869995,1054000000,-0.6696826053315008,1467.9713297333333 +2000-08-10,1472.869995,1475.150024,1459.890015,1460.25,940800000,-0.8568302051668919,1468.1523315333334 +2000-08-11,1460.25,1475.719971,1453.060059,1471.839966,835500000,0.793697380585523,1469.1339965666666 +2000-08-14,1471.839966,1491.640015,1468.560059,1491.560059,783800000,1.3398258951748065,1470.3659993333335 +2000-08-15,1491.560059,1493.119995,1482.73999,1484.430054,895900000,-0.47802332577745466,1470.8623331666668 +2000-08-16,1484.430054,1496.089966,1475.73999,1479.849976,929800000,-0.3085411796708293,1471.9829997 +2000-08-17,1479.849976,1499.319946,1479.849976,1496.069946,922400000,1.0960550233505728,1473.2963297666668 +2000-08-18,1496.069946,1499.469971,1488.98999,1491.719971,821400000,-0.29076013535533907,1473.7236613333334 +2000-08-21,1491.719971,1502.839966,1491.130005,1499.47998,731600000,0.5202054776271448,1474.5189941666665 +2000-08-22,1499.47998,1508.449951,1497.420044,1498.130005,818800000,-0.09002954477592695,1475.0939941666668 +2000-08-23,1498.130005,1507.199951,1489.52002,1505.969971,871000000,0.5233167998661026,1475.5289917333332 +2000-08-24,1505.969971,1511.160034,1501.25,1508.310059,837100000,0.15538742770853098,1475.9446615 +2000-08-25,1508.310059,1513.469971,1505.089966,1506.449951,685600000,-0.12332398029839542,1475.8269938666667 +2000-08-28,1506.449951,1523.949951,1506.449951,1514.089966,733600000,0.5071535894656476,1475.9469930666667 +2000-08-29,1514.089966,1514.810059,1505.459961,1509.839966,795600000,-0.2806966623804974,1476.4836589333331 +2000-08-30,1509.839966,1510.48999,1500.089966,1502.589966,818400000,-0.4801833414972645,1477.1713257666665 +2000-08-31,1502.589966,1525.209961,1502.589966,1517.680054,1056600000,1.0042718467081713,1477.9083293666667 +2000-09-01,1517.680054,1530.089966,1515.530029,1520.77002,767700000,0.20359798442735055,1479.2609986666664 +2000-09-05,1520.77002,1520.77002,1504.209961,1507.079956,838500000,-0.900206067976006,1480.6873292333332 +2000-09-06,1507.079956,1512.609985,1492.119995,1492.25,995100000,-0.9840191916134833,1481.2799968666666 +2000-09-07,1492.25,1505.339966,1492.25,1502.51001,985500000,0.6875530239571104,1482.9496623999999 +2000-09-08,1502.51001,1502.51001,1489.880005,1494.5,961000000,-0.5331085947307579,1484.4456625666667 +2000-09-11,1494.5,1506.76001,1483.01001,1489.26001,899300000,-0.3506182669789304,1486.7579957333335 +2000-09-12,1489.26001,1496.930054,1479.670044,1481.98999,991200000,-0.4881632455839502,1488.4633302 +2000-09-13,1481.98999,1487.449951,1473.609985,1484.910034,1068300000,0.19703533894990244,1490.0236654666667 +2000-09-14,1484.910034,1494.160034,1476.72998,1480.869995,1014000000,-0.2720729813588174,1491.4293336 +2000-09-15,1480.869995,1480.959961,1460.219971,1465.810059,1268400000,-1.0169654359159397,1491.8710002666667 +2000-09-18,1465.810059,1467.77002,1441.920044,1444.51001,962500000,-1.4531247666925706,1491.2569988 +2000-09-19,1444.51001,1461.160034,1444.51001,1459.900024,1024900000,1.065414146905086,1490.6096680666667 +2000-09-20,1459.900024,1460.48999,1430.949951,1451.339966,1104000000,-0.5863454934774359,1489.5609986333334 +2000-09-21,1451.339966,1452.77002,1436.300049,1449.050049,1105400000,-0.15777950402008356,1488.7670004333334 +2000-09-22,1449.050049,1449.050049,1421.880005,1448.719971,1185500000,-0.022778923352417824,1488.3826661333333 +2000-09-25,1448.719971,1457.420044,1435.930054,1439.030029,982400000,-0.6688623194247345,1487.2890015666667 +2000-09-26,1439.030029,1448.040039,1425.25,1427.209961,1106600000,-0.8213913373450565,1485.1439982999998 +2000-09-27,1427.209961,1437.219971,1419.439941,1426.569946,1174700000,-0.04484378735357675,1483.2153280333332 +2000-09-28,1426.569946,1461.689941,1425.780029,1458.290039,1206200000,2.223521748018098,1482.4966634666669 +2000-09-29,1458.290039,1458.290039,1436.290039,1436.51001,1197100000,-1.4935320421536558,1480.5113322666666 +2000-10-02,1436.52002,1445.599976,1429.829956,1436.22998,1051200000,-0.019493772967160705,1478.6616659 +2000-10-03,1436.22998,1454.819946,1425.280029,1426.459961,1098100000,-0.6802544951749367,1476.2276652666667 +2000-10-04,1426.459961,1439.98999,1416.310059,1434.319946,1167400000,0.5510133627928848,1474.1006633 +2000-10-05,1434.319946,1444.170044,1431.800049,1436.280029,1176100000,0.1366559117766064,1471.7776652333334 +2000-10-06,1436.280029,1443.300049,1397.060059,1408.98999,1150100000,-1.9000500215129001,1468.4669962666667 +2000-10-09,1408.98999,1409.689941,1392.47998,1402.030029,716600000,-0.49396809412393106,1464.9863321999999 +2000-10-10,1402.030029,1408.829956,1383.849976,1387.02002,1044000000,-1.0705911206984609,1460.7506673333335 +2000-10-11,1387.02002,1387.02002,1349.670044,1364.589966,1387500000,-1.617139888146668,1455.9090006666668 +2000-10-12,1364.589966,1374.930054,1328.060059,1329.780029,1388600000,-2.550944816195433,1450.1486694333332 +2000-10-13,1329.780029,1374.170044,1327.079956,1374.170044,1223900000,3.33814721472252,1445.3650024333333 +2000-10-16,1374.170044,1379.47998,1365.060059,1374.619995,1005400000,0.032743473194218886,1440.4933349333335 +2000-10-17,1374.619995,1380.98999,1342.339966,1349.969971,1161500000,-1.7932246067757784,1435.2563354333333 +2000-10-18,1349.969971,1356.650024,1305.790039,1342.130005,1441700000,-0.5807511402785126,1430.2523356 +2000-10-19,1342.130005,1389.930054,1342.130005,1388.76001,1297900000,3.474328479825628,1426.4606689333334 +2000-10-20,1388.76001,1408.469971,1382.189941,1396.930054,1177400000,0.5882977577961856,1423.2083374000001 +2000-10-23,1396.930054,1406.959961,1387.75,1395.780029,1046800000,-0.08232516701225379,1420.0923380333331 +2000-10-24,1395.780029,1415.640015,1388.130005,1398.130005,1158600000,0.16836291902553313,1417.2970051999998 +2000-10-25,1398.130005,1398.130005,1362.209961,1364.900024,1315600000,-2.3767447148092646,1413.2966715333334 +2000-10-26,1364.900024,1372.719971,1337.810059,1364.439941,1303800000,-0.03370818315701074,1409.4156697333335 +2000-10-27,1364.439941,1384.569946,1364.130005,1379.579956,1086300000,1.1096138822280333,1406.5413329666665 +2000-10-30,1379.579956,1406.359985,1376.859985,1398.660034,1186500000,1.383035315714598,1405.0130004333332 +2000-10-31,1398.660034,1432.219971,1398.660034,1429.400024,1366400000,2.1978171430327764,1403.9963337666666 +2000-11-01,1429.400024,1429.599976,1410.449951,1421.219971,1206800000,-0.5722717827518431,1402.9923339333332 +2000-11-02,1421.219971,1433.400024,1421.219971,1428.319946,1167700000,0.499569042433623,1402.3013305 +2000-11-03,1428.319946,1433.209961,1420.920044,1426.689941,997700000,-0.11412043951110062,1401.5669961666667 +2000-11-06,1428.76001,1438.459961,1427.719971,1432.189941,930900000,0.38550772960135316,1401.3389932333334 +2000-11-07,1432.189941,1436.219971,1423.26001,1431.869995,880900000,-0.022339634628121274,1401.4943277 +2000-11-08,1431.869995,1437.280029,1408.780029,1409.280029,909300000,-1.5776548205411633,1400.9179971333333 +2000-11-09,1409.280029,1409.280029,1369.680054,1400.140015,1111000000,-0.6485591090427678,1398.9796629999998 +2000-11-10,1400.140015,1400.140015,1365.969971,1365.97998,962500000,-2.439758498009925,1396.6286619999998 +2000-11-13,1365.97998,1365.97998,1328.619995,1351.26001,1129300000,-1.0776124259156528,1393.796329666667 +2000-11-14,1351.26001,1390.060059,1351.26001,1382.949951,1118800000,2.345214153122166,1392.345996 +2000-11-15,1382.949951,1395.959961,1374.75,1389.810059,1066800000,0.4960488985909617,1390.8623331000001 +2000-11-16,1389.810059,1394.76001,1370.390015,1372.319946,956300000,-1.2584534761954758,1388.730330333333 +2000-11-17,1372.319946,1384.849976,1355.550049,1367.719971,1070400000,-0.335196978912089,1387.3546630333333 +2000-11-20,1367.719971,1367.719971,1341.670044,1342.619995,955800000,-1.835169225587041,1385.3743285666667 +2000-11-21,1342.619995,1355.869995,1333.619995,1347.349976,1137100000,0.35229484274141853,1384.0519937666666 +2000-11-22,1347.349976,1347.349976,1321.890015,1322.359985,963200000,-1.8547512854967363,1382.6443277333333 +2000-11-24,1322.359985,1343.829956,1322.359985,1341.77002,404870000,1.4678329063322337,1383.0439941000002 +2000-11-27,1341.77002,1362.5,1341.77002,1348.969971,946100000,0.5366009742861833,1382.2039916666665 +2000-11-28,1348.969971,1358.810059,1334.969971,1336.089966,1028200000,-0.9548029442384087,1380.9196573666666 +2000-11-29,1336.089966,1352.380005,1329.280029,1341.930054,402100000,0.43710290089851167,1380.651660133333 +2000-11-30,1341.910034,1341.910034,1294.900024,1314.949951,1186530000,-2.0105446568975838,1379.7456583333333 +2000-12-01,1314.949951,1334.670044,1307.02002,1315.22998,1195200000,0.021295791508046946,1377.2946573333334 +2000-12-04,1315.180054,1332.060059,1310.22998,1324.969971,1103000000,0.7405542109068852,1374.8959879 +2000-12-05,1324.969971,1376.560059,1324.969971,1376.540039,900300000,3.8921688135375776,1374.2546549 +2000-12-06,1376.540039,1376.540039,1346.150024,1351.459961,1399300000,-1.8219650202270565,1372.6989867666668 +2000-12-07,1351.459961,1353.5,1339.26001,1343.550049,1128000000,-0.5852864478609665,1371.9873209333334 +2000-12-08,1343.550049,1380.329956,1343.550049,1369.890015,1358300000,1.9604752364532185,1372.1689900666668 +2000-12-11,1369.890015,1389.050049,1364.140015,1380.199951,1202400000,0.7526104933321953,1372.1896565666668 +2000-12-12,1380.199951,1380.27002,1370.27002,1371.180054,1083400000,-0.6535210346489961,1371.2736572333336 +2000-12-13,1371.180054,1385.819946,1358.47998,1359.98999,1195100000,-0.8160900508548341,1368.9599894333332 +2000-12-14,1359.98999,1359.98999,1340.47998,1340.930054,1061300000,-1.4014761976299583,1366.2836588666667 +2000-12-15,1340.930054,1340.930054,1305.380005,1312.150024,1561100000,-2.146273768281126,1362.4113281333334 +2000-12-18,1312.150024,1332.319946,1312.150024,1322.73999,1189900000,0.8070697562247764,1358.9463297666666 +2000-12-19,1322.959961,1346.439941,1305.199951,1305.599976,1324900000,-1.29579616021136,1354.7266642666666 +2000-12-20,1305.599976,1305.599976,1261.160034,1264.73999,1421600000,-3.129594573460681,1349.1556640999997 +2000-12-21,1264.73999,1285.310059,1254.069946,1274.859985,1449900000,0.8001640716682079,1344.6749959666668 +2000-12-22,1274.859985,1305.969971,1274.859985,1305.949951,1087100000,2.4386965130135385,1341.5353271666668 +2000-12-26,1305.969971,1315.939941,1301.640015,1315.189941,806500000,0.7075301770121278,1339.8423258666667 +2000-12-27,1315.189941,1332.030029,1310.959961,1328.920044,1092700000,1.0439635045840001,1339.0976603333334 +2000-12-28,1328.920044,1335.930054,1325.780029,1334.219971,1015300000,0.3988145881258065,1337.4733276666666 +2000-12-29,1334.219971,1340.099976,1317.51001,1320.280029,1035500000,-1.0448008801391295,1335.15566 +2001-01-02,1320.280029,1320.280029,1276.050049,1283.27002,1129400000,-2.8031938821366564,1332.1873291333334 +2001-01-03,1283.27002,1347.76001,1274.619995,1347.560059,1880700000,5.009860590368964,1331.5153320666664 +2001-01-04,1347.560059,1350.23999,1329.140015,1333.339966,2131000000,-1.0552474381403387,1331.2059977666665 +2001-01-05,1333.339966,1334.77002,1294.949951,1298.349976,1430800000,-2.624236195737051,1329.5726644333333 +2001-01-08,1298.349976,1298.349976,1276.290039,1295.859985,1115500000,-0.19178118735528882,1328.6893311 +2001-01-09,1295.859985,1311.719971,1295.140015,1300.800049,1191300000,0.38121896325087334,1327.3236654 +2001-01-10,1300.800049,1313.76001,1287.280029,1313.27002,1296500000,0.9586385708999945,1326.1336670333333 +2001-01-11,1313.27002,1332.189941,1309.719971,1326.819946,1411200000,1.031769993500653,1325.8246663666666 +2001-01-12,1326.819946,1333.209961,1311.589966,1318.550049,1276000000,-0.6232870575191174,1325.0453328666665 +2001-01-16,1318.319946,1327.810059,1313.329956,1326.650024,1205700000,0.6143092563034136,1325.4353353000001 +2001-01-17,1326.650024,1346.920044,1325.410034,1329.469971,1349100000,0.21256148562056598,1325.9100016666666 +2001-01-18,1329.890015,1352.709961,1327.410034,1347.969971,1445000000,1.391531994219064,1326.6766683333333 +2001-01-19,1347.969971,1354.550049,1336.73999,1342.540039,1407800000,-0.4028229201553879,1325.5433349999998 +2001-01-22,1342.540039,1353.619995,1333.839966,1342.900024,1164000000,0.026813725441532377,1325.2580037666667 +2001-01-23,1342.900024,1362.900024,1339.630005,1360.400024,1232600000,1.3031498761816973,1325.8196696000002 +2001-01-24,1360.400024,1369.75,1357.280029,1364.300049,1309000000,0.2866822207583164,1325.6333373999998 +2001-01-25,1364.300049,1367.349976,1354.630005,1357.51001,1258000000,-0.4976939643868583,1324.8770060333334 +2001-01-26,1357.51001,1357.51001,1342.75,1354.949951,1098000000,-0.18858490774590342,1324.3360026 +2001-01-29,1354.920044,1365.540039,1350.359985,1364.170044,1053100000,0.6804748022755547,1324.4753377333334 +2001-01-30,1364.170044,1375.680054,1356.199951,1373.72998,1149800000,0.7007877091310899,1325.5686686000001 +2001-01-31,1373.72998,1383.369995,1364.660034,1366.01001,1295300000,-0.561971429057706,1327.3640014666667 +2001-02-01,1366.01001,1373.5,1359.339966,1373.469971,1118800000,0.5461132016155501,1329.0550008333335 +2001-02-02,1373.469971,1376.380005,1348.719971,1349.469971,1048400000,-1.7473989607887819,1330.517334 +2001-02-05,1349.469971,1354.560059,1344.47998,1354.310059,1013000000,0.3586658542993115,1333.5030029666668 +2001-02-06,1354.310059,1363.550049,1350.040039,1352.26001,1059600000,-0.15137220508527616,1336.0830038 +2001-02-07,1352.26001,1352.26001,1334.26001,1340.890015,1158300000,-0.8408142602693736,1337.2476725999998 +2001-02-08,1341.099976,1350.319946,1332.420044,1332.530029,1107200000,-0.6234654525337779,1337.8256755333334 +2001-02-09,1332.530029,1332.530029,1309.97998,1314.76001,1075500000,-1.3335548628000238,1337.3536744 +2001-02-12,1314.76001,1330.959961,1313.640015,1330.310059,1039100000,1.182729082245193,1337.2233439999998 +2001-02-13,1330.310059,1336.619995,1317.51001,1318.800049,1075200000,-0.8652125812423028,1337.1740113333333 +2001-02-14,1318.800049,1320.72998,1304.719971,1315.920044,1150300000,-0.21838071678749182,1338.2623454666666 +2001-02-15,1315.920044,1331.290039,1315.920044,1326.609985,1153700000,0.8123549032284627,1337.5640096666668 +2001-02-16,1326.609985,1326.609985,1293.180054,1301.530029,1257200000,-1.8905297173682944,1336.5036784333336 +2001-02-20,1301.530029,1307.160034,1278.439941,1278.939941,1112200000,-1.7356563042465134,1335.8566772666666 +2001-02-21,1278.939941,1282.969971,1253.160034,1255.27002,1208500000,-1.8507453118942196,1334.5036784333336 +2001-02-22,1255.27002,1259.939941,1228.329956,1252.819946,1365900000,-0.19518302524264008,1332.9043416666666 +2001-02-23,1252.819946,1252.819946,1215.439941,1245.859985,1231300000,-0.5555435976432044,1330.6573405000001 +2001-02-26,1245.859985,1267.689941,1241.709961,1267.650024,1130800000,1.7489958151276408,1328.6850097666668 +2001-02-27,1267.650024,1272.76001,1252.26001,1257.939941,1114100000,-0.7659908347069089,1326.6646728333333 +2001-02-28,1257.939941,1263.469971,1229.650024,1239.939941,1225300000,-1.4309109213664795,1323.7743367333335 +2001-03-01,1239.939941,1241.359985,1214.5,1241.22998,1294900000,0.10404044239107346,1320.8330037 +2001-03-02,1241.22998,1251.01001,1219.73999,1234.180054,1294000000,-0.5679790299618848,1317.040006466667 +2001-03-05,1234.180054,1242.550049,1234.040039,1241.410034,929200000,0.5858124166378875,1313.6690062999999 +2001-03-06,1241.410034,1267.420044,1241.410034,1253.800049,1091800000,0.9980598400737506,1310.6990071333335 +2001-03-07,1253.800049,1263.859985,1253.800049,1261.890015,1132200000,0.6452357380630547,1307.4153401666665 +2001-03-08,1261.890015,1266.5,1257.599976,1264.73999,1114100000,0.22584971480261729,1304.0966715333334 +2001-03-09,1264.73999,1264.73999,1228.420044,1233.420044,1085900000,-2.47639406104333,1299.9603393333334 +2001-03-12,1233.420044,1233.420044,1176.780029,1180.160034,1229000000,-4.318075602799265,1294.1340087666665 +2001-03-13,1180.160034,1197.829956,1171.5,1197.660034,1360900000,1.4828497403598817,1288.5836751 +2001-03-14,1197.660034,1197.660034,1155.349976,1166.709961,1397400000,-2.5842118899660926,1281.6830077999998 +2001-03-15,1166.709961,1182.040039,1166.709961,1173.560059,1259500000,0.5871294691037532,1275.2680094333332 +2001-03-16,1173.560059,1173.560059,1148.640015,1150.530029,1543560000,-1.962407447610648,1267.8366780333333 +2001-03-19,1150.530029,1173.5,1147.180054,1170.810059,1126200000,1.7626684648662794,1261.8813476333335 +2001-03-20,1170.810059,1180.560059,1142.189941,1142.619995,1235900000,-2.4077401610366533,1254.8250121666667 +2001-03-21,1142.619995,1149.390015,1118.73999,1122.140015,1346300000,-1.7923701746528686,1247.1543456666666 +2001-03-22,1122.140015,1124.27002,1081.189941,1117.579956,1723950000,-0.40637165942254416,1239.7106770333335 +2001-03-23,1117.579956,1141.829956,1117.579956,1139.829956,1364900000,1.9909090066035473,1233.2873412666668 +2001-03-26,1139.829956,1160.02002,1139.829956,1152.689941,1114000000,1.1282371490857646,1227.8850056333333 +2001-03-27,1152.689941,1183.349976,1150.959961,1182.170044,1314200000,2.5575050107945696,1222.9470051333333 +2001-03-28,1182.170044,1182.170044,1147.829956,1153.290039,1333400000,-2.442965387811835,1217.4300048 +2001-03-29,1153.290039,1161.689941,1136.26001,1147.949951,1234500000,-0.4630307918578991,1211.8310017000001 +2001-03-30,1147.949951,1162.800049,1143.829956,1160.329956,1280800000,1.0784446647012391,1206.2883340666667 +2001-04-02,1160.329956,1169.51001,1137.51001,1145.869995,1254900000,-1.2461938886631718,1201.0996662666666 +2001-04-03,1145.869995,1145.869995,1100.189941,1106.459961,1386100000,-3.4393111061434167,1195.3503336 +2001-04-04,1106.459961,1117.5,1091.98999,1103.25,1425590000,-0.2901109044288308,1190.2829996 +2001-04-05,1103.25,1151.469971,1103.25,1151.439941,1368000000,4.367998277815555,1186.9036661 +2001-04-06,1151.439941,1151.439941,1119.290039,1128.430054,1266800000,-1.9983575504612605,1182.9893350666669 +2001-04-09,1128.430054,1146.130005,1126.380005,1137.589966,1062800000,0.8117394576234949,1178.6539998 +2001-04-10,1137.589966,1173.920044,1137.589966,1168.380005,1349600000,2.7066025475122713,1175.6686686 +2001-04-11,1168.380005,1182.23999,1160.26001,1165.890015,1290300000,-0.21311473915544,1173.2003377333333 +2001-04-12,1165.890015,1183.51001,1157.72998,1183.5,1102000000,1.510432782975668,1171.2760050666666 +2001-04-16,1183.5,1184.640015,1167.380005,1179.680054,913900000,-0.3227668779045234,1169.4593384 +2001-04-17,1179.680054,1192.25,1168.900024,1191.810059,1109600000,1.0282453245581413,1167.8060059000002 +2001-04-18,1191.810059,1248.420044,1191.810059,1238.160034,1918900000,3.8890404263654643,1167.2846720666666 +2001-04-19,1238.160034,1253.709961,1233.390015,1253.689941,1486800000,1.2542729997372826,1167.0113362666666 +2001-04-20,1253.699951,1253.699951,1234.410034,1242.97998,1338700000,-0.8542751002259208,1166.2860026 +2001-04-23,1242.97998,1242.97998,1217.469971,1224.359985,1012600000,-1.4980124619545343,1165.9840006333334 +2001-04-24,1224.359985,1233.540039,1208.890015,1209.469971,1216500000,-1.2161467364518619,1166.9609985333334 +2001-04-25,1209.469971,1232.359985,1207.380005,1228.75,1203600000,1.5940891020269854,1167.9973307333335 +2001-04-26,1228.75,1248.300049,1228.75,1234.52002,1345200000,0.46958453713121795,1170.2576660333332 +2001-04-27,1234.52002,1253.069946,1234.52002,1253.050049,1091300000,1.50099056311781,1172.9073323666669 +2001-04-30,1253.050049,1269.300049,1243.98999,1249.459961,1266800000,-0.2865079493724165,1176.204996766667 +2001-05-01,1249.459961,1266.469971,1243.550049,1266.439941,1181300000,1.358985524146794,1179.3926595 +2001-05-02,1266.439941,1272.930054,1257.699951,1267.430054,1342200000,0.07818080968118313,1183.5529947999999 +2001-05-03,1267.430054,1267.430054,1239.880005,1248.579956,1137900000,-1.4872692927320963,1187.7676595 +2001-05-04,1248.579956,1267.51001,1232.0,1266.609985,1082100000,1.4440428034550257,1192.7353271333334 +2001-05-07,1266.609985,1270.0,1259.189941,1263.51001,949000000,-0.24474582047449012,1196.8579955999999 +2001-05-08,1266.709961,1267.01001,1253.0,1261.199951,1006300000,-0.18282870588416378,1200.4749959333335 +2001-05-09,1261.199951,1261.650024,1247.829956,1255.540039,1132400000,-0.44877198064529056,1202.9206624333335 +2001-05-10,1255.540039,1268.140015,1254.560059,1255.180054,1056700000,-0.028671726015749854,1206.3169962666666 +2001-05-11,1255.180054,1259.839966,1240.790039,1245.670044,906200000,-0.7576610200021539,1209.5743326999998 +2001-05-14,1245.670044,1249.680054,1241.02002,1248.920044,858200000,0.26090376144582983,1212.5273356333335 +2001-05-15,1248.920044,1257.449951,1245.359985,1249.439941,1071800000,0.04162772488902622,1215.9796671666666 +2001-05-16,1249.439941,1286.390015,1243.02002,1284.98999,1405300000,2.845278739172308,1221.9306681333333 +2001-05-17,1284.98999,1296.47998,1282.650024,1288.48999,1355600000,0.2723756626306528,1228.1053344666666 +2001-05-18,1288.48999,1292.060059,1281.150024,1291.959961,1130800000,0.26930523534762774,1232.7893351333335 +2001-05-21,1291.959961,1312.949951,1287.869995,1312.829956,1174900000,1.6153747507659855,1238.935998533333 +2001-05-22,1312.829956,1315.930054,1306.890015,1309.380005,1260400000,-0.26278734608643495,1244.6623331666667 +2001-05-23,1309.380005,1309.380005,1288.699951,1289.050049,1134800000,-1.5526398694319488,1248.6846679666667 +2001-05-24,1289.050049,1295.040039,1281.219971,1293.170044,1100700000,0.3196148204793303,1252.9273356 +2001-05-25,1293.170044,1293.170044,1276.420044,1277.890015,828100000,-1.1815947230525259,1256.0736694333332 +2001-05-29,1277.890015,1278.420044,1265.410034,1267.930054,1026000000,-0.7794067473013366,1259.0153361 +2001-05-30,1267.930054,1267.930054,1245.959961,1248.079956,1158600000,-1.5655515016288035,1260.8909993333334 +2001-05-31,1248.079956,1261.910034,1248.069946,1255.819946,1226600000,0.6201517749556684,1261.4796630666667 +2001-06-01,1255.819946,1265.339966,1246.880005,1260.670044,1015000000,0.38620966448639216,1261.7123331666667 +2001-06-04,1260.670044,1267.170044,1256.359985,1267.109985,836500000,0.5108347763675525,1262.5166666666667 +2001-06-05,1267.109985,1286.619995,1267.109985,1283.569946,1116800000,1.299015965058481,1264.4903320333333 +2001-06-06,1283.569946,1283.849976,1269.01001,1270.030029,1061900000,-1.0548639785618708,1266.5090006333332 +2001-06-07,1270.030029,1277.079956,1265.079956,1276.959961,1089600000,0.5456510351536048,1268.1159993333333 +2001-06-08,1276.959961,1277.109985,1259.98999,1264.959961,726200000,-0.9397318918756614,1269.1306640333335 +2001-06-11,1264.959961,1264.959961,1249.22998,1254.390015,870100000,-0.8355953015022011,1269.1753295666667 +2001-06-12,1254.390015,1261.0,1235.75,1255.849976,1136500000,0.11638812351355554,1269.3883300666666 +2001-06-13,1255.849976,1259.75,1241.589966,1241.599976,1063600000,-1.1346896741112,1268.5603312333333 +2001-06-14,1241.599976,1241.599976,1218.900024,1219.869995,1242900000,-1.7501595860211272,1266.9749959333335 +2001-06-15,1219.869995,1221.5,1203.030029,1214.359985,1635550000,-0.4516882965057256,1265.8343302333335 +2001-06-18,1214.359985,1221.22998,1208.329956,1208.430054,1111600000,-0.48831739132116914,1263.8949992 +2001-06-19,1208.430054,1226.109985,1207.709961,1212.579956,1184900000,0.34341267715607415,1262.1973307333333 +2001-06-20,1212.579956,1225.609985,1210.069946,1223.140015,1350100000,0.8708752728219915,1260.9286662 +2001-06-21,1223.140015,1240.23999,1220.25,1237.040039,1546820000,1.1364213278559188,1260.3119995333332 +2001-06-22,1237.040039,1237.72998,1221.410034,1225.349976,1189200000,-0.9450027995415611,1259.3176636 +2001-06-25,1225.349976,1231.5,1213.599976,1218.599976,1050100000,-0.5508630295186778,1258.4153279999998 +2001-06-26,1218.599976,1220.699951,1204.640015,1216.76001,1198900000,-0.15099015560787743,1257.3433268666665 +2001-06-27,1216.76001,1219.920044,1207.290039,1211.069946,1162100000,-0.467640615506415,1256.0643270333335 +2001-06-28,1211.069946,1234.439941,1211.069946,1226.199951,1327300000,1.2493089313273975,1254.1046590666667 +2001-06-29,1226.199951,1237.290039,1221.140015,1224.380005,1832360000,-0.14842163372423833,1251.9676595666667 +2001-07-02,1224.420044,1239.780029,1224.030029,1236.719971,1128300000,1.0078542568162874,1250.1263265666666 +2001-07-03,1236.709961,1236.709961,1229.430054,1234.449951,622110000,-0.18355165706303023,1247.5136597333335 +2001-07-05,1234.449951,1234.449951,1219.150024,1219.23999,934900000,-1.2321245577982975,1244.5089925666666 +2001-07-06,1219.23999,1219.23999,1188.73999,1190.589966,1056700000,-2.3498264685363535,1241.2269898 +2001-07-09,1190.589966,1201.76001,1189.75,1198.780029,1045700000,0.6878995484495887,1238.0806559666667 +2001-07-10,1198.780029,1203.430054,1179.930054,1181.52002,1263800000,-1.4397978430119585,1234.8683228000002 +2001-07-11,1181.52002,1184.930054,1168.459961,1180.180054,1384100000,-0.11341035084618811,1231.9433228 +2001-07-12,1180.180054,1210.25,1180.180054,1208.140015,1394000000,2.3691267197098353,1230.611991433333 +2001-07-13,1208.140015,1218.540039,1203.609985,1215.680054,1121700000,0.6241030763309396,1229.2739950333334 +2001-07-16,1215.680054,1219.630005,1200.050049,1202.449951,1039800000,-1.0882882347594935,1227.3333252666669 +2001-07-17,1202.449951,1215.359985,1196.140015,1214.439941,1238100000,0.9971300668297101,1225.5776571333333 +2001-07-18,1214.439941,1214.439941,1198.329956,1207.709961,1316300000,-0.5541632626524517,1223.0489909666665 +2001-07-19,1207.709961,1225.040039,1205.800049,1215.02002,1343500000,0.6052826619022955,1221.215324 +2001-07-20,1215.02002,1215.689941,1207.040039,1210.849976,1170900000,-0.343207842781057,1219.0116578333334 +2001-07-23,1210.849976,1215.219971,1190.5,1191.030029,986900000,-1.6368623192672072,1216.5473267666669 +2001-07-24,1191.030029,1191.030029,1165.540039,1171.650024,1198700000,-1.6271634239374833,1213.7893270666666 +2001-07-25,1171.650024,1190.52002,1171.280029,1190.48999,1280700000,1.6079857990085378,1211.6106608666666 +2001-07-26,1190.48999,1204.180054,1182.650024,1202.930054,1213900000,1.0449532633197478,1210.321663466667 +2001-07-27,1202.930054,1209.26001,1195.98999,1205.819946,1015300000,0.24023774203585369,1209.8533285 +2001-07-30,1205.819946,1209.050049,1200.410034,1204.52002,909100000,-0.10780432056314293,1209.5253296666667 +2001-07-31,1204.52002,1222.73999,1204.52002,1211.22998,1129200000,0.5570650457100923,1209.6186605333335 +2001-08-01,1211.22998,1223.040039,1211.22998,1215.930054,1340300000,0.38804141885588894,1209.7303304666668 +2001-08-02,1215.930054,1226.27002,1215.310059,1220.75,1218300000,0.3963999396300766,1209.6506633000001 +2001-08-03,1220.75,1220.75,1205.310059,1214.349976,939900000,-0.5242698341183738,1208.8943278666668 +2001-08-06,1214.349976,1214.349976,1197.349976,1200.47998,811700000,-1.1421745192178312,1208.065328 +2001-08-07,1200.469971,1207.560059,1195.640015,1204.400024,1012000000,0.3265397228864986,1207.5919962666667 +2001-08-08,1204.400024,1206.790039,1181.27002,1183.530029,1124600000,-1.732812569256481,1206.4843302333334 +2001-08-09,1183.530029,1184.709961,1174.680054,1183.430054,1104200000,-0.008447187443527682,1205.5630004999998 +2001-08-10,1183.430054,1193.329956,1169.550049,1190.160034,960900000,0.5686842223799227,1204.3616699333331 +2001-08-13,1190.160034,1193.819946,1185.119995,1191.290039,837600000,0.09494563484897522,1203.2586710666665 +2001-08-14,1191.290039,1198.790039,1184.26001,1186.72998,964600000,-0.3827832728147129,1201.5923380333334 +2001-08-15,1186.72998,1191.209961,1177.609985,1178.02002,1065600000,-0.7339462343405323,1199.711340333333 +2001-08-16,1178.02002,1181.800049,1166.079956,1181.660034,1055400000,0.308994239333904,1198.4586751333334 +2001-08-17,1181.660034,1181.660034,1156.069946,1161.969971,974300000,-1.6663052344546014,1197.5046753 +2001-08-20,1161.969971,1171.410034,1160.939941,1171.410034,897100000,0.8124188434814661,1196.5923421333332 +2001-08-21,1171.410034,1179.849976,1156.560059,1157.26001,1041600000,-1.207947993383851,1195.7836751333334 +2001-08-22,1157.26001,1168.560059,1153.339966,1165.310059,1110800000,0.6956128208387646,1195.2880086333332 +2001-08-23,1165.310059,1169.859985,1160.959961,1162.089966,986200000,-0.27632928894162356,1193.7530069999998 +2001-08-24,1162.089966,1185.150024,1162.089966,1184.930054,1043600000,1.9654319947892906,1192.7280070000002 +2001-08-27,1184.930054,1186.849976,1178.069946,1179.209961,842600000,-0.4827367641398239,1191.9533406666667 +2001-08-28,1179.209961,1179.660034,1161.170044,1161.51001,987100000,-1.5010008043851664,1190.1890096333334 +2001-08-29,1161.51001,1166.969971,1147.380005,1148.560059,963700000,-1.1149237534336942,1188.2173462333333 +2001-08-30,1148.599976,1151.75,1124.869995,1129.030029,1157000000,-1.7003925782517526,1185.3510132000001 +2001-08-31,1129.030029,1141.829956,1126.380005,1133.579956,920100000,0.40299432992318973,1182.7753458666666 +2001-09-04,1133.579956,1155.400024,1129.060059,1132.939941,1178300000,-0.05645962568519014,1180.8390095999998 +2001-09-05,1132.939941,1135.52002,1114.859985,1131.73999,1384500000,-0.10591479358922351,1179.5086751333333 +2001-09-06,1131.73999,1131.73999,1105.829956,1106.400024,1359700000,-2.23902718149952,1176.7056762666666 +2001-09-07,1106.400024,1106.400024,1082.119995,1085.780029,1424300000,-1.8637016045473298,1172.8006754333333 +2001-09-10,1085.780029,1096.939941,1073.150024,1092.540039,1276600000,0.6225948000006865,1169.0246785333334 +2001-09-17,1092.540039,1092.540039,1037.459961,1038.77002,2330830000,-4.921560499440892,1163.499678533333 +2001-09-18,1038.77002,1046.420044,1029.25,1032.73999,1650410000,-0.5804971152324812,1157.5500122 +2001-09-19,1032.73999,1038.910034,984.619995,1016.099976,2120550000,-1.611249119926117,1150.8890095999998 +2001-09-20,1016.099976,1016.099976,984.48999,984.539978,2004800000,-3.1059933811079965,1143.0153421999998 +2001-09-21,984.539978,984.539978,944.75,965.799988,2317300000,-1.9034260079584087,1134.7303425999999 +2001-09-24,965.799988,1008.440002,965.799988,1003.450012,1746600000,3.8983251675086983,1128.162677 +2001-09-25,1003.450012,1017.140015,998.330017,1012.27002,1613800000,0.8789683486495337,1121.7583435333333 +2001-09-26,1012.27002,1020.289978,1002.619995,1007.039978,1519100000,-0.5166647136304658,1115.8753418333333 +2001-09-27,1007.039978,1018.919983,998.23999,1018.609985,1467000000,1.1489123821060598,1110.3813395333334 +2001-09-28,1018.609985,1040.939941,1018.609985,1040.939941,1631500000,2.192198812973545,1105.4073364333335 +2001-10-01,1040.939941,1040.939941,1026.76001,1038.550049,1175600000,-0.2295898068532365,1100.3160034333334 +2001-10-02,1038.550049,1051.329956,1034.469971,1051.329956,1289800000,1.2305528281767009,1095.8026693 +2001-10-03,1051.329956,1075.380005,1041.47998,1072.280029,1650600000,1.992721017834298,1092.2780029333335 +2001-10-04,1072.280029,1084.119995,1067.819946,1069.630005,1609100000,-0.24713917338098357,1088.5436686333335 +2001-10-05,1069.619995,1072.349976,1053.5,1071.380005,1301700000,0.16360797582524178,1085.5240031 +2001-10-08,1071.369995,1071.369995,1056.880005,1062.439941,979000000,-0.834443797558071,1081.8916666666667 +2001-10-09,1062.439941,1063.369995,1053.829956,1056.75,1227800000,-0.5355541316193868,1078.5413330000001 +2001-10-10,1056.75,1081.619995,1052.76001,1080.98999,1312400000,2.293824461793248,1075.7306640333334 +2001-10-11,1080.98999,1099.160034,1080.98999,1097.430054,1704580000,1.5208340643376284,1073.5753336333335 +2001-10-12,1097.430054,1097.430054,1072.150024,1091.650024,1331400000,-0.5266877810510495,1070.4659993 +2001-10-15,1091.650024,1091.650024,1078.189941,1089.97998,1024700000,-0.1529834620330628,1067.4916666 +2001-10-16,1089.97998,1101.660034,1087.130005,1097.540039,1210500000,0.6935961337565022,1065.3593342333334 +2001-10-17,1097.540039,1107.119995,1076.569946,1077.089966,1452200000,-1.8632644161786227,1062.9769978 +2001-10-18,1077.089966,1077.939941,1064.540039,1068.609985,1262900000,-0.7873047997552285,1060.9629963333334 +2001-10-19,1068.609985,1075.52002,1057.23999,1073.47998,1294900000,0.45573175137418875,1058.9596638 +2001-10-22,1073.47998,1090.569946,1070.790039,1089.900024,1105700000,1.5296087776131673,1057.5249999 +2001-10-23,1089.900024,1098.98999,1081.530029,1084.780029,1317300000,-0.4697673995096685,1055.9596678666667 +2001-10-24,1084.780029,1090.26001,1079.97998,1085.199951,1336200000,0.038710336545100255,1055.2529987666667 +2001-10-25,1085.199951,1100.089966,1065.640015,1100.089966,1364400000,1.3720987534397766,1055.7299966666667 +2001-10-26,1100.089966,1110.609985,1094.23999,1104.609985,1244500000,0.410877213655092,1056.1323282 +2001-10-29,1104.609985,1104.609985,1078.300049,1078.300049,1106100000,-2.3818303616004455,1057.4499958333333 +2001-10-30,1078.300049,1078.300049,1053.609985,1059.790039,1297400000,-1.7165917795483598,1058.3516641333333 +2001-10-31,1059.790039,1074.790039,1057.550049,1059.780029,1352500000,-0.0009445267110996802,1059.8076659 +2001-11-01,1059.780029,1085.609985,1054.310059,1084.099976,1317400000,2.2948108413543222,1063.1263325000002 +2001-11-02,1084.099976,1089.630005,1075.579956,1087.199951,1121900000,0.2859491807608139,1067.1729979333334 +2001-11-05,1087.199951,1106.719971,1087.199951,1102.839966,1267700000,1.438559207587753,1070.4859964 +2001-11-06,1102.839966,1119.72998,1095.359985,1118.859985,1356000000,1.45261502066385,1074.0389952333333 +2001-11-07,1118.859985,1126.619995,1112.97998,1115.800049,1411300000,-0.2734869457325484,1077.6643309333333 +2001-11-08,1115.800049,1135.75,1115.420044,1118.540039,1517500000,0.24556281409520153,1080.9953327333333 +2001-11-09,1118.540039,1123.02002,1111.130005,1120.310059,1093800000,0.15824377655557775,1083.6410033333334 +2001-11-12,1120.310059,1121.709961,1098.319946,1118.329956,991600000,-0.17674598064104652,1086.3003335666667 +2001-11-13,1118.329956,1139.140015,1118.329956,1139.089966,1370100000,1.856340330384576,1089.2256672333333 +2001-11-14,1139.089966,1148.280029,1132.869995,1141.209961,1443400000,0.18611304315536703,1091.5233316333333 +2001-11-15,1141.209961,1146.459961,1135.060059,1142.23999,1454500000,0.09025762438117368,1093.9436644666669 +2001-11-16,1142.23999,1143.52002,1129.920044,1138.650024,1337400000,-0.31429174529251647,1096.1859984333335 +2001-11-19,1138.650024,1151.060059,1138.650024,1151.060059,1316800000,1.0898901979033315,1099.1400023666667 +2001-11-20,1151.060059,1152.449951,1142.170044,1142.660034,1330200000,-0.7297642668009474,1102.0036701666666 +2001-11-21,1142.660034,1142.660034,1129.780029,1137.030029,1029300000,-0.4927104153885198,1103.8716714666666 +2001-11-23,1137.030029,1151.050049,1135.900024,1150.339966,410300000,1.170587993327299,1105.6353352 +2001-11-26,1150.339966,1157.880005,1146.170044,1157.420044,1129800000,0.6154770076031602,1107.8276692 +2001-11-27,1157.420044,1163.380005,1140.810059,1149.5,1288000000,-0.6842843305727264,1109.8116698666668 +2001-11-28,1149.5,1149.5,1128.290039,1128.52002,1423700000,-1.8251396259243213,1110.8443359 +2001-11-29,1128.52002,1140.400024,1125.51001,1140.199951,1375700000,1.0349777401379212,1112.9480020666667 +2001-11-30,1140.199951,1143.569946,1135.890015,1139.449951,1343600000,-0.06577793652264852,1115.3093342666666 +2001-12-03,1139.449951,1139.449951,1125.780029,1129.900024,1202900000,-0.838117285591955,1117.1900024 +2001-12-04,1129.900024,1144.800049,1128.859985,1144.800049,1318500000,1.318702954554496,1119.0200032333335 +2001-12-05,1143.77002,1173.619995,1143.77002,1170.349976,1765300000,2.2318244153045175,1121.8723347999999 +2001-12-06,1170.349976,1173.349976,1164.430054,1167.099976,1487900000,-0.2776947124062623,1124.6023356333333 +2001-12-07,1167.099976,1167.099976,1152.660034,1158.310059,1248200000,-0.7531417342776181,1126.5430054 +2001-12-10,1158.310059,1158.310059,1139.660034,1139.930054,1218700000,-1.5867949049728436,1127.7203410333334 +2001-12-11,1139.930054,1150.890015,1134.319946,1136.76001,1367200000,-0.2780910976841411,1129.6690064 +2001-12-12,1136.76001,1141.579956,1126.01001,1137.069946,1449700000,0.027264857777686835,1132.2450033 +2001-12-13,1137.069946,1137.069946,1117.849976,1119.380005,1511500000,-1.5557478290785909,1134.2316691666667 +2001-12-14,1119.380005,1128.280029,1114.530029,1123.089966,1306800000,0.3314299865486703,1135.5313355 +2001-12-17,1123.089966,1137.300049,1122.660034,1134.359985,1260400000,1.0034831884518924,1137.1033366333334 +2001-12-18,1134.359985,1145.099976,1134.359985,1142.920044,1354000000,0.75461574043445,1138.4393392333334 +2001-12-19,1142.920044,1152.439941,1134.75,1149.560059,1484900000,0.5809693368191482,1139.4626750333332 +2001-12-20,1149.560059,1151.420044,1139.930054,1139.930054,1490500000,-0.8377122121289715,1140.2670085333334 +2001-12-21,1139.930054,1147.459961,1139.930054,1144.890015,1694000000,0.4351109949768839,1141.1453410666666 +2001-12-24,1144.890015,1147.829956,1144.619995,1144.650024,439670000,-0.020961926198637126,1141.9566732333333 +2001-12-26,1144.650024,1159.180054,1144.650024,1149.369995,791100000,0.41235057887003546,1142.9913412 +2001-12-27,1149.369995,1157.130005,1149.369995,1157.130005,876300000,0.6751533478129401,1143.5926758333333 +2001-12-28,1157.130005,1164.640015,1157.130005,1161.02002,917400000,0.33617786965951524,1144.2530111333333 +2001-12-31,1161.02002,1161.160034,1148.040039,1148.079956,943600000,-1.1145427104693573,1144.4476766666667 +2002-01-02,1148.079956,1154.670044,1136.22998,1154.670044,1171000000,0.5740094986903532,1144.9816773333332 +2002-01-03,1154.670044,1165.27002,1154.01001,1165.27002,1398900000,0.9180090931673934,1145.4553427 +2002-01-04,1165.27002,1176.550049,1163.420044,1172.51001,1513000000,0.621314362828973,1146.4503419 +2002-01-07,1172.51001,1176.969971,1163.550049,1164.890015,1308300000,-0.6498874154601042,1147.3790081 +2002-01-08,1164.890015,1167.599976,1157.459961,1160.709961,1258800000,-0.35883679542054736,1147.7246745999998 +2002-01-09,1160.709961,1174.26001,1151.890015,1155.140015,1452000000,-0.47987405873568534,1147.6486736333334 +2002-01-10,1155.140015,1159.930054,1150.849976,1156.550049,1299000000,0.12206606832851907,1147.8836752666668 +2002-01-11,1156.550049,1159.410034,1145.449951,1145.599976,1211900000,-0.9467876474059889,1148.4530071333331 +2002-01-14,1145.599976,1145.599976,1138.150024,1138.410034,1286400000,-0.6276136653829645,1148.393343233333 +2002-01-15,1138.410034,1148.810059,1136.880005,1146.189941,1386900000,0.6834011268034956,1148.6180095666668 +2002-01-16,1146.189941,1146.189941,1127.48999,1127.569946,1482500000,-1.6245121627707637,1148.5403402999998 +2002-01-17,1127.569946,1139.27002,1127.569946,1138.880005,1380100000,1.0030472202741558,1148.3430055 +2002-01-18,1138.880005,1138.880005,1124.449951,1127.579956,1333300000,-0.9922071640901198,1146.9173381666665 +2002-01-22,1127.579956,1135.26001,1117.910034,1119.310059,1311600000,-0.733420007689467,1145.3243409333334 +2002-01-23,1119.310059,1131.939941,1117.430054,1128.180054,1479200000,0.7924520045790029,1144.3200074333333 +2002-01-24,1128.180054,1139.5,1128.180054,1132.150024,1552800000,0.3518915252866295,1144.0606731 +2002-01-25,1132.150024,1138.310059,1127.819946,1133.280029,1345100000,0.09981053535710327,1143.9446737333335 +2002-01-28,1133.280029,1138.630005,1126.660034,1133.060059,1186800000,-0.019410030563604685,1143.8110108333333 +2002-01-29,1133.060059,1137.469971,1098.73999,1100.640015,1812000000,-2.861282042596469,1143.1863445000001 +2002-01-30,1100.640015,1113.790039,1081.660034,1113.569946,2019600000,1.174764757212654,1142.8690104999998 +2002-01-31,1113.569946,1130.209961,1113.300049,1130.199951,1557000000,1.4933956380320579,1142.7303427 +2002-02-01,1130.199951,1130.199951,1118.51001,1122.199951,1367200000,-0.7078393511627423,1142.0396729333333 +2002-02-04,1122.199951,1122.199951,1092.25,1094.439941,1437600000,-2.4737133498591635,1140.2023356666666 +2002-02-05,1094.439941,1100.959961,1082.579956,1090.02002,1778300000,-0.4038523115267201,1138.5386678666666 +2002-02-06,1090.02002,1093.579956,1077.780029,1083.51001,1665800000,-0.5972376544056468,1136.4926677 +2002-02-07,1083.51001,1094.030029,1078.439941,1080.170044,1441600000,-0.30825428184092507,1134.3433350333332 +2002-02-08,1080.170044,1096.300049,1079.910034,1096.219971,1371900000,1.4858704043082982,1132.5716675666665 +2002-02-11,1096.219971,1112.01001,1094.680054,1111.939941,1159400000,1.4340160201296026,1131.0653321 +2002-02-12,1111.939941,1112.680054,1102.97998,1107.5,1094200000,-0.3992968357631854,1129.2813314333334 +2002-02-13,1107.5,1120.560059,1107.5,1118.51001,1215900000,0.994131828442435,1128.2956665666668 +2002-02-14,1118.51001,1124.719971,1112.300049,1116.47998,1272500000,-0.18149412896178996,1127.0226644333334 +2002-02-15,1116.47998,1117.089966,1103.22998,1104.180054,1359200000,-1.1016700899554088,1124.9863322333333 +2002-02-19,1104.180054,1104.180054,1082.23999,1083.339966,1189900000,-1.887381312903147,1122.0139974333333 +2002-02-20,1083.339966,1098.319946,1074.359985,1097.97998,1438900000,1.351377633934736,1119.7836629333333 +2002-02-21,1097.97998,1101.5,1080.23999,1080.949951,1381600000,-1.5510327428738702,1117.1249959333334 +2002-02-22,1080.949951,1093.930054,1074.390015,1089.839966,1411000000,0.8224261439464087,1114.9483276333335 +2002-02-25,1089.839966,1112.709961,1089.839966,1109.430054,1367400000,1.7975196919875147,1113.3776611333335 +2002-02-26,1109.430054,1115.050049,1101.719971,1109.380005,1309200000,-0.004511235279724968,1112.1703287666667 +2002-02-27,1109.380005,1123.060059,1102.26001,1109.890015,1393800000,0.04597252498705906,1111.2196614666668 +2002-02-28,1109.890015,1121.569946,1106.72998,1106.72998,1392200000,-0.28471604909428017,1109.9043294333335 +2002-03-01,1106.72998,1131.790039,1106.72998,1131.780029,1456500000,2.2634291518876193,1110.0446655333333 +2002-03-04,1131.780029,1153.839966,1130.930054,1153.839966,1594300000,1.9491364430145763,1110.5433309 +2002-03-05,1153.839966,1157.73999,1144.780029,1146.140015,1549300000,-0.6673326654382916,1111.1619995333333 +2002-03-06,1146.140015,1165.290039,1145.109985,1162.77002,1541300000,1.4509575429141552,1112.6106648999998 +2002-03-07,1162.77002,1167.939941,1150.689941,1157.540039,1517400000,-0.4497863644609579,1113.5893310666665 +2002-03-08,1157.540039,1172.76001,1157.540039,1164.310059,1412000000,0.584862706420819,1114.6613322333333 +2002-03-11,1164.310059,1173.030029,1159.579956,1168.26001,1210200000,0.33925250146791264,1115.8273316 +2002-03-12,1168.26001,1168.26001,1154.339966,1165.579956,1304400000,-0.2294056098008479,1116.9113281666664 +2002-03-13,1165.579956,1165.579956,1151.01001,1154.089966,1354000000,-0.9857745014276831,1118.6929932 +2002-03-14,1154.089966,1157.829956,1151.079956,1153.040039,1208800000,-0.09097445008026117,1120.0086629666666 +2002-03-15,1153.040039,1166.47998,1153.040039,1166.160034,1493900000,1.137861180551769,1121.2073324 +2002-03-18,1166.160034,1172.72998,1159.140015,1165.550049,1169500000,-0.0523071432921407,1122.6523356666667 +2002-03-19,1165.550049,1173.939941,1165.550049,1170.290039,1255000000,0.4066740852584294,1125.1806722666665 +2002-03-20,1170.290039,1170.290039,1151.609985,1151.849976,1304900000,-1.5756831542167782,1127.2416707999998 +2002-03-21,1151.849976,1155.099976,1139.47998,1153.589966,1339200000,0.15106047109036957,1129.5776693333332 +2002-03-22,1153.589966,1156.48999,1144.599976,1148.699951,1243300000,-0.4238954172734122,1131.8619995666668 +2002-03-25,1148.699951,1151.040039,1131.869995,1131.869995,1057900000,-1.4651307319503926,1133.0503337 +2002-03-26,1131.869995,1147.0,1131.609985,1138.48999,1223600000,0.5848723819205093,1133.9353353333331 +2002-03-27,1138.48999,1146.949951,1135.329956,1144.579956,1180100000,0.5349160777425865,1135.1713338666666 +2002-03-28,1144.579956,1154.449951,1144.579956,1147.390015,1147600000,0.24551006552835375,1136.1340007 +2002-04-01,1147.390015,1147.839966,1132.869995,1146.540039,1050900000,-0.07407908286529707,1137.1360026666666 +2002-04-02,1146.540039,1146.540039,1135.709961,1136.76001,1176700000,-0.8530037039552574,1138.2220012 +2002-04-03,1136.76001,1138.849976,1119.680054,1125.400024,1219700000,-0.9993301928346243,1139.6240031333332 +2002-04-04,1125.400024,1130.449951,1120.060059,1126.339966,1283800000,0.08352070196864236,1140.569336 +2002-04-05,1126.339966,1133.310059,1119.48999,1122.72998,1110200000,-0.32050589599693646,1141.9620036333333 +2002-04-08,1122.72998,1125.410034,1111.790039,1125.290039,1095300000,0.22802089955769045,1143.1436727333335 +2002-04-09,1125.290039,1128.290039,1116.72998,1117.800049,1235400000,-0.665605287562665,1143.4226725666665 +2002-04-10,1117.800049,1131.76001,1117.800049,1130.469971,1447900000,1.1334694439613546,1144.125671433333 +2002-04-11,1130.469971,1130.469971,1102.420044,1103.689941,1505600000,-2.368928913371371,1143.9190023 +2002-04-12,1103.689941,1112.77002,1102.73999,1111.01001,1282100000,0.6632359984514835,1144.0616699666666 +2002-04-15,1111.01001,1114.859985,1099.410034,1102.550049,1120400000,-0.7614657765324773,1143.0873373 +2002-04-16,1102.550049,1129.400024,1102.550049,1128.369995,1341300000,2.3418389054917332,1142.2383382666667 +2002-04-17,1128.369995,1133.0,1123.369995,1126.069946,1376900000,-0.20383819227662858,1141.5693359666666 +2002-04-18,1126.069946,1130.48999,1109.290039,1124.469971,1359300000,-0.1420848683231002,1140.2926676666668 +2002-04-19,1124.469971,1128.819946,1122.589966,1125.170044,1185000000,0.062258043171881106,1139.2136678333334 +2002-04-22,1125.170044,1125.170044,1105.619995,1107.829956,1181800000,-1.5411082167061219,1137.3309977333333 +2002-04-23,1107.829956,1111.170044,1098.939941,1100.959961,1388500000,-0.620130820871212,1135.0876627666667 +2002-04-24,1100.959961,1108.459961,1092.51001,1093.140015,1373200000,-0.7102843225013533,1132.6729980666667 +2002-04-25,1093.140015,1094.359985,1084.810059,1091.47998,1517400000,-0.1518593206012886,1130.5859985333334 +2002-04-26,1091.47998,1096.77002,1076.310059,1076.319946,1374200000,-1.388942928664616,1128.0286621 +2002-04-29,1076.319946,1078.949951,1063.619995,1065.449951,1314700000,-1.009922285691811,1124.6716593333333 +2002-04-30,1065.449951,1082.619995,1063.459961,1076.920044,1628600000,1.0765492071433735,1121.7173258333335 +2002-05-01,1076.920044,1088.319946,1065.290039,1086.459961,1451400000,0.8858519305264378,1118.9229899 +2002-05-02,1086.459961,1091.420044,1079.459961,1084.560059,1364000000,-0.17487087128837953,1116.6799926666667 +2002-05-03,1084.560059,1084.560059,1068.890015,1073.430054,1284500000,-1.0262230208128997,1114.0079956 +2002-05-06,1073.430054,1075.959961,1052.650024,1052.670044,1122600000,-1.9339881460035957,1110.8069987000001 +2002-05-07,1052.670044,1058.670044,1048.959961,1049.48999,1354700000,-0.3020940909381431,1108.0609985333333 +2002-05-08,1049.48999,1088.920044,1049.48999,1088.849976,1502000000,3.7503917498060035,1106.4063314 +2002-05-09,1088.849976,1088.849976,1072.22998,1073.01001,1153000000,-1.4547427422636927,1104.0206665333333 +2002-05-10,1073.01001,1075.430054,1053.930054,1054.98999,1171900000,-1.6793897384051348,1100.9406657 +2002-05-13,1054.98999,1074.839966,1053.900024,1074.560059,1088600000,1.8550004441274304,1098.5413330333333 +2002-05-14,1074.560059,1097.709961,1074.560059,1097.280029,1414500000,2.114350874081783,1097.2253336666665 +2002-05-15,1097.280029,1104.22998,1088.939941,1091.069946,1420200000,-0.5659524310908548,1096.0809977333333 +2002-05-16,1091.069946,1099.290039,1089.170044,1098.22998,1256600000,0.6562396871300225,1095.1439982 +2002-05-17,1098.22998,1106.589966,1096.77002,1106.589966,1274400000,0.7612236191184563,1094.6059977333332 +2002-05-20,1106.589966,1106.589966,1090.609985,1091.880005,989800000,-1.3293054746531086,1093.4923299333334 +2002-05-21,1091.880005,1099.550049,1079.079956,1079.880005,1200500000,-1.0990218655025141,1092.2283284666667 +2002-05-22,1079.880005,1086.02002,1075.640015,1086.02002,1136300000,0.5685830806729353,1090.7466634333332 +2002-05-23,1086.02002,1097.099976,1080.550049,1097.079956,1192900000,1.018391539411967,1090.5263306 +2002-05-24,1097.079956,1097.079956,1082.189941,1083.819946,885400000,-1.2086639563032908,1089.6199951333333 +2002-05-28,1083.819946,1085.97998,1070.310059,1074.550049,996500000,-0.8552986161780907,1088.6866618 +2002-05-29,1074.550049,1074.829956,1067.660034,1067.660034,1081800000,-0.6412000079858537,1086.6629964333333 +2002-05-30,1067.660034,1069.5,1054.26001,1064.660034,1286600000,-0.28098832066987267,1084.6159993666668 +2002-05-31,1064.660034,1079.930054,1064.660034,1067.140015,1277300000,0.23293642297086414,1082.7050008333333 +2002-06-03,1067.140015,1070.73999,1039.900024,1040.680054,1324300000,-2.479521021428477,1079.8886678333333 +2002-06-04,1040.680054,1046.060059,1030.52002,1040.689941,1466600000,0.0009500518398652957,1077.6506673333333 +2002-06-05,1040.689941,1050.109985,1038.839966,1049.900024,1300100000,0.8849977920561081,1075.9486694333332 +2002-06-06,1049.900024,1049.900024,1026.910034,1029.150024,1601500000,-1.9763786575549225,1073.8156697333334 +2002-06-07,1029.150024,1033.02002,1012.48999,1027.530029,1341300000,-0.15741096654728892,1071.6840047 +2002-06-10,1027.530029,1038.180054,1025.449951,1030.73999,1226200000,0.3123958336403998,1070.1646728333333 +2002-06-11,1030.73999,1039.040039,1012.940002,1013.599976,1212400000,-1.6628843516588554,1068.4363403333334 +2002-06-12,1013.26001,1021.849976,1002.580017,1020.26001,1795720000,0.6570673004830496,1066.5476725333333 +2002-06-13,1020.26001,1023.469971,1008.119995,1009.559998,1405500000,-1.0487534447223945,1063.9843404333335 +2002-06-14,1009.559998,1009.559998,981.630005,1007.27002,1549000000,-0.22682931222873792,1061.4080058 +2002-06-17,1007.27002,1036.170044,1007.27002,1036.170044,1236600000,2.8691436681496763,1060.1660054666668 +2002-06-18,1036.170044,1040.829956,1030.920044,1037.140015,1193100000,0.0936111795179384,1059.6483378333332 +2002-06-19,1037.140015,1037.609985,1017.880005,1019.98999,1336100000,-1.6535882091098242,1058.6650045000001 +2002-06-20,1019.98999,1023.330017,1004.590027,1006.289978,1389700000,-1.3431516126937715,1055.9130045666666 +2002-06-21,1006.289978,1006.289978,985.650024,989.140015,1497200000,-1.7042764386946962,1053.1173380666667 +2002-06-24,989.140015,1002.109985,970.849976,992.719971,1552600000,0.3619261121490469,1051.0416707666668 +2002-06-25,992.719971,1005.880005,974.210022,976.140015,1513700000,-1.670154372264565,1047.7610026333334 +2002-06-26,976.140015,977.429993,952.919983,973.530029,2014290000,-0.2673782408151748,1043.6360026333334 +2002-06-27,973.530029,990.669983,963.73999,990.640015,1908600000,1.7575201062441925,1040.2883382666666 +2002-06-28,990.640015,1001.789978,988.309998,989.820007,2117000000,-0.08277557817002457,1036.6746725 +2002-07-01,989.820007,994.460022,967.429993,968.650024,1425500000,-2.138770973539228,1032.0766744333334 +2002-07-02,968.650024,968.650024,945.539978,948.090027,1823000000,-2.1225413194229215,1027.2836751666666 +2002-07-03,948.090027,954.299988,934.869995,953.98999,1527800000,0.6222998694194848,1023.0873413333334 +2002-07-05,953.98999,989.070007,953.98999,989.030029,699400000,3.6729986024276906,1019.8543416333334 +2002-07-08,989.030029,993.559998,972.909973,976.97998,1184400000,-1.2183703878216656,1015.8510091 +2002-07-09,976.97998,979.630005,951.710022,952.830017,1348900000,-2.471899475360795,1011.4846781333333 +2002-07-10,952.830017,956.340027,920.289978,920.469971,1816900000,-3.396203459446645,1006.3486755333332 +2002-07-11,920.469971,929.159973,900.940002,927.369995,2080480000,0.749619674447799,1001.6723409 +2002-07-12,927.369995,934.309998,913.710022,921.390015,1607400000,-0.6448321632403164,996.8966736 +2002-07-15,921.390015,921.390015,876.460022,917.929993,2574800000,-0.37552197697735545,991.9230062 +2002-07-16,917.929993,918.650024,897.130005,900.940002,1843700000,-1.8509026973258402,987.2650044666667 +2002-07-17,901.049988,926.52002,895.030029,906.039978,2566500000,0.5660727671852106,982.7766723666666 +2002-07-18,905.450012,907.799988,880.599976,881.559998,1736300000,-2.701865325417252,977.1653381666667 +2002-07-19,881.559998,881.559998,842.070007,847.75,2654100000,-3.8352463901157985,971.1186706999999 +2002-07-22,847.76001,854.130005,813.26001,819.849976,2248060000,-3.2910674137422657,964.1960022666667 +2002-07-23,819.849976,827.690002,796.130005,797.700012,2441020000,-2.701709416162734,956.4280030000001 +2002-07-24,797.710022,844.320007,775.679993,843.429993,2775560000,5.732729135272963,950.7556702333333 +2002-07-25,843.419983,853.830017,816.109985,838.679993,2424700000,-0.5631765575592973,944.7030030000001 +2002-07-26,838.679993,852.849976,835.919983,852.840027,1796100000,1.6883715026215107,939.4790039666666 +2002-07-29,852.840027,898.960022,852.840027,898.960022,1778650000,5.407813134924533,935.8686706999999 +2002-07-30,898.960022,909.809998,884.700012,902.780029,1826090000,0.42493624927850693,931.4223368666667 +2002-07-31,902.780029,911.640015,889.880005,911.619995,2049360000,0.9791937920682559,927.2383362 +2002-08-01,911.619995,911.619995,882.47998,884.659973,1672200000,-2.9573750189628045,922.7273356333333 +2002-08-02,884.400024,884.719971,853.950012,864.23999,1538100000,-2.308229559742947,917.9923360333335 +2002-08-05,864.23999,864.23999,833.440002,834.599976,1425500000,-3.4296045476905124,912.8410014 +2002-08-06,834.599976,874.440002,834.599976,859.570007,1514100000,2.9918561847646297,908.4026692666666 +2002-08-07,859.570007,878.73999,854.150024,876.77002,1490400000,2.001001996338858,905.0903361000001 +2002-08-08,876.77002,905.840027,875.169983,905.460022,1646700000,3.272238026569374,902.8213358666667 +2002-08-09,898.72998,913.950012,890.77002,908.640015,1294900000,0.3512019219772844,900.0880025333333 +2002-08-12,908.640015,908.640015,892.380005,903.799988,1036500000,-0.5326671641243896,897.2206685666666 +2002-08-13,903.799988,911.710022,883.619995,884.210022,1297700000,-2.1675112038173627,894.4060018333332 +2002-08-14,884.210022,920.210022,876.200012,919.619995,1533800000,4.004701611491135,893.4570007666666 +2002-08-15,919.619995,933.289978,918.169983,930.25,1505100000,1.1559127746020748,892.6656677666667 +2002-08-16,930.25,935.380005,916.210022,928.77002,1265300000,-0.1590948669712433,890.6570008 +2002-08-19,928.77002,951.169983,927.210022,950.700012,1299800000,2.3611864646535308,889.7810018666667 +2002-08-20,950.700012,950.700012,931.859985,937.429993,1308500000,-1.3958155919324922,889.2676677333333 +2002-08-21,937.429993,951.590027,931.320007,949.359985,1353100000,1.27262751235655,890.2306682000001 +2002-08-22,949.359985,965.0,946.429993,962.700012,1373000000,1.4051600247297014,891.4083354333333 +2002-08-23,962.700012,962.700012,937.169983,940.859985,1071500000,-2.2686222839685577,892.0573344333333 +2002-08-26,940.859985,950.799988,930.419983,947.950012,1016900000,0.753568768258317,893.0580017333334 +2002-08-27,947.950012,955.820007,930.359985,934.820007,1307700000,-1.385094660455577,894.1873352333333 +2002-08-28,934.820007,934.820007,913.210022,917.869995,1146600000,-1.8131845567143534,894.5816691333333 +2002-08-29,917.869995,924.590027,903.330017,917.799988,1271100000,-0.007627114992470041,895.7896688000001 +2002-08-30,917.799988,928.150024,910.169983,916.070007,929900000,-0.18849215761811422,898.0670023666667 +2002-09-03,916.070007,916.070007,877.51001,878.02002,1289800000,-4.153611264340851,900.0060038333334 +2002-09-04,878.02002,896.099976,875.72998,893.400024,1372100000,1.7516689425828735,903.1960042333333 +2002-09-05,893.400024,893.400024,870.5,879.150024,1401300000,-1.5950301787768906,904.3866719333333 +2002-09-06,879.150024,899.070007,879.150024,893.919983,1184500000,1.680027139486251,906.2280049333333 +2002-09-09,893.919983,907.340027,882.919983,902.960022,1130600000,1.011280558877492,907.8986714333333 +2002-09-10,902.960022,909.890015,900.5,909.580017,1186400000,0.7331437537331009,908.2526712666667 +2002-09-11,910.630005,924.02002,908.469971,909.450012,846600000,-0.014292860173947819,908.4750040333333 +2002-09-12,909.450012,909.450012,884.840027,886.909973,1191600000,-2.4784252792994566,907.6513366333332 +2002-09-13,886.909973,892.75,877.049988,889.809998,1271000000,0.32698076335644366,907.8230041333334 +2002-09-16,889.809998,891.840027,878.909973,891.099976,1001400000,0.14497229778260845,908.718337 +2002-09-17,891.099976,902.679993,872.380005,873.52002,1448600000,-1.9728376695635652,910.0156718000001 +2002-09-18,873.52002,878.450012,857.390015,869.460022,1501000000,-0.46478591297770544,910.3453389666666 +2002-09-19,869.460022,869.460022,843.090027,843.320007,1524000000,-3.006465431253602,909.2303385333332 +2002-09-20,843.320007,849.320007,839.090027,845.390015,1792800000,0.24545937281432728,907.2280049666666 +2002-09-23,845.390015,845.390015,825.76001,833.700012,1381100000,-1.3827940704977393,904.7300048666667 +2002-09-24,833.700012,833.700012,817.380005,819.289978,1670240000,-1.7284435399528286,901.9130045333334 +2002-09-25,819.27002,844.219971,818.460022,839.659973,1651500000,2.4862985691251893,900.4280029 +2002-09-26,839.659973,856.599976,839.659973,854.950012,1650000000,1.8209798599033489,898.2723368000001 +2002-09-27,854.950012,854.950012,826.840027,827.369995,1507300000,-3.2259215875652836,894.8430033000001 +2002-09-30,827.369995,827.369995,800.200012,815.280029,1721870000,-1.4612526527505998,891.0600036 +2002-10-01,815.280029,847.929993,812.820007,847.909973,1780900000,4.002298945065896,887.6336689666666 +2002-10-02,843.77002,851.929993,826.5,827.909973,1668900000,-2.3587409792147795,883.9830016333333 +2002-10-03,827.909973,840.02002,817.25,818.950012,1674500000,-1.0822385636366838,879.6360025333332 +2002-10-04,818.950012,825.900024,794.099976,800.580017,1835930000,-2.2431155419532556,874.2320027000001 +2002-10-07,800.580017,808.210022,782.960022,785.280029,1576500000,-1.9111129025345064,869.0460041666668 +2002-10-08,785.280029,808.859985,779.5,798.549988,1938430000,1.6898378298119132,864.0660033666667 +2002-10-09,798.549988,798.549988,775.799988,776.76001,1885030000,-2.7286930470782234,858.7973367999999 +2002-10-10,776.76001,806.51001,768.630005,803.919983,2090230000,3.4965719978298004,854.9990030666668 +2002-10-11,803.919983,843.27002,803.919983,835.320007,1854130000,3.9058643476959087,852.2496703666667 +2002-10-14,835.320007,844.390015,828.369995,841.440002,1200300000,0.7326527496904545,849.7620035333333 +2002-10-15,841.440002,881.27002,841.440002,881.27002,1956000000,4.733554134023676,849.8703368666667 +2002-10-16,881.27002,881.27002,856.280029,860.02002,1585000000,-2.4112927386319094,848.7576700666666 +2002-10-17,860.02002,885.349976,860.02002,879.200012,1780390000,2.2301797113978727,848.7593363333333 +2002-10-18,879.200012,886.679993,866.580017,884.390015,1423100000,0.5903097053187922,848.4416707333334 +2002-10-21,884.390015,900.690002,873.059998,899.719971,1447000000,1.7333931568641825,848.3336690333333 +2002-10-22,899.719971,899.719971,882.400024,890.159973,1549200000,-1.0625526061597168,847.6863342333334 +2002-10-23,890.159973,896.140015,873.820007,896.140015,1593900000,0.6717940798715238,847.2426676666666 +2002-10-24,896.140015,902.940002,879.0,882.5,1700570000,-1.5220852513767036,847.0956685666666 +2002-10-25,882.5,897.710022,877.030029,897.650024,1340400000,1.7167166005665813,847.3570027666667 +2002-10-28,897.650024,907.440002,886.150024,890.22998,1382600000,-0.8266076757772245,847.3280029 +2002-10-29,890.22998,890.640015,867.909973,882.150024,1529700000,-0.9076256901615398,847.6156697 +2002-10-30,882.150024,895.280029,879.190002,890.710022,1422300000,0.97035626221329,848.3240030333333 +2002-10-31,890.710022,898.830017,879.75,885.76001,1641300000,-0.5557377684922926,849.7386698000001 +2002-11-01,885.76001,903.419983,877.710022,900.960022,1450400000,1.716041797822876,851.5910033666667 +2002-11-04,900.960022,924.580017,900.960022,908.349976,1645900000,0.8202310668119717,854.0793355000001 +2002-11-05,908.349976,915.830017,904.909973,915.390015,1354100000,0.7750359647722416,857.2826700666666 +2002-11-06,915.390015,925.659973,905.0,923.76001,1674000000,0.91436380808676,860.0860046333333 +2002-11-07,923.76001,923.76001,898.679993,902.650024,1466900000,-2.285224059439417,861.6760050333334 +2002-11-08,902.650024,910.109985,891.619995,894.73999,1446500000,-0.8763123901495584,863.9216715333333 +2002-11-11,894.73999,894.73999,874.630005,876.190002,1113000000,-2.0732266588419757,865.9520039666667 +2002-11-12,876.190002,894.299988,876.190002,882.950012,1377100000,0.7715232979798259,867.1200052666667 +2002-11-13,882.950012,892.51001,872.049988,882.530029,1463400000,-0.047565886436617966,868.9406738 +2002-11-14,882.530029,904.27002,882.530029,904.27002,1519000000,2.463371249206525,871.7846740666666 +2002-11-15,904.27002,910.210022,895.349976,909.830017,1400100000,0.614860260434158,875.4263407333333 +2002-11-18,909.830017,915.909973,899.47998,900.359985,1282600000,-1.0408572835644225,879.2623392666666 +2002-11-19,900.359985,905.450012,893.090027,896.73999,1337400000,-0.40206084902807415,882.5353393333334 +2002-11-20,896.73999,915.01001,894.929993,914.150024,1517300000,1.9414807183964156,887.1150064666667 +2002-11-21,914.150024,935.130005,914.150024,933.76001,2415100000,2.145160584713812,891.4430073666666 +2002-11-22,933.76001,937.280029,928.409973,930.549988,1626800000,-0.34377377116417973,894.6173400666667 +2002-11-25,930.549988,937.150024,923.309998,932.869995,1574000000,0.24931567674149058,897.6650065 +2002-11-26,932.869995,932.869995,912.099976,913.309998,1543600000,-2.0967548645403733,898.7330057666667 +2002-11-27,913.309998,940.409973,913.309998,938.869995,1350300000,2.798611321016109,901.3613382666666 +2002-11-29,938.869995,941.820007,935.580017,936.309998,643460000,-0.27266788944512177,903.2650044666666 +2002-12-02,936.309998,954.280029,927.719971,934.530029,1612000000,-0.1901046665956807,904.9363382666667 +2002-12-03,934.530029,934.530029,918.72998,920.75,1488400000,-1.4745410604670939,905.6373392333334 +2002-12-04,920.75,925.25,909.51001,917.580017,1588900000,-0.3442827043171337,906.5513407 +2002-12-05,917.580017,921.48999,905.900024,906.549988,1250200000,-1.2020781616476683,906.8983398 +2002-12-06,906.549988,915.47998,895.960022,912.22998,1241100000,0.6265503364608627,907.8893391333334 +2002-12-09,912.22998,912.22998,891.969971,892.0,1320800000,-2.21764033670544,907.701005 +2002-12-10,892.0,904.950012,892.0,904.450012,1286600000,1.395741255605376,908.1750060666667 +2002-12-11,904.450012,909.940002,896.47998,904.960022,1285100000,0.05638896492159429,908.9353393333333 +2002-12-12,904.960022,908.369995,897.0,901.580017,1255300000,-0.37349771457638736,909.2976725000001 +2002-12-13,901.580017,901.580017,888.47998,889.47998,1330800000,-1.342092412414242,909.4216715 +2002-12-16,889.47998,910.419983,889.47998,910.400024,1271600000,2.3519409621788334,909.7363382333333 +2002-12-17,910.400024,911.219971,901.73999,902.98999,1251800000,-0.8139316569262256,909.5576720333333 +2002-12-18,902.98999,902.98999,887.820007,891.119995,1446200000,-1.3145212163426123,908.7486713666666 +2002-12-19,890.02002,899.190002,880.320007,884.25,1385900000,-0.7709393839827383,907.4316710333333 +2002-12-20,884.25,897.789978,884.25,895.76001,1782730000,1.3016692111959216,907.2020039 +2002-12-23,895.73999,902.429993,892.26001,897.380005,1112100000,0.18085145372810363,907.2900043999999 +2002-12-24,897.380005,897.380005,892.289978,892.469971,458310000,-0.5471521509998412,907.8326700333333 +2002-12-26,892.469971,903.890015,887.47998,889.659973,721100000,-0.31485630792164043,908.0563354 +2002-12-27,889.659973,890.460022,873.619995,875.400024,758400000,-1.602853835484408,907.8186685666667 +2002-12-30,875.400024,882.099976,870.22998,879.390015,1057800000,0.45579059751086337,906.9893350666666 +2002-12-31,879.390015,881.929993,869.450012,879.820007,1088500000,0.04889662068769951,905.9890014 +2003-01-02,879.820007,909.030029,879.820007,909.030029,1229200000,3.319999746266289,906.2780028666667 +2003-01-03,909.030029,911.25,903.070007,908.590027,1130800000,-0.0484034614878559,906.6730041 +2003-01-06,908.590027,931.77002,908.590027,929.01001,1435900000,2.247436400707925,907.1683369666666 +2003-01-07,929.01001,930.809998,919.929993,922.929993,1545200000,-0.6544619470784774,906.8073363999999 +2003-01-08,922.929993,922.929993,908.320007,909.929993,1467600000,-1.4085575394232497,906.1200032333333 +2003-01-09,909.929993,928.309998,909.929993,927.570007,1560300000,1.938612215852098,905.9433369666666 +2003-01-10,927.580017,932.890015,917.659973,927.570007,1485400000,0.0,906.4186705999999 +2003-01-13,927.570007,935.049988,922.049988,926.26001,1396300000,-0.14122890888170758,905.9983377666667 +2003-01-14,926.26001,931.659973,921.719971,931.659973,1379400000,0.582985656478896,905.8433369333333 +2003-01-15,931.659973,932.590027,916.700012,918.219971,1432100000,-1.44258660772153,905.2996683333333 +2003-01-16,918.219971,926.030029,911.97998,914.599976,1534600000,-0.39424049948049156,905.0946675333332 +2003-01-17,914.599976,914.599976,899.02002,901.780029,1358200000,-1.4016999055770807,904.5680012666667 +2003-01-21,901.780029,906.0,887.619995,887.619995,1335200000,-1.5702314915647775,903.9370015000001 +2003-01-22,887.619995,889.73999,877.640015,878.359985,1560800000,-1.0432403564770931,902.8080016666667 +2003-01-23,878.359985,890.25,876.890015,887.340027,1744550000,1.0223646515500118,902.6526692333333 +2003-01-24,887.340027,887.340027,859.710022,861.400024,1574800000,-2.923344175929976,901.2176696333333 +2003-01-27,861.400024,863.950012,844.25,847.47998,1435900000,-1.6159790587607525,899.3016682333333 +2003-01-28,847.47998,860.76001,847.47998,858.539978,1459100000,1.3050453416020513,897.8670002666667 +2003-01-29,858.539978,868.719971,845.859985,864.359985,1595400000,0.6778958638079979,897.0296671 +2003-01-30,864.359985,865.47998,843.73999,844.609985,1510300000,-2.284927616125121,894.8366658 +2003-01-31,844.609985,858.330017,840.340027,855.700012,1578530000,1.3130352703561776,893.2603332 +2003-02-03,855.700012,864.640015,855.700012,860.320007,1258500000,0.5399082546699852,892.2336669333333 +2003-02-04,860.320007,860.320007,840.190002,848.200012,1451600000,-1.4087775364266308,891.0320006666667 +2003-02-05,848.200012,861.630005,842.109985,843.590027,1450800000,-0.5435021144517549,889.2930012333333 +2003-02-06,843.590027,844.22998,833.25,838.150024,1430900000,-0.6448633608609478,887.3186685333334 +2003-02-07,838.150024,845.72998,826.700012,829.690002,1276800000,-1.0093684612243137,885.2260029 +2003-02-10,829.690002,837.159973,823.530029,835.969971,1238200000,0.7569054688934207,883.4363361666667 +2003-02-11,835.969971,843.02002,825.090027,829.200012,1307000000,-0.8098327972117958,881.8963357666667 +2003-02-12,829.200012,832.119995,818.48999,818.679993,1260500000,-1.2686949888756183,879.8726683666667 +2003-02-13,818.679993,821.25,806.289978,817.369995,1489300000,-0.16001343763142328,877.7910013 +2003-02-14,817.369995,834.890015,815.030029,834.890015,1404600000,2.1434625820831554,875.3196675 +2003-02-18,834.890015,852.869995,834.890015,851.169983,1250800000,1.9499536115544558,873.4056660333333 +2003-02-19,851.169983,851.169983,838.789978,845.130005,1075600000,-0.709608905463488,870.6096658666667 +2003-02-20,845.130005,849.369995,836.559998,837.099976,1194100000,-0.9501531069175617,867.7486653 +2003-02-21,837.099976,852.280029,831.47998,848.169983,1398200000,1.3224235237584203,865.6899983000001 +2003-02-24,848.169983,848.169983,832.159973,832.580017,1229200000,-1.8380709424374864,862.5236653 +2003-02-25,832.580017,839.549988,818.539978,838.570007,1483700000,0.719449167370545,859.5569986333334 +2003-02-26,838.570007,840.099976,826.679993,827.549988,1374400000,-1.3141441868907755,856.2666645666667 +2003-02-27,827.549988,842.190002,827.549988,837.280029,1287800000,1.175764744256158,853.1206664333333 +2003-02-28,837.280029,847.0,837.280029,841.150024,1373300000,0.4622103556706225,850.5516682 +2003-03-03,841.150024,852.340027,832.73999,834.809998,1208900000,-0.7537330819834875,847.8920022666667 +2003-03-04,834.809998,835.429993,821.960022,821.98999,1256600000,-1.5356797391877786,845.2323343 +2003-03-05,821.98999,829.869995,819.0,829.849976,1332700000,0.956214320809412,843.3066670000001 +2003-03-06,829.849976,829.849976,819.849976,822.099976,1299200000,-0.9339037445486364,841.4313333666666 +2003-03-07,822.099976,829.549988,811.22998,828.890015,1368500000,0.8259383527825293,839.4829996333334 +2003-03-10,828.890015,828.890015,806.570007,807.47998,1255000000,-2.582976584655805,837.6856648333334 +2003-03-11,807.47998,814.25,800.299988,800.72998,1427700000,-0.8359340376463575,836.1273315 +2003-03-12,800.72998,804.190002,788.900024,804.190002,1620000000,0.43210846183130425,834.3156656333333 +2003-03-13,804.190002,832.02002,804.190002,831.900024,1816300000,3.445705856959913,833.2336669333332 +2003-03-14,831.890015,841.390015,828.26001,833.27002,1541900000,0.16468276962089412,832.8556681000001 +2003-03-17,833.27002,862.789978,827.169983,862.789978,1700420000,3.5426641174489903,833.0920002999999 +2003-03-18,862.789978,866.940002,857.359985,866.450012,1555100000,0.4242091462958619,833.2963338000001 +2003-03-19,866.450012,874.98999,861.210022,874.02002,1473400000,0.873680869658755,834.1570007333333 +2003-03-20,874.02002,879.599976,859.01001,875.669983,1439100000,0.1887786277481318,835.2263326 +2003-03-21,875.840027,895.900024,875.840027,895.789978,1883710000,2.2976686869030205,837.1476643999999 +2003-03-24,895.789978,895.789978,862.02002,864.22998,1293000000,-3.523147029448015,838.298997 +2003-03-25,864.22998,879.869995,862.590027,874.73999,1333400000,1.2161126370552555,839.5913309666666 +2003-03-26,874.73999,875.799988,866.469971,869.950012,1319700000,-0.547588775494301,840.9496643 +2003-03-27,869.950012,874.150024,858.090027,868.52002,1232900000,-0.16437634120062272,842.6109985333333 +2003-03-28,868.52002,869.880005,860.830017,863.5,1227000000,-0.5779970391471267,844.1486653666667 +2003-03-31,863.5,863.5,843.679993,848.179993,1495500000,-1.7741756803705933,844.5916646333334 +2003-04-01,848.179993,861.280029,847.849976,858.47998,1461600000,1.2143633527087916,844.8353312 +2003-04-02,858.47998,884.570007,858.47998,880.900024,1589800000,2.61159776841855,846.0276651666667 +2003-04-03,880.900024,885.890015,876.119995,876.450012,1339500000,-0.5051665204631739,847.3393330333333 +2003-04-04,876.450012,882.72998,874.22998,878.849976,1241200000,0.27382782442131326,848.3619994666666 +2003-04-07,878.849976,904.890015,878.849976,879.929993,1494000000,0.12288980252530557,849.940332 +2003-04-08,879.929993,883.109985,874.679993,878.289978,1235400000,-0.18638016808684155,851.2643310333334 +2003-04-09,878.289978,887.349976,865.719971,865.98999,1293700000,-1.400447267770144,852.5456644333333 +2003-04-10,865.98999,871.780029,862.76001,871.580017,1275300000,0.6455071149263469,853.6889973666667 +2003-04-11,871.580017,883.340027,865.919983,868.299988,1141600000,-0.3763313678633806,854.5939961666666 +2003-04-14,868.299988,885.26001,868.299988,885.22998,1131000000,1.9497860456034077,856.2746622333333 +2003-04-15,885.22998,891.27002,881.849976,890.809998,1460200000,0.6303467038023314,858.5686625 +2003-04-16,890.809998,896.77002,877.929993,879.909973,1587600000,-1.2236082918323898,860.2373290666667 +2003-04-17,879.909973,893.830017,879.200012,893.580017,1430600000,1.553573026725985,862.6199971000001 +2003-04-21,893.580017,898.01001,888.169983,892.01001,1118700000,-0.1756985351206719,864.7239969333333 +2003-04-22,892.01001,911.73999,886.700012,911.369995,1631200000,2.17037754991114,868.1869974333333 +2003-04-23,911.369995,919.73999,909.890015,919.02002,1667200000,0.8393983828708373,872.1299987666666 +2003-04-24,919.02002,919.02002,906.690002,911.429993,1648100000,-0.8258826614027437,875.7046651333334 +2003-04-25,911.429993,911.429993,897.52002,898.809998,1335800000,-1.3846367902005219,877.9349976 +2003-04-28,898.809998,918.150024,898.809998,914.840027,1273000000,1.7834724842479943,880.6539978333333 +2003-04-29,914.840027,924.23999,911.099976,917.840027,1525600000,0.3279261850662296,882.4889994666667 +2003-04-30,917.840027,922.01001,911.700012,916.919983,1788510000,-0.10024012604976651,884.1713318333333 +2003-05-01,916.919983,919.679993,902.830017,916.299988,1397500000,-0.06761713251918211,885.5806641 +2003-05-02,916.299988,930.559998,912.349976,930.080017,1554300000,1.5038774615808492,887.3943319000001 +2003-05-05,930.080017,933.880005,924.549988,926.549988,1446300000,-0.3795403551821508,888.4196655666667 +2003-05-06,926.549988,939.609985,926.380005,934.390015,1649600000,0.8461526201001934,890.7583334 +2003-05-07,934.390015,937.219971,926.409973,929.619995,1531900000,-0.5104956092665369,892.5876669 +2003-05-08,929.619995,929.619995,919.719971,920.27002,1379600000,-1.0057846270830284,894.2650004999999 +2003-05-09,920.27002,933.77002,920.27002,933.409973,1326100000,1.427836690800821,896.4279989333334 +2003-05-12,933.409973,946.840027,929.299988,945.109985,1378800000,1.2534697869571731,899.1483317666666 +2003-05-13,945.109985,947.51001,938.909973,942.299988,1418100000,-0.29731957598565506,902.2856649333334 +2003-05-14,942.299988,947.289978,935.23999,939.280029,1401800000,-0.3204880652083797,904.9789999 +2003-05-15,939.280029,948.22998,938.789978,946.669983,1508700000,0.7867679256278626,907.1713318666666 +2003-05-16,946.669983,948.650024,938.599976,944.299988,1505500000,-0.25035070748620214,909.4329977333333 +2003-05-19,944.299988,944.299988,920.22998,920.77002,1375700000,-2.491789505349429,910.8303325333334 +2003-05-20,920.77002,925.340027,912.049988,919.72998,1505300000,-0.11295328664154836,912.1569987666667 +2003-05-21,919.72998,923.849976,914.909973,923.419983,1457800000,0.4012050362868447,913.6613322666667 +2003-05-22,923.419983,935.299988,922.539978,931.869995,1448500000,0.9150778795740999,915.8573324333333 +2003-05-23,931.869995,935.200012,927.419983,933.219971,1201000000,0.14486741790629143,917.9119975666667 +2003-05-27,933.219971,952.76001,927.330017,951.47998,1532000000,1.9566671918126,920.6846639666668 +2003-05-28,951.47998,959.390015,950.119995,953.219971,1559000000,0.18287205580511667,922.950997 +2003-05-29,953.219971,962.080017,946.22998,949.640015,1685800000,-0.37556451909461774,924.9119975666667 +2003-05-30,949.640015,965.380005,949.640015,963.590027,1688800000,1.468978958305578,927.7013327 +2003-06-02,963.590027,979.109985,963.590027,967.0,1662500000,0.35388213913094546,930.1486654666666 +2003-06-03,967.0,973.02002,964.469971,971.559998,1450200000,0.47156132368149084,932.8003317333333 +2003-06-04,971.559998,987.849976,970.719971,986.23999,1618700000,1.5109712246510254,935.2959982333334 +2003-06-05,986.23999,990.140015,978.130005,990.140015,1693100000,0.3954438107909075,937.6666647333333 +2003-06-06,990.140015,1007.690002,986.01001,987.76001,1837200000,-0.2403705500176101,940.2109986333332 +2003-06-09,987.76001,987.76001,972.590027,975.929993,1307000000,-1.1976610593903314,942.7816651333334 +2003-06-10,975.929993,984.840027,975.929993,984.840027,1275400000,0.9129788062574695,945.1149984666666 +2003-06-11,984.840027,997.47998,981.609985,997.47998,1520000000,1.2834524037882211,947.7696635666667 +2003-06-12,997.47998,1002.73999,991.27002,998.51001,1553100000,0.1032632253932464,950.4893311333333 +2003-06-13,998.51001,1000.919983,984.27002,988.609985,1271600000,-0.9914797949797105,952.8996643666667 +2003-06-16,988.609985,1010.859985,988.609985,1010.73999,1345900000,2.2384970145734373,955.5883301333332 +2003-06-17,1010.73999,1015.330017,1007.039978,1011.659973,1479700000,0.09102073818212375,958.4253296333334 +2003-06-18,1011.659973,1015.119995,1004.609985,1010.090027,1488900000,-0.1551851453946984,960.9486633666667 +2003-06-19,1010.090027,1011.219971,993.080017,994.700012,1530100000,-1.5236280518191814,963.1179972666667 +2003-06-20,994.700012,1002.090027,993.359985,995.690002,1698000000,0.09952648919844265,965.6319966666667 +2003-06-23,995.690002,995.690002,977.400024,981.640015,1398100000,-1.4110804539343103,967.2396647333334 +2003-06-24,981.640015,987.840027,979.080017,983.450012,1388300000,0.18438500594335494,968.5176656333333 +2003-06-25,983.450012,991.640015,974.859985,975.320007,1459200000,-0.8266820784786355,969.6183329333332 +2003-06-26,975.320007,986.530029,973.799988,985.820007,1387400000,1.0765697334864655,971.1696655333333 +2003-06-27,985.820007,988.880005,974.289978,976.219971,1267800000,-0.973812250901096,972.1546651333334 +2003-06-30,976.219971,983.609985,973.599976,974.5,1587200000,-0.17618682787631235,973.1613322 +2003-07-01,974.5,983.26001,962.099976,982.320007,1460200000,0.8024635197537267,975.2129984333333 +2003-07-02,982.320007,993.780029,982.320007,993.75,1519300000,1.163571231223015,977.6803324333333 +2003-07-03,993.75,995.0,983.340027,985.700012,775900000,-0.810061685534591,979.7563334 +2003-07-07,985.700012,1005.559998,985.700012,1004.419983,1429100000,1.899154993618879,982.1746663333334 +2003-07-08,1004.419983,1008.919983,998.72998,1007.840027,1565700000,0.3404993984473581,984.6620015333333 +2003-07-09,1007.840027,1010.429993,998.169983,1002.210022,1618000000,-0.5586208970840945,986.3530029333332 +2003-07-10,1002.210022,1002.210022,983.630005,988.700012,1465700000,-1.3480218420725332,987.5356709666667 +2003-07-11,988.700012,1000.859985,988.700012,998.140015,1212700000,0.9547894088626663,989.1523376333333 +2003-07-14,998.140015,1015.409973,998.140015,1003.859985,1448900000,0.573062888376441,990.4946695666666 +2003-07-15,1003.859985,1009.609985,996.669983,1000.419983,1518600000,-0.3426774701055568,991.608669 +2003-07-16,1000.419983,1003.469971,989.299988,994.090027,1662000000,-0.6327298642134438,992.3596699666667 +2003-07-17,994.0,994.0,978.599976,981.72998,1661400000,-1.2433528819618678,992.2093363 +2003-07-18,981.72998,994.25,981.710022,993.320007,1365200000,1.180571769846539,992.3153360333333 +2003-07-21,993.320007,993.320007,975.630005,978.799988,1254200000,-1.461766489920302,992.0166686333333 +2003-07-22,978.799988,990.289978,976.080017,988.109985,1439700000,0.9511643966223726,992.4226683666668 +2003-07-23,988.109985,989.859985,979.789978,988.609985,1362700000,0.05060165443020459,992.5483336333333 +2003-07-24,988.609985,998.890015,981.070007,981.599976,1559000000,-0.7090773010956508,992.0190001666666 +2003-07-25,981.599976,998.710022,977.48999,998.679993,1397500000,1.7400180743280647,992.0246662666667 +2003-07-28,998.679993,1000.679993,993.590027,996.52002,1328600000,-0.2162827948031132,992.2883340999999 +2003-07-29,996.52002,998.640015,984.150024,989.280029,1508900000,-0.7265274008243283,991.5730020666667 +2003-07-30,989.280029,992.619995,985.960022,987.48999,1391900000,-0.18094361025455807,990.7673359666666 +2003-07-31,987.48999,1004.590027,987.48999,990.309998,1608000000,0.2855733251533987,990.1080016666667 +2003-08-01,990.309998,990.309998,978.859985,980.150024,1390600000,-1.0259387485250793,989.6230020666666 +2003-08-04,980.150024,985.75,966.789978,982.820007,1318700000,0.2724055435007644,989.1940022333333 +2003-08-05,982.820007,982.820007,964.969971,965.460022,1351700000,-1.7663442824073505,988.6546691333333 +2003-08-06,965.460022,975.73999,960.840027,967.080017,1491000000,0.167795140459992,988.1090026333334 +2003-08-07,967.080017,974.890015,963.820007,974.119995,1389300000,0.7279623067632857,988.0690022333333 +2003-08-08,974.119995,980.570007,973.830017,977.590027,1086600000,0.3562222331756848,987.7946695666667 +2003-08-11,977.590027,985.460022,974.210022,980.590027,1022200000,0.30687710769783383,987.9403381 +2003-08-12,980.590027,990.409973,979.900024,990.349976,1132300000,0.9953139162407476,988.4686706333333 +2003-08-13,990.349976,992.5,980.849976,984.030029,1208800000,-0.6381528907110301,988.5256713666666 +2003-08-14,984.030029,991.909973,980.359985,990.51001,1186800000,0.6585145584007357,988.4176716999999 +2003-08-15,990.51001,992.390015,987.099976,990.669983,636370000,0.01615056873580656,988.5833373999999 +2003-08-18,990.669983,1000.349976,990.669983,999.73999,1127600000,0.9155427292279361,988.4273376333333 +2003-08-19,999.73999,1003.299988,995.299988,1002.349976,1300600000,0.2610664798954332,988.2443359333333 +2003-08-20,1002.349976,1003.539978,996.619995,1000.299988,1210800000,-0.20451818716858972,988.1806681333334 +2003-08-21,1000.299988,1009.530029,999.330017,1003.27002,1407100000,0.29691412932417727,988.6663350666666 +2003-08-22,1003.27002,1011.01001,992.619995,993.059998,1308900000,-1.017674384409506,988.4970011666667 +2003-08-25,993.059998,993.710022,987.909973,993.710022,971700000,0.06545666941666362,988.1586690666667 +2003-08-26,993.710022,997.929993,983.570007,996.72998,1178700000,0.3039073706755824,988.0356689666667 +2003-08-27,996.72998,998.049988,993.330017,996.789978,1051400000,0.006019483832520045,988.1256673333334 +2003-08-28,996.789978,1004.119995,991.419983,1002.840027,1165200000,0.606953233231633,988.8293355666666 +2003-08-29,1002.840027,1008.849976,999.52002,1008.01001,945100000,0.5155341690405102,989.3190023333334 +2003-09-02,1008.01001,1022.590027,1005.72998,1021.98999,1470500000,1.3868890051994764,990.7586690666667 +2003-09-03,1021.98999,1029.339966,1021.98999,1026.27002,1675600000,0.4187937300638156,992.0306702333332 +2003-09-04,1026.27002,1029.170044,1022.190002,1027.969971,1453900000,0.1656436383087545,993.3426697666666 +2003-09-05,1027.969971,1029.209961,1018.190002,1021.390015,1465200000,-0.6400922386477048,994.6690044000001 +2003-09-08,1021.390015,1032.410034,1021.390015,1031.640015,1299300000,1.0035343844633227,995.7676718 +2003-09-09,1031.640015,1031.640015,1021.140015,1023.169983,1414800000,-0.821025927343455,996.6560039 +2003-09-10,1023.169983,1023.169983,1009.73999,1010.919983,1582100000,-1.197259517336724,997.3773356999999 +2003-09-11,1010.919983,1020.880005,1010.919983,1016.419983,1335900000,0.5440588862115625,998.3416688 +2003-09-12,1016.419983,1019.650024,1007.710022,1018.630005,1236700000,0.21743197073684772,999.2856690333333 +2003-09-15,1018.630005,1019.789978,1013.590027,1014.809998,1151300000,-0.3750141838792631,1000.4410015 +2003-09-16,1014.809998,1029.660034,1014.809998,1029.319946,1403200000,1.4298191807921246,1001.9909994666666 +2003-09-17,1029.319946,1031.339966,1024.530029,1025.969971,1338210000,-0.3254551719334975,1004.0079977666667 +2003-09-18,1025.969971,1040.160034,1025.75,1039.579956,1498800000,1.3265480847099775,1006.4246624 +2003-09-19,1039.579956,1040.290039,1031.890015,1036.300049,1518600000,-0.31550310113905855,1008.4973308666666 +2003-09-22,1036.300049,1036.300049,1018.299988,1022.820007,1278800000,-1.3007856183166022,1010.0049968666666 +2003-09-23,1022.820007,1030.119995,1021.539978,1029.030029,1301700000,0.6071470989518879,1011.6196636 +2003-09-24,1029.030029,1029.829956,1008.929993,1009.380005,1556000000,-1.909567597273687,1012.2539979 +2003-09-25,1009.380005,1015.969971,1003.26001,1003.27002,1530000000,-0.6053205898406855,1012.8953309333333 +2003-09-26,1003.27002,1003.450012,996.080017,996.849976,1472500000,-0.6399118753693145,1013.1066631333334 +2003-09-29,996.849976,1006.890015,995.309998,1006.580017,1366500000,0.9760787715562991,1013.6369976000001 +2003-09-30,1006.580017,1006.580017,990.359985,995.969971,1590500000,-1.0540688093155337,1013.5113302999999 +2003-10-01,995.969971,1018.219971,995.969971,1018.219971,1566300000,2.234003097268089,1014.0403301333333 +2003-10-02,1018.219971,1021.869995,1013.380005,1020.23999,1269300000,0.19838728934142846,1014.7049968666666 +2003-10-03,1020.23999,1039.310059,1020.23999,1029.849976,1570500000,0.9419338679323763,1015.5909954 +2003-10-06,1029.849976,1036.47998,1029.150024,1034.349976,1025800000,0.4369568485575126,1016.967328 +2003-10-07,1034.349976,1039.25,1026.27002,1039.25,1279500000,0.4737297929806372,1018.4853272666666 +2003-10-08,1039.25,1040.060059,1030.959961,1033.780029,1262500000,-0.5263383209044958,1019.7203289 +2003-10-09,1033.780029,1048.280029,1033.780029,1038.72998,1578700000,0.4788205286561986,1021.1183289666666 +2003-10-10,1038.72998,1040.839966,1035.73999,1038.060059,1108100000,-0.06449423939801635,1022.2923300333333 +2003-10-13,1038.060059,1048.900024,1038.060059,1045.349976,1040500000,0.7022635093987484,1023.5369955666666 +2003-10-14,1045.349976,1049.48999,1040.839966,1049.47998,1271900000,0.395083378277139,1024.4533285666666 +2003-10-15,1049.47998,1053.790039,1043.150024,1046.76001,1521100000,-0.25917311924331665,1025.1363282333334 +2003-10-16,1046.76001,1052.939941,1044.040039,1050.069946,1417700000,0.31620772367870753,1025.8729940666667 +2003-10-17,1050.069946,1051.890015,1036.569946,1039.319946,1352000000,-1.0237413270372753,1026.4706584333333 +2003-10-20,1039.319946,1044.689941,1036.130005,1044.680054,1172600000,0.5157322363175121,1026.9053264 +2003-10-21,1044.680054,1048.569946,1042.589966,1046.030029,1498000000,0.12922377476540792,1027.6673279333334 +2003-10-22,1046.030029,1046.030029,1028.390015,1030.359985,1647200000,-1.4980491539980378,1028.315328 +2003-10-23,1030.359985,1035.439941,1025.890015,1033.77002,1604300000,0.3309556902095556,1028.8936625666668 +2003-10-24,1033.77002,1033.77002,1018.320007,1028.910034,1420300000,-0.4701225520159613,1029.2363302 +2003-10-27,1028.910034,1037.75,1028.910034,1031.130005,1371800000,0.2157594859260481,1029.7803304333333 +2003-10-28,1031.130005,1046.790039,1031.130005,1046.790039,1629200000,1.5187254685697926,1030.3626668666666 +2003-10-29,1046.790039,1049.829956,1043.349976,1048.109985,1562600000,0.12609462746331346,1031.1006673333334 +2003-10-30,1048.109985,1052.810059,1043.819946,1046.939941,1629700000,-0.11163370416702456,1031.3460001666667 +2003-10-31,1046.939941,1053.089966,1046.939941,1050.709961,1498900000,0.3600989753432149,1031.8263305666667 +2003-11-03,1050.709961,1061.439941,1050.709961,1059.02002,1378200000,0.7908994211962117,1033.0329976666667 +2003-11-04,1059.02002,1059.02002,1051.699951,1053.25,1417600000,-0.544845223983581,1033.8403300333334 +2003-11-05,1053.25,1054.540039,1044.880005,1051.810059,1401800000,-0.1367140754806595,1035.2546651666667 +2003-11-06,1051.810059,1058.939941,1046.930054,1058.050049,1453900000,0.5932620577837611,1037.0806661333334 +2003-11-07,1058.050049,1062.390015,1052.170044,1053.209961,1440500000,-0.45745359631848004,1038.9593323 +2003-11-10,1053.209961,1053.650024,1045.579956,1047.109985,1243600000,-0.5791794823330587,1040.3103312333333 +2003-11-11,1047.109985,1048.22998,1043.459961,1046.569946,1162500000,-0.051574238402474215,1041.9969970666668 +2003-11-12,1046.569946,1059.099976,1046.569946,1058.530029,1349300000,1.1427886923097264,1043.3406656666666 +2003-11-13,1058.560059,1059.619995,1052.959961,1058.410034,1383000000,-0.01133600339268126,1044.6130004666668 +2003-11-14,1058.410034,1063.650024,1048.109985,1050.349976,1356100000,-0.7615250934025042,1045.2963338 +2003-11-17,1050.349976,1050.349976,1035.280029,1043.630005,1374300000,-0.6397839913884096,1045.6056681 +2003-11-18,1043.630005,1048.77002,1034.0,1034.150024,1354300000,-0.9083660832461371,1045.4356689 +2003-11-19,1034.150024,1043.949951,1034.150024,1042.439941,1326200000,0.8016164780362711,1045.7243326333332 +2003-11-20,1042.439941,1046.47998,1033.420044,1033.650024,1326700000,-0.8432060835627642,1045.5550007666668 +2003-11-21,1033.650024,1037.569946,1031.199951,1035.280029,1273800000,0.15769409008401514,1045.4623331 +2003-11-24,1035.280029,1052.079956,1035.280029,1052.079956,1302800000,1.6227423044398392,1045.6866657666667 +2003-11-25,1052.079956,1058.050049,1049.310059,1053.890015,1333700000,0.1720457641719353,1045.8336669333332 +2003-11-26,1053.890015,1058.449951,1048.280029,1058.449951,1097700000,0.43267664890060953,1046.2233316333334 +2003-11-28,1058.449951,1060.630005,1056.77002,1058.199951,487220000,-0.023619444619349395,1046.4943318 +2003-12-01,1058.199951,1070.469971,1058.199951,1070.119995,1375000000,1.126445336605375,1047.5210001 +2003-12-02,1070.119995,1071.219971,1065.219971,1066.619995,1383200000,-0.32706612495359,1048.2523314666666 +2003-12-03,1066.619995,1074.300049,1064.630005,1064.72998,1441700000,-0.17719665943445317,1048.8756631666668 +2003-12-04,1064.72998,1070.369995,1063.150024,1069.719971,1463100000,0.46866258053519516,1050.1876627 +2003-12-05,1069.719971,1069.719971,1060.089966,1061.5,1265900000,-0.7684226921851112,1051.1119953666666 +2003-12-08,1061.5,1069.589966,1060.930054,1069.300049,1218900000,0.734813848327831,1052.4583292 +2003-12-09,1069.300049,1071.939941,1059.160034,1060.180054,1465500000,-0.8528939102293132,1053.4266641666668 +2003-12-10,1060.180054,1063.02002,1053.410034,1059.050049,1444000000,-0.10658614031989755,1053.8353311666665 +2003-12-11,1059.050049,1073.630005,1059.050049,1071.209961,1441100000,1.1481904950084276,1054.6053303666665 +2003-12-12,1071.209961,1074.76001,1067.640015,1074.140015,1223100000,0.2735275162363715,1055.5119995 +2003-12-15,1074.140015,1082.790039,1068.0,1068.040039,1520800000,-0.5678939351309809,1056.0896687666668 +2003-12-16,1068.040039,1075.939941,1068.040039,1075.130005,1547900000,0.6638296076089345,1056.6266682666667 +2003-12-17,1075.130005,1076.540039,1071.140015,1076.47998,1441700000,0.1255638847136531,1057.4010009333333 +2003-12-18,1076.47998,1089.5,1076.47998,1089.180054,1579900000,1.1797780020023962,1058.6466674333333 +2003-12-19,1089.180054,1091.060059,1084.189941,1088.660034,1657300000,-0.04774417214951088,1059.6670002666667 +2003-12-22,1088.660034,1092.939941,1086.140015,1092.939941,1251700000,0.39313531004483426,1060.9913329333333 +2003-12-23,1092.939941,1096.949951,1091.72998,1096.02002,1145300000,0.2818159428945144,1062.6216674333334 +2003-12-24,1096.02002,1096.400024,1092.72998,1094.040039,518060000,-0.18065190086582472,1064.2040038666667 +2003-12-26,1094.040039,1098.469971,1094.040039,1095.890015,356070000,0.16909582227822018,1065.4493367333334 +2003-12-29,1095.890015,1109.47998,1095.890015,1109.47998,1058800000,1.240084754308124,1067.1516682666668 +2003-12-30,1109.47998,1109.75,1106.410034,1109.640015,1012600000,0.0144243251689824,1069.1280029 +2003-12-31,1109.640015,1112.560059,1106.209961,1111.920044,1027500000,0.2054746556702014,1071.4043375333333 +2004-01-02,1111.920044,1118.849976,1105.079956,1108.47998,1153200000,-0.309380518730884,1073.8820027333334 +2004-01-05,1108.47998,1122.219971,1108.47998,1122.219971,1578200000,1.2395344298414823,1076.5413370666668 +2004-01-06,1122.219971,1124.459961,1118.439941,1123.670044,1494500000,0.1292146849523501,1079.5420044 +2004-01-07,1123.670044,1126.329956,1116.449951,1126.329956,1704900000,0.23671646442859906,1082.5770019666666 +2004-01-08,1126.329956,1131.920044,1124.910034,1131.920044,1868400000,0.4963099818326988,1085.2383382333333 +2004-01-09,1131.920044,1131.920044,1120.900024,1121.859985,1720700000,-0.8887605669080201,1087.5040039 +2004-01-12,1121.859985,1127.849976,1120.900024,1127.22998,1510200000,0.47866891339385376,1089.7966715333334 +2004-01-13,1127.22998,1129.069946,1115.189941,1121.219971,1595900000,-0.5331661778548602,1091.8973388666666 +2004-01-14,1121.219971,1130.75,1121.219971,1130.52002,1514600000,0.8294580225596038,1093.9106730333333 +2004-01-15,1130.52002,1137.109985,1124.540039,1132.050049,1695000000,0.13533851439446742,1096.0916748333332 +2004-01-16,1132.050049,1139.829956,1132.050049,1139.829956,1721100000,0.6872405514996904,1098.5950073666668 +2004-01-20,1139.829956,1142.930054,1135.400024,1138.77002,1698200000,-0.09299071273050075,1100.8966756666666 +2004-01-21,1138.77002,1149.209961,1134.619995,1147.619995,1757600000,0.7771520890583306,1103.7673421666666 +2004-01-22,1147.619995,1150.51001,1143.01001,1143.939941,1693700000,-0.3206683410914235,1106.2553385666665 +2004-01-23,1143.939941,1150.310059,1136.849976,1141.550049,1561200000,-0.20891761134863573,1108.9676717333334 +2004-01-26,1141.550049,1155.380005,1141.0,1155.369995,1480600000,1.210629881020675,1112.1783366000002 +2004-01-27,1155.369995,1155.369995,1144.050049,1144.050049,1673100000,-0.9797680439156742,1114.6063395333333 +2004-01-28,1144.050049,1149.140015,1126.5,1128.47998,1842000000,-1.3609604766513073,1116.4176717 +2004-01-29,1128.47998,1134.390015,1122.380005,1134.109985,1921900000,0.49890162872008315,1118.6200032333334 +2004-01-30,1134.109985,1134.170044,1127.72998,1131.130005,1635000000,-0.2627593478069956,1120.4866699000002 +2004-02-02,1131.130005,1142.449951,1127.869995,1135.26001,1599200000,0.3651220444815362,1122.4460042333335 +2004-02-03,1135.26001,1137.439941,1131.329956,1136.030029,1476900000,0.06782754551533099,1124.0076700666666 +2004-02-04,1136.030029,1136.030029,1124.73999,1126.52002,1634800000,-0.8371265509919068,1125.2696695999998 +2004-02-05,1126.52002,1131.170044,1124.439941,1128.589966,1566600000,0.18374693420895039,1126.4580037666667 +2004-02-06,1128.589966,1142.790039,1128.390015,1142.76001,1477600000,1.2555528958158257,1128.0160034333335 +2004-02-09,1142.76001,1144.459961,1139.209961,1139.810059,1303500000,-0.25814265236671075,1129.5416707666666 +2004-02-10,1139.810059,1147.02002,1138.699951,1145.540039,1403900000,0.5027135841411345,1131.1966715666667 +2004-02-11,1145.540039,1158.890015,1142.329956,1157.76001,1699300000,1.066743246326629,1132.8060059000002 +2004-02-12,1157.76001,1157.76001,1151.439941,1152.109985,1464300000,-0.4880134873547659,1134.2216715666666 +2004-02-13,1152.109985,1156.880005,1143.23999,1145.810059,1329200000,-0.546816370140224,1135.3513387333335 +2004-02-17,1145.810059,1158.97998,1145.810059,1156.98999,1396500000,0.9757228881161373,1136.9683390666667 +2004-02-18,1156.98999,1157.400024,1149.540039,1151.819946,1382400000,-0.44685295851176754,1137.9550049 +2004-02-19,1151.819946,1158.569946,1146.849976,1147.060059,1562800000,-0.41324922497913974,1138.734672066667 +2004-02-20,1147.060059,1149.810059,1139.0,1144.109985,1479600000,-0.25718566145278565,1139.3273397 +2004-02-23,1144.109985,1146.689941,1136.97998,1140.98999,1380400000,-0.2727006180266889,1139.6296712333335 +2004-02-24,1140.98999,1144.540039,1134.430054,1139.089966,1543600000,-0.16652416030398243,1140.2040039333333 +2004-02-25,1139.089966,1145.23999,1138.959961,1143.670044,1360700000,0.4020822004150659,1140.7520060666668 +2004-02-26,1143.670044,1147.22998,1138.619995,1144.910034,1383900000,0.10842200567422466,1141.5416748333332 +2004-02-27,1145.800049,1151.680054,1141.800049,1144.939941,1540400000,0.002612170311366846,1142.0223388666668 +2004-03-01,1144.939941,1157.449951,1144.939941,1155.969971,1497100000,0.9633719293927534,1142.8196696000002 +2004-03-02,1155.969971,1156.540039,1147.310059,1149.099976,1476000000,-0.5943056629798882,1143.1286702666666 +2004-03-03,1149.099976,1152.439941,1143.780029,1151.030029,1334500000,0.16796214779488672,1143.5373372333333 +2004-03-04,1151.030029,1154.969971,1149.810059,1154.869995,1265800000,0.3336112788765444,1143.7790039 +2004-03-05,1154.869995,1163.22998,1148.77002,1156.859985,1398200000,0.17231290176520364,1144.2096720333332 +2004-03-08,1156.859985,1159.939941,1146.969971,1147.199951,1254400000,-0.8350218803704235,1144.3980021 +2004-03-09,1147.199951,1147.319946,1136.839966,1140.579956,1499400000,-0.5770567715095765,1143.9050008000002 +2004-03-10,1140.579956,1141.449951,1122.530029,1123.890015,1648400000,-1.4632854901756698,1143.2329996666665 +2004-03-11,1123.890015,1125.959961,1105.869995,1106.780029,1889900000,-1.5223897153317067,1142.5096679666667 +2004-03-12,1106.780029,1120.630005,1106.780029,1120.569946,1388500000,1.2459492074915257,1142.0583333333334 +2004-03-15,1120.569946,1120.569946,1103.359985,1104.48999,1600600000,-1.4349801239448956,1141.170332833333 +2004-03-16,1104.48999,1113.76001,1102.609985,1110.699951,1500700000,0.5622469244832118,1140.3516642 +2004-03-17,1110.699951,1125.76001,1110.699951,1123.75,1490100000,1.1749391893148609,1139.9423299 +2004-03-18,1123.75,1125.5,1113.25,1122.319946,1369200000,-0.12725730812013225,1139.8023274333334 +2004-03-19,1122.319946,1122.719971,1109.689941,1109.780029,1457400000,-1.1173210495539099,1139.1753295333333 +2004-03-22,1109.780029,1109.780029,1089.540039,1095.400024,1452300000,-1.29575272794894,1137.5966633333333 +2004-03-23,1095.400024,1101.52002,1091.569946,1093.949951,1458200000,-0.13237839768387438,1136.0679930666668 +2004-03-24,1093.949951,1098.319946,1087.160034,1091.329956,1527800000,-0.23949861669677608,1134.2609903000002 +2004-03-25,1091.329956,1110.380005,1091.329956,1109.189941,1471700000,1.6365339283328506,1132.6419879999999 +2004-03-26,1109.189941,1115.27002,1106.130005,1108.060059,1319100000,-0.10186551087738582,1131.1736571333336 +2004-03-29,1108.060059,1124.369995,1108.060059,1122.469971,1405500000,1.3004630825701469,1130.3956542 +2004-03-30,1122.469971,1127.599976,1119.660034,1127.0,1332400000,0.4035768543513285,1129.3959878666667 +2004-03-31,1127.0,1130.829956,1121.459961,1126.209961,1560700000,-0.07010106477373101,1128.5423217 +2004-04-01,1126.209961,1135.670044,1126.199951,1132.170044,1560700000,0.5292159727221524,1128.0459878666666 +2004-04-02,1132.170044,1144.810059,1132.170044,1141.810059,1629200000,0.851463528035179,1127.9693236666667 +2004-04-05,1141.810059,1150.569946,1141.640015,1150.569946,1413700000,0.7671930134922844,1128.2886555333332 +2004-04-06,1150.569946,1150.569946,1143.300049,1148.160034,1397700000,-0.20945375884171558,1128.5909911333333 +2004-04-07,1148.160034,1148.160034,1138.410034,1140.530029,1458800000,-0.6645419431138277,1128.4863239666668 +2004-04-08,1140.530029,1148.969971,1134.52002,1139.319946,1199800000,-0.10609830247616525,1128.2999877 +2004-04-12,1139.319946,1147.290039,1139.319946,1145.199951,1102400000,0.5160977845287462,1128.3086547 +2004-04-13,1145.199951,1147.780029,1127.699951,1129.439941,1423200000,-1.3761797654844643,1127.4243203666667 +2004-04-14,1129.439941,1132.52002,1122.150024,1128.170044,1547700000,-0.11243599184882491,1126.7266559666668 +2004-04-15,1128.170044,1134.079956,1120.75,1128.839966,1568700000,0.05938129660176816,1125.9869872000002 +2004-04-16,1128.839966,1136.800049,1126.900024,1134.609985,1487800000,0.5111458819486936,1125.3116535333331 +2004-04-19,1134.560059,1136.180054,1129.839966,1135.819946,1194900000,0.1066411380118426,1124.6103189 +2004-04-20,1135.819946,1139.26001,1118.089966,1118.150024,1508500000,-1.5556974555894998,1123.641988 +2004-04-21,1118.150024,1125.719971,1116.030029,1124.089966,1738100000,0.5312294300858555,1123.0923216666667 +2004-04-22,1124.089966,1142.77002,1121.949951,1139.930054,1826700000,1.409147708734193,1123.6269896333333 +2004-04-23,1139.930054,1141.920044,1134.810059,1140.599976,1396100000,0.05876869353951264,1124.7543211999998 +2004-04-26,1140.599976,1145.079956,1132.910034,1135.530029,1290600000,-0.4444982558898469,1125.2529906333334 +2004-04-27,1135.530029,1146.560059,1135.530029,1138.109985,1518000000,0.2272027981745195,1126.3736571333332 +2004-04-28,1138.109985,1138.109985,1121.699951,1122.410034,1855600000,-1.3794757279104286,1126.7639932333334 +2004-04-29,1122.410034,1128.800049,1108.040039,1113.890015,1859000000,-0.7590825760561581,1126.4353270666666 +2004-04-30,1113.890015,1119.26001,1107.22998,1107.300049,1634700000,-0.5916172971529909,1125.9346638333334 +2004-05-03,1107.300049,1118.719971,1107.300049,1117.48999,1571600000,0.920251110726733,1126.1916625333333 +2004-05-04,1117.48999,1127.73999,1112.890015,1119.550049,1662100000,0.1843469756717786,1126.9966633666668 +2004-05-05,1119.550049,1125.069946,1117.900024,1121.530029,1469000000,0.17685497863795252,1127.9159992999998 +2004-05-06,1121.530029,1121.530029,1106.300049,1113.98999,1509300000,-0.6722993415274825,1128.6713337666667 +2004-05-07,1113.98999,1117.300049,1098.630005,1098.699951,1653600000,-1.3725472524218962,1128.3216674333335 +2004-05-10,1098.699951,1098.699951,1079.630005,1087.119995,1918400000,-1.053968919308712,1127.6236653 +2004-05-11,1087.119995,1095.689941,1087.119995,1095.449951,1533800000,0.7662407129214843,1126.7229979666665 +2004-05-12,1095.449951,1097.550049,1076.319946,1097.280029,1697600000,0.16706176291572117,1125.7323322666666 +2004-05-13,1097.280029,1102.77002,1091.76001,1096.439941,1411100000,-0.07656094869106234,1124.7399982666668 +2004-05-14,1096.439941,1102.099976,1088.23999,1095.699951,1335900000,-0.0674902447757586,1123.5243285 +2004-05-17,1095.699951,1095.699951,1079.359985,1084.099976,1430100000,-1.0586817120337821,1121.6006590666666 +2004-05-18,1084.099976,1094.099976,1084.099976,1091.48999,1353000000,0.6816727390094535,1119.6313272 +2004-05-19,1091.48999,1105.930054,1088.48999,1088.680054,1548600000,-0.2574403820231219,1117.6486612 +2004-05-20,1088.680054,1092.619995,1085.430054,1089.189941,1211000000,0.04683533955882613,1115.9373249333332 +2004-05-21,1089.189941,1099.640015,1089.189941,1093.560059,1258600000,0.4012264376943797,1114.4119953666666 +2004-05-24,1093.560059,1101.280029,1091.77002,1095.410034,1227500000,0.16916994954001563,1112.7523314666666 +2004-05-25,1095.410034,1113.800049,1090.73999,1113.050049,1545700000,1.6103572591521509,1112.2060017333336 +2004-05-26,1113.050049,1116.709961,1109.910034,1114.939941,1369400000,0.1697939820134886,1111.7649983000001 +2004-05-27,1114.939941,1123.949951,1114.859985,1121.280029,1447500000,0.5686483878506898,1111.5130003999998 +2004-05-28,1121.280029,1122.689941,1118.099976,1120.680054,1172600000,-0.053508042993966054,1111.0486693666667 +2004-06-01,1120.680054,1122.699951,1113.319946,1121.199951,1238000000,0.046391206673535024,1110.5613362 +2004-06-02,1121.199951,1128.099976,1118.640015,1124.98999,1251700000,0.33803417460192,1110.7893350666668 +2004-06-03,1124.98999,1125.310059,1116.569946,1116.640015,1232400000,-0.7422266041673953,1110.5410033666667 +2004-06-04,1116.640015,1129.170044,1116.640015,1122.5,1115300000,0.5247873013040971,1109.9600015666667 +2004-06-07,1122.5,1140.540039,1122.5,1140.420044,1211800000,1.5964404454342995,1109.9540038333332 +2004-06-08,1140.420044,1142.180054,1135.449951,1142.180054,1190300000,0.15432997773581203,1110.1756713333334 +2004-06-09,1142.180054,1142.180054,1131.170044,1131.329956,1276800000,-0.9499463733412261,1109.9496703666666 +2004-06-10,1131.329956,1136.469971,1131.329956,1136.469971,1160600000,0.4543338548351761,1110.4183349333332 +2004-06-14,1136.469971,1136.469971,1122.160034,1125.290039,1179400000,-0.9837419628573763,1110.7983357333333 +2004-06-15,1125.290039,1137.359985,1125.290039,1132.01001,1345900000,0.5971767959460195,1111.6220011 +2004-06-16,1132.01001,1135.280029,1130.550049,1133.560059,1168400000,0.1369289128459128,1112.1576700666667 +2004-06-17,1133.560059,1133.560059,1126.890015,1132.050049,1296700000,-0.13320952763032912,1112.5743367333334 +2004-06-18,1132.050049,1138.959961,1129.829956,1135.02002,1500600000,0.26235332992772253,1113.0240030999998 +2004-06-21,1135.02002,1138.050049,1129.640015,1130.300049,1123900000,-0.4158491407050269,1113.5676717333333 +2004-06-22,1130.300049,1135.050049,1124.369995,1134.410034,1382300000,0.36361893495768793,1114.7580078333333 +2004-06-23,1134.410034,1145.150024,1131.72998,1144.060059,1444200000,0.8506646371923665,1116.6560099666667 +2004-06-24,1144.060059,1146.339966,1139.939941,1140.650024,1394900000,-0.29806433440046076,1118.1626790666667 +2004-06-25,1140.650024,1145.969971,1134.23999,1134.430054,1812900000,-0.5453004750912149,1119.401013233333 +2004-06-28,1134.430054,1142.599976,1131.719971,1133.349976,1354600000,-0.09520886688355601,1120.6313477333335 +2004-06-29,1133.349976,1138.26001,1131.810059,1136.199951,1375000000,0.2514646896679462,1121.9813477333332 +2004-06-30,1136.199951,1144.199951,1133.619995,1140.839966,1473800000,0.40838014435014003,1123.8726807333333 +2004-07-01,1140.839966,1140.839966,1123.060059,1128.939941,1495700000,-1.0430932781679836,1125.1210124333334 +2004-07-02,1128.939941,1129.150024,1123.26001,1125.380005,1085000000,-0.3153344009466763,1126.3443441333332 +2004-07-06,1125.380005,1125.380005,1113.209961,1116.209961,1283300000,-0.8148397838292798,1127.2450114666667 +2004-07-07,1116.209961,1122.369995,1114.920044,1118.329956,1328600000,0.18992797717920507,1128.0706747 +2004-07-08,1118.329956,1119.119995,1108.719971,1109.109985,1401100000,-0.8244410292806315,1128.5273397333333 +2004-07-09,1109.109985,1115.569946,1109.109985,1112.810059,1186300000,0.3336074915960552,1128.5193400666665 +2004-07-12,1112.810059,1116.109985,1106.709961,1114.349976,1114600000,0.13838093819746877,1128.4996745666665 +2004-07-13,1114.349976,1116.300049,1112.98999,1115.140015,1199700000,0.07089684722172418,1128.2950074333335 +2004-07-14,1115.140015,1119.599976,1107.829956,1111.469971,1462000000,-0.3291106005195221,1127.9880046666665 +2004-07-15,1111.469971,1114.630005,1106.670044,1106.689941,1408700000,-0.4300638006170532,1127.5043376666665 +2004-07-16,1106.689941,1112.170044,1101.069946,1101.390015,1450300000,-0.47889890416923375,1126.7176718333333 +2004-07-19,1101.390015,1105.52002,1096.550049,1100.900024,1319900000,-0.04448841857349617,1126.1930054666666 +2004-07-20,1100.900024,1108.880005,1099.099976,1108.670044,1445800000,0.7057879762567776,1125.7320069333334 +2004-07-21,1108.670044,1116.27002,1093.880005,1093.880005,1679500000,-1.3340343305965563,1124.1806723 +2004-07-22,1093.880005,1099.660034,1084.160034,1096.839966,1680800000,0.27059284258514893,1122.6693360333334 +2004-07-23,1096.839966,1096.839966,1083.560059,1086.199951,1337500000,-0.970060841127296,1121.1650025333333 +2004-07-26,1086.199951,1089.819946,1078.780029,1084.069946,1413400000,-0.19609695231885826,1119.4183350333333 +2004-07-27,1084.069946,1096.650024,1084.069946,1094.829956,1610800000,0.9925568031566856,1118.4029989333333 +2004-07-28,1094.829956,1098.839966,1082.170044,1095.420044,1554300000,0.053897684911352606,1117.1833334 +2004-07-29,1095.420044,1103.51001,1095.420044,1100.430054,1530100000,0.4573597157950138,1116.0789999 +2004-07-30,1100.430054,1103.72998,1096.959961,1101.719971,1298200000,0.11721935395270222,1115.0679973000001 +2004-08-02,1101.719971,1108.599976,1097.339966,1106.619995,1276000000,0.44476129406572085,1114.1213298 +2004-08-03,1106.619995,1106.619995,1099.26001,1099.689941,1338300000,-0.6262361091713298,1113.1009928666667 +2004-08-04,1099.689941,1102.449951,1092.400024,1098.630005,1369200000,-0.09638498639318316,1111.9083252333332 +2004-08-05,1098.630005,1098.790039,1079.97998,1080.699951,1397400000,-1.6320375302329326,1109.7963216333333 +2004-08-06,1080.699951,1080.699951,1062.22998,1063.969971,1521000000,-1.548068914458578,1107.2403198666666 +2004-08-09,1063.969971,1069.459961,1063.969971,1065.219971,1086000000,0.11748451874304955,1104.9333171 +2004-08-10,1065.219971,1079.040039,1065.219971,1079.040039,1245600000,1.2973909968122532,1103.1229858666668 +2004-08-11,1079.040039,1079.040039,1065.920044,1075.790039,1410400000,-0.30119364273191174,1101.1093221333333 +2004-08-12,1075.790039,1075.790039,1062.819946,1063.22998,1405100000,-1.1675195479291745,1098.5223226 +2004-08-13,1063.22998,1067.579956,1060.719971,1064.800049,1175100000,0.1476697449783959,1096.3843262 +2004-08-16,1064.800049,1080.660034,1064.800049,1079.339966,1206200000,1.365506792909632,1094.8496582333332 +2004-08-17,1079.339966,1086.780029,1079.339966,1081.709961,1267800000,0.2195781750566672,1093.6996582333334 +2004-08-18,1081.709961,1095.170044,1078.930054,1095.170044,1282500000,1.2443338311830532,1092.9276611666667 +2004-08-19,1095.170044,1095.170044,1086.280029,1091.22998,1249400000,-0.35976732760231167,1092.331661 +2004-08-20,1091.22998,1100.26001,1089.569946,1098.349976,1199900000,0.652474375749823,1091.8496582333332 +2004-08-23,1098.349976,1101.400024,1094.72998,1095.680054,1021900000,-0.24308481434336393,1091.2273275 +2004-08-24,1095.680054,1100.939941,1092.819946,1096.189941,1092500000,0.04653612139224883,1090.5956583666668 +2004-08-25,1096.189941,1106.290039,1093.23999,1104.959961,1192200000,0.8000456555913527,1090.3786580333333 +2004-08-26,1104.959961,1106.780029,1102.459961,1105.089966,1023600000,0.011765584689804598,1090.3253255333334 +2004-08-27,1105.089966,1109.680054,1104.619995,1107.77002,845400000,0.2425190783064135,1090.5379923666667 +2004-08-30,1107.77002,1107.77002,1099.150024,1099.150024,843100000,-0.7781394914442519,1090.4796590333333 +2004-08-31,1099.150024,1104.23999,1094.719971,1104.23999,1138200000,0.46308200781151054,1090.3319905666667 +2004-09-01,1104.23999,1109.23999,1099.180054,1105.910034,1142100000,0.15123922472686235,1090.7329915333332 +2004-09-02,1105.910034,1119.109985,1105.599976,1118.310059,1118400000,1.1212507906407154,1091.4486613000001 +2004-09-03,1118.310059,1120.800049,1113.569946,1113.630005,924170000,-0.4184934189168321,1092.3629964333334 +2004-09-07,1113.630005,1124.079956,1113.630005,1121.300049,1214400000,0.688742577477508,1093.6039998666668 +2004-09-08,1121.300049,1123.050049,1116.27002,1116.27002,1246300000,-0.44858902882292107,1094.3186686666666 +2004-09-09,1116.27002,1121.300049,1113.619995,1118.380005,1371300000,0.18902102199251924,1095.0840007 +2004-09-10,1118.380005,1125.26001,1114.390015,1123.920044,1261200000,0.4953628440451219,1095.8670003666666 +2004-09-13,1123.920044,1129.780029,1123.349976,1125.819946,1299800000,0.1690424519201983,1096.6703328666667 +2004-09-14,1125.819946,1129.459961,1124.719971,1128.329956,1204500000,0.22294950528438662,1097.3939982333331 +2004-09-15,1128.329956,1128.329956,1119.819946,1120.369995,1256000000,-0.705463943208473,1098.0833333666667 +2004-09-16,1120.369995,1126.060059,1120.369995,1123.5,1113900000,0.2793724407087472,1098.9123332000001 +2004-09-17,1123.5,1130.140015,1123.5,1128.550049,1422600000,0.4494925678682593,1100.5073364666669 +2004-09-20,1128.550049,1128.550049,1120.339966,1122.199951,1197600000,-0.5626775707135545,1102.4483358 +2004-09-21,1122.199951,1131.540039,1122.199951,1129.300049,1325000000,0.6326945562306285,1104.5843384 +2004-09-22,1129.300049,1129.300049,1112.670044,1113.560059,1379900000,-1.393782813871114,1105.7350057333335 +2004-09-23,1113.560059,1113.609985,1108.050049,1108.359985,1286300000,-0.4669774169764662,1106.8206705999999 +2004-09-24,1108.359985,1113.810059,1108.359985,1110.109985,1255400000,0.15789094009921456,1108.3833374333333 +2004-09-27,1110.109985,1110.109985,1103.23999,1103.52002,1263500000,-0.5936317201939323,1109.6740031333331 +2004-09-28,1103.52002,1111.77002,1101.290039,1110.060059,1396600000,0.592652501220603,1110.6980062333334 +2004-09-29,1110.060059,1114.800049,1107.420044,1114.800049,1402900000,0.427003022185124,1111.8010091666665 +2004-09-30,1114.800049,1116.310059,1109.680054,1114.579956,1748000000,-0.019742822957113937,1112.4480062333334 +2004-10-01,1114.579956,1131.640015,1114.579956,1131.5,1582200000,1.5180646223643235,1113.7903402333334 +2004-10-04,1131.5,1140.130005,1131.5,1135.170044,1534000000,0.32435209898364903,1115.0176758333332 +2004-10-05,1135.170044,1137.869995,1132.030029,1134.47998,1418400000,-0.06078948291907693,1116.3110067 +2004-10-06,1134.47998,1142.050049,1132.939941,1142.050049,1416700000,0.6672721540665671,1117.8396769666665 +2004-10-07,1142.050049,1142.050049,1130.5,1130.650024,1447500000,-0.9982071284863503,1118.6960124 +2004-10-08,1130.650024,1132.920044,1120.189941,1122.140015,1291600000,-0.752665176611722,1119.2643473666665 +2004-10-11,1122.140015,1126.199951,1122.140015,1124.390015,943800000,0.20050973763732216,1119.8183471999998 +2004-10-12,1124.390015,1124.390015,1115.77002,1121.839966,1320100000,-0.22679399194059924,1120.5746786000002 +2004-10-13,1121.839966,1127.01001,1109.630005,1113.650024,1546200000,-0.7300454831540515,1120.8883463999998 +2004-10-14,1113.650024,1114.959961,1102.060059,1103.290039,1489500000,-0.9302729562011836,1120.8010132333332 +2004-10-15,1103.290039,1113.170044,1102.140015,1108.199951,1645100000,0.4450245924861429,1120.4640096333335 +2004-10-18,1108.199951,1114.459961,1103.329956,1114.02002,1373300000,0.5251822105521775,1120.4770101333334 +2004-10-19,1114.02002,1117.959961,1103.150024,1103.22998,1737500000,-0.9685678718771906,1119.8746745 +2004-10-20,1103.22998,1104.089966,1094.25,1103.660034,1685700000,0.038981355455902644,1119.4543416333331 +2004-10-21,1103.660034,1108.869995,1098.469971,1106.48999,1673000000,0.25641555486461964,1119.0580077999998 +2004-10-22,1106.48999,1108.140015,1095.469971,1095.73999,1469600000,-0.9715406462917908,1118.1186726666667 +2004-10-25,1095.73999,1096.810059,1090.290039,1094.800049,1380500000,-0.08578139052861644,1117.0846761 +2004-10-26,1094.810059,1111.099976,1094.810059,1111.089966,1685400000,1.487935355399328,1116.5100097666666 +2004-10-27,1111.089966,1126.290039,1107.430054,1125.400024,1741900000,1.287929730075521,1116.6776774 +2004-10-28,1125.339966,1130.670044,1120.599976,1127.439941,1628200000,0.1812615031541842,1116.8090087666667 +2004-10-29,1127.439941,1131.400024,1124.619995,1130.199951,1500800000,0.24480328393829964,1116.8640055 +2004-11-01,1130.199951,1133.410034,1127.599976,1130.51001,1395900000,0.027433995172754244,1117.1410074666667 +2004-11-02,1130.51001,1140.47998,1128.119995,1130.560059,1659000000,0.004427116925742602,1117.1830077999998 +2004-11-03,1130.540039,1147.569946,1130.540039,1143.199951,1767500000,1.1180203916968612,1118.1710042000002 +2004-11-04,1143.199951,1161.670044,1142.339966,1161.670044,1782700000,1.6156485122172493,1119.9480061666666 +2004-11-05,1161.670044,1170.869995,1160.660034,1166.170044,1724400000,0.3873733357627973,1121.8166748 +2004-11-08,1166.170044,1166.77002,1162.319946,1164.890015,1358700000,-0.10976349517686224,1123.8623412999998 +2004-11-09,1164.890015,1168.959961,1162.47998,1164.079956,1450800000,-0.06953952644189743,1125.6630045333334 +2004-11-10,1164.079956,1169.25,1162.51001,1162.910034,1504300000,-0.10050185934135092,1127.2666706999998 +2004-11-11,1162.910034,1174.800049,1162.910034,1173.47998,1393000000,0.9089220740183368,1129.2300048333334 +2004-11-12,1173.47998,1184.170044,1171.430054,1184.170044,1531600000,0.9109711441348978,1130.9856729666667 +2004-11-15,1184.170044,1184.47998,1179.849976,1183.810059,1453300000,-0.03039977255159254,1132.6070068000001 +2004-11-16,1183.810059,1183.810059,1175.319946,1175.430054,1364400000,-0.7078842535836238,1133.9720092666664 +2004-11-17,1175.430054,1188.459961,1175.430054,1181.939941,1684200000,0.5538302324197719,1135.3016723333335 +2004-11-18,1181.939941,1184.900024,1180.150024,1183.550049,1456700000,0.1362258727493071,1137.0650065 +2004-11-19,1183.550049,1184.0,1169.189941,1170.339966,1526600000,-1.1161406322581224,1138.6716715333334 +2004-11-22,1170.339966,1178.180054,1167.890015,1177.23999,1392700000,0.5895743288664157,1140.4333373666666 +2004-11-23,1177.23999,1179.52002,1171.410034,1176.939941,1428300000,-0.02548749639399439,1142.2700031999998 +2004-11-24,1176.939941,1182.459961,1176.939941,1181.76001,1149600000,0.40954247808979716,1144.540336066667 +2004-11-26,1181.76001,1186.619995,1181.079956,1182.650024,504580000,0.0753125839822566,1147.1856689 +2004-11-29,1182.650024,1186.939941,1172.369995,1178.569946,1378500000,-0.34499453914524914,1149.5313354 +2004-11-30,1178.569946,1178.660034,1173.810059,1173.819946,1553500000,-0.40303081001863417,1151.5246662666664 +2004-12-01,1173.780029,1191.369995,1173.780029,1191.369995,1772800000,1.495122745171007,1154.4626667666666 +2004-12-02,1191.369995,1194.800049,1186.719971,1190.329956,1774900000,-0.08729773322854184,1157.3516641666668 +2004-12-03,1190.329956,1197.459961,1187.709961,1191.170044,1566700000,0.07057606134881489,1160.1743326333333 +2004-12-06,1191.170044,1192.410034,1185.180054,1190.25,1354400000,-0.07723867844345866,1163.3246662999998 +2004-12-07,1190.25,1192.170044,1177.069946,1177.069946,1533900000,-1.1073349296366275,1166.0669962 +2004-12-08,1177.069946,1184.050049,1177.069946,1182.810059,1525200000,0.4876611640205697,1168.4576659666666 +2004-12-09,1182.810059,1190.51001,1173.790039,1189.23999,1624700000,0.5436148391768203,1170.585664833333 +2004-12-10,1189.23999,1191.449951,1185.23999,1188.0,1443700000,-0.1042674321774184,1172.6043334666667 +2004-12-13,1188.0,1198.73999,1188.0,1198.680054,1436100000,0.8989944444444342,1174.8870035666666 +2004-12-14,1198.680054,1205.290039,1197.839966,1203.380005,1544400000,0.3920938689449427,1177.3160034 +2004-12-15,1203.380005,1206.609985,1199.439941,1205.719971,1695800000,0.1944494665257368,1179.8213338 +2004-12-16,1205.719971,1207.969971,1198.410034,1203.209961,1793900000,-0.2081752032288442,1181.8216674666667 +2004-12-17,1203.209961,1203.209961,1193.48999,1194.199951,2335000000,-0.7488310678970489,1182.9059977000002 +2004-12-20,1194.199951,1203.430054,1193.359985,1194.650024,1422800000,0.03768824472176746,1183.8553303666665 +2004-12-21,1194.650024,1205.930054,1194.650024,1205.449951,1483700000,0.9040243404373038,1185.2073282333333 +2004-12-22,1205.449951,1211.420044,1203.849976,1209.569946,1390800000,0.3417806767159526,1186.7236612333334 +2004-12-23,1209.569946,1213.660034,1208.709961,1210.130005,956100000,0.04630232438000981,1188.2976602666668 +2004-12-27,1210.130005,1214.130005,1204.920044,1204.920044,922000000,-0.4305290322918709,1189.3456624 +2004-12-28,1204.920044,1213.540039,1204.920044,1213.540039,983000000,0.715399751454382,1190.3246622333334 +2004-12-29,1213.540039,1213.849976,1210.949951,1213.449951,925900000,-0.007423570471898344,1191.3126586333335 +2004-12-30,1213.449951,1216.469971,1213.410034,1213.550049,829800000,0.008249042320818134,1192.5833251333336 +2004-12-31,1213.550049,1217.329956,1211.650024,1211.920044,786900000,-0.1343170808112193,1193.5826619 +2005-01-03,1211.920044,1217.800049,1200.319946,1202.079956,1510800000,-0.811942012900635,1194.2003254666668 +2005-01-04,1202.079956,1205.839966,1185.390015,1188.050049,1721000000,-1.1671359238602963,1194.7906615666666 +2005-01-05,1188.050049,1192.72998,1183.719971,1183.73999,1738900000,-0.3627842954619376,1195.0073282333333 +2005-01-06,1183.73999,1191.630005,1183.27002,1187.890015,1569100000,0.3505858579636145,1195.3723307 +2005-01-07,1187.890015,1192.199951,1182.160034,1186.189941,1477900000,-0.1431171218321814,1195.5199950666668 +2005-01-10,1186.189941,1194.780029,1184.800049,1190.25,1490400000,0.3422773081836361,1195.7733276000001 +2005-01-11,1190.25,1190.25,1180.430054,1182.98999,1488800000,-0.6099567317790378,1195.9206623999999 +2005-01-12,1182.98999,1187.920044,1175.640015,1187.699951,1562100000,0.3981403933942085,1196.3833292333334 +2005-01-13,1187.699951,1187.699951,1175.810059,1177.449951,1510300000,-0.8630125808601674,1195.9193277666668 +2005-01-14,1177.449951,1185.209961,1177.449951,1184.52002,1335400000,0.6004560103803458,1195.7256632333333 +2005-01-18,1184.52002,1195.97998,1180.099976,1195.97998,1596800000,0.9674771051991327,1195.8859944333335 +2005-01-19,1195.97998,1195.97998,1184.410034,1184.630005,1498700000,-0.9490104508271147,1195.6986612666667 +2005-01-20,1184.630005,1184.630005,1173.420044,1175.410034,1692000000,-0.778299634576618,1195.6433308666667 +2005-01-21,1175.410034,1179.449951,1167.819946,1167.869995,1643500000,-0.6414815921164774,1195.1453287333336 +2005-01-24,1167.869995,1173.030029,1163.75,1163.75,1494600000,-0.35277856419284603,1194.2956624 +2005-01-25,1163.75,1174.300049,1163.75,1168.410034,1610400000,0.40043256713211406,1193.6426635333335 +2005-01-26,1168.410034,1175.959961,1168.410034,1174.069946,1635900000,0.48441145105744265,1192.8223265999998 +2005-01-27,1174.069946,1177.5,1170.150024,1174.550049,1600600000,0.040892197405750785,1191.8613280666666 +2005-01-28,1174.550049,1175.609985,1166.25,1171.359985,1641800000,-0.2715988137513503,1190.7159952 +2005-01-31,1171.359985,1182.069946,1171.359985,1181.27002,1679800000,0.8460281319922158,1189.9846638333333 +2005-02-01,1181.27002,1190.390015,1180.949951,1189.410034,1681980000,0.6890900354857177,1189.8249999333334 +2005-02-02,1189.410034,1195.25,1188.920044,1193.189941,1561740000,0.31779679773578096,1189.7763305 +2005-02-03,1193.189941,1193.189941,1185.640015,1189.890015,1554460000,-0.27656334390772086,1189.2576659666665 +2005-02-04,1189.890015,1203.469971,1189.670044,1203.030029,1648160000,1.1043049218292689,1189.0396687333332 +2005-02-07,1203.030029,1204.150024,1199.27002,1201.719971,1347270000,-0.1088965336209391,1188.7593342666664 +2005-02-08,1201.719971,1205.109985,1200.160034,1202.300049,1416170000,0.048270646573111975,1188.6720011 +2005-02-09,1202.300049,1203.829956,1191.540039,1191.98999,1511040000,-0.8575279530742108,1187.9536661333334 +2005-02-10,1191.98999,1198.75,1191.540039,1197.01001,1491670000,0.4211461540880812,1187.4056681 +2005-02-11,1197.01001,1208.380005,1193.280029,1205.300049,1562300000,0.6925622117395669,1187.1306680999999 +2005-02-14,1205.300049,1206.930054,1203.589966,1206.140015,1290180000,0.06968936910745072,1186.9380004666668 +2005-02-15,1206.140015,1212.439941,1205.52002,1210.119995,1527080000,0.329976615525851,1187.2060017666665 +2005-02-16,1210.119995,1212.439941,1205.060059,1210.339966,1490100000,0.018177618823655983,1187.948999 +2005-02-17,1210.339966,1211.329956,1200.73999,1200.75,1580120000,-0.7923365557937823,1188.5159993333332 +2005-02-18,1200.75,1202.920044,1197.349976,1201.589966,1551200000,0.06995344576306017,1188.9726643666668 +2005-02-22,1201.589966,1202.47998,1184.160034,1184.160034,1744940000,-1.4505723660478753,1188.9050008 +2005-02-23,1184.160034,1193.52002,1184.160034,1190.800049,1501090000,0.560736286426633,1188.9233357666667 +2005-02-24,1190.800049,1200.420044,1187.800049,1200.199951,1518750000,0.7893770249584708,1189.497001133333 +2005-02-25,1200.199951,1212.150024,1199.609985,1211.369995,1523680000,0.9306819243487752,1190.2860026 +2005-02-28,1211.369995,1211.369995,1198.130005,1203.599976,1795480000,-0.6414240927273496,1191.1576701000001 +2005-03-01,1203.599976,1212.25,1203.599976,1210.410034,1708060000,0.5658074223823473,1192.020670566667 +2005-03-02,1210.410034,1215.790039,1204.219971,1210.079956,1568540000,-0.027269932562368204,1192.4906697666665 +2005-03-03,1210.079956,1215.719971,1204.449951,1210.469971,1616240000,0.03223051485699013,1193.3520019666669 +2005-03-04,1210.469971,1224.76001,1210.469971,1222.119995,1636820000,0.9624380843066715,1194.9090006666665 +2005-03-07,1222.119995,1229.109985,1222.119995,1225.310059,1488830000,0.26102706878630144,1196.8236694666666 +2005-03-08,1225.310059,1225.689941,1218.569946,1219.430054,1523090000,-0.47987894629697436,1198.6796712666664 +2005-03-09,1219.430054,1219.430054,1206.660034,1207.01001,1704970000,-1.018512210623268,1199.9663371333334 +2005-03-10,1207.01001,1211.22998,1201.410034,1209.25,1604020000,0.18558172520872773,1201.1390056000002 +2005-03-11,1209.25,1213.040039,1198.150024,1200.079956,1449820000,-0.7583249121356217,1201.9900025 +2005-03-14,1200.079956,1206.829956,1199.51001,1206.829956,1437430000,0.562462523122087,1203.1723348666667 +2005-03-15,1206.829956,1210.540039,1197.75,1197.75,1513530000,-0.7523807272811878,1203.7216675333332 +2005-03-16,1197.75,1197.75,1185.609985,1188.069946,1653190000,-0.8081865163848789,1203.6769979333333 +2005-03-17,1188.069946,1193.280029,1186.339966,1190.209961,1581930000,0.1801253375026457,1203.5776652666668 +2005-03-18,1190.209961,1191.97998,1182.780029,1189.650024,2344370000,-0.0470452288543699,1203.5696655666668 +2005-03-21,1189.650024,1189.650024,1178.819946,1183.780029,1819440000,-0.49342200492402677,1202.9279989 +2005-03-22,1183.780029,1189.589966,1171.630005,1171.709961,2114470000,-1.0196208505220516,1201.927665233333 +2005-03-23,1171.709961,1176.26001,1168.699951,1172.530029,2246870000,0.06998899277941284,1200.9353312333333 +2005-03-24,1172.530029,1180.109985,1171.420044,1171.420044,1721720000,-0.09466580578296746,1200.2496663666666 +2005-03-28,1171.420044,1179.910034,1171.420044,1174.280029,1746220000,0.24414683824549588,1199.4920003333332 +2005-03-29,1174.280029,1179.390015,1163.689941,1165.359985,2223250000,-0.7596181302339078,1198.1606648666668 +2005-03-30,1165.359985,1181.540039,1165.359985,1181.410034,2097110000,1.3772610357819959,1197.3363321666668 +2005-03-31,1181.410034,1184.530029,1179.48999,1180.589966,2214230000,-0.06941434187954787,1196.3519978666668 +2005-04-01,1180.589966,1189.800049,1169.910034,1172.920044,2168690000,-0.6496685742626407,1195.1046671333336 +2005-04-04,1172.790039,1178.609985,1167.719971,1176.119995,2079770000,0.2728191931214097,1194.283666966667 +2005-04-05,1176.119995,1183.560059,1176.119995,1181.390015,1870800000,0.4480852313032857,1193.6103352666667 +2005-04-06,1181.390015,1189.339966,1181.390015,1184.069946,1797400000,0.2268455773261513,1193.6073323333335 +2005-04-07,1184.069946,1191.880005,1183.810059,1191.140015,1900620000,0.5970989318565101,1193.6186645333332 +2005-04-08,1191.140015,1191.75,1181.130005,1181.199951,1661330000,-0.8345000482583798,1192.9853312000002 +2005-04-11,1181.199951,1184.069946,1178.689941,1181.209961,1525310000,0.0008474433131677728,1191.9799967333336 +2005-04-12,1181.209961,1190.170044,1170.849976,1187.76001,1979830000,0.5545202983604058,1191.4519978666665 +2005-04-13,1187.76001,1187.76001,1171.400024,1173.790039,2049740000,-1.1761610832477842,1190.2313313666666 +2005-04-14,1173.790039,1174.670044,1161.699951,1162.050049,2355040000,-1.000178022468301,1188.6303344666667 +2005-04-15,1162.050049,1162.050049,1141.920044,1142.619995,2689960000,-1.6720496691790876,1186.3686685999999 +2005-04-18,1142.619995,1148.920044,1139.800049,1145.97998,2180670000,0.29405970617555344,1183.8306681000001 +2005-04-19,1145.97998,1154.670044,1145.97998,1152.780029,2142700000,0.5933828791668816,1181.4130004333333 +2005-04-20,1152.780029,1155.5,1136.150024,1137.5,2217050000,-1.3254939030523438,1178.6819986333333 +2005-04-21,1137.5,1159.949951,1137.5,1159.949951,2308560000,1.9736220659340775,1177.11333 +2005-04-22,1159.949951,1159.949951,1142.949951,1152.119995,2045880000,-0.6750253313300147,1175.2089965 +2005-04-25,1152.119995,1164.050049,1152.119995,1162.099976,1795030000,0.8662275668603447,1173.9429971666666 +2005-04-26,1162.099976,1164.800049,1151.829956,1151.829956,1959740000,-0.8837466837706809,1172.1096638333333 +2005-04-27,1151.73999,1159.869995,1144.420044,1156.380005,2151520000,0.39502784037681593,1170.730664 +2005-04-28,1156.380005,1156.380005,1143.219971,1143.219971,2182270000,-1.138037145496995,1169.2356648333332 +2005-04-29,1143.219971,1156.969971,1139.189941,1156.849976,2362360000,1.1922469293532023,1168.1236653333333 +2005-05-02,1156.849976,1162.869995,1154.709961,1162.160034,1980040000,0.45901007997255494,1167.2073323333336 +2005-05-03,1162.160034,1166.890015,1156.709961,1161.170044,2167020000,-0.0851853420387072,1166.4536661666668 +2005-05-04,1161.170044,1176.01001,1161.170044,1175.650024,2306480000,1.2470163241655285,1166.5850016000002 +2005-05-05,1175.650024,1178.619995,1166.77002,1172.630005,1997100000,-0.25688078410655013,1166.5883341333333 +2005-05-06,1172.630005,1177.75,1170.5,1171.349976,1707200000,-0.10915881348269041,1166.5859985333334 +2005-05-09,1171.349976,1178.869995,1169.380005,1178.839966,1857020000,0.6394322920957762,1166.7379964333334 +2005-05-10,1178.839966,1178.839966,1162.97998,1166.219971,1889660000,-1.0705435312667433,1166.7666626333332 +2005-05-11,1166.219971,1171.77002,1157.709961,1171.109985,1834970000,0.4193046013272195,1166.4233276666666 +2005-05-12,1171.109985,1173.369995,1157.76001,1159.359985,1995290000,-1.003321647880917,1165.7156616333334 +2005-05-13,1159.359985,1163.75,1146.180054,1154.050049,2188590000,-0.45800580222717935,1165.0866618 +2005-05-16,1154.050049,1165.75,1153.640015,1165.689941,1856860000,1.0086124089753623,1164.7389933333332 +2005-05-17,1165.689941,1174.349976,1159.859985,1173.800049,1887260000,0.6957345787030222,1164.4859944666669 +2005-05-18,1173.800049,1187.900024,1173.800049,1185.560059,2266320000,1.0018750646686891,1164.5356648999998 +2005-05-19,1185.560059,1191.089966,1184.48999,1191.079956,1775860000,0.465594042081352,1164.5336629333333 +2005-05-20,1191.079956,1191.219971,1185.189941,1189.280029,1631750000,-0.1511172269277994,1164.8029988666667 +2005-05-23,1189.280029,1197.439941,1188.76001,1193.859985,1681170000,0.3851032463608295,1165.224666333333 +2005-05-24,1193.859985,1195.290039,1189.869995,1194.069946,1681000000,0.017586735684083088,1165.4349975333332 +2005-05-25,1194.069946,1194.069946,1185.959961,1190.01001,1742180000,-0.3400082226003964,1165.9756632333333 +2005-05-26,1190.01001,1198.949951,1190.01001,1197.619995,1654110000,0.6394891585828066,1167.1613281 +2005-05-27,1197.619995,1199.560059,1195.280029,1198.780029,1381430000,0.09686160926196674,1169.0333292333335 +2005-05-31,1198.780029,1198.780029,1191.5,1191.5,1840680000,-0.6072864765750974,1170.5506632333334 +2005-06-01,1191.5,1205.640015,1191.030029,1202.219971,1810100000,0.8997038187159134,1172.1986613000001 +2005-06-02,1202.27002,1204.670044,1198.420044,1204.290039,1813790000,0.1721871246472606,1174.4249959333333 +2005-06-03,1204.290039,1205.089966,1194.550049,1196.02002,1627520000,-0.6867132278921106,1175.6273315666667 +2005-06-06,1196.02002,1198.780029,1192.75,1197.51001,1547120000,0.12457901833449192,1177.1403320666666 +2005-06-07,1197.51001,1208.849976,1197.26001,1197.26001,1851370000,-0.020876652212697966,1178.3123332 +2005-06-08,1197.26001,1201.969971,1193.329956,1194.670044,1715490000,-0.21632443899968212,1179.7403361333334 +2005-06-09,1194.670044,1201.859985,1191.089966,1200.930054,1824120000,0.5239948914296244,1181.2253377666668 +2005-06-10,1200.930054,1202.790039,1192.640015,1198.109985,1664180000,-0.23482375102588104,1183.0550049 +2005-06-13,1198.109985,1206.030029,1194.51001,1200.819946,1661350000,0.22618632962982943,1184.5206705666667 +2005-06-14,1200.819946,1207.530029,1200.180054,1203.910034,1698150000,0.25733150172040364,1185.9123372333333 +2005-06-15,1203.910034,1208.079956,1198.660034,1206.579956,1840440000,0.22177089023249774,1187.4260009666666 +2005-06-16,1206.550049,1212.099976,1205.469971,1210.959961,1776040000,0.3630099255519159,1188.6029988666667 +2005-06-17,1210.930054,1219.550049,1210.930054,1216.959961,2407370000,0.4954746806860033,1190.0806640666667 +2005-06-20,1216.959961,1219.099976,1210.650024,1216.099976,1714530000,-0.0706666634532005,1191.5723307333333 +2005-06-21,1216.099976,1217.130005,1211.859985,1213.609985,1720700000,-0.20475216258041273,1192.7313313666668 +2005-06-22,1213.609985,1219.589966,1211.689941,1213.880005,1823250000,0.02224932254490941,1194.3199991666668 +2005-06-23,1213.880005,1216.449951,1200.719971,1200.72998,2029920000,-1.0833051822119688,1195.3073323333333 +2005-06-24,1200.72998,1200.900024,1191.449951,1191.569946,2418800000,-0.7628720988543947,1196.3809976999999 +2005-06-27,1191.569946,1194.329956,1188.300049,1190.689941,1738620000,-0.07385256761083259,1197.6023274333334 +2005-06-28,1190.689941,1202.540039,1190.689941,1201.569946,1772410000,0.9137563546444794,1198.7983276000002 +2005-06-29,1201.569946,1204.069946,1198.699951,1199.849976,1769280000,-0.1431435602834319,1199.6666584999998 +2005-06-30,1199.849976,1203.27002,1190.51001,1191.329956,2109490000,-0.7100904421737386,1199.8589884 +2005-07-01,1191.329956,1197.890015,1191.329956,1194.439941,1593820000,0.2610515234958255,1199.9709879 +2005-07-05,1194.439941,1206.339966,1192.48999,1204.98999,1805820000,0.8832632464690793,1200.4946532666665 +2005-07-06,1204.98999,1206.109985,1194.780029,1194.939941,1883470000,-0.8340358910367329,1200.5306518000002 +2005-07-07,1194.939941,1198.459961,1183.550049,1197.869995,1952440000,0.24520512700814123,1200.6573200999999 +2005-07-08,1197.869995,1212.72998,1197.199951,1211.859985,1900810000,1.167905537194791,1201.3856526000002 +2005-07-11,1211.859985,1220.030029,1211.859985,1219.439941,1846300000,0.6254811689322404,1202.1129841333334 +2005-07-12,1219.439941,1225.540039,1216.599976,1222.209961,1932010000,0.22715509857158533,1202.8939818666665 +2005-07-13,1222.209961,1224.459961,1219.640015,1223.290039,1812500000,0.08837090471069953,1203.9536498333332 +2005-07-14,1223.290039,1233.160034,1223.290039,1226.5,2048710000,0.2624039187488325,1204.7629841333332 +2005-07-15,1226.5,1229.530029,1223.5,1227.920044,1716400000,0.11578018752547159,1205.5506509666668 +2005-07-18,1227.920044,1227.920044,1221.130005,1221.130005,1582100000,-0.5529707763284986,1206.3876504666666 +2005-07-19,1221.130005,1230.339966,1221.130005,1229.349976,2041280000,0.6731446255798135,1207.4489826666666 +2005-07-20,1229.349976,1236.560059,1222.910034,1235.199951,2063340000,0.47585920317292363,1208.7136473666667 +2005-07-21,1235.199951,1235.829956,1224.699951,1227.040039,2129840000,-0.6606146635120824,1209.7926472000001 +2005-07-22,1227.040039,1234.189941,1226.150024,1233.680054,1766990000,0.5411408584035549,1210.8843138666666 +2005-07-25,1233.680054,1238.359985,1228.150024,1229.030029,1717580000,-0.3769230916008559,1211.914982 +2005-07-26,1229.030029,1234.420044,1229.030029,1231.160034,1934180000,0.1733078077622796,1212.9263182666666 +2005-07-27,1231.160034,1237.640015,1230.150024,1236.790039,1945800000,0.45729270318402016,1214.0223184333333 +2005-07-28,1236.790039,1245.150024,1235.810059,1243.719971,2001680000,0.5603159616003328,1215.2603189333333 +2005-07-29,1243.719971,1245.040039,1234.180054,1234.180054,1789600000,-0.7670470220341952,1216.0343220333334 +2005-08-01,1234.180054,1239.099976,1233.800049,1235.349976,1716870000,0.0947934619594859,1216.6473225333332 +2005-08-02,1235.349976,1244.689941,1235.349976,1244.119995,2043120000,0.7099218173296062,1217.5813231666666 +2005-08-03,1244.119995,1245.859985,1240.569946,1245.040039,1999980000,0.07395138762318343,1218.6289916333333 +2005-08-04,1245.040039,1245.040039,1235.150024,1235.859985,1981220000,-0.7373300225246737,1219.3616576333334 +2005-08-05,1235.859985,1235.859985,1225.619995,1226.420044,1930280000,-0.7638357997326151,1220.2179931 +2005-08-08,1226.420044,1232.280029,1222.670044,1223.130005,1804140000,-0.26826363578251744,1221.2699950666668 +2005-08-09,1223.130005,1234.109985,1223.130005,1231.380005,1897520000,0.6744990284168528,1222.6263305333334 +2005-08-10,1231.380005,1242.689941,1226.579956,1229.130005,2172320000,-0.18272182355275612,1223.5449991666667 +2005-08-11,1229.130005,1237.810059,1228.329956,1237.810059,1941560000,0.7061949480274832,1224.8103352666667 +2005-08-12,1237.810059,1237.810059,1225.869995,1230.390015,1709300000,-0.5994493214891539,1226.1123372333334 +2005-08-15,1230.400024,1236.23999,1226.199951,1233.869995,1562880000,0.28283552024761516,1227.4266723666667 +2005-08-16,1233.869995,1233.869995,1219.050049,1219.339966,1820410000,-1.177598049946904,1227.9050049 +2005-08-17,1219.339966,1225.630005,1218.069946,1220.23999,1859150000,0.07381239236770032,1228.7483398666668 +2005-08-18,1220.23999,1222.640015,1215.930054,1219.02002,1808170000,-0.09997787402460379,1229.4533407000001 +2005-08-19,1219.02002,1225.079956,1219.02002,1219.709961,1558790000,0.056598004026220394,1229.7150065666667 +2005-08-22,1219.709961,1228.959961,1216.469971,1221.72998,1621330000,0.16561470059193173,1229.7913412000003 +2005-08-23,1221.72998,1223.040039,1214.439941,1217.589966,1678620000,-0.3388648938614125,1229.6373413666668 +2005-08-24,1217.569946,1224.150024,1209.369995,1209.589966,1930800000,-0.6570356378906017,1229.1806722666668 +2005-08-25,1209.589966,1213.72998,1209.569946,1212.369995,1571110000,0.22983234634406102,1228.7096721000003 +2005-08-26,1212.400024,1212.400024,1204.22998,1205.099976,1541090000,-0.5996534910945317,1227.9490031666667 +2005-08-29,1205.099976,1214.280029,1201.530029,1212.280029,1599450000,0.5958055881664093,1227.6540039666666 +2005-08-30,1212.280029,1212.280029,1201.069946,1208.410034,1916470000,-0.31923276037074677,1226.9560059 +2005-08-31,1208.410034,1220.359985,1204.400024,1220.329956,2365510000,0.986413689444765,1226.4603394 +2005-09-01,1220.329956,1227.290039,1216.180054,1221.589966,2229860000,0.10325158321360384,1226.2786703 +2005-09-02,1221.589966,1224.449951,1217.75,1218.02002,1640160000,-0.29223766561291553,1225.7566691666666 +2005-09-06,1218.02002,1233.609985,1218.02002,1233.390015,1932090000,1.2618836100904085,1225.9020020333332 +2005-09-07,1233.390015,1237.060059,1230.930054,1236.359985,2067700000,0.24079731178949793,1226.0753337333333 +2005-09-08,1236.359985,1236.359985,1229.51001,1231.670044,1955380000,-0.3793345835274686,1225.9046672333332 +2005-09-09,1231.670044,1243.130005,1231.670044,1241.47998,1992560000,0.7964743518597883,1225.8300008666668 +2005-09-12,1241.47998,1242.599976,1239.150024,1240.560059,1938050000,-0.07409873818505774,1226.0426676999998 +2005-09-13,1240.569946,1240.569946,1231.199951,1231.199951,2082360000,-0.7545066385213905,1225.9043335333333 +2005-09-14,1231.199951,1234.73999,1226.160034,1227.160034,1986750000,-0.3281284243650928,1225.3390015 +2005-09-15,1227.160034,1231.880005,1224.849976,1227.72998,2079340000,0.04644430915357045,1224.7619995333332 +2005-09-16,1228.420044,1237.949951,1228.420044,1237.910034,3152470000,0.8291769498045332,1224.8303344999997 +2005-09-19,1237.910034,1237.910034,1227.650024,1231.02002,2076540000,-0.5565843890720124,1224.9836670333332 +2005-09-20,1231.02002,1236.48999,1220.069946,1221.339966,2319250000,-0.7863441570998941,1224.9239990666667 +2005-09-21,1221.339966,1221.52002,1209.890015,1210.199951,2548150000,-0.9121141786987086,1224.2179972666668 +2005-09-22,1210.199951,1216.640015,1205.349976,1214.619995,2424720000,0.3652325383377786,1223.7343302666668 +2005-09-23,1214.619995,1218.829956,1209.800049,1215.290039,1973020000,0.055164907770177685,1222.9836629333333 +2005-09-26,1215.290039,1222.560059,1211.839966,1215.630005,2022220000,0.027974062905977704,1222.4916626000002 +2005-09-27,1215.630005,1220.170044,1211.109985,1215.660034,1976270000,0.002470241757479563,1221.8846639 +2005-09-28,1215.660034,1220.97998,1212.719971,1216.890015,2106980000,0.10117804037308442,1221.8029988666667 +2005-09-29,1216.890015,1228.699951,1211.540039,1227.680054,2176120000,0.8866897473885471,1222.0510009999998 +2005-09-30,1227.680054,1229.569946,1225.219971,1228.810059,2097520000,0.09204393248209986,1222.3773356333334 +2005-10-03,1228.810059,1233.339966,1225.150024,1226.699951,2097490000,-0.17171962294295628,1222.6103353 +2005-10-04,1226.699951,1229.880005,1214.02002,1214.469971,2341420000,-0.9969821870482898,1222.368335 +2005-10-05,1214.469971,1214.469971,1196.25,1196.390015,2546780000,-1.4887116546087098,1221.6616699666665 +2005-10-06,1196.390015,1202.140015,1181.920044,1191.48999,2792030000,-0.4095675271913679,1221.0583374333332 +2005-10-07,1191.48999,1199.709961,1191.459961,1195.900024,2126080000,0.3701276583951918,1220.5093384 +2005-10-10,1195.900024,1196.52002,1186.119995,1187.329956,2195990000,-0.7166207733097285,1219.9170044 +2005-10-11,1187.329956,1193.099976,1183.160034,1184.869995,2299040000,-0.20718427826813546,1219.0033365999998 +2005-10-12,1184.869995,1190.02002,1173.650024,1177.680054,2491280000,-0.6068126486737602,1217.9790039333334 +2005-10-13,1177.680054,1179.560059,1168.199951,1176.839966,2351150000,-0.07133414522446646,1216.5293376 +2005-10-14,1176.839966,1187.130005,1175.439941,1186.569946,2188940000,0.8267887122385575,1215.3620035999998 +2005-10-17,1186.569946,1191.209961,1184.47998,1190.099976,2054570000,0.2974986861836282,1214.4313354666667 +2005-10-18,1190.099976,1190.099976,1178.130005,1178.140015,2197010000,-1.0049543098217817,1212.5896687999998 +2005-10-19,1178.140015,1195.76001,1170.550049,1195.76001,2703590000,1.4955773316977172,1211.2363363 +2005-10-20,1195.76001,1197.300049,1173.300049,1177.800049,2617250000,-1.5019703661105055,1209.4406698 +2005-10-21,1177.800049,1186.459961,1174.920044,1179.589966,2470920000,0.15197121120174018,1207.3776693333334 +2005-10-24,1179.589966,1199.390015,1179.589966,1199.380005,2197790000,1.6777049288667856,1206.0050008666667 +2005-10-25,1199.380005,1201.300049,1189.290039,1196.540039,2312470000,-0.23678617186885242,1204.8496704666666 +2005-10-26,1196.540039,1204.01001,1191.380005,1191.380005,2467750000,-0.43124624599377714,1203.6570028333333 +2005-10-27,1191.380005,1192.650024,1178.890015,1178.900024,2395370000,-1.0475231200476554,1202.0293376333332 +2005-10-28,1178.900024,1198.410034,1178.900024,1198.410034,2379400000,1.6549333788121068,1200.7126709666668 +2005-10-31,1198.410034,1211.430054,1198.410034,1207.01001,2567470000,0.7176154868543172,1199.9123373 +2005-11-01,1207.01001,1207.339966,1201.660034,1202.76001,2457850000,-0.3521097559083253,1199.2930054333333 +2005-11-02,1202.76001,1215.170044,1201.069946,1214.76001,2648090000,0.9977052695657962,1199.4450074 +2005-11-03,1214.76001,1224.699951,1214.76001,1219.939941,2716630000,0.4264159963579983,1199.6223389333331 +2005-11-04,1219.939941,1222.52002,1214.449951,1220.140015,2050510000,0.0164003155627368,1199.7840047999998 +2005-11-07,1220.140015,1224.180054,1217.290039,1222.810059,1987580000,0.21883095113472972,1200.0233399333333 +2005-11-08,1222.810059,1222.810059,1216.079956,1218.589966,1965050000,-0.34511435107518196,1200.1210043333333 +2005-11-09,1218.589966,1226.589966,1216.530029,1220.650024,2214460000,0.1690525982880109,1200.2463379666667 +2005-11-10,1220.650024,1232.410034,1215.050049,1230.959961,2378460000,0.8446267805914509,1200.3556682 +2005-11-11,1230.959961,1235.699951,1230.719971,1234.719971,1773140000,0.30545347689012736,1200.5526652666667 +2005-11-14,1234.719971,1237.199951,1231.780029,1233.76001,1899780000,-0.0777472643633148,1200.7880005666666 +2005-11-15,1233.76001,1237.939941,1226.410034,1229.01001,2359370000,-0.3850019421524298,1201.2726685333332 +2005-11-16,1229.01001,1232.23999,1227.180054,1231.209961,2121580000,0.1790018781051339,1202.4333334 +2005-11-17,1231.209961,1242.959961,1231.209961,1242.800049,2298040000,0.941357556154454,1204.1436686999998 +2005-11-18,1242.800049,1249.579956,1240.709961,1248.27002,2453290000,0.44013282783512686,1205.8893352333332 +2005-11-21,1248.27002,1255.890015,1246.900024,1254.849976,2117350000,0.5271260139693146,1208.1400025666665 +2005-11-22,1254.849976,1261.900024,1251.400024,1261.22998,2291420000,0.5084276305552748,1210.6853354000002 +2005-11-23,1261.22998,1270.640015,1259.51001,1265.609985,1985400000,0.3472804381005945,1213.6163330999998 +2005-11-25,1265.609985,1268.780029,1265.540039,1268.25,724940000,0.2085962525019136,1216.6633342333332 +2005-11-28,1268.25,1268.439941,1257.170044,1257.459961,2016900000,-0.8507817070766754,1219.0263347333332 +2005-11-29,1257.459961,1266.180054,1257.459961,1257.47998,2268340000,0.0015920188809914748,1221.2723348666666 +2005-11-30,1257.47998,1260.930054,1249.390015,1249.47998,2374690000,-0.6361930310811004,1223.6503337 +2005-12-01,1249.47998,1266.170044,1249.47998,1264.670044,2614830000,1.2157108751754464,1225.9473348333336 +2005-12-02,1264.670044,1266.849976,1261.420044,1265.079956,2125580000,0.032412564996286974,1228.8566650666664 +2005-12-05,1265.079956,1265.079956,1258.119995,1262.089966,2325840000,-0.23634790716737797,1231.6066650666664 +2005-12-06,1262.089966,1272.890015,1262.089966,1263.699951,2110740000,0.12756499483967954,1233.7506632666666 +2005-12-07,1263.699951,1264.849976,1253.02002,1257.369995,2093830000,-0.5009065636974119,1235.7783284666666 +2005-12-08,1257.369995,1263.359985,1250.910034,1255.839966,2178300000,-0.12168486651377153,1237.9269938333334 +2005-12-09,1255.839966,1263.079956,1254.23999,1259.369995,1896290000,0.28108907946635675,1240.6093262 +2005-12-12,1259.369995,1263.859985,1255.52002,1260.430054,1876550000,0.08417375387761439,1242.6766601999998 +2005-12-13,1260.430054,1272.109985,1258.560059,1267.430054,2390020000,0.5553660020867657,1244.6906616666668 +2005-12-14,1267.430054,1275.800049,1267.069946,1272.73999,2145520000,0.41895298152683225,1247.0233276666668 +2005-12-15,1272.73999,1275.170044,1267.73999,1270.939941,2180590000,-0.14143100822973098,1248.8959920333332 +2005-12-16,1270.939941,1275.23999,1267.319946,1267.319946,2584190000,-0.2848281719080914,1250.4753255333335 +2005-12-19,1267.319946,1270.51001,1259.280029,1259.920044,2208810000,-0.583901644044682,1251.8013265000002 +2005-12-20,1259.920044,1263.859985,1257.209961,1259.619995,1996690000,-0.023814923925435938,1253.0283243666668 +2005-12-21,1259.619995,1269.369995,1259.619995,1262.790039,2065170000,0.2516666941286605,1254.5016601333334 +2005-12-22,1262.790039,1268.189941,1262.5,1268.119995,1888500000,0.42207776711802314,1256.0839925 +2005-12-23,1268.119995,1269.76001,1265.920044,1268.660034,1285810000,0.042585796464789105,1257.3406615999997 +2005-12-27,1268.660034,1271.829956,1256.540039,1256.540039,1540470000,-0.9553382841096081,1258.0679972 +2005-12-28,1256.540039,1261.099976,1256.540039,1258.170044,1422360000,0.12972169205982542,1258.881665 +2005-12-29,1258.170044,1260.609985,1254.180054,1254.420044,1382540000,-0.29805192214542586,1259.7286661333335 +2005-12-30,1254.420044,1254.420044,1246.589966,1248.290039,1443500000,-0.48867243706127717,1260.2980020666666 +2006-01-03,1248.290039,1270.219971,1245.73999,1268.800049,2554570000,1.6430484390014488,1261.1646687333332 +2006-01-04,1268.800049,1275.369995,1267.73999,1273.459961,2515330000,0.3672692165856084,1262.0043334333334 +2006-01-05,1273.459961,1276.910034,1270.300049,1273.47998,2433340000,0.0015720164444177342,1262.6253335666668 +2006-01-06,1273.47998,1286.089966,1273.47998,1285.449951,2446560000,0.939941827746682,1263.4326659333333 +2006-01-09,1285.449951,1290.780029,1284.819946,1290.150024,2301490000,0.3656364058626904,1264.2506672333334 +2006-01-10,1290.150024,1290.150024,1283.76001,1289.689941,2373080000,-0.03566120152239671,1264.9653319333336 +2006-01-11,1289.719971,1294.900024,1288.119995,1294.180054,2406130000,0.34815445614146956,1266.1893350333335 +2006-01-12,1294.180054,1294.180054,1285.040039,1286.060059,2318350000,-0.6274239024858241,1267.1420043333335 +2006-01-13,1286.060059,1288.959961,1282.780029,1287.609985,2206510000,0.12051738868286144,1268.4130045 +2006-01-17,1287.609985,1287.609985,1278.609985,1282.930054,2179970000,-0.363458737856881,1269.0216715 +2006-01-18,1282.930054,1282.930054,1272.079956,1277.930054,2233200000,-0.3897328606817352,1269.4500081 +2006-01-19,1277.930054,1287.790039,1277.930054,1285.040039,2444020000,0.5563673049041595,1270.2150105333335 +2006-01-20,1285.040039,1285.040039,1260.920044,1261.48999,2845810000,-1.8326315356155143,1270.1413451666667 +2006-01-23,1261.48999,1268.189941,1261.48999,1263.819946,2256070000,0.18469873074458132,1270.3563435333333 +2006-01-24,1263.819946,1271.469971,1263.819946,1266.859985,2608720000,0.2405436794712612,1270.7236775 +2006-01-25,1266.859985,1271.869995,1259.420044,1264.680054,2617060000,-0.1720735539689544,1270.9006794666668 +2006-01-26,1264.680054,1276.439941,1264.680054,1273.829956,2856780000,0.723495398781715,1271.3473428666666 +2006-01-27,1273.829956,1286.380005,1273.829956,1283.719971,2623620000,0.7763999388942011,1271.8903400999998 +2006-01-30,1283.719971,1287.939941,1283.51001,1285.189941,2282730000,0.11450861817277058,1272.3053384666666 +2006-01-31,1285.199951,1285.199951,1276.849976,1280.079956,2708310000,-0.39760543068241283,1272.6100056333335 +2006-02-01,1280.079956,1283.329956,1277.569946,1282.459961,2589410000,0.1859262766239267,1273.1146727999999 +2006-02-02,1282.459961,1282.459961,1267.719971,1270.839966,2565300000,-0.9060707821973102,1273.4786702 +2006-02-03,1270.839966,1270.869995,1261.02002,1264.030029,2282210000,-0.5358610983438372,1273.6256713333335 +2006-02-06,1264.030029,1267.040039,1261.619995,1265.02002,2132360000,0.07832021212210716,1273.7000040333332 +2006-02-07,1265.02002,1265.780029,1253.609985,1254.780029,2366370000,-0.809472643761,1273.2553384999999 +2006-02-08,1254.780029,1266.469971,1254.780029,1265.650024,2456860000,0.8662868988011274,1273.1550048333336 +2006-02-09,1265.650024,1274.560059,1262.800049,1263.780029,2441920000,-0.1477497700422714,1273.396337833333 +2006-02-10,1263.819946,1269.890015,1254.97998,1266.98999,2290050000,0.25399681323814427,1273.6903360333333 +2006-02-13,1266.98999,1266.98999,1258.339966,1262.859985,1850080000,-0.32596982080339565,1273.9716674000001 +2006-02-14,1262.859985,1278.209961,1260.800049,1275.530029,2437940000,1.0032817691978613,1274.8796670666668 +2006-02-15,1275.530029,1281.0,1271.060059,1280.0,2317590000,0.35044027959925117,1275.252998766667 +2006-02-16,1280.0,1289.390015,1280.0,1289.380005,2251490000,0.7328128906249898,1275.7836669 +2006-02-17,1289.380005,1289.469971,1284.069946,1287.23999,2128260000,-0.16597240469848895,1276.2423339 +2006-02-21,1287.23999,1291.920044,1281.329956,1283.030029,2104320000,-0.3270533103931994,1276.1616698333335 +2006-02-22,1283.030029,1294.170044,1283.030029,1292.670044,2222380000,0.7513475742663145,1276.2456705 +2006-02-23,1292.670044,1293.839966,1285.140015,1287.790039,2144210000,-0.3775135830408338,1276.1823404333331 +2006-02-24,1287.790039,1292.109985,1285.619995,1289.430054,1933010000,0.12735111705581836,1276.0240071 +2006-02-27,1289.430054,1297.569946,1289.430054,1294.119995,1975320000,0.36372201698349205,1276.2926716333334 +2006-02-28,1294.119995,1294.119995,1278.660034,1280.660034,2370860000,-1.0400860084075925,1276.0610066000002 +2006-03-01,1280.660034,1291.800049,1280.660034,1291.23999,2308320000,0.8261330656938348,1276.3380044666667 +2006-03-02,1291.23999,1291.23999,1283.209961,1289.140015,2494590000,-0.16263243210118405,1276.7116698333334 +2006-03-03,1289.140015,1297.329956,1284.199951,1287.22998,2152950000,-0.1481635026277517,1276.7846678666667 +2006-03-06,1287.22998,1288.22998,1275.670044,1278.26001,2280190000,-0.6968428438871577,1277.3436685333334 +2006-03-07,1278.26001,1278.26001,1271.109985,1275.880005,2268050000,-0.18619099255088312,1277.7456705000002 +2006-03-08,1275.880005,1280.329956,1268.420044,1278.469971,2442870000,0.2029944814442075,1278.1326700333334 +2006-03-09,1278.469971,1282.73999,1272.22998,1272.22998,2140110000,-0.48808271930853575,1278.3843342333332 +2006-03-10,1272.22998,1284.369995,1271.109985,1281.420044,2123450000,0.7223587043593938,1278.6373371666668 +2006-03-13,1281.579956,1287.369995,1281.579956,1284.130005,2070330000,0.21148108402775367,1278.6510049666665 +2006-03-14,1284.130005,1298.140015,1282.670044,1297.47998,2165270000,1.0396124183703837,1279.0606729333333 +2006-03-15,1297.47998,1304.400024,1294.969971,1303.02002,2293000000,0.4269846229149499,1279.8253417333333 +2006-03-16,1303.02002,1310.449951,1303.02002,1305.329956,2292180000,0.1772755571322726,1280.5876749000001 +2006-03-17,1305.329956,1309.790039,1305.319946,1307.25,2549620000,0.1470926175542342,1281.8013427 +2006-03-20,1307.25,1310.0,1303.589966,1305.079956,1976830000,-0.16600068846815974,1283.1696736 +2006-03-21,1305.079956,1310.880005,1295.819946,1297.22998,2147370000,-0.6014938750618537,1284.2433389333335 +2006-03-22,1297.22998,1305.969971,1295.810059,1305.040039,2039810000,0.6020566222189716,1285.9186726 +2006-03-23,1305.040039,1305.040039,1298.109985,1301.670044,1980940000,-0.25822924196121644,1287.119339933333 +2006-03-24,1301.670044,1306.530029,1298.890015,1302.949951,2326070000,0.09832806753906631,1288.4250040000002 +2006-03-27,1302.949951,1303.73999,1299.089966,1301.609985,2029700000,-0.10284094173929059,1289.5790038333332 +2006-03-28,1301.609985,1306.23999,1291.839966,1293.22998,2148580000,-0.6438184322932972,1290.591337 +2006-03-29,1293.22998,1305.599976,1293.22998,1302.890015,2143540000,0.7469696147934801,1291.5033365333331 +2006-03-30,1302.890015,1310.150024,1296.719971,1300.25,2294560000,-0.202627617803941,1292.178336533333 +2006-03-31,1300.25,1303.0,1294.869995,1294.869995,2236710000,-0.41376696789079404,1292.3613361999999 +2006-04-03,1302.880005,1309.189941,1296.650024,1297.810059,2494080000,0.22705476313087392,1292.7136718333336 +2006-04-04,1297.810059,1307.550049,1294.709961,1305.930054,2147660000,0.6256689831990236,1293.477006 +2006-04-05,1305.930054,1312.810059,1304.819946,1311.560059,2420020000,0.4311107614650256,1294.1066731666667 +2006-04-06,1311.560059,1311.98999,1302.439941,1309.040039,2281680000,-0.19213912338267303,1294.8150065 +2006-04-07,1309.040039,1314.069946,1294.180054,1295.5,2082470000,-1.0343487285800257,1295.0173380333333 +2006-04-10,1295.51001,1300.73999,1293.170044,1296.619995,1898320000,0.08645272095715306,1295.1006713666668 +2006-04-11,1296.599976,1300.709961,1282.959961,1286.569946,2232880000,-0.7750959447451633,1295.2976684333332 +2006-04-12,1286.569946,1290.930054,1286.449951,1288.119995,1938100000,0.1204791861351362,1295.1936686000001 +2006-04-13,1288.119995,1292.089966,1283.369995,1289.119995,1891940000,0.07763251901078405,1295.1930012666667 +2006-04-17,1289.119995,1292.449951,1280.73999,1285.329956,1794650000,-0.2940020335345128,1295.1296671333334 +2006-04-18,1285.329956,1309.02002,1285.329956,1307.280029,2595440000,1.7077383824702475,1296.0970011 +2006-04-19,1307.650024,1310.390015,1302.790039,1309.930054,2447310000,0.20271288027149392,1297.2320027333333 +2006-04-20,1309.930054,1318.160034,1306.380005,1311.459961,2512920000,0.11679302992768648,1298.3316690666666 +2006-04-21,1311.459961,1317.670044,1306.589966,1311.280029,2392630000,-0.013719976617720953,1299.6333373666669 +2006-04-24,1311.280029,1311.280029,1303.790039,1308.109985,2117330000,-0.24175187068299353,1300.5230020666665 +2006-04-25,1308.109985,1310.790039,1299.170044,1301.73999,2366380000,-0.48696172898642365,1301.1100015666666 +2006-04-26,1301.73999,1310.969971,1301.73999,1305.410034,2502690000,0.2819337216489748,1301.3743367 +2006-04-27,1305.410034,1315.0,1295.569946,1309.719971,2772010000,0.3301596347312863,1301.5976684 +2006-04-28,1309.719971,1316.040039,1306.160034,1310.609985,2419920000,0.06795452613588271,1301.7736693666666 +2006-05-01,1310.609985,1317.209961,1303.459961,1305.189941,2437040000,-0.4135512518623097,1301.7050007333332 +2006-05-02,1305.189941,1313.660034,1305.189941,1313.209961,2403470000,0.6144714840397247,1301.9760009 +2006-05-03,1313.209961,1313.469971,1303.920044,1308.119995,2395230000,-0.3875972731827271,1302.3390014 +2006-05-04,1307.849976,1315.140015,1307.849976,1312.25,2431450000,0.31572065374629865,1302.5793334333332 +2006-05-05,1312.25,1326.530029,1312.25,1325.76001,2294760000,1.0295301962278458,1303.3823323 +2006-05-08,1325.76001,1326.699951,1322.869995,1324.660034,2151300000,-0.08296946594429366,1304.1060017333332 +2006-05-09,1324.660034,1326.599976,1322.47998,1325.140015,2157290000,0.03623427805476975,1304.8903360666668 +2006-05-10,1324.569946,1325.51001,1317.439941,1322.849976,2268550000,-0.1728148704346566,1305.8776692666665 +2006-05-11,1322.630005,1322.630005,1303.449951,1305.920044,2531520000,-1.2798074087881361,1305.9786702333333 +2006-05-12,1305.880005,1305.880005,1290.380005,1291.23999,2567970000,-1.1241158344606816,1305.6783365666668 +2006-05-15,1291.189941,1294.810059,1284.51001,1294.5,2505660000,0.25247126988376944,1305.6660034000001 +2006-05-16,1294.5,1297.880005,1288.51001,1292.079956,2386210000,-0.18694816531479308,1305.4749999666667 +2006-05-17,1291.72998,1291.72998,1267.310059,1270.319946,2830200000,-1.684107078587016,1304.2879963666667 +2006-05-18,1270.25,1274.890015,1261.75,1261.810059,2537490000,-0.6699010770315206,1302.6296630333334 +2006-05-19,1261.810059,1272.150024,1256.280029,1267.030029,2982300000,0.41368904636382986,1301.2293293666667 +2006-05-22,1267.030029,1268.77002,1252.97998,1262.069946,2773010000,-0.3914732000404708,1300.1149942333332 +2006-05-23,1262.060059,1273.670044,1256.150024,1256.579956,2605250000,-0.4349988697060714,1298.7803262666666 +2006-05-24,1256.560059,1264.530029,1245.339966,1258.569946,2999030000,0.15836556921811074,1297.8469929333335 +2006-05-25,1258.410034,1273.26001,1258.410034,1272.880005,2372730000,1.1370094324499203,1297.3389932666666 +2006-05-26,1272.709961,1280.540039,1272.5,1280.160034,1814020000,0.5719336442872258,1297.0403279 +2006-05-30,1280.040039,1280.040039,1259.869995,1259.869995,2176190000,-1.5849611346326342,1296.1916625333333 +2006-05-31,1259.380005,1270.089966,1259.380005,1270.089966,2692160000,0.8111925072078474,1294.9519937666666 +2006-06-01,1270.050049,1285.709961,1269.189941,1285.709961,2360160000,1.2298337454939023,1294.1446573333335 +2006-06-02,1285.709961,1290.680054,1280.219971,1288.219971,2295540000,0.19522365666730934,1293.369991 +2006-06-05,1288.160034,1288.160034,1264.660034,1265.290039,2313470000,-1.7799702314970522,1291.8369913333333 +2006-06-06,1265.22998,1269.880005,1254.459961,1263.849976,2697650000,-0.11381287733349676,1290.3616577 +2006-06-07,1263.609985,1272.469971,1255.77002,1256.150024,2644170000,-0.6092457290199693,1288.8419921666668 +2006-06-08,1256.079956,1259.849976,1235.180054,1257.930054,3543790000,0.141705207657572,1287.2593261666666 +2006-06-09,1257.930054,1262.579956,1250.030029,1252.300049,2214000000,-0.4475610533429486,1285.3453287666669 +2006-06-12,1252.27002,1255.219971,1236.430054,1237.439941,2247010000,-1.1866252031105584,1282.9063273 +2006-06-13,1236.079956,1243.369995,1222.52002,1223.689941,3215770000,-1.111165038756412,1280.1896606333335 +2006-06-14,1223.660034,1231.459961,1219.290039,1230.040039,2667990000,0.5189303096510445,1277.4173299000001 +2006-06-15,1230.01001,1258.640015,1230.01001,1256.160034,2775480000,2.1235077047764284,1275.6853312 +2006-06-16,1256.160034,1256.27002,1246.329956,1251.540039,2783390000,-0.36778713499493465,1273.6616658333335 +2006-06-19,1251.540039,1255.930054,1237.170044,1240.130005,2517200000,-0.9116795024086355,1270.8073323333335 +2006-06-20,1240.119995,1249.01001,1238.869995,1240.119995,2232950000,-0.0008071734382331108,1267.9893310333334 +2006-06-21,1240.089966,1257.959961,1240.089966,1252.199951,2361230000,0.974095736598457,1265.5579955666665 +2006-06-22,1251.920044,1251.920044,1241.530029,1245.599976,2148180000,-0.5270703767980001,1262.982995566667 +2006-06-23,1245.589966,1253.130005,1241.430054,1244.5,2017270000,-0.08830892912605748,1260.9356607666668 +2006-06-26,1244.5,1250.920044,1243.680054,1250.560059,1878580000,0.4869472880674852,1259.5796630666666 +2006-06-27,1250.550049,1253.369995,1238.939941,1239.199951,2203130000,-0.9084016331917577,1257.7363281 +2006-06-28,1238.98999,1247.060059,1237.589966,1246.0,2085490000,0.5487450991676024,1256.2003295666666 +2006-06-29,1245.939941,1272.880005,1245.939941,1272.869995,2621250000,2.1565004012841005,1256.2853312000002 +2006-06-30,1272.859985,1276.300049,1270.199951,1270.199951,3049560000,-0.20976564853348867,1256.5649942666666 +2006-07-03,1270.060059,1280.380005,1270.060059,1280.189941,1114470000,0.7864895595480981,1257.003658 +2006-07-05,1280.050049,1280.050049,1265.910034,1270.910034,2165070000,-0.7248851676456058,1257.2983276000002 +2006-07-06,1270.579956,1278.319946,1270.579956,1274.079956,2009160000,0.24942143150945562,1257.8816609333335 +2006-07-07,1274.079956,1275.380005,1263.130005,1265.47998,1988150000,-0.6749950000783156,1258.1119953999998 +2006-07-10,1265.459961,1274.060059,1264.459961,1267.339966,1854590000,0.14697869815372133,1257.9273274333332 +2006-07-11,1267.26001,1273.640015,1259.650024,1272.430054,2310850000,0.4016355624028245,1257.6696614333334 +2006-07-12,1272.390015,1273.310059,1257.290039,1258.599976,2250450000,-1.0869028090403798,1257.6273274666667 +2006-07-13,1258.579956,1258.579956,1241.430054,1242.280029,2545760000,-1.2966746632132375,1256.7003295666666 +2006-07-14,1242.290039,1242.699951,1228.449951,1236.199951,2467120000,-0.48942894178973795,1255.0499958999999 +2006-07-17,1236.199951,1240.069946,1231.48999,1234.48999,2146410000,-0.13832398218562858,1253.2589965333332 +2006-07-18,1234.47998,1239.859985,1224.540039,1236.859985,2481750000,0.1919817106009969,1252.3113280666666 +2006-07-19,1236.73999,1261.810059,1236.73999,1259.810059,2701980000,1.8555110746831804,1252.1766641666666 +2006-07-20,1259.810059,1262.560059,1249.130005,1249.130005,2345580000,-0.8477511291247741,1251.9426635333332 +2006-07-21,1249.119995,1250.959961,1238.719971,1240.290039,2704090000,-0.7076898292904255,1251.3546630333333 +2006-07-24,1240.25,1262.5,1240.25,1260.910034,2312720000,1.6625139565439984,1251.6416625333331 +2006-07-25,1260.910034,1272.390015,1257.189941,1268.880005,2563930000,0.6320808610521311,1252.6896646666669 +2006-07-26,1268.869995,1273.890015,1261.939941,1268.400024,2667710000,-0.03782713874508348,1254.1800007666668 +2006-07-27,1268.199951,1275.849976,1261.920044,1263.199951,2776710000,-0.4099710581525473,1255.2853311666665 +2006-07-28,1263.150024,1280.420044,1263.150024,1278.550049,2480420000,1.2151756329509045,1256.0316649999997 +2006-07-31,1278.530029,1278.660034,1274.310059,1276.660034,2461300000,-0.14782487408124823,1256.8689981666664 +2006-08-01,1278.530029,1278.660034,1265.709961,1270.920044,2527690000,-0.4496099076600424,1257.8953327999998 +2006-08-02,1270.72998,1283.420044,1270.72998,1277.410034,2610750000,0.5106528951714262,1259.1383340999998 +2006-08-03,1278.219971,1283.959961,1271.25,1280.27002,2728440000,0.22388942656450528,1260.0740030666668 +2006-08-04,1280.26001,1292.920044,1273.819946,1279.359985,2530970000,-0.0710814895126477,1261.1993366999998 +2006-08-07,1279.310059,1279.310059,1273.0,1275.77002,2045660000,-0.28060632207440594,1262.2416707 +2006-08-08,1275.670044,1282.75,1268.369995,1271.47998,2457840000,-0.33627063912349264,1262.9390013999998 +2006-08-09,1271.130005,1283.73999,1264.72998,1265.949951,2555180000,-0.4349285153510629,1263.8306680666667 +2006-08-10,1265.719971,1272.550049,1261.300049,1271.810059,2402190000,0.46290202826508864,1264.6910033666668 +2006-08-11,1271.640015,1271.640015,1262.079956,1266.73999,2004540000,-0.39864985845342593,1264.4866698666665 +2006-08-14,1266.670044,1278.900024,1266.670044,1268.209961,2118020000,0.1160436247062746,1264.4203368666667 +2006-08-15,1268.189941,1286.22998,1268.189941,1285.579956,2334100000,1.3696466306181376,1264.6000040333333 +2006-08-16,1285.27002,1296.209961,1285.27002,1295.430054,2554570000,0.7661987847607632,1265.4173380333334 +2006-08-17,1295.369995,1300.780029,1292.709961,1297.47998,2458340000,0.1582428934445712,1266.197338833333 +2006-08-18,1297.47998,1302.300049,1293.569946,1302.300049,2033910000,0.371494672310857,1267.4246744666666 +2006-08-21,1302.300049,1302.300049,1295.51001,1297.52002,1759240000,-0.3670451370765493,1268.4306762666668 +2006-08-22,1297.52002,1302.48999,1294.439941,1298.819946,1908740000,0.10018542912348938,1269.3103393333333 +2006-08-23,1298.72998,1301.5,1289.819946,1292.98999,1893670000,-0.4488656043475925,1270.4566731333332 +2006-08-24,1292.969971,1297.22998,1291.400024,1296.060059,1930320000,0.23743950252854695,1272.2493408 +2006-08-25,1295.920044,1298.880005,1292.390015,1295.089966,1667580000,-0.07484938628140592,1274.2123413000002 +2006-08-28,1295.089966,1305.02002,1293.969971,1301.780029,1834920000,0.5165712943219658,1276.4553426 +2006-08-29,1301.569946,1305.02002,1295.290039,1304.280029,2093720000,0.19204473446412518,1278.7026773999999 +2006-08-30,1303.699951,1306.73999,1302.150024,1305.369995,2060690000,0.08356840369898588,1280.2213419333334 +2006-08-31,1304.25,1306.109985,1302.449951,1303.819946,1974540000,-0.11874403471331396,1282.0443399666667 +2006-09-01,1303.800049,1312.030029,1303.800049,1311.01001,1800520000,0.5514614208854907,1284.4016723333334 +2006-09-05,1310.939941,1314.670044,1308.819946,1313.25,2114480000,0.17085987009359815,1286.1463378666667 +2006-09-06,1313.040039,1313.040039,1299.280029,1300.26001,2329870000,-0.9891482962116949,1287.192338033333 +2006-09-07,1300.209961,1301.25,1292.130005,1294.02002,2325850000,-0.47990324642838145,1288.0463379 +2006-09-08,1294.02002,1300.140015,1294.02002,1298.920044,2132890000,0.3786667844597913,1289.2370076666666 +2006-09-11,1298.859985,1302.359985,1290.930054,1299.540039,2506430000,0.047731575385556724,1289.936674 +2006-09-12,1299.530029,1314.280029,1299.530029,1313.0,2791580000,1.0357480797865692,1291.1480062 +2006-09-13,1312.73999,1319.920044,1311.119995,1318.069946,2597220000,0.3861345011424211,1292.7196696 +2006-09-14,1318.0,1318.0,1313.25,1316.280029,2351220000,-0.13579833190431323,1294.0153361000002 +2006-09-15,1316.280029,1324.650024,1316.280029,1319.660034,3198030000,0.25678464502481013,1295.3283365666668 +2006-09-18,1319.849976,1324.869995,1318.160034,1321.180054,2325080000,0.11518269560628625,1296.7223388666669 +2006-09-19,1321.170044,1322.040039,1312.170044,1317.640015,2390850000,-0.26794523496491696,1298.1180053666665 +2006-09-20,1318.280029,1328.530029,1318.280029,1325.180054,2543070000,0.5722381617258243,1299.9080078333334 +2006-09-21,1324.890015,1328.189941,1315.449951,1318.030029,2627440000,-0.5395512087899235,1301.6440104333335 +2006-09-22,1318.030029,1318.030029,1310.939941,1314.780029,2162880000,-0.24658011794054246,1303.0763427666666 +2006-09-25,1314.780029,1329.349976,1311.579956,1326.369995,2710240000,0.8815136938773893,1305.0640096 +2006-09-26,1326.349976,1336.599976,1325.300049,1336.349976,2673350000,0.752428133750116,1307.3353434333335 +2006-09-27,1336.119995,1340.079956,1333.540039,1336.589966,2749190000,0.017958618947888638,1309.0356771000002 +2006-09-28,1336.560059,1340.280029,1333.75,1338.880005,2397820000,0.1713344449871368,1310.4840087999999 +2006-09-29,1339.150024,1339.880005,1335.640015,1335.849976,2273430000,-0.226310721549694,1311.7630086666666 +2006-10-02,1335.819946,1338.540039,1330.280029,1331.319946,2154480000,-0.33911218186074565,1312.730338566667 +2006-10-03,1331.319946,1338.310059,1327.099976,1334.109985,2682690000,0.2095693832562695,1313.9500040666667 +2006-10-04,1333.810059,1350.199951,1331.47998,1350.199951,3019880000,1.206044942389073,1315.6626709 +2006-10-05,1349.839966,1353.790039,1347.75,1353.219971,2817240000,0.22367205670266177,1317.6703369333334 +2006-10-06,1353.219971,1353.219971,1344.209961,1349.589966,2523000000,-0.26824944043040144,1319.4546671666665 +2006-10-09,1349.579956,1352.689941,1346.550049,1350.660034,1935170000,0.07928837846737924,1321.3070027666665 +2006-10-10,1350.619995,1354.22998,1348.599976,1353.420044,2376140000,0.20434527790285095,1323.0283365999999 +2006-10-11,1353.280029,1353.969971,1343.569946,1349.949951,2521000000,-0.2563943851270345,1324.5506673333332 +2006-10-12,1349.939941,1363.76001,1349.939941,1362.829956,2514350000,0.9541098164757011,1326.465999366667 +2006-10-13,1362.819946,1366.630005,1360.5,1365.619995,2482920000,0.2047239266877332,1328.526001 +2006-10-16,1365.609985,1370.199951,1364.47998,1369.060059,2305920000,0.251904923228663,1330.4610026333332 +2006-10-17,1369.050049,1369.050049,1356.869995,1364.050049,2519620000,-0.3659452313333422,1332.1543376000002 +2006-10-18,1363.930054,1372.869995,1360.949951,1365.800049,2658840000,0.1282944127514174,1334.3390055666669 +2006-10-19,1365.949951,1368.089966,1362.060059,1366.959961,2619830000,0.08492546188216821,1336.7703369333333 +2006-10-20,1366.939941,1368.660034,1362.099976,1368.599976,2526410000,0.11997535017778116,1339.0930013333334 +2006-10-23,1368.579956,1377.400024,1363.939941,1377.02002,2480430000,0.6152304652678131,1341.6756673666669 +2006-10-24,1377.02002,1377.780029,1372.420044,1377.380005,2876890000,0.02614232144571016,1343.8216675333335 +2006-10-25,1377.359985,1383.609985,1376.0,1382.219971,2953540000,0.35138930305584903,1345.9600017 +2006-10-26,1382.209961,1389.449951,1379.469971,1389.079956,2793350000,0.49630197392076525,1348.3866659333332 +2006-10-27,1388.890015,1388.890015,1375.849976,1377.339966,2458450000,-0.8451630123442633,1350.3093303333333 +2006-10-30,1377.300049,1381.219971,1373.459961,1377.930054,2770440000,0.04284258168401056,1352.200997 +2006-10-31,1377.930054,1381.209961,1372.189941,1377.939941,2803030000,0.0007175255356095533,1354.2109945333334 +2006-11-01,1377.76001,1381.949951,1366.26001,1367.810059,2821160000,-0.7351468448362652,1355.6319947 +2006-11-02,1367.439941,1368.390015,1362.209961,1367.339966,2646180000,-0.03436829528389307,1357.2756592666665 +2006-11-03,1367.310059,1371.680054,1360.97998,1364.300049,2419730000,-0.22232342179633324,1358.9263266000003 +2006-11-06,1364.27002,1381.400024,1364.27002,1379.780029,2533550000,1.1346462980300176,1360.7066610666666 +2006-11-07,1379.75,1388.189941,1379.189941,1382.839966,2636390000,0.22176991518116917,1362.2563274 +2006-11-08,1382.5,1388.609985,1379.329956,1385.719971,2814820000,0.20826741132820015,1363.8939942333334 +2006-11-09,1385.430054,1388.920044,1377.310059,1378.329956,3012050000,-0.5332978635407049,1365.2089926 +2006-11-10,1378.329956,1381.040039,1375.599976,1380.900024,2290200000,0.18646246414453227,1366.7106608666666 +2006-11-13,1380.579956,1387.609985,1378.800049,1384.420044,2386340000,0.2549076644812853,1368.4806641333332 +2006-11-14,1384.359985,1394.48999,1379.069946,1393.219971,3027480000,0.6356399589949824,1370.4509970000001 +2006-11-15,1392.910034,1401.349976,1392.130005,1396.569946,2831130000,0.2404483907588295,1371.9966634999998 +2006-11-16,1396.530029,1403.76001,1396.530029,1399.76001,2835730000,0.2284213554170078,1373.5479981333333 +2006-11-17,1399.76001,1401.209961,1394.550049,1401.199951,2726100000,0.10287056279025819,1375.2683309666668 +2006-11-20,1401.170044,1404.369995,1397.849976,1400.5,2546710000,-0.04995368430469327,1376.9296631666666 +2006-11-21,1400.430054,1403.48999,1399.98999,1402.810059,2597940000,0.1649453052481098,1378.5759970000001 +2006-11-22,1402.689941,1407.890015,1402.26001,1406.089966,2237710000,0.23380977196143515,1380.4473308333334 +2006-11-24,1405.939941,1405.939941,1399.25,1400.949951,832550000,-0.3655537785126284,1381.7179973333332 +2006-11-27,1400.949951,1400.949951,1381.439941,1381.959961,2711210000,-1.3555080955208298,1382.2626628666665 +2006-11-28,1381.609985,1387.910034,1377.829956,1386.719971,2639750000,0.34443906729073603,1382.8513266 +2006-11-29,1386.109985,1401.140015,1386.109985,1399.47998,2790970000,0.920157585298087,1384.0323242999998 +2006-11-30,1399.469971,1406.300049,1393.829956,1400.630005,4006230000,0.08217516623567622,1385.1933228333332 +2006-12-01,1400.630005,1402.459961,1385.930054,1396.709961,2800980000,-0.2798771971188718,1386.1849895 +2006-12-04,1396.670044,1411.22998,1396.670044,1409.119995,2766320000,0.8885190445061975,1387.5356568 +2006-12-05,1409.099976,1415.27002,1408.780029,1414.76001,2755700000,0.40025086720878456,1388.7936564666666 +2006-12-06,1414.400024,1415.930054,1411.050049,1412.900024,2725280000,-0.13147007173321956,1389.9776571 +2006-12-07,1412.859985,1418.27002,1406.800049,1407.290039,2743150000,-0.3970546326496516,1390.8133260333334 +2006-12-08,1407.27002,1414.089966,1403.670044,1409.839966,2440460000,0.1811941340686296,1391.5053263666666 +2006-12-11,1409.810059,1415.599976,1408.560059,1413.040039,2289900000,0.22698129413079027,1392.6953288 +2006-12-12,1413.0,1413.780029,1404.75,1411.560059,2738170000,-0.10473730107799506,1393.8163289666668 +2006-12-13,1411.319946,1416.640015,1411.050049,1413.209961,2552260000,0.11688500177378103,1394.9919963 +2006-12-14,1413.160034,1427.22998,1413.160034,1425.48999,2729700000,0.8689458282129969,1396.9146606666666 +2006-12-15,1425.47998,1431.630005,1425.47998,1427.089966,3229580000,0.1122404233789176,1398.9063273333334 +2006-12-18,1427.079956,1431.810059,1420.650024,1422.47998,2568140000,-0.3230340139606769,1400.8456583666666 +2006-12-19,1422.420044,1428.300049,1414.880005,1425.550049,2717060000,0.2158251112961196,1402.3713257000002 +2006-12-20,1425.51001,1429.050049,1423.51001,1423.530029,2387630000,-0.14170109295124078,1403.7276611333334 +2006-12-21,1423.199951,1426.400024,1415.900024,1418.300049,2322410000,-0.3673951299554945,1404.8136637333332 +2006-12-22,1418.099976,1418.819946,1410.280029,1410.76001,1647590000,-0.5316250962069891,1405.8946655333336 +2006-12-26,1410.75,1417.910034,1410.449951,1416.900024,1310310000,0.43522739207784156,1407.0946655333332 +2006-12-27,1416.630005,1427.719971,1416.630005,1426.839966,1667370000,0.7015274071305866,1408.5086629333334 +2006-12-28,1426.77002,1427.26001,1422.050049,1424.72998,1508570000,-0.14787825196087567,1409.5589965666666 +2006-12-29,1424.709961,1427.0,1416.839966,1418.300049,1678200000,-0.45130874553507283,1410.2833333333333 +2007-01-03,1418.030029,1429.420044,1407.859985,1416.599976,3429160000,-0.11986694925369967,1410.8446655333332 +2007-01-04,1416.599976,1421.839966,1408.430054,1418.339966,3004460000,0.12282860577996768,1411.4159993666665 +2007-01-05,1418.339966,1418.339966,1405.75,1409.709961,2919400000,-0.6084581416921031,1411.7229980666666 +2007-01-08,1409.26001,1414.97998,1403.969971,1412.839966,2763340000,0.22203184247771013,1412.0573283 +2007-01-09,1412.839966,1415.609985,1405.420044,1412.109985,3038380000,-0.05166763522882478,1412.2579956 +2007-01-10,1408.699951,1415.98999,1405.319946,1414.849976,2764660000,0.1940352401091472,1412.7213297666667 +2007-01-11,1414.839966,1427.119995,1414.839966,1423.819946,2857870000,0.6339873592364542,1414.1166626000002 +2007-01-12,1423.819946,1431.22998,1422.579956,1430.72998,2686480000,0.48531656122761113,1415.5836629000003 +2007-01-16,1430.72998,1433.930054,1428.619995,1431.900024,2599530000,0.08177951230181613,1416.6643310333334 +2007-01-17,1431.77002,1435.27002,1428.569946,1430.619995,2690270000,-0.08939374108146714,1417.6639973666668 +2007-01-18,1430.589966,1432.959961,1424.209961,1426.369995,2822430000,-0.2970739969281655,1418.6526651666668 +2007-01-19,1426.349976,1431.569946,1425.189941,1430.5,2777480000,0.2895465422349863,1419.365332 +2007-01-22,1430.469971,1431.390015,1420.400024,1422.949951,2540120000,-0.5277909122684332,1419.6383300333334 +2007-01-23,1422.949951,1431.329956,1421.660034,1427.98999,2975070000,0.3541965053976748,1420.1413289 +2007-01-24,1427.959961,1440.140015,1427.959961,1440.130005,2783180000,0.8501470658068166,1421.2359944333332 +2007-01-25,1440.119995,1440.689941,1422.339966,1423.900024,2994330000,-1.1269802687015051,1421.7046630333332 +2007-01-26,1423.900024,1427.27002,1416.959961,1422.180054,2626620000,-0.12079289072335353,1422.0093302 +2007-01-29,1422.030029,1426.939941,1418.459961,1420.619995,2730480000,-0.10969490083988509,1422.3113280666666 +2007-01-30,1420.609985,1428.819946,1420.609985,1428.819946,2706250000,0.5772093190902883,1422.8316608999999 +2007-01-31,1428.650024,1441.609985,1424.780029,1438.23999,2976690000,0.6592883887414525,1423.2566609 +2007-02-01,1437.900024,1446.640015,1437.900024,1445.939941,2914890000,0.5353731681456031,1423.8849934 +2007-02-02,1445.939941,1449.329956,1444.48999,1448.390015,2569450000,0.16944507379093032,1424.7486612333335 +2007-02-05,1448.329956,1449.380005,1443.849976,1446.98999,2439430000,-0.09666077406643714,1425.4633259333334 +2007-02-06,1446.97998,1450.189941,1443.400024,1448.0,2608710000,0.06980075929896579,1426.2789916333334 +2007-02-07,1447.410034,1452.98999,1446.439941,1450.02002,2618820000,0.13950414364640729,1427.336324 +2007-02-08,1449.98999,1450.449951,1442.810059,1448.310059,2816180000,-0.11792671662561593,1428.5879922999998 +2007-02-09,1448.25,1452.449951,1433.439941,1438.060059,2951810000,-0.7077213844028152,1429.2933268000002 +2007-02-12,1438.0,1439.109985,1431.439941,1433.369995,2395680000,-0.32613825623258874,1429.5109944333335 +2007-02-13,1433.219971,1444.410034,1433.219971,1444.26001,2652150000,0.7597490555814268,1430.1619954333332 +2007-02-14,1443.910034,1457.650024,1443.910034,1455.300049,2699290000,0.7644079960366756,1431.3953287666666 +2007-02-15,1455.150024,1457.969971,1453.189941,1456.810059,2490920000,0.10375935883719656,1432.7356648666669 +2007-02-16,1456.77002,1456.77002,1451.569946,1455.540039,2399450000,-0.0871781459877985,1433.9756673000002 +2007-02-20,1455.530029,1460.530029,1449.199951,1459.680054,2337860000,0.28443154355577427,1435.6413370666667 +2007-02-21,1459.599976,1459.599976,1452.02002,1457.630005,2606980000,-0.14044509235994207,1437.134338366667 +2007-02-22,1457.290039,1461.569946,1450.51001,1456.380005,1950770000,-0.08575564414236014,1438.6100057 +2007-02-23,1456.219971,1456.219971,1448.359985,1451.189941,2579950000,-0.35636743035344365,1439.8213378666667 +2007-02-26,1451.040039,1456.949951,1445.47998,1449.369995,2822170000,-0.12541059916291175,1440.6730061666667 +2007-02-27,1449.25,1449.25,1389.420044,1399.040039,4065230000,-3.472540219103959,1439.6166747999998 +2007-02-28,1398.640015,1415.890015,1396.650024,1406.819946,3925250000,0.5560889455001661,1438.7806722 +2007-03-01,1406.800049,1409.459961,1380.869995,1403.170044,3874910000,-0.25944343555676097,1437.8656738333334 +2007-03-02,1403.160034,1403.400024,1386.869995,1387.170044,3312260000,-1.140275198178331,1436.5590088 +2007-03-05,1387.109985,1391.859985,1373.969971,1374.119995,3480520000,-0.9407677924163638,1434.6796753 +2007-03-06,1374.060059,1397.900024,1374.060059,1395.410034,3358160000,1.54935806752452,1433.7616780666665 +2007-03-07,1395.02002,1401.160034,1390.640015,1391.969971,3141350000,-0.24652703622454197,1432.5610107666666 +2007-03-08,1391.880005,1407.930054,1391.880005,1401.890015,3014850000,0.7126622130270155,1431.2863444333334 +2007-03-09,1401.890015,1410.150024,1397.300049,1402.839966,2623050000,0.06776216321078277,1430.5843424999998 +2007-03-12,1402.800049,1409.339966,1398.400024,1406.599976,2664000000,0.2680284345420558,1430.0650065666666 +2007-03-13,1406.22998,1406.22998,1377.709961,1377.949951,3485570000,-2.036828201964924,1428.6426717666666 +2007-03-14,1377.859985,1388.089966,1363.97998,1387.170044,3758350000,0.6691166825985695,1427.2543417000002 +2007-03-15,1387.109985,1395.72998,1385.160034,1392.280029,2821900000,0.36837480899349906,1425.722343 +2007-03-16,1392.280029,1397.51001,1383.630005,1386.949951,3393640000,-0.38283088811007504,1423.75601 +2007-03-19,1386.949951,1403.199951,1386.949951,1402.060059,2777180000,1.089448684799721,1422.2116781333332 +2007-03-20,1402.040039,1411.530029,1400.699951,1410.939941,2795940000,0.6333453365994668,1421.0100098333335 +2007-03-21,1410.920044,1437.77002,1409.75,1435.040039,3184770000,1.7080881545474602,1420.5780111333333 +2007-03-22,1435.040039,1437.660034,1429.880005,1434.540039,3129970000,-0.034842233415899315,1420.0620117666665 +2007-03-23,1434.540039,1438.890015,1433.209961,1436.109985,2619020000,0.10943898094990523,1419.6553426333335 +2007-03-26,1436.109985,1437.650024,1423.280029,1437.5,2754660000,0.09679028866302897,1419.636674 +2007-03-27,1437.48999,1437.48999,1425.540039,1428.609985,2673040000,-0.6184358260869494,1419.4780070000002 +2007-03-28,1428.349976,1428.349976,1414.069946,1417.22998,3000440000,-0.7965788507351079,1418.577006 +2007-03-29,1417.170044,1426.23999,1413.27002,1422.530029,2854710000,0.373972402136169,1417.484672 +2007-03-30,1422.52002,1429.219971,1408.900024,1420.859985,2903960000,-0.11739956035753396,1416.2863361999998 +2007-04-02,1420.829956,1425.48999,1416.369995,1424.550049,2875880000,0.25970637775403205,1415.2533365333334 +2007-04-03,1424.27002,1440.569946,1424.27002,1437.77002,2921760000,0.9280102871275009,1414.5230020666665 +2007-04-04,1437.75,1440.160034,1435.079956,1439.369995,2616320000,0.11128170554008943,1413.9143350666666 +2007-04-05,1438.939941,1444.880005,1436.670044,1443.76001,2357230000,0.3049955894071532,1413.4936685666664 +2007-04-09,1443.77002,1448.099976,1443.280029,1444.609985,2349410000,0.05887231909131874,1413.2743367 +2007-04-10,1444.579956,1448.72998,1443.98999,1448.390015,2510110000,0.2616643965672072,1413.2416707 +2007-04-11,1448.22998,1448.390015,1436.150024,1438.869995,2950190000,-0.6572829073252073,1414.5693359 +2007-04-12,1438.869995,1448.02002,1433.910034,1447.800049,2770570000,0.6206296629321262,1415.9353393333333 +2007-04-13,1447.800049,1453.109985,1444.150024,1452.849976,2690020000,0.34880002963724177,1417.5913370666667 +2007-04-16,1452.839966,1468.619995,1452.839966,1468.329956,2870140000,1.065490605067132,1420.2966674666668 +2007-04-17,1468.469971,1474.349976,1467.150024,1471.47998,2920570000,0.21453107233344593,1423.5420003 +2007-04-18,1471.469971,1476.569946,1466.410034,1472.5,2971330000,0.06931932570362065,1426.1116658333333 +2007-04-19,1472.47998,1474.22998,1464.469971,1470.72998,2913610000,-0.1202050933786003,1428.7369994666667 +2007-04-20,1470.689941,1484.73999,1470.689941,1484.349976,3329940000,0.9260704674014963,1431.4856648333334 +2007-04-23,1484.329956,1487.319946,1480.189941,1480.930054,2575020000,-0.23039862938630806,1434.0886677666665 +2007-04-24,1480.930054,1483.819946,1473.73999,1480.410034,3119750000,-0.03511442006294274,1436.5490030333333 +2007-04-25,1480.280029,1496.589966,1480.280029,1495.420044,3252590000,1.013908961387111,1440.4646728 +2007-04-26,1495.27002,1498.02002,1491.170044,1494.25,3211800000,-0.07824182942407498,1444.0340046666668 +2007-04-27,1494.209961,1497.319946,1488.670044,1494.069946,2732810000,-0.012049790864976373,1447.4270019 +2007-04-30,1494.069946,1497.160034,1482.290039,1482.369995,3093420000,-0.783092587554135,1450.6076700333333 +2007-05-01,1482.369995,1487.27002,1476.699951,1486.300049,3400350000,0.2651196403904432,1453.4156696999999 +2007-05-02,1486.130005,1499.099976,1486.130005,1495.920044,3189800000,0.647244478426301,1456.2483398000002 +2007-05-03,1495.560059,1503.339966,1495.560059,1502.390015,3007970000,0.4325078085523737,1458.493339 +2007-05-04,1502.349976,1510.339966,1501.800049,1505.619995,2761930000,0.21498944799629438,1460.8626708666668 +2007-05-07,1505.569946,1511.0,1505.540039,1509.47998,2545090000,0.25637179453106285,1463.3083373666666 +2007-05-08,1509.359985,1509.359985,1500.660034,1507.719971,2795720000,-0.1165970415851425,1465.6490030666669 +2007-05-09,1507.319946,1513.800049,1503.77002,1512.579956,2935550000,0.3223400295465195,1468.4480020999997 +2007-05-10,1512.329956,1512.329956,1491.420044,1491.469971,3031240000,-1.3956277098782333,1470.9226684666667 +2007-05-11,1491.469971,1506.23999,1491.469971,1505.849976,2720780000,0.9641498172677565,1473.7000000333333 +2007-05-14,1505.76001,1510.900024,1498.339966,1503.150024,2776130000,-0.17929754245319396,1476.4430013333335 +2007-05-15,1503.109985,1514.829956,1500.430054,1501.189941,3071020000,-0.13039836135477767,1478.9976644 +2007-05-16,1500.75,1514.150024,1500.75,1514.140015,2915350000,0.8626539284811274,1481.5433309 +2007-05-17,1514.01001,1517.140015,1509.290039,1512.75,2868640000,-0.09180227629080884,1483.9893310666666 +2007-05-18,1512.73999,1522.75,1512.73999,1522.75,2959050000,0.6610477607007059,1486.6223307333335 +2007-05-21,1522.75,1529.869995,1522.709961,1525.099976,3465360000,0.1543244787391318,1489.3053304333334 +2007-05-22,1525.099976,1529.23999,1522.050049,1524.119995,2860500000,-0.06425683662851789,1491.8296631 +2007-05-23,1524.089966,1532.430054,1521.900024,1522.280029,3084260000,-0.12072317179986358,1494.6099975666666 +2007-05-24,1522.099976,1529.310059,1505.180054,1507.51001,3365530000,-0.9702563732444602,1496.6003296000001 +2007-05-25,1507.5,1517.410034,1507.5,1515.72998,2316250000,0.5452680211390559,1498.6963297333334 +2007-05-29,1515.550049,1521.800049,1512.02002,1518.109985,2571790000,0.15702038169094212,1500.3556640333334 +2007-05-30,1517.599976,1530.22998,1510.060059,1530.22998,2980210000,0.7983607986083996,1502.3139973666666 +2007-05-31,1530.189941,1535.560059,1528.26001,1530.619995,3335530000,0.025487345372754433,1504.2513305333334 +2007-06-01,1530.619995,1540.560059,1530.619995,1536.339966,2927020000,0.37370287979283656,1506.4383300666666 +2007-06-04,1536.280029,1540.530029,1532.310059,1539.180054,2738930000,0.18486064691751736,1508.2659993333334 +2007-06-05,1539.119995,1539.119995,1525.619995,1530.949951,2939450000,-0.5347069680776806,1509.9333292333333 +2007-06-06,1530.569946,1530.569946,1514.130005,1517.380005,2964190000,-0.886374240460075,1511.1656616 +2007-06-07,1517.359985,1517.359985,1490.369995,1490.719971,3538470000,-1.75697807484948,1511.0089925 +2007-06-08,1490.709961,1507.76001,1487.410034,1507.670044,2993460000,1.1370393722323069,1511.4563272999999 +2007-06-11,1507.640015,1515.530029,1503.349976,1509.119995,2525280000,0.09617163952884145,1511.9579956000002 +2007-06-12,1509.119995,1511.329956,1492.969971,1493.0,3056200000,-1.0681718520335393,1512.3123291000002 +2007-06-13,1492.650024,1515.699951,1492.650024,1515.670044,3077930000,1.5184222371064982,1513.2913289333335 +2007-06-14,1515.579956,1526.449951,1515.579956,1522.969971,2813630000,0.4816303541062883,1514.1929931666666 +2007-06-15,1522.969971,1538.709961,1522.969971,1532.910034,3406030000,0.6526762306070522,1515.2103271333333 +2007-06-18,1532.900024,1535.439941,1529.310059,1531.050049,2480240000,-0.12133686640086738,1516.0579956 +2007-06-19,1531.02002,1535.849976,1525.670044,1533.699951,2873590000,0.17307742498233747,1516.8653279666667 +2007-06-20,1533.680054,1537.319946,1512.359985,1512.839966,3286900000,-1.3601086044502386,1517.0359944666668 +2007-06-21,1512.5,1522.900024,1504.75,1522.189941,3161110000,0.6180412475961905,1517.3563273 +2007-06-22,1522.189941,1522.189941,1500.73999,1502.560059,4284320000,-1.2895816396674142,1517.7259969 +2007-06-25,1502.560059,1514.290039,1492.680054,1497.73999,3287250000,-0.32079043836742427,1517.4556640333333 +2007-06-26,1497.680054,1506.119995,1490.540039,1492.890015,3398530000,-0.3238195569579494,1517.1136637333334 +2007-06-27,1492.619995,1506.800049,1484.180054,1506.339966,3398150000,0.9009338172845993,1517.2853312333332 +2007-06-28,1506.319946,1514.839966,1503.410034,1505.709961,3006710000,-0.0418235600342598,1517.0043294333334 +2007-06-29,1505.699951,1517.530029,1493.609985,1503.349976,3165410000,-0.15673569685576982,1516.6909953 +2007-07-02,1504.660034,1519.449951,1504.660034,1519.430054,2648990000,1.0696164071379188,1516.5803304333335 +2007-07-03,1519.119995,1526.01001,1519.119995,1524.869995,1560790000,0.35802510195708237,1516.5726644 +2007-07-05,1524.859985,1526.569946,1517.719971,1525.400024,2622950000,0.034758963173109336,1516.615332033333 +2007-07-06,1524.959961,1532.400024,1520.469971,1530.439941,2441520000,0.33039969324137886,1516.8873291000002 +2007-07-09,1530.430054,1534.26001,1527.449951,1531.849976,2715330000,0.09213265821319538,1517.6986613 +2007-07-10,1531.849976,1531.849976,1510.01001,1510.119995,3244280000,-1.4185449841988884,1517.5116618 +2007-07-11,1509.930054,1519.339966,1506.099976,1518.76001,3082920000,0.5721409575800029,1517.5333292999999 +2007-07-12,1518.73999,1547.920044,1518.73999,1547.699951,3489600000,1.9054979594834043,1518.1156616666667 +2007-07-13,1547.680054,1555.099976,1544.849976,1552.5,2801120000,0.31014079937772276,1518.8449951666666 +2007-07-16,1552.5,1555.900024,1546.689941,1549.52002,2704110000,-0.19194718196458016,1519.2843303000002 +2007-07-17,1549.52002,1555.319946,1547.73999,1549.369995,3007140000,-0.009682030439328582,1519.6239949999997 +2007-07-18,1549.199951,1549.199951,1533.670044,1546.170044,3609220000,-0.20653239770530574,1520.1313314333336 +2007-07-19,1546.130005,1555.199951,1546.130005,1553.079956,3251450000,0.44690504946816034,1521.3213298 +2007-07-20,1553.189941,1553.189941,1529.199951,1534.099976,3745780000,-1.2220864693201938,1522.7673299666667 +2007-07-23,1534.060059,1547.22998,1534.060059,1541.569946,3102700000,0.486928499893291,1523.8973267 +2007-07-24,1541.569946,1541.569946,1508.619995,1511.040039,4115830000,-1.9804425403607384,1523.9613281666666 +2007-07-25,1511.030029,1524.310059,1503.72998,1518.089966,4283200000,0.46656123054591436,1524.7976603666664 +2007-07-26,1518.089966,1518.089966,1465.300049,1482.660034,4472550000,-2.3338492970448876,1523.6973266999998 +2007-07-27,1482.439941,1488.530029,1458.949951,1458.949951,4784650000,-1.5991584352640587,1521.5633260333334 +2007-07-30,1458.930054,1477.880005,1454.319946,1473.910034,4128780000,1.025400699300616,1519.5966593666667 +2007-07-31,1473.900024,1488.300049,1454.25,1455.27002,4524520000,-1.264664299042284,1517.0706584 +2007-08-01,1455.180054,1468.380005,1439.589966,1465.810059,5256780000,0.7242668958438392,1514.807662 +2007-08-02,1465.459961,1476.430054,1460.579956,1472.199951,4368850000,0.4359290592097276,1513.4529948333334 +2007-08-03,1472.180054,1473.22998,1432.800049,1433.060059,4272110000,-2.6585989201680205,1510.4819987666667 +2007-08-06,1433.040039,1467.670044,1427.390015,1467.670044,5067200000,2.4151105728360767,1509.3189982666665 +2007-08-07,1467.619995,1488.300049,1455.800049,1476.709961,4909390000,0.6159366021645241,1508.6179972999998 +2007-08-08,1476.219971,1503.890015,1476.219971,1497.48999,5499560000,1.4071841830015197,1508.7713298 +2007-08-09,1497.209961,1497.209961,1453.089966,1453.089966,5889600000,-2.964962991171649,1506.9963298 +2007-08-10,1453.089966,1462.02002,1429.73999,1453.640015,5345780000,0.03785374704046163,1505.2606649333334 +2007-08-13,1453.420044,1466.290039,1451.540039,1452.920044,3696280000,-0.04952883744053782,1503.5796672000001 +2007-08-14,1452.869995,1456.73999,1426.199951,1426.540039,3814630000,-1.8156542824871336,1500.4833333666668 +2007-08-15,1426.150024,1440.780029,1404.359985,1406.699951,4290930000,-1.3907838166188236,1496.5443318999999 +2007-08-16,1406.640015,1415.969971,1370.599976,1411.27002,6509300000,0.32487873456958916,1492.7399984333335 +2007-08-17,1411.26001,1450.329956,1411.26001,1445.939941,3570040000,2.456646886043834,1489.9233317666665 +2007-08-20,1445.939941,1451.75,1430.540039,1445.550049,3321340000,-0.02696460544070467,1487.0466675333334 +2007-08-21,1445.550049,1455.319946,1439.76001,1447.119995,3012150000,0.10860544061315203,1484.9466675333335 +2007-08-22,1447.030029,1464.859985,1447.030029,1464.069946,3309120000,1.1712885633924364,1483.1236654 +2007-08-23,1464.050049,1472.060059,1453.880005,1462.5,3084390000,-0.10723162539394426,1480.2836670333334 +2007-08-24,1462.339966,1479.400024,1460.540039,1479.369995,2541400000,1.1535039316239226,1477.8460002 +2007-08-27,1479.359985,1479.359985,1465.97998,1466.790039,2406180000,-0.8503590070447542,1475.0883341666665 +2007-08-28,1466.719971,1466.719971,1432.01001,1432.359985,3078090000,-2.3473062322861837,1471.1880005 +2007-08-29,1432.01001,1463.76001,1432.01001,1463.76001,2824070000,2.19218809020274,1468.4409993666666 +2007-08-30,1463.670044,1468.430054,1451.25,1457.640015,2582960000,-0.41810098364417625,1465.259668 +2007-08-31,1457.609985,1481.469971,1457.609985,1473.98999,2731610000,1.1216744073810458,1463.2560018 +2007-09-04,1473.959961,1496.400024,1472.150024,1489.420044,2766600000,1.0468221700745683,1461.5176717333334 +2007-09-05,1488.76001,1488.76001,1466.339966,1472.290039,2991600000,-1.1501124259074347,1460.2260050666666 +2007-09-06,1472.030029,1481.48999,1467.410034,1478.550049,2459590000,0.42518864042928595,1458.9080078333334 +2007-09-07,1478.550049,1478.550049,1449.069946,1453.550049,3191080000,-1.6908457050140768,1457.9376750000001 +2007-09-10,1453.5,1462.25,1439.290039,1451.699951,2835720000,-0.1272813413802143,1457.6960083333333 +2007-09-11,1451.689941,1472.47998,1451.689941,1471.48999,3015330000,1.3632320498714323,1457.6153401999998 +2007-09-12,1471.099976,1479.5,1465.75,1471.560059,2885720000,0.004761772113703877,1458.1583415 +2007-09-13,1471.469971,1489.579956,1471.469971,1483.949951,2877080000,0.8419562575257444,1458.7630045666667 +2007-09-14,1483.949951,1485.98999,1473.180054,1484.25,2641740000,0.020219617231553855,1459.1646728666667 +2007-09-17,1484.23999,1484.23999,1471.819946,1476.650024,2598390000,-0.5120415024423064,1460.6176717 +2007-09-18,1476.630005,1519.890015,1476.630005,1519.780029,3708940000,2.9208007516343004,1462.3546712 +2007-09-19,1519.75,1538.73999,1519.75,1529.030029,3846750000,0.6086407127014581,1464.0986734666667 +2007-09-20,1528.689941,1529.140015,1516.420044,1518.75,2957700000,-0.6723235518613868,1464.8073404666668 +2007-09-21,1518.75,1530.890015,1518.75,1525.75,3679460000,0.46090534979423836,1467.2293416 +2007-09-24,1525.75,1530.180054,1516.150024,1517.72998,3131310000,-0.5256444371620428,1469.3656737666665 +2007-09-25,1516.339966,1518.27002,1507.130005,1517.209961,3187770000,-0.034262945771157405,1471.5086709999998 +2007-09-26,1518.619995,1529.390015,1518.619995,1525.420044,3237390000,0.5411303122864197,1474.8046711666668 +2007-09-27,1527.319946,1532.459961,1525.810059,1531.380005,2872180000,0.39070949824231427,1478.9606729666668 +2007-09-28,1531.23999,1533.73999,1521.98999,1526.75,2925350000,-0.30234200426301205,1482.8100056333335 +2007-10-01,1527.290039,1549.02002,1527.25,1547.040039,3281990000,1.328969313902073,1486.1800089 +2007-10-02,1546.959961,1548.01001,1540.369995,1546.630005,3101910000,-0.02650442067840819,1489.5493407666665 +2007-10-03,1545.800049,1545.839966,1536.339966,1539.589966,3065320000,-0.45518572491420883,1492.6316731333332 +2007-10-04,1539.910034,1544.02002,1537.630005,1542.839966,2690430000,0.21109516636068637,1495.2573404666666 +2007-10-05,1543.839966,1561.910034,1543.839966,1557.589966,2919030000,0.956029162132821,1498.4270060000001 +2007-10-08,1556.51001,1556.51001,1549.0,1552.579956,2040650000,-0.32165140437223627,1500.8673380333335 +2007-10-09,1553.180054,1565.26001,1551.819946,1565.150024,2932040000,0.809624518944907,1504.1460042 +2007-10-10,1564.97998,1565.420044,1555.459961,1562.469971,3044760000,-0.1712329782387667,1508.4830037333334 +2007-10-11,1564.719971,1576.089966,1546.719971,1554.410034,3911260000,-0.5158458818150247,1511.5046712 +2007-10-12,1555.410034,1563.030029,1554.089966,1561.800049,2788690000,0.4754224971761811,1514.9766723333335 +2007-10-15,1562.25,1564.73999,1540.810059,1548.709961,3139290000,-0.8381410929255262,1517.4673380333334 +2007-10-16,1547.810059,1547.810059,1536.290039,1538.530029,3234560000,-0.6573168802651019,1519.1043375333334 +2007-10-17,1544.439941,1550.660034,1526.01001,1541.23999,3638070000,0.17613962346652023,1521.4026692333334 +2007-10-18,1539.290039,1542.790039,1531.76001,1540.079956,3203210000,-0.07526627958829302,1523.4536661333332 +2007-10-19,1540.0,1540.0,1500.26001,1500.630005,4160970000,-2.561552135413936,1525.022998 +2007-10-22,1497.790039,1508.060059,1490.400024,1506.329956,3471830000,0.37983720044303393,1526.8439981666666 +2007-10-23,1509.300049,1520.01001,1503.609985,1519.589966,3309120000,0.880285886049248,1528.4473307 +2007-10-24,1516.609985,1517.22998,1489.560059,1515.880005,4003300000,-0.2441422411971872,1529.9246622333333 +2007-10-25,1516.150024,1523.23999,1500.459961,1514.400024,4183960000,-0.09763180430629737,1530.9396646666667 +2007-10-26,1522.170044,1535.530029,1520.180054,1535.280029,3612120000,1.3787641751912716,1532.6406656333334 +2007-10-29,1536.920044,1544.670044,1536.430054,1540.97998,3124480000,0.3712645831596362,1534.7849975 +2007-10-30,1539.420044,1539.420044,1529.550049,1531.02002,3212520000,-0.6463393508850168,1535.1596638666667 +2007-10-31,1532.150024,1552.76001,1529.400024,1549.380005,3953070000,1.1991995375736586,1535.8379964 +2007-11-01,1545.790039,1545.790039,1506.660034,1508.439941,4241470000,-2.642351383642638,1535.4943277666669 +2007-11-02,1511.069946,1513.150024,1492.530029,1509.650024,4285990000,0.08022082730041458,1534.9576619 +2007-11-05,1505.609985,1510.839966,1489.949951,1502.170044,3819330000,-0.49547775186866705,1534.4389973666664 +2007-11-06,1505.329956,1520.77002,1499.069946,1520.27002,3879160000,1.2049219109577791,1534.5409993333335 +2007-11-07,1515.459961,1515.459961,1475.040039,1475.619995,4353160000,-2.9369799057143764,1532.8809976999999 +2007-11-08,1475.27002,1482.5,1450.310059,1474.77002,5439720000,-0.057601211889246606,1530.9939981999999 +2007-11-09,1467.589966,1474.089966,1448.51001,1453.699951,4587050000,-1.4287020155183128,1528.5589965666666 +2007-11-12,1453.660034,1464.939941,1438.530029,1439.180054,4192520000,-0.9988235185680483,1524.963663733333 +2007-11-13,1441.349976,1481.369995,1441.349976,1481.050049,4141310000,2.9092951145083035,1522.7776652 +2007-11-14,1483.400024,1492.140015,1466.469971,1470.579956,4031470000,-0.7069371495628585,1520.4773315333334 +2007-11-15,1468.040039,1472.670044,1443.48999,1451.150024,3941010000,-1.3212428144913413,1517.4210001333333 +2007-11-16,1453.089966,1462.180054,1443.98999,1458.73999,4168870000,0.5230311046048097,1514.1260009333334 +2007-11-19,1456.699951,1456.699951,1430.420044,1433.27002,4119650000,-1.7460253489040345,1510.1490030666669 +2007-11-20,1434.51001,1452.640015,1419.280029,1439.699951,4875150000,0.44861965367839485,1505.9673339666665 +2007-11-21,1434.709961,1436.400024,1415.640015,1416.77002,4076230000,-1.592688183678359,1501.1106689333333 +2007-11-23,1417.619995,1440.859985,1417.619995,1440.699951,1612720000,1.6890483749790297,1497.3203328333332 +2007-11-26,1440.73999,1446.089966,1406.099976,1407.219971,3706470000,-2.323869031630177,1492.1676635666668 +2007-11-27,1409.589966,1429.48999,1407.430054,1428.22998,4320720000,1.4930152664810459,1488.1516642 +2007-11-28,1432.949951,1471.619995,1432.949951,1469.02002,4508020000,2.8559854204992963,1485.8346639000001 +2007-11-29,1467.410034,1473.810059,1458.359985,1469.719971,3524730000,0.047647478623202844,1483.4506632666667 +2007-11-30,1471.829956,1488.939941,1470.890015,1481.140015,4422200000,0.7770217609705421,1481.4859985666667 +2007-12-03,1479.630005,1481.160034,1470.079956,1472.420044,3323250000,-0.5887337396660586,1480.5456665333331 +2007-12-04,1471.339966,1471.339966,1460.660034,1462.790039,3343620000,-0.6540256660619082,1479.0943359666667 +2007-12-05,1465.219971,1486.089966,1465.219971,1485.01001,3663660000,1.5190130099046906,1477.941670766667 +2007-12-06,1484.589966,1508.02002,1482.189941,1507.339966,3568570000,1.503690604752217,1477.6570028 +2007-12-07,1508.599976,1510.630005,1502.660034,1504.660034,3177710000,-0.17779214115257735,1477.332336466667 +2007-12-10,1505.109985,1518.27002,1504.959961,1515.959961,2911760000,0.7509953574004413,1476.6883342 +2007-12-11,1516.680054,1523.569946,1475.98999,1477.650024,4080180000,-2.5271074425164186,1474.5773356666664 +2007-12-12,1487.579956,1511.959961,1468.22998,1486.589966,4482120000,0.6050107843398322,1473.0963338666666 +2007-12-13,1483.27002,1489.400024,1469.209961,1488.410034,3635170000,0.12243241523399728,1471.0640015 +2007-12-14,1486.189941,1486.670044,1467.780029,1467.949951,3401050000,-1.3746267851349359,1469.7143351666666 +2007-12-17,1465.050049,1465.050049,1445.430054,1445.900024,3569030000,-1.5020898352140044,1467.5893351666668 +2007-12-18,1445.920044,1460.160034,1435.650024,1454.97998,3723690000,0.6279795178978365,1466.0163330333335 +2007-12-19,1454.699951,1464.420044,1445.310059,1453.0,3401300000,-0.13608297208324016,1463.7739990333332 +2007-12-20,1456.420044,1461.530029,1447.219971,1460.119995,3526890000,0.4900203028217476,1463.2573323666666 +2007-12-21,1463.189941,1485.400024,1463.189941,1484.459961,4508590000,1.6669839522333252,1463.5803304 +2007-12-24,1484.550049,1497.630005,1484.550049,1496.449951,1267420000,0.8077004644788888,1465.0053304 +2007-12-26,1495.119995,1498.849976,1488.199951,1497.660034,2010500000,0.08086357978034364,1466.9546630666669 +2007-12-27,1495.050049,1495.050049,1475.859985,1476.27002,2365770000,-1.4282289381035929,1466.7953287666667 +2007-12-28,1479.829956,1488.01001,1471.699951,1478.48999,2420510000,0.15037696152633284,1467.0589965666666 +2007-12-31,1475.25,1475.829956,1465.130005,1468.359985,2440880000,-0.6851588491309291,1467.6326619333333 +2008-01-02,1467.969971,1471.77002,1442.069946,1447.160034,3452650000,-1.443784304705098,1467.2466634 +2008-01-03,1447.550049,1456.800049,1443.72998,1447.160034,3429500000,0.0,1467.7096638666665 +2008-01-04,1444.01001,1444.01001,1411.189941,1411.630005,4166000000,-2.455155488352856,1466.773999 +2008-01-07,1414.069946,1423.869995,1403.449951,1416.180054,4221260000,0.32232589162057845,1466.7543334666666 +2008-01-08,1415.709961,1430.280029,1388.300049,1390.189941,4705390000,-1.8352265961231962,1465.0706664666666 +2008-01-09,1390.25,1409.189941,1378.699951,1409.130005,5351030000,1.362408361721834,1465.1343342666664 +2008-01-10,1406.780029,1429.089966,1395.310059,1420.329956,5170490000,0.7948131797818059,1464.8710001333334 +2008-01-11,1419.910034,1419.910034,1394.829956,1401.02002,4495840000,-1.3595387408698811,1462.6043334666667 +2008-01-14,1402.910034,1417.890015,1402.910034,1416.25,3682090000,1.0870636952068802,1460.8220011 +2008-01-15,1411.880005,1411.880005,1380.599976,1380.949951,4601640000,-2.492501253309798,1457.4823322999998 +2008-01-16,1377.410034,1391.98999,1364.27002,1373.199951,5440620000,-0.5612078840647294,1454.1749958666667 +2008-01-17,1374.790039,1377.719971,1330.670044,1333.25,5303130000,-2.909259570749867,1449.8569945666668 +2008-01-18,1333.900024,1350.280029,1312.51001,1325.189941,6004840000,-0.6045422088880481,1444.5296589333334 +2008-01-22,1312.939941,1322.089966,1274.290039,1310.5,6544690000,-1.1085158848183618,1437.9683267333335 +2008-01-23,1310.410034,1339.089966,1270.050049,1338.599976,3241680000,2.144217932086989,1432.4329914666666 +2008-01-24,1340.130005,1355.150024,1334.310059,1352.069946,5735300000,1.006272989803203,1426.9699909666665 +2008-01-25,1357.319946,1368.560059,1327.5,1330.609985,4882250000,-1.5871931081293367,1422.0686563333334 +2008-01-28,1330.699951,1353.969971,1322.26001,1353.959961,4100930000,1.7548324650517255,1417.6476561666668 +2008-01-29,1355.939941,1364.930054,1350.189941,1362.300049,4232960000,0.6159774469135737,1413.44399 +2008-01-30,1362.219971,1385.859985,1352.949951,1355.810059,4742760000,-0.4763994543466432,1409.7059936 +2008-01-31,1351.97998,1385.619995,1334.079956,1378.550049,4970290000,1.6772253494543587,1407.460994433333 +2008-02-01,1378.599976,1396.02002,1375.930054,1395.420044,4650770000,1.2237491857649552,1405.4756632333333 +2008-02-04,1395.380005,1395.380005,1379.689941,1380.819946,3495780000,-1.046286963038623,1403.0696614333333 +2008-02-05,1380.280029,1380.280029,1336.640015,1336.640015,4315740000,-3.1995432227048703,1398.9536621 +2008-02-06,1339.47998,1351.959961,1324.339966,1326.449951,4008120000,-0.7623641283849958,1393.6866617666667 +2008-02-07,1324.01001,1347.160034,1316.75,1336.910034,4589160000,0.7885772842099348,1388.3686645333332 +2008-02-08,1336.880005,1341.219971,1321.060059,1331.290039,3768490000,-0.4203719664804373,1382.8229980333333 +2008-02-11,1331.920044,1341.400024,1320.319946,1339.130005,3593140000,0.5888999219050062,1378.2516642 +2008-02-12,1340.550049,1362.099976,1339.359985,1348.859985,4044640000,0.7265896487772316,1373.9306640333334 +2008-02-13,1353.119995,1369.22998,1350.780029,1367.209961,3856420000,1.3604062841259257,1370.5589965666668 +2008-02-14,1367.329956,1368.160034,1347.310059,1348.859985,3644760000,-1.3421476235134011,1367.2823282666666 +2008-02-15,1347.52002,1350.0,1338.130005,1349.98999,3583300000,0.083774818184712,1364.0433268000002 +2008-02-19,1355.859985,1367.280029,1345.050049,1348.780029,3613550000,-0.08962740531135438,1361.9483276 +2008-02-20,1348.390015,1363.709961,1336.550049,1360.030029,3870520000,0.834087083002033,1360.0766601 +2008-02-21,1362.209961,1367.939941,1339.339966,1342.530029,3696660000,-1.286736294555746,1358.4879963666667 +2008-02-22,1344.219971,1354.300049,1327.040039,1353.109985,3572660000,0.7880610318921955,1356.6206623666667 +2008-02-25,1352.75,1374.359985,1346.030029,1371.800049,3866350000,1.3812671702367219,1355.0029988 +2008-02-26,1371.76001,1387.339966,1363.290039,1381.290039,4096060000,0.6917910527061144,1354.3453327666668 +2008-02-27,1378.949951,1388.339966,1372.0,1380.02002,3904700000,-0.09194441168340894,1353.1376667666666 +2008-02-28,1378.160034,1378.160034,1363.160034,1367.680054,3938580000,-0.8941874625847834,1352.6953368666666 +2008-02-29,1364.069946,1364.069946,1325.420044,1330.630005,4426730000,-2.7089704855781993,1351.2763386666668 +2008-03-03,1330.449951,1335.130005,1320.040039,1331.339966,4117570000,0.05335525257450513,1351.2126708666667 +2008-03-04,1329.579956,1331.030029,1307.390015,1326.75,4757180000,-0.34476287929600113,1351.2646728333334 +2008-03-05,1327.689941,1344.189941,1320.219971,1333.699951,4277710000,0.5238327491991823,1352.0380045333332 +2008-03-06,1332.199951,1332.199951,1303.420044,1304.339966,4323460000,-2.2013935726687306,1350.8960041999999 +2008-03-07,1301.530029,1313.23999,1282.430054,1293.369995,4565410000,-0.8410361781400755,1348.9393391666667 +2008-03-10,1293.160034,1295.01001,1272.660034,1273.369995,4261240000,-1.546347918794888,1347.0313395 +2008-03-11,1274.400024,1320.650024,1274.400024,1320.650024,5109080000,3.7129843789039496,1345.9210082666666 +2008-03-12,1321.130005,1333.26001,1307.859985,1308.77002,4414280000,-0.8995573228415044,1344.1366739666666 +2008-03-13,1305.26001,1321.680054,1282.109985,1315.47998,5073360000,0.512692061818476,1342.792338 +2008-03-14,1316.050049,1321.469971,1274.859985,1288.140015,5153780000,-2.078326193911373,1339.7786702 +2008-03-17,1283.209961,1287.5,1256.97998,1276.599976,5683010000,-0.8958683734392014,1335.818001266667 +2008-03-18,1277.160034,1330.73999,1277.160034,1330.73999,5335630000,4.2409537065509095,1334.1486694 +2008-03-19,1330.969971,1341.51001,1298.420044,1298.420044,5358550000,-2.4287198282814115,1332.8746703666666 +2008-03-20,1299.670044,1330.670044,1295.219971,1329.51001,6145220000,2.3944459378663074,1332.9766723333335 +2008-03-24,1330.290039,1359.680054,1330.290039,1349.880005,4499000000,1.53214303365794,1333.4090047 +2008-03-25,1349.069946,1357.469971,1341.209961,1352.98999,4145120000,0.23038973749374136,1334.1323364000002 +2008-03-26,1352.449951,1352.449951,1336.410034,1341.130005,4055670000,-0.8765759604769885,1334.1990030666668 +2008-03-27,1340.339966,1345.619995,1325.660034,1325.76001,4037930000,-1.1460481044117676,1333.4290039 +2008-03-28,1327.02002,1334.869995,1312.949951,1315.219971,3686980000,-0.7950186248263713,1331.6960042333333 +2008-03-31,1315.920044,1328.52002,1312.810059,1322.699951,4188990000,0.5687246365573939,1330.8240031 +2008-04-01,1326.410034,1370.180054,1326.410034,1370.180054,4745120000,3.5896351976201,1331.4970052333333 +2008-04-02,1369.959961,1377.949951,1361.550049,1367.530029,4320440000,-0.1934070629815099,1332.1220052333333 +2008-04-03,1365.689941,1375.660034,1358.680054,1369.310059,3920100000,0.1301638693302687,1332.4313395666666 +2008-04-04,1369.849976,1380.910034,1362.829956,1370.400024,3703100000,0.07959957592045264,1333.3603393999997 +2008-04-07,1373.689941,1386.73999,1369.02002,1372.540039,3747780000,0.15615987759205474,1334.0080078666665 +2008-04-08,1370.160034,1370.160034,1360.619995,1365.540039,3602500000,-0.5100033369591195,1333.7993408666666 +2008-04-09,1365.5,1368.390015,1349.969971,1354.48999,3556670000,-0.8092072502020486,1332.9060059 +2008-04-10,1355.369995,1367.23999,1350.109985,1360.550049,3686150000,0.44740522593305077,1332.2570068666669 +2008-04-11,1357.97998,1357.97998,1331.209961,1332.829956,3723790000,-2.0374181030954452,1331.0953369333333 +2008-04-14,1332.199951,1335.640015,1326.160034,1328.319946,3565020000,-0.33837849904987394,1331.0183349666665 +2008-04-15,1331.719971,1337.719971,1324.349976,1334.430054,3581230000,0.4599876722772622,1331.1213378999998 +2008-04-16,1337.02002,1365.48999,1337.02002,1364.709961,4260370000,2.2691265764912094,1332.3866699333332 +2008-04-17,1363.369995,1368.599976,1357.25,1365.560059,3713880000,0.06229147762482068,1333.4486735333335 +2008-04-18,1369.0,1395.900024,1369.0,1390.329956,4222380000,1.813900226266063,1336.3150065333334 +2008-04-21,1387.719971,1390.22998,1379.25,1388.170044,3420570000,-0.15535247519331552,1339.4750081666668 +2008-04-22,1386.430054,1386.430054,1369.839966,1375.939941,3821900000,-0.8810234058040156,1342.8940063666666 +2008-04-23,1378.400024,1387.869995,1372.23999,1379.930054,4103610000,0.2899917998673729,1344.8700073666666 +2008-04-24,1380.52002,1397.719971,1371.089966,1388.819946,4461660000,0.6442277254728346,1347.5383382333334 +2008-04-25,1387.880005,1399.109985,1379.97998,1397.839966,3891150000,0.6494736791460065,1350.2836710999998 +2008-04-28,1397.959961,1402.900024,1394.400024,1396.369995,3607000000,-0.10516017825749069,1353.8913371 +2008-04-29,1395.609985,1397.0,1386.699951,1390.939941,3815320000,-0.3888692838891816,1357.7026692666666 +2008-04-30,1391.219971,1404.569946,1384.25,1385.589966,4508890000,-0.38463019446790536,1359.5310018000002 +2008-05-01,1385.969971,1410.069946,1383.069946,1409.339966,4448780000,1.7140713041220224,1363.2283325333335 +2008-05-02,1409.160034,1422.719971,1406.25,1413.900024,3953030000,0.32355983013399037,1366.041333 +2008-05-05,1415.339966,1415.339966,1404.369995,1407.48999,3410090000,-0.45335836276921837,1367.9616658333332 +2008-05-06,1405.599976,1421.569946,1397.099976,1418.26001,3924100000,0.7651933638263442,1370.1373331666664 +2008-05-07,1417.48999,1419.540039,1391.160034,1392.569946,4075860000,-1.811379000949187,1371.8519978666666 +2008-05-08,1394.290039,1402.349976,1389.390015,1397.680054,3827550000,0.3669552121728703,1374.2493326666665 +2008-05-09,1394.900024,1394.900024,1384.109985,1388.280029,3518620000,-0.6725448340697215,1376.6846679333332 +2008-05-12,1389.400024,1404.060059,1386.199951,1403.579956,3370630000,1.1020778719276647,1379.3806680999999 +2008-05-13,1404.400024,1406.300049,1396.26001,1403.040039,4018590000,-0.03846713524883194,1380.4760009333334 +2008-05-14,1405.650024,1420.189941,1405.650024,1408.660034,3979370000,0.4005584191314693,1381.8470011 +2008-05-15,1408.359985,1424.400024,1406.869995,1423.569946,3836480000,1.0584464413079253,1383.6556640000001 +2008-05-16,1423.890015,1425.819946,1414.349976,1425.349976,3842590000,0.1250398693089405,1385.4873290666667 +2008-05-19,1425.280029,1440.23999,1421.630005,1426.630005,3683970000,0.08980454074809519,1387.2903279333334 +2008-05-20,1424.48999,1424.48999,1409.089966,1413.400024,3854320000,-0.9273589475639832,1388.885660766667 +2008-05-21,1414.060059,1419.119995,1388.810059,1390.709961,4517990000,-1.6053532343791699,1390.0929931333335 +2008-05-22,1390.829956,1399.069946,1390.22998,1394.349976,3955960000,0.2617378966195405,1391.2196573666665 +2008-05-23,1392.199951,1392.199951,1373.719971,1375.930054,3516380000,-1.3210400772438513,1392.6563273 +2008-05-27,1375.969971,1387.400024,1373.069946,1385.349976,3588860000,0.6846221559457355,1394.5573283 +2008-05-28,1386.540039,1391.25,1378.160034,1390.839966,3927240000,0.3962890312996237,1396.4376587000002 +2008-05-29,1390.5,1406.319946,1388.589966,1398.26001,3894440000,0.5334937290693231,1397.5559936666666 +2008-05-30,1398.359985,1404.459961,1398.079956,1400.380005,3845630000,0.15161665104046484,1398.7166585333332 +2008-06-02,1399.619995,1399.619995,1377.790039,1385.670044,3714320000,-1.0504263805166225,1398.561328133333 +2008-06-03,1386.420044,1393.119995,1370.119995,1377.650024,4396380000,-0.5787828087016056,1398.2106608 +2008-06-04,1376.26001,1388.180054,1371.73999,1377.199951,4338640000,-0.03266961798419343,1398.2526611333335 +2008-06-05,1377.47998,1404.050049,1377.47998,1404.050049,4350790000,1.949615085340639,1399.0566609666666 +2008-06-06,1400.060059,1400.060059,1359.900024,1360.680054,4771660000,-3.0889208707972515,1398.1186645666667 +2008-06-09,1360.829956,1370.630005,1350.619995,1361.76001,4404570000,0.07936884183943338,1396.9159993666667 +2008-06-10,1358.97998,1366.839966,1351.560059,1358.439941,4635070000,-0.24380720359088448,1395.6516642333333 +2008-06-11,1357.089966,1357.089966,1335.469971,1335.48999,4779980000,-1.6894343509294751,1393.8033325333333 +2008-06-12,1335.780029,1353.030029,1331.290039,1339.869995,4734240000,0.32796988616889955,1392.2793335 +2008-06-13,1341.810059,1360.030029,1341.709961,1360.030029,4080420000,1.5046261260593496,1390.6356689333334 +2008-06-16,1358.849976,1364.699951,1352.069946,1360.140015,3706940000,0.008087027319603202,1388.8436686333334 +2008-06-17,1360.709961,1366.589966,1350.540039,1350.930054,3801960000,-0.6771333023387283,1386.9583374333333 +2008-06-18,1349.589966,1349.589966,1333.400024,1337.810059,4573570000,-0.9711824058657004,1384.2766724 +2008-06-19,1336.890015,1347.660034,1330.5,1342.829956,4811670000,0.3752324155607223,1382.6186727333334 +2008-06-20,1341.02002,1341.02002,1314.459961,1317.930054,5324900000,-1.8542855622741383,1379.9603394 +2008-06-23,1319.77002,1323.780029,1315.310059,1318.0,4186370000,0.005307261928488849,1377.6176717666667 +2008-06-24,1317.22998,1326.02002,1304.420044,1314.290039,4705050000,-0.2814841426403647,1374.6413412 +2008-06-25,1314.540039,1335.630005,1314.540039,1321.969971,4825640000,0.5843407293753433,1371.9390056 +2008-06-26,1316.290039,1316.290039,1283.150024,1283.150024,5231280000,-2.9365226027513125,1367.7553386 +2008-06-27,1283.599976,1289.449951,1272.0,1278.380005,6208260000,-0.3717428913830645,1362.9156738999998 +2008-06-30,1278.060059,1290.310059,1274.859985,1280.0,5032330000,0.12672249203398156,1358.0706747 +2008-07-01,1276.689941,1285.310059,1260.680054,1284.910034,5846290000,0.38359640625000857,1353.3466756666667 +2008-07-02,1285.819946,1292.170044,1261.51001,1261.52002,5276090000,-1.820362000535214,1348.2840088666667 +2008-07-03,1262.959961,1271.47998,1252.01001,1262.900024,3247590000,0.10939216010223962,1344.0236776333331 +2008-07-07,1262.900024,1273.949951,1240.680054,1252.310059,5265420000,-0.8385434158484251,1339.2890137333334 +2008-07-08,1251.839966,1274.170044,1242.839966,1273.699951,6034110000,1.70803483101305,1335.8813436333335 +2008-07-09,1273.380005,1277.359985,1244.569946,1244.689941,5181000000,-2.2776172659207394,1331.1926758 +2008-07-10,1245.25,1257.650024,1236.76001,1253.390015,5840430000,0.6989751996396842,1326.6110107666668 +2008-07-11,1248.660034,1257.27002,1225.349976,1239.48999,6742200000,-1.1089943938958124,1321.3186767666666 +2008-07-14,1241.609985,1253.5,1225.01001,1228.300049,5434860000,-0.9027859111633507,1315.5826782333336 +2008-07-15,1226.829956,1234.349976,1200.439941,1214.910034,7363640000,-1.0901257401154663,1309.8906779000001 +2008-07-16,1214.650024,1245.52002,1211.390015,1245.359985,6738630000,2.5063543923286247,1305.4810099333333 +2008-07-17,1246.310059,1262.310059,1241.48999,1260.319946,7365210000,1.201255956525693,1301.5850097666666 +2008-07-18,1258.219971,1262.22998,1251.810059,1260.680054,5653280000,0.0285727446544648,1296.8060099333334 +2008-07-21,1261.819946,1267.73999,1255.699951,1260.0,4630640000,-0.05394342504604355,1293.450008133333 +2008-07-22,1257.079956,1277.420044,1248.829956,1277.0,6180230000,1.3492063492063444,1290.6246744666666 +2008-07-23,1278.869995,1291.170044,1276.060059,1282.189941,6705830000,0.40641667971810236,1288.0830078000001 +2008-07-24,1283.219971,1283.219971,1251.47998,1252.540039,6127980000,-2.3124422561664804,1285.3180094333334 +2008-07-25,1253.51001,1263.22998,1251.75,1257.76001,4672560000,0.41675082931220686,1282.5810099333332 +2008-07-28,1257.76001,1260.089966,1234.369995,1234.369995,4282960000,-1.8596564379559144,1278.3923421333334 +2008-07-29,1236.380005,1263.199951,1236.380005,1263.199951,5414240000,2.335600842274199,1275.1610066666665 +2008-07-30,1264.52002,1284.329956,1264.52002,1284.26001,5631330000,1.6671991622013493,1272.938671866667 +2008-07-31,1281.369995,1284.930054,1265.969971,1267.380005,5346050000,-1.3143759728218907,1270.5910034 +2008-08-01,1269.420044,1270.52002,1254.540039,1260.310059,4684870000,-0.5578394776711071,1267.8403401666665 +2008-08-04,1253.27002,1260.48999,1247.449951,1249.01001,4562280000,-0.8966086495386771,1265.5430053666669 +2008-08-05,1254.869995,1284.880005,1254.670044,1284.880005,1219310000,2.871874101313243,1264.4390055333336 +2008-08-06,1283.98999,1291.670044,1276.0,1289.189941,4873420000,0.33543490312155644,1263.6023356 +2008-08-07,1286.51001,1286.51001,1264.290039,1266.069946,5319380000,-1.793373828379885,1261.7390014333334 +2008-08-08,1266.290039,1297.849976,1262.109985,1296.319946,4966810000,2.389283474864201,1262.1779988333333 +2008-08-11,1294.420044,1313.150024,1291.410034,1305.319946,5067310000,0.6942730479285508,1263.0759968666669 +2008-08-12,1304.790039,1304.790039,1285.640015,1289.589966,4711290000,-1.20506700661418,1263.3956624 +2008-08-13,1288.640015,1294.030029,1274.859985,1285.829956,4787600000,-0.2915663194606455,1263.4263264666668 +2008-08-14,1282.109985,1300.109985,1276.839966,1292.930054,4064000000,0.5521801671262372,1264.4733276 +2008-08-15,1293.849976,1302.050049,1290.73999,1298.199951,4041820000,0.40759335616775694,1265.6499918333334 +2008-08-18,1298.140015,1300.219971,1274.51001,1278.599976,3829290000,-1.509780907394298,1266.5263224 +2008-08-19,1276.650024,1276.650024,1263.109985,1266.689941,4159760000,-0.9314903193772484,1266.2926554 +2008-08-20,1267.339966,1276.01001,1261.160034,1274.540039,4555030000,0.6197331916761417,1267.2876586666669 +2008-08-21,1271.069946,1281.400024,1265.219971,1277.719971,4032590000,0.24949643814211608,1268.0986572 +2008-08-22,1277.589966,1293.089966,1277.589966,1292.199951,3741070000,1.1332670951888835,1269.8556559 +2008-08-25,1290.469971,1290.469971,1264.869995,1266.839966,3420600000,-1.9625434113640594,1271.1403198 +2008-08-26,1267.030029,1275.650024,1263.209961,1271.51001,3587570000,0.36863724900828565,1273.0269856666666 +2008-08-27,1271.290039,1285.050049,1270.030029,1281.660034,3499610000,0.7982653632431891,1274.2369873 +2008-08-28,1283.790039,1300.680054,1283.790039,1300.680054,3854280000,1.4840144418515777,1275.582324233333 +2008-08-29,1296.48999,1297.589966,1282.73999,1282.829956,3288120000,-1.3723665512594962,1276.3206543000001 +2008-09-02,1287.829956,1303.040039,1272.199951,1277.579956,4783560000,-0.4092514347240561,1276.9066528333335 +2008-09-03,1276.609985,1280.599976,1265.589966,1274.97998,5056980000,-0.20350788909840878,1276.8393188333332 +2008-09-04,1271.800049,1271.800049,1232.829956,1236.829956,5212500000,-2.9922057285950543,1275.3273193333332 +2008-09-05,1233.209961,1244.939941,1217.22998,1242.310059,5017080000,0.44307650970250023,1274.98632 +2008-09-08,1249.5,1274.420044,1247.119995,1267.790039,7351340000,2.0510161545749916,1275.3206543000001 +2008-09-09,1267.97998,1268.660034,1224.51001,1224.51001,7380630000,-3.4138167731731173,1274.9919881333333 +2008-09-10,1227.5,1243.900024,1221.599976,1232.040039,6543440000,0.6149422167647245,1273.9533244000002 +2008-09-11,1229.040039,1249.97998,1211.540039,1249.050049,6869250000,1.3806377602635589,1272.7796590333332 +2008-09-12,1245.880005,1255.089966,1233.810059,1251.699951,6273260000,0.21215338825866237,1272.2569905666667 +2008-09-15,1250.920044,1250.920044,1192.699951,1192.699951,8279510000,-4.713589702776943,1270.0033203 +2008-09-16,1188.310059,1214.839966,1169.280029,1213.599976,9459830000,1.7523288218865618,1268.8229858333332 +2008-09-17,1210.339966,1210.339966,1155.880005,1156.390015,9431870000,-4.714070709572926,1264.5399861666665 +2008-09-18,1157.079956,1211.140015,1133.5,1206.51001,10082690000,4.3341774271546285,1261.7839884666669 +2008-09-19,1213.109985,1265.119995,1213.109985,1255.079956,9387170000,4.025656281127743,1261.4176554666667 +2008-09-22,1255.369995,1255.369995,1205.609985,1207.089966,5368130000,-3.823659980432359,1258.4433228000003 +2008-09-23,1207.609985,1221.150024,1187.060059,1188.219971,5185730000,-1.5632633466857948,1254.5399903 +2008-09-24,1188.790039,1197.410034,1179.790039,1185.869995,4820360000,-0.1977728078431662,1251.0826579333334 +2008-09-25,1187.869995,1220.030029,1187.869995,1209.180054,5877640000,1.9656504590117363,1248.5276612 +2008-09-26,1204.469971,1215.77002,1187.540039,1213.27002,5383610000,0.3382429263921738,1245.8723267333335 +2008-09-29,1209.069946,1209.069946,1106.420044,1106.420044,7305060000,-8.806776252494885,1239.4796631666666 +2008-09-30,1113.780029,1168.030029,1113.780029,1166.359985,4937680000,5.417467021231959,1235.7383301333332 +2008-10-01,1164.170044,1167.030029,1140.77002,1161.060059,5782130000,-0.4543988192461934,1232.2173340666666 +2008-10-02,1160.640015,1160.640015,1111.430054,1114.280029,6285640000,-4.029079257130819,1226.8753337333333 +2008-10-03,1115.160034,1153.819946,1098.140015,1099.22998,6716120000,-1.3506523143474558,1220.9256673666666 +2008-10-06,1097.560059,1097.560059,1007.969971,1056.890015,7956020000,-3.851784046137474,1213.0820028333333 +2008-10-07,1057.599976,1072.910034,996.22998,996.22998,7069210000,-5.739484160042895,1204.0616699666666 +2008-10-08,988.909973,1021.059998,970.969971,984.940002,8716330000,-1.1332702515136073,1194.5093363666667 +2008-10-09,988.419983,1005.25,909.190002,909.919983,6819000000,-7.616709530292798,1182.1180013333333 +2008-10-10,902.309998,936.359985,839.799988,899.219971,11456230000,-1.1759288948377744,1168.7359985666667 +2008-10-13,912.75,1006.929993,912.75,1003.349976,7263370000,11.580036960722694,1159.4199992333333 +2008-10-14,1009.969971,1044.310059,972.070007,998.01001,8161990000,-0.5322136968885505,1150.1010010333334 +2008-10-15,994.599976,994.599976,903.98999,907.840027,6542330000,-9.034977815503076,1137.8630026 +2008-10-16,909.530029,947.710022,865.830017,946.429993,7984500000,4.250745159091784,1128.1830038333333 +2008-10-17,942.289978,984.640015,918.73999,940.549988,6581780000,-0.6212826139798788,1118.1243347999998 +2008-10-20,943.51001,985.400024,943.51001,985.400024,5175640000,4.768490412228887,1108.7113342999999 +2008-10-21,980.400024,985.440002,952.469971,955.049988,5121830000,-3.0799711042020506,1099.7293335666666 +2008-10-22,951.669983,951.669983,875.809998,896.780029,6147980000,-6.101247027082312,1088.5539999 +2008-10-23,899.080017,922.830017,858.440002,908.109985,7189900000,1.263404138541535,1077.1893311 +2008-10-24,895.219971,896.299988,852.849976,876.77002,6550050000,-3.451119965386129,1064.6916667333332 +2008-10-27,874.280029,893.780029,846.75,848.919983,5558050000,-3.1764358229310896,1053.2323344666665 +2008-10-28,848.919983,940.51001,845.27002,940.51001,7096950000,10.789005893857006,1044.1293356 +2008-10-29,939.51001,969.969971,922.26001,930.090027,7077800000,-1.1079077191320952,1036.5860026666667 +2008-10-30,939.380005,963.22998,928.5,954.090027,6175830000,2.580395370694588,1028.1720032333333 +2008-10-31,953.109985,984.380005,944.590027,968.75,6394350000,1.536539800766623,1018.6276713666666 +2008-11-03,968.669983,975.570007,958.820007,966.299988,4492280000,-0.2529044645161349,1010.6013387666667 +2008-11-04,971.309998,1007.51001,971.309998,1005.75,5531290000,4.082584341292583,1004.5190064 +2008-11-05,1001.840027,1001.840027,949.859985,952.77002,5426640000,-5.267708675118065,996.7490072333334 +2008-11-06,952.400024,952.400024,899.72998,904.880005,6102230000,-5.026398185786752,986.6056722666667 +2008-11-07,907.440002,931.460022,906.900024,930.98999,4931640000,2.885463802462973,977.1963379333334 +2008-11-10,936.75,951.950012,907.469971,919.210022,4572000000,-1.2653162898131787,970.9560038666666 +2008-11-11,917.150024,917.150024,884.900024,898.950012,4998340000,-2.204067570533952,962.0423380999999 +2008-11-12,893.390015,893.390015,850.47998,852.299988,5764180000,-5.189390219397428,951.7503357333334 +2008-11-13,853.130005,913.01001,818.690002,911.289978,7849120000,6.921270776786637,944.9840007 +2008-11-14,904.359985,916.880005,869.880005,873.289978,5881030000,-4.169913081168552,937.4526672999999 +2008-11-17,873.22998,882.289978,848.97998,850.75,4927490000,-2.5810416434207673,930.5813334666667 +2008-11-18,852.340027,865.900024,826.840027,859.119995,6679470000,0.9838372024684183,926.0110006333333 +2008-11-19,859.030029,864.570007,806.179993,806.580017,6548600000,-6.115557582849651,920.0656677999999 +2008-11-20,805.869995,820.52002,747.780029,752.440002,9093740000,-6.712293121439917,914.8163351 +2008-11-21,755.840027,801.200012,741.02002,800.030029,9495900000,6.324760362753801,911.5100037 +2008-11-24,801.200012,865.599976,801.200012,851.809998,7879440000,6.472253180886534,906.4586711 +2008-11-25,853.400024,868.940002,834.98999,857.390015,6952700000,0.6550776597012975,901.7713379333333 +2008-11-26,852.900024,887.679993,841.369995,887.679993,5793260000,3.532812077360159,901.0993368 +2008-11-28,886.890015,896.25,881.210022,896.23999,2740860000,0.9643111332351628,899.4263367 +2008-12-01,888.609985,888.609985,815.690002,816.210022,6052010000,-8.929524334213212,895.2816711666668 +2008-12-02,817.940002,850.539978,817.940002,848.809998,6170100000,3.994067105439192,890.7286702999999 +2008-12-03,843.599976,873.119995,827.599976,870.73999,6221880000,2.583616127481103,887.9183370333334 +2008-12-04,869.75,875.599976,833.599976,845.219971,5860390000,-2.93084265028416,886.1996684333333 +2008-12-05,844.429993,879.419983,818.409973,876.070007,6165370000,3.649941678909996,885.1316691666667 +2008-12-08,882.710022,918.570007,882.710022,909.700012,6553600000,3.838734887770223,886.2293355666666 +2008-12-09,906.47998,916.26001,885.380005,888.669983,5693110000,-2.3117542841144867,887.5543355666667 +2008-12-10,892.169983,908.27002,885.450012,899.23999,5942130000,1.1894187046036508,886.1786682333333 +2008-12-11,898.349976,904.630005,868.72998,873.590027,5513840000,-2.8524046178151075,884.2953349 +2008-12-12,871.789978,883.23999,851.349976,879.72998,5959590000,0.7028414714262743,881.8166666666667 +2008-12-15,881.070007,884.630005,857.719971,868.570007,4982390000,-1.2685679985579124,878.4773335666667 +2008-12-16,871.530029,914.659973,871.530029,913.179993,6009780000,5.136026531019722,876.7066670666666 +2008-12-17,908.159973,918.849976,895.940002,904.419983,5907380000,-0.9592862378884792,873.3289998333333 +2008-12-18,905.97998,911.02002,877.440002,885.280029,5675000000,-2.1162683664409876,871.0793334666666 +2008-12-19,886.960022,905.469971,883.02002,887.880005,6705310000,0.29368967048051253,870.5126667999999 +2008-12-22,887.200012,887.369995,857.090027,871.630005,4869850000,-1.8302022692807451,868.5340006333333 +2008-12-23,874.309998,880.440002,860.099976,863.159973,4051970000,-0.9717462629111662,866.6656656666667 +2008-12-24,863.869995,869.789978,861.440002,868.150024,1546550000,0.578114272683039,865.6389994000001 +2008-12-26,869.51001,873.73999,866.52002,872.799988,1880050000,0.5356175628004056,866.3223327333333 +2008-12-29,872.369995,873.700012,857.070007,869.419983,3323430000,-0.3872599732437143,864.9266662333333 +2008-12-30,870.580017,891.119995,870.580017,890.640015,3627800000,2.4407113265074276,865.5050008000001 +2008-12-31,890.590027,910.320007,889.669983,903.25,4172940000,1.415834095439794,867.2550008000001 +2009-01-02,902.98999,934.72998,899.349976,931.799988,4048270000,3.1608068641018505,869.6776672333333 +2009-01-05,929.169983,936.630005,919.530029,927.450012,5413910000,-0.4668358076862278,873.7066670666667 +2009-01-06,931.169983,943.849976,927.280029,934.700012,5392620000,0.7817132897939949,879.7820007333333 +2009-01-07,927.450012,927.450012,902.369995,906.650024,4704940000,-3.0009615534272616,883.3360005666667 +2009-01-08,905.72998,910.0,896.809998,909.72998,4991550000,0.33970726503835813,885.2666666333333 +2009-01-09,909.909973,911.929993,888.309998,890.349976,4716500000,-2.13030288393925,886.365332 +2009-01-12,890.400024,890.400024,864.320007,870.26001,4725050000,-2.256412258273599,885.7846659 +2009-01-13,869.789978,877.02002,862.02002,871.789978,5567460000,0.17580584910479313,884.9696655000001 +2009-01-14,867.280029,867.280029,836.929993,842.619995,5407880000,-3.345987420837271,885.8499979333333 +2009-01-15,841.98999,851.590027,817.039978,843.73999,7807350000,0.13291816081340002,885.6809976666667 +2009-01-16,844.450012,858.130005,830.659973,850.119995,6786040000,0.756157711571781,884.9936645 +2009-01-20,849.640015,849.640015,804.469971,805.219971,6375230000,-5.281610156693239,883.6603311666667 +2009-01-21,806.77002,841.719971,804.299988,840.23999,6467830000,4.349124495323786,882.4659972666667 +2009-01-22,839.73999,839.73999,811.289978,827.5,5843830000,-1.5162322850165721,879.7259968666668 +2009-01-23,822.159973,838.609985,806.070007,831.950012,5832160000,0.5377658006042285,877.8353311666666 +2009-01-26,832.5,852.530029,827.690002,836.570007,6039940000,0.5553212252372708,875.7463317333334 +2009-01-27,837.299988,850.450012,835.400024,845.710022,5353260000,1.09255829440702,874.8169982333334 +2009-01-28,845.72998,877.859985,845.72998,874.090027,6199180000,3.355760752708692,874.6289998 +2009-01-29,868.890015,868.890015,844.150024,845.140015,5067060000,-3.312017195684125,873.8480000666666 +2009-01-30,845.690002,851.659973,821.669983,825.880005,5350580000,-2.2789135123367665,870.9380004666667 +2009-02-02,823.090027,830.780029,812.869995,825.440002,5673270000,-0.053276867987617216,868.3053344333332 +2009-02-03,825.690002,842.599976,821.97998,838.51001,5886310000,1.5833989106818214,866.7463338 +2009-02-04,837.77002,851.849976,829.179993,832.22998,6420450000,-0.7489511067375387,864.8913329666667 +2009-02-05,831.75,850.549988,819.909973,845.849976,6624030000,1.6365663731556568,864.0319986666667 +2009-02-06,846.090027,870.75,845.419983,868.599976,6484100000,2.689602251640899,864.2133321 +2009-02-09,868.23999,875.01001,861.650024,869.890015,5574370000,0.1485193455727174,864.2713318 +2009-02-10,866.869995,868.049988,822.98999,827.159973,6770170000,-4.912120068420367,862.7499979666667 +2009-02-11,827.409973,838.219971,822.299988,833.73999,5926460000,0.7954950934261351,861.5606648666667 +2009-02-12,829.909973,835.47998,808.059998,835.190002,6476460000,0.17391657080045864,859.7123310999999 +2009-02-13,833.950012,839.429993,825.210022,826.840027,5296650000,-0.9997695111297666,857.165332 +2009-02-17,818.609985,818.609985,789.169983,789.169983,5907820000,-4.555904742139427,852.4109985 +2009-02-18,791.059998,796.169983,780.429993,788.419983,5740710000,-0.09503655944298472,847.7766642 +2009-02-19,787.909973,797.580017,777.030029,778.940002,5746940000,-1.2024024256625077,842.5846638666667 +2009-02-20,775.869995,778.690002,754.25,770.049988,8210590000,-1.1412963741975202,838.0313293333332 +2009-02-23,773.25,777.849976,742.369995,743.330017,6509300000,-3.4699008397361286,832.4846639 +2009-02-24,744.690002,775.48999,744.690002,773.140015,7234490000,4.010331524120314,828.5776652000001 +2009-02-25,770.640015,780.119995,752.890015,764.900024,7483640000,-1.0657825025393253,825.0656656666666 +2009-02-26,765.76001,779.419983,751.75,752.830017,7599970000,-1.577984915843067,821.1003336333332 +2009-02-27,749.929993,751.27002,734.52002,735.090027,8926480000,-2.3564403118107924,817.5160013666667 +2009-03-02,729.570007,729.570007,699.700012,700.820007,7868290000,-4.6620167246535065,812.7520019333333 +2009-03-03,704.440002,711.669983,692.299988,696.330017,7583230000,-0.6406766295414923,807.6256693333332 +2009-03-04,698.599976,724.119995,698.599976,712.869995,7673620000,2.3753073393646407,804.5473368 +2009-03-05,708.27002,708.27002,677.929993,682.549988,7507250000,-4.253230913443062,799.2910033999999 +2009-03-06,684.039978,699.090027,666.789978,683.380005,7331830000,0.12160530577871587,794.4870035666665 +2009-03-09,680.76001,695.27002,672.880005,676.530029,7277320000,-1.0023670505255655,789.3063374666667 +2009-03-10,679.280029,719.599976,679.280029,719.599976,8618330000,6.366302330092122,785.4073364333333 +2009-03-11,719.590027,731.919983,713.849976,721.359985,7287810000,0.24458158125342244,781.2623351999999 +2009-03-12,720.890015,752.630005,714.76001,750.73999,7326630000,4.072863148903383,777.1506673 +2009-03-13,751.969971,758.289978,742.460022,756.549988,6787090000,0.7739028261968484,774.1976664 +2009-03-16,758.840027,774.530029,753.369995,753.890015,7883540000,-0.35159249781127055,771.7980000666666 +2009-03-17,753.880005,778.119995,749.929993,778.119995,6156800000,3.213994020069366,770.2206665 +2009-03-18,776.01001,803.039978,765.640015,794.349976,9098450000,2.085794106858785,768.7486653666667 +2009-03-19,797.919983,803.23999,781.820007,784.039978,9033870000,-1.297916322968451,767.1423319666667 +2009-03-20,784.580017,788.909973,766.200012,768.539978,7643720000,-1.9769400075157928,764.5653320333332 +2009-03-23,772.309998,823.369995,772.309998,822.919983,7715770000,7.075754880249052,763.0426656000001 +2009-03-24,820.599976,823.650024,805.47998,806.119995,6767980000,-2.0415093018831154,760.9169982666666 +2009-03-25,806.809998,826.780029,791.369995,813.880005,7687180000,0.9626370823365926,760.4743326666666 +2009-03-26,814.059998,832.97998,814.059998,832.859985,6992960000,2.3320366495549916,760.4449991666667 +2009-03-27,828.679993,828.679993,813.429993,815.940002,5600210000,-2.031551918057395,759.8033325 +2009-03-30,809.070007,809.070007,779.809998,787.530029,5912660000,-3.481870349579952,758.4929992333333 +2009-03-31,790.880005,810.47998,790.880005,797.869995,6089100000,1.3129614896246755,758.7829996333332 +2009-04-01,793.590027,813.619995,783.320007,811.080017,6034140000,1.65566095764762,759.5383340999999 +2009-04-02,814.530029,845.609985,814.530029,834.380005,7542810000,2.8727113862552445,761.3863342 +2009-04-03,835.130005,842.5,826.700012,842.5,5855640000,0.9731770837437592,763.8013346 +2009-04-06,839.75,839.75,822.789978,835.47998,6210000000,-0.8332367952522346,766.8730000333333 +2009-04-07,834.119995,834.119995,814.530029,815.549988,5155580000,-2.3854541673158924,768.2866658 +2009-04-08,816.76001,828.419983,814.840027,825.159973,5938460000,1.1783440796274025,770.2953307666667 +2009-04-09,829.289978,856.909973,829.289978,856.559998,7600710000,3.805325758330258,773.7529968 +2009-04-13,855.330017,864.309998,845.349976,858.72998,6434890000,0.2533368363064836,777.8743285666666 +2009-04-14,856.880005,856.880005,840.25,841.5,7569840000,-2.006449105223973,782.5636616666667 +2009-04-15,839.440002,852.929993,835.580017,852.059998,6241100000,1.2549017231134885,787.7546610333334 +2009-04-16,854.539978,870.349976,847.039978,865.299988,6598670000,1.5538800120974638,792.8356607999999 +2009-04-17,865.179993,875.630005,860.869995,869.599976,7352010000,0.49693609842047515,799.0706604000001 +2009-04-20,868.27002,868.27002,832.390015,832.390015,6973960000,-4.278974474120734,804.0376607333334 +2009-04-21,831.25,850.090027,826.830017,850.080017,7436490000,2.12520593486456,809.8226603333334 +2009-04-22,847.26001,861.780029,840.570007,843.549988,7327860000,-0.7681663925056093,813.9543274 +2009-04-23,844.619995,852.869995,835.450012,851.919983,6563100000,0.9922346178730557,818.3063273333333 +2009-04-24,853.909973,871.799988,853.909973,866.22998,7114440000,1.6797348677757062,822.1559936666667 +2009-04-27,862.820007,868.830017,854.650024,857.51001,5613460000,-1.0066576084101775,825.5213277333332 +2009-04-28,854.47998,864.47998,847.119995,855.159973,6328000000,-0.27405359384666816,828.8969930000001 +2009-04-29,856.849976,882.059998,856.849976,873.640015,6101620000,2.1610040908685013,832.0809936666667 +2009-04-30,876.590027,888.700012,868.51001,872.809998,6862540000,-0.09500675172255946,834.6963277333333 +2009-05-01,872.73999,880.47998,866.099976,877.52002,5312170000,0.5396388688022391,837.8123291333334 +2009-05-04,879.210022,907.849976,879.210022,907.23999,7038840000,3.38681389855926,842.4356628666667 +2009-05-05,906.099976,907.700012,897.340027,903.799988,6882860000,-0.379172218808399,845.1316630333332 +2009-05-06,903.950012,920.280029,903.950012,919.530029,8555040000,1.7404338580274459,848.9119975 +2009-05-07,919.580017,929.580017,901.359985,907.390015,9120100000,-1.3202411685458992,852.0289978333333 +2009-05-08,909.030029,930.169983,909.030029,929.22998,8163280000,2.4068994190992843,855.241331 +2009-05-11,922.98999,922.98999,908.679993,909.23999,6150600000,-2.1512424728267976,858.3513306 +2009-05-12,910.52002,915.570007,896.460022,908.349976,6871750000,-0.09788548785674145,862.3786621666666 +2009-05-13,905.400024,905.400024,882.799988,883.919983,7091820000,-2.6894912363601975,865.2469951 +2009-05-14,884.23999,898.359985,882.52002,893.070007,6134870000,1.0351642881683887,867.9799947666667 +2009-05-15,892.76001,896.969971,878.940002,882.880005,5439720000,-1.1410081986999332,869.5966614333335 +2009-05-18,886.070007,910.0,886.070007,909.710022,5702150000,3.0389199945693557,871.8369955 +2009-05-19,909.669983,916.390015,905.219971,908.130005,6616270000,-0.17368358727392064,874.2586630000001 +2009-05-20,908.619995,924.599976,901.369995,903.469971,8205060000,-0.5131461326398967,877.1893290999999 +2009-05-21,900.419983,900.419983,879.609985,888.330017,6019840000,-1.675756194004152,879.2949972333333 +2009-05-22,888.679993,896.650024,883.75,887.0,5155320000,-0.14972104674472186,880.3096639666667 +2009-05-26,887.0,911.76001,881.460022,910.330017,5667050000,2.6302161217587328,882.0296652 +2009-05-27,909.950012,913.840027,891.869995,893.059998,5698800000,-1.8971162850274337,883.7483318 +2009-05-28,892.960022,909.450012,887.599976,906.830017,5738980000,1.5418918136337778,885.5739990999999 +2009-05-29,907.02002,920.02002,903.559998,919.140015,6050420000,1.3574757969221363,887.3686666666667 +2009-06-01,923.26001,947.77002,923.26001,942.869995,6370440000,2.5817589934869822,889.8110006333334 +2009-06-02,942.869995,949.380005,938.460022,944.73999,5987340000,0.19833009958070136,893.5559998 +2009-06-03,942.51001,942.51001,923.849976,931.76001,5323770000,-1.3739208816597293,896.2786662333333 +2009-06-04,932.48999,942.469971,929.320007,942.460022,5352890000,1.1483656612393256,899.5756673666667 +2009-06-05,945.669983,951.690002,934.130005,940.090027,5277910000,-0.251469021993167,902.5146688333333 +2009-06-08,938.119995,946.330017,926.440002,939.140015,4483430000,-0.10105542796062794,904.9450033333334 +2009-06-09,940.349976,946.919983,936.150024,942.429993,4439950000,0.3503181578308201,907.7756694333333 +2009-06-10,942.72998,949.77002,927.969971,939.150024,5379420000,-0.3480331721573249,910.5753378 +2009-06-11,939.039978,956.22998,939.039978,944.890015,5500840000,0.6111899966261269,912.9503378 +2009-06-12,943.440002,946.299988,935.659973,946.210022,4528120000,0.13969953952788217,915.3970052666666 +2009-06-15,942.450012,942.450012,919.650024,923.719971,4697880000,-2.3768561394501897,916.9370036333332 +2009-06-16,925.599976,928.0,911.599976,911.969971,4951200000,-1.272030525363621,917.0946696666667 +2009-06-17,911.890015,918.440002,903.780029,910.710022,5523650000,-0.13815685165800007,917.3250041333334 +2009-06-18,910.859985,921.929993,907.940002,918.369995,4684010000,0.8410990123044915,917.2863363333332 +2009-06-19,919.960022,927.090027,915.799988,921.22998,5713390000,0.31141969092749466,917.7476684999999 +2009-06-22,918.130005,918.130005,893.039978,893.039978,4903940000,-3.0600395788248136,916.5413351 +2009-06-23,893.460022,898.690002,888.859985,895.099976,5071020000,0.23067253994757397,916.0700013000001 +2009-06-24,896.309998,910.849976,896.309998,900.940002,4636720000,0.6524439902342305,915.8230021666666 +2009-06-25,899.450012,921.419983,896.27002,920.26001,4911240000,2.1444278150721807,917.0343364 +2009-06-26,918.840027,922.0,913.030029,918.900024,6076660000,-0.14778279890701462,917.8953369666667 +2009-06-29,919.859985,927.98999,916.179993,927.22998,4211760000,0.9065138516091586,919.3736694666666 +2009-06-30,927.150024,930.01001,912.859985,919.320007,4627570000,-0.8530756307081333,919.6940023 +2009-07-01,920.820007,931.919983,920.820007,923.330017,3919400000,0.4361930524155344,920.2006693666666 +2009-07-02,921.23999,921.23999,896.419983,896.419983,3931000000,-2.914454583360526,919.9656697666667 +2009-07-06,894.27002,898.719971,886.359985,898.719971,4712580000,0.25657482470469173,920.3120015666667 +2009-07-07,898.599976,898.599976,879.929993,881.030029,4673300000,-1.9683486036608855,920.1130025333333 +2009-07-08,881.900024,886.799988,869.320007,879.559998,5721780000,-0.16685367712933052,919.0873352333333 +2009-07-09,881.280029,887.859985,878.450012,882.679993,4347170000,0.3547222482939816,918.7413350666667 +2009-07-10,880.030029,883.570007,872.809998,879.130005,3912080000,-0.4021829007287758,917.8180013333333 +2009-07-13,879.570007,901.049988,875.320007,901.049988,4499440000,2.493372183332543,917.2150004333332 +2009-07-14,900.77002,905.840027,896.5,905.840027,4149030000,0.5316063552291972,915.9806681666666 +2009-07-15,910.150024,933.950012,910.150024,932.679993,5238830000,2.9629918307860326,915.5786682666666 +2009-07-16,930.169983,943.960022,927.450012,940.73999,4898640000,0.864176036849984,915.8780009333333 +2009-07-17,940.559998,941.890015,934.650024,940.380005,5141380000,-0.03826615258484267,915.8086670333333 +2009-07-20,942.070007,951.619995,940.98999,951.130005,4853150000,1.1431548887515852,916.1766663 +2009-07-21,951.969971,956.530029,943.219971,954.580017,5309300000,0.3627277009308649,916.6913330333333 +2009-07-22,953.400024,959.830017,947.75,954.070007,4634100000,-0.05342768452274438,917.0793335000001 +2009-07-23,954.070007,979.419983,953.27002,976.289978,5761650000,2.328966515766373,918.3173319666665 +2009-07-24,972.159973,979.789978,965.950012,979.26001,4458300000,0.30421617213405305,919.4629984666666 +2009-07-27,978.630005,982.48999,972.289978,982.179993,4631290000,0.29818260422991294,920.6619975 +2009-07-28,981.47998,982.349976,969.349976,979.619995,5490350000,-0.26064448657527883,922.5253316333333 +2009-07-29,977.659973,977.76001,968.650024,975.150024,5178770000,-0.45629642339016785,924.6313334 +2009-07-30,976.01001,996.679993,976.01001,986.75,6035180000,1.1895580899867753,927.1659993333334 +2009-07-31,986.799988,993.179993,982.849976,987.47998,5139070000,0.07397821129970783,929.4696655000001 +2009-08-03,990.219971,1003.609985,990.219971,1002.630005,5603440000,1.534210850532891,932.1829996666668 +2009-08-04,1001.409973,1007.119995,996.679993,1005.650024,5713700000,0.3012097169384109,935.9366678666667 +2009-08-05,1005.409973,1006.640015,994.309998,1002.719971,7242120000,-0.29135911401321213,939.5240010333333 +2009-08-06,1004.059998,1008.0,992.48999,997.080017,6753380000,-0.5624655101239662,942.7286682 +2009-08-07,999.830017,1018.0,999.830017,1010.47998,6827090000,1.343920525086606,945.7360005333334 +2009-08-10,1008.890015,1010.119995,1000.98999,1007.099976,5406080000,-0.33449490013646166,948.6759989333333 +2009-08-11,1005.77002,1005.77002,992.400024,994.349976,5773160000,-1.2660113498006886,950.9133321333334 +2009-08-12,994.0,1012.780029,993.359985,1005.809998,5498170000,1.1525139313725896,953.7963318333334 +2009-08-13,1005.859985,1013.140015,1000.820007,1012.72998,5250660000,0.6880009160537215,956.7763306 +2009-08-14,1012.22998,1012.599976,994.599976,1004.090027,4940750000,-0.8531349096626895,960.3653320666667 +2009-08-17,998.179993,998.179993,978.51001,979.72998,4088570000,-2.4260819592823224,963.0656657 +2009-08-18,980.619995,991.200012,980.619995,989.669983,4198970000,1.0145655642792573,966.6869975000001 +2009-08-19,986.880005,999.609985,980.619995,996.460022,4257000000,0.6860912341119185,970.5836649666667 +2009-08-20,996.409973,1008.919983,996.390015,1007.369995,4893160000,1.0948731267816036,974.7399983666667 +2009-08-21,1009.059998,1027.589966,1009.059998,1026.130005,5885550000,1.8622760349339185,979.6399983666666 +2009-08-24,1026.589966,1035.819946,1022.47998,1025.569946,6302450000,-0.05457973134699312,983.7906636333333 +2009-08-25,1026.630005,1037.75,1026.209961,1028.0,5768740000,0.23694668603324587,987.8626627333332 +2009-08-26,1027.349976,1032.469971,1021.570007,1028.119995,5080060000,0.011672665369655277,991.0439961333334 +2009-08-27,1027.810059,1033.329956,1016.200012,1030.97998,5785880000,0.27817618701211355,994.0519958 +2009-08-28,1031.619995,1039.469971,1023.130005,1028.930054,5785780000,-0.19883276491946544,997.0036641 +2009-08-31,1025.209961,1025.209961,1014.619995,1020.619995,5004560000,-0.8076408078172337,999.3199971 +2009-09-01,1019.52002,1028.449951,996.280029,998.039978,6862360000,-2.2123823862572833,1000.7686624666668 +2009-09-02,996.070007,1000.340027,991.969971,994.75,5842730000,-0.32964390931442544,1002.1246622333333 +2009-09-03,996.119995,1003.429993,992.25,1003.23999,4624280000,0.8534797687861362,1003.0229959666667 +2009-09-04,1003.840027,1016.47998,1001.650024,1016.400024,4097370000,1.3117533323208086,1004.2609964333333 +2009-09-08,1018.669983,1026.069946,1018.669983,1025.390015,5235160000,0.8844933872217187,1005.7013304999999 +2009-09-09,1025.359985,1036.339966,1023.969971,1033.369995,5202550000,0.7782385124942115,1007.4929971666667 +2009-09-10,1032.98999,1044.140015,1028.040039,1044.140015,5191380000,1.042223022935751,1009.7926635333333 +2009-09-11,1043.920044,1048.180054,1038.400024,1042.72998,4922600000,-0.135042712638489,1011.6586628666666 +2009-09-14,1040.150024,1049.73999,1035.0,1049.339966,4979610000,0.6339115712391763,1013.7206623999999 +2009-09-15,1049.030029,1056.040039,1043.420044,1052.630005,6185620000,0.3135341363715849,1015.3873290666667 +2009-09-16,1053.98999,1068.76001,1052.869995,1068.76001,6793530000,1.5323527662504777,1017.4909952666668 +2009-09-17,1067.869995,1074.77002,1061.199951,1065.48999,6668110000,-0.3059639179426199,1019.5833292333333 +2009-09-18,1066.599976,1071.52002,1064.27002,1068.300049,5607970000,0.26373396525292137,1021.9573303 +2009-09-21,1067.140015,1067.280029,1057.459961,1064.660034,4615280000,-0.3407296483237343,1023.7633321 +2009-09-22,1066.349976,1073.810059,1066.349976,1071.660034,5246600000,0.657486876228508,1025.9153340333332 +2009-09-23,1072.689941,1080.150024,1060.390015,1060.869995,5531930000,-1.0068527945122585,1028.132668 +2009-09-24,1062.560059,1066.290039,1045.849976,1050.780029,5505610000,-0.9511029671453786,1029.6316690333333 +2009-09-25,1049.47998,1053.469971,1041.170044,1044.380005,4507090000,-0.6090736237241545,1030.6866698666665 +2009-09-28,1045.380005,1065.130005,1045.380005,1062.97998,3726950000,1.7809585506187497,1032.6496683 +2009-09-29,1063.689941,1069.619995,1057.829956,1060.609985,4949900000,-0.22295763274864377,1035.3456684666667 +2009-09-30,1061.02002,1063.400024,1046.469971,1057.079956,5998860000,-0.33283007419546706,1037.5926675666667 +2009-10-01,1054.910034,1054.910034,1029.449951,1029.849976,5791450000,-2.5759621914541397,1038.7056660333335 +2009-10-02,1029.709961,1030.599976,1019.950012,1025.209961,5583240000,-0.45055251814658526,1039.3003315666667 +2009-10-05,1026.869995,1042.579956,1025.920044,1040.459961,4313310000,1.4875001785122244,1039.7779967666668 +2009-10-06,1042.02002,1060.550049,1042.02002,1054.719971,5029840000,1.3705486548751367,1040.7496642666667 +2009-10-07,1053.650024,1058.02002,1050.099976,1057.579956,4238220000,0.2711605998404032,1041.7356628 +2009-10-08,1060.030029,1070.670044,1060.030029,1065.47998,4988400000,0.7469907079063365,1042.9809956333334 +2009-10-09,1065.280029,1071.51001,1063.0,1071.48999,3763780000,0.5640659714694962,1044.3313293 +2009-10-12,1071.630005,1079.459961,1071.630005,1076.189941,3710430000,0.43863694890888816,1045.9066588666667 +2009-10-13,1074.959961,1075.300049,1066.709961,1073.189941,4320480000,-0.278761200575095,1047.6589904 +2009-10-14,1078.680054,1093.170044,1078.680054,1092.02002,5406420000,1.7545895913312348,1050.7916584666666 +2009-10-15,1090.359985,1096.560059,1086.410034,1096.560059,5369780000,0.41574686515362114,1054.1853271 +2009-10-16,1094.670044,1094.670044,1081.530029,1087.680054,4894740000,-0.8098056214174032,1056.9999959000002 +2009-10-19,1088.219971,1100.170044,1086.47998,1097.910034,4619240000,0.9405320951118679,1059.7169962333332 +2009-10-20,1098.640015,1098.640015,1086.160034,1091.060059,5396930000,-0.6239104104954429,1061.9059977000002 +2009-10-21,1090.359985,1101.359985,1080.77002,1081.400024,5616290000,-0.8853806827878619,1063.5069986666667 +2009-10-22,1080.959961,1095.209961,1074.310059,1092.910034,5192410000,1.0643619146063488,1065.1326659666668 +2009-10-23,1095.619995,1095.829956,1075.48999,1079.599976,4767460000,-1.217854863248513,1066.3616658333333 +2009-10-26,1080.359985,1091.75,1065.22998,1066.949951,6363380000,-1.1717326121911564,1066.9486653333333 +2009-10-27,1067.540039,1072.47998,1060.619995,1063.410034,5337380000,-0.3317791051662966,1067.3079996333333 +2009-10-28,1061.51001,1063.26001,1042.189941,1042.630005,6600350000,-1.9540937489404997,1066.4369994666665 +2009-10-29,1043.689941,1066.829956,1043.689941,1066.109985,5595040000,2.2519954238224837,1066.4576659666666 +2009-10-30,1065.410034,1065.410034,1033.380005,1036.189941,6512420000,-2.8064687903659347,1065.3873290333333 +2009-11-02,1036.180054,1052.180054,1029.380005,1042.880005,6202640000,0.6456407011192766,1064.6613280666666 +2009-11-03,1040.920044,1046.359985,1033.939941,1045.410034,5487500000,0.24260020212008016,1063.7863280666668 +2009-11-04,1047.140015,1061.0,1045.150024,1046.5,5635510000,0.10426205647076081,1063.3073282333332 +2009-11-05,1047.300049,1066.650024,1047.300049,1066.630005,4848350000,1.9235551839464904,1063.8356607666667 +2009-11-06,1064.949951,1071.47998,1059.319946,1069.300049,4277130000,0.2503252287563429,1064.6663289 +2009-11-09,1072.310059,1093.189941,1072.310059,1093.079956,4460030000,2.2238759852521106,1065.6696614333334 +2009-11-10,1091.859985,1096.420044,1087.400024,1093.01001,4394770000,-0.006398982948696563,1066.7496622666667 +2009-11-11,1096.040039,1105.369995,1093.810059,1098.51001,4286700000,0.5031975873670103,1068.1306640666667 +2009-11-12,1098.310059,1101.969971,1084.900024,1087.23999,4160250000,-1.0259369416214859,1070.0436645333332 +2009-11-13,1087.589966,1097.790039,1085.329956,1093.47998,3792610000,0.5739294044914578,1072.3193318333333 +2009-11-16,1094.130005,1113.689941,1094.130005,1109.300049,4565850000,1.446763478925317,1074.6140014333334 +2009-11-17,1109.219971,1110.52002,1102.189941,1110.319946,3824070000,0.09194058910566572,1076.4673339333333 +2009-11-18,1109.439941,1111.099976,1102.699951,1109.800049,4293340000,-0.046824071014228696,1078.2080037 +2009-11-19,1106.439941,1106.439941,1088.400024,1094.900024,4178030000,-1.3425864427944245,1079.1886718333333 +2009-11-20,1094.660034,1094.660034,1086.810059,1091.380005,3751230000,-0.3214922753531746,1079.8516723333332 +2009-11-23,1094.859985,1112.380005,1094.859985,1106.23999,3827920000,1.3615775377889605,1080.8533406333333 +2009-11-24,1105.829956,1107.560059,1097.630005,1105.650024,3700820000,-0.053330742454904545,1081.9353434 +2009-11-25,1106.48999,1111.180054,1104.75,1110.630005,3036350000,0.45041205552398544,1082.5556762333333 +2009-11-27,1105.469971,1105.469971,1083.73999,1091.48999,2362910000,-1.723347551734833,1082.3866739333332 +2009-11-30,1091.069946,1097.23999,1086.25,1095.630005,3895520000,0.3792994015455742,1082.6516723 +2009-12-01,1098.890015,1112.280029,1098.890015,1108.859985,4249310000,1.2075226070501932,1083.0166706666666 +2009-12-02,1109.030029,1115.579956,1105.290039,1109.23999,3941340000,0.03426988124204389,1083.6226683666666 +2009-12-03,1110.589966,1117.280029,1098.73999,1099.920044,4810030000,-0.8402100613051355,1084.2400023666667 +2009-12-04,1100.430054,1119.130005,1096.52002,1105.97998,5781140000,0.5509433192945945,1084.6756672333333 +2009-12-07,1105.52002,1110.719971,1100.829956,1103.25,4103360000,-0.24683810280182739,1085.4640013666667 +2009-12-08,1103.040039,1103.040039,1088.609985,1091.939941,4748030000,-1.0251583050079227,1086.2970010333333 +2009-12-09,1091.069946,1097.040039,1085.890015,1095.949951,4115410000,0.36723723067841885,1087.3816649333332 +2009-12-10,1098.689941,1106.25,1098.689941,1102.349976,3996490000,0.58397055396191,1089.3723306333334 +2009-12-11,1103.959961,1108.5,1101.339966,1106.410034,3791090000,0.3683093471578136,1090.7156656 +2009-12-14,1107.839966,1114.76001,1107.839966,1114.109985,4548490000,0.6959400912302405,1093.3130004000002 +2009-12-15,1114.109985,1114.109985,1105.349976,1107.930054,5045100000,-0.5546966711729162,1095.4813353666666 +2009-12-16,1108.609985,1116.209961,1107.959961,1109.180054,4829820000,0.11282300678523427,1097.6070026999998 +2009-12-17,1106.359985,1106.359985,1095.880005,1096.079956,7615070000,-1.1810614473959813,1099.2596679 +2009-12-18,1097.859985,1103.73999,1093.880005,1102.469971,6325890000,0.5829880352268724,1100.4543334333332 +2009-12-21,1105.310059,1117.680054,1105.310059,1114.050049,3977340000,1.0503758201682478,1101.9460001 +2009-12-22,1114.51001,1120.27002,1114.51001,1118.02002,3641130000,0.3563548157969665,1102.7773355666666 +2009-12-23,1118.839966,1121.579956,1116.0,1120.589966,3166870000,0.22986583013067108,1103.6966674333335 +2009-12-24,1121.079956,1126.47998,1121.079956,1126.47998,1267710000,0.5256172354482835,1104.6289997666668 +2009-12-28,1127.530029,1130.380005,1123.51001,1127.780029,2716400000,0.11540808741226094,1105.9803344 +2009-12-29,1128.550049,1130.380005,1126.079956,1126.199951,2491020000,-0.14010515875165774,1107.0710001 +2009-12-30,1125.530029,1126.420044,1121.939941,1126.420044,2277300000,0.019542977231035152,1107.6416666 +2009-12-31,1126.599976,1127.640015,1114.810059,1115.099976,2076990000,-1.0049597448391956,1107.8010009333334 +2010-01-04,1116.560059,1133.869995,1116.560059,1132.98999,3991400000,1.604341707922341,1108.5739989666665 +2010-01-05,1132.660034,1136.630005,1129.660034,1136.52002,2491020000,0.3115676247060106,1109.9613321666666 +2010-01-06,1135.709961,1139.189941,1133.949951,1137.140015,4972660000,0.05455205267743679,1111.4866658333333 +2010-01-07,1136.27002,1142.459961,1131.319946,1141.689941,5270680000,0.4001201206520033,1112.6683308666666 +2010-01-08,1140.52002,1145.390015,1136.219971,1144.97998,4389590000,0.28817272377106296,1113.9793294 +2010-01-11,1145.959961,1149.73999,1142.02002,1146.97998,4255780000,0.1746755432352698,1115.1909952333333 +2010-01-12,1143.810059,1143.810059,1131.77002,1136.219971,4716160000,-0.9381165484684484,1116.6819946 +2010-01-13,1137.310059,1148.400024,1133.180054,1145.680054,4170360000,0.8325925649479649,1118.3503295666667 +2010-01-14,1145.680054,1150.410034,1143.800049,1148.459961,3915200000,0.24264252400085784,1119.6703287666667 +2010-01-15,1147.719971,1147.77002,1131.390015,1136.030029,4758730000,-1.0823130472199405,1120.5633300666666 +2010-01-19,1136.030029,1150.449951,1135.77002,1150.22998,4724830000,1.2499626451335732,1122.2403279333334 +2010-01-20,1147.949951,1147.949951,1129.25,1138.040039,4810560000,-1.0597829314099472,1123.3089965666666 +2010-01-21,1138.680054,1141.579956,1114.839966,1116.47998,6874290000,-1.894490374780211,1123.7499959000002 +2010-01-22,1115.48999,1115.48999,1090.180054,1091.76001,6208650000,-2.2140988143826923,1123.7439982 +2010-01-25,1092.400024,1102.969971,1092.400024,1096.780029,4481390000,0.45980975251145306,1123.7716674666667 +2010-01-26,1095.800049,1103.689941,1089.859985,1092.170044,4731910000,-0.4203199254278256,1123.4323364000002 +2010-01-27,1091.939941,1099.51001,1083.109985,1097.5,5319120000,0.4880152160628315,1123.1353352666667 +2010-01-28,1096.930054,1100.219971,1078.459961,1084.530029,5452400000,-1.181774123006829,1122.1493367333335 +2010-01-29,1087.609985,1096.449951,1071.589966,1073.869995,5412850000,-0.9829173665047541,1121.0140014333333 +2010-02-01,1073.890015,1089.380005,1073.890015,1089.189941,4077610000,1.4266108627050356,1120.3476643333333 +2010-02-02,1090.050049,1104.72998,1087.959961,1103.319946,4749540000,1.2972948489615277,1120.5889973333333 +2010-02-03,1100.670044,1102.719971,1093.969971,1097.280029,4285450000,-0.5474311437853818,1120.4159992666669 +2010-02-04,1097.25,1097.25,1062.780029,1063.109985,5859690000,-3.114067794630382,1118.7179971333333 +2010-02-05,1064.119995,1067.130005,1044.5,1066.189941,6438900000,0.28971188714779217,1116.9903278333334 +2010-02-08,1065.51001,1071.199951,1056.51001,1056.73999,4089820000,-0.88632903356195,1114.8619953 +2010-02-09,1060.060059,1079.280029,1060.060059,1070.52002,5114260000,1.3040132984841302,1112.9966633 +2010-02-10,1069.680054,1073.670044,1059.339966,1068.130005,4251450000,-0.22325738476146606,1111.0083291666667 +2010-02-11,1067.099976,1080.040039,1060.589966,1078.469971,4400870000,0.9680437729113311,1109.4173298333333 +2010-02-12,1075.949951,1077.810059,1062.969971,1075.51001,4160680000,-0.27445928765688077,1107.7203287 +2010-02-16,1079.130005,1095.670044,1079.130005,1094.869995,4080770000,1.8000748314746184,1107.045996 +2010-02-17,1096.140015,1101.030029,1094.719971,1099.51001,4259230000,0.4237959777133149,1105.9299966666667 +2010-02-18,1099.030029,1108.23999,1097.47998,1106.75,3878620000,0.6584742234406749,1104.9376626666667 +2010-02-19,1105.48999,1112.420044,1100.800049,1109.170044,3944280000,0.21866220917099444,1104.0053303 +2010-02-22,1110.0,1112.290039,1105.380005,1108.01001,3814440000,-0.10458576719368784,1102.8826659333333 +2010-02-23,1107.48999,1108.579956,1092.180054,1094.599976,4521050000,-1.210280943219999,1101.2033324666666 +2010-02-24,1095.890015,1106.420044,1095.5,1105.23999,4168360000,0.9720458828148315,1099.8119994666667 +2010-02-25,1101.23999,1103.5,1086.02002,1102.939941,4521130000,-0.20810403358639817,1098.7026651333333 +2010-02-26,1103.099976,1107.23999,1097.560059,1104.48999,3945190000,0.1405379334249668,1097.329663 +2010-03-01,1105.359985,1116.109985,1105.359985,1115.709961,3847640000,1.0158508543839373,1096.2379963333333 +2010-03-02,1117.01001,1123.459961,1116.51001,1118.310059,4134680000,0.2330442579959957,1095.6473306666667 +2010-03-03,1119.359985,1125.640015,1116.579956,1118.790039,3951320000,0.04292011827464748,1094.5993326333332 +2010-03-04,1119.119995,1123.72998,1116.660034,1122.969971,3945010000,0.37361183549113886,1094.0969970333333 +2010-03-05,1125.119995,1139.380005,1125.119995,1138.699951,4133000000,1.4007480525942029,1094.8376627333334 +2010-03-08,1138.400024,1141.050049,1136.77002,1138.5,3774680000,-0.01755958624785059,1096.3956624 +2010-03-09,1137.560059,1145.369995,1134.900024,1140.449951,5185570000,0.1712736934563086,1097.8513264666665 +2010-03-10,1140.219971,1148.26001,1140.089966,1145.609985,5469120000,0.45245597980652086,1099.6326578333333 +2010-03-11,1143.959961,1150.23999,1138.98999,1150.23999,4669060000,0.40415194181464553,1101.3906575 +2010-03-12,1151.709961,1153.410034,1146.969971,1149.98999,4928160000,-0.021734594708366917,1103.5726562000002 +2010-03-15,1148.530029,1150.97998,1141.449951,1150.51001,4164110000,0.04521952404124008,1106.1273233666666 +2010-03-16,1150.829956,1160.280029,1150.349976,1159.459961,4369770000,0.7779116150410603,1108.4696573666668 +2010-03-17,1159.939941,1169.839966,1159.939941,1166.209961,4963200000,0.5821675803430404,1110.5659912 +2010-03-18,1166.130005,1167.77002,1161.160034,1165.829956,4234510000,-0.03258461278053959,1112.8509887666667 +2010-03-19,1166.680054,1169.199951,1155.329956,1159.900024,5212410000,-0.5086446757935237,1116.0773234 +2010-03-22,1157.25,1167.819946,1152.880005,1165.810059,4261680000,0.5095296902933644,1119.397994 +2010-03-23,1166.469971,1174.719971,1163.829956,1174.170044,4411640000,0.7170966604260531,1123.3123291333332 +2010-03-24,1172.699951,1173.040039,1166.01001,1167.719971,4705750000,-0.5493304000523391,1126.5523275 +2010-03-25,1170.030029,1180.689941,1165.089966,1165.72998,5668900000,-0.17041679935436704,1129.8056600000002 +2010-03-26,1167.579956,1173.930054,1161.47998,1166.589966,4708420000,0.07377231560947717,1132.7429931666668 +2010-03-29,1167.709961,1174.849976,1167.709961,1173.219971,4375580000,0.5683235063929981,1135.9999918666667 +2010-03-30,1173.75,1177.829956,1168.920044,1173.27002,4085000000,0.00426595193032675,1138.6133260333334 +2010-03-31,1171.75,1174.560059,1165.77002,1169.430054,4484340000,-0.32728749005279667,1140.9439941666667 +2010-04-01,1171.22998,1181.430054,1170.689941,1178.099976,4006870000,0.7413801253306929,1143.3223266999998 +2010-04-05,1178.709961,1187.72998,1178.709961,1187.439941,3881620000,0.7927990145379704,1145.9313232666668 +2010-04-06,1186.01001,1191.800049,1182.77002,1189.439941,4086180000,0.16842957112557233,1148.6456543 +2010-04-07,1188.22998,1189.599976,1177.25,1182.449951,5101430000,-0.5876706977002377,1151.5739868000003 +2010-04-08,1181.75,1188.550049,1175.119995,1186.439941,4726970000,0.3374341549615467,1154.2806518333334 +2010-04-09,1187.469971,1194.660034,1187.150024,1194.369995,4511570000,0.6683906808899298,1157.3283202999999 +2010-04-12,1194.939941,1199.199951,1194.709961,1196.47998,4607090000,0.17666091821069152,1160.3946533 +2010-04-13,1195.939941,1199.040039,1188.819946,1197.300049,5403580000,0.06854013553991845,1163.1143229000002 +2010-04-14,1198.689941,1210.650024,1198.689941,1210.650024,5760040000,1.115006636068383,1166.192321733333 +2010-04-15,1210.77002,1213.920044,1208.5,1211.670044,5995330000,0.08425391151687389,1169.2883219 +2010-04-16,1210.170044,1210.170044,1186.77002,1192.130005,8108470000,-1.6126534692145977,1171.5936563666667 +2010-04-19,1192.060059,1197.869995,1183.680054,1197.52002,6597740000,0.4521331547225005,1173.5543253333333 +2010-04-20,1199.040039,1208.579956,1199.040039,1207.170044,5316590000,0.8058340435928679,1175.8433267999999 +2010-04-21,1207.160034,1210.98999,1198.849976,1205.939941,5724310000,-0.10189972871791353,1178.026326466667 +2010-04-22,1202.52002,1210.27002,1190.189941,1208.670044,6035780000,0.2263879739927921,1180.1283284333333 +2010-04-23,1207.869995,1217.280029,1205.099976,1217.280029,5326060000,0.7123519808190037,1182.3629964 +2010-04-26,1217.069946,1219.800049,1211.069946,1212.050049,5647760000,-0.42964477157293457,1184.4316650333333 +2010-04-27,1209.920044,1211.380005,1181.619995,1183.709961,7454540000,-2.3381945344073785,1185.5383300666665 +2010-04-28,1184.589966,1195.050049,1181.810059,1191.359985,6342310000,0.6462752069381406,1186.6016642 +2010-04-29,1193.300049,1209.359985,1193.300049,1206.780029,6059410000,1.2943228070565027,1187.9539998 +2010-04-30,1206.77002,1207.98999,1186.319946,1186.689941,6048260000,-1.664768020452545,1188.6493326333334 +2010-05-03,1188.579956,1205.130005,1188.579956,1202.26001,4938050000,1.312058732618837,1190.0613321666667 +2010-05-04,1197.5,1197.5,1168.119995,1173.599976,6594720000,-2.3838465690961486,1190.3209960666668 +2010-05-05,1169.23999,1175.949951,1158.150024,1165.869995,6795940000,-0.6586555179002418,1190.0443277666666 +2010-05-06,1164.380005,1167.579956,1065.790039,1128.150024,10617810000,-3.235349666924059,1188.7253295333333 +2010-05-07,1127.040039,1135.130005,1094.150024,1110.880005,9472910000,-1.530826453273204,1186.8969970333333 +2010-05-10,1122.27002,1163.849976,1122.27002,1159.72998,6893700000,4.397412391989186,1186.6683308333334 +2010-05-11,1156.390015,1170.47998,1147.709961,1155.790039,5842550000,-0.3397291669566149,1186.0873331 +2010-05-12,1155.430054,1172.869995,1155.430054,1171.670044,5225460000,1.3739524017476024,1186.0340005666667 +2010-05-13,1170.040039,1173.569946,1156.140015,1157.439941,4870640000,-1.2145145361418752,1185.6343301333332 +2010-05-14,1157.189941,1157.189941,1126.140015,1135.680054,6126400000,-1.8800013917957714,1184.2203327333334 +2010-05-17,1136.52002,1141.880005,1114.959961,1136.939941,5922920000,0.1109367903013414,1182.5369993999998 +2010-05-18,1138.780029,1148.660034,1117.199951,1120.800049,6170840000,-1.4195905533764819,1180.2490030000001 +2010-05-19,1119.569946,1124.27002,1100.660034,1115.050049,6765800000,-0.5130263872784702,1178.0023396 +2010-05-20,1107.339966,1107.339966,1071.579956,1071.589966,8328570000,-3.897590340359691,1174.1740071 +2010-05-21,1067.26001,1090.160034,1055.900024,1087.689941,5452130000,1.5024380136833049,1170.6180052999998 +2010-05-24,1084.780029,1089.949951,1072.699951,1073.650024,5224040000,-1.290801401279118,1166.5236734333334 +2010-05-25,1067.420044,1074.75,1040.780029,1074.030029,7329580000,0.03539374949987906,1162.4146727666666 +2010-05-26,1075.51001,1090.75,1065.589966,1067.949951,4521050000,-0.5660994418993037,1157.658003666667 +2010-05-27,1074.27002,1103.52002,1074.27002,1103.060059,5698460000,3.2876173613869852,1154.037670833333 +2010-05-28,1102.589966,1102.589966,1084.780029,1089.410034,4871210000,-1.2374688838225678,1150.6136718 +2010-06-01,1087.300049,1094.77002,1069.890015,1070.709961,5271480000,-1.7165321060371275,1146.3866698333334 +2010-06-02,1073.01001,1098.560059,1072.030029,1098.380005,5026360000,2.5842707182958558,1142.7603352 +2010-06-03,1098.819946,1105.670044,1091.810059,1102.829956,4995970000,0.4051376554328412,1139.3233357 +2010-06-04,1098.430054,1098.430054,1060.5,1064.880005,6180580000,-3.441142561782218,1134.5303344 +2010-06-07,1065.839966,1071.359985,1049.859985,1050.469971,5467560000,-1.3532073033900138,1128.9699991333332 +2010-06-08,1050.810059,1063.150024,1042.170044,1062.0,6192750000,1.0976067206398987,1123.9683308333333 +2010-06-09,1062.75,1077.73999,1052.25,1055.689941,5983200000,-0.5941675141242886,1119.7009968333334 +2010-06-10,1058.77002,1087.849976,1058.77002,1086.839966,5144780000,2.9506793415586596,1116.2169962 +2010-06-11,1082.650024,1092.25,1077.119995,1091.599976,4059280000,0.4379678838567713,1112.3776611 +2010-06-14,1095.0,1105.910034,1089.030029,1089.630005,4425830000,-0.18046638359398015,1109.1423299 +2010-06-15,1091.209961,1115.589966,1091.209961,1115.22998,4644490000,2.34941905807744,1106.2413288999999 +2010-06-16,1114.02002,1118.73999,1107.130005,1114.609985,5002600000,-0.055593466022141325,1104.2749958666668 +2010-06-17,1115.97998,1117.719971,1105.869995,1116.040039,4557760000,0.12830084237940298,1102.6139973333334 +2010-06-18,1116.160034,1121.01001,1113.930054,1117.51001,4555360000,0.13171310603847797,1102.2593302 +2010-06-21,1122.790039,1131.22998,1108.23999,1113.199951,4514360000,-0.38568415150034285,1102.3366617333334 +2010-06-22,1113.900024,1118.5,1094.180054,1095.310059,4514380000,-1.6070690610370142,1100.1893310333332 +2010-06-23,1095.569946,1099.640015,1085.310059,1092.040039,4526150000,-0.2985474271080313,1098.0643310333332 +2010-06-24,1090.930054,1090.930054,1071.599976,1073.689941,4814830000,-1.6803502934565784,1094.7983276 +2010-06-25,1075.099976,1083.560059,1067.890015,1076.76001,5128840000,0.28593627291884083,1092.1089965666665 +2010-06-28,1077.5,1082.599976,1071.449951,1074.569946,3896410000,-0.203393883470826,1090.0719929666668 +2010-06-29,1071.099976,1071.099976,1035.180054,1041.23999,6136700000,-3.1017018598061608,1086.8819945999999 +2010-06-30,1040.560059,1048.079956,1028.329956,1030.709961,5067080000,-1.0112970209682381,1083.8789916666667 +2010-07-01,1031.099976,1033.579956,1010.909973,1027.369995,6435770000,-0.3240451850062165,1080.9563232 +2010-07-02,1027.650024,1032.949951,1015.929993,1022.580017,3968500000,-0.4662368984213905,1079.3226582333334 +2010-07-06,1028.089966,1042.5,1018.349976,1028.060059,4691240000,0.5359034900835447,1077.3349955 +2010-07-07,1028.540039,1060.890015,1028.540039,1060.27002,4931220000,3.1330816442115994,1076.8889953666667 +2010-07-08,1062.920044,1071.25,1058.23999,1070.25,4548460000,0.9412677725245899,1076.7629944 +2010-07-09,1070.5,1078.160034,1068.099976,1077.959961,3506570000,0.7203887876664261,1077.0966614000001 +2010-07-12,1077.22998,1080.780029,1070.449951,1078.75,3426990000,0.0732901989483059,1076.2863261 +2010-07-13,1080.650024,1099.459961,1080.650024,1095.339966,4640460000,1.5378879258400868,1076.4839905000001 +2010-07-14,1095.609985,1099.079956,1087.680054,1095.170044,4521050000,-0.01551317447318068,1077.2993266 +2010-07-15,1094.459961,1098.660034,1080.530029,1096.47998,4552470000,0.11961028400810925,1077.2359924333334 +2010-07-16,1093.849976,1093.849976,1063.319946,1064.880005,5297350000,-2.8819472837069093,1075.9709940666667 +2010-07-19,1066.849976,1074.699951,1061.109985,1071.25,4089500000,0.5981889950126273,1076.1833272333333 +2010-07-20,1064.530029,1083.939941,1056.880005,1083.47998,4713280000,1.141655075845982,1077.2836608666667 +2010-07-21,1086.670044,1088.959961,1065.25,1069.589966,4747180000,-1.2819816015428365,1077.5366597333334 +2010-07-22,1072.140015,1097.5,1072.140015,1093.670044,4826900000,2.2513373129380954,1078.8026631666667 +2010-07-23,1092.170044,1103.72998,1087.880005,1102.660034,4524570000,0.8220020333664868,1079.3299987666667 +2010-07-26,1102.890015,1115.01001,1101.300049,1115.01001,4009650000,1.1200166523855248,1080.1103332333334 +2010-07-27,1117.359985,1120.949951,1109.780029,1113.839966,4725690000,-0.10493573954550861,1080.9173319333333 +2010-07-28,1112.839966,1114.660034,1103.109985,1106.130005,4002390000,-0.6921964766345989,1080.6139994333332 +2010-07-29,1108.069946,1115.900024,1092.819946,1101.530029,4612420000,-0.4158621481387237,1080.1780009 +2010-07-30,1098.439941,1106.439941,1088.01001,1101.599976,4006450000,0.006349985761477939,1079.6966654666667 +2010-08-02,1107.530029,1127.300049,1107.530029,1125.859985,4144180000,2.2022521358515457,1079.9749979666667 +2010-08-03,1125.339966,1125.439941,1116.76001,1120.459961,4071820000,-0.47963548504657005,1080.2169983 +2010-08-04,1121.060059,1128.75,1119.459961,1127.23999,4057850000,0.6051112253889768,1081.2813293333334 +2010-08-05,1125.780029,1126.560059,1118.810059,1125.810059,3685560000,-0.12685240167891187,1082.4069966666668 +2010-08-06,1122.069946,1123.060059,1107.170044,1121.640015,3857890000,-0.37040386756750365,1084.0053324666667 +2010-08-09,1122.800049,1129.23999,1120.910034,1127.790039,3979360000,0.5483064011406524,1085.7063334333334 +2010-08-10,1122.920044,1127.160034,1111.579956,1121.060059,3979360000,-0.5967405072993426,1087.2560038666666 +2010-08-11,1116.890015,1116.890015,1088.550049,1089.469971,4511860000,-2.817876504152572,1088.8636699 +2010-08-12,1081.47998,1086.719971,1076.689941,1083.609985,4521050000,-0.5378749443292308,1090.6270040333334 +2010-08-13,1082.219971,1086.25,1079.0,1079.25,3328890000,-0.40235740352650984,1092.3563375333333 +2010-08-16,1077.48999,1082.619995,1069.48999,1079.380005,3142450000,0.012045865184151516,1094.2496704666667 +2010-08-17,1081.160034,1100.140015,1081.160034,1092.540039,3968210000,1.2192215845243437,1096.3990031333333 +2010-08-18,1092.079956,1099.77002,1085.76001,1094.160034,3724260000,0.14827786096358597,1097.5286702666667 +2010-08-19,1092.439941,1092.439941,1070.660034,1075.630005,4290540000,-1.6935391920922638,1097.7080037666667 +2010-08-20,1075.630005,1075.630005,1063.910034,1071.689941,3761570000,-0.36630290914949626,1097.4990031 +2010-08-23,1073.359985,1081.579956,1067.079956,1067.359985,3210950000,-0.40403066543293065,1097.1193359333333 +2010-08-24,1063.199951,1063.199951,1046.680054,1051.869995,4436330000,-1.4512432747795012,1095.6703369 +2010-08-25,1048.97998,1059.380005,1039.829956,1055.329956,4360190000,0.32893428051439244,1094.3423339666667 +2010-08-26,1056.280029,1061.449951,1045.400024,1047.219971,3646710000,-0.7684786122000409,1092.7003336666667 +2010-08-27,1049.27002,1065.209961,1039.699951,1064.589966,4102460000,1.6586768282706776,1092.6906657 +2010-08-30,1062.900024,1064.400024,1048.790039,1048.920044,2917990000,-1.471920880381472,1091.9463338333333 +2010-08-31,1046.880005,1055.140015,1040.880005,1049.329956,4038770000,0.03907943244529921,1090.8079997 +2010-09-01,1049.719971,1081.300049,1049.719971,1080.290039,4396880000,2.950462132808873,1091.1646688 +2010-09-02,1080.660034,1090.099976,1080.390015,1090.099976,3704210000,0.9080836299370842,1091.0456665333334 +2010-09-03,1093.609985,1105.099976,1093.609985,1104.51001,3534500000,1.321900221746275,1091.1073324 +2010-09-07,1102.599976,1102.599976,1091.150024,1091.839966,3107380000,-1.1471189835572382,1090.3349976 +2010-09-08,1092.359985,1103.26001,1092.359985,1098.869995,3224640000,0.6438699094112543,1089.8359985666668 +2010-09-09,1101.150024,1110.27002,1101.150024,1104.180054,3387770000,0.4832290465807132,1089.7710002 +2010-09-10,1104.569946,1110.880005,1103.920044,1109.550049,3061160000,0.48633327332319176,1090.0383342 +2010-09-13,1113.380005,1123.869995,1113.380005,1121.900024,4521050000,1.1130615523951004,1090.7150024666666 +2010-09-14,1121.160034,1127.359985,1115.579956,1121.099976,4521050000,-0.07131188010386369,1090.5563355 +2010-09-15,1119.430054,1126.459961,1114.630005,1125.069946,3369840000,0.3541138243678077,1090.7100016666666 +2010-09-16,1123.890015,1125.439941,1118.880005,1124.660034,3364080000,-0.03643435694442587,1090.6240031333332 +2010-09-17,1126.390015,1131.469971,1122.430054,1125.589966,4086140000,0.08268560915183354,1090.6166667 +2010-09-20,1126.569946,1144.859985,1126.569946,1142.709961,3364080000,1.5209797099417388,1091.3189982333333 +2010-09-21,1142.819946,1148.589966,1136.219971,1139.780029,4175660000,-0.2564020705163039,1091.7186645666666 +2010-09-22,1139.48999,1144.380005,1131.579956,1134.280029,3911070000,-0.48254925161528295,1092.1593302333333 +2010-09-23,1131.099976,1136.77002,1122.790039,1124.829956,3847850000,-0.8331340373092244,1093.3379964 +2010-09-24,1131.689941,1148.900024,1131.689941,1148.670044,4123950000,2.1194392870525602,1095.5066650333333 +2010-09-27,1148.640015,1149.920044,1142.0,1142.160034,3587860000,-0.5667432552981189,1097.6036661666667 +2010-09-28,1142.310059,1150.0,1132.089966,1147.699951,4025840000,0.48503859661404025,1099.8809976999999 +2010-09-29,1146.75,1148.630005,1140.26001,1144.72998,3990280000,-0.25877591067353656,1101.6206624 +2010-09-30,1145.969971,1157.160034,1136.079956,1141.199951,4284160000,-0.30837219795710746,1103.1886596333331 +2010-10-01,1143.48999,1150.300049,1139.420044,1146.23999,4298910000,0.4416438149671853,1105.5423258 +2010-10-04,1144.959961,1148.160034,1131.869995,1137.030029,3604110000,-0.8034932544972562,1107.7203287333332 +2010-10-05,1140.680054,1162.76001,1140.680054,1160.75,4068840000,2.0861340857339927,1110.8333292333334 +2010-10-06,1159.810059,1162.329956,1154.849976,1159.969971,4073160000,-0.06720043075597593,1114.4366617666667 +2010-10-07,1161.569946,1163.869995,1151.410034,1158.060059,3910550000,-0.16465184856065962,1117.8609985333335 +2010-10-08,1158.359985,1167.72998,1155.579956,1165.150024,3871420000,0.6122277462986103,1121.7920003 +2010-10-11,1165.319946,1168.680054,1162.02002,1165.319946,2505900000,0.014583701368908741,1125.1496663 +2010-10-12,1164.280029,1172.579956,1155.709961,1169.77002,4076170000,0.3818757256558447,1129.1779988333333 +2010-10-13,1171.319946,1184.380005,1171.319946,1178.099976,4969410000,0.7121020249775345,1133.4703328333335 +2010-10-14,1177.819946,1178.890015,1166.709961,1173.810059,4969410000,-0.36413862043912504,1136.5876668333333 +2010-10-15,1177.469971,1181.199951,1167.119995,1176.189941,5724910000,0.2027484755095399,1139.4573323333336 +2010-10-18,1176.829956,1185.530029,1174.550049,1184.709961,4450050000,0.7243744996455304,1142.1306640333335 +2010-10-19,1178.640015,1178.640015,1159.709961,1165.900024,5600120000,-1.5877250651393782,1144.5993326333332 +2010-10-20,1166.73999,1182.939941,1166.73999,1178.170044,5027880000,1.0524075604616323,1147.2426676 +2010-10-21,1179.819946,1189.430054,1171.170044,1180.26001,4625470000,0.17739086226504774,1149.7786661333334 +2010-10-22,1180.52002,1183.930054,1178.98999,1183.079956,3177890000,0.23892582787754524,1152.2296630333333 +2010-10-25,1184.73999,1196.140015,1184.73999,1185.619995,4221380000,0.21469715441615467,1154.3536620666666 +2010-10-26,1184.880005,1187.109985,1177.719971,1185.640015,4203680000,0.001688568013724634,1156.5049967000002 +2010-10-27,1183.839966,1183.839966,1171.699951,1182.449951,4335670000,-0.26905839543547305,1158.417663533333 +2010-10-28,1184.469971,1189.530029,1177.099976,1183.780029,4283460000,0.11248493002813387,1160.3883300333332 +2010-10-29,1183.869995,1185.459961,1179.699951,1183.26001,3537880000,-0.0439286849972742,1162.3106648333332 +2010-11-01,1185.709961,1195.810059,1177.650024,1184.380005,4129180000,0.09465332982900865,1163.6996662999998 +2010-11-02,1187.859985,1195.880005,1187.859985,1193.569946,3866200000,0.7759284149684742,1165.4926635333331 +2010-11-03,1193.790039,1198.300049,1183.560059,1197.959961,4665480000,0.36780542394789784,1167.6153279333334 +2010-11-04,1198.339966,1221.25,1198.339966,1221.060059,5695470000,1.928286316073291,1170.8229980333335 +2010-11-05,1221.199951,1227.079956,1220.290039,1225.849976,5637460000,0.3922752992119749,1173.3956624333334 +2010-11-08,1223.23999,1224.569946,1217.550049,1223.25,3937230000,-0.2120957744343066,1176.0986613 +2010-11-09,1223.589966,1226.839966,1208.939941,1213.400024,4848040000,-0.8052300020437331,1178.2886637333334 +2010-11-10,1213.140015,1218.75,1204.329956,1218.709961,4561300000,0.4376081172716262,1180.7546631 +2010-11-11,1213.040039,1215.449951,1204.48999,1213.540039,3931120000,-0.4242126646571309,1183.1659993666667 +2010-11-12,1209.069946,1210.5,1194.079956,1199.209961,4213620000,-1.1808492130023551,1184.9316650666665 +2010-11-15,1200.439941,1207.430054,1197.150024,1197.75,3503370000,-0.1217435684725765,1186.9556640999997 +2010-11-16,1194.790039,1194.790039,1173.0,1178.339966,5116380000,-1.620541348361515,1187.5419963 +2010-11-17,1178.329956,1183.560059,1175.819946,1178.589966,3904780000,0.02121628793163577,1188.1626628000001 +2010-11-18,1183.75,1200.290039,1183.75,1196.689941,4687260000,1.5357312994466854,1189.4503255333334 +2010-11-19,1196.119995,1199.969971,1189.439941,1199.72998,3675390000,0.2540373154185316,1190.6029907333334 +2010-11-22,1198.069946,1198.939941,1184.579956,1197.839966,3689500000,-0.1575366150306623,1191.6869914000001 +2010-11-23,1192.51001,1192.51001,1176.910034,1180.72998,4133070000,-1.42840333313774,1192.0523234 +2010-11-24,1183.699951,1198.619995,1183.699951,1198.349976,3384250000,1.492296824715167,1192.7273233999997 +2010-11-26,1194.160034,1194.160034,1186.930054,1189.400024,1613820000,-0.7468562756494768,1193.2469889 +2010-11-29,1189.079956,1190.339966,1173.640015,1187.76001,3673450000,-0.13788582200331412,1193.6326578666665 +2010-11-30,1182.959961,1187.400024,1174.140015,1180.550049,4284700000,-0.6070216996108546,1193.4939941333334 +2010-12-01,1186.599976,1207.609985,1186.599976,1206.069946,4548110000,2.161695475902703,1194.8329915333334 +2010-12-02,1206.810059,1221.890015,1206.810059,1221.530029,4970800000,1.2818562514781418,1196.2783243666668 +2010-12-03,1219.930054,1225.569946,1216.819946,1224.709961,3735780000,0.26032368623825075,1197.7599894 +2010-12-06,1223.869995,1225.800049,1220.670044,1223.119995,3527370000,-0.1298238808069896,1199.0946573666668 +2010-12-07,1227.25,1235.050049,1223.25,1223.75,6970630000,0.051508028858604504,1200.3656575333334 +2010-12-08,1225.02002,1228.930054,1219.5,1228.280029,4607590000,0.3701760163432155,1201.7869913333334 +2010-12-09,1230.140015,1234.709961,1226.849976,1233.0,4522510000,0.38427483054028766,1203.471992966667 +2010-12-10,1233.849976,1240.400024,1232.579956,1240.400024,4547310000,0.6001641524736367,1205.3593261333333 +2010-12-13,1242.52002,1246.72998,1240.339966,1240.459961,4361240000,0.004832070206406414,1207.2659911666667 +2010-12-14,1241.839966,1246.589966,1238.170044,1241.589966,4132350000,0.09109564480331844,1209.1729898666667 +2010-12-15,1241.579956,1244.25,1234.01001,1235.22998,4407340000,-0.512245280178103,1210.5616576666666 +2010-12-16,1236.339966,1243.75,1232.849976,1242.869995,4736820000,0.6185095183651512,1212.0586588 +2010-12-17,1243.630005,1245.810059,1239.869995,1243.910034,4632470000,0.08368043352755539,1212.8203246333333 +2010-12-20,1245.76001,1250.199951,1241.51001,1247.079956,3548140000,0.2548353107022283,1213.5279906333333 +2010-12-21,1249.430054,1255.819946,1249.430054,1254.599976,3479670000,0.6030102531773718,1214.5729898333334 +2010-12-22,1254.939941,1259.390015,1254.939941,1258.839966,1285590000,0.33795553013784563,1216.0876545666665 +2010-12-23,1257.530029,1258.589966,1254.050049,1256.77002,2515020000,-0.16443281560064582,1217.3563232000001 +2010-12-27,1254.660034,1258.430054,1251.47998,1257.540039,1992470000,0.06126968241970676,1218.8229898666664 +2010-12-28,1259.099976,1259.900024,1256.219971,1258.51001,2478450000,0.07713241486699829,1220.7996581666669 +2010-12-29,1258.780029,1262.599976,1258.780029,1259.780029,2214380000,0.10091449332214619,1222.8673258000001 +2010-12-30,1259.439941,1261.089966,1256.319946,1257.880005,1970720000,-0.1508218860643673,1225.5186604333333 +2010-12-31,1256.76001,1259.339966,1254.189941,1257.640015,1799770000,-0.0190789263718405,1228.1536620666666 +2011-01-03,1257.619995,1276.170044,1257.619995,1271.869995,4286670000,1.131482763770042,1230.6596638666667 +2011-01-04,1272.949951,1274.119995,1262.660034,1270.199951,4796420000,-0.13130618746926004,1233.0086629 +2011-01-05,1268.780029,1277.630005,1265.359985,1276.560059,4764920000,0.5007170717486353,1235.632666 +2011-01-06,1276.290039,1278.170044,1270.430054,1273.849976,4844100000,-0.212295769469939,1238.7366658666665 +2011-01-07,1274.410034,1276.829956,1261.699951,1271.5,4963110000,-0.18447823874668812,1241.175 +2011-01-10,1270.839966,1271.52002,1262.180054,1269.75,4036450000,-0.1376327172630698,1243.8533325333333 +2011-01-11,1272.579956,1277.25,1269.619995,1274.47998,4050750000,0.3725126993502803,1246.7439982 +2011-01-12,1275.650024,1286.869995,1275.650024,1285.959961,4226940000,0.9007580487847333,1250.2576619333333 +2011-01-13,1285.780029,1286.699951,1280.469971,1283.76001,4310840000,-0.17107461093028853,1252.8473307333334 +2011-01-14,1282.900024,1293.23999,1281.23999,1293.23999,4661590000,0.7384542224523782,1255.2376627666667 +2011-01-18,1293.219971,1296.060059,1290.160034,1295.02002,5284990000,0.13764111949552404,1257.5813314 +2011-01-19,1294.52002,1294.599976,1278.920044,1281.920044,4743710000,-1.0115655200450102,1259.5413330333333 +2011-01-20,1280.849976,1283.349976,1271.26001,1280.26001,4935320000,-0.12949590793667198,1261.4250000333334 +2011-01-21,1283.630005,1291.209961,1282.069946,1283.349976,4935320000,0.241354566718055,1263.2606649333331 +2011-01-24,1283.290039,1291.930054,1282.469971,1290.839966,3902470000,0.5836280157455631,1265.1886637999999 +2011-01-25,1288.170044,1291.26001,1281.069946,1291.180054,4595380000,0.026346255845632882,1266.8813314666668 +2011-01-26,1291.969971,1299.73999,1291.969971,1296.630005,4730980000,0.42209070556167294,1268.7536662666669 +2011-01-27,1297.51001,1301.290039,1294.410034,1299.540039,4309190000,0.22443056143837126,1270.6853353666668 +2011-01-28,1299.630005,1302.670044,1275.099976,1276.339966,5618630000,-1.7852526512266986,1272.0556682333333 +2011-01-31,1276.5,1287.170044,1276.5,1286.119995,4167160000,0.7662557986529484,1273.4973349 +2011-02-01,1289.140015,1308.859985,1289.140015,1307.589966,5164500000,1.6693598640459717,1275.6199993 +2011-02-02,1305.910034,1307.609985,1302.619995,1304.030029,4098260000,-0.272251783247468,1277.5183350666669 +2011-02-03,1302.77002,1308.599976,1294.829956,1307.099976,4370990000,0.23541996209659466,1279.2683350666666 +2011-02-04,1307.01001,1311.0,1301.670044,1310.869995,3925950000,0.2884262159912998,1281.0026693666666 +2011-02-07,1311.849976,1322.849976,1311.849976,1319.050049,3902270000,0.624017181810621,1283.0786703333333 +2011-02-08,1318.76001,1324.869995,1316.030029,1324.569946,3881530000,0.41847517493251996,1285.313000566667 +2011-02-09,1322.47998,1324.540039,1314.890015,1320.880005,3922240000,-0.278576530529262,1287.3920004 +2011-02-10,1318.130005,1322.780029,1311.73999,1321.869995,4184610000,0.0749492759563708,1289.4616659333333 +2011-02-11,1318.660034,1330.790039,1316.079956,1329.150024,4219300000,0.5507371396231697,1291.837333233333 +2011-02-14,1328.72998,1332.959961,1326.900024,1332.319946,3567040000,0.23849241566127333,1294.3266642666667 +2011-02-15,1330.430054,1330.430054,1324.609985,1328.01001,3926860000,-0.32349106631179847,1296.1979981 +2011-02-16,1329.51001,1337.609985,1329.51001,1336.319946,1966450000,0.6257434761353986,1298.4019979333332 +2011-02-17,1334.369995,1341.5,1331.0,1340.430054,1966450000,0.3075691575436412,1300.5309977666666 +2011-02-18,1340.380005,1344.069946,1338.119995,1343.01001,1162310000,0.19247225860843376,1302.8363322333332 +2011-02-22,1338.910034,1338.910034,1312.329956,1315.439941,1322780000,-2.052856553168947,1304.3009969333334 +2011-02-23,1315.439941,1317.910034,1299.550049,1307.400024,1330340000,-0.6111960530777338,1305.5559977333335 +2011-02-24,1307.089966,1310.910034,1294.26001,1306.099976,1222900000,-0.09943766071095483,1306.6099976 +2011-02-25,1307.339966,1320.609985,1307.339966,1319.880005,3836030000,1.0550516233988505,1307.7406657333333 +2011-02-28,1321.609985,1329.380005,1320.550049,1327.219971,1252850000,0.5561085835223301,1309.1893311 +2011-03-01,1328.640015,1332.089966,1306.140015,1306.329956,1180420000,-1.573967801604148,1309.6256633 +2011-03-02,1305.469971,1314.189941,1302.579956,1308.439941,1025000000,0.16152006545580022,1310.0729939999999 +2011-03-03,1312.369995,1332.280029,1312.369995,1330.969971,4340470000,1.7219002029837727,1311.7079915666666 +2011-03-04,1330.72998,1331.079956,1312.589966,1321.150024,4223740000,-0.7378037982796792,1313.0709920333331 +2011-03-07,1322.719971,1327.680054,1303.98999,1310.130005,3964730000,-0.8341232108246999,1313.9636596666667 +2011-03-08,1311.050049,1325.73999,1306.859985,1321.819946,4531420000,0.892273358780149,1314.9963256666667 +2011-03-09,1319.920044,1323.209961,1312.27002,1320.02002,3709520000,-0.1361702859339453,1315.9576578666665 +2011-03-10,1315.719971,1315.719971,1294.209961,1295.109985,4723020000,-1.8870952426918386,1315.9069905333333 +2011-03-11,1293.430054,1308.349976,1291.98999,1304.280029,3740400000,0.7080513706332114,1316.0649902 +2011-03-14,1301.189941,1301.189941,1286.369995,1296.390015,4050370000,-0.6049325163745234,1316.7333251666666 +2011-03-15,1288.459961,1288.459961,1261.119995,1281.869995,5201400000,-1.1200348530916449,1316.5916585 +2011-03-16,1279.459961,1280.910034,1249.050049,1256.880005,5833000000,-1.9494948861799366,1314.9013264666667 +2011-03-17,1261.609985,1278.880005,1261.609985,1273.719971,4134950000,1.3398228894571318,1313.8909911999997 +2011-03-18,1276.709961,1288.880005,1276.180054,1279.209961,4685500000,0.4310201712304007,1312.9613240333333 +2011-03-21,1281.650024,1300.579956,1281.650024,1298.380005,4223730000,1.4985846408680281,1312.5449910333334 +2011-03-22,1298.290039,1299.349976,1292.699951,1293.77002,3576550000,-0.35505668465681817,1311.7023234 +2011-03-23,1292.189941,1300.51001,1284.050049,1297.540039,3842350000,0.2913979255756871,1310.8013265 +2011-03-24,1300.609985,1311.339966,1297.73999,1309.660034,4223740000,0.9340748366686746,1310.4273274666666 +2011-03-25,1311.800049,1319.180054,1310.150024,1313.800049,4223740000,0.31611371596607096,1310.1583292666664 +2011-03-28,1315.449951,1319.73999,1310.189941,1310.189941,3215170000,-0.2747836706771034,1309.5263265 +2011-03-29,1309.369995,1319.449951,1305.26001,1319.439941,3482580000,0.706004504426283,1309.0969929999999 +2011-03-30,1321.890015,1331.73999,1321.890015,1328.26001,3809570000,0.6684706689502828,1309.1053263333336 +2011-03-31,1327.439941,1329.77002,1325.030029,1325.829956,3566270000,-0.1829501740400863,1308.7556599999998 +2011-04-01,1329.47998,1337.849976,1328.890015,1332.410034,4223740000,0.4962987878062375,1308.488326 +2011-04-04,1333.560059,1336.73999,1329.099976,1332.869995,4223740000,0.034520979898289283,1308.1503255 +2011-04-05,1332.030029,1338.209961,1330.030029,1332.630005,3852280000,-0.01800550698120018,1308.7233276333332 +2011-04-06,1335.939941,1339.380005,1331.089966,1335.540039,4223740000,0.21836773816299448,1309.6613281333332 +2011-04-07,1334.819946,1338.800049,1326.560059,1333.51001,4005600000,-0.15200060954518868,1310.5749959333334 +2011-04-08,1336.160034,1339.459961,1322.939941,1328.170044,3582810000,-0.40044438811523975,1310.8513305666668 +2011-04-11,1329.01001,1333.77002,1321.060059,1324.459961,3478970000,-0.27933795200096867,1310.7593302333335 +2011-04-12,1321.959961,1321.959961,1309.51001,1314.160034,4275490000,-0.7776699412055721,1311.0203328333334 +2011-04-13,1314.030029,1321.349976,1309.189941,1314.410034,3850860000,0.019023558283004505,1311.2193359333335 +2011-04-14,1311.130005,1316.790039,1302.420044,1314.52002,3872630000,0.008367708489354087,1310.6710042333332 +2011-04-15,1314.540039,1322.880005,1313.680054,1319.680054,4223740000,0.39254130188142167,1310.6220052333335 +2011-04-18,1313.349976,1313.349976,1294.699951,1305.140015,4223740000,-1.1017851604204099,1310.4556722333334 +2011-04-19,1305.98999,1312.699951,1303.969971,1312.619995,3886300000,0.5731170536519059,1310.1490072000001 +2011-04-20,1319.119995,1332.660034,1319.119995,1330.359985,4236280000,1.3514947256307863,1310.4936727 +2011-04-21,1333.22998,1337.48999,1332.829956,1337.380005,3587240000,0.527678228385664,1311.9026733666667 +2011-04-25,1337.140015,1337.550049,1331.469971,1335.25,2142130000,-0.15926699906060326,1312.9350057333334 +2011-04-26,1336.75,1349.550049,1336.75,1347.23999,3908060000,0.8979584347500458,1314.6300049 +2011-04-27,1348.430054,1357.48999,1344.25,1355.660034,4051570000,0.6249847141191145,1317.0896728666667 +2011-04-28,1353.859985,1361.709961,1353.599976,1360.47998,4036820000,0.35554238371831026,1320.5430053666669 +2011-04-29,1360.140015,1364.560059,1358.689941,1363.609985,3479070000,0.23006623000803028,1323.5393391666664 +2011-05-02,1365.209961,1370.579956,1358.589966,1361.219971,3846250000,-0.1752710838356042,1326.2730061666666 +2011-05-03,1359.76001,1360.839966,1349.52002,1356.619995,4223740000,-0.3379303931766886,1328.2143391666664 +2011-05-04,1355.900024,1355.900024,1341.5,1347.319946,4223740000,-0.6855308807386384,1329.9993367 +2011-05-05,1344.160034,1348.0,1329.170044,1335.099976,3846250000,-0.9069835295082984,1331.2513346 +2011-05-06,1340.23999,1354.359985,1335.579956,1340.199951,4223740000,0.3819919924858084,1332.2693318333334 +2011-05-09,1340.199951,1349.439941,1338.640015,1346.290039,4265250000,0.45441637238203825,1333.3523315 +2011-05-10,1348.339966,1359.439941,1348.339966,1357.160034,4223740000,0.8074036563528342,1334.9180012666666 +2011-05-11,1354.51001,1354.51001,1336.359985,1342.079956,3846250000,-1.1111495786944148,1335.6726684333335 +2011-05-12,1339.390015,1351.050049,1332.030029,1348.650024,3777210000,0.48954370942113634,1336.3523355666666 +2011-05-13,1348.689941,1350.469971,1333.359985,1337.77002,3426660000,-0.806732940821131,1336.7503377 +2011-05-16,1334.77002,1343.329956,1327.319946,1329.469971,3846250000,-0.6204391544071153,1336.6523356 +2011-05-17,1326.099976,1330.420044,1318.51001,1328.97998,4053970000,-0.03685611639887565,1336.5226684333334 +2011-05-18,1328.540039,1341.819946,1326.589966,1340.680054,3922030000,0.8803800039184795,1336.7910034000001 +2011-05-19,1342.400024,1346.819946,1336.359985,1343.599976,3626110000,0.21779409571196506,1337.0596679666667 +2011-05-20,1342.0,1342.0,1330.670044,1333.27002,4066020000,-0.7688267478802024,1337.0516682999998 +2011-05-23,1333.069946,1333.069946,1312.880005,1317.369995,3255580000,-1.1925585036405395,1336.6916666666666 +2011-05-24,1317.699951,1323.719971,1313.869995,1316.280029,3846250000,-0.08273803139109415,1336.4190022666667 +2011-05-25,1316.359985,1325.859985,1311.800049,1320.469971,4109670000,0.3183169164378441,1336.6293335 +2011-05-26,1320.640015,1328.51001,1314.410034,1325.689941,3259470000,0.3953115265504348,1337.0053303999998 +2011-05-27,1325.689941,1334.619995,1325.689941,1331.099976,3124560000,0.4080920306236191,1337.5579956000001 +2011-05-31,1331.099976,1345.199951,1331.099976,1345.199951,4696240000,1.0592724253794206,1338.4086588333334 +2011-06-01,1345.199951,1345.199951,1313.709961,1314.550049,4241090000,-2.278464400568514,1338.7223266333333 +2011-06-02,1314.550049,1318.030029,1305.609985,1312.939941,3762170000,-0.12248358297386464,1338.7329915 +2011-06-03,1312.939941,1312.939941,1297.900024,1300.160034,3505030000,-0.973380929387091,1337.7263264666667 +2011-06-06,1300.26001,1300.26001,1284.719971,1286.170044,3555980000,-1.0760206154744822,1336.0193277666665 +2011-06-07,1286.310059,1296.219971,1284.73999,1284.939941,3846250000,-0.09564077516330816,1334.3423258 +2011-06-08,1284.630005,1287.040039,1277.420044,1279.560059,3970810000,-0.41868742875353915,1332.0863281 +2011-06-09,1279.630005,1294.540039,1279.630005,1289.0,3332510000,0.7377489578236363,1329.8643269666668 +2011-06-10,1288.599976,1288.599976,1268.280029,1270.97998,3846250000,-1.397984484096193,1326.8809936333334 +2011-06-13,1271.310059,1277.040039,1265.640015,1271.829956,4132520000,0.06687564032283877,1323.8216593333334 +2011-06-14,1272.219971,1292.5,1272.219971,1287.869995,3500280000,1.2611779526287448,1321.3766601333332 +2011-06-15,1287.869995,1287.869995,1261.900024,1265.420044,4070500000,-1.7431845673211765,1318.3366617666666 +2011-06-16,1265.530029,1274.109985,1258.069946,1267.640015,3846250000,0.17543352584985517,1315.6806640666666 +2011-06-17,1268.579956,1279.819946,1267.400024,1271.5,4916460000,0.3045016687959423,1313.5606648666667 +2011-06-20,1271.5,1280.420044,1267.560059,1278.359985,3464660000,0.5395190719622578,1311.4993326666665 +2011-06-21,1278.400024,1297.619995,1278.400024,1295.52002,4056150000,1.3423476330104211,1309.8069987000001 +2011-06-22,1295.47998,1298.609985,1286.790039,1287.140015,3718420000,-0.6468448862720022,1307.4729980666666 +2011-06-23,1286.599976,1286.599976,1262.869995,1283.5,4983450000,-0.282798682162011,1305.5203328666664 +2011-06-24,1283.040039,1283.930054,1267.23999,1268.449951,3665340000,-1.1725788079470112,1302.8469971000002 +2011-06-27,1268.439941,1284.910034,1267.530029,1280.099976,3479070000,0.9184457763442344,1300.9246623 +2011-06-28,1280.209961,1296.800049,1280.209961,1296.670044,3681500000,1.2944354590004314,1299.8313314 +2011-06-29,1296.849976,1309.209961,1296.849976,1307.410034,4347540000,0.82827470640634,1299.1123331999997 +2011-06-30,1307.640015,1321.969971,1307.640015,1320.640015,4200500000,1.0119228593896468,1298.4443319 +2011-07-01,1320.640015,1341.01001,1318.180054,1339.670044,3796930000,1.4409701950459208,1298.3133341666667 +2011-07-05,1339.589966,1340.890015,1334.300049,1337.880005,3722320000,-0.1336179015136607,1298.4670003333333 +2011-07-06,1337.560059,1340.939941,1330.920044,1339.219971,3564190000,0.10015591794423351,1299.1953328666666 +2011-07-07,1339.619995,1356.47998,1339.619995,1353.219971,4069530000,1.0453846495095398,1300.4266642666664 +2011-07-08,1352.390015,1352.390015,1333.709961,1343.800049,3594360000,-0.6961116597354766,1301.2043335333333 +2011-07-11,1343.310059,1343.310059,1316.420044,1319.48999,3879130000,-1.8090532901892997,1300.9976685000001 +2011-07-12,1319.609985,1327.170044,1313.329956,1313.640015,4227890000,-0.44335122239161917,1300.4156698000002 +2011-07-13,1314.449951,1331.47998,1314.449951,1317.719971,4060080000,0.3105840225185341,1299.4996704666667 +2011-07-14,1317.73999,1326.880005,1306.51001,1308.869995,4358570000,-0.6716128005014532,1299.3103353333333 +2011-07-15,1308.869995,1317.699951,1307.52002,1316.140015,4242760000,0.5554424830404914,1299.4170044666666 +2011-07-18,1315.939941,1315.939941,1295.920044,1305.439941,4118160000,-0.8129890344531376,1299.5930013666666 +2011-07-19,1307.069946,1328.140015,1307.069946,1326.72998,4304600000,1.6308708146076212,1300.9449992333332 +2011-07-20,1328.660034,1330.430054,1323.650024,1325.839966,3767420000,-0.06708328095518246,1302.3083334 +2011-07-21,1325.650024,1347.0,1325.650024,1343.800049,4837430000,1.3546192195566853,1304.4496664 +2011-07-22,1343.800049,1346.099976,1336.949951,1345.02002,3522830000,0.09078515817200206,1306.3170003999999 +2011-07-25,1344.319946,1344.319946,1331.089966,1337.430054,3536890000,-0.5643013402878538,1308.5320028666667 +2011-07-26,1337.390015,1338.51001,1329.589966,1331.939941,4007050000,-0.4104972057103029,1310.5356690333333 +2011-07-27,1331.910034,1331.910034,1303.48999,1304.890015,3479040000,-2.030866795667341,1311.1030030333334 +2011-07-28,1304.839966,1316.319946,1299.160034,1300.670044,4951800000,-0.323396681060506,1312.2780030333336 +2011-07-29,1300.119995,1304.160034,1282.859985,1292.280029,5061190000,-0.6450532968528933,1313.0993368333332 +2011-08-01,1292.589966,1307.380005,1274.72998,1286.939941,4967390000,-0.41322994089231235,1313.6140015333333 +2011-08-02,1286.560059,1286.560059,1254.030029,1254.050049,5206290000,-2.555666426394654,1312.8036703333335 +2011-08-03,1254.25,1261.199951,1234.560059,1260.339966,6446940000,0.5015682591787973,1311.6310018666666 +2011-08-04,1260.22998,1260.22998,1199.540039,1200.069946,4266530000,-4.782044656671625,1308.7286662333333 +2011-08-05,1200.280029,1218.109985,1168.089966,1199.380005,5454590000,-0.057491732236092385,1305.9246664 +2011-08-08,1198.47998,1198.47998,1119.280029,1119.459961,2615150000,-6.66344641955241,1300.9583334000001 +2011-08-09,1120.22998,1172.880005,1101.540039,1172.530029,2366660000,4.740684780953952,1297.3726685000001 +2011-08-10,1171.77002,1171.77002,1118.01001,1120.76001,5018070000,-4.4152403537291445,1291.5090007000001 +2011-08-11,1121.300049,1186.290039,1121.300049,1172.640015,3685050000,4.6290021536367965,1287.0166667333333 +2011-08-12,1172.869995,1189.040039,1170.73999,1178.810059,5640380000,0.5261669328246343,1282.2890015333332 +2011-08-15,1178.859985,1204.48999,1178.859985,1204.48999,4272850000,2.178462153757388,1277.7829997333333 +2011-08-16,1204.219971,1204.219971,1180.530029,1192.76001,5071600000,-0.9738545025185341,1272.9456665666667 +2011-08-17,1192.890015,1208.469971,1184.359985,1193.890015,4388340000,0.09473867253479984,1268.1013347 +2011-08-18,1189.619995,1189.619995,1131.030029,1140.650024,3234810000,-4.459371494115382,1261.0156698 +2011-08-19,1140.469971,1154.540039,1122.050049,1123.530029,5167560000,-1.5008981405150057,1253.6733358 +2011-08-22,1123.550049,1145.48999,1121.089966,1123.819946,5436260000,0.02580411671400107,1247.1510009999997 +2011-08-23,1124.359985,1162.349976,1124.359985,1162.349976,5013170000,3.428487822906101,1242.1079997000002 +2011-08-24,1162.160034,1178.560059,1156.300049,1177.599976,5315310000,1.3119972740464947,1237.4373332 +2011-08-25,1176.689941,1190.680054,1155.469971,1159.27002,5748420000,-1.5565520018319012,1232.4506673666665 +2011-08-26,1158.849976,1181.22998,1135.910034,1176.800049,5035320000,1.5121609890334176,1227.8060018333335 +2011-08-29,1177.910034,1210.280029,1177.910034,1210.079956,4228070000,2.8280001371753904,1224.6273356666668 +2011-08-30,1209.76001,1220.099976,1195.77002,1212.920044,4572570000,0.23470250754240585,1220.8336711333334 +2011-08-31,1213.0,1230.709961,1209.349976,1218.890015,5267840000,0.49219823099897475,1217.2686727666667 +2011-09-01,1219.119995,1229.290039,1203.849976,1204.420044,4780410000,-1.1871432879036248,1212.6226725999998 +2011-09-02,1203.900024,1203.900024,1170.560059,1173.969971,4401740000,-2.528193810099022,1206.9210042999998 +2011-09-06,1173.969971,1173.969971,1140.130005,1165.23999,5103980000,-0.7436289867417734,1201.1813355 +2011-09-07,1165.849976,1198.619995,1165.849976,1198.619995,4441040000,2.8646463635358055,1196.7373373 +2011-09-08,1197.97998,1204.400024,1183.339966,1185.900024,4465170000,-1.0612179884417872,1192.7710042666668 +2011-09-09,1185.369995,1185.369995,1148.369995,1154.22998,4586370000,-2.670549233414976,1187.8896687999998 +2011-09-12,1153.5,1162.52002,1136.069946,1162.27002,5168550000,0.6965717525375448,1183.5560018333335 +2011-09-13,1162.589966,1176.410034,1157.439941,1172.869995,4681370000,0.9120062307035992,1179.7536703 +2011-09-14,1173.319946,1202.380005,1162.72998,1188.680054,4986740000,1.3479805150953483,1177.5746704666667 +2011-09-15,1189.439941,1209.109985,1189.439941,1209.109985,4479730000,1.7187073116312401,1175.8670044333335 +2011-09-16,1209.209961,1220.060059,1204.459961,1216.01001,5248890000,0.5706697559031415,1176.3983398999999 +2011-09-19,1214.98999,1214.98999,1188.359985,1204.089966,4254190000,-0.9802587069163926,1176.5553386 +2011-09-20,1204.5,1220.390015,1201.290039,1202.089966,4315610000,-0.16610054534745844,1179.3096721 +2011-09-21,1203.630005,1206.300049,1166.209961,1166.76001,4728550000,-2.939044247874545,1179.117338133333 +2011-09-22,1164.550049,1164.550049,1114.219971,1129.560059,6703140000,-3.1883121362721423,1179.4106731 +2011-09-23,1128.819946,1141.719971,1121.359985,1136.430054,5639930000,0.6082009491449325,1178.2036744 +2011-09-26,1136.910034,1164.189941,1131.069946,1162.949951,4762830000,2.3336145420173926,1177.6750041333332 +2011-09-27,1163.319946,1195.859985,1163.319946,1175.380005,5548130000,1.068838258199456,1176.7046712999997 +2011-09-28,1175.390015,1184.709961,1150.400024,1151.060059,4787920000,-2.069113469392403,1175.3146729333334 +2011-09-29,1151.73999,1175.869995,1139.930054,1160.400024,5285740000,0.8114229076903623,1174.1983398999998 +2011-09-30,1159.930054,1159.930054,1131.339966,1131.420044,4416790000,-2.4974129093951247,1173.8906739000001 +2011-10-03,1131.209961,1138.98999,1098.920044,1099.22998,5670340000,-2.845102857308046,1173.0806722666666 +2011-10-04,1097.420044,1125.119995,1074.77002,1123.949951,3714670000,2.2488443228231514,1173.0850057666669 +2011-10-05,1124.030029,1146.069946,1115.680054,1144.030029,2510620000,1.7865633591721997,1172.4743408666666 +2011-10-06,1144.109985,1165.550049,1134.949951,1164.969971,5098330000,1.8303664649697682,1172.0533407 +2011-10-07,1165.030029,1171.400024,1150.26001,1155.459961,5580380000,-0.8163309129622154,1171.9263387333335 +2011-10-10,1158.150024,1194.910034,1158.150024,1194.890015,4446800000,3.412498514087403,1172.5293376 +2011-10-11,1194.599976,1199.23999,1187.300049,1195.540039,4424500000,0.054400320685576986,1172.0446736999997 +2011-10-12,1196.189941,1220.25,1196.189941,1207.25,5355360000,0.9794704165487111,1171.8556722333333 +2011-10-13,1206.959961,1207.459961,1190.579956,1203.660034,4436270000,-0.29736723959411515,1171.3480062 +2011-10-14,1205.650024,1224.609985,1205.650024,1224.579956,4116690000,1.738025805382848,1172.0200032666667 +2011-10-17,1224.469971,1224.469971,1198.550049,1200.859985,4300700000,-1.9369883431278323,1172.9163370666668 +2011-10-18,1200.75,1233.099976,1191.47998,1225.380005,4840170000,2.041871684149754,1174.9210042333334 +2011-10-19,1223.459961,1229.640015,1206.310059,1209.880005,4846390000,-1.2649137358822782,1175.2963379 +2011-10-20,1209.920044,1219.530029,1197.339966,1215.390015,4870290000,0.45541789080147943,1176.2793376 +2011-10-21,1215.390015,1239.030029,1215.390015,1238.25,4980770000,1.8808764855617222,1179.0800049333334 +2011-10-24,1238.719971,1256.550049,1238.719971,1254.189941,4309380000,1.2872958610942842,1182.1440023 +2011-10-25,1254.189941,1254.189941,1226.790039,1229.050049,4473970000,-2.0044724629154187,1184.0166707666665 +2011-10-26,1229.170044,1246.280029,1221.060059,1242.0,4873530000,1.0536553015507044,1185.7940023 +2011-10-27,1243.969971,1292.660034,1243.969971,1284.589966,6367610000,3.4291438003220653,1188.3100016666665 +2011-10-28,1284.390015,1287.079956,1277.01001,1285.089966,4536690000,0.03892292585445656,1190.6126668666666 +2011-10-31,1284.959961,1284.959961,1253.160034,1253.300049,4310210000,-2.473750308622369,1192.2530029666666 +2011-11-01,1251.0,1251.0,1215.420044,1218.280029,5645540000,-2.794224737160278,1192.7926717333332 +2011-11-02,1219.619995,1242.47998,1219.619995,1237.900024,4110530000,1.610466767324814,1195.1640055333335 +2011-11-03,1238.25,1263.209961,1234.810059,1261.150024,4849140000,1.8781807536341066,1199.5503377 +2011-11-04,1260.819946,1260.819946,1238.920044,1253.22998,3830650000,-0.62800173248857,1203.4436685666667 +2011-11-07,1253.209961,1261.699951,1240.75,1261.119995,3429740000,0.6295743898498074,1206.7160033666667 +2011-11-08,1261.119995,1277.550049,1254.98999,1275.920044,3908490000,1.1735639002377285,1210.067338 +2011-11-09,1275.180054,1275.180054,1226.640015,1229.099976,4659740000,-3.669514263073992,1212.6686685666666 +2011-11-10,1229.589966,1246.219971,1227.699951,1239.699951,4002760000,0.862417639490709,1215.3119994666667 +2011-11-11,1240.119995,1266.97998,1240.119995,1263.849976,3370180000,1.9480540416670467,1219.726330533333 +2011-11-14,1263.849976,1263.849976,1246.680054,1251.780029,3219680000,-0.955014220770134,1224.8113321666667 +2011-11-15,1251.699951,1264.25,1244.339966,1257.810059,3599300000,0.48171642463548103,1229.2733357666666 +2011-11-16,1257.810059,1259.609985,1235.670044,1236.910034,4085010000,-1.661620119067586,1232.3693359333333 +2011-11-17,1236.560059,1237.72998,1209.430054,1216.130005,4596450000,-1.6799951838696092,1234.0746704 +2011-11-18,1216.189941,1223.51001,1211.359985,1215.650024,3827610000,-0.03946790211790674,1236.0810058333334 +2011-11-21,1215.619995,1215.619995,1183.160034,1192.97998,4050070000,-1.8648495498240547,1236.017338 +2011-11-22,1192.97998,1196.810059,1181.650024,1188.040039,3911710000,-0.41408414917407654,1235.767338 +2011-11-23,1187.47998,1187.47998,1161.790039,1161.790039,3798940000,-2.2095214923981144,1234.2520059666667 +2011-11-25,1161.410034,1172.660034,1158.660034,1158.670044,1664200000,-0.26855067570432656,1232.7523396333333 +2011-11-28,1158.670044,1197.349976,1158.670044,1192.550049,3920750000,2.924042541312133,1231.6846760666667 +2011-11-29,1192.560059,1203.670044,1191.800049,1195.189941,3992650000,0.2213653005350924,1231.4956745999998 +2011-11-30,1196.719971,1247.109985,1196.719971,1246.959961,5801910000,4.331530765451785,1232.2150064666666 +2011-12-01,1246.910034,1251.089966,1239.72998,1244.579956,3818680000,-0.1908645886345317,1233.3716715 +2011-12-02,1246.030029,1260.079956,1243.349976,1244.280029,4144310000,-0.02409865260597499,1234.3346719666667 +2011-12-05,1244.329956,1266.72998,1244.329956,1257.079956,4148060000,1.0287014740795186,1234.9623371666667 +2011-12-06,1257.189941,1266.030029,1253.030029,1258.469971,3734230000,0.1105749076155016,1235.1050048333334 +2011-12-07,1258.140015,1267.060059,1244.800049,1261.01001,4160540000,0.20183548741983248,1236.1703368666667 +2011-12-08,1260.869995,1260.869995,1231.469971,1234.349976,4298370000,-2.114180996866155,1235.9153360666667 +2011-12-09,1234.47998,1258.25,1234.47998,1255.189941,3830610000,1.688335188982104,1234.9353352333335 +2011-12-12,1255.050049,1255.050049,1227.25,1236.469971,3600570000,-1.491405355358888,1233.3146687333333 +2011-12-13,1236.829956,1249.859985,1219.430054,1225.72998,4121570000,-0.8686010377845221,1232.3956664333334 +2011-12-14,1225.72998,1225.72998,1209.469971,1211.819946,4298290000,-1.1348367280695881,1232.1803303333334 +2011-12-15,1212.119995,1225.599976,1212.119995,1215.75,3810340000,0.32431006049804534,1231.4419962 +2011-12-16,1216.089966,1231.040039,1215.199951,1219.660034,5345800000,0.3216149701830151,1230.0589965333334 +2011-12-19,1219.73999,1224.569946,1202.369995,1205.349976,3659820000,-1.173282521447283,1228.4629964 +2011-12-20,1205.719971,1242.819946,1205.719971,1241.300049,4055590000,2.9825423085253266,1227.8023315333335 +2011-12-21,1241.25,1245.089966,1229.51001,1243.719971,2959020000,0.194950608593758,1226.7289957666667 +2011-12-22,1243.719971,1255.219971,1243.719971,1254.0,3492250000,0.8265549512511683,1227.5589965666668 +2011-12-23,1254.0,1265.420044,1254.0,1265.329956,2233830000,0.9035052631578999,1228.4133300666667 +2011-12-27,1265.02002,1269.369995,1262.300049,1265.430054,2130590000,0.007910821957968217,1228.4659993333335 +2011-12-28,1265.380005,1265.849976,1248.640015,1249.640015,2349980000,-1.2478002201771643,1228.3946655333334 +2011-12-29,1249.75,1263.540039,1249.75,1263.02002,2278130000,1.070708751271865,1228.5683309 +2011-12-30,1262.819946,1264.119995,1257.459961,1257.599976,2271850000,-0.42913365696293226,1229.2579956333332 +2012-01-03,1258.859985,1284.619995,1258.859985,1277.060059,3943710000,1.5473984869096347,1231.2889974333334 +2012-01-04,1277.030029,1278.72998,1268.099976,1277.300049,3592580000,0.018792381635357458,1233.3439982666666 +2012-01-05,1277.300049,1283.050049,1265.26001,1281.060059,4315950000,0.2943717103075061,1236.2800009 +2012-01-06,1280.930054,1281.839966,1273.339966,1277.810059,3656830000,-0.2536961461851339,1239.2723349 +2012-01-09,1277.829956,1281.98999,1274.550049,1280.699951,3371600000,0.226159747268051,1243.2359986333333 +2012-01-10,1280.77002,1296.459961,1280.77002,1292.079956,4221960000,0.8885769841026514,1247.6829957000002 +2012-01-11,1292.02002,1293.800049,1285.410034,1292.47998,3968120000,0.030959693952570255,1251.0139934 +2012-01-12,1292.47998,1296.819946,1285.77002,1295.5,4019890000,0.23366087264267144,1254.3576620333333 +2012-01-13,1294.819946,1294.819946,1277.579956,1289.089966,3692370000,-0.4947922809726002,1255.7619955333332 +2012-01-17,1290.219971,1303.0,1290.219971,1293.670044,4010490000,0.35529545034096444,1257.3983317999998 +2012-01-18,1293.650024,1308.109985,1290.98999,1308.040039,4096160000,1.110792900140778,1259.5236654666664 +2012-01-19,1308.069946,1315.48999,1308.069946,1314.5,4465890000,0.4938656927458096,1261.437666933333 +2012-01-20,1314.48999,1315.380005,1309.170044,1315.380005,3912620000,0.06694598706733501,1263.3346680666666 +2012-01-23,1315.290039,1322.280029,1309.890015,1316.0,3770910000,0.04713428801133013,1265.1676677333335 +2012-01-24,1315.959961,1315.959961,1306.060059,1314.650024,3693560000,-0.10258176291793042,1267.8443359999999 +2012-01-25,1314.400024,1328.300049,1307.650024,1326.060059,4410910000,0.867914257916591,1270.2066732666667 +2012-01-26,1326.280029,1333.469971,1313.599976,1318.430054,4522070000,-0.5753890970635167,1272.9386760333332 +2012-01-27,1318.25,1320.060059,1311.719971,1316.329956,4007380000,-0.15928778274041377,1275.9586752333335 +2012-01-30,1316.160034,1316.160034,1300.48999,1313.01001,3659010000,-0.25221229562294445,1279.3316773666666 +2012-01-31,1313.530029,1321.410034,1306.689941,1312.410034,4235550000,-0.04569470113940932,1282.5536785 +2012-02-01,1312.449951,1330.52002,1312.449951,1324.089966,4504360000,0.8899605837667579,1286.0346762333331 +2012-02-02,1324.23999,1329.189941,1321.569946,1325.540039,4120920000,0.10951468836974954,1290.0410116666667 +2012-02-03,1326.209961,1345.339966,1326.209961,1344.900024,4608550000,1.4605356632309219,1293.4943441666667 +2012-02-06,1344.319946,1344.359985,1337.52002,1344.329956,3379700000,-0.042387388640574564,1296.8480103333334 +2012-02-07,1344.329956,1349.23999,1335.920044,1347.050049,3742460000,0.20233819739414738,1299.9496786333332 +2012-02-08,1347.040039,1351.0,1341.949951,1349.959961,4096730000,0.21602107524960612,1302.7706788 +2012-02-09,1349.969971,1354.319946,1344.630005,1351.949951,4209890000,0.14741103865969496,1305.6546753666667 +2012-02-10,1351.209961,1351.209961,1337.349976,1342.640015,3877580000,-0.6886302257797183,1308.7546753666668 +2012-02-13,1343.060059,1353.349976,1343.060059,1351.77002,3618040000,0.6800039398497937,1311.7130087 +2012-02-14,1351.300049,1351.300049,1340.829956,1350.5,3889520000,-0.09395237216460739,1314.8096761666668 +2012-02-15,1350.52002,1355.869995,1340.800049,1343.22998,4080340000,-0.5383206219918502,1317.0153401999999 +2012-02-16,1342.609985,1359.02002,1341.219971,1358.040039,4108880000,1.1025706111770894,1319.7066731999998 +2012-02-17,1358.060059,1363.400024,1357.23999,1361.22998,3717640000,0.23489300082411013,1322.3790039 +2012-02-21,1361.219971,1367.76001,1358.109985,1362.209961,3795200000,0.07199231683099327,1325.1923339666669 +2012-02-22,1362.109985,1362.699951,1355.530029,1357.660034,3633710000,-0.33401069807622585,1327.7576700666666 +2012-02-23,1357.530029,1364.23999,1352.280029,1363.459961,3786450000,0.42720024562497017,1330.1370035666666 +2012-02-24,1363.459961,1368.920044,1363.459961,1365.73999,3505360000,0.16722375905544595,1332.5790038999999 +2012-02-27,1365.199951,1371.939941,1354.920044,1367.589966,3648890000,0.13545594428994168,1334.9820027666667 +2012-02-28,1367.560059,1373.089966,1365.969971,1372.180054,3579120000,0.3356333487459784,1337.7516723666668 +2012-02-29,1372.199951,1378.040039,1363.810059,1365.680054,4482370000,-0.4736987672319004,1340.1520060333335 +2012-03-01,1365.900024,1376.170044,1365.900024,1374.089966,3919240000,0.6158039707300444,1342.3536702666668 +2012-03-02,1374.089966,1374.530029,1366.420044,1369.630005,3283490000,-0.32457561807128776,1344.1913371 +2012-03-05,1369.589966,1369.589966,1359.130005,1364.329956,3429480000,-0.3869693990823375,1345.8230021333331 +2012-03-06,1363.630005,1363.630005,1340.030029,1343.359985,4191060000,-1.537016094074528,1346.7350016333332 +2012-03-07,1343.390015,1354.849976,1343.390015,1352.630005,3580380000,0.6900622397205014,1348.001001 +2012-03-08,1352.650024,1368.719971,1352.650024,1365.910034,3543060000,0.9817931696702198,1349.3293335 +2012-03-09,1365.969971,1374.76001,1365.969971,1370.869995,3639470000,0.36312501383968243,1351.0773315333333 +2012-03-12,1370.780029,1373.040039,1366.689941,1371.089966,3081870000,0.016046087579590917,1352.9026652 +2012-03-13,1371.920044,1396.130005,1371.920044,1395.949951,4386470000,1.8131549071521702,1355.6673299000001 +2012-03-14,1395.949951,1399.420044,1389.969971,1394.280029,4502280000,-0.11962620857601802,1358.3963297333332 +2012-03-15,1394.170044,1402.630005,1392.780029,1402.599976,4271650000,0.5967199434081527,1361.0133300666669 +2012-03-16,1402.550049,1405.880005,1401.469971,1404.170044,5163950000,0.11193982795276725,1363.6343302333335 +2012-03-19,1404.170044,1414.0,1402.430054,1409.75,3932570000,0.3973846347059773,1365.7959961000001 +2012-03-20,1409.589966,1409.589966,1397.680054,1405.52002,3695280000,-0.30005178223089235,1367.8356649 +2012-03-21,1405.52002,1407.75,1400.640015,1402.890015,3573590000,-0.18711971103763103,1369.6969971 +2012-03-22,1402.890015,1402.890015,1388.72998,1392.780029,3740590000,-0.7206542132242588,1371.1243327000002 +2012-03-23,1392.780029,1399.180054,1386.869995,1397.109985,3472950000,0.31088584771774563,1372.6296671666666 +2012-03-26,1397.109985,1416.579956,1397.109985,1416.51001,3576950000,1.3885825173599375,1375.0920003333333 +2012-03-27,1416.550049,1419.150024,1411.949951,1412.52002,3513640000,-0.2816775011706407,1377.1170003333332 +2012-03-28,1412.52002,1413.650024,1397.199951,1405.540039,3892800000,-0.49415094307830865,1378.9516683 +2012-03-29,1405.390015,1405.390015,1391.560059,1403.280029,3832000000,-0.16079300036219157,1380.9533366 +2012-03-30,1403.310059,1410.890015,1401.420044,1408.469971,3676890000,0.36984364437213646,1382.6343343333333 +2012-04-02,1408.469971,1422.380005,1404.459961,1419.040039,3572010000,0.7504645620875605,1384.5613363 +2012-04-03,1418.97998,1419.0,1404.619995,1413.380005,3822090000,-0.3988635869632384,1386.267004433333 +2012-04-04,1413.089966,1413.089966,1394.089966,1398.959961,3938290000,-1.020252440885494,1387.6436686666666 +2012-04-05,1398.790039,1401.599976,1392.920044,1398.079956,3303740000,-0.0629042306093508,1388.7976684999999 +2012-04-09,1397.449951,1397.449951,1378.23999,1382.199951,3468980000,-1.135843835815642,1389.3463338666668 +2012-04-10,1382.180054,1383.01001,1357.380005,1358.589966,4631730000,-1.708145408550954,1389.0463338666668 +2012-04-11,1358.97998,1374.709961,1358.97998,1368.709961,3743040000,0.7448895732533378,1388.9306641 +2012-04-12,1368.77002,1388.130005,1368.77002,1387.569946,3618280000,1.3779387552802502,1389.6603271666668 +2012-04-13,1387.609985,1387.609985,1369.849976,1370.26001,3631160000,-1.2475000665660207,1389.5326619666666 +2012-04-16,1370.27002,1379.660034,1365.380005,1369.569946,3574780000,-0.050360077281963456,1389.5306600000001 +2012-04-17,1369.569946,1392.76001,1369.569946,1390.780029,3456200000,1.5486673800010564,1390.4123291 +2012-04-18,1390.780029,1390.780029,1383.290039,1385.140015,3463140000,-0.40552883147562113,1391.8049967666666 +2012-04-19,1385.079956,1390.459961,1370.300049,1376.920044,4180020000,-0.5934397180778817,1392.6146647333333 +2012-04-20,1376.959961,1387.400024,1376.959961,1378.530029,3833320000,0.11692654246815426,1393.0353312333332 +2012-04-23,1378.530029,1378.530029,1358.790039,1366.939941,3654860000,-0.8407570206074855,1392.9043294333335 +2012-04-24,1366.969971,1375.569946,1366.819946,1371.969971,3617100000,0.36797739601639456,1392.9336629333334 +2012-04-25,1372.109985,1391.369995,1372.109985,1390.689941,3998430000,1.3644591642450798,1392.7583292666666 +2012-04-26,1390.640015,1402.089966,1387.280029,1399.97998,4034700000,0.6680165525120518,1392.9483276333335 +2012-04-27,1400.189941,1406.640015,1397.310059,1403.359985,3645830000,0.24143238105447384,1392.9736612666666 +2012-04-30,1403.26001,1403.26001,1394.0,1397.910034,3574010000,-0.3883501780193699,1392.7649942666665 +2012-05-01,1397.859985,1415.319946,1395.72998,1405.819946,3807950000,0.5658384164656471,1392.6339924666668 +2012-05-02,1405.5,1405.5,1393.920044,1402.310059,3803860000,-0.24966831705488524,1392.5269937666667 +2012-05-03,1402.319946,1403.069946,1388.709961,1391.569946,4004910000,-0.7658871824437141,1392.1496581333333 +2012-05-04,1391.51001,1391.51001,1367.959961,1369.099976,3975140000,-1.6147208456598894,1391.360323033333 +2012-05-07,1368.790039,1373.910034,1363.939941,1369.579956,3559390000,0.035058067958071426,1390.4426554 +2012-05-08,1369.160034,1369.160034,1347.75,1363.719971,4261670000,-0.4278673161306146,1388.6829874333334 +2012-05-09,1363.199951,1363.72998,1343.130005,1354.579956,4288540000,-0.67022667368416,1386.7516519666667 +2012-05-10,1354.579956,1365.880005,1354.579956,1357.98999,3727990000,0.2517410644455209,1385.1666503333333 +2012-05-11,1358.109985,1365.660034,1348.890015,1353.390015,3869070000,-0.3387340874287381,1383.5036498666666 +2012-05-14,1351.930054,1351.930054,1336.609985,1338.349976,3688120000,-1.1112863870212597,1381.1663167000002 +2012-05-15,1338.359985,1344.939941,1328.410034,1330.660034,4114040000,-0.574583788837002,1378.2203165333335 +2012-05-16,1330.780029,1341.780029,1324.790039,1324.800049,4280420000,-0.4403818293380879,1375.2676513333333 +2012-05-17,1324.819946,1326.359985,1304.859985,1304.859985,4664280000,-1.5051376254893167,1372.1309854666665 +2012-05-18,1305.050049,1312.23999,1291.97998,1295.219971,4512470000,-0.738777655136702,1368.7023193 +2012-05-21,1295.72998,1316.390015,1295.72998,1315.98999,3786750000,1.6035900823829996,1366.4953205999998 +2012-05-22,1316.089966,1328.48999,1310.040039,1316.630005,4123680000,0.048633728589364544,1365.0966552333334 +2012-05-23,1316.02002,1320.709961,1296.530029,1318.859985,4108330000,0.16937028561794243,1363.4349893666665 +2012-05-24,1318.719971,1324.140015,1310.5,1320.680054,3937670000,0.13800320130266108,1361.2053263000003 +2012-05-25,1320.810059,1324.199951,1314.22998,1317.819946,2872660000,-0.21656327672530118,1359.4573241666667 +2012-05-29,1318.900024,1334.930054,1318.900024,1332.420044,3441640000,1.1078977856053607,1358.2189941 +2012-05-30,1331.25,1331.25,1310.76001,1313.319946,3534290000,-1.4334892428261803,1355.6369913333333 +2012-05-31,1313.089966,1319.73999,1298.900024,1310.329956,4557620000,-0.22766653389425517,1353.1433227000002 +2012-06-01,1309.869995,1309.869995,1277.25,1278.040039,4669350000,-2.4642584756720654,1349.8473225333335 +2012-06-04,1278.290039,1282.550049,1266.73999,1278.180054,4011960000,0.010955447069527224,1346.5023233666666 +2012-06-05,1277.819946,1287.619995,1274.160034,1285.5,3403230000,0.5726850436362785,1343.7876586666666 +2012-06-06,1285.609985,1315.130005,1285.609985,1315.130005,4268360000,2.3049401011279613,1341.8929931333332 +2012-06-07,1316.150024,1329.050049,1312.680054,1314.98999,4258140000,-0.010646475973297154,1339.3696614333335 +2012-06-08,1314.98999,1325.810059,1307.77002,1325.660034,3497190000,0.8114163667511942,1336.8923299 +2012-06-11,1325.719971,1335.52002,1307.72998,1308.930054,3537530000,-1.262011343098246,1333.7446655333333 +2012-06-12,1309.400024,1324.310059,1306.619995,1324.180054,3442920000,1.1650737144736745,1331.2869995333335 +2012-06-13,1324.02002,1327.280029,1310.51001,1314.880005,3506510000,-0.7023251084251725,1328.2556681666667 +2012-06-14,1314.880005,1333.680054,1314.140015,1329.099976,3687720000,1.0814653007062747,1325.8153320666668 +2012-06-15,1329.189941,1343.319946,1329.189941,1342.839966,4401570000,1.033781524949795,1324.1909994 +2012-06-18,1342.420044,1348.219971,1334.459961,1344.780029,3259430000,0.14447462461062432,1323.3803345000001 +2012-06-19,1344.829956,1363.459961,1344.829956,1357.97998,3815350000,0.9815695292423321,1322.9936686333335 +2012-06-20,1358.040039,1361.569946,1346.449951,1355.689941,3695700000,-0.16863569667646683,1322.7260009666668 +2012-06-21,1355.430054,1358.27002,1324.410034,1325.51001,4094470000,-2.2261676573139155,1321.7570027666666 +2012-06-22,1325.920044,1337.819946,1325.920044,1335.02002,5271490000,0.7174604437728771,1320.9913371 +2012-06-25,1334.900024,1334.900024,1309.27002,1313.719971,3501820000,-1.595485362084681,1319.6690023 +2012-06-26,1314.089966,1324.23999,1310.300049,1319.98999,3412940000,0.4772721080906761,1319.0570027666665 +2012-06-27,1320.709961,1334.400024,1320.709961,1331.849976,3286910000,0.8984906014325,1319.0966674999997 +2012-06-28,1331.52002,1331.52002,1313.290039,1329.040039,3969370000,-0.2109799940410051,1319.2380005 +2012-06-29,1330.119995,1362.170044,1330.119995,1362.160034,4590480000,2.4920238689663643,1321.1480021333334 +2012-07-02,1362.329956,1366.349976,1355.699951,1365.51001,3301650000,0.24593116200617438,1323.4910034333332 +2012-07-03,1365.75,1374.810059,1363.530029,1374.02002,2116390000,0.6232111033737553,1325.4253377666669 +2012-07-05,1373.719971,1373.849976,1363.02002,1367.579956,3041520000,-0.468702341032845,1327.1236694666668 +2012-07-06,1367.089966,1367.089966,1348.030029,1354.680054,2745140000,-0.9432649216160383,1328.3176717666668 +2012-07-09,1354.660034,1354.869995,1346.650024,1352.459961,2904860000,-0.1638831983570288,1329.377002 +2012-07-10,1352.959961,1361.540039,1336.27002,1341.469971,3470600000,-0.8125926324557553,1330.1653361666665 +2012-07-11,1341.400024,1345.0,1333.25,1341.449951,3426290000,-0.0014923927059706799,1330.4663330666667 +2012-07-12,1341.290039,1341.290039,1325.410034,1334.76001,3654440000,-0.4987096980407668,1331.1810018666665 +2012-07-13,1334.810059,1357.699951,1334.810059,1356.780029,3212930000,1.6497361948984324,1332.7293376333332 +2012-07-16,1356.5,1357.26001,1348.51001,1353.640015,2862720000,-0.2314313251142397,1335.2493368333332 +2012-07-17,1353.680054,1365.359985,1345.069946,1363.670044,3566680000,0.7409672356649466,1338.0990031666668 +2012-07-18,1363.579956,1375.26001,1358.959961,1372.780029,3642630000,0.6680490665673222,1341.0083374666667 +2012-07-19,1373.01001,1380.390015,1371.209961,1376.51001,4043360000,0.2717100279144624,1343.0543376333335 +2012-07-20,1376.51001,1376.51001,1362.189941,1362.660034,3925020000,-1.006166021269983,1344.6433391 +2012-07-23,1362.339966,1362.339966,1337.560059,1350.52002,3717180000,-0.8909055595006987,1345.4720052999999 +2012-07-24,1350.52002,1351.530029,1329.23999,1338.310059,3891290000,-0.9040932988168549,1346.4513388000003 +2012-07-25,1338.349976,1343.97998,1331.5,1337.890015,3719170000,-0.03138614980700005,1346.9083375 +2012-07-26,1338.170044,1363.130005,1338.170044,1360.02002,4429300000,1.654097478259442,1348.4130046666667 +2012-07-27,1360.050049,1389.189941,1360.050049,1385.969971,4399010000,1.9080565446382147,1350.3086711666667 +2012-07-30,1385.939941,1391.73999,1381.369995,1385.300049,3212060000,-0.04833596787935379,1351.7240072666668 +2012-07-31,1385.27002,1387.160034,1379.170044,1379.319946,3821570000,-0.43168286930450606,1352.8753378333336 +2012-08-01,1379.319946,1385.030029,1373.349976,1375.319946,4440920000,-0.2899979813675513,1353.4533367 +2012-08-02,1375.130005,1375.130005,1354.650024,1365.0,4193740000,-0.7503669258934753,1353.763672 +2012-08-03,1365.449951,1394.160034,1365.449951,1390.98999,3751170000,1.9040285714285732,1355.9463380000002 +2012-08-06,1391.040039,1399.630005,1391.040039,1394.22998,3122050000,0.23292690984786368,1357.9200033333332 +2012-08-07,1394.459961,1407.140015,1394.459961,1401.349976,3682490000,0.5106758642501541,1360.8410035000002 +2012-08-08,1401.22998,1404.140015,1396.130005,1402.219971,3221790000,0.06208263566560568,1363.5820028666667 +2012-08-09,1402.26001,1405.949951,1398.800049,1402.800049,3119610000,0.041368545021236436,1365.9470053 +2012-08-10,1402.579956,1405.97998,1395.619995,1405.869995,2767980000,0.21884416116100258,1368.5080038333333 +2012-08-13,1405.869995,1405.869995,1397.319946,1404.109985,2499990000,-0.12519009625779898,1369.9063355333335 +2012-08-14,1404.359985,1410.030029,1400.599976,1403.930054,2930900000,-0.012814594435073268,1371.1870036666667 +2012-08-15,1403.890015,1407.72998,1401.829956,1405.530029,2655750000,0.11396401091645636,1372.2373373 +2012-08-16,1405.569946,1417.439941,1404.150024,1415.51001,3114100000,0.7100510692824136,1373.8350057666664 +2012-08-17,1415.839966,1418.709961,1414.670044,1418.160034,2922990000,0.18721337053633214,1375.9510051 +2012-08-20,1417.849976,1418.130005,1412.119995,1418.130005,2766320000,-0.0021174620127517585,1378.1400065666667 +2012-08-21,1418.130005,1426.680054,1410.859985,1413.170044,3282950000,-0.3497536179696059,1380.5300089999998 +2012-08-22,1413.089966,1416.119995,1406.780029,1413.48999,3062690000,0.02264030442469256,1382.9313436333332 +2012-08-23,1413.48999,1413.48999,1400.5,1402.079956,3008240000,-0.8072242520797746,1385.1753418333333 +2012-08-24,1401.98999,1413.459961,1398.040039,1411.130005,2598790000,0.6454731031045435,1386.9870077 +2012-08-27,1411.130005,1416.170044,1409.109985,1410.439941,2472500000,-0.04890151846781432,1388.8803385666668 +2012-08-28,1410.439941,1413.630005,1405.589966,1409.300049,2629090000,-0.08081818777706529,1390.4013387333332 +2012-08-29,1409.319946,1413.949951,1406.569946,1410.48999,2571220000,0.08443489382155,1391.6583374333336 +2012-08-30,1410.079956,1410.079956,1397.01001,1399.47998,2530280000,-0.780580513017326,1392.4240031 +2012-08-31,1400.069946,1413.089966,1398.959961,1406.579956,2938250000,0.5073295868083694,1393.8880004999999 +2012-09-04,1406.540039,1409.310059,1396.560059,1404.939941,3200310000,-0.11659593135848745,1395.7019978666665 +2012-09-05,1404.939941,1408.810059,1401.25,1403.439941,3389110000,-0.10676612972738697,1397.8729939333332 +2012-09-06,1403.73999,1432.119995,1403.73999,1432.119995,3952870000,2.043554067555209,1401.0139932666668 +2012-09-07,1432.119995,1437.920044,1431.449951,1437.920044,3717620000,0.4049974178315985,1403.6106607333336 +2012-09-10,1437.920044,1438.73999,1428.97998,1429.079956,3223670000,-0.6147830011054456,1405.0476602333333 +2012-09-11,1429.130005,1437.76001,1429.130005,1433.560059,3509630000,0.31349561521663016,1406.6563272333333 +2012-09-12,1433.560059,1439.150024,1432.98999,1436.560059,3641200000,0.2092692232296578,1408.564331 +2012-09-13,1436.560059,1463.76001,1435.339966,1459.98999,4606550000,1.6309746921621793,1411.3866658000002 +2012-09-14,1460.069946,1474.51001,1460.069946,1465.77002,5041990000,0.3958951800758559,1414.7456664666668 +2012-09-17,1465.420044,1465.630005,1457.550049,1461.189941,3482430000,-0.31246914164609896,1417.085664833333 +2012-09-18,1461.189941,1461.469971,1456.130005,1459.319946,3377390000,-0.12797754402280592,1419.2553303666668 +2012-09-19,1459.5,1465.150024,1457.880005,1461.050049,3451360000,0.11855542746073144,1421.2453328 +2012-09-20,1461.050049,1461.22998,1449.97998,1460.26001,3382520000,-0.05407337007659052,1423.1800007666668 +2012-09-21,1460.339966,1467.069946,1459.51001,1460.150024,4833870000,-0.007531946314132121,1425.0916666 +2012-09-24,1459.76001,1460.719971,1452.060059,1456.890015,3008920000,-0.22326534578066548,1426.7923339333333 +2012-09-25,1456.939941,1463.23999,1441.589966,1441.589966,3739900000,-1.0501855900220458,1428.0416666333333 +2012-09-26,1441.599976,1441.599976,1430.530029,1433.319946,3565380000,-0.5736735268036641,1429.0213297 +2012-09-27,1433.359985,1450.199951,1433.359985,1447.150024,3150330000,0.9648981749396546,1430.4086628666666 +2012-09-28,1447.130005,1447.130005,1435.599976,1440.670044,3509230000,-0.4477752750256747,1431.2473306666666 +2012-10-01,1440.900024,1457.140015,1440.900024,1444.48999,3505080000,0.26515065097030277,1432.1249958666667 +2012-10-02,1444.98999,1451.52002,1439.01001,1445.75,3321790000,0.08722871108299834,1433.0456623666666 +2012-10-03,1446.050049,1454.300049,1441.98999,1450.98999,3531640000,0.3624409476050472,1434.3063272333336 +2012-10-04,1451.079956,1463.140015,1451.079956,1461.400024,3615860000,0.7174435434940563,1435.9033283666665 +2012-10-05,1461.400024,1470.959961,1456.890015,1460.930054,3172940000,-0.03215888820869983,1437.8649983 +2012-10-08,1460.930054,1460.930054,1453.099976,1455.880005,2328720000,-0.34567356501243873,1439.3566649666668 +2012-10-09,1455.900024,1455.900024,1441.180054,1441.47998,3216320000,-0.9890942214018428,1440.3913329333332 +2012-10-10,1441.47998,1442.52002,1430.640015,1432.560059,3225060000,-0.6188029749813251,1441.1666665999999 +2012-10-11,1432.819946,1443.900024,1432.819946,1432.839966,3672540000,0.019538936482388358,1441.9116657999998 +2012-10-12,1432.839966,1438.430054,1425.530029,1428.589966,3134750000,-0.2966137252483625,1442.8819986666667 +2012-10-15,1428.75,1441.310059,1427.23999,1440.130005,3483810000,0.8077922479262201,1444.0003336333332 +2012-10-16,1440.310059,1455.51001,1440.310059,1454.920044,3568770000,1.0269933234256845,1445.6663370666668 +2012-10-17,1454.219971,1462.199951,1453.349976,1460.910034,3655320000,0.4117057858060491,1447.5820068333333 +2012-10-18,1460.939941,1464.02002,1452.630005,1457.339966,3880030000,-0.2443728851820537,1448.422672533333 +2012-10-19,1457.339966,1457.339966,1429.849976,1433.189941,3875170000,-1.6571304955208976,1448.2650024333334 +2012-10-22,1433.209961,1435.459961,1422.060059,1433.819946,3216220000,0.04395823484222294,1448.4230020999998 +2012-10-23,1433.73999,1433.73999,1407.560059,1413.109985,3587670000,-1.4443906334108192,1447.7413329666667 +2012-10-24,1413.199951,1420.040039,1407.099976,1408.75,3385970000,-0.3085382628585709,1446.814331 +2012-10-25,1409.73999,1421.119995,1405.140015,1412.969971,3512640000,0.29955428571428744,1445.2469970333332 +2012-10-26,1412.969971,1417.089966,1403.280029,1411.939941,3284910000,-0.07289822297291693,1443.4526610666667 +2012-10-31,1410.98999,1418.76001,1405.949951,1412.160034,3577110000,0.015587985976517338,1441.8183308333332 +2012-11-01,1412.199951,1428.349976,1412.199951,1427.589966,3929890000,1.0926475490383503,1440.7606648333335 +2012-11-02,1427.589966,1434.27002,1412.910034,1414.199951,3732480000,-0.9379454408409593,1439.1989949000001 +2012-11-05,1414.02002,1419.900024,1408.130005,1417.26001,2921040000,0.21638092957336763,1437.7656615666667 +2012-11-06,1417.26001,1433.380005,1417.26001,1428.390015,3306970000,0.7853184963569237,1436.7069946000001 +2012-11-07,1428.27002,1428.27002,1388.140015,1394.530029,4356490000,-2.37050004861592,1434.6283283999999 +2012-11-08,1394.530029,1401.22998,1377.51001,1377.51001,3779520000,-1.2204842237929392,1432.4923298666665 +2012-11-09,1377.550049,1391.390015,1373.030029,1379.849976,3647350000,0.16986925561432997,1430.7099975333333 +2012-11-12,1379.859985,1384.869995,1377.189941,1380.030029,2567540000,0.013048737408549727,1428.4726643666665 +2012-11-13,1380.030029,1388.810059,1371.390015,1374.530029,3455550000,-0.39854205230486217,1426.2679972 +2012-11-14,1374.640015,1380.130005,1352.5,1355.48999,4109510000,-1.3852035676406471,1423.3013305333334 +2012-11-15,1355.410034,1360.619995,1348.050049,1353.329956,3928870000,-0.1593544781544276,1420.2206624 +2012-11-16,1353.359985,1362.030029,1343.349976,1359.880005,4045910000,0.48399497631455013,1417.1836629 +2012-11-19,1359.880005,1386.890015,1359.880005,1386.890015,3374800000,1.9862053931736456,1414.6999959333334 +2012-11-20,1386.819946,1389.77002,1377.040039,1387.810059,3207160000,0.06633864185690008,1412.2626627666666 +2012-11-21,1387.790039,1391.25,1386.390015,1391.030029,2667090000,0.23201806177426398,1410.1009969 +2012-11-23,1391.030029,1409.160034,1391.030029,1409.150024,1504960000,1.3026314761174662,1409.0233317 +2012-11-26,1409.150024,1409.150024,1397.680054,1406.290039,2948960000,-0.20295816281376,1408.1476643666667 +2012-11-27,1406.290039,1409.01001,1398.030029,1398.939941,3323120000,-0.5226587543225802,1407.0176635333335 +2012-11-28,1398.77002,1410.310059,1385.430054,1409.930054,3359250000,0.7856029181741553,1406.3956664666666 +2012-11-29,1409.959961,1419.699951,1409.040039,1415.949951,3356850000,0.42696423009933593,1405.5896646666667 +2012-11-30,1415.949951,1418.859985,1411.630005,1416.180054,3966000000,0.016250786253957372,1404.2983316666666 +2012-12-03,1416.339966,1423.72998,1408.459961,1409.459961,3074280000,-0.4745225002300346,1402.5833292333334 +2012-12-04,1409.459961,1413.140015,1403.650024,1407.050049,3247710000,-0.1709812315839221,1400.9069986666666 +2012-12-05,1407.050049,1415.560059,1398.22998,1409.280029,4253920000,0.1584861890012279,1400.1100015999998 +2012-12-06,1409.430054,1413.949951,1405.930054,1413.939941,3229700000,0.3306590531412468,1399.447334766667 +2012-12-07,1413.949951,1420.339966,1410.900024,1418.069946,3125160000,0.29209196799964143,1399.6126668 +2012-12-10,1418.069946,1421.640015,1415.640015,1418.550049,2999430000,0.03385608737807022,1399.9393351 +2012-12-11,1418.550049,1434.27002,1418.550049,1427.839966,3650230000,0.6548882083186935,1400.4350016 +2012-12-12,1427.839966,1438.589966,1426.76001,1428.47998,3709050000,0.044823930919446475,1400.9863362333333 +2012-12-13,1428.47998,1431.359985,1416.0,1419.449951,3349960000,-0.6321424959697342,1401.2293334666667 +2012-12-14,1419.449951,1419.449951,1411.880005,1413.579956,3210170000,-0.4135401178368192,1400.7623331333334 +2012-12-17,1413.540039,1430.670044,1413.540039,1430.359985,3455610000,1.1870590643830559,1401.3010009333334 +2012-12-18,1430.469971,1448.0,1430.469971,1446.790039,4302240000,1.1486656626513492,1402.2853352333332 +2012-12-19,1446.790039,1447.75,1435.800049,1435.810059,3869800000,-0.7589200716082711,1402.5326700333333 +2012-12-20,1435.810059,1443.699951,1432.819946,1443.689941,3686580000,0.548810892541618,1404.1713337666665 +2012-12-21,1443.670044,1443.670044,1422.579956,1430.150024,5229160000,-0.937868763608718,1405.9260009 +2012-12-24,1430.150024,1430.150024,1424.660034,1426.660034,1248960000,-0.2440296431446276,1407.486336166667 +2012-12-26,1426.660034,1429.420044,1416.430054,1419.829956,2285030000,-0.4787460107682495,1408.8130004000002 +2012-12-27,1419.829956,1422.800049,1401.800049,1418.099976,2830180000,-0.1218441682181326,1410.2653319666667 +2012-12-28,1418.099976,1418.099976,1401.579956,1402.430054,2426680000,-1.1049941657992113,1411.8300007666664 +2012-12-31,1402.430054,1426.73999,1398.109985,1426.189941,3204330000,1.6941940834933167,1414.2586669333332 +2013-01-02,1426.189941,1462.430054,1426.189941,1462.420044,4202600000,2.540342065138712,1417.6766682333332 +2013-01-03,1462.420044,1465.469971,1455.530029,1459.369995,3829730000,-0.2085617612062718,1420.0926675666667 +2013-01-04,1459.369995,1467.939941,1458.98999,1466.469971,3424290000,0.4865096599440566,1422.7146646333333 +2013-01-07,1466.469971,1466.469971,1456.619995,1461.890015,3304970000,-0.3123116115959057,1425.076664166667 +2013-01-08,1461.890015,1461.890015,1451.640015,1457.150024,3601600000,-0.32423718278149494,1426.6766641666666 +2013-01-09,1457.150024,1464.72998,1457.150024,1461.02002,3674390000,0.2655866545145713,1428.5009968666668 +2013-01-10,1461.02002,1472.300049,1461.02002,1472.119995,4081840000,0.7597414715782014,1430.940332 +2013-01-11,1472.119995,1472.75,1467.579956,1472.050049,3340650000,-0.004751378979817034,1433.0109985000001 +2013-01-14,1472.050049,1472.050049,1465.689941,1470.680054,3003010000,-0.09306714815373596,1434.8353352666666 +2013-01-15,1470.670044,1473.310059,1463.76001,1472.339966,3135350000,0.11286696895667081,1436.7073323333332 +2013-01-16,1472.329956,1473.959961,1467.599976,1472.630005,3384080000,0.019699186784150058,1438.8130004666668 +2013-01-17,1472.630005,1485.160034,1472.630005,1480.939941,3706710000,0.5642921828147962,1441.2759968666667 +2013-01-18,1480.949951,1485.97998,1475.810059,1485.97998,3795740000,0.34032703558501964,1443.8326619 +2013-01-22,1485.97998,1492.560059,1481.160034,1492.560059,3570950000,0.4428107436548201,1446.4533325 +2013-01-23,1492.560059,1496.130005,1489.900024,1494.810059,3552010000,0.15074770267586857,1449.0113362666668 +2013-01-24,1494.810059,1502.27002,1489.459961,1494.819946,3699430000,0.0006614218268419236,1451.5536661666665 +2013-01-25,1494.819946,1503.26001,1494.819946,1502.959961,3476290000,0.5445481926958484,1454.057666 +2013-01-28,1502.959961,1503.22998,1496.329956,1500.180054,3388540000,-0.18496214617390594,1456.4476684666668 +2013-01-29,1500.180054,1509.349976,1498.089966,1507.839966,3949640000,0.5105995096772675,1459.3940023 +2013-01-30,1507.839966,1509.939941,1500.109985,1501.959961,3726810000,-0.38996214005379004,1462.3400024666666 +2013-01-31,1501.959961,1504.189941,1496.76001,1498.109985,3999880000,-0.2563301352878078,1464.5983358 +2013-02-01,1498.109985,1514.410034,1498.109985,1513.170044,3836320000,1.005270584322271,1466.8110026333334 +2013-02-04,1513.170044,1513.170044,1495.02002,1495.709961,3390000000,-1.1538744815384416,1468.8076660333331 +2013-02-05,1495.709961,1514.959961,1495.709961,1511.290039,3618360000,1.0416510156543657,1471.0610026333334 +2013-02-06,1511.290039,1512.530029,1504.709961,1512.119995,3611570000,0.05491705619586895,1473.7933349999998 +2013-02-07,1512.119995,1512.900024,1498.48999,1509.390015,3614580000,-0.18053990483738458,1476.5510010333335 +2013-02-08,1509.390015,1518.310059,1509.390015,1517.930054,2986150000,0.5657940568793318,1479.8210043 +2013-02-11,1517.930054,1518.310059,1513.609985,1517.01001,2684100000,-0.060611752008965514,1483.1180054333333 +2013-02-12,1517.01001,1522.290039,1515.609985,1519.430054,3414370000,0.15952722685066423,1487.0180054333334 +2013-02-13,1519.430054,1524.689941,1515.930054,1520.329956,3385880000,0.059226286700786446,1490.1560059333335 +2013-02-14,1520.329956,1523.140015,1514.02002,1521.380005,3759740000,0.06906717820405195,1492.1213379666667 +2013-02-15,1521.380005,1524.23999,1514.140015,1519.790039,3838510000,-0.10450814357849669,1494.1353394333335 +2013-02-19,1519.790039,1530.939941,1519.790039,1530.939941,3748910000,0.7336475245841578,1496.2843384333332 +2013-02-20,1530.939941,1530.939941,1511.410034,1511.949951,4240570000,-1.2404137805429483,1497.9530029666666 +2013-02-21,1511.949951,1511.949951,1497.290039,1502.420044,4274600000,-0.630305718367008,1499.4620036333333 +2013-02-22,1502.420044,1515.640015,1502.420044,1515.599976,3419320000,0.8772468160708424,1501.2813354999998 +2013-02-25,1515.599976,1525.839966,1487.849976,1487.849976,4011050000,-1.8309580654150115,1501.8056682 +2013-02-26,1487.849976,1498.98999,1485.01001,1496.939941,3975280000,0.6109463418104921,1502.6353312666665 +2013-02-27,1496.939941,1520.079956,1494.880005,1515.98999,3551850000,1.2725994195381007,1504.1456624666669 +2013-02-28,1515.98999,1525.339966,1514.459961,1514.680054,3912320000,-0.08640795840612059,1505.5569987333333 +2013-03-01,1514.680054,1519.98999,1501.47998,1518.199951,3695610000,0.23238551208915048,1507.0759969333333 +2013-03-04,1518.199951,1525.27002,1512.290039,1525.199951,3414430000,0.46107233736829567,1508.5513306 +2013-03-05,1525.199951,1543.469971,1525.199951,1539.790039,3610690000,0.9566016567489344,1510.3449992333335 +2013-03-06,1539.790039,1545.25,1538.109985,1541.459961,3676890000,0.10845127957084255,1511.9749959666667 +2013-03-07,1541.459961,1545.780029,1541.459961,1544.26001,3634710000,0.1816491554009314,1513.6233276666667 +2013-03-08,1544.26001,1552.47998,1542.939941,1551.180054,3652260000,0.44811391573884585,1515.5019979333333 +2013-03-11,1551.150024,1556.27002,1547.359985,1556.219971,3091080000,0.3249085744110536,1517.2773316 +2013-03-12,1556.219971,1556.77002,1548.23999,1552.47998,3274910000,-0.2403253440833697,1519.0206624666666 +2013-03-13,1552.47998,1556.390015,1548.25,1554.52002,3073830000,0.13140523718702113,1520.5766642666667 +2013-03-14,1554.52002,1563.319946,1554.52002,1563.22998,3459260000,0.5602989918393142,1522.6189982333333 +2013-03-15,1563.209961,1563.619995,1555.73999,1560.699951,5175850000,-0.1618462435066692,1524.7053304333335 +2013-03-18,1560.699951,1560.699951,1545.130005,1552.099976,3164560000,-0.5510332075354896,1526.0029948333333 +2013-03-19,1552.099976,1557.25,1538.569946,1548.339966,3796210000,-0.242253080222965,1527.7573283333334 +2013-03-20,1548.339966,1561.560059,1548.339966,1558.709961,3349090000,0.6697492299956531,1529.3379924 +2013-03-21,1558.709961,1558.709961,1543.550049,1545.800049,3243270000,-0.8282433758053154,1530.4606608666666 +2013-03-22,1545.900024,1557.73999,1545.900024,1556.890015,2948380000,0.7174256468146956,1532.0439942 +2013-03-25,1556.890015,1564.910034,1546.219971,1551.689941,3178170000,-0.3340039405416717,1533.1693237666666 +2013-03-26,1551.689941,1563.949951,1551.689941,1563.77002,2869260000,0.7785111368457276,1534.7279907666668 +2013-03-27,1563.75,1564.069946,1551.900024,1562.849976,2914210000,-0.0588349941636479,1536.1753214999999 +2013-03-28,1562.859985,1570.280029,1561.079956,1569.189941,3304440000,0.4056668968461574,1537.8039876666664 +2013-04-01,1569.180054,1570.569946,1558.469971,1562.170044,2753110000,-0.44735801680748644,1539.1636556333333 +2013-04-02,1562.170044,1573.660034,1562.170044,1570.25,3312160000,0.5172264076521937,1540.8456543333334 +2013-04-03,1570.25,1571.469971,1549.800049,1553.689941,4060610000,-1.054612896035656,1541.6039876666666 +2013-04-04,1553.689941,1562.599976,1552.52002,1559.97998,3350670000,0.4048451904085537,1543.2049886333334 +2013-04-05,1559.97998,1559.97998,1539.5,1553.280029,3515410000,-0.42948955024409985,1544.9003214666666 +2013-04-08,1553.26001,1563.069946,1548.630005,1563.069946,2887120000,0.630273795917069,1546.4826538000002 +2013-04-09,1563.109985,1573.890015,1560.920044,1568.609985,3252780000,0.3544332110138271,1549.1746541 +2013-04-10,1568.609985,1589.069946,1568.609985,1587.72998,3453350000,1.218913253315801,1552.2009887333334 +2013-04-11,1587.72998,1597.349976,1586.170044,1593.369995,3393950000,0.35522507422829364,1554.7803222333334 +2013-04-12,1593.300049,1593.300049,1579.969971,1588.849976,3206290000,-0.2836766736027285,1557.2526529666668 +2013-04-15,1588.839966,1588.839966,1552.280029,1552.359985,4660130000,-2.2966291060320887,1558.3913207666667 +2013-04-16,1552.359985,1575.349976,1552.359985,1574.569946,3654700000,1.4307223333897001,1560.0369872666665 +2013-04-17,1574.569946,1574.569946,1543.689941,1552.01001,4250310000,-1.4327681064477793,1560.4443196333334 +2013-04-18,1552.030029,1554.380005,1536.030029,1541.609985,3890800000,-0.6701003816334872,1560.4493204333332 +2013-04-19,1541.609985,1555.890015,1539.400024,1555.25,3569870000,0.8847902603588809,1560.8156534333332 +2013-04-22,1555.25,1565.550049,1548.189941,1562.5,2979880000,0.4661629963028435,1561.1929849666667 +2013-04-23,1562.5,1579.579956,1562.5,1578.780029,3565150000,1.0419218560000054,1561.9449868999998 +2013-04-24,1578.780029,1583.0,1575.800049,1578.790039,3598240000,0.0006340338626120712,1562.8219888666667 +2013-04-25,1578.930054,1592.640015,1578.930054,1585.160034,3908580000,0.4034732195317581,1563.8433226666666 +2013-04-26,1585.160034,1585.780029,1577.560059,1582.23999,3198620000,-0.1842113059481787,1564.4769896666667 +2013-04-29,1582.339966,1596.650024,1582.339966,1593.609985,2891200000,0.7186011649218838,1565.5739907999998 +2013-04-30,1593.579956,1597.569946,1586.5,1597.569946,3745070000,0.24848997165389797,1567.0896564666666 +2013-05-01,1597.550049,1597.550049,1581.280029,1582.699951,3530320000,-0.9307883537263306,1568.2349893 +2013-05-02,1582.77002,1598.599976,1582.77002,1597.589966,3366950000,0.940798348454619,1569.5309894666668 +2013-05-03,1597.599976,1618.459961,1597.599976,1614.420044,3603910000,1.053466681575288,1571.8183226333335 +2013-05-06,1614.400024,1619.77002,1614.209961,1617.5,3062240000,0.1907778592967091,1573.8386554666665 +2013-05-07,1617.550049,1626.030029,1616.640015,1625.959961,3309580000,0.5230269551777411,1576.3143228000001 +2013-05-08,1625.949951,1632.780029,1622.699951,1632.689941,3554700000,0.41390810114789733,1578.6116534999999 +2013-05-09,1632.689941,1635.01001,1623.089966,1626.670044,3457400000,-0.3687103625023225,1580.7389891 +2013-05-10,1626.689941,1633.699951,1623.709961,1633.699951,3086470000,0.43216551665963276,1582.8893227666667 +2013-05-13,1632.099976,1636.0,1626.73999,1633.77002,2910600000,0.004288976072808204,1585.2759886333333 +2013-05-14,1633.75,1651.099976,1633.75,1650.339966,3457790000,1.014215330013224,1587.9456541666666 +2013-05-15,1649.130005,1661.48999,1646.680054,1658.780029,3657440000,0.5114135980392343,1591.4486571000002 +2013-05-16,1658.069946,1660.51001,1648.599976,1650.469971,3513130000,-0.5009740806326102,1594.4649901333332 +2013-05-17,1652.449951,1667.469971,1652.449951,1667.469971,3440710000,1.030009651717556,1598.2713215333335 +2013-05-20,1665.709961,1672.839966,1663.52002,1666.290039,3275080000,-0.07076181403689041,1601.7119913 +2013-05-21,1666.199951,1674.930054,1662.670044,1669.160034,3513560000,0.17223862189816863,1605.0636596 +2013-05-22,1669.390015,1687.180054,1648.859985,1655.349976,4361020000,-0.827365723998641,1607.3176594666666 +2013-05-23,1651.619995,1655.5,1635.530029,1650.51001,3945510000,-0.29238324645374236,1609.2223266333335 +2013-05-24,1646.670044,1649.780029,1636.880005,1649.599976,2758080000,-0.05513653322223311,1611.2473266333334 +2013-05-28,1652.630005,1674.209961,1652.630005,1660.060059,3457400000,0.6340981542303226,1614.8373290999998 +2013-05-29,1656.569946,1656.569946,1640.050049,1648.359985,3587140000,-0.7047982352546889,1617.2969970666668 +2013-05-30,1649.140015,1661.910034,1648.609985,1654.410034,3498620000,0.36703444969878873,1620.7103312 +2013-05-31,1652.130005,1658.98999,1630.73999,1630.73999,4099600000,-1.430724156258345,1623.6813313666669 +2013-06-03,1631.709961,1640.420044,1622.719971,1640.420044,3952070000,0.5935988606007081,1626.5203328333334 +2013-06-04,1640.72998,1646.530029,1623.619995,1631.380005,3653840000,-0.5510807450241018,1628.816333 +2013-06-05,1629.050049,1629.310059,1607.089966,1608.900024,3632350000,-1.3779733067158628,1629.8203328333334 +2013-06-06,1609.290039,1622.560059,1598.22998,1622.560059,3547380000,0.8490294484575056,1631.2793335 +2013-06-07,1625.27002,1644.400024,1625.27002,1643.380005,3371990000,1.283154104805928,1633.2199991999998 +2013-06-10,1644.670044,1648.689941,1639.26001,1642.810059,2978730000,-0.03468132740243046,1635.2390014999999 +2013-06-11,1638.640015,1640.130005,1622.920044,1626.130005,3435710000,-1.0153367340685282,1636.3230021666668 +2013-06-12,1629.939941,1637.709961,1610.920044,1612.52002,3202550000,-0.8369555298870512,1636.8213379666668 +2013-06-13,1612.150024,1639.25,1608.069946,1636.359985,3378620000,1.4784290864184202,1638.6100057666665 +2013-06-14,1635.52002,1640.800049,1623.959961,1626.72998,2939400000,-0.5885016187315295,1639.5813395666667 +2013-06-17,1630.640015,1646.5,1630.339966,1639.040039,3137080000,0.756736468335073,1640.4020060666667 +2013-06-18,1639.77002,1654.189941,1639.77002,1651.810059,3120980000,0.7791158053582992,1641.5456746999998 +2013-06-19,1651.829956,1652.449951,1628.910034,1628.930054,3545060000,-1.3851474553830623,1641.6446778 +2013-06-20,1624.619995,1624.619995,1584.319946,1588.189941,4858850000,-2.5010351365277073,1640.1613444666666 +2013-06-21,1588.619995,1599.189941,1577.699951,1592.430054,5797280000,0.266977701504012,1639.0200114666666 +2013-06-24,1588.77002,1588.77002,1560.329956,1573.089966,4733660000,-1.2145015695615546,1636.9996786333334 +2013-06-25,1577.52002,1593.790039,1577.089966,1588.030029,3761170000,0.9497271817192399,1635.4750122666667 +2013-06-26,1592.27002,1606.829956,1592.27002,1603.26001,3558340000,0.95904867803982,1633.9056804 +2013-06-27,1606.439941,1620.069946,1606.439941,1613.199951,3364540000,0.6199830930729844,1632.3863444666665 +2013-06-28,1611.119995,1615.939941,1601.060059,1606.280029,4977190000,-0.4289562490818577,1630.9133464 +2013-07-01,1609.780029,1626.609985,1609.780029,1614.959961,3104690000,0.5403747692364513,1629.1630127333333 +2013-07-02,1614.290039,1624.26001,1606.77002,1614.079956,3317130000,-0.05449082461803645,1627.4226766333334 +2013-07-03,1611.47998,1618.969971,1604.569946,1615.410034,1966050000,0.08240471576737018,1625.6310099666666 +2013-07-05,1618.650024,1632.069946,1614.709961,1631.890015,2634140000,1.020173247233891,1624.8490112666666 +2013-07-08,1634.199951,1644.680054,1634.199951,1640.459961,3514590000,0.5251546318211897,1624.5140096333332 +2013-07-09,1642.890015,1654.180054,1642.890015,1652.319946,3155360000,0.7229670508245967,1624.6046753 +2013-07-10,1651.560059,1657.920044,1647.660034,1652.619995,3011010000,0.018159255459360146,1624.3566731666667 +2013-07-11,1657.410034,1676.630005,1657.410034,1675.02002,3446340000,1.3554250261869738,1625.245341 +2013-07-12,1675.26001,1680.189941,1672.329956,1680.189941,3039070000,0.30864831096169,1626.1046712333334 +2013-07-15,1679.589966,1684.51001,1677.890015,1682.5,2623200000,0.1374879674987728,1627.8300049 +2013-07-16,1682.699951,1683.72998,1671.839966,1676.26001,3081710000,-0.37087607726598026,1629.0246704333333 +2013-07-17,1677.910034,1684.75,1677.910034,1680.910034,3153440000,0.2774046969002075,1630.6756714 +2013-07-18,1681.050049,1693.119995,1681.050049,1689.369995,3452370000,0.5032964780314897,1633.3580037666666 +2013-07-19,1686.150024,1692.089966,1684.079956,1692.089966,3302580000,0.16100504969605023,1635.6756673333334 +2013-07-22,1694.410034,1697.609985,1690.670044,1695.530029,2779130000,0.2033026061925236,1637.4140014666668 +2013-07-23,1696.630005,1698.780029,1691.130005,1692.390015,3096180000,-0.1851936530933629,1639.0666666666666 +2013-07-24,1696.060059,1698.380005,1682.569946,1685.939941,3336120000,-0.3811221965877576,1641.0603311999998 +2013-07-25,1685.209961,1690.939941,1680.069946,1690.25,3322500000,0.2556472443166369,1643.651330533333 +2013-07-26,1687.310059,1691.849976,1676.030029,1691.650024,2762770000,0.08282940393433691,1645.4943318333333 +2013-07-29,1690.319946,1690.920044,1681.859985,1685.329956,2840520000,-0.3736037543425108,1647.4476643666667 +2013-07-30,1687.920044,1693.189941,1682.420044,1685.959961,3320530000,0.037381700702421305,1649.0116617666667 +2013-07-31,1687.76001,1698.430054,1684.939941,1685.72998,3847390000,-0.013640952651305938,1650.1423258 +2013-08-01,1689.420044,1707.849976,1689.420044,1706.869995,3775170000,1.2540570109573546,1652.7403238333332 +2013-08-02,1706.099976,1709.670044,1700.680054,1709.670044,3136630000,0.164045827051984,1656.7896606 +2013-08-05,1708.01001,1709.23999,1703.550049,1707.140015,2529300000,-0.1479834666858082,1660.6133259666667 +2013-08-06,1705.790039,1705.790039,1693.290039,1697.369995,3141210000,-0.5723033795795529,1664.7559936 +2013-08-07,1695.300049,1695.300049,1684.910034,1690.910034,3010230000,-0.38058649669956424,1668.1853271 +2013-08-08,1693.349976,1700.180054,1688.380005,1697.47998,3271660000,0.38854497684055467,1671.3259927666666 +2013-08-09,1696.099976,1699.420044,1686.02002,1691.420044,2957670000,-0.35699602183232315,1673.9333292000001 +2013-08-12,1688.369995,1691.48999,1683.349976,1689.469971,2789160000,-0.11529205929168285,1676.7063272666667 +2013-08-13,1690.650024,1696.810059,1682.619995,1694.160034,3035560000,0.27760558521343626,1679.3463297 +2013-08-14,1693.880005,1695.52002,1684.829956,1685.390015,2871430000,-0.517661780705192,1681.7233316666668 +2013-08-15,1679.609985,1679.609985,1658.589966,1661.319946,3426690000,-1.4281601757323736,1683.2536620666665 +2013-08-16,1661.219971,1663.599976,1652.609985,1655.829956,3211450000,-0.3304595248626474,1684.0516601000002 +2013-08-19,1655.25,1659.180054,1645.839966,1646.060059,2904530000,-0.5900302120153245,1684.2383300333336 +2013-08-20,1646.810059,1658.920044,1646.079956,1652.349976,2994090000,0.38211953237121676,1684.2393310333332 +2013-08-21,1650.660034,1656.98999,1639.430054,1642.800049,2932180000,-0.5779603073628792,1683.9119994999999 +2013-08-22,1645.030029,1659.550049,1645.030029,1656.959961,2537460000,0.8619376416880042,1683.3099975333332 +2013-08-23,1659.920044,1664.849976,1654.810059,1663.5,2582670000,0.39470108837469375,1682.7536661666666 +2013-08-26,1664.290039,1669.51001,1656.02002,1656.780029,2430670000,-0.4039657950105191,1681.8963337999999 +2013-08-27,1652.540039,1652.540039,1629.050049,1630.47998,3219190000,-1.587419484762509,1680.3703328000001 +2013-08-28,1630.25,1641.180054,1627.469971,1634.959961,2784010000,0.2747645512335639,1678.8386637 +2013-08-29,1633.5,1646.410034,1630.880005,1638.170044,2527550000,0.19634015979428376,1677.1319986666667 +2013-08-30,1638.890015,1640.079956,1628.050049,1632.969971,2734300000,-0.31743182089343236,1675.1613321666666 +2013-09-03,1635.949951,1651.349976,1633.410034,1639.77002,3731610000,0.4164221706928206,1673.3026651999999 +2013-09-04,1640.719971,1655.719971,1637.410034,1653.079956,3312150000,0.8116952888308049,1671.9923299 +2013-09-05,1653.280029,1659.170044,1653.069946,1655.079956,2957110000,0.12098628337611217,1670.9636637333335 +2013-09-06,1657.439941,1664.829956,1640.619995,1655.170044,3123880000,0.005443120718928718,1669.7943318666667 +2013-09-09,1656.849976,1672.400024,1656.849976,1671.709961,3102780000,0.9992880828140427,1669.1296631 +2013-09-10,1675.109985,1684.089966,1675.109985,1683.98999,3691800000,0.7345789213730747,1669.0849975666667 +2013-09-11,1681.040039,1689.130005,1678.699951,1689.130005,3135460000,0.3052283582754445,1669.1906657 +2013-09-12,1689.209961,1689.969971,1681.959961,1683.420044,3106290000,-0.3380415351747934,1669.1136678333335 +2013-09-13,1685.040039,1688.72998,1682.219971,1687.98999,2736500000,0.27146795693018255,1668.4843343333334 +2013-09-16,1691.699951,1704.949951,1691.699951,1697.599976,3079800000,0.5693153429185971,1668.0819987333334 +2013-09-17,1697.72998,1705.52002,1697.72998,1704.76001,2774240000,0.42177392207973785,1668.0026652333333 +2013-09-18,1705.73999,1729.439941,1700.349976,1725.52002,3989760000,1.2177673032111924,1668.9409994 +2013-09-19,1727.339966,1729.859985,1720.199951,1722.339966,3740130000,-0.18429539867059752,1669.9886637999998 +2013-09-20,1722.439941,1725.22998,1708.890015,1709.910034,5074030000,-0.7216886471529516,1670.4029989333333 +2013-09-23,1711.439941,1711.439941,1697.099976,1701.839966,3126950000,-0.4719586317135982,1670.7503296666666 +2013-09-24,1702.599976,1707.630005,1694.900024,1697.420044,3268930000,-0.2597143144069336,1671.0153321 +2013-09-25,1698.02002,1701.709961,1691.880005,1692.77002,3148730000,-0.27394657064624406,1670.9689983 +2013-09-26,1694.050049,1703.849976,1693.109985,1698.670044,2813930000,0.34854256220817614,1671.4116659333333 +2013-09-27,1695.52002,1695.52002,1687.109985,1691.75,2951700000,-0.4073801162528756,1672.4260010666667 +2013-09-30,1687.26001,1687.26001,1674.98999,1681.550049,3308630000,-0.6029230678291753,1673.2833375 +2013-10-01,1682.410034,1696.550049,1682.069946,1695.0,3238690000,0.7998543372526257,1674.9146688666665 +2013-10-02,1691.900024,1693.869995,1680.339966,1693.869995,3148600000,-0.06666696165191777,1676.2986695 +2013-10-03,1692.349976,1692.349976,1670.359985,1678.660034,3279650000,-0.8979414621486326,1677.4940023333334 +2013-10-04,1678.790039,1691.939941,1677.329956,1690.5,2880270000,0.7053224452950868,1678.6120036333334 +2013-10-07,1687.150024,1687.150024,1674.699951,1676.119995,2678490000,-0.8506362023070091,1679.0326701333333 +2013-10-08,1676.219971,1676.790039,1655.030029,1655.449951,3569230000,-1.2332078885557318,1678.9883342 +2013-10-09,1656.98999,1662.469971,1646.469971,1656.400024,3577840000,0.057390620563668726,1679.8523356666665 +2013-10-10,1660.880005,1692.560059,1660.880005,1692.560059,3362300000,2.1830496544354094,1681.7723389333332 +2013-10-11,1691.089966,1703.439941,1688.52002,1703.199951,2944670000,0.6286271464001292,1683.9400025 +2013-10-14,1699.859985,1711.030029,1692.130005,1710.140015,2580580000,0.4074720643295615,1686.5123373 +2013-10-15,1709.170044,1711.569946,1695.930054,1698.060059,3327740000,-0.7063723375889785,1688.4553386000002 +2013-10-16,1700.48999,1721.76001,1700.48999,1721.540039,3486180000,1.3827532115576302,1690.737341366667 +2013-10-17,1720.170044,1733.449951,1714.119995,1733.150024,3453590000,0.6743952935735376,1693.3396769666665 +2013-10-18,1736.719971,1745.310059,1735.73999,1744.5,3664890000,0.6548755643094761,1696.3173421666665 +2013-10-21,1745.199951,1747.790039,1740.670044,1744.660034,3052710000,0.009173631413017524,1698.7490112666667 +2013-10-22,1746.47998,1759.329956,1746.47998,1754.670044,3850840000,0.5737513214565837,1701.1050130666665 +2013-10-23,1752.27002,1752.27002,1740.5,1746.380005,3713380000,-0.47245572056965335,1703.0133464 +2013-10-24,1747.47998,1753.939941,1745.5,1752.069946,3671700000,0.3258134531836987,1705.3016764666668 +2013-10-25,1756.01001,1759.819946,1752.449951,1759.77002,3175720000,0.43948439487699886,1707.6943441333335 +2013-10-28,1759.420044,1764.98999,1757.670044,1762.109985,3282300000,0.13296993205964558,1709.8446777666666 +2013-10-29,1762.930054,1772.089966,1762.930054,1771.949951,3358460000,0.5584195131837832,1712.0843424666666 +2013-10-30,1772.27002,1775.219971,1757.23999,1763.310059,3523040000,-0.4875923270363347,1713.3440104333336 +2013-10-31,1763.23999,1768.530029,1755.719971,1756.540039,3826530000,-0.38393814890611555,1714.4840128666667 +2013-11-01,1758.699951,1765.670044,1752.699951,1761.640015,3686290000,0.2903421434619524,1716.2083455666666 +2013-11-04,1763.400024,1768.780029,1761.560059,1767.930054,3194870000,0.3570558653551048,1718.4113485 +2013-11-05,1765.670044,1767.030029,1755.76001,1762.969971,3516680000,-0.2805587805228882,1720.596346066667 +2013-11-06,1765.0,1773.73999,1764.400024,1770.48999,3322100000,0.4265540039649407,1723.1870117333333 +2013-11-07,1770.73999,1774.540039,1746.199951,1747.150024,4143200000,-1.3182772075429838,1724.8030110666666 +2013-11-08,1748.369995,1770.780029,1747.630005,1770.609985,3837170000,1.342755955569852,1727.4316772333334 +2013-11-11,1769.959961,1773.439941,1767.849976,1771.890015,2534060000,0.07229316511505601,1730.4430094333334 +2013-11-12,1769.51001,1771.780029,1762.290039,1767.689941,3221030000,-0.23703920471609408,1732.8660074666666 +2013-11-13,1764.369995,1782.0,1760.640015,1782.0,3327480000,0.8095344476477973,1735.8036743 +2013-11-14,1782.75,1791.530029,1780.219971,1790.619995,3139060000,0.48372586980920396,1739.5356729999999 +2013-11-15,1790.660034,1798.219971,1790.660034,1798.180054,3254820000,0.4222034279249609,1743.1250081333335 +2013-11-18,1798.819946,1802.329956,1788.0,1791.530029,3168520000,-0.3698197510981771,1746.9720092666669 +2013-11-19,1790.790039,1795.51001,1784.719971,1787.869995,3224450000,-0.2042965476857228,1751.3860107333333 +2013-11-20,1789.589966,1795.72998,1777.22998,1781.369995,3109140000,-0.36356111004592906,1755.5516764333333 +2013-11-21,1783.52002,1797.160034,1783.52002,1795.849976,3256630000,0.8128564554608309,1758.9946736666668 +2013-11-22,1797.209961,1804.839966,1794.699951,1804.76001,3055140000,0.4961457871801578,1762.3800089666665 +2013-11-25,1806.329956,1808.099976,1800.579956,1802.47998,2998540000,-0.12633424872927623,1765.4580078 +2013-11-26,1802.869995,1808.420044,1800.77002,1802.75,3427120000,0.014980471516801153,1768.9476724999997 +2013-11-27,1803.47998,1808.27002,1802.77002,1807.22998,2613590000,0.2485081126057498,1771.8040038666666 +2013-11-29,1808.689941,1813.550049,1803.97998,1805.810059,1598300000,-0.07856891572814995,1774.2260050333332 +2013-12-02,1806.550049,1810.02002,1798.599976,1800.900024,3095430000,-0.27190207383820386,1776.1060058333335 +2013-12-03,1800.099976,1800.099976,1787.849976,1795.150024,3475680000,-0.31928479778842167,1777.7890055 +2013-12-04,1793.150024,1799.800049,1779.089966,1792.810059,3610540000,-0.13034927269121033,1779.0603393333333 +2013-12-05,1792.819946,1792.819946,1783.380005,1785.030029,3336880000,-0.4339572929627278,1780.3486734666665 +2013-12-06,1788.359985,1806.040039,1788.359985,1805.089966,3150030000,1.1237870889621915,1782.1160074666666 +2013-12-09,1806.209961,1811.52002,1806.209961,1808.369995,3129500000,0.18171000126205872,1783.7360066333333 +2013-12-10,1807.599976,1808.52002,1801.75,1802.619995,3117150000,-0.31796590387466184,1785.0863403 +2013-12-11,1802.76001,1802.969971,1780.089966,1782.219971,3472240000,-1.1316874358758056,1785.4286743 +2013-12-12,1781.709961,1782.98999,1772.280029,1775.5,3306640000,-0.37705620570671616,1785.8350056666668 +2013-12-13,1777.97998,1780.920044,1772.449951,1775.319946,3061070000,-0.010141030695576259,1786.4610025666666 +2013-12-16,1777.47998,1792.219971,1777.47998,1786.540039,3209890000,0.6320039959715418,1787.2910033666667 +2013-12-17,1786.469971,1786.77002,1777.050049,1781.0,3270030000,-0.3100987875480743,1787.7266682333334 +2013-12-18,1781.459961,1811.079956,1767.98999,1810.650024,4327770000,1.6647964065132026,1789.3160033333334 +2013-12-19,1809.0,1810.880005,1801.349976,1809.599976,3497210000,-0.05799287471801584,1790.6196695333335 +2013-12-20,1810.390015,1823.75,1810.25,1818.319946,5097700000,0.48187279595763854,1792.9920002666665 +2013-12-23,1822.920044,1829.75,1822.920044,1827.98999,2851540000,0.5318120180814345,1794.9046670999999 +2013-12-24,1828.02002,1833.319946,1828.02002,1833.319946,1307630000,0.29157468198171,1796.9523314666667 +2013-12-26,1834.959961,1842.839966,1834.959961,1842.02002,1982270000,0.4745529561810624,1799.4300007666668 +2013-12-27,1842.969971,1844.890015,1839.810059,1841.400024,2052920000,-0.03365848325578291,1801.4100015666668 +2013-12-30,1841.469971,1842.469971,1838.77002,1841.069946,2293860000,-0.01792538262723742,1803.0916666 +2013-12-31,1842.609985,1849.439941,1842.410034,1848.359985,2312840000,0.395967519639262,1804.7643309666666 +2014-01-02,1845.859985,1845.859985,1827.73999,1831.97998,3080600000,-0.8861912794546845,1806.1126626666667 +2014-01-03,1833.209961,1838.23999,1829.130005,1831.369995,2774270000,-0.03329648831642551,1807.5626626666667 +2014-01-06,1832.310059,1837.160034,1823.72998,1826.77002,3294850000,-0.25117671538569253,1809.0759968333334 +2014-01-07,1828.709961,1840.099976,1828.709961,1837.880005,3511750000,0.6081764468633066,1810.4769978 +2014-01-08,1837.900024,1840.02002,1831.400024,1837.48999,3652140000,-0.021220917521214133,1811.5679971333334 +2014-01-09,1839.0,1843.22998,1830.380005,1838.130005,3581150000,0.03483093804499404,1812.7563313 +2014-01-10,1840.060059,1843.150024,1832.430054,1842.369995,3335710000,0.23066866807388564,1814.0769978 +2014-01-13,1841.26001,1843.449951,1815.52002,1819.199951,3591350000,-1.2576216537872997,1814.4759968333335 +2014-01-14,1821.359985,1839.26001,1821.359985,1838.880005,3353270000,1.0817971927264969,1815.578328366667 +2014-01-15,1840.52002,1850.839966,1840.52002,1848.380005,3777800000,0.5166188100457436,1817.1609944000002 +2014-01-16,1847.98999,1847.98999,1840.300049,1845.890015,3491310000,-0.13471201772711217,1818.8523274333334 +2014-01-17,1844.22998,1846.040039,1835.22998,1838.699951,3626120000,-0.38951746537292387,1820.3819905000003 +2014-01-21,1841.050049,1849.310059,1832.380005,1843.800049,3782470000,0.2773752181385536,1822.3409911666668 +2014-01-22,1844.709961,1846.869995,1840.880005,1844.859985,3374170000,0.05748649375374448,1823.6666584666668 +2014-01-23,1842.290039,1842.290039,1820.060059,1828.459961,3972250000,-0.8889576517103537,1824.336324 +2014-01-24,1826.959961,1826.959961,1790.290039,1790.290039,4618450000,-2.0875448636635485,1823.9253254666667 +2014-01-27,1791.030029,1795.97998,1772.880005,1781.560059,4045200000,-0.48762936785797795,1823.9033284 +2014-01-28,1783.0,1793.869995,1779.48999,1792.5,3437830000,0.6140652370788313,1824.4699950666666 +2014-01-29,1790.150024,1790.150024,1770.449951,1774.199951,3964020000,-1.0209232357043185,1824.4326618999999 +2014-01-30,1777.170044,1798.77002,1777.170044,1794.189941,3547510000,1.1267044612831345,1824.6876586333333 +2014-01-31,1790.880005,1793.880005,1772.26001,1782.589966,4059690000,-0.6465299316935624,1824.7406575 +2014-02-03,1782.680054,1784.829956,1739.660034,1741.890015,4726040000,-2.2831919721464478,1822.4486571999998 +2014-02-04,1743.819946,1758.72998,1743.819946,1755.199951,4068410000,0.7641088636701321,1820.6353230333334 +2014-02-05,1753.380005,1755.790039,1737.920044,1751.640015,3984290000,-0.20282224814169858,1818.4126586666669 +2014-02-06,1752.98999,1774.060059,1752.98999,1773.430054,3825410000,1.2439792887467327,1816.5939941333334 +2014-02-07,1776.01001,1798.030029,1776.01001,1797.02002,3775990000,1.3301886898100301,1815.3839966 +2014-02-10,1796.199951,1799.939941,1791.829956,1799.839966,3312160000,0.156923460429792,1813.9779948 +2014-02-11,1800.449951,1823.540039,1800.410034,1819.75,3699380000,1.1062113507929405,1813.2563273333333 +2014-02-12,1820.119995,1826.550049,1815.969971,1819.26001,3326380000,-0.026926226129964093,1812.5293294666667 +2014-02-13,1814.819946,1830.25,1809.219971,1829.829956,3289510000,0.5810024923265322,1811.9116618333333 +2014-02-14,1828.459961,1841.650024,1825.589966,1838.630005,3114750000,0.4809216818833173,1812.1333293333332 +2014-02-18,1839.030029,1842.869995,1835.01001,1840.76001,3421110000,0.115847396931823,1812.4463298333333 +2014-02-19,1838.900024,1847.5,1826.98999,1828.75,3661570000,-0.6524484416629561,1812.5123291666666 +2014-02-20,1829.23999,1842.790039,1824.579956,1839.780029,3404980000,0.6031458099794884,1812.5756632999999 +2014-02-21,1841.069946,1846.130005,1835.599976,1836.25,3403880000,-0.1918723404079281,1812.5343303 +2014-02-24,1836.780029,1858.709961,1836.780029,1847.609985,4014530000,0.6186513274336392,1812.8503296333333 +2014-02-25,1847.660034,1852.910034,1840.189941,1845.119995,3515560000,-0.13476816104130984,1812.9419963 +2014-02-26,1845.790039,1852.650024,1840.660034,1845.160034,3716730000,0.002169994369394246,1813.8073324000002 +2014-02-27,1844.900024,1854.530029,1841.130005,1854.290039,3547460000,0.494808300188887,1814.3210002 +2014-02-28,1855.119995,1867.920044,1847.670044,1859.449951,3917450000,0.27826887334101436,1814.6899984 +2014-03-03,1857.680054,1857.680054,1834.439941,1845.72998,3428220000,-0.7378510506626745,1814.6846639 +2014-03-04,1849.22998,1876.22998,1849.22998,1873.910034,3765770000,1.5267701291821645,1815.8583333333333 +2014-03-05,1874.050049,1876.530029,1871.109985,1873.810059,3392990000,-0.005335101375525397,1816.858667 +2014-03-06,1874.180054,1881.939941,1874.180054,1877.030029,3360450000,0.17184078954717297,1817.9310017999999 +2014-03-07,1878.52002,1883.569946,1870.560059,1878.040039,3564740000,0.05380894201985065,1819.5836710666665 +2014-03-10,1877.859985,1877.869995,1867.040039,1877.170044,3021350000,-0.046324624711580054,1822.4796712333332 +2014-03-11,1878.26001,1882.349976,1863.880005,1867.630005,3392400000,-0.5082138951925441,1825.3486694333335 +2014-03-12,1866.150024,1868.380005,1854.380005,1868.199951,3270860000,0.030517072357705288,1827.8720011333332 +2014-03-13,1869.060059,1874.400024,1841.859985,1846.339966,3670990000,-1.1701094943450174,1830.2766683 +2014-03-14,1845.069946,1852.439941,1839.569946,1841.130005,3285460000,-0.28217777310465264,1831.8413371 +2014-03-17,1842.810059,1862.300049,1842.810059,1858.829956,2860490000,0.9613634535275528,1834.3826700999998 +2014-03-18,1858.920044,1873.76001,1858.920044,1872.25,2930190000,0.721961896336043,1838.7280029333333 +2014-03-19,1872.25,1874.140015,1850.349976,1860.77002,3289210000,-0.6131649085325153,1842.2470052333333 +2014-03-20,1860.089966,1873.48999,1854.630005,1872.01001,3327540000,0.6040504672361502,1846.2593384 +2014-03-21,1874.530029,1883.969971,1863.459961,1866.52002,5270710000,-0.29326712841669655,1849.3623372666668 +2014-03-24,1867.670044,1873.339966,1849.689941,1857.439941,3409000000,-0.4864710210823131,1851.3763346333333 +2014-03-25,1859.47998,1871.869995,1855.959961,1865.619995,3200560000,0.4403939971052928,1853.5690022666668 +2014-03-26,1867.089966,1875.920044,1852.560059,1852.560059,3480850000,-0.7000319483604245,1854.6626709 +2014-03-27,1852.109985,1855.550049,1842.109985,1849.040039,3733430000,-0.19000841472853747,1855.6553385333332 +2014-03-28,1850.069946,1866.630005,1850.069946,1857.619995,2955520000,0.46402218551417906,1856.5816731666666 +2014-03-31,1859.160034,1875.180054,1859.160034,1872.339966,3274300000,0.7924102367341312,1857.7053385333334 +2014-04-01,1873.959961,1885.839966,1873.959961,1885.52002,3336190000,0.7039348750407459,1859.1973388666668 +2014-04-02,1886.609985,1893.170044,1883.790039,1890.900024,3131660000,0.2853326373060794,1861.2690063333334 +2014-04-03,1891.430054,1893.800049,1882.650024,1888.77002,3055600000,-0.11264498244039078,1862.9020060333335 +2014-04-04,1890.25,1897.280029,1863.26001,1865.089966,3583750000,-1.2537288155389015,1863.8633382333333 +2014-04-07,1863.920044,1864.040039,1841.47998,1845.040039,3801540000,-1.0750112522990185,1863.7776733666665 +2014-04-08,1845.47998,1854.949951,1837.48999,1851.959961,3721450000,0.37505538382520687,1864.0056722333331 +2014-04-09,1852.640015,1872.430054,1852.380005,1872.180054,3308650000,1.091821282630856,1864.9063395666667 +2014-04-10,1872.280029,1872.530029,1830.869995,1833.079956,3758780000,-2.0884795731297645,1864.1993367999999 +2014-04-11,1830.650024,1835.069946,1814.359985,1815.689941,3743460000,-0.948677385461516,1862.7406698000002 +2014-04-14,1818.180054,1834.189941,1815.800049,1830.609985,3111540000,0.821728625746676,1862.2366699666666 +2014-04-15,1831.449951,1844.02002,1816.290039,1842.97998,3736440000,0.6757307728767703,1861.2056681666666 +2014-04-16,1846.01001,1862.310059,1846.01001,1862.310059,3155080000,1.0488491036131586,1860.8223348333336 +2014-04-17,1861.72998,1869.630005,1856.719971,1864.849976,3341430000,0.13638529136033029,1860.4163330666668 +2014-04-21,1865.790039,1871.890015,1863.180054,1871.890015,2642500000,0.3775123516960077,1860.2113322666667 +2014-04-22,1872.569946,1884.890015,1872.569946,1879.550049,3215440000,0.4092138928365463,1860.2906657666667 +2014-04-23,1879.319946,1879.75,1873.910034,1875.390015,3085720000,-0.22133137674165138,1860.5493327666666 +2014-04-24,1881.969971,1884.060059,1870.23999,1878.609985,3191830000,0.17169601918778366,1860.8963339 +2014-04-25,1877.719971,1877.719971,1859.699951,1863.400024,3213020000,-0.809639101327353,1861.4650025 +2014-04-28,1865.0,1877.01001,1850.609985,1869.430054,4034680000,0.32360362360925876,1862.4083374666668 +2014-04-29,1870.780029,1880.599976,1870.780029,1878.329956,3647820000,0.47607568846756987,1863.0583374666667 +2014-04-30,1877.099976,1885.199951,1872.689941,1883.949951,3779230000,0.29920169148385245,1863.4483358333334 +2014-05-01,1884.390015,1888.589966,1878.040039,1883.680054,3416740000,-0.01432612367737729,1864.2120036333333 +2014-05-02,1885.300049,1891.329956,1878.5,1881.140015,3159560000,-0.13484450263229197,1864.5163371333333 +2014-05-05,1879.449951,1885.51001,1866.77002,1884.660034,2733730000,0.18712158435478798,1865.121004266667 +2014-05-06,1883.689941,1883.689941,1867.719971,1867.719971,3327260000,-0.8988391908564264,1865.4636719333332 +2014-05-07,1868.530029,1878.829956,1859.790039,1878.209961,3632950000,0.561646829443263,1865.8833374666667 +2014-05-08,1877.390015,1889.069946,1870.050049,1875.630005,3393420000,-0.13736249160484215,1866.6523356666667 +2014-05-09,1875.27002,1878.569946,1867.02002,1878.47998,3025020000,0.1519476118639007,1867.6336670333335 +2014-05-12,1880.030029,1897.130005,1880.030029,1896.650024,3005740000,0.9672737635457729,1868.934668 +2014-05-13,1896.75,1902.170044,1896.060059,1897.449951,2915680000,0.04217578308480796,1869.7716675000001 +2014-05-14,1897.130005,1897.130005,1885.77002,1888.530029,2822060000,-0.4701005154470139,1869.8720011333332 +2014-05-15,1888.160034,1888.160034,1862.359985,1870.849976,3552640000,-0.9361806658357397,1869.2036661999998 +2014-05-16,1871.189941,1878.280029,1864.819946,1877.859985,3173650000,0.37469647967112163,1868.8399983666668 +2014-05-19,1876.660034,1886.0,1872.420044,1885.079956,2664250000,0.3844786649522147,1869.5063313666667 +2014-05-20,1884.880005,1884.880005,1868.140015,1872.829956,3007700000,-0.6498398097656066,1870.4326619333333 +2014-05-21,1873.339966,1888.800049,1873.339966,1888.030029,2777140000,0.8116098822161355,1871.6349975333333 +2014-05-22,1888.189941,1896.329956,1885.390015,1892.48999,2759800000,0.2362229907096447,1872.3119954 +2014-05-23,1893.319946,1901.26001,1893.319946,1900.530029,2396280000,0.4248391823726383,1874.5603311666669 +2014-05-27,1902.01001,1912.280029,1902.01001,1911.910034,2911020000,0.5987805941686686,1877.7676676 +2014-05-28,1911.77002,1914.459961,1907.300049,1909.780029,2976450000,-0.11140717722704085,1880.4066690666668 +2014-05-29,1910.599976,1920.030029,1909.819946,1920.030029,2709050000,0.536711026628911,1882.9750040333333 +2014-05-30,1920.329956,1924.030029,1916.640015,1923.569946,3263490000,0.18436779355184285,1885.0170002666666 +2014-06-02,1923.869995,1925.880005,1915.97998,1924.969971,2509020000,0.07278264057468675,1887.0210001 +2014-06-03,1923.069946,1925.069946,1918.790039,1924.23999,2867180000,-0.03792168246763428,1888.7659992666668 +2014-06-04,1923.060059,1928.630005,1918.599976,1927.880005,2793920000,0.1891663731611759,1890.3769978000003 +2014-06-05,1928.52002,1941.73999,1922.930054,1940.459961,3113270000,0.6525279564793207,1892.545996 +2014-06-06,1942.410034,1949.439941,1942.410034,1949.439941,2864300000,0.46277584595830756,1894.9069945333333 +2014-06-09,1948.969971,1955.550049,1947.160034,1951.27002,2812180000,0.09387716756541487,1897.8359944000001 +2014-06-10,1950.339966,1950.859985,1944.640015,1950.790039,2702360000,-0.02459838951454074,1900.5479939 +2014-06-11,1949.369995,1949.369995,1940.079956,1943.890015,2710620000,-0.35370408204140613,1902.7333292 +2014-06-12,1943.349976,1943.349976,1925.780029,1930.109985,3040480000,-0.7088893864193202,1904.271997 +2014-06-13,1930.800049,1937.300049,1927.689941,1936.160034,2598230000,0.3134561785089085,1906.0213296666666 +2014-06-16,1934.839966,1941.150024,1930.910034,1937.780029,2926130000,0.08367051129825054,1907.9093301333335 +2014-06-17,1937.150024,1943.689941,1933.550049,1941.98999,2971260000,0.21725690929803587,1909.8203286666665 +2014-06-18,1942.72998,1957.73999,1939.290039,1956.97998,3065220000,0.7718881187436022,1912.7956623 +2014-06-19,1957.5,1959.869995,1952.26001,1959.47998,2952150000,0.1277478576965363,1915.5046629333333 +2014-06-20,1960.449951,1963.910034,1959.170044,1962.869995,4336240000,0.17300585025625814,1918.4126626 +2014-06-23,1962.920044,1963.73999,1958.890015,1962.609985,2717630000,-0.013246419817014576,1921.2169961 +2014-06-24,1961.969971,1968.170044,1948.339966,1949.97998,3089700000,-0.6435310681454642,1922.9946613 +2014-06-25,1949.27002,1960.829956,1947.48999,1959.530029,3106710000,0.4897511306757085,1925.0639972333333 +2014-06-26,1959.890015,1959.890015,1944.689941,1957.219971,2778840000,-0.11788836944636172,1927.3536619666666 +2014-06-27,1956.560059,1961.469971,1952.180054,1960.959961,4290590000,0.19108685050301943,1930.3573281333333 +2014-06-30,1960.790039,1964.23999,1958.219971,1960.22998,3037350000,-0.03722569631802175,1933.1029946333333 +2014-07-01,1962.290039,1978.579956,1962.290039,1973.319946,3188240000,0.6677770533843219,1936.044327633333 +2014-07-02,1973.060059,1976.670044,1972.579956,1974.619995,2851480000,0.06588130843330209,1939.4373289333334 +2014-07-03,1975.880005,1985.589966,1975.880005,1985.439941,1998090000,0.5479507969835984,1942.684326 +2014-07-07,1984.219971,1984.219971,1974.880005,1977.650024,2681260000,-0.3923521854847234,1945.5229938 +2014-07-08,1976.390015,1976.390015,1959.459961,1963.709961,3302430000,-0.70488017752528,1947.6289915333332 +2014-07-09,1965.099976,1974.150024,1965.099976,1972.829956,2858800000,0.46442678303448837,1949.6596556 +2014-07-10,1966.670044,1969.839966,1952.859985,1964.680054,3165690000,-0.41310716999271024,1951.4896564333333 +2014-07-11,1965.76001,1968.670044,1959.630005,1967.569946,2684630000,0.14709224507656327,1953.0743203333334 +2014-07-14,1969.859985,1979.849976,1969.859985,1977.099976,2744920000,0.4843553348318874,1954.8586546666666 +2014-07-15,1977.359985,1982.52002,1965.339966,1973.280029,3328740000,-0.19320960226444361,1956.4689899333332 +2014-07-16,1976.349976,1983.939941,1975.670044,1981.569946,3390950000,0.42010849337998923,1958.3799884666666 +2014-07-17,1979.75,1981.800049,1955.589966,1958.119995,3381680000,-1.1834026372541717,1959.3879881333335 +2014-07-18,1961.540039,1979.910034,1960.819946,1978.219971,3106060000,1.0264935780914586,1960.6466551333333 +2014-07-21,1976.930054,1976.930054,1965.77002,1973.630005,2611160000,-0.23202505622667013,1961.4529906 +2014-07-22,1975.650024,1986.23999,1975.650024,1983.530029,2890480000,0.5016149924210289,1962.5283242333333 +2014-07-23,1985.319946,1989.22998,1982.439941,1987.01001,2869720000,0.1754438273744885,1963.7356566 +2014-07-24,1988.069946,1991.390015,1985.790039,1987.97998,3203530000,0.04881555679732141,1965.2053221 +2014-07-25,1984.599976,1984.599976,1974.369995,1978.339966,2638960000,-0.4849150442651884,1966.8129881333334 +2014-07-28,1978.25,1981.52002,1967.310059,1978.910034,2803320000,0.02881547205217938,1968.2379881333334 +2014-07-29,1980.030029,1984.849976,1969.949951,1969.949951,3183300000,-0.4527786936270539,1969.3103188666666 +2014-07-30,1973.209961,1978.900024,1962.420044,1970.069946,3448250000,0.006091271503572138,1970.2463174000002 +2014-07-31,1965.140015,1965.140015,1930.670044,1930.670044,4193000000,-1.9999240169110255,1969.3693195333333 +2014-08-01,1929.800049,1937.349976,1916.369995,1925.150024,3789660000,-0.2859121379727547,1968.224987666667 +2014-08-04,1926.619995,1942.920044,1921.199951,1938.98999,3072920000,0.7189032453296162,1967.4289875 +2014-08-05,1936.339966,1936.339966,1913.77002,1920.209961,3462520000,-0.9685469804823543,1966.0156533666666 +2014-08-06,1917.290039,1927.910034,1911.449951,1920.23999,3539150000,0.0015638394035066838,1965.0243203666666 +2014-08-07,1923.030029,1928.890015,1904.780029,1909.569946,3230520000,-0.5556620034769644,1963.3589842666668 +2014-08-08,1910.349976,1932.380005,1909.01001,1931.589966,2902280000,1.1531402683691017,1962.5046507666668 +2014-08-11,1933.430054,1944.900024,1933.430054,1936.920044,2784890000,0.27594251853759744,1961.7033202 +2014-08-12,1935.72998,1939.650024,1928.290039,1933.75,2611700000,-0.16366416413624574,1960.8206542 +2014-08-13,1935.599976,1948.410034,1935.599976,1946.719971,2718020000,0.6707160180995375,1959.9339883666667 +2014-08-14,1947.410034,1955.22998,1947.410034,1955.180054,2609460000,0.43458140492873554,1959.2859903333335 +2014-08-15,1958.869995,1964.040039,1941.5,1955.060059,3023380000,-0.006137286423035793,1958.2733276 +2014-08-18,1958.359985,1971.98999,1958.359985,1971.73999,2638160000,0.8531671916274464,1958.0763264666668 +2014-08-19,1972.72998,1982.569946,1972.72998,1981.599976,2656430000,0.5000652241170966,1958.6726603 +2014-08-20,1980.459961,1988.569946,1977.680054,1986.51001,2579560000,0.24778129084919165,1959.1286621 +2014-08-21,1986.819946,1994.76001,1986.819946,1992.369995,2638920000,0.2949889489859636,1960.0516601333331 +2014-08-22,1992.599976,1993.540039,1984.76001,1988.400024,2301860000,-0.19925872252457566,1960.7459960666667 +2014-08-25,1991.73999,2001.949951,1991.73999,1997.920044,2233880000,0.47877790611010607,1961.4399983333335 +2014-08-26,1998.589966,2005.040039,1998.589966,2000.02002,2451950000,0.10510811012214294,1962.3313313666667 +2014-08-27,2000.540039,2002.140015,1996.199951,2000.119995,2344350000,0.00499869996302138,1962.9496663333334 +2014-08-28,1997.420044,1998.550049,1990.52002,1996.73999,2282400000,-0.16899011101580985,1964.2369995 +2014-08-29,1998.449951,2003.380005,1994.650024,2003.369995,2259130000,0.3320414792714166,1965.0753336333332 +2014-09-02,2004.069946,2006.119995,1994.849976,2002.280029,2819980000,-0.0544066249729358,1966.0303344333333 +2014-09-03,2003.569946,2009.280029,1998.140015,2000.719971,2809980000,-0.0779140768226716,1966.6033324999999 +2014-09-04,2001.670044,2011.170044,1992.540039,1997.650024,3072410000,-0.15344211306420608,1966.9579996333334 +2014-09-05,1998.0,2007.709961,1990.099976,2007.709961,2818300000,0.5035885605155332,1967.6156656666667 +2014-09-08,2007.170044,2007.170044,1995.599976,2001.540039,2789090000,-0.3073114204666716,1968.3890014333333 +2014-09-09,2000.72998,2001.01001,1984.609985,1988.439941,2882830000,-0.6545009215276454,1968.706665 +2014-09-10,1988.410034,1996.660034,1982.98999,1995.689941,2912430000,0.3646074417693379,1969.5646646666669 +2014-09-11,1992.849976,1997.650024,1985.930054,1997.449951,2941690000,0.08819055324384983,1970.4773314999998 +2014-09-12,1996.73999,1996.73999,1980.26001,1985.540039,3206570000,-0.5962558408052931,1972.3063313333332 +2014-09-15,1986.040039,1987.180054,1978.47998,1984.130005,2776530000,-0.07101513806340165,1974.2723307 +2014-09-16,1981.930054,2002.280029,1979.060059,1998.97998,3160310000,0.7484376004887938,1976.2719970333335 +2014-09-17,1999.300049,2010.73999,1993.290039,2001.569946,3209420000,0.1295643791290102,1978.9839965333335 +2014-09-18,2003.069946,2012.339966,2003.069946,2011.359985,3235340000,0.4891180055718092,1982.0213297 +2014-09-19,2012.73999,2019.26001,2006.589966,2010.400024,4880220000,-0.04772696121823072,1985.3823323 +2014-09-22,2009.079956,2009.079956,1991.01001,1994.290039,3349670000,-0.8013323123597482,1987.4723347333334 +2014-09-23,1992.780029,1995.410034,1982.77002,1982.77002,3279350000,-0.5776501298565662,1989.0006672666668 +2014-09-24,1983.339966,1999.790039,1978.630005,1998.300049,3313850000,0.7832491334522018,1991.1523355666666 +2014-09-25,1997.319946,1997.319946,1965.98999,1965.98999,3273050000,-1.61687725605415,1991.7946695333335 +2014-09-26,1966.219971,1986.369995,1966.219971,1982.849976,2929440000,0.8575824946087218,1992.7170002666667 +2014-09-29,1978.959961,1981.280029,1964.040039,1977.800049,3094440000,-0.2546802360805511,1993.4749999333333 +2014-09-30,1978.209961,1985.170044,1968.959961,1972.290039,3951100000,-0.27859287407672184,1993.4933348999998 +2014-10-01,1971.439941,1971.439941,1941.719971,1946.160034,4188590000,-1.3248561055071106,1992.3120035 +2014-10-02,1945.829956,1952.319946,1926.030029,1946.170044,4012510000,0.0005143461907053393,1990.9673379666667 +2014-10-03,1948.119995,1971.189941,1948.119995,1967.900024,3560970000,1.1165509440962396,1990.1516722666668 +2014-10-06,1970.01001,1977.839966,1958.430054,1964.819946,3358220000,-0.15651597959429608,1989.3656696666667 +2014-10-07,1962.359985,1962.359985,1934.869995,1935.099976,3687870000,-1.5126052674955925,1987.2716674 +2014-10-08,1935.550049,1970.359985,1925.25,1968.890015,4441890000,1.7461650260492734,1986.2340005666665 +2014-10-09,1967.680054,1967.680054,1927.560059,1928.209961,4344020000,-2.0661415157819274,1983.8369994333332 +2014-10-10,1925.630005,1936.97998,1906.050049,1906.130005,4550540000,-1.1451012310168207,1980.8166666 +2014-10-13,1905.650024,1912.089966,1874.140015,1874.73999,4352580000,-1.646792974123501,1976.5289997666666 +2014-10-14,1877.109985,1898.709961,1871.790039,1877.699951,4812010000,0.1578864811007774,1972.3763305 +2014-10-15,1874.180054,1874.180054,1820.660034,1862.48999,6090800000,-0.8100314958148558,1967.768664466667 +2014-10-16,1855.949951,1876.01001,1835.02002,1862.76001,5073150000,0.014497796039147914,1963.2723306666667 +2014-10-17,1864.910034,1898.160034,1864.910034,1886.76001,4482120000,1.2884107384289356,1959.2406656333333 +2014-10-20,1885.619995,1905.030029,1882.300049,1904.01001,3331210000,0.9142657205247762,1955.9896646666666 +2014-10-21,1909.380005,1942.449951,1909.380005,1941.280029,3987090000,1.9574486900938215,1954.4176676 +2014-10-22,1941.290039,1949.310059,1926.829956,1927.109985,3761930000,-0.7299330229703749,1952.1316690666667 +2014-10-23,1931.02002,1961.949951,1931.02002,1950.819946,3789250000,1.2303377173358276,1950.5773355666668 +2014-10-24,1951.589966,1965.27002,1946.27002,1964.579956,3078380000,0.7053449513992227,1949.8786661333331 +2014-10-27,1962.969971,1964.640015,1951.369995,1961.630005,3538860000,-0.15015683077650444,1949.1286661333331 +2014-10-28,1964.140015,1985.050049,1964.140015,1985.050049,3653260000,1.1939073087332774,1948.6643351 +2014-10-29,1983.290039,1991.400024,1969.040039,1982.300049,3740350000,-0.13853554984093464,1948.0220052 +2014-10-30,1979.48999,1999.400024,1974.75,1994.650024,3586150000,0.6230123944268806,1947.4650065 +2014-10-31,2001.199951,2018.189941,2001.199951,2018.050049,4292290000,1.1731393837739246,1947.7200073333333 +2014-11-03,2018.209961,2024.459961,2013.680054,2017.810059,3555440000,-0.011892172848682048,1948.504008 +2014-11-04,2015.810059,2015.97998,2001.01001,2012.099976,3956260000,-0.28298416763913314,1949.4816732 +2014-11-05,2015.290039,2023.77002,2014.420044,2023.569946,3766590000,0.5700497061185805,1950.3240030999998 +2014-11-06,2023.329956,2031.609985,2015.859985,2031.209961,3669770000,0.3775513179122836,1952.498002133333 +2014-11-07,2032.359985,2034.26001,2025.069946,2031.920044,3704280000,0.03495862139482053,1954.1336710666665 +2014-11-10,2032.01001,2038.699951,2030.170044,2038.26001,3284940000,0.31201847822315276,1956.1490031 +2014-11-11,2038.199951,2041.280029,2035.280029,2039.680054,2958320000,0.06966942357859995,1958.3953369333333 +2014-11-12,2037.75,2040.329956,2031.949951,2038.25,3246650000,-0.07011168232956555,1961.4650024666666 +2014-11-13,2039.209961,2046.180054,2030.439941,2039.329956,3455270000,0.05298447197350509,1964.5703328666668 +2014-11-14,2039.73999,2042.219971,2035.199951,2039.819946,3227130000,0.02402700938897162,1966.9676636000002 +2014-11-17,2038.290039,2043.069946,2034.459961,2041.319946,3152890000,0.07353590217320516,1969.5176635999999 +2014-11-18,2041.47998,2056.080078,2041.47998,2051.800049,3416190000,0.5133983538707865,1973.4076660333333 +2014-11-19,2051.159912,2052.139893,2040.369995,2048.719971,3390850000,-0.15011589465070418,1976.068664566667 +2014-11-20,2045.869995,2053.840088,2040.48999,2052.75,3128290000,0.19670960682991456,1980.2199992 +2014-11-21,2057.459961,2071.459961,2056.75,2063.5,3916420000,0.5236877359639402,1985.4656657000003 +2014-11-24,2065.070068,2070.169922,2065.070068,2069.409912,3128060000,0.2864023261448967,1991.9546631 +2014-11-25,2070.149902,2074.209961,2064.75,2067.030029,3392940000,-0.11500297675195448,1998.2656657 +2014-11-26,2067.360107,2073.290039,2066.620117,2072.830078,2745260000,0.280598197347226,2005.2770019666666 +2014-11-28,2074.780029,2075.76001,2065.060059,2067.560059,2504640000,-0.2542426924393548,2012.1036702666668 +2014-12-01,2065.780029,2065.780029,2049.570068,2053.439941,4159010000,-0.6829362919125614,2017.6596679666666 +2014-12-02,2053.77002,2068.77002,2053.77002,2066.550049,3686650000,0.6384461380261053,2023.0776692666666 +2014-12-03,2067.449951,2076.280029,2066.649902,2074.330078,3612680000,0.37647425978213356,2027.5126709 +2014-12-04,2073.639893,2077.340088,2062.340088,2071.919922,3408340000,-0.11618960866265349,2032.3396687999998 +2014-12-05,2072.780029,2079.469971,2070.810059,2075.370117,3419620000,0.16652163837824752,2036.4913411666669 +2014-12-08,2074.840088,2075.780029,2054.27002,2060.310059,3800990000,-0.7256564926245379,2039.6823446 +2014-12-09,2056.550049,2060.600098,2034.170044,2059.820068,3970150000,-0.02378239128909554,2042.9553467 +2014-12-10,2058.860107,2058.860107,2024.26001,2026.140015,4114440000,-1.63509684769223,2044.3250122333334 +2014-12-11,2027.920044,2055.530029,2027.920044,2035.329956,3917950000,0.45356890106136305,2046.0926757999998 +2014-12-12,2030.359985,2032.25,2002.329956,2002.329956,4157650000,-1.6213587336401436,2046.348673533333 +2014-12-15,2005.030029,2018.689941,1982.26001,1989.630005,4361990000,-0.6342586526233873,2045.4013387333332 +2014-12-16,1986.709961,2016.890015,1972.560059,1972.73999,4958680000,-0.8489023063360968,2043.8990030999998 +2014-12-17,1973.77002,2016.75,1973.77002,2012.890015,4942370000,2.0352416032282106,2043.9253377333332 +2014-12-18,2018.97998,2061.22998,2018.97998,2061.22998,4703380000,2.40152043279922,2045.1806722000001 +2014-12-19,2061.040039,2077.850098,2061.030029,2070.649902,6465530000,0.457004899569724,2046.4953369 +2014-12-22,2069.280029,2078.76001,2069.280029,2078.540039,3369520000,0.3810464044346151,2048.0493367333333 +2014-12-23,2081.47998,2086.72998,2079.77002,2082.169922,3043950000,0.17463618366218014,2049.5130004666667 +2014-12-24,2083.25,2087.560059,2081.860107,2081.879883,1416980000,-0.013929650838551133,2050.919661433333 +2014-12-26,2084.300049,2092.699951,2084.300049,2088.77002,1735230000,0.3309574705179896,2052.6036621000003 +2014-12-29,2087.629883,2093.550049,2085.75,2090.570068,2452360000,0.08617741459158168,2054.3116658333333 +2014-12-30,2088.48999,2088.48999,2079.530029,2080.350098,2440280000,-0.4888604384246875,2055.6626708999997 +2014-12-31,2082.110107,2085.580078,2057.939941,2058.899902,2606070000,-1.0310858744699503,2056.2486694333334 +2015-01-02,2058.899902,2072.360107,2046.040039,2058.199951,2708700000,-0.03399635889632657,2056.4619995000003 +2015-01-05,2054.439941,2054.439941,2017.339966,2020.579956,3799120000,-1.8278105089703178,2055.523999 +2015-01-06,2022.150024,2030.25,1992.439941,2002.609985,4460110000,-0.8893471870112912,2053.8526651666666 +2015-01-07,2005.550049,2029.609985,2005.550049,2025.900024,3805480000,1.162984264257516,2052.5993326333332 +2015-01-08,2030.609985,2064.080078,2030.609985,2062.139893,3934010000,1.788828104579765,2052.3569986666666 +2015-01-09,2063.449951,2064.429932,2038.329956,2044.810059,3364140000,-0.8403811040573306,2051.616333 +2015-01-12,2046.130005,2049.300049,2022.579956,2028.26001,3456460000,-0.809368524335885,2050.1306640666667 +2015-01-13,2031.579956,2056.929932,2008.25,2023.030029,4107300000,-0.257855549792152,2048.6463297333335 +2015-01-14,2018.400024,2018.400024,1988.439941,2011.27002,4378680000,-0.5813066949783785,2047.2406657 +2015-01-15,2013.75,2021.349976,1991.469971,1992.670044,4276720000,-0.9247876125553778,2044.7779988666668 +2015-01-16,1992.25,2020.459961,1988.119995,2019.420044,4056410000,1.342419939545203,2042.9476644 +2015-01-20,2020.76001,2028.939941,2004.48999,2022.550049,3944340000,0.15499524278268506,2041.3020019666665 +2015-01-21,2020.189941,2038.290039,2012.040039,2032.119995,3730070000,0.4731623825443343,2039.8603312333332 +2015-01-22,2034.300049,2064.620117,2026.380005,2063.149902,4176050000,1.5269721805970526,2039.9549926666666 +2015-01-23,2062.97998,2062.97998,2050.540039,2051.820068,3573560000,-0.5491522447795494,2039.688326 +2015-01-26,2050.419922,2057.620117,2040.969971,2057.090088,3465760000,0.25684610859357804,2040.7199951 +2015-01-27,2047.859985,2047.859985,2019.910034,2029.550049,3329810000,-1.338786237931644,2040.5273315333334 +2015-01-28,2032.339966,2042.48999,2001.48999,2002.160034,4067530000,-1.3495609538427322,2040.5216674666667 +2015-01-29,2002.449951,2024.640015,1989.180054,2021.25,4127140000,0.9534685377702523,2041.5756673 +2015-01-30,2019.349976,2023.319946,1993.380005,1994.98999,4568650000,-1.299196536796532,2042.3173339666669 +2015-02-02,1996.670044,2021.660034,1980.900024,2020.849976,4008330000,1.2962464037225452,2042.582666 +2015-02-03,2022.709961,2050.300049,2022.709961,2050.030029,4615900000,1.4439494938539577,2042.2093343000001 +2015-02-04,2048.860107,2054.73999,2036.719971,2041.51001,4141920000,-0.4156045950290843,2041.2380045666666 +2015-02-05,2043.449951,2063.550049,2043.449951,2062.52002,3821990000,1.0291406800400527,2040.7040039333333 +2015-02-06,2062.280029,2072.399902,2049.969971,2055.469971,4232970000,-0.3418172396697505,2039.8140055666668 +2015-02-09,2053.469971,2056.159912,2041.880005,2046.73999,3549540000,-0.42471946188310516,2038.6426758 +2015-02-10,2049.379883,2070.860107,2048.620117,2068.590088,3669850000,1.0675561188404625,2037.9700114 +2015-02-11,2068.550049,2073.47998,2057.98999,2068.530029,3596860000,-0.0029033785063692363,2037.2353434333336 +2015-02-12,2069.97998,2088.530029,2069.97998,2088.47998,3788350000,0.9644506350069637,2037.5063395 +2015-02-13,2088.780029,2097.030029,2086.699951,2096.98999,3527450000,0.40747386048680667,2038.7760091000002 +2015-02-17,2096.469971,2101.300049,2089.800049,2100.340088,3361750000,0.15975746264769164,2040.1806803333334 +2015-02-18,2099.159912,2100.22998,2092.149902,2099.679932,3370020000,-0.031430909868912504,2042.8173462 +2015-02-19,2099.25,2102.129883,2090.790039,2097.449951,3247100000,-0.10620575860226245,2045.9786784 +2015-02-20,2097.649902,2110.610107,2085.439941,2110.300049,3281600000,0.6126533791127375,2048.7920125666665 +2015-02-23,2109.830078,2110.050049,2103.0,2109.659912,3093680000,-0.030333932859605284,2050.3760132 +2015-02-24,2109.100098,2117.939941,2105.870117,2115.47998,3199840000,0.2758770722662396,2052.7316772333334 +2015-02-25,2115.300049,2119.590088,2109.889893,2113.860107,3312340000,-0.0765723625519743,2055.5850138 +2015-02-26,2113.909912,2113.909912,2103.76001,2110.73999,3408690000,-0.14760281390748808,2058.5086791666668 +2015-02-27,2110.879883,2112.73999,2103.75,2104.5,3547380000,-0.2956304438046842,2061.6163451666666 +2015-03-02,2105.22998,2117.52002,2104.5,2117.389893,3409490000,0.6124919458303735,2065.7736734666664 +2015-03-03,2115.76001,2115.76001,2098.26001,2107.780029,3262300000,-0.4538542491286046,2068.7190063 +2015-03-04,2107.719971,2107.719971,2094.48999,2098.530029,3421110000,-0.4388503483633732,2071.2516723 +2015-03-05,2098.540039,2104.25,2095.219971,2101.040039,3103030000,0.11960800966932528,2073.5490071 +2015-03-06,2100.909912,2100.909912,2067.27002,2071.26001,3853570000,-1.4173946449004382,2073.8193440333334 +2015-03-09,2072.25,2083.48999,2072.209961,2079.429932,3349090000,0.3944421251101282,2074.7396728333333 +2015-03-10,2076.139893,2076.139893,2044.160034,2044.160034,3668900000,-1.6961330342146863,2074.308671033333 +2015-03-11,2044.689941,2050.080078,2039.689941,2040.23999,3406570000,-0.19176796017918996,2074.6650024 +2015-03-12,2041.099976,2066.409912,2041.099976,2065.949951,3405860000,1.2601439598289632,2076.7913329666667 +2015-03-13,2064.560059,2064.560059,2041.170044,2053.399902,3498560000,-0.6074711051894166,2077.8629963666667 +2015-03-16,2055.350098,2081.409912,2055.350098,2081.189941,3295600000,1.3533671143615367,2080.7363280666664 +2015-03-17,2080.590088,2080.590088,2065.080078,2074.280029,3221840000,-0.3320173648677094,2082.5173298333334 +2015-03-18,2072.840088,2106.850098,2061.22998,2099.5,4128210000,1.2158421547431297,2084.1663288666664 +2015-03-19,2098.689941,2098.689941,2085.560059,2089.27002,3305220000,-0.48725791855204204,2085.7583292 +2015-03-20,2090.320068,2113.919922,2090.320068,2108.100098,5554120000,0.9012754607946816,2087.2776651333334 +2015-03-23,2107.98999,2114.860107,2104.419922,2104.419922,3267960000,-0.1745731146016838,2088.9093301666667 +2015-03-24,2103.939941,2107.629883,2091.5,2091.5,3189820000,-0.6139422015983054,2090.4013305 +2015-03-25,2093.100098,2097.429932,2061.050049,2061.050049,3521140000,-1.4558905570164926,2090.149995866667 +2015-03-26,2059.939941,2067.149902,2045.5,2056.149902,3510670000,-0.23775002467200101,2089.7373249666666 +2015-03-27,2055.780029,2062.830078,2052.959961,2061.02002,3008550000,0.23685617450666108,2088.8219929666666 +2015-03-30,2064.110107,2088.969971,2064.110107,2086.23999,2917690000,1.2236644843459654,2088.4636596333335 +2015-03-31,2084.050049,2084.050049,2067.040039,2067.889893,3376550000,-0.8795774737306195,2087.3819864666666 +2015-04-01,2067.629883,2067.629883,2048.379883,2059.689941,3543270000,-0.39653716707825915,2086.048986766667 +2015-04-02,2060.030029,2072.169922,2057.320068,2066.959961,3095960000,0.35296671869311513,2085.032653766667 +2015-04-06,2064.870117,2086.98999,2056.52002,2080.620117,3302970000,0.6608815002585366,2084.0433227000003 +2015-04-07,2080.790039,2089.810059,2076.100098,2076.330078,3065510000,-0.20619040280095424,2082.9323282333335 +2015-04-08,2076.939941,2086.689941,2073.300049,2081.899902,3265330000,0.2682533022574818,2081.8129923 +2015-04-09,2081.290039,2093.310059,2074.290039,2091.179932,3172360000,0.4457481356853421,2081.056986466667 +2015-04-10,2091.51001,2102.610107,2091.51001,2102.060059,3156200000,0.5202865058863804,2080.7676554333334 +2015-04-13,2102.030029,2107.649902,2092.330078,2092.429932,2908420000,-0.4581280615065353,2080.365319833333 +2015-04-14,2092.280029,2098.620117,2083.23999,2095.840088,3301270000,0.1629758754569277,2079.6469930000003 +2015-04-15,2097.820068,2111.909912,2097.820068,2106.629883,4013760000,0.5148195733910566,2079.6086548 +2015-04-16,2105.959961,2111.300049,2100.02002,2104.98999,3434120000,-0.07784438136160254,2079.8239868333335 +2015-04-17,2102.580078,2102.580078,2072.370117,2081.179932,3627600000,-1.1311245237798029,2079.1619832666665 +2015-04-20,2084.110107,2103.939941,2084.110107,2100.399902,3000160000,0.9235131333180657,2080.1333130000003 +2015-04-21,2102.820068,2109.639893,2094.379883,2097.290039,3243410000,-0.14806051919155072,2080.7286499 +2015-04-22,2098.27002,2109.97998,2091.050049,2107.959961,3348480000,0.5087480415959744,2082.8553141333336 +2015-04-23,2107.209961,2120.48999,2103.189941,2112.929932,3636670000,0.23577160344365744,2085.2783122 +2015-04-24,2112.800049,2120.919922,2112.800049,2117.689941,3375780000,0.22528002125912217,2087.002978533333 +2015-04-27,2119.290039,2125.919922,2107.040039,2108.919922,3438750000,-0.414131399984774,2088.8536458666667 +2015-04-28,2108.350098,2116.040039,2094.889893,2114.76001,3546270000,0.2769231747055345,2089.9726481666667 +2015-04-29,2112.48999,2113.649902,2097.409912,2106.850098,4074970000,-0.37403355286635964,2091.0583171333333 +2015-04-30,2105.52002,2105.52002,2077.590088,2085.51001,4509680000,-1.0128906665100579,2090.5919841333334 +2015-05-01,2087.379883,2108.409912,2087.379883,2108.290039,3379390000,1.0923001515586117,2091.2259847666664 +2015-05-04,2110.22998,2120.949951,2110.22998,2114.48999,3091580000,0.2940748609209676,2091.438981166667 +2015-05-05,2112.629883,2115.23999,2088.459961,2089.459961,3793950000,-1.1837383538524149,2090.9403158 +2015-05-06,2091.26001,2098.419922,2067.929932,2080.149902,3792210000,-0.4455725007309619,2090.5619792 +2015-05-07,2079.959961,2092.899902,2074.98999,2088.0,3676640000,0.3773813604708076,2091.4603109 +2015-05-08,2092.129883,2117.659912,2092.129883,2116.100098,3399440000,1.3457901340996115,2093.458650766667 +2015-05-11,2115.560059,2117.689941,2104.580078,2105.330078,2992670000,-0.5089560749124811,2094.9356527 +2015-05-12,2102.870117,2105.060059,2085.570068,2099.120117,3139520000,-0.2949637714718456,2095.3649902666666 +2015-05-13,2099.620117,2110.189941,2096.040039,2098.47998,3374260000,-0.030495491649840112,2096.3846598333334 +2015-05-14,2100.429932,2121.449951,2100.429932,2121.100098,3225740000,1.077928701516595,2098.4316650666665 +2015-05-15,2122.070068,2123.889893,2116.810059,2122.72998,3092080000,0.07684135234999889,2100.2906657 +2015-05-18,2121.300049,2131.780029,2120.01001,2129.199951,2888190000,0.3047948189811578,2101.9099935 +2015-05-19,2129.449951,2133.02002,2124.5,2127.830078,3296030000,-0.0643374521663298,2103.6266601666666 +2015-05-20,2127.790039,2134.719971,2122.590088,2125.850098,3025880000,-0.09305160315531413,2105.0916667 +2015-05-21,2125.550049,2134.280029,2122.949951,2130.820068,3070460000,0.23378741542858794,2106.4130045666666 +2015-05-22,2130.360107,2132.149902,2126.060059,2126.060059,2571860000,-0.22338859444231973,2107.2130045666668 +2015-05-26,2125.340088,2125.340088,2099.179932,2104.199951,3342130000,-1.028198046779627,2107.6053385333335 +2015-05-27,2105.129883,2126.219971,2105.129883,2123.47998,3127960000,0.9162641122027138,2108.526668266667 +2015-05-28,2122.27002,2122.27002,2112.860107,2120.790039,2980350000,-0.1266760706639669,2108.998673466667 +2015-05-29,2120.659912,2120.659912,2104.889893,2107.389893,3927390000,-0.6318468944864764,2109.0786702333335 +2015-06-01,2108.639893,2119.149902,2102.540039,2111.72998,3011710000,0.20594608593389463,2110.097005166667 +2015-06-02,2110.409912,2117.590088,2099.139893,2109.600098,3049350000,-0.10085958054164568,2110.4036783666666 +2015-06-03,2110.639893,2121.919922,2109.610107,2114.070068,3099980000,0.21188707775647853,2110.9630126666666 +2015-06-04,2112.350098,2112.889893,2093.22998,2095.840088,3200050000,-0.8623167356627159,2110.5590168999997 +2015-06-05,2095.090088,2100.98999,2085.669922,2092.830078,3243690000,-0.143618304527815,2109.8890217666662 +2015-06-08,2092.340088,2093.01001,2079.110107,2079.280029,2917150000,-0.6474509871794765,2108.608691366667 +2015-06-09,2079.070068,2085.620117,2072.139893,2080.149902,3034580000,0.04183529817378684,2107.6496907 +2015-06-10,2081.120117,2108.5,2081.120117,2105.199951,3414320000,1.204242491174079,2107.3310220666667 +2015-06-11,2106.23999,2115.02002,2106.23999,2108.860107,3128600000,0.17386262992553636,2107.3980223666667 +2015-06-12,2107.429932,2107.429932,2091.330078,2094.110107,2719400000,-0.6994299883164357,2107.684692266667 +2015-06-15,2091.340088,2091.340088,2072.48999,2084.429932,3061570000,-0.4622572121514512,2106.8893553666667 +2015-06-16,2084.26001,2097.399902,2082.100098,2096.290039,2919900000,0.5689856405305171,2106.282690333333 +2015-06-17,2097.399902,2106.790039,2088.860107,2100.439941,3222240000,0.19796411387709156,2106.6486896666665 +2015-06-18,2101.580078,2126.649902,2101.580078,2121.23999,3520360000,0.990271066265147,2108.0183592666667 +2015-06-19,2121.060059,2121.639893,2109.449951,2109.98999,4449810000,-0.5303501750407835,2108.7513589333334 +2015-06-22,2112.5,2129.870117,2112.5,2122.850098,3030020000,0.6094866829202239,2108.9763589333334 +2015-06-23,2123.159912,2128.030029,2119.889893,2124.199951,3091190000,0.06358682609157729,2109.6053547 +2015-06-24,2123.649902,2125.100098,2108.580078,2108.580078,3102480000,-0.7353296940171172,2109.9206867333332 +2015-06-25,2109.959961,2116.040039,2101.780029,2102.310059,3214610000,-0.2973574048915073,2110.048356033333 +2015-06-26,2102.620117,2108.919922,2095.379883,2101.48999,5025470000,-0.03900799487159823,2109.3946857666665 +2015-06-29,2098.629883,2098.629883,2056.639893,2057.639893,3678960000,-2.0866193609611283,2107.2250162 +2015-06-30,2061.189941,2074.280029,2056.320068,2063.110107,4078540000,0.26584894755439237,2105.0220214 +2015-07-01,2067.0,2082.780029,2067.0,2077.419922,3727260000,0.693604037489215,2103.3416828666664 +2015-07-02,2078.030029,2085.060059,2071.02002,2076.780029,2996540000,-0.03080229438562343,2101.7060139 +2015-07-06,2073.949951,2078.610107,2058.399902,2068.76001,3486360000,-0.3861756607829947,2099.6373453 +2015-07-07,2069.52002,2083.73999,2044.02002,2081.340088,4458660000,0.60809750474633,2098.1466796 +2015-07-08,2077.659912,2077.659912,2044.660034,2046.680054,3608780000,-1.6652748966799358,2096.2293497 +2015-07-09,2049.72998,2074.280029,2049.72998,2051.310059,3446810000,0.22622026295469055,2093.8236856666667 +2015-07-10,2052.73999,2081.310059,2052.73999,2076.620117,3065070000,1.2338484808258832,2092.3513549333334 +2015-07-13,2080.030029,2100.669922,2080.030029,2099.600098,3096730000,1.1066049496427866,2092.0916951 +2015-07-14,2099.719971,2111.97998,2098.179932,2108.949951,3002120000,0.4453158965322279,2091.9990274666666 +2015-07-15,2109.01001,2114.139893,2102.48999,2107.399902,3261810000,-0.07349861476158015,2091.9256876 +2015-07-16,2110.550049,2124.419922,2110.550049,2124.290039,3227080000,0.801468054732779,2092.2663533 +2015-07-17,2126.800049,2128.909912,2119.879883,2126.639893,3362750000,0.11061832220924384,2093.2930134666667 +2015-07-20,2126.850098,2132.820068,2123.659912,2128.280029,3245870000,0.0771233533894744,2094.4746785 +2015-07-21,2127.550049,2128.48999,2115.399902,2119.209961,3343690000,-0.42616891933443535,2095.8056762333335 +2015-07-22,2118.209961,2118.51001,2110.0,2114.149902,3694070000,-0.23877100868345824,2096.9390095666668 +2015-07-23,2114.159912,2116.870117,2098.629883,2102.149902,3772810000,-0.5676040279191108,2096.837341266667 +2015-07-24,2102.23999,2106.01001,2077.090088,2079.649902,3870040000,-1.0703328044585847,2095.863667766667 +2015-07-27,2078.189941,2078.189941,2063.52002,2067.639893,3836750000,-0.5775014817854696,2094.9813273 +2015-07-28,2070.75,2095.600098,2069.090088,2093.25,4117740000,1.2386154420169104,2095.2753295666666 +2015-07-29,2094.699951,2110.600098,2094.080078,2108.570068,4038900000,0.7318795174967141,2095.6846638666666 +2015-07-30,2106.780029,2110.47998,2094.969971,2108.629883,3579410000,0.0028367565729991995,2095.9576619333334 +2015-07-31,2111.600098,2114.23999,2102.070068,2103.840088,3681340000,-0.22715200228432542,2095.3776651999997 +2015-08-03,2104.48999,2105.699951,2087.310059,2098.040039,3476770000,-0.27568868152492154,2094.9793335 +2015-08-04,2097.679932,2102.51001,2088.600098,2093.320068,3546710000,-0.22497049209078135,2093.9949991666667 +2015-08-05,2095.27002,2112.659912,2095.27002,2099.840088,3968680000,0.3114678973210827,2093.1830037333334 +2015-08-06,2100.75,2103.320068,2075.530029,2083.560059,4246570000,-0.7752985140647484,2092.3490030999997 +2015-08-07,2082.610107,2082.610107,2067.909912,2077.570068,3602320000,-0.28748828113334124,2091.5243367333333 +2015-08-10,2080.97998,2105.350098,2080.97998,2104.179932,3514460000,1.2808166814617383,2091.6140014666667 +2015-08-11,2102.659912,2102.659912,2076.48999,2084.070068,3708880000,-0.9557102838104625,2092.4950073 +2015-08-12,2081.100098,2089.060059,2052.090088,2086.050049,4269130000,0.09500549095742272,2093.259672033333 +2015-08-13,2086.189941,2092.929932,2078.26001,2083.389893,3221300000,-0.1275211973593371,2093.4586710666667 +2015-08-14,2083.149902,2092.449951,2080.610107,2091.540039,2795590000,0.3911963875500968,2093.9506714 +2015-08-17,2089.699951,2102.870117,2079.300049,2102.439941,2867690000,0.5211424020938882,2095.073335766667 +2015-08-18,2101.98999,2103.469971,2094.139893,2096.919922,2949990000,-0.26255299342222704,2095.592663566667 +2015-08-19,2095.689941,2096.169922,2070.530029,2079.610107,3512920000,-0.8254876506438191,2096.690332 +2015-08-20,2076.610107,2076.610107,2035.72998,2035.72998,3922470000,-2.110017010029852,2096.1709960333333 +2015-08-21,2034.079956,2034.079956,1970.890015,1970.890015,5018240000,-3.1850965323014013,2092.6466593 +2015-08-24,1965.150024,1965.150024,1867.01001,1893.209961,6612690000,-3.941369300610109,2085.7669880666667 +2015-08-25,1898.079956,1948.040039,1867.079956,1867.609985,5183560000,-1.3521995197235293,2077.722322533333 +2015-08-26,1872.75,1943.089966,1872.75,1940.51001,5338250000,3.903385909558632,2072.1593261333337 +2015-08-27,1942.77002,1989.599976,1942.77002,1987.660034,5006390000,2.429774840481236,2067.6049926333335 +2015-08-28,1986.060059,1993.47998,1975.189941,1988.869995,3949080000,0.06087363931974732,2063.0126627 +2015-08-31,1986.72998,1986.72998,1965.97998,1972.180054,3915100000,-0.8391670165449949,2057.8093302 +2015-09-01,1970.089966,1970.089966,1903.069946,1913.849976,4371850000,-2.9576446573270077,2050.9639973666667 +2015-09-02,1916.52002,1948.910034,1916.52002,1948.859985,3742620000,1.8292974600429224,2045.4543334666666 +2015-09-03,1950.790039,1975.01001,1944.719971,1951.130005,3520700000,0.11647937858398905,2040.4203369 +2015-09-04,1947.76001,1947.76001,1911.209961,1921.219971,3167090000,-1.5329595630917514,2035.1393392 +2015-09-08,1927.300049,1970.420044,1927.300049,1969.410034,3548650000,2.5083053334552297,2031.8650105666668 +2015-09-09,1971.449951,1988.630005,1937.880005,1942.040039,3652120000,-1.389756045083701,2026.8246785333333 +2015-09-10,1941.589966,1965.290039,1937.189941,1952.290039,3626320000,0.527795503396411,2021.6153442333334 +2015-09-11,1951.449951,1961.050049,1939.189941,1961.050049,3218590000,0.4487043331167673,2016.6960164333332 +2015-09-14,1963.060059,1963.060059,1948.27002,1953.030029,3000200000,-0.4089655949418347,2011.6690144666668 +2015-09-15,1955.099976,1983.189941,1954.300049,1978.089966,3239860000,1.2831311668480172,2007.6706786999998 +2015-09-16,1978.02002,1997.26001,1977.930054,1995.310059,3630680000,0.8705414463438865,2004.4036784000002 +2015-09-17,1995.329956,2020.859985,1986.72998,1990.199951,4183790000,-0.25610596092323634,2000.7490071666666 +2015-09-18,1989.660034,1989.660034,1953.449951,1958.030029,6021240000,-1.6164165808483677,1996.5646728333334 +2015-09-21,1960.839966,1979.640015,1955.800049,1966.969971,3269350000,0.4565783909129095,1992.8780029333334 +2015-09-22,1961.390015,1961.390015,1929.219971,1942.73999,3808260000,-1.2318429542511833,1987.4966715333333 +2015-09-23,1943.23999,1949.52002,1932.569946,1938.76001,3190530000,-0.2048642649292498,1982.6530029333335 +2015-09-24,1934.810059,1937.170044,1908.920044,1932.23999,4091530000,-0.33629845707411343,1977.5260009666665 +2015-09-25,1935.930054,1952.890015,1921.5,1931.339966,3721870000,-0.046579307159455574,1972.4576700666664 +2015-09-28,1929.180054,1929.180054,1879.209961,1881.77002,4326660000,-2.566609031690281,1965.4653360999998 +2015-09-29,1881.900024,1899.47998,1871.910034,1884.089966,4132390000,0.12328530985949993,1958.1870036 +2015-09-30,1887.140015,1920.530029,1887.140015,1920.030029,4525070000,1.907555565210206,1952.2906738333334 +2015-10-01,1919.650024,1927.209961,1900.699951,1923.819946,3983600000,0.19738842324117378,1947.0976684666666 +2015-10-02,1921.77002,1951.359985,1893.699951,1951.359985,4378570000,1.4315289254205554,1944.2853353 +2015-10-05,1954.329956,1989.170044,1954.329956,1987.050049,4334490000,1.828984107204601,1944.8240030999998 +2015-10-06,1986.630005,1991.619995,1971.98999,1979.920044,4202400000,-0.35882362417535285,1947.7143391999998 +2015-10-07,1982.339966,1999.310059,1976.439941,1995.829956,4666470000,0.8035633584403401,1951.9883382333333 +2015-10-08,1994.01001,2016.5,1987.530029,2013.430054,3939140000,0.8818435632298893,1954.4190063666667 +2015-10-09,2013.72998,2020.130005,2007.609985,2014.890015,3706900000,0.07251113576554058,1955.3266724 +2015-10-12,2015.650024,2018.660034,2010.550049,2017.459961,2893250000,0.12754770636946855,1956.2796712666668 +2015-10-13,2015.0,2022.339966,2001.780029,2003.689941,3401920000,-0.6825424180004314,1957.330000833333 +2015-10-14,2003.660034,2009.560059,1990.72998,1994.23999,3644590000,-0.4716274113390928,1960.0096679666667 +2015-10-15,1996.469971,2024.150024,1996.469971,2023.859985,3746290000,1.485277356212289,1962.5096679666667 +2015-10-16,2024.369995,2033.540039,2020.459961,2033.109985,3595430000,0.45704742761638606,1965.2423339666666 +2015-10-19,2031.72998,2034.449951,2022.310059,2033.660034,3287320000,0.02705456193015099,1968.9903360666665 +2015-10-20,2033.130005,2039.119995,2026.609985,2030.77002,3331500000,-0.1421090030626071,1971.0356689333335 +2015-10-21,2033.469971,2037.969971,2017.219971,2018.939941,3627790000,-0.5825415425425584,1973.598999 +2015-10-22,2021.880005,2055.199951,2021.880005,2052.51001,4430850000,1.6627571884764603,1976.9396647 +2015-10-23,2058.189941,2079.73999,2058.189941,2075.149902,4108460000,1.1030344256396596,1980.7429931333334 +2015-10-26,2075.080078,2075.139893,2066.530029,2071.179932,3385800000,-0.19131003481598352,1984.6813232333334 +2015-10-27,2068.75,2070.370117,2058.840088,2065.889893,4216880000,-0.2554118509101144,1987.6079874666668 +2015-10-28,2066.47998,2090.350098,2063.110107,2090.350098,4698110000,1.1840033238402548,1990.7759887666666 +2015-10-29,2088.350098,2092.52002,2082.629883,2089.409912,4008940000,-0.044977441860072354,1994.0829874666665 +2015-10-30,2090.0,2094.320068,2079.340088,2079.360107,4256200000,-0.4809877153488018,1998.1273234 +2015-11-02,2080.76001,2106.199951,2080.76001,2104.050049,3760020000,1.1873817294504763,2002.6966593333334 +2015-11-03,2102.629883,2116.47998,2097.51001,2109.790039,4272060000,0.27280672352485436,2008.2649943000001 +2015-11-04,2110.600098,2114.590088,2096.97998,2102.310059,4078870000,-0.3545367008911171,2013.7166625999998 +2015-11-05,2101.679932,2108.780029,2090.409912,2099.929932,4051890000,-0.11321484144598548,2019.3063273333332 +2015-11-06,2098.600098,2101.909912,2083.73999,2099.199951,4369020000,-0.03476215986428777,2024.9016601666667 +2015-11-09,2096.560059,2096.560059,2068.23999,2078.580078,3882350000,-0.9822729364192928,2031.4619954333332 +2015-11-10,2077.189941,2083.669922,2069.909912,2081.719971,3821440000,0.15105951573544107,2038.0496622666665 +2015-11-11,2083.409912,2086.939941,2074.850098,2075.0,3692410000,-0.32280859546982565,2043.2153279666666 +2015-11-12,2072.290039,2072.290039,2045.660034,2045.969971,4016370000,-1.3990375421686796,2047.286995466667 +2015-11-13,2044.640015,2044.640015,2022.02002,2023.040039,4278750000,-1.120736488072338,2049.6763306000003 +2015-11-16,2022.079956,2053.219971,2019.390015,2053.189941,3741240000,1.490326509548634,2051.8809936666667 +2015-11-17,2053.669922,2066.689941,2045.900024,2050.439941,4427350000,-0.13393792484004408,2054.2316569000004 +2015-11-18,2051.98999,2085.310059,2051.98999,2083.580078,3926390000,1.616245193889343,2057.156660966667 +2015-11-19,2083.699951,2086.73999,2078.76001,2081.23999,3628110000,-0.11231092218189076,2059.4169921666667 +2015-11-20,2082.820068,2097.060059,2082.820068,2089.169922,3929600000,0.38101958630922805,2061.892989066667 +2015-11-23,2089.409912,2095.610107,2081.389893,2086.590088,3587980000,-0.12348607802712408,2064.1973266333334 +2015-11-24,2084.419922,2094.120117,2070.290039,2089.139893,3884930000,0.12219961240418353,2067.045658366667 +2015-11-25,2089.300049,2093.0,2086.300049,2088.870117,2852940000,-0.012913256833779752,2070.1999959333334 +2015-11-27,2088.820068,2093.290039,2084.129883,2090.110107,1466840000,0.05936175686120926,2072.4083333333333 +2015-11-30,2090.949951,2093.810059,2080.409912,2080.409912,4275030000,-0.46409971261862637,2073.9849975666666 +2015-12-01,2082.929932,2103.370117,2082.929932,2102.629883,3712120000,1.0680573511899327,2076.2839925333333 +2015-12-02,2101.709961,2104.27002,2077.110107,2079.51001,3950640000,-1.0995693149292163,2077.908658866667 +2015-12-03,2080.709961,2085.0,2042.349976,2049.620117,4306490000,-1.4373526867514363,2078.9313314 +2015-12-04,2051.23999,2093.840088,2051.23999,2091.689941,4214910000,2.0525668952535936,2080.2373291 +2015-12-07,2090.419922,2090.419922,2066.780029,2077.070068,4043820000,-0.6989502943734904,2080.301334633333 +2015-12-08,2073.389893,2073.850098,2052.320068,2063.590088,4173570000,-0.6489901427822242,2080.048339833333 +2015-12-09,2061.169922,2080.330078,2036.530029,2047.619995,4385250000,-0.7738985127360154,2079.439343233333 +2015-12-10,2047.930054,2067.649902,2045.670044,2052.22998,3715150000,0.22513869815967702,2078.1686726333332 +2015-12-11,2047.27002,2047.27002,2008.800049,2012.369995,4301060000,-1.942276713061175,2075.6006754 +2015-12-14,2013.369995,2022.920044,1993.26001,2021.939941,4612440000,0.47555598740678384,2073.6866698666668 +2015-12-15,2025.550049,2053.870117,2025.550049,2043.410034,4353540000,1.0618561196917398,2071.6653360333335 +2015-12-16,2046.5,2076.719971,2042.430054,2073.070068,4635450000,1.4514969343641715,2070.4413369999997 +2015-12-17,2073.76001,2076.370117,2041.660034,2041.890015,4327390000,-1.5040520569611582,2068.4273355333335 +2015-12-18,2040.810059,2040.810059,2005.329956,2005.550049,6683070000,-1.779722009170015,2065.2813394333334 +2015-12-21,2010.27002,2022.900024,2005.930054,2021.150024,3760280000,0.7778402243204363,2062.6796752 +2015-12-22,2023.150024,2042.73999,2020.48999,2038.969971,3520860000,0.8816736406698222,2061.3593382999998 +2015-12-23,2042.199951,2064.72998,2042.199951,2064.290039,3484090000,1.2418068122691306,2060.7783405666664 +2015-12-24,2063.52002,2067.360107,2058.72998,2060.98999,1411860000,-0.15986363048084984,2060.3113402333333 +2015-12-28,2057.77002,2057.77002,2044.199951,2056.5,2492510000,-0.21785598289102426,2060.6623412 +2015-12-29,2060.540039,2081.560059,2060.540039,2078.360107,2542000000,1.0629762703622703,2062.5063434666667 +2015-12-30,2077.340088,2077.340088,2061.969971,2063.360107,2367430000,-0.7217228597430903,2062.845349 +2015-12-31,2060.590088,2062.540039,2043.619995,2043.939941,2655330000,-0.9411913089778401,2062.6286823333335 +2016-01-04,2038.199951,2038.199951,1989.680054,2012.660034,4304880000,-1.5303730981790165,2060.264680866667 +2016-01-05,2013.780029,2021.939941,2004.170044,2016.709961,3706620000,0.2012226074739054,2058.1136799 +2016-01-06,2011.709961,2011.709961,1979.050049,1990.26001,4336660000,-1.3115396617015107,2054.8166828333333 +2016-01-07,1985.319946,1985.319946,1938.829956,1943.089966,5076590000,-2.370044303909813,2050.033345433333 +2016-01-08,1945.969971,1960.400024,1918.459961,1922.030029,4664940000,-1.0838374634476344,2044.4630166333334 +2016-01-11,1926.119995,1935.650024,1901.099976,1923.670044,4607290000,0.08532723085774574,2038.9563475333334 +2016-01-12,1927.829956,1947.380005,1914.349976,1938.680054,4887260000,0.7802798638371966,2033.9086791 +2016-01-13,1940.339966,1950.329956,1886.410034,1890.280029,5087030000,-2.496545260273253,2027.5710163333335 +2016-01-14,1891.680054,1934.469971,1878.930054,1921.839966,5241110000,1.6695905641396447,2021.5446857666668 +2016-01-15,1916.680054,1916.680054,1857.829956,1880.329956,5468460000,-2.1599098121783955,2014.9053506333332 +2016-01-19,1888.660034,1901.439941,1864.599976,1881.329956,4928350000,0.05318215544081184,2009.2956786 +2016-01-20,1876.180054,1876.180054,1812.290039,1859.329956,6416070000,-1.1693855152753452,2001.5503457666666 +2016-01-21,1861.459961,1889.849976,1848.97998,1868.98999,5078810000,0.5195438264643304,1994.6143431666667 +2016-01-22,1877.400024,1908.849976,1877.400024,1906.900024,4901760000,2.028370093089693,1989.3913410333334 +2016-01-25,1906.280029,1906.280029,1875.969971,1877.079956,4401380000,-1.5637981868314221,1983.7066730666668 +2016-01-26,1878.790039,1906.72998,1878.790039,1903.630005,4357940000,1.4144335682203524,1978.7533405666666 +2016-01-27,1902.52002,1916.98999,1872.699951,1882.949951,4754040000,-1.0863483946818686,1974.4393391 +2016-01-28,1885.219971,1902.959961,1873.650024,1893.359985,4693010000,0.552857711086352,1970.1533405666667 +2016-01-29,1894.0,1940.23999,1894.0,1940.23999,5497570000,2.476021748183288,1966.7143391 +2016-02-01,1936.939941,1947.199951,1920.300049,1939.380005,4322530000,-0.04432364060282801,1962.2580036666666 +2016-02-02,1935.26001,1935.26001,1897.290039,1903.030029,4463190000,-1.8743091042644822,1957.6293374666668 +2016-02-03,1907.069946,1918.01001,1872.22998,1912.530029,5172950000,0.4992038935398124,1954.5286701333332 +2016-02-04,1911.670044,1927.349976,1900.52002,1915.449951,5193320000,0.15267326294097217,1951.0053343666666 +2016-02-05,1913.069946,1913.069946,1872.650024,1880.050049,4929940000,-1.8481246133065898,1945.7080036333334 +2016-02-08,1873.25,1873.25,1828.459961,1853.439941,5636460000,-1.4153935962584518,1938.6796670333335 +2016-02-09,1848.459961,1868.25,1834.939941,1852.209961,5183220000,-0.06636201005447706,1931.7203327333334 +2016-02-10,1857.099976,1881.599976,1850.319946,1851.859985,4471170000,-0.01889505009523562,1924.8989989000002 +2016-02-11,1847.0,1847.0,1810.099976,1829.079956,5500800000,-1.2301161634528213,1916.5896605333332 +2016-02-12,1833.400024,1864.780029,1833.400024,1864.780029,4696920000,1.9518049434029239,1909.9703246 +2016-02-16,1871.439941,1895.77002,1871.439941,1895.579956,4570670000,1.651665425466664,1905.0249917666665 +2016-02-17,1898.800049,1930.680054,1898.800049,1926.819946,5011540000,1.6480439087318555,1902.1636555 +2016-02-18,1927.569946,1930.0,1915.089966,1917.829956,4436490000,-0.46657135860892485,1898.8676553333332 +2016-02-19,1916.73999,1918.780029,1902.170044,1917.780029,4142850000,-0.0026033069221664817,1896.4516559666665 +2016-02-22,1924.439941,1946.699951,1924.439941,1945.5,4054710000,1.4454197343192865,1896.5319904333332 +2016-02-23,1942.380005,1942.380005,1919.439941,1921.27002,3890650000,-1.2454371626831162,1896.5066568 +2016-02-24,1917.560059,1932.079956,1891.0,1929.800049,4317250000,0.4439786657369549,1896.7109902999998 +2016-02-25,1931.869995,1951.829956,1925.410034,1951.699951,4118210000,1.1348275180813827,1897.1449868666668 +2016-02-26,1954.949951,1962.959961,1945.780029,1948.050049,4348510000,-0.18701143063153403,1899.0706542 +2016-02-29,1947.130005,1958.27002,1931.810059,1932.22998,4588180000,-0.8120976670040303,1899.4169880000002 +2016-03-01,1937.089966,1978.349976,1937.089966,1978.349976,4819750000,2.3868792264572836,1902.684322 +2016-03-02,1976.599976,1986.51001,1968.800049,1986.449951,4666610000,0.409430843797276,1906.1883218333335 +2016-03-03,1985.599976,1993.689941,1977.369995,1993.400024,5081700000,0.3498740552965396,1910.6573240999999 +2016-03-04,1994.01001,2009.130005,1986.77002,1999.98999,6049930000,0.3305892405266686,1915.0239907666667 +2016-03-07,1996.109985,2006.119995,1989.380005,2001.76001,4968180000,0.08850144294971773,1918.1859903 +2016-03-08,1996.880005,1996.880005,1977.430054,1979.26001,4641650000,-1.1240108648189029,1921.5919921 +2016-03-09,1981.439941,1992.689941,1979.839966,1989.26001,4038120000,0.5052393293188295,1924.4463256000001 +2016-03-10,1990.969971,2005.079956,1969.25,1989.569946,4376790000,0.015580467030051892,1928.000325433333 +2016-03-11,1994.709961,2022.369995,1994.709961,2022.189941,4078620000,1.6395500477669467,1932.2946573000002 +2016-03-14,2019.27002,2024.569946,2012.050049,2019.640015,3487850000,-0.12609725467921384,1934.9413247999998 +2016-03-15,2015.27002,2015.939941,2005.22998,2015.930054,3560280000,-0.18369417185468695,1937.4929931000001 +2016-03-16,2014.23999,2032.02002,2010.040039,2027.219971,4057020000,0.5600351548705085,1941.6326578333333 +2016-03-17,2026.900024,2046.23999,2022.160034,2040.589966,4530480000,0.6595236427847873,1945.9013224 +2016-03-18,2041.160034,2052.360107,2041.160034,2049.580078,6503140000,0.4405643539266535,1950.3723266333334 +2016-03-21,2047.880005,2053.909912,2043.140015,2051.600098,3376600000,0.09855774954501406,1956.0906616 +2016-03-22,2048.639893,2056.600098,2040.569946,2049.800049,3418460000,-0.08773878504659827,1962.6359985333333 +2016-03-23,2048.550049,2048.550049,2034.859985,2036.709961,3639510000,-0.6386031655324587,1968.7859985333334 +2016-03-24,2032.47998,2036.040039,2022.48999,2035.939941,3407720000,-0.03780705229240455,1974.9219970666666 +2016-03-28,2037.890015,2042.670044,2031.959961,2037.050049,2809090000,0.054525576989994384,1981.8543335000002 +2016-03-29,2035.75,2055.909912,2028.310059,2055.01001,3822330000,0.8816651809226084,1988.1953328666668 +2016-03-30,2058.27002,2072.209961,2058.27002,2063.949951,3590310000,0.4350315062455534,1993.8076660333334 +2016-03-31,2063.77002,2067.919922,2057.459961,2059.73999,3715280000,-0.2039759248018691,1998.2383341666666 +2016-04-01,2056.620117,2075.070068,2043.97998,2072.780029,3749990000,0.6330915097686685,2003.4033365999999 +2016-04-04,2073.189941,2074.02002,2062.570068,2066.129883,3485710000,-0.32083221118298644,2008.3483317333335 +2016-04-05,2062.5,2062.5,2042.560059,2045.170044,4154920000,-1.0144492450574583,2011.6706665333334 +2016-04-06,2045.560059,2067.330078,2043.089966,2066.659912,3750800000,1.0507619189438877,2016.5169962666666 +2016-04-07,2063.01001,2063.01001,2033.800049,2041.910034,3801250000,-1.197578656086118,2020.2539957666668 +2016-04-08,2045.540039,2060.629883,2041.689941,2047.599976,3359530000,0.27865782063147826,2023.4506632666667 +2016-04-11,2050.22998,2062.929932,2041.880005,2041.98999,3567840000,-0.2739786123146515,2026.5819946333334 +2016-04-12,2043.719971,2065.050049,2039.73999,2061.719971,4239740000,0.9662134044055692,2030.8983276666665 +2016-04-13,2065.919922,2083.179932,2065.919922,2082.419922,4191830000,1.0040137017230277,2034.3673258666668 +2016-04-14,2082.889893,2087.840088,2078.129883,2082.780029,3765870000,0.01729271777490826,2037.5783284666666 +2016-04-15,2083.100098,2083.219971,2076.310059,2080.72998,3701450000,-0.09842849323767888,2040.489327 +2016-04-18,2078.830078,2094.659912,2073.649902,2094.340088,3316880000,0.6541025568344017,2043.6343302666667 +2016-04-19,2096.050049,2104.050049,2091.679932,2100.800049,3896830000,0.3084485197515807,2046.9356649000001 +2016-04-20,2101.52002,2111.050049,2096.320068,2102.399902,4184880000,0.07615446318947061,2051.0403279666666 +2016-04-21,2102.090088,2103.780029,2088.52002,2091.47998,4175290000,-0.5194027068595286,2054.4476603 +2016-04-22,2091.48999,2094.320068,2081.199951,2091.580078,3790580000,0.00478598891489046,2057.8479980333336 +2016-04-25,2089.370117,2089.370117,2077.52002,2087.790039,3319740000,-0.18120458498649405,2060.034667966667 +2016-04-26,2089.840088,2096.870117,2085.800049,2091.699951,3557190000,0.18727515348586632,2062.4366658333333 +2016-04-27,2092.330078,2099.889893,2082.310059,2095.149902,4100110000,0.16493527182761536,2065.0773274333333 +2016-04-28,2090.929932,2099.300049,2071.620117,2075.810059,4309840000,-0.9230768157227676,2066.696997033333 +2016-04-29,2071.820068,2073.850098,2052.280029,2065.300049,4704720000,-0.5063088481738531,2067.5206664666666 +2016-05-02,2067.169922,2083.419922,2066.110107,2081.429932,3841110000,0.7809946553678726,2068.5823282666665 +2016-05-03,2077.179932,2077.179932,2054.889893,2063.370117,4173390000,-0.8676638460102692,2068.974662233333 +2016-05-04,2060.300049,2060.300049,2045.550049,2051.120117,4058560000,-0.5936889314754001,2069.0186645 +2016-05-05,2052.949951,2060.22998,2045.77002,2050.629883,4008530000,-0.02390079429950287,2069.4826619 +2016-05-06,2047.77002,2057.719971,2039.449951,2057.139893,3796350000,0.3174639194507334,2070.1893269666666 +2016-05-09,2057.550049,2064.149902,2054.310059,2058.689941,3788620000,0.07534966412710009,2070.9106567 +2016-05-10,2062.629883,2084.870117,2062.629883,2084.389893,3600200000,1.2483643839788838,2071.8899861333334 +2016-05-11,2083.290039,2083.290039,2064.459961,2064.459961,3821980000,-0.9561518249023626,2071.9069864666667 +2016-05-12,2067.169922,2073.98999,2053.129883,2064.110107,3782390000,-0.01694651417848414,2072.0526570333336 +2016-05-13,2062.5,2066.790039,2043.130005,2046.609985,3579880000,-0.8478288992748939,2071.1803222333333 +2016-05-16,2046.530029,2071.879883,2046.530029,2066.659912,3501360000,0.9796652584981969,2071.197989866667 +2016-05-17,2065.040039,2065.689941,2040.819946,2047.209961,4108960000,-0.9411297372666105,2071.2659871 +2016-05-18,2044.380005,2060.610107,2034.48999,2047.630005,4101320000,0.020517875938574903,2070.6316568666666 +2016-05-19,2044.209961,2044.209961,2025.910034,2040.040039,3846770000,-0.37067077457677566,2070.5693237 +2016-05-20,2041.880005,2058.350098,2041.880005,2052.320068,3507650000,0.6019503914256319,2070.7266601 +2016-05-23,2052.22998,2055.580078,2047.26001,2048.040039,3055480000,-0.20854588262010365,2070.9283284 +2016-05-24,2052.649902,2079.669922,2052.649902,2076.060059,3627340000,1.3681382915580853,2071.406331333333 +2016-05-25,2078.929932,2094.72998,2078.929932,2090.540039,3859160000,0.6974740416216374,2071.6770019 +2016-05-26,2091.439941,2094.300049,2087.080078,2090.100098,3230990000,-0.021044370918177346,2071.9210042 +2016-05-27,2090.060059,2099.060059,2090.060059,2099.060059,3079150000,0.42868573656227316,2072.5320068333335 +2016-05-31,2100.129883,2103.47998,2088.659912,2096.949951,4514410000,-0.10052632800822137,2072.6190022666665 +2016-06-01,2093.939941,2100.969971,2085.100098,2099.330078,3525170000,0.11350423498972528,2072.5700032333334 +2016-06-02,2097.709961,2105.26001,2088.590088,2105.26001,3632720000,0.28246782448091423,2072.6653401666667 +2016-06-03,2104.070068,2104.070068,2085.360107,2099.129883,3627780000,-0.29118146788909005,2072.920336933333 +2016-06-06,2100.830078,2113.360107,2100.830078,2109.409912,3442020000,0.48972810511886955,2073.514664733333 +2016-06-07,2110.179932,2119.219971,2110.179932,2112.129883,3534730000,0.1289446391868454,2074.3259928666666 +2016-06-08,2112.709961,2120.550049,2112.709961,2119.120117,3562060000,0.33095663558677657,2075.2399984 +2016-06-09,2115.649902,2117.639893,2107.72998,2115.47998,3290320000,-0.1717758691825888,2075.9176676666666 +2016-06-10,2109.570068,2109.570068,2089.959961,2096.070068,3515010000,-0.917518113312521,2076.5930013 +2016-06-13,2091.75,2098.120117,2078.459961,2079.060059,3392030000,-0.8115191023280288,2077.0516683 +2016-06-14,2076.649902,2081.300049,2064.100098,2075.320068,3759770000,-0.17988855029992257,2076.8480061666664 +2016-06-15,2077.600098,2085.649902,2069.800049,2071.5,3544720000,-0.1840712697237734,2077.1190022666665 +2016-06-16,2066.360107,2079.620117,2050.370117,2077.98999,3628280000,0.3132990586531603,2078.0146647 +2016-06-17,2078.199951,2078.199951,2062.840088,2071.219971,4952630000,-0.32579651646926777,2078.701000966667 +2016-06-20,2075.580078,2100.659912,2075.580078,2083.25,3467440000,0.5808185112367248,2079.571337866667 +2016-06-21,2085.189941,2093.659912,2083.02002,2088.899902,3232880000,0.2712061442457836,2080.5783365666666 +2016-06-22,2089.75,2099.709961,2084.360107,2085.449951,3168160000,-0.16515635798043382,2080.6136718333332 +2016-06-23,2092.800049,2113.320068,2092.800049,2113.320068,3297940000,1.3364078570495375,2082.2423420666664 +2016-06-24,2103.810059,2103.810059,2032.569946,2037.410034,7597450000,-3.591979991551375,2081.3523396333335 +2016-06-27,2031.449951,2031.449951,1991.680054,2000.540039,5431220000,-1.8096502120201086,2079.816674766667 +2016-06-28,2006.670044,2036.089966,2006.670044,2036.089966,4385810000,1.777016520887531,2078.7976765666667 +2016-06-29,2042.689941,2073.129883,2042.689941,2070.77002,4241740000,1.7032672710494579,2079.5830118666663 +2016-06-30,2073.169922,2098.939941,2070.0,2098.860107,4622820000,1.3565044272757953,2081.2906819333334 +2016-07-01,2099.340088,2108.709961,2097.899902,2102.949951,3458890000,0.19486024753911924,2083.387679 +2016-07-05,2095.050049,2095.050049,2080.860107,2088.550049,3658380000,-0.6847477275030989,2084.595345033333 +2016-07-06,2084.429932,2100.719971,2074.02002,2099.72998,3909380000,0.5352962934909389,2086.318343066667 +2016-07-07,2100.419922,2109.080078,2089.389893,2097.899902,3604550000,-0.0871577782587063,2087.0463378333334 +2016-07-08,2106.969971,2131.709961,2106.969971,2129.899902,3607500000,1.5253349299217511,2088.3583332666667 +2016-07-11,2131.719971,2143.159912,2131.719971,2137.159912,3253340000,0.3408615584790109,2089.9269937333333 +2016-07-12,2139.5,2155.399902,2139.5,2152.139893,4097820000,0.70092934627346,2091.696321533333 +2016-07-13,2153.810059,2156.449951,2146.209961,2152.429932,3502320000,0.013476772627241118,2093.545654233333 +2016-07-14,2157.879883,2168.98999,2157.879883,2163.75,3465610000,0.5259203949780522,2095.6929849666662 +2016-07-15,2165.129883,2169.050049,2155.790039,2161.73999,3122600000,-0.09289474292316635,2097.5756509666667 +2016-07-18,2162.040039,2168.350098,2159.629883,2166.889893,3009310000,0.2382295291673886,2099.8343179666667 +2016-07-19,2163.790039,2164.629883,2159.01001,2163.780029,2968340000,-0.14351739837110689,2101.6466552 +2016-07-20,2166.100098,2175.629883,2164.889893,2173.02002,3211860000,0.4270300527854598,2103.6763264333335 +2016-07-21,2172.909912,2174.560059,2159.75,2165.169922,3438900000,-0.3612529073708126,2105.2113199333335 +2016-07-22,2166.469971,2175.110107,2163.23999,2175.030029,3023280000,0.4553964517894249,2107.1963215666665 +2016-07-25,2173.709961,2173.709961,2161.949951,2168.47998,3057240000,-0.3011475203867131,2109.6099853 +2016-07-26,2168.969971,2173.540039,2160.179932,2169.179932,3442350000,0.03227846263076373,2112.613981066667 +2016-07-27,2169.810059,2174.97998,2159.070068,2166.580078,3995500000,-0.11985423438815035,2115.6559814 +2016-07-28,2166.050049,2172.850098,2159.73999,2170.060059,3664240000,0.16062092674702377,2118.9413167000002 +2016-07-29,2168.830078,2177.090088,2163.48999,2173.600098,4038840000,0.16313092282023156,2122.1283203 +2016-08-01,2173.149902,2178.290039,2166.209961,2170.840088,3505990000,-0.12697873921424518,2125.448990866667 +2016-08-02,2169.939941,2170.199951,2147.580078,2157.030029,3848750000,-0.6361619668044383,2127.9083251666666 +2016-08-03,2156.810059,2163.790039,2152.560059,2163.790039,3786530000,0.31339433893435853,2130.4046630666667 +2016-08-04,2163.51001,2168.189941,2159.070068,2164.25,3709200000,0.02125719185825936,2133.0313313666666 +2016-08-05,2168.790039,2182.870117,2168.790039,2182.870117,3663070000,0.8603496361325957,2135.3496663333335 +2016-08-08,2183.76001,2185.439941,2177.850098,2180.889893,3327550000,-0.09071652887535642,2140.1323283 +2016-08-09,2182.23999,2187.659912,2178.610107,2181.73999,3334300000,0.0389793635491964,2146.1723266666663 +2016-08-10,2182.810059,2183.409912,2172.0,2175.48999,3254950000,-0.28646859977113914,2150.8189941333335 +2016-08-11,2177.969971,2188.449951,2177.969971,2185.790039,3423160000,0.4734588091577452,2154.652994766667 +2016-08-12,2183.73999,2186.280029,2179.419922,2184.050049,3000660000,-0.07960462665462797,2157.4926595 +2016-08-15,2186.080078,2193.810059,2186.080078,2190.149902,3078530000,0.27929089824627606,2160.3993245333336 +2016-08-16,2186.23999,2186.23999,2178.139893,2178.149902,3196400000,-0.5479077020728917,2163.3859863000002 +2016-08-17,2177.840088,2183.080078,2168.5,2182.219971,3388910000,0.18685899424382146,2166.1356526666664 +2016-08-18,2181.899902,2187.030029,2180.459961,2187.02002,3300570000,0.21996173913669814,2169.1063232666665 +2016-08-19,2184.23999,2185.0,2175.129883,2183.870117,3084800000,-0.14402716807320193,2170.9053304333333 +2016-08-22,2181.580078,2185.149902,2175.959961,2182.639893,2777550000,-0.05633228782350175,2172.4213298 +2016-08-23,2187.810059,2193.419922,2186.800049,2186.899902,3041490000,0.19517690543742194,2173.5799967666667 +2016-08-24,2185.090088,2186.659912,2171.25,2175.439941,3148280000,-0.5240276882137795,2174.346997066667 +2016-08-25,2173.290039,2179.0,2169.73999,2172.469971,2969310000,-0.1365227301395766,2174.637662766667 +2016-08-26,2175.100098,2187.939941,2160.389893,2169.040039,3342340000,-0.15788167596264557,2174.8809977333335 +2016-08-29,2170.189941,2183.47998,2170.189941,2180.379883,2654780000,0.522804733711979,2175.3306640666665 +2016-08-30,2179.449951,2182.27002,2170.409912,2176.120117,3006800000,-0.1953680655931933,2175.742000333333 +2016-08-31,2173.560059,2173.790039,2161.350098,2170.949951,3766390000,-0.2375864254739568,2175.6729980333334 +2016-09-01,2171.330078,2173.560059,2157.090088,2170.860107,3392120000,-0.0041384648208353525,2175.8626708666666 +2016-09-02,2177.48999,2184.870117,2173.590088,2179.97998,3091120000,0.42010413156485793,2176.027669233333 +2016-09-06,2181.610107,2186.570068,2175.100098,2186.47998,3447650000,0.2981678758352535,2176.627669233333 +2016-09-07,2185.169922,2187.870117,2179.070068,2186.159912,3319420000,-0.014638505859998485,2177.193668566667 +2016-09-08,2182.76001,2184.939941,2177.48999,2181.300049,3727840000,-0.22230135011277463,2177.6843342666666 +2016-09-09,2169.080078,2169.080078,2127.810059,2127.810059,4233960000,-2.4522068857295465,2176.2760009333333 +2016-09-12,2120.860107,2163.300049,2119.120117,2159.040039,4010480000,1.4677052525391865,2175.7906656333334 +2016-09-13,2150.469971,2150.469971,2120.27002,2127.02002,4141670000,-1.4830674013266876,2174.3299967 +2016-09-14,2127.860107,2141.330078,2119.899902,2125.77002,3664100000,-0.058767665007686265,2173.2879964000003 +2016-09-15,2125.360107,2151.310059,2122.360107,2147.26001,3373720000,1.0109273250546558,2172.7369954333335 +2016-09-16,2146.47998,2146.47998,2131.199951,2139.159912,5014360000,-0.37722949071267164,2171.9006591666666 +2016-09-19,2143.98999,2153.610107,2135.909912,2139.120117,3163000000,-0.0018603097307945404,2170.442325833333 +2016-09-20,2145.939941,2150.800049,2139.169922,2139.76001,3140730000,0.02991384143951059,2169.071329733333 +2016-09-21,2144.580078,2165.110107,2139.570068,2163.120117,3712090000,1.0917162154086668,2168.4506673 +2016-09-22,2170.939941,2179.98999,2170.939941,2177.179932,3552830000,0.6499784681166743,2168.5069987 +2016-09-23,2173.290039,2173.75,2163.969971,2164.689941,3317190000,-0.5736774814255385,2167.8036621 +2016-09-26,2158.540039,2158.540039,2145.040039,2146.100098,3216170000,-0.8587762454059567,2166.538663733333 +2016-09-27,2146.040039,2161.129883,2141.550049,2159.929932,3437770000,0.6444170061260746,2165.5313314 +2016-09-28,2161.850098,2172.399902,2151.790039,2171.370117,3891460000,0.5296553758763256,2165.3053385666667 +2016-09-29,2168.899902,2172.669922,2145.199951,2151.129883,4249220000,-0.9321411325289963,2164.2690023 +2016-09-30,2156.51001,2175.300049,2156.51001,2168.27002,4173340000,0.7967969361336813,2163.6440023 +2016-10-03,2164.330078,2164.409912,2154.77002,2161.199951,3137550000,-0.32606958242220596,2162.8883301 +2016-10-04,2163.370117,2165.459961,2144.01001,2150.48999,3750890000,-0.4955562300028915,2161.8166666666666 +2016-10-05,2155.149902,2163.949951,2155.149902,2159.72998,3906550000,0.429669054167503,2160.9110026 +2016-10-06,2158.219971,2162.929932,2150.280029,2160.77002,3461550000,0.048156019948386586,2160.4220052333335 +2016-10-07,2164.189941,2165.860107,2144.850098,2153.73999,3619890000,-0.3253483681710745,2159.7976725333333 +2016-10-10,2160.389893,2169.600098,2160.389893,2163.659912,2916550000,0.4605905098135743,2159.6183349666667 +2016-10-11,2161.350098,2161.560059,2128.840088,2136.72998,3438270000,-1.2446471763257416,2158.1633382 +2016-10-12,2137.669922,2145.360107,2132.77002,2139.179932,2977100000,0.11465894253985809,2156.9319987 +2016-10-13,2130.26001,2138.189941,2114.719971,2132.550049,3580450000,-0.30992638350910706,2155.652001966667 +2016-10-14,2139.679932,2149.189941,2132.97998,2132.97998,3228150000,0.020160417815362486,2154.3893310666667 +2016-10-17,2132.949951,2135.610107,2124.429932,2126.5,2830390000,-0.30379938212078406,2152.6066650666667 +2016-10-18,2138.310059,2144.379883,2135.48999,2139.600098,3170000000,0.6160403479896548,2151.0440023333335 +2016-10-19,2140.810059,2148.439941,2138.149902,2144.290039,3362670000,0.2191970828747003,2149.6483399 +2016-10-20,2142.51001,2147.179932,2133.439941,2141.340088,3337170000,-0.1375723874264545,2148.3163412 +2016-10-21,2139.429932,2142.629883,2130.090088,2141.159912,3448850000,-0.00841417022030555,2148.7613363 +2016-10-24,2148.5,2154.790039,2146.909912,2151.330078,3357320000,0.4749839534638145,2148.5043376000003 +2016-10-25,2149.719971,2151.439941,2141.929932,2143.159912,3751340000,-0.3797727779455973,2149.0423339999998 +2016-10-26,2136.969971,2145.72998,2131.590088,2139.429932,3775200000,-0.17404114266579285,2149.4976644000003 +2016-10-27,2144.060059,2147.129883,2132.52002,2133.040039,4204830000,-0.298672693338764,2149.0236653666666 +2016-10-28,2132.22998,2140.719971,2119.360107,2126.409912,4019510000,-0.31082993655890956,2148.598665366667 +2016-10-31,2129.780029,2133.25,2125.530029,2126.149902,3922400000,-0.012227651805640782,2148.166324866667 +2016-11-01,2128.679932,2131.449951,2097.850098,2111.719971,4532160000,-0.6786883176217451,2147.2316569 +2016-11-02,2109.429932,2111.76001,2094.0,2097.939941,4248580000,-0.6525500629458225,2145.0589843666667 +2016-11-03,2098.800049,2102.560059,2085.22998,2088.659912,3886740000,-0.44234006982948326,2142.1083170333336 +2016-11-04,2083.790039,2099.070068,2083.790039,2085.179932,3837860000,-0.16661305078947697,2139.4579834 +2016-11-07,2100.590088,2132.0,2100.590088,2131.52002,3736060000,2.2223544015960606,2138.9719808 +2016-11-08,2129.919922,2146.870117,2123.560059,2139.560059,3916930000,0.3771974424148228,2138.2929850333335 +2016-11-09,2131.560059,2170.100098,2125.350098,2163.26001,6264150000,1.1077020670818172,2138.022648133333 +2016-11-10,2167.48999,2182.300049,2151.169922,2167.47998,6451640000,0.19507456248868404,2138.5676513666667 +2016-11-11,2162.709961,2165.919922,2152.48999,2164.449951,4988050000,-0.13979501669952876,2138.4403157333336 +2016-11-14,2165.639893,2171.360107,2156.080078,2164.199951,5367200000,-0.011550278623184695,2138.540315733333 +2016-11-15,2168.290039,2180.840088,2166.379883,2180.389893,4543860000,0.7480797692708263,2139.5369791666667 +2016-11-16,2177.530029,2179.219971,2172.199951,2176.939941,3830590000,-0.15822638011099288,2140.1106445333335 +2016-11-17,2178.610107,2188.060059,2176.649902,2187.120117,3809160000,0.46763697097327306,2140.9889811000003 +2016-11-18,2186.850098,2189.889893,2180.379883,2181.899902,3572400000,-0.23867984933356734,2141.9276448333335 +2016-11-21,2186.429932,2198.699951,2186.429932,2198.179932,3607010000,0.746140094927239,2143.0783121666664 +2016-11-22,2201.560059,2204.800049,2194.51001,2202.939941,3957940000,0.21654319242507825,2145.285310866667 +2016-11-23,2198.550049,2204.719971,2194.51001,2204.719971,3418640000,0.08080247522281869,2147.4699788333332 +2016-11-25,2206.27002,2213.350098,2206.27002,2213.350098,1584600000,0.3914386912404755,2150.1633138 +2016-11-28,2210.209961,2211.139893,2200.360107,2201.719971,3505650000,-0.5254535651864956,2152.4546468333333 +2016-11-29,2200.76001,2210.459961,2198.149902,2204.659912,3706560000,0.13352928795322683,2155.059977233333 +2016-11-30,2204.969971,2214.100098,2198.810059,2198.810059,5533980000,-0.2653403805348509,2157.0336426 +2016-12-01,2200.169922,2202.600098,2187.439941,2191.080078,5063740000,-0.3515529214704216,2158.593310566667 +2016-12-02,2191.120117,2197.949951,2188.370117,2191.949951,3779500000,0.03970064849452282,2160.280306 +2016-12-05,2200.649902,2209.419922,2199.969971,2204.709961,3895230000,0.5821305360635076,2162.398640966667 +2016-12-06,2207.26001,2212.780029,2202.209961,2212.22998,3855320000,0.3410888113640542,2164.4286377 +2016-12-07,2210.719971,2241.629883,2208.929932,2241.350098,4501820000,1.316324173493011,2167.7016439000004 +2016-12-08,2241.129883,2251.689941,2237.570068,2246.189941,4200580000,0.21593427123762776,2171.2603108666667 +2016-12-09,2249.72998,2259.800049,2249.22998,2259.530029,3884480000,0.5938984836723504,2175.4766438666666 +2016-12-12,2258.830078,2264.030029,2252.370117,2256.959961,4034510000,-0.11374347616602831,2179.828312166667 +2016-12-13,2263.320068,2277.530029,2263.320068,2271.719971,3857590000,0.6539774854251279,2184.6806478 +2016-12-14,2268.350098,2276.199951,2248.439941,2253.280029,4406970000,-0.811717211425611,2189.3993164 +2016-12-15,2253.77002,2272.120117,2253.77002,2262.030029,4168200000,0.3883227955418844,2194.868986 +2016-12-16,2266.810059,2268.050049,2254.23999,2258.070068,5920340000,-0.17506226483432474,2200.5159912 +2016-12-19,2259.23999,2267.469971,2258.209961,2262.530029,3248370000,0.19751207295131135,2206.4276611 +2016-12-20,2266.5,2272.560059,2266.139893,2270.76001,3298780000,0.3637512384150554,2211.0689941 +2016-12-21,2270.540039,2271.22998,2265.149902,2265.179932,2852230000,-0.24573614012164402,2215.2563232 +2016-12-22,2262.929932,2263.179932,2256.080078,2260.959961,2876320000,-0.18629738593322065,2218.5129882333335 +2016-12-23,2260.25,2263.790039,2258.840088,2263.790039,2020550000,0.12517152222140115,2221.7233235333333 +2016-12-27,2266.22998,2273.820068,2266.149902,2268.879883,1987080000,0.22483728227060684,2225.2043212666667 +2016-12-28,2270.22998,2271.310059,2249.110107,2249.919922,2392360000,-0.83565292028287,2228.061653633333 +2016-12-29,2249.5,2254.51001,2244.560059,2249.26001,2336370000,-0.029330466100030428,2230.3573241999998 +2016-12-30,2251.610107,2253.580078,2233.620117,2238.830078,2670900000,-0.4637050387073738,2232.420328766667 +2017-01-03,2251.570068,2263.879883,2245.129883,2257.830078,3770530000,0.8486575281753117,2234.777327466667 +2017-01-04,2261.600098,2272.820068,2261.600098,2270.75,3764890000,0.5722273844205539,2237.7389974000002 +2017-01-05,2268.179932,2271.5,2260.449951,2269.0,3761820000,-0.0770670483320468,2240.0996663333335 +2017-01-06,2271.139893,2282.100098,2264.060059,2276.97998,3339890000,0.351695901278104,2242.5676676333333 +2017-01-09,2273.590088,2275.48999,2268.899902,2268.899902,3217610000,-0.3548594221719936,2244.706998666667 +2017-01-10,2269.719971,2279.27002,2265.27002,2268.899902,3638790000,0.0,2246.5586588 +2017-01-11,2268.600098,2275.320068,2260.830078,2275.320068,3620410000,0.282963827286542,2249.0119953666667 +2017-01-12,2271.139893,2271.780029,2254.25,2270.439941,3462130000,-0.2144809017699867,2251.2046629999995 +2017-01-13,2272.73999,2278.679932,2271.51001,2274.639893,3081270000,0.18498406076092877,2253.7323241333333 +2017-01-17,2269.139893,2272.080078,2262.810059,2267.889893,3584990000,-0.2967502689446566,2256.2926512999998 +2017-01-18,2269.139893,2272.01001,2263.350098,2271.889893,3315250000,0.17637540571728838,2258.957316033333 +2017-01-19,2271.899902,2274.330078,2258.409912,2263.689941,3165970000,-0.3609308719258353,2260.9233153666664 +2017-01-20,2269.959961,2276.959961,2265.01001,2271.310059,3524970000,0.33662375142391454,2262.892651333333 +2017-01-23,2267.780029,2271.780029,2257.02002,2265.199951,3152710000,-0.2690125012121847,2263.687646433333 +2017-01-24,2267.879883,2284.629883,2266.679932,2280.070068,3810960000,0.6564593555387965,2264.8169839999996 +2017-01-25,2288.879883,2299.550049,2288.879883,2298.370117,3846020000,0.8026090626263915,2266.1116535999995 +2017-01-26,2298.629883,2300.98999,2294.080078,2296.679932,3610360000,-0.07353841696332575,2267.435652633333 +2017-01-27,2299.02002,2299.02002,2291.620117,2294.689941,3135890000,-0.08664642261523303,2268.2013183 +2017-01-30,2286.01001,2286.01001,2268.040039,2280.899902,3591270000,-0.6009543491523051,2269.121980733333 +2017-01-31,2274.02002,2279.090088,2267.209961,2278.870117,4087450000,-0.08899053387745326,2269.6833170000004 +2017-02-01,2285.590088,2289.139893,2272.439941,2279.550049,3916610000,0.029836364737412246,2270.399316366667 +2017-02-02,2276.689941,2283.969971,2271.649902,2280.850098,3807710000,0.05703094786491114,2271.009985333333 +2017-02-03,2288.540039,2298.310059,2287.879883,2297.419922,3597970000,0.7264758001645832,2271.8986490666666 +2017-02-06,2294.280029,2296.179932,2288.570068,2292.560059,3109050000,-0.21153568633501818,2272.811319966667 +2017-02-07,2295.870117,2299.399902,2290.159912,2293.080078,3448690000,0.02268289539280044,2273.881990533334 +2017-02-08,2289.550049,2295.909912,2285.379883,2294.669922,3609740000,0.06933224946015226,2274.9113199666667 +2017-02-09,2296.699951,2311.080078,2296.610107,2307.870117,3677940000,0.5752546313281925,2276.210994433334 +2017-02-10,2312.27002,2319.22998,2311.100098,2316.100098,3475020000,0.35660503333254656,2278.4170003000004 +2017-02-13,2321.719971,2331.580078,2321.419922,2328.25,3349730000,0.524584494879643,2281.0499999666667 +2017-02-14,2326.120117,2337.580078,2322.169922,2337.580078,3520910000,0.4007335122946376,2284.3416666333333 +2017-02-15,2335.580078,2351.300049,2334.810059,2349.25,3775590000,0.49923089736394477,2287.3889973666664 +2017-02-16,2349.639893,2351.310059,2338.870117,2347.219971,3672370000,-0.08641179099713181,2289.9379963999995 +2017-02-17,2343.01001,2351.159912,2339.580078,2351.159912,3513060000,0.16785563554666538,2292.6766601333334 +2017-02-21,2354.909912,2366.709961,2354.909912,2365.379883,3579780000,0.6048066287377196,2295.623323566667 +2017-02-22,2361.110107,2365.129883,2358.340088,2362.820068,3468670000,-0.10822003765219579,2298.753995766667 +2017-02-23,2367.5,2368.26001,2355.090088,2363.810059,4015260000,0.04189870457795841,2301.9176676666666 +2017-02-24,2355.72998,2367.340088,2352.870117,2367.340088,3831570000,0.14933640655938607,2304.9850016666664 +2017-02-27,2365.22998,2371.540039,2361.870117,2369.75,3582610000,0.10179830148679958,2308.2953369666666 +2017-02-28,2366.080078,2367.790039,2358.959961,2363.639893,4210140000,-0.2578376200021104,2311.2620036333333 +2017-03-01,2380.129883,2400.97998,2380.129883,2395.959961,4345180000,1.36738545053825,2315.5310059 +2017-03-02,2394.75,2394.75,2380.169922,2381.919922,3821320000,-0.5859880477359969,2319.1986735333335 +2017-03-03,2380.919922,2383.889893,2375.389893,2383.120117,3555260000,0.050387714083699464,2323.1796793999997 +2017-03-06,2375.22998,2378.800049,2367.97998,2375.310059,3232700000,-0.3277240599114939,2326.646346066667 +2017-03-07,2370.73999,2375.120117,2365.51001,2368.389893,3518390000,-0.2913373760945248,2330.0860108 +2017-03-08,2369.810059,2373.090088,2361.01001,2362.97998,3812100000,-0.22842155406883613,2332.849674533333 +2017-03-09,2363.48999,2369.080078,2354.540039,2364.870117,3716340000,0.07998954777432843,2335.0663412 +2017-03-10,2372.52002,2376.860107,2363.040039,2372.600098,3432950000,0.3268670420600417,2337.5970134000004 +2017-03-13,2371.560059,2374.419922,2368.52002,2373.469971,3133900000,0.03666327927462909,2340.2230144 +2017-03-14,2368.550049,2368.550049,2358.179932,2365.449951,3172630000,-0.3379027372577559,2343.0413493666665 +2017-03-15,2370.340088,2390.01001,2368.939941,2385.26001,3906840000,0.8374752968933086,2346.5876791333335 +2017-03-16,2387.709961,2388.100098,2377.179932,2381.379883,3365660000,-0.16267102889130358,2349.9820069333337 +2017-03-17,2383.709961,2385.709961,2377.639893,2378.25,5178040000,-0.13143148736342036,2353.2286703333334 +2017-03-20,2378.23999,2379.550049,2369.659912,2373.469971,3054930000,-0.20098934090192477,2355.763671966667 +2017-03-21,2379.320068,2381.929932,2341.899902,2344.02002,4265590000,-1.2407972866659844,2357.479004 +2017-03-22,2343.0,2351.810059,2336.449951,2348.449951,3572730000,0.18898861623204422,2359.3246664333333 +2017-03-23,2345.969971,2358.919922,2342.129883,2345.959961,3260600000,-0.10602695616058755,2361.0343344 +2017-03-24,2350.419922,2356.219971,2335.73999,2343.97998,2975130000,-0.08439960753447995,2362.2379965 +2017-03-27,2329.110107,2344.899902,2322.25,2341.590088,3240230000,-0.10195872065427158,2363.0876628333335 +2017-03-28,2339.790039,2363.780029,2337.629883,2358.570068,3367780000,0.7251474152977444,2364.098331766667 +2017-03-29,2356.540039,2363.360107,2352.939941,2361.129883,3106940000,0.10853249749627203,2364.883325266667 +2017-03-30,2361.310059,2370.419922,2358.580078,2368.060059,3158420000,0.2935110029268939,2365.5103272333336 +2017-03-31,2364.820068,2370.350098,2362.600098,2362.719971,3354110000,-0.22550475355151978,2366.0269939 +2017-04-03,2362.340088,2365.870117,2344.72998,2358.840088,3416400000,-0.16421256211577306,2366.2829997666663 +2017-04-04,2354.76001,2360.530029,2350.719971,2360.159912,3206240000,0.055952245627599595,2366.1090007333332 +2017-04-05,2366.590088,2378.360107,2350.52002,2352.949951,3770520000,-0.30548612250135276,2365.7799968333334 +2017-04-06,2353.790039,2364.159912,2348.899902,2357.48999,3201920000,0.19295093795217433,2365.5693278666668 +2017-04-07,2356.590088,2363.76001,2350.73999,2355.540039,3053150000,-0.08271301291931099,2365.1759929000004 +2017-04-10,2357.159912,2366.370117,2351.5,2357.159912,2785410000,0.06876864639022706,2364.7563233000005 +2017-04-11,2353.919922,2355.219971,2337.25,2353.780029,3117420000,-0.14338793828936325,2364.427661166667 +2017-04-12,2352.149902,2352.719971,2341.179932,2344.929932,3196950000,-0.3759950756214048,2362.7266602000004 +2017-04-13,2341.97998,2348.26001,2328.949951,2328.949951,3143890000,-0.6814694452883074,2360.9609944999997 +2017-04-17,2332.620117,2349.139893,2332.51001,2349.01001,2824710000,0.861334911528977,2359.823990933334 +2017-04-18,2342.530029,2348.350098,2334.540039,2342.189941,3269840000,-0.29033801350211164,2358.7199869999995 +2017-04-19,2346.790039,2352.629883,2335.050049,2338.169922,3519900000,-0.17163505528009493,2357.712654633333 +2017-04-20,2342.689941,2361.370117,2340.909912,2355.840088,3647420000,0.7557263410900905,2357.4746582333332 +2017-04-21,2354.73999,2356.179932,2344.51001,2348.689941,3503360000,-0.30350731513657525,2356.9353190333336 +2017-04-24,2370.330078,2376.97998,2369.189941,2374.149902,3690650000,1.0840068991465168,2356.9869791666665 +2017-04-25,2381.51001,2392.47998,2381.149902,2388.610107,3995240000,0.6090687444722187,2357.491650366667 +2017-04-26,2388.97998,2398.159912,2386.780029,2387.449951,4105920000,-0.048570337896503,2358.2249837 +2017-04-27,2389.699951,2392.100098,2382.679932,2388.77002,4098460000,0.0552920072501184,2358.341984033333 +2017-04-28,2393.679932,2393.679932,2382.360107,2384.199951,3718270000,-0.19131473359665918,2358.4359863 +2017-05-01,2388.5,2394.48999,2384.830078,2388.330078,3199240000,0.1732290531365699,2358.7719889 +2017-05-02,2391.050049,2392.929932,2385.820068,2391.169922,3813680000,0.11890500505600254,2359.361987266667 +2017-05-03,2386.5,2389.820068,2379.75,2388.129883,3893990000,-0.12713605051778432,2360.8323160333334 +2017-05-04,2389.790039,2391.429932,2380.350098,2389.52002,4362540000,0.05821027616192964,2362.2013183333333 +2017-05-05,2392.370117,2399.290039,2389.379883,2399.290039,3540140000,0.4088695184901736,2363.9789876 +2017-05-08,2399.939941,2401.360107,2393.919922,2399.379883,3429440000,0.003744607718947357,2365.825651033333 +2017-05-09,2401.580078,2403.870117,2392.439941,2396.919922,3653590000,-0.10252486558836038,2367.6699788333335 +2017-05-10,2396.790039,2399.73999,2392.790039,2399.629883,3643530000,0.11306013918641611,2369.0386393333333 +2017-05-11,2394.840088,2395.719971,2381.73999,2394.439941,3727420000,-0.21628093718817354,2370.1489745999997 +2017-05-12,2392.439941,2392.439941,2387.189941,2390.899902,3305630000,-0.14784413421209397,2370.9103027 +2017-05-15,2393.97998,2404.050049,2393.939941,2402.320068,3473600000,0.47765136426025645,2372.2303059333335 +2017-05-16,2404.550049,2405.77002,2396.050049,2400.669922,3420790000,-0.06868968136181097,2373.6246337333337 +2017-05-17,2382.949951,2384.870117,2356.209961,2357.030029,4163000000,-1.81782145892192,2373.5203043 +2017-05-18,2354.689941,2375.73999,2352.719971,2365.719971,4319420000,0.3686818535649561,2373.9459716333336 +2017-05-19,2371.370117,2389.060059,2370.429932,2381.72998,3825160000,0.6767499617984285,2374.7539713 +2017-05-22,2387.209961,2395.459961,2386.919922,2394.02002,3172830000,0.5160131544382551,2376.036637333333 +2017-05-23,2397.040039,2400.850098,2393.879883,2398.419922,3213570000,0.18378718487075396,2377.411971 +2017-05-24,2401.409912,2405.580078,2397.98999,2404.389893,3389900000,0.2489126672622799,2379.0989664666663 +2017-05-25,2409.540039,2418.709961,2408.01001,2415.070068,3535390000,0.44419480513928633,2381.436971 +2017-05-26,2414.5,2416.679932,2412.199951,2415.820068,2805040000,0.031054999601765054,2384.332641566667 +2017-05-30,2411.669922,2415.26001,2409.429932,2412.909912,3203160000,-0.12046244828196606,2386.4626383 +2017-05-31,2415.629883,2415.98999,2403.590088,2411.800049,4516110000,-0.04599686853125062,2388.7829752333337 +2017-06-01,2415.649902,2430.060059,2413.540039,2430.060059,3857140000,0.7571112707942307,2391.8459798 +2017-06-02,2431.280029,2440.22998,2427.709961,2439.070068,3461680000,0.3707730994808367,2394.6203124666667 +2017-06-05,2437.830078,2439.550049,2434.320068,2436.100098,2912600000,-0.12176648957179514,2397.5339843666666 +2017-06-06,2431.919922,2436.209961,2428.120117,2429.330078,3357840000,-0.27790401574869783,2399.3733235666664 +2017-06-07,2432.030029,2435.280029,2424.75,2433.139893,3572300000,0.15682574527444704,2400.8576497666663 +2017-06-08,2434.27002,2439.27002,2427.939941,2433.790039,3728860000,0.026720452936990213,2402.4023193666662 +2017-06-09,2436.389893,2446.199951,2415.699951,2431.77002,4027340000,-0.08299890161560519,2403.8356527 +2017-06-12,2425.879883,2430.379883,2419.969971,2429.389893,4027750000,-0.09787631973520172,2405.3419841 +2017-06-13,2434.149902,2441.48999,2431.280029,2440.350098,3275500000,0.4511505144390471,2407.0759847666664 +2017-06-14,2443.75,2443.75,2428.340088,2437.919922,3555590000,-0.0995830885900939,2408.6343180999997 +2017-06-15,2424.139893,2433.949951,2418.530029,2432.459961,3353050000,-0.22395981716745172,2410.1119873666667 +2017-06-16,2431.23999,2433.149902,2422.879883,2433.149902,5284720000,0.028363920108120944,2411.5663167666667 +2017-06-19,2442.550049,2453.820068,2441.790039,2453.459961,3264700000,0.8347228826019126,2413.3719808333335 +2017-06-20,2450.659912,2450.659912,2436.600098,2437.030029,3416510000,-0.66966375083225,2414.6269856999998 +2017-06-21,2439.310059,2442.22998,2430.73999,2435.610107,3594820000,-0.05826444414320786,2415.916658533333 +2017-06-22,2437.399902,2441.620117,2433.27002,2434.5,3468210000,-0.045578189908535016,2417.078995766666 +2017-06-23,2434.649902,2441.399902,2431.110107,2438.300049,5278330000,0.15609155884164228,2418.540999366667 +2017-06-26,2443.320068,2450.419922,2437.030029,2439.070068,3238970000,0.03158015767239508,2420.146671566667 +2017-06-27,2436.340088,2440.149902,2419.379883,2419.379883,3563910000,-0.8072824663108435,2420.7153320666666 +2017-06-28,2428.699951,2442.969971,2428.02002,2440.689941,3500800000,0.880806612873708,2422.0493327 +2017-06-29,2442.379883,2442.72998,2405.699951,2419.699951,3900280000,-0.8600023152223968,2424.1383301 +2017-06-30,2429.199951,2432.709961,2421.649902,2423.409912,3361590000,0.15332318366443332,2426.0613281333335 +2017-07-03,2431.389893,2439.169922,2428.689941,2429.01001,1962290000,0.23108339915050014,2427.6373291333334 +2017-07-05,2430.780029,2434.899902,2422.050049,2432.540039,3367220000,0.1453278901884847,2428.9213297666665 +2017-07-06,2423.439941,2424.280029,2407.699951,2409.75,3364520000,-0.9368823795134262,2429.298999033333 +2017-07-07,2413.52002,2426.919922,2413.52002,2425.179932,2901330000,0.6403125635439322,2429.992000333333 +2017-07-10,2424.51001,2432.0,2422.27002,2427.429932,2999130000,0.09277662124411723,2430.4039958 +2017-07-11,2427.350098,2429.300049,2412.790039,2425.530029,3106750000,-0.0782680881929565,2430.7276611666666 +2017-07-12,2435.75,2445.76001,2435.75,2443.25,3171620000,0.730560775918554,2431.738997433333 +2017-07-13,2444.98999,2449.320068,2441.689941,2447.830078,3067670000,0.1874584262764767,2432.9399983999997 +2017-07-14,2449.159912,2463.540039,2446.689941,2459.27002,2736640000,0.4673503321499739,2433.9136637666666 +2017-07-17,2459.5,2462.820068,2457.159912,2459.139893,2793170000,-0.005291285582376126,2434.582657933333 +2017-07-18,2455.879883,2460.919922,2450.340088,2460.610107,2962130000,0.059785700040282386,2435.3996582333334 +2017-07-19,2463.850098,2473.830078,2463.850098,2473.830078,3059760000,0.5372639477660979,2436.8829915666665 +2017-07-20,2475.560059,2477.620117,2468.429932,2473.449951,3182780000,-0.015365930076616241,2438.2266601666665 +2017-07-21,2467.399902,2472.540039,2465.060059,2472.540039,3059570000,-0.03678716036409346,2439.5183268333335 +2017-07-24,2472.040039,2473.100098,2466.320068,2469.909912,3010240000,-0.1063734846964759,2440.7896565666665 +2017-07-25,2477.879883,2481.23999,2474.909912,2477.129883,4108060000,0.29231717986644146,2442.3809895666664 +2017-07-26,2479.969971,2481.689941,2474.939941,2477.830078,3557020000,0.028266382187114303,2443.630322233333 +2017-07-27,2482.76001,2484.040039,2459.929932,2475.419922,3995520000,-0.09726881683288502,2444.880322233333 +2017-07-28,2469.120117,2473.530029,2464.659912,2472.100098,3294770000,-0.13411154893340216,2446.201660133333 +2017-07-31,2475.939941,2477.959961,2468.530029,2470.300049,3469210000,-0.07281456772143535,2447.4399983666663 +2017-08-01,2477.100098,2478.51001,2471.139893,2476.350098,3460860000,0.2449115038656524,2448.203002933333 +2017-08-02,2480.379883,2480.379883,2466.47998,2477.570068,3478580000,0.049264843488217025,2449.554337566667 +2017-08-03,2476.030029,2476.030029,2468.850098,2472.159912,3645020000,-0.21836540850557196,2450.7726644 +2017-08-04,2476.879883,2480.0,2472.080078,2476.830078,3235140000,0.18891035233321585,2452.1836670000002 +2017-08-07,2477.139893,2480.949951,2475.879883,2480.909912,2931780000,0.1647199796319665,2453.6039957666662 +2017-08-08,2478.350098,2490.870117,2470.320068,2474.919922,3344640000,-0.2414432693031987,2454.7989909 +2017-08-09,2465.350098,2474.409912,2462.080078,2474.02002,3308060000,-0.03636085321390148,2456.6203288000006 +2017-08-10,2465.379883,2465.379883,2437.75,2438.209961,3621070000,-1.447444188426572,2456.5376628000004 +2017-08-11,2441.040039,2448.090088,2437.850098,2441.320068,3159930000,0.12755698031536866,2457.2583333666666 +2017-08-14,2454.959961,2468.219971,2454.959961,2465.840088,2822550000,1.0043754738020771,2458.6726725666667 +2017-08-15,2468.659912,2468.899902,2461.610107,2464.610107,2913100000,-0.04988080962693431,2459.859342466667 +2017-08-16,2468.629883,2474.929932,2463.860107,2468.110107,2953650000,0.14201029160998413,2461.0450114 +2017-08-17,2462.949951,2465.02002,2430.01001,2430.01001,3142620000,-1.5436951897705553,2461.7203450666666 +2017-08-18,2427.639893,2440.27002,2420.689941,2425.550049,3415680000,-0.18353673366143797,2461.7326823 +2017-08-21,2425.5,2430.580078,2417.350098,2428.370117,2788150000,0.11626509216591252,2461.7640218 +2017-08-22,2433.75,2454.77002,2433.669922,2452.51001,2777490000,0.9940779962249957,2462.6633545 +2017-08-23,2444.879883,2448.909912,2441.419922,2444.040039,2785290000,-0.3453592835692465,2462.689689133333 +2017-08-24,2447.909912,2450.389893,2436.189941,2438.969971,2846590000,-0.2074461923330162,2462.3943522333334 +2017-08-25,2444.719971,2453.959961,2442.219971,2443.050049,2588780000,0.1672869304875979,2461.853686533333 +2017-08-28,2447.350098,2449.120117,2439.030029,2444.23999,2677700000,0.04870718880634062,2461.3570231 +2017-08-29,2431.939941,2449.189941,2428.199951,2446.300049,2737580000,0.08428219030980344,2460.8800211666667 +2017-08-30,2446.060059,2460.310059,2443.77002,2457.590088,2633660000,0.4615148908088784,2460.338688166667 +2017-08-31,2462.649902,2475.01001,2462.649902,2471.649902,3348110000,0.5720976036098113,2460.2786865333333 +2017-09-01,2474.419922,2480.379883,2473.850098,2476.550049,2710730000,0.19825408914242448,2460.4123535333333 +2017-09-05,2470.350098,2471.969971,2446.550049,2457.850098,3490260000,-0.7550806819975553,2460.0103597333336 +2017-09-06,2463.830078,2469.639893,2459.199951,2465.540039,3374410000,0.31287266079642606,2459.6240316 +2017-09-07,2468.060059,2468.620117,2460.290039,2465.100098,3353930000,-0.017843595846800397,2459.1996989333334 +2017-09-08,2462.25,2467.110107,2459.399902,2461.429932,3302490000,-0.1488850697372368,2458.733365933333 +2017-09-11,2474.52002,2488.949951,2474.52002,2488.110107,3291760000,1.0839298999797853,2459.2670329000002 +2017-09-12,2491.939941,2496.77002,2490.370117,2496.47998,3230920000,0.3363947992676142,2460.139697266667 +2017-09-13,2493.889893,2498.370117,2492.139893,2498.370117,3368050000,0.07571208321885958,2460.8736979 +2017-09-14,2494.560059,2498.429932,2491.350098,2495.620117,3414460000,-0.11007176163723154,2461.4753662 +2017-09-15,2495.669922,2500.22998,2493.159912,2500.22998,4853170000,0.18471813753215827,2462.411035133334 +2017-09-18,2502.51001,2508.320068,2499.919922,2503.870117,3194300000,0.14559208669275847,2463.3123697666665 +2017-09-19,2506.290039,2507.840088,2503.189941,2506.649902,3249100000,0.11101953656169616,2464.1703694333337 +2017-09-20,2506.840088,2508.850098,2496.669922,2508.23999,3530010000,0.06343478595600693,2465.2810383666665 +2017-09-21,2507.159912,2507.159912,2499.0,2500.600098,2930860000,-0.3045917468208481,2466.1670409666667 +2017-09-22,2497.26001,2503.469971,2496.540039,2502.219971,2865960000,0.06477937041176052,2468.3007079666663 +2017-09-25,2499.389893,2502.540039,2488.030029,2496.659912,3297890000,-0.22220504449805834,2470.1453694333336 +2017-09-26,2501.040039,2503.51001,2495.120117,2496.840088,3043110000,0.007216681740818132,2471.1787027666664 +2017-09-27,2503.300049,2511.75,2495.909912,2507.040039,3456030000,0.4085143878064912,2472.5930338333333 +2017-09-28,2503.409912,2510.810059,2502.929932,2510.060059,3168620000,0.12046157831626658,2473.9913655666664 +2017-09-29,2509.959961,2519.439941,2507.98999,2519.360107,3211920000,0.37051097509217534,2476.969702133333 +2017-10-02,2521.199951,2529.22998,2520.399902,2529.120117,3199730000,0.38740035506961146,2480.422037733333 +2017-10-03,2530.340088,2535.129883,2528.850098,2534.580078,3068850000,0.2158838152169995,2483.9623697666666 +2017-10-04,2533.47998,2540.530029,2531.800049,2537.73999,3017120000,0.12467201282879703,2486.8033691 +2017-10-05,2540.860107,2552.51001,2540.02002,2552.070068,3045120000,0.5646787321186508,2490.4043700666666 +2017-10-06,2547.439941,2549.409912,2543.790039,2549.330078,2884570000,-0.10736343152785155,2494.0830403 +2017-10-09,2551.389893,2551.820068,2541.600098,2544.72998,2483970000,-0.18044340510071644,2497.4723713333337 +2017-10-10,2549.98999,2555.22998,2544.860107,2550.639893,2960500000,0.23224126121230704,2501.0190347666667 +2017-10-11,2550.620117,2555.23999,2547.949951,2555.23999,2976090000,0.18035070386159813,2504.6503661333336 +2017-10-12,2552.879883,2555.330078,2548.310059,2550.929932,3151510000,-0.1686752718675133,2507.7616942666664 +2017-10-13,2555.659912,2557.649902,2552.090088,2553.169922,3149440000,0.08781072235268805,2510.479028266667 +2017-10-16,2555.570068,2559.469971,2552.639893,2557.639893,2916020000,0.17507534306602235,2513.1820230666667 +2017-10-17,2557.169922,2559.709961,2554.689941,2559.360107,2889390000,0.06725786553094526,2516.5656900333333 +2017-10-18,2562.870117,2564.110107,2559.669922,2561.26001,2998090000,0.07423351621382857,2519.7563557333333 +2017-10-19,2553.389893,2562.360107,2547.919922,2562.100098,2990710000,0.03279979372339259,2522.9896890666664 +2017-10-20,2567.560059,2575.439941,2567.560059,2575.209961,3384650000,0.5116842628527296,2526.7823567 +2017-10-23,2578.080078,2578.290039,2564.330078,2564.97998,3211710000,-0.3972484245916563,2529.3446858 +2017-10-24,2568.659912,2572.179932,2565.580078,2569.129883,3427330000,0.16179085343193123,2531.766349233333 +2017-10-25,2566.52002,2567.399902,2544.0,2557.149902,3874510000,-0.46630499607169806,2533.7256754 +2017-10-26,2560.080078,2567.070068,2559.800049,2560.399902,3869050000,0.12709462192490584,2535.8850015666667 +2017-10-27,2570.26001,2582.97998,2565.939941,2581.070068,3887110000,0.8073022493030768,2538.5796711666667 +2017-10-30,2577.75,2580.030029,2568.25,2572.830078,3658870000,-0.3192470480425591,2540.8783365333334 +2017-10-31,2575.98999,2578.290039,2572.149902,2575.26001,3827230000,0.09444587968627793,2543.165340133333 +2017-11-01,2583.209961,2588.399902,2574.919922,2579.360107,3813180000,0.15921099166993358,2545.5360107 +2017-11-02,2579.459961,2581.110107,2566.169922,2579.850098,4048270000,0.0189966107745132,2548.1776773666666 +2017-11-03,2581.929932,2588.419922,2576.77002,2587.840088,3567710000,0.30970752937133916,2551.0316812666665 +2017-11-06,2587.469971,2593.379883,2585.659912,2591.129883,3539080000,0.12712512706078982,2554.1806803 +2017-11-07,2592.110107,2597.02002,2584.350098,2590.639893,3809650000,-0.0189102832403254,2557.3073404666666 +2017-11-08,2588.709961,2595.469971,2585.02002,2594.379883,3899360000,0.14436549093934659,2560.2186686 +2017-11-09,2584.0,2586.5,2566.330078,2584.620117,3831610000,-0.3761887788273466,2562.704003866667 +2017-11-10,2580.179932,2583.810059,2575.570068,2582.300049,3486910000,-0.08976437135732596,2564.8020019333335 +2017-11-13,2576.530029,2587.659912,2574.47998,2584.840088,3402930000,0.09836343383038404,2566.6593343 +2017-11-14,2577.75,2579.659912,2566.560059,2578.870117,3641760000,-0.23096094136404455,2568.1356689333334 +2017-11-15,2569.449951,2572.840088,2557.449951,2564.620117,3558890000,-0.5525675723668133,2569.0316731666667 +2017-11-16,2572.949951,2590.090088,2572.949951,2585.639893,3312710000,0.819605830144865,2570.1506673333333 +2017-11-17,2582.939941,2583.959961,2577.620117,2578.850098,3300160000,-0.26259631197607103,2571.134668 +2017-11-20,2579.48999,2584.639893,2578.23999,2582.139893,3003540000,0.1275682910981013,2572.3816651 +2017-11-21,2589.169922,2601.189941,2589.169922,2599.030029,3332720000,0.6541139016436714,2573.9946696333336 +2017-11-22,2600.310059,2600.939941,2595.22998,2597.080078,2762950000,-0.07502610505620844,2575.3893392333334 +2017-11-24,2600.419922,2604.209961,2600.419922,2602.419922,1349780000,0.205609524528505,2577.1056722333333 +2017-11-27,2602.659912,2606.409912,2598.870117,2601.419922,3006860000,-0.03842577408612602,2578.714005566667 +2017-11-28,2605.939941,2627.689941,2605.439941,2627.040039,3488420000,0.984851264624087,2581.027343766667 +2017-11-29,2627.820068,2634.889893,2620.320068,2626.070068,4078280000,-0.0369225815214147,2583.2510091333334 +2017-11-30,2633.929932,2657.73999,2633.929932,2647.580078,4938490000,0.8190950524173068,2586.1283447333335 +2017-12-01,2645.100098,2650.620117,2605.52002,2642.219971,3942320000,-0.2024530643865985,2588.799007166667 +2017-12-04,2657.189941,2665.189941,2639.030029,2639.439941,4023150000,-0.10521569099137817,2590.9400065 +2017-12-05,2639.780029,2648.719971,2627.72998,2629.570068,3539040000,-0.37393815432908983,2593.093009433333 +2017-12-06,2626.23999,2634.409912,2624.75,2629.27002,3229000000,-0.011410534507194647,2595.0976806666667 +2017-12-07,2628.379883,2640.98999,2626.530029,2636.97998,3292400000,0.2932357628297133,2597.758683266666 +2017-12-08,2646.209961,2651.649902,2644.100098,2651.5,3106150000,0.5506306498390678,2600.7953532 +2017-12-11,2652.189941,2660.330078,2651.469971,2659.98999,3091950000,0.32019573826136405,2603.426017266667 +2017-12-12,2661.72998,2669.719971,2659.780029,2664.110107,3555680000,0.15489219942514953,2606.4686849 +2017-12-13,2667.590088,2671.879883,2662.850098,2662.850098,3542370000,-0.04729568033579046,2609.3883545 +2017-12-14,2665.870117,2668.090088,2652.01001,2652.01001,3430030000,-0.40708592677227706,2611.8100179333337 +2017-12-15,2660.629883,2679.629883,2659.139893,2675.810059,5723920000,0.897434357723248,2615.0086833 +2017-12-18,2685.919922,2694.969971,2685.919922,2690.159912,3724660000,0.5362807031737971,2618.4193441 +2017-12-19,2692.709961,2694.439941,2680.73999,2681.469971,3368590000,-0.3230269308986733,2621.430680366667 +2017-12-20,2688.179932,2691.01001,2676.110107,2679.25,3241030000,-0.08278932913695636,2624.3843506 +2017-12-21,2683.02002,2692.639893,2682.399902,2684.570068,3273390000,0.19856556872259734,2627.3906901 +2017-12-22,2684.219971,2685.350098,2678.129883,2683.340088,2399830000,-0.04581664731576618,2630.6813558 +2017-12-26,2679.090088,2682.73999,2677.959961,2680.5,1968780000,-0.10584152238849454,2633.9546875 +2017-12-27,2682.100098,2685.639893,2678.909912,2682.620117,2202080000,0.07909408692408082,2637.2140218 +2017-12-28,2686.100098,2687.659912,2682.689941,2687.540039,2153330000,0.18339987718805073,2640.8363525333334 +2017-12-29,2689.149902,2692.120117,2673.610107,2673.610107,2443490000,-0.5183153291804743,2644.4693522000002 +2018-01-02,2683.72998,2695.889893,2682.360107,2695.810059,3367250000,0.8303361788570607,2648.1416910666667 +2018-01-03,2697.850098,2714.370117,2697.77002,2713.060059,3538660000,0.6398818767817449,2652.6153564333335 +2018-01-04,2719.310059,2729.290039,2719.070068,2723.98999,3695260000,0.4028635843774442,2657.343693 +2018-01-05,2731.330078,2743.449951,2727.919922,2743.149902,3236620000,0.7033767403822333,2662.1476887666663 +2018-01-08,2742.669922,2748.51001,2737.600098,2747.709961,3242650000,0.16623440799481415,2667.1686848666664 +2018-01-09,2751.149902,2759.139893,2747.860107,2751.290039,3453480000,0.1302931550569042,2672.1310221 +2018-01-10,2745.550049,2750.800049,2736.060059,2748.22998,3576350000,-0.11122269759360481,2677.0246906999996 +2018-01-11,2752.969971,2767.560059,2752.780029,2767.560059,3641320000,0.7033646798365822,2681.7086913666662 +2018-01-12,2770.179932,2787.850098,2769.639893,2786.23999,3573970000,0.6749602755413919,2687.0476887666664 +2018-01-16,2798.959961,2807.540039,2768.639893,2776.419922,4325970000,-0.35244874939864834,2691.342350233333 +2018-01-17,2784.98999,2807.040039,2778.379883,2802.560059,3778050000,0.9415051661626705,2696.687019833333 +2018-01-18,2802.399902,2805.830078,2792.560059,2798.030029,3681470000,-0.16163899808150362,2701.9733561000003 +2018-01-19,2802.600098,2810.330078,2798.080078,2810.300049,3639430000,0.4385235280832678,2707.9976888 +2018-01-22,2809.159912,2833.030029,2808.120117,2832.969971,3471780000,0.8066726543333624,2714.7876871666663 +2018-01-23,2835.050049,2842.23999,2830.590088,2839.129883,3519650000,0.2174365440882342,2721.5260172666667 +2018-01-24,2845.419922,2852.969971,2824.810059,2837.540039,4014070000,-0.055997579030098166,2727.7273519 +2018-01-25,2846.23999,2848.560059,2830.939941,2839.25,3835150000,0.06026209239333724,2733.702685566667 +2018-01-26,2847.47998,2872.870117,2846.179932,2872.870117,3443230000,1.1841196442722524,2740.6613525666667 +2018-01-29,2867.22998,2870.620117,2851.47998,2853.530029,3573830000,-0.6731974371398275,2747.0173502666667 +2018-01-30,2832.73999,2837.75,2818.27002,2822.429932,3990650000,-1.0898815391439554,2752.698014333333 +2018-01-31,2832.409912,2839.26001,2813.040039,2823.810059,4261280000,0.04889853896290486,2757.631347666667 +2018-02-01,2816.449951,2835.959961,2812.699951,2821.97998,3938450000,-0.06480885618234122,2762.025349933333 +2018-02-02,2808.919922,2808.919922,2759.969971,2762.129883,4301130000,-2.1208547694941515,2764.7140136666662 +2018-02-05,2741.060059,2763.389893,2638.169922,2648.939941,5283460000,-4.097922501640738,2763.7036783666667 +2018-02-06,2614.780029,2701.040039,2593.070068,2695.139893,5891660000,1.7440920907613622,2764.0560058666665 +2018-02-07,2690.949951,2727.669922,2681.330078,2681.659912,4626570000,-0.5001588613270491,2764.0 +2018-02-08,2685.01001,2685.27002,2580.560059,2581.0,5305440000,-3.7536419718832703,2760.6833333333334 +2018-02-09,2601.780029,2638.669922,2532.689941,2619.550049,5680070000,1.4936090275087244,2758.5809977333333 +2018-02-12,2636.75,2672.610107,2622.449951,2656.0,4055790000,1.391458468751705,2757.5296631 +2018-02-13,2646.27002,2668.840088,2637.080078,2662.939941,3472870000,0.26129295933734475,2757.1739909000003 +2018-02-14,2651.209961,2702.100098,2648.870117,2698.629883,4003740000,1.3402458482258295,2757.267985033334 +2018-02-15,2713.459961,2731.51001,2689.820068,2731.199951,3684910000,1.2069112628291467,2757.8726481 +2018-02-16,2727.139893,2754.419922,2725.110107,2732.219971,3637460000,0.03734695439001623,2758.1469808000006 +2018-02-20,2722.98999,2737.600098,2706.76001,2716.26001,3627610000,-0.584138948159385,2757.2506510666667 +2018-02-21,2720.530029,2747.75,2701.290039,2701.330078,3779400000,-0.5496503260010055,2755.704654966667 +2018-02-22,2710.419922,2731.26001,2697.77002,2703.959961,3701270000,0.09735511485315929,2754.1269857 +2018-02-23,2715.800049,2747.76001,2713.73999,2747.300049,3189190000,1.6028376390592625,2754.095988 +2018-02-26,2757.370117,2780.639893,2753.780029,2779.600098,3424650000,1.1757015405636784,2754.497322633333 +2018-02-27,2780.449951,2789.149902,2744.219971,2744.280029,3745080000,-1.270688867273162,2753.0986572666666 +2018-02-28,2753.780029,2761.52002,2713.540039,2713.830078,4230660000,-1.1095788577777155,2751.0123291333334 +2018-03-01,2715.219971,2730.889893,2659.649902,2677.669922,4503970000,-1.332439945048025,2746.849324566667 +2018-03-02,2658.889893,2696.25,2647.320068,2691.25,3882450000,0.5071602697712896,2743.289990266667 +2018-03-05,2681.060059,2728.090088,2675.75,2720.939941,3710810000,1.1032026381792903,2740.3113200000003 +2018-03-06,2730.179932,2732.080078,2711.26001,2728.120117,3370690000,0.2638858686958345,2736.816324866667 +2018-03-07,2710.179932,2730.600098,2701.73999,2726.800049,3393270000,-0.048387458886944845,2733.071997066667 +2018-03-08,2732.75,2740.449951,2722.649902,2738.969971,3212320000,0.44630782533772173,2729.7863281333334 +2018-03-09,2752.909912,2786.570068,2751.540039,2786.570068,3364100000,1.7378831277445883,2728.0303304 +2018-03-12,2790.540039,2796.97998,2779.26001,2783.02002,3185020000,-0.12739848320225677,2725.035327166667 +2018-03-13,2792.310059,2801.899902,2758.679932,2765.310059,3301650000,-0.6363576572474661,2722.0946615000003 +2018-03-14,2774.060059,2777.110107,2744.379883,2749.47998,3391360000,-0.5724522264141441,2719.6629964333333 +2018-03-15,2754.27002,2763.030029,2741.469971,2747.330078,3500330000,-0.07819304070728617,2717.1136637333334 +2018-03-16,2750.570068,2761.850098,2749.969971,2752.01001,5372340000,0.17034472986976468,2714.7813314000005 +2018-03-19,2741.379883,2741.379883,2694.590088,2712.919922,3302130000,-1.4204195427326871,2713.140999366667 +2018-03-20,2715.050049,2724.219971,2710.050049,2716.939941,3261030000,0.14818052561744732,2715.407666033333 +2018-03-21,2714.98999,2739.139893,2709.790039,2711.929932,3415510000,-0.1843989601829854,2715.967334 +2018-03-22,2691.360107,2695.679932,2641.590088,2643.689941,3739800000,-2.516288868483929,2714.7016682999997 +2018-03-23,2646.709961,2657.669922,2585.889893,2588.26001,3815080000,-2.0966880472765737,2714.9436686333333 +2018-03-26,2619.350098,2661.360107,2601.810059,2658.550049,3511100000,2.7157255734905794,2716.243668633333 +2018-03-27,2667.570068,2674.780029,2596.120117,2612.620117,3706350000,-1.7276308947907992,2714.7976725333333 +2018-03-28,2611.300049,2632.649902,2593.060059,2605.0,3864500000,-0.29166570946984605,2712.866341166666 +2018-03-29,2614.409912,2659.070068,2609.719971,2640.870117,3565990000,1.3769718618042104,2710.9410156333333 +2018-04-02,2633.449951,2638.300049,2553.800049,2581.879883,3598520000,-2.233742341975231,2705.963680033333 +2018-04-03,2592.169922,2619.139893,2575.48999,2614.449951,3392810000,1.2614865708684864,2702.0380127 +2018-04-04,2584.040039,2649.860107,2573.610107,2644.689941,3350340000,1.1566482650942955,2699.652343733333 +2018-04-05,2657.360107,2672.080078,2649.580078,2662.840088,3178970000,0.6862863853574153,2698.3693440666666 +2018-04-06,2645.820068,2656.879883,2586.27002,2604.469971,3299700000,-2.192024870852849,2695.0530110666664 +2018-04-09,2617.179932,2653.550049,2610.790039,2613.159912,3062960000,0.3336548739958589,2690.5816731666664 +2018-04-10,2638.409912,2665.449951,2635.780029,2656.870117,3543930000,1.6726953754064633,2686.4906738 +2018-04-11,2643.889893,2661.429932,2639.25,2642.189941,3020760000,-0.5525364565647672,2683.087670866667 +2018-04-12,2653.830078,2674.719971,2653.830078,2663.98999,3021320000,0.8250750130306406,2681.4263346000002 +2018-04-13,2676.899902,2680.26001,2645.050049,2656.300049,2960910000,-0.28866253360059213,2680.7140055 +2018-04-16,2670.100098,2686.48999,2665.159912,2677.840088,3019700000,0.8109038362631216,2680.2670084333336 +2018-04-17,2692.73999,2713.340088,2692.050049,2706.389893,3234360000,1.0661504817983003,2679.782006833333 +2018-04-18,2710.110107,2717.48999,2703.629883,2708.639893,3383410000,0.08313658005520974,2679.1326660333334 +2018-04-19,2701.159912,2702.840088,2681.899902,2693.129883,3349370000,-0.572612477578982,2678.0103271666667 +2018-04-20,2692.560059,2693.939941,2660.610107,2670.139893,3388590000,-0.8536532212991665,2675.715991233333 +2018-04-23,2675.399902,2682.860107,2657.98999,2670.290039,3017480000,0.005623151071354471,2671.8399902666665 +2018-04-24,2680.800049,2683.550049,2617.320068,2634.560059,3706740000,-1.3380561466416863,2666.8913249 +2018-04-25,2634.919922,2645.300049,2612.669922,2639.399902,3499440000,0.18370592780629913,2662.6943196666666 +2018-04-26,2651.649902,2676.47998,2647.159912,2666.939941,3665720000,1.0434204752046705,2659.9429850333336 +2018-04-27,2675.469971,2677.350098,2659.01001,2669.909912,3219030000,0.11136250030761019,2657.3623128333334 +2018-04-30,2682.51001,2682.870117,2648.040039,2648.050049,3734530000,-0.8187490859429492,2653.8969807999997 +2018-05-01,2642.959961,2655.27002,2625.409912,2654.800049,3559850000,0.25490454768968274,2651.9596517 +2018-05-02,2654.23999,2660.870117,2631.699951,2635.669922,4010770000,-0.7205863585547867,2649.2506510666667 +2018-05-03,2628.080078,2637.139893,2594.620117,2629.72998,3851470000,-0.22536744644764406,2646.510652666667 +2018-05-04,2621.449951,2670.929932,2615.320068,2663.419922,3327220000,1.2811179191865252,2647.1683187000003 +2018-05-07,2680.340088,2683.350098,2664.699951,2672.629883,3237960000,0.3457945524821371,2649.9806478000005 +2018-05-08,2670.26001,2676.340088,2655.199951,2671.919922,3717570000,-0.026564134619455615,2650.4263102333334 +2018-05-09,2678.120117,2701.27002,2674.139893,2697.790039,3909500000,0.9682220184441537,2653.265307633333 +2018-05-10,2705.02002,2726.110107,2704.540039,2723.070068,3333050000,0.9370643613678231,2657.2009765666667 +2018-05-11,2722.699951,2732.860107,2717.449951,2727.719971,2862700000,0.1707595795878758,2660.0959717 +2018-05-14,2738.469971,2742.100098,2725.469971,2730.129883,2972660000,0.08834895171137003,2665.0376383666667 +2018-05-15,2718.590088,2718.590088,2701.909912,2711.449951,3290680000,-0.6842140411090436,2668.2709717000002 +2018-05-16,2712.620117,2727.76001,2712.169922,2722.459961,3202670000,0.4060561765464099,2670.8633056999997 +2018-05-17,2719.709961,2731.959961,2711.360107,2720.129883,3475400000,-0.08558722748466252,2672.7729655333333 +2018-05-18,2717.350098,2719.5,2709.179932,2712.969971,3368690000,-0.2632194898025797,2676.3896322 +2018-05-21,2735.389893,2739.189941,2725.699951,2733.01001,3019890000,0.738675297338931,2680.3846354666666 +2018-05-22,2738.340088,2742.23999,2721.879883,2724.439941,3366310000,-0.31357620237913997,2682.6369629333335 +2018-05-23,2713.97998,2733.330078,2709.540039,2733.290039,3326290000,0.32484100188134857,2685.6736328666666 +2018-05-24,2730.939941,2731.969971,2707.379883,2727.76001,3256030000,-0.20232133879297676,2687.7993002 +2018-05-25,2723.600098,2727.360107,2714.98999,2721.330078,2995260000,-0.23572205679487368,2689.966967833333 +2018-05-29,2705.110107,2710.669922,2676.810059,2689.860107,3736890000,-1.1564187400276094,2690.3676351333334 +2018-05-30,2702.429932,2729.340088,2702.429932,2724.01001,3561050000,1.269579146927735,2690.9549723666664 +2018-05-31,2720.97998,2722.5,2700.679932,2705.27002,4235370000,-0.6879559888254616,2690.842643266667 +2018-06-01,2718.699951,2736.929932,2718.699951,2734.620117,3684130000,1.0849230126019016,2692.225651066667 +2018-06-04,2741.669922,2749.159912,2740.540039,2746.870117,3376510000,0.44795984363044106,2694.7833252 +2018-06-05,2748.459961,2752.610107,2739.51001,2748.800049,3517790000,0.07025931033490806,2697.400325533333 +2018-06-06,2753.25,2772.389893,2748.459961,2772.350098,3651640000,0.8567392527720319,2701.9933268333334 +2018-06-07,2774.840088,2779.899902,2760.159912,2770.370117,3711330000,-0.07141886594439484,2706.3590006666664 +2018-06-08,2765.840088,2779.389893,2763.590088,2779.030029,3123210000,0.3125904350057773,2710.0953369333333 +2018-06-11,2780.179932,2790.209961,2780.169922,2782.0,3232330000,0.10687077753774865,2713.8316732 +2018-06-12,2785.600098,2789.800049,2778.780029,2786.850098,3401010000,0.17433853342918582,2718.4583415 +2018-06-13,2787.939941,2791.469971,2774.649902,2775.629883,3779230000,-0.40261279241577963,2722.4860026333336 +2018-06-14,2783.209961,2789.060059,2776.52002,2782.48999,3526890000,0.24715496262726067,2727.3800048999997 +2018-06-15,2777.780029,2782.810059,2761.72998,2779.659912,5428790000,-0.10171026706909947,2732.3776692999995 +2018-06-18,2765.790039,2774.98999,2757.120117,2773.75,3287150000,-0.21261277232105247,2736.0553385666663 +2018-06-19,2752.01001,2765.050049,2743.189941,2762.590088,3661470000,-0.402340225326725,2739.054012066666 +2018-06-20,2769.72998,2774.860107,2763.909912,2767.320068,3327600000,0.17121541196234435,2742.2340169333334 +2018-06-21,2769.280029,2769.280029,2744.389893,2749.76001,3300060000,-0.6345510301846269,2743.9663493 +2018-06-22,2760.790039,2764.169922,2752.679932,2754.879883,5450550000,0.18619344893302525,2745.0266764666667 +2018-06-25,2742.939941,2742.939941,2698.669922,2717.070068,3655080000,-1.3724669170993464,2744.6716796999995 +2018-06-26,2722.120117,2732.909912,2715.600098,2723.060059,3555090000,0.22045773020529236,2744.4360189000004 +2018-06-27,2728.449951,2746.090088,2699.379883,2699.629883,3776090000,-0.8604355207870173,2744.0420166333333 +2018-06-28,2698.689941,2724.340088,2691.98999,2716.310059,3428140000,0.6178689940068205,2743.8370199 +2018-06-29,2727.129883,2743.26001,2718.030029,2718.370117,3565620000,0.07584031112997103,2743.7783610333336 +2018-07-02,2704.949951,2727.26001,2698.949951,2726.709961,3073650000,0.3067957504331309,2744.2363607 +2018-07-03,2733.27002,2736.580078,2711.159912,2713.219971,1911470000,-0.4947350540742024,2743.5766927333334 +2018-07-05,2724.189941,2737.830078,2716.02002,2736.610107,2953420000,0.8620803418080136,2743.9823649333334 +2018-07-06,2737.679932,2764.409912,2733.52002,2759.820068,2554780000,0.8481281619413306,2744.8666992333333 +2018-07-09,2775.620117,2784.649902,2770.72998,2784.169922,3050040000,0.8822986064321858,2746.7470296333336 +2018-07-10,2788.560059,2795.580078,2786.23999,2793.840088,3063850000,0.34732671751058763,2749.164029966667 +2018-07-11,2779.820068,2785.909912,2770.77002,2774.02002,2964740000,-0.7094202737347177,2751.9693604 +2018-07-12,2783.139893,2799.219971,2781.530029,2798.290039,2821690000,0.8749042481676073,2754.445361366667 +2018-07-13,2796.929932,2804.530029,2791.689941,2801.310059,2614000000,0.10792376622543731,2757.6466960000002 +2018-07-16,2797.360107,2801.189941,2793.389893,2798.429932,2812230000,-0.10281357433985505,2759.7736898333333 +2018-07-17,2789.340088,2814.189941,2789.23999,2809.550049,3050730000,0.39736985631984023,2761.8630209 +2018-07-18,2811.350098,2816.76001,2805.889893,2815.620117,3089780000,0.21605124999144465,2764.0903565 +2018-07-19,2809.370117,2812.050049,2799.77002,2804.48999,3266700000,-0.39529931373906146,2765.1616862333335 +2018-07-20,2804.550049,2809.699951,2800.01001,2801.830078,3230210000,-0.09484476712288137,2766.2103516 +2018-07-23,2799.169922,2808.610107,2795.139893,2806.97998,2907430000,0.18380493665326458,2767.1420166333337 +2018-07-24,2820.679932,2829.98999,2811.120117,2820.399902,3417530000,0.4780911191251125,2768.4220133666668 +2018-07-25,2817.72998,2848.030029,2817.72998,2846.070068,3553010000,0.9101605053168704,2770.3960123666666 +2018-07-26,2835.48999,2845.570068,2835.26001,2837.439941,3653330000,-0.3032296041138749,2772.4563476333333 +2018-07-27,2842.350098,2843.169922,2808.340088,2818.820068,3415710000,-0.6562208676543113,2773.6673502333338 +2018-07-30,2819.0,2821.73999,2798.110107,2802.600098,3245770000,-0.5754170045876084,2774.4320231 +2018-07-31,2809.72998,2824.459961,2808.060059,2816.290039,3892100000,0.4884728652428727,2775.8500244 +2018-08-01,2821.169922,2825.830078,2805.850098,2813.360107,3496990000,-0.10403516539227997,2777.5423583666666 +2018-08-02,2800.47998,2829.909912,2796.340088,2827.219971,3467380000,0.4926445059597828,2779.5390218000002 +2018-08-03,2829.620117,2840.379883,2827.370117,2840.350098,3030390000,0.46441830259693617,2782.5586914000005 +2018-08-06,2840.290039,2853.290039,2835.97998,2850.399902,2874540000,0.3538227209060052,2785.7426920333332 +2018-08-07,2855.919922,2863.429932,2855.919922,2858.449951,3162770000,0.2824182317137769,2790.4553548 +2018-08-08,2856.790039,2862.439941,2853.090088,2857.699951,2972200000,-0.026237996566547128,2794.9433512 +2018-08-09,2857.189941,2862.47998,2851.97998,2853.580078,3047050000,-0.14416744482073085,2800.075024366667 +2018-08-10,2838.899902,2842.199951,2825.810059,2833.280029,3256040000,-0.7113887974094513,2803.9740233666666 +2018-08-13,2835.459961,2843.399902,2819.879883,2821.929932,3158450000,-0.4005991954140198,2807.4260172 +2018-08-14,2827.879883,2843.110107,2826.580078,2839.959961,2976970000,0.638925467126028,2811.2010172 +2018-08-15,2827.949951,2827.949951,2802.48999,2818.370117,3645070000,-0.7602164923620203,2814.7060220666667 +2018-08-16,2831.439941,2850.48999,2831.439941,2840.689941,3219880000,0.7919408407494277,2818.1753498666667 +2018-08-17,2838.320068,2855.629883,2833.72998,2850.129883,3024100000,0.33231159317150816,2821.1856770333334 +2018-08-20,2853.929932,2859.76001,2850.620117,2857.050049,2748020000,0.24280177690414462,2823.6150146 +2018-08-21,2861.51001,2873.22998,2861.320068,2862.959961,3147140000,0.20685363919574762,2825.919010366667 +2018-08-22,2860.98999,2867.540039,2856.050049,2861.820068,2689560000,-0.03981519181294191,2828.8456786333336 +2018-08-23,2860.290039,2868.780029,2854.030029,2856.97998,2713910000,-0.16912621635861713,2830.80201 +2018-08-24,2862.350098,2876.159912,2862.350098,2874.689941,2596190000,0.6198839727256322,2833.248006066666 +2018-08-27,2884.689941,2898.25,2884.689941,2896.73999,2854080000,0.7670409488520269,2836.5250079999996 +2018-08-28,2901.449951,2903.77002,2893.5,2897.52002,2683190000,0.026927856925129667,2839.4573403666664 +2018-08-29,2900.620117,2916.5,2898.399902,2914.040039,2791860000,0.570143394557121,2842.738004433333 +2018-08-30,2908.939941,2912.459961,2895.219971,2901.129883,2802180000,-0.4430328968448305,2845.9593342 +2018-08-31,2898.370117,2906.320068,2891.72998,2901.52002,2880260000,0.013447760553075838,2849.2823322666663 +2018-09-04,2896.959961,2900.179932,2885.129883,2896.719971,3077060000,-0.16543222059174356,2852.2736653 +2018-09-05,2891.590088,2894.209961,2876.919922,2888.600098,3241250000,-0.28031266678487654,2854.5470051666666 +2018-09-06,2888.639893,2892.050049,2867.290039,2878.050049,3139590000,-0.3652305145078638,2855.6130045333334 +2018-09-07,2868.26001,2883.810059,2864.120117,2871.679932,2946270000,-0.22133447617470603,2856.7543375666664 +2018-09-10,2881.389893,2886.929932,2875.939941,2877.129883,2731400000,0.1897826752650822,2858.6979980666665 +2018-09-11,2871.570068,2892.52002,2866.780029,2887.889893,2899660000,0.37398415912945904,2861.5409912333334 +2018-09-12,2888.290039,2894.649902,2879.199951,2888.919922,3264930000,0.035667183935816915,2863.9619873333336 +2018-09-13,2896.850098,2906.76001,2896.389893,2904.179932,3254930000,0.5282254410650333,2866.9893148333335 +2018-09-14,2906.379883,2908.300049,2895.77002,2904.97998,3149800000,0.02754815537373556,2869.5813151333336 +2018-09-17,2903.830078,2904.649902,2886.159912,2888.800049,2947760000,-0.5569722032989777,2871.1963134999996 +2018-09-18,2890.73999,2911.169922,2890.429932,2904.310059,3074610000,0.5369014724770915,2872.993318733333 +2018-09-19,2906.600098,2912.360107,2903.820068,2907.949951,3280020000,0.1253272524646798,2874.643318733333 +2018-09-20,2919.72998,2934.800049,2919.72998,2930.75,3337730000,0.7840591957973375,2877.0783203666665 +2018-09-21,2936.76001,2940.909912,2927.110107,2929.669922,5607610000,-0.0368532969376445,2879.6146485 +2018-09-24,2921.830078,2923.790039,2912.629883,2919.370117,3372210000,-0.3515687867310602,2882.4843181 +2018-09-25,2921.75,2923.949951,2913.699951,2915.560059,3285480000,-0.1305095910180576,2885.6053223333333 +2018-09-26,2916.97998,2931.149902,2903.280029,2905.969971,3388620000,-0.3289278151000996,2887.8056559999995 +2018-09-27,2911.649902,2927.219971,2909.27002,2914.0,3060850000,0.27632869851152986,2890.9933187666666 +2018-09-28,2910.030029,2920.530029,2907.5,2913.97998,3432300000,-0.0006870281400117584,2893.436320066666 +2018-10-01,2926.290039,2937.060059,2917.909912,2924.590088,3364190000,0.3641105317408577,2895.9183268999996 +2018-10-02,2923.800049,2931.419922,2919.370117,2923.429932,3401880000,-0.039669012240728385,2898.130989666666 +2018-10-03,2931.689941,2939.860107,2921.360107,2925.51001,3598710000,0.07115197040405974,2900.2159913 +2018-10-04,2919.350098,2919.780029,2883.919922,2901.610107,3496860000,-0.8169482558017305,2901.5423259333334 +2018-10-05,2902.540039,2909.639893,2869.290039,2885.570068,3328980000,-0.5527978745767492,2902.495328866667 +2018-10-08,2877.530029,2889.449951,2862.080078,2884.429932,3330320000,-0.03951163801717561,2902.8199952333334 +2018-10-09,2882.51001,2894.830078,2874.27002,2880.340088,3520500000,-0.14179037440387177,2902.2733318333335 +2018-10-10,2873.899902,2874.02002,2784.860107,2785.679932,4501250000,-3.286422891323515,2898.5453289 +2018-10-11,2776.870117,2795.139893,2710.51001,2728.370117,4890630000,-2.057300781100646,2892.3563315 +2018-10-12,2770.540039,2775.77002,2729.439941,2767.129883,3966040000,1.4206197963573475,2887.8896648333334 +2018-10-15,2763.830078,2775.98999,2749.030029,2750.790039,3300140000,-0.5904979054429216,2882.8653321333336 +2018-10-16,2767.050049,2813.459961,2766.909912,2809.919922,3428340000,2.149560023181407,2879.9719971666664 +2018-10-17,2811.669922,2816.939941,2781.810059,2809.209961,3321710000,-0.025266236039023227,2877.3256592666667 +2018-10-18,2802.0,2806.040039,2755.179932,2768.780029,3616440000,-1.4391922484002562,2873.683325266667 +2018-10-19,2775.659912,2797.77002,2760.27002,2767.780029,3566490000,-0.036116989776224795,2870.219995166667 +2018-10-22,2773.939941,2778.939941,2749.219971,2755.879883,3307140000,-0.4299527374037604,2866.1783284999997 +2018-10-23,2721.030029,2753.590088,2691.429932,2740.689941,4348580000,-0.5511830212086233,2861.2716634333333 +2018-10-24,2737.870117,2742.590088,2651.889893,2656.100098,4709310000,-3.0864433708665207,2853.5110026333336 +2018-10-25,2674.879883,2722.699951,2667.840088,2705.570068,4634770000,1.8625039785680642,2846.890673833333 +2018-10-26,2667.860107,2692.379883,2628.159912,2658.689941,4803150000,-1.7327264059605163,2838.6810058666665 +2018-10-29,2682.649902,2706.850098,2603.540039,2641.25,4673700000,-0.6559599421901985,2830.4293375666666 +2018-10-30,2640.679932,2685.429932,2635.340088,2682.629883,5106380000,1.5666780123047896,2823.0399983666666 +2018-10-31,2705.600098,2736.689941,2705.600098,2711.73999,5112420000,1.0851331816018606,2816.4996663333336 +2018-11-01,2717.580078,2741.669922,2708.850098,2740.370117,4708420000,1.0557843711262338,2810.1536702333333 +2018-11-02,2745.449951,2756.550049,2700.439941,2723.060059,4237930000,-0.6316686163163276,2803.2666747999997 +2018-11-05,2726.370117,2744.27002,2717.939941,2738.310059,3623320000,0.5600317168766411,2797.2313395333335 +2018-11-06,2738.399902,2756.820068,2737.080078,2755.449951,3510860000,0.6259295562117462,2791.8943359333334 +2018-11-07,2774.129883,2815.149902,2774.129883,2813.889893,3914750000,2.120885628091007,2788.825 +2018-11-08,2806.379883,2814.75,2794.98999,2806.830078,3630490000,-0.2508916577568465,2785.252669266667 +2018-11-09,2794.100098,2794.100098,2764.23999,2781.01001,4019090000,-0.9199013578477078,2780.8203369333337 +2018-11-12,2773.929932,2775.98999,2722.0,2726.219971,3670930000,-1.970148931610638,2774.2079997000005 +2018-11-13,2730.050049,2754.600098,2714.97998,2722.179932,4091440000,-0.1481919670083709,2767.499666366667 +2018-11-14,2737.899902,2746.800049,2685.75,2701.580078,4402370000,-0.7567410867240221,2760.0353353 +2018-11-15,2693.52002,2735.379883,2670.75,2730.199951,4179140000,1.05937533494056,2754.3216634333335 +2018-11-16,2718.540039,2746.75,2712.159912,2736.27002,3975180000,0.22233056585385658,2749.344995166667 +2018-11-19,2730.73999,2733.159912,2681.090088,2690.72998,3772900000,-1.6643108928262818,2742.8883301 +2018-11-20,2654.600098,2669.439941,2631.52002,2641.889893,4357900000,-1.8151240504630684,2734.939990266667 +2018-11-21,2657.73999,2670.72998,2649.820068,2649.929932,3233550000,0.3043290722033021,2730.414990266667 +2018-11-23,2633.360107,2647.550049,2631.090088,2632.560059,1651650000,-0.6554842371583214,2727.2213216666664 +2018-11-26,2649.969971,2674.350098,2649.969971,2673.449951,3443950000,1.5532368144919984,2724.0986572666666 +2018-11-27,2663.75,2682.530029,2655.889893,2682.169922,3485220000,0.32616922552592964,2721.8113200333332 +2018-11-28,2691.449951,2744.0,2684.379883,2743.790039,3951670000,2.2973979573244874,2719.6069906 +2018-11-29,2736.969971,2753.75,2722.939941,2737.800049,3560770000,-0.21831080056632368,2717.2266602 +2018-11-30,2737.76001,2760.879883,2732.76001,2760.169922,4658580000,0.817074753438285,2716.939656633333 +2018-12-03,2790.5,2800.179932,2773.379883,2790.370117,4186060000,1.0941426018481248,2717.6926595666664 +2018-12-04,2782.429932,2785.929932,2697.179932,2700.060059,4499840000,-3.236490293878813,2715.831998766667 +2018-12-06,2663.51001,2696.149902,2621.530029,2695.949951,5141470000,-0.1522228361661715,2714.3406657666665 +2018-12-07,2691.26001,2708.540039,2623.139893,2633.080078,4216690000,-2.332011874948936,2713.573331766667 +2018-12-10,2630.860107,2647.51001,2583.22998,2637.719971,4151030000,0.17621541550396636,2711.311661866667 +2018-12-11,2664.439941,2674.350098,2621.300049,2636.780029,3905870000,-0.035634639398196555,2710.5813314666666 +2018-12-12,2658.22998,2685.439941,2650.26001,2651.070068,3958890000,0.5419503653256719,2710.9086670666666 +2018-12-13,2658.699951,2670.189941,2637.27002,2650.540039,3927720000,-0.019993021172759473,2709.8390056 +2018-12-14,2629.679932,2635.070068,2593.840088,2599.949951,4035020000,-1.9086709597145535,2706.1126709666664 +2018-12-17,2590.75,2601.129883,2530.540039,2545.939941,4616350000,-2.077348065074347,2699.6316651 +2018-12-18,2559.899902,2573.98999,2528.709961,2546.159912,4470880000,0.008640070272569744,2693.7349935333336 +2018-12-19,2547.050049,2585.290039,2488.959961,2506.959961,5127940000,-1.5395714469955912,2686.0233236 +2018-12-20,2496.77002,2509.629883,2441.179932,2467.419922,5585780000,-1.5772106302099798,2676.422322633334 +2018-12-21,2465.379883,2504.409912,2408.550049,2416.620117,7609010000,-2.058822843532193,2663.179996766667 +2018-12-24,2400.560059,2410.340088,2351.100098,2351.100098,2613930000,-2.7112254234371247,2647.988997433333 +2018-12-26,2363.120117,2467.76001,2346.580078,2467.699951,4233990000,4.959374256297622,2637.5453288 +2018-12-27,2442.5,2489.100098,2397.939941,2488.830078,4096610000,0.8562680803813727,2629.6323323666666 +2018-12-28,2498.77002,2520.27002,2472.889893,2485.73999,3702620000,-0.12415825521053803,2621.7510009666667 +2018-12-31,2498.939941,2509.23999,2482.820068,2506.850098,3442870000,0.8492484364786668,2615.260001633333 +2019-01-02,2476.959961,2519.48999,2467.469971,2510.030029,3733160000,0.1268496669400765,2607.9210042333334 +2019-01-03,2491.919922,2493.139893,2443.959961,2447.889893,3822860000,-2.4756730111614167,2598.3083333333334 +2019-01-04,2474.330078,2538.070068,2474.330078,2531.939941,4213410000,3.433571429840443,2593.0153320333334 +2019-01-07,2535.610107,2566.159912,2524.560059,2549.689941,4104710000,0.7010434849805236,2589.9420002999996 +2019-01-08,2568.110107,2579.820068,2547.560059,2574.409912,4083030000,0.9695285141339438,2587.4246663 +2019-01-09,2580.0,2595.320068,2568.889893,2584.959961,4052480000,0.4098045517469284,2585.8379963666666 +2019-01-10,2573.51001,2597.820068,2562.02002,2596.639893,3704500000,0.45184189218472337,2583.2776611 +2019-01-11,2588.110107,2596.27002,2577.399902,2596.26001,3434490000,-0.01462979140943732,2580.4139973666665 +2019-01-14,2580.310059,2589.320068,2570.409912,2582.610107,3664450000,-0.5257525420190867,2575.0413329666667 +2019-01-15,2585.100098,2613.080078,2585.100098,2610.300049,3572330000,1.072168885460023,2570.7913329666667 +2019-01-16,2614.75,2625.76001,2612.679932,2616.100098,3863770000,0.22219855538148092,2565.9890055 +2019-01-17,2609.280029,2645.060059,2606.360107,2635.959961,3772270000,0.7591400273706306,2560.8420003 +2019-01-18,2651.27002,2675.469971,2647.580078,2670.709961,3986730000,1.3183053048657412,2559.8636637000004 +2019-01-22,2657.879883,2657.879883,2617.27002,2632.899902,3908030000,-1.4157306316348373,2557.7619953999997 +2019-01-23,2643.47998,2653.189941,2612.860107,2638.699951,3335610000,0.22029128397909048,2557.9493245 +2019-01-24,2638.840088,2647.199951,2627.01001,2642.330078,3433250000,0.13757255722175454,2558.102994733333 +2019-01-25,2657.439941,2672.379883,2657.330078,2664.76001,3814080000,0.8488694197122282,2559.0356607666668 +2019-01-28,2644.969971,2644.969971,2624.060059,2643.850098,3612810000,-0.7846827452202776,2558.7949951 +2019-01-29,2644.889893,2650.929932,2631.050049,2640.0,3504200000,-0.1456246707372877,2558.443660466667 +2019-01-30,2653.620117,2690.439941,2648.340088,2681.050049,3867810000,1.5549260984848434,2561.1469970666667 +2019-01-31,2685.48999,2708.949951,2678.649902,2704.100098,4917650000,0.85973960122816,2566.4190022999996 +2019-02-01,2702.320068,2716.659912,2696.879883,2706.530029,3759270000,0.089860985612078,2571.7646728666664 +2019-02-04,2706.48999,2724.98999,2698.75,2724.870117,3359840000,0.6776236658558865,2579.028344733333 +2019-02-05,2728.340088,2738.97998,2724.030029,2737.699951,3560430000,0.4708420383032985,2588.037679033333 +2019-02-06,2735.050049,2738.080078,2724.149902,2731.610107,3472690000,-0.22244380717381107,2598.5373453666666 +2019-02-07,2717.530029,2719.320068,2687.26001,2706.050049,4099490000,-0.9357139928022673,2610.3690103999998 +2019-02-08,2692.360107,2708.070068,2681.830078,2707.879883,3622330000,0.06762010926872897,2618.3750081333333 +2019-02-11,2712.399902,2718.050049,2703.790039,2709.800049,3361970000,0.07091030928123576,2625.740673833333 +2019-02-12,2722.610107,2748.189941,2722.610107,2744.72998,3827770000,1.2890224506745485,2634.3736734999998 +2019-02-13,2750.300049,2761.850098,2748.629883,2753.030029,3670770000,0.3023994731897073,2642.5796712 +2019-02-14,2743.5,2757.899902,2731.22998,2745.72998,3836700000,-0.2651641617818279,2650.4363362333333 +2019-02-15,2760.23999,2775.659912,2760.23999,2775.600098,3641370000,1.0878752906358091,2661.3600097333333 +2019-02-19,2769.280029,2787.330078,2767.290039,2779.76001,3533710000,0.14987432818573954,2669.6206786999996 +2019-02-20,2779.050049,2789.879883,2774.060059,2784.699951,3835450000,0.1777110607472876,2677.4543457000004 +2019-02-21,2780.23999,2781.580078,2764.550049,2774.879883,3559710000,-0.3526436662044552,2684.1366780666667 +2019-02-22,2780.669922,2794.199951,2779.110107,2792.669922,3427810000,0.6411102372030131,2691.0603434333334 +2019-02-25,2804.350098,2813.48999,2794.98999,2796.110107,3804380000,0.12318623740310564,2697.7093505666667 +2019-02-26,2792.360107,2803.120117,2789.469971,2793.899902,3645680000,-0.07904570690784318,2704.2973469666667 +2019-02-27,2787.5,2795.76001,2775.129883,2792.379883,3767130000,-0.054404919765094206,2711.2896728333335 +2019-02-28,2788.110107,2793.72998,2782.51001,2784.48999,4396930000,-0.28255084661058527,2717.0960042 +2019-03-01,2798.219971,2808.02002,2787.379883,2803.689941,3972280000,0.6895320532289029,2723.3489989666664 +2019-03-04,2814.370117,2816.879883,2767.659912,2792.810059,3919810000,-0.3880558203279594,2728.5773355666665 +2019-03-05,2794.409912,2796.439941,2782.969971,2789.649902,3585690000,-0.11315330914882793,2732.5420002666665 +2019-03-06,2790.27002,2790.27002,2768.689941,2771.449951,3786600000,-0.6524098592784688,2737.1603352333336 +2019-03-07,2766.530029,2767.25,2739.090088,2748.929932,3904860000,-0.8125717367500784,2740.8346679333335 +2019-03-08,2730.790039,2744.129883,2722.27002,2743.070068,3423130000,-0.21316891099282254,2744.1926676000003 +2019-03-11,2747.610107,2784.0,2747.610107,2783.300049,3749030000,1.4666042063348428,2748.1440022333336 +2019-03-12,2787.340088,2798.320068,2786.72998,2791.52002,3414230000,0.29533183111010164,2753.0663329666663 +2019-03-13,2799.780029,2821.23999,2799.780029,2810.919922,3766150000,0.6949583689534133,2758.7636637 +2019-03-14,2810.379883,2815.0,2803.459961,2808.47998,3469730000,-0.08680225932099495,2763.011328066667 +2019-03-15,2810.790039,2830.72998,2810.790039,2822.47998,5962730000,0.4984902901105981,2766.9573241333337 +2019-03-18,2822.610107,2835.409912,2821.98999,2832.939941,3552190000,0.37059469240239284,2771.1709878666666 +2019-03-19,2840.76001,2852.419922,2823.27002,2832.570068,3620220000,-0.013056153949719818,2774.7609862333334 +2019-03-20,2831.340088,2843.540039,2812.429932,2824.22998,3771200000,-0.2944353643434705,2777.6453205333332 +2019-03-21,2819.719971,2860.310059,2817.379883,2854.879883,3546800000,1.0852481284119753,2781.754313066667 +2019-03-22,2844.52002,2846.159912,2800.469971,2800.709961,4237200000,-1.8974501282021161,2784.9096434666667 +2019-03-25,2796.01001,2809.790039,2785.02002,2798.360107,3376580000,-0.08390208314040803,2787.9256509333336 +2019-03-26,2812.659912,2829.870117,2803.98999,2818.459961,3266050000,0.7182726036481402,2791.547648 +2019-03-27,2819.719971,2825.560059,2787.719971,2805.370117,3372930000,-0.46443249792896824,2793.5689859 +2019-03-28,2809.399902,2819.709961,2798.77002,2815.439941,3158170000,0.3589481451655496,2795.6493163 +2019-03-29,2828.27002,2836.030029,2819.22998,2834.399902,3740700000,0.6734280040534557,2798.6049803666665 +2019-04-01,2848.629883,2869.399902,2848.629883,2867.189941,3500760000,1.1568600103627924,2801.6579751333334 +2019-04-02,2868.23999,2872.899902,2858.75,2867.23999,3246900000,0.0017455767155283297,2804.5739744666666 +2019-04-03,2876.090088,2885.25,2865.169922,2873.399902,3550240000,0.21483768437535744,2807.5306395000002 +2019-04-04,2873.98999,2881.280029,2867.139893,2879.389893,3015180000,0.20846353463821465,2811.0143065 +2019-04-05,2884.159912,2893.23999,2882.98999,2892.73999,3146820000,0.4636432541648805,2814.3499754333334 +2019-04-08,2888.459961,2895.949951,2880.780029,2895.77002,3054030000,0.10474601970706932,2817.6719725333332 +2019-04-09,2886.580078,2886.879883,2873.330078,2878.199951,3007980000,-0.6067494614092284,2820.481974166667 +2019-04-10,2881.370117,2889.709961,2879.129883,2888.209961,3062380000,0.3477871645617192,2823.6763101000006 +2019-04-11,2891.919922,2893.419922,2881.98999,2888.320068,2938540000,0.0038122920939631655,2827.1373126999997 +2019-04-12,2900.860107,2910.540039,2898.370117,2907.409912,3688490000,0.6609324295980379,2830.5946450666665 +2019-04-15,2908.320068,2909.600098,2896.47998,2905.580078,3088330000,-0.06293691138795632,2834.3536457 +2019-04-16,2912.26001,2916.060059,2900.709961,2907.060059,3402210000,0.05093581867543495,2838.2673176000003 +2019-04-17,2916.040039,2918.0,2895.449951,2900.449951,3602300000,-0.227381198387544,2842.5673176 +2019-04-18,2904.810059,2908.399902,2891.899902,2905.030029,3506850000,0.15790922365066518,2847.770654166666 +2019-04-22,2898.780029,2909.51001,2896.350098,2907.969971,2997950000,0.10120177659616036,2853.2673176000003 +2019-04-23,2909.98999,2936.310059,2908.530029,2933.679932,3635030000,0.8841205808999053,2858.2799803666667 +2019-04-24,2934.0,2936.830078,2926.050049,2927.25,3448960000,-0.21917632969649103,2862.8043130333335 +2019-04-25,2928.98999,2933.100098,2912.840088,2926.169922,3425280000,-0.03689736100435104,2866.6459796999998 +2019-04-26,2925.810059,2939.879883,2917.560059,2939.879883,3248500000,0.4685292161922483,2871.0259764666666 +2019-04-29,2940.580078,2949.52002,2939.350098,2943.030029,3118780000,0.10715220095269817,2875.044311433333 +2019-04-30,2937.139893,2948.219971,2924.110107,2945.830078,3919330000,0.09514170675830602,2878.807316 +2019-05-01,2952.330078,2954.129883,2923.360107,2923.72998,3645850000,-0.7502163198430001,2881.8459797333335 +2019-05-02,2922.159912,2931.679932,2900.5,2917.52002,3778890000,-0.21239854714627526,2884.955647733333 +2019-05-03,2929.209961,2947.850098,2929.209961,2945.639893,3338120000,0.963827936303252,2887.9809813999996 +2019-05-06,2908.889893,2937.320068,2898.209961,2932.469971,3181520000,-0.4470988470551718,2892.372981733333 +2019-05-07,2913.030029,2913.030029,2862.600098,2884.050049,3767100000,-1.651165143337796,2895.2293131333336 +2019-05-08,2879.610107,2897.959961,2873.280029,2879.419922,3485790000,-0.16054253294270904,2897.2613118333334 +2019-05-09,2859.840088,2875.969971,2836.399902,2870.719971,3638820000,-0.30214248826746504,2899.4396403 +2019-05-10,2863.100098,2891.310059,2825.389893,2881.399902,3529600000,0.37202970362448795,2901.6383056666664 +2019-05-13,2840.189941,2840.189941,2801.429932,2811.870117,3894030000,-2.41305571474959,2900.8873128333335 +2019-05-14,2820.120117,2852.540039,2820.120117,2834.409912,3322720000,0.8015944571454048,2899.7946452 +2019-05-15,2820.379883,2858.679932,2815.080078,2850.959961,3125950000,0.583897513550613,2899.2519775666665 +2019-05-16,2855.800049,2892.149902,2855.800049,2876.320068,3338060000,0.8895286972429028,2899.349316433333 +2019-05-17,2858.600098,2885.47998,2854.22998,2859.530029,3257950000,-0.5837333329762107,2898.6873209666664 +2019-05-20,2841.939941,2853.860107,2831.290039,2840.22998,3288870000,-0.6749377976194681,2896.9369873 +2019-05-21,2854.02002,2868.879883,2854.02002,2864.360107,3218700000,0.849583560835443,2895.8899902 +2019-05-22,2856.060059,2865.469971,2851.110107,2856.27002,3192510000,-0.2824395920132172,2895.1589925 +2019-05-23,2836.699951,2836.699951,2805.48999,2822.23999,3891980000,-1.191415018948383,2892.9599934666667 +2019-05-24,2832.409912,2841.360107,2820.189941,2826.060059,2887390000,0.13535592343441039,2890.8846598333334 +2019-05-28,2830.030029,2840.51001,2801.580078,2802.389893,4121410000,-0.837567691621377,2887.383992533333 +2019-05-29,2790.25,2792.030029,2766.060059,2783.02002,3700050000,-0.6911912239044082,2883.2986572666664 +2019-05-30,2786.939941,2799.0,2776.73999,2788.860107,3273790000,0.20984710702871556,2879.3586588666662 +2019-05-31,2766.149902,2768.97998,2750.52002,2752.060059,3981020000,-1.319537251353431,2874.412329133333 +2019-06-03,2751.530029,2763.070068,2728.810059,2744.449951,3943810000,-0.2765240524134849,2869.059659866667 +2019-06-04,2762.639893,2804.48999,2762.639893,2803.27002,3810430000,2.14323708029609,2865.5696615 +2019-06-05,2818.090088,2827.280029,2800.919922,2826.149902,3548830000,0.8161854490207121,2861.9853271666666 +2019-06-06,2828.51001,2852.100098,2822.449951,2843.48999,3396410000,0.6135586788134972,2859.193326833333 +2019-06-07,2852.870117,2884.969971,2852.870117,2873.340088,3220250000,1.0497697584650245,2857.4323323666667 +2019-06-10,2885.830078,2904.77002,2885.51001,2886.72998,3209210000,0.46600442655293506,2855.6606689333335 +2019-06-11,2903.27002,2910.610107,2878.530029,2885.719971,3548420000,-0.03498799704155786,2853.7503336666664 +2019-06-12,2882.72998,2888.570068,2874.679932,2879.840088,3034130000,-0.20375792034881268,2851.550667333334 +2019-06-13,2886.23999,2895.23999,2881.98999,2891.639893,3069810000,0.40973820210257195,2850.480997766667 +2019-06-14,2886.820068,2894.449951,2879.620117,2886.97998,2922330000,-0.16115122119045866,2849.4629964333335 +2019-06-17,2889.75,2897.27002,2887.300049,2889.669922,2810140000,0.09317494470466592,2847.5973307333334 +2019-06-18,2906.709961,2930.790039,2905.439941,2917.75,3437620000,0.9717399826955075,2847.106665033333 +2019-06-19,2920.550049,2931.73999,2911.429932,2926.459961,3287890000,0.298516356781775,2848.5203287666664 +2019-06-20,2949.600098,2958.060059,2931.5,2954.179932,3905940000,0.9472185291927948,2851.0123290999995 +2019-06-21,2952.709961,2964.149902,2946.870117,2950.459961,5000120000,-0.12592228928592908,2853.6703287666664 +2019-06-24,2951.419922,2954.919922,2944.050049,2945.350098,3136250000,-0.17318869151060623,2855.802001966667 +2019-06-25,2945.780029,2946.52002,2916.01001,2917.379883,3578050000,-0.9496397395675538,2859.318994166667 +2019-06-26,2926.070068,2932.590088,2912.98999,2913.780029,3478130000,-0.12339339216592693,2861.9646647333334 +2019-06-27,2919.659912,2929.300049,2918.570068,2924.919922,3122920000,0.3823175699307457,2864.4299967666666 +2019-06-28,2932.939941,2943.97998,2929.050049,2941.76001,5420700000,0.5757452665057894,2866.611328166667 +2019-07-01,2971.409912,2977.929932,2952.219971,2964.330078,3513270000,0.7672300909413732,2870.1046631333334 +2019-07-02,2964.659912,2973.209961,2955.919922,2973.01001,3206840000,0.29281260087796745,2874.530664133333 +2019-07-03,2978.080078,2995.840088,2977.959961,2995.820068,1963720000,0.7672378472751928,2878.9126628333333 +2019-07-05,2984.25,2994.030029,2967.969971,2990.409912,2434210000,-0.1805901515177344,2883.3839925666666 +2019-07-08,2979.77002,2980.76001,2970.090088,2975.949951,2904550000,-0.48354444459185464,2888.507657933333 +2019-07-09,2965.52002,2981.899902,2963.439941,2979.629883,3028210000,0.12365570861712083,2893.626652066667 +2019-07-10,2989.300049,3002.97998,2984.620117,2993.070068,3154240000,0.4510689423770975,2899.9826579 +2019-07-11,2999.620117,3002.330078,2988.800049,2999.909912,3154620000,0.2285226822160702,2907.2123209666665 +2019-07-12,3003.360107,3013.919922,3001.870117,3013.77002,2974960000,0.4620174740767258,2914.7093180666666 +2019-07-15,3017.800049,3017.800049,3008.77002,3014.300049,2874970000,0.017586909302380604,2923.4506510666665 +2019-07-16,3012.129883,3015.02002,3001.149902,3004.040039,3290650000,-0.34037785997461656,2932.1036539999996 +2019-07-17,3005.100098,3005.26001,2984.25,2984.419922,3181600000,-0.6531243507170825,2938.1419840666663 +2019-07-18,2978.870117,2998.280029,2973.090088,2995.110107,3296580000,0.35819976006714604,2943.7739908999997 +2019-07-19,3004.26001,3006.02002,2975.860107,2976.610107,3260360000,-0.6176734523636651,2948.2113281333336 +2019-07-22,2981.929932,2990.709961,2976.649902,2985.030029,3003720000,0.28286949574616305,2951.9343261666663 +2019-07-23,2994.73999,3005.899902,2988.560059,3005.469971,3313660000,0.6847482873345578,2955.892325866667 +2019-07-24,2998.77002,3019.590088,2996.820068,3019.560059,3428980000,0.46881479888192246,2960.3536621333337 +2019-07-25,3016.26001,3016.310059,2997.23999,3003.669922,3645270000,-0.5262401372888137,2964.4813232666665 +2019-07-26,3013.25,3027.97998,3012.590088,3025.860107,3257590000,0.7387690916858425,2968.9553303999996 +2019-07-29,3024.469971,3025.610107,3014.300049,3020.969971,3203710000,-0.16161143698240066,2973.421663433334 +2019-07-30,3007.659912,3017.189941,3000.939941,3013.179932,3634330000,-0.25786548938854237,2977.538663766667 +2019-07-31,3016.219971,3017.399902,2958.080078,2980.379883,4623430000,-1.088552616843852,2979.6263265333337 +2019-08-01,2980.320068,3013.590088,2945.22998,2953.560059,4762300000,-0.8998793795710336,2980.5296631333335 +2019-08-02,2943.899902,2945.5,2914.110107,2932.050049,3874660000,-0.7282740005389532,2979.792000366667 +2019-08-05,2898.070068,2898.070068,2822.120117,2844.73999,4513730000,-2.977782013979524,2976.2680013333334 +2019-08-06,2861.179932,2884.399902,2847.419922,2881.77002,4154240000,1.301701741817185,2974.1486653999996 +2019-08-07,2858.649902,2892.169922,2825.709961,2883.97998,4491750000,0.0766875907745046,2973.0353353 +2019-08-08,2896.209961,2938.719971,2894.469971,2938.090088,4106370000,1.8762303613494513,2973.8456706 +2019-08-09,2930.51001,2935.75,2900.149902,2918.649902,3350640000,-0.6616606508901501,2973.6366699333335 +2019-08-12,2907.070068,2907.580078,2873.139893,2882.699951,2851630000,-1.231732212053438,2971.6680013 +2019-08-13,2880.719971,2943.310059,2877.050049,2926.320068,3853600000,1.5131688258040343,2970.4010009666663 +2019-08-14,2894.149902,2894.149902,2839.639893,2840.600098,4312530000,-2.9292752675063927,2965.987337233333 +2019-08-15,2846.199951,2856.669922,2825.51001,2847.600098,4038000000,0.24642680273538886,2961.0466715666666 +2019-08-16,2864.73999,2893.629883,2864.73999,2888.679932,3498150000,1.4426124661553574,2957.6556722333335 +2019-08-19,2913.47998,2931.0,2913.47998,2923.649902,3212880000,1.2105865247517444,2955.912337266667 +2019-08-20,2919.01001,2923.629883,2899.600098,2900.51001,3066300000,-0.7914727404321087,2953.275008166667 +2019-08-21,2922.040039,2928.72998,2917.909912,2924.429932,3011190000,0.8246798638009256,2950.987003633333 +2019-08-22,2930.939941,2939.080078,2904.51001,2922.949951,2890880000,-0.050607504177324625,2948.4216716 +2019-08-23,2911.070068,2927.01001,2834.969971,2847.110107,3937300000,-2.59463368416738,2942.8663411666666 +2019-08-26,2866.699951,2879.27002,2856.0,2878.379883,2857600000,1.098298795087671,2938.335668966667 +2019-08-27,2893.139893,2898.790039,2860.590088,2869.159912,3533630000,-0.3203180738739153,2933.839664733334 +2019-08-28,2861.280029,2890.030029,2853.050049,2887.939941,3097420000,0.6545480062458031,2930.6236653666665 +2019-08-29,2910.370117,2930.5,2905.669922,2924.580078,3176190000,1.2687291892681252,2928.2726644 +2019-08-30,2937.090088,2940.429932,2913.320068,2926.459961,3008450000,0.06427873232610626,2926.6009928666667 +2019-09-03,2909.01001,2914.389893,2891.850098,2906.27002,3426790000,-0.6899100370093891,2923.9756592333338 +2019-09-04,2924.669922,2938.840088,2921.860107,2937.780029,3163260000,1.0842078947640221,2921.719327833334 +2019-09-05,2960.600098,2985.860107,2960.600098,2976.0,3890700000,1.30098137446355,2920.267325866667 +2019-09-06,2980.330078,2985.030029,2972.51001,2978.709961,3208280000,0.09106051747311827,2919.4353271666664 +2019-09-09,2988.429932,2989.429932,2969.389893,2978.429932,4002890000,-0.009401015999088713,2917.8543213333337 +2019-09-10,2971.01001,2979.389893,2957.01001,2979.389893,4390770000,0.032230437576741267,2916.4683187333335 +2019-09-11,2981.409912,3000.929932,2975.310059,3000.929932,3927550000,0.722968116747924,2916.0599854 +2019-09-12,3009.080078,3020.73999,3000.919922,3009.570068,3791860000,0.28791528612071016,2917.0329915666666 +2019-09-13,3012.209961,3017.330078,3002.899902,3007.389893,3520060000,-0.07244141025927187,2918.827319366667 +2019-09-16,2996.409912,3002.189941,2990.669922,2997.959961,4274640000,-0.31355867830603623,2921.0243164333338 +2019-09-17,2995.669922,3006.209961,2993.72998,3005.699951,3671840000,0.258175229178792,2926.3896484666666 +2019-09-18,3001.5,3007.830078,2978.570068,3006.72998,3435540000,0.034269189100433195,2930.5549804666666 +2019-09-19,3010.360107,3021.98999,3003.159912,3006.790039,3251290000,0.001997485653837394,2934.6486491 +2019-09-20,3008.419922,3016.370117,2984.679932,2992.070068,6094740000,-0.4895576614619701,2936.4479817666665 +2019-09-23,2983.5,2999.149902,2982.22998,2991.780029,3186590000,-0.009693589836079486,2938.8856526666664 +2019-09-24,3002.429932,3007.97998,2957.72998,2966.600098,3868160000,-0.8416371108813214,2941.682324233333 +2019-09-25,2968.350098,2989.820068,2952.860107,2984.870117,3318870000,0.6158571562212556,2943.6339925333327 +2019-09-26,2985.72998,2987.280029,2963.709961,2977.620117,3077240000,-0.24289164070183666,2948.2013265 +2019-09-27,2985.469971,2987.310059,2945.530029,2961.790039,3243650000,-0.5316352448595407,2952.007657866667 +2019-09-30,2967.070068,2983.850098,2967.070068,2976.73999,3247610000,0.5047606617330613,2954.9429931333334 +2019-10-01,2983.689941,2992.530029,2938.699951,2940.25,3558040000,-1.22583732951429,2955.496329733333 +2019-10-02,2924.780029,2924.780029,2874.929932,2887.610107,3912520000,-1.7903203128985634,2955.0663329666663 +2019-10-03,2885.379883,2911.129883,2855.939941,2910.629883,3503640000,0.7971912809210835,2954.6063313333334 +2019-10-04,2918.560059,2953.73999,2918.560059,2952.01001,2990830000,1.4216897600648926,2955.5749999666664 +2019-10-07,2944.22998,2959.75,2935.679932,2938.790039,2940140000,-0.44782947738040146,2958.6309976999996 +2019-10-08,2920.399902,2925.469971,2892.659912,2893.060059,3356450000,-1.5560819042234386,2959.1203369 +2019-10-09,2911.100098,2929.320068,2907.409912,2919.399902,2726820000,0.9104492289421895,2960.795003233333 +2019-10-10,2918.550049,2948.459961,2917.120117,2938.129883,3217250000,0.6415695563724677,2962.4680013 +2019-10-11,2963.070068,2993.280029,2963.070068,2970.27002,3580460000,1.0938977608158984,2963.990999366667 +2019-10-14,2965.810059,2972.840088,2962.939941,2966.149902,2557020000,-0.13871190067763495,2965.3139974 +2019-10-15,2973.610107,3003.280029,2973.610107,2995.679932,3340740000,0.9955676879340736,2968.2943278 +2019-10-16,2989.679932,2997.540039,2985.199951,2989.689941,3222570000,-0.19995430539873071,2970.0246581999995 +2019-10-17,3000.77002,3008.290039,2991.790039,2997.949951,3115960000,0.276283165244795,2970.7563232333337 +2019-10-18,2996.840088,3000.0,2976.310059,2986.199951,3264290000,-0.39193449497315624,2971.005989566667 +2019-10-21,2996.47998,3007.330078,2995.350098,3006.719971,3271620000,0.6871616213484977,2971.9489908666665 +2019-10-22,3010.72998,3014.570068,2995.040039,2995.98999,3523890000,-0.3568666554747746,2972.5023274333334 +2019-10-23,2994.01001,3004.780029,2991.209961,3004.52002,3392870000,0.2847149032029872,2972.621997033333 +2019-10-24,3014.780029,3016.070068,3000.419922,3010.290039,3692600000,0.19204461816166862,2972.6459960666666 +2019-10-25,3003.320068,3027.389893,3001.939941,3022.550049,3370370000,0.4072700584051514,2973.1513345999997 +2019-10-28,3032.120117,3044.080078,3032.120117,3039.419922,3521230000,0.5581337852645696,2974.5333333 +2019-10-29,3035.389893,3047.870117,3034.810059,3036.889893,3589930000,-0.08324052170899376,2975.5729980333335 +2019-10-30,3039.73999,3050.100098,3025.959961,3046.77002,3776030000,0.32533701741288557,2976.907666033333 +2019-10-31,3046.899902,3046.899902,3023.189941,3037.560059,4139280000,-0.3022860583353104,2977.933333366667 +2019-11-01,3050.719971,3066.949951,3050.719971,3066.909912,3930200000,0.9662311997104212,2980.4279948333333 +2019-11-04,3078.959961,3085.199951,3074.870117,3078.27002,4146850000,0.37040892383408686,2983.3109945333335 +2019-11-05,3080.800049,3083.949951,3072.149902,3074.620117,4486130000,-0.11856994273685695,2986.9116618333337 +2019-11-06,3075.100098,3078.340088,3065.889893,3076.780029,4458190000,0.07024971924360912,2989.975325566667 +2019-11-07,3087.02002,3097.77002,3080.22998,3085.179932,4144640000,0.2730095398704835,2993.5606527333334 +2019-11-08,3081.25,3093.090088,3073.580078,3093.080078,3499150000,0.25606759327254647,2997.9369873666665 +2019-11-11,3080.330078,3088.330078,3075.820068,3087.01001,3035530000,-0.19624671353238865,3001.6126547000003 +2019-11-12,3089.280029,3102.610107,3084.72998,3091.840088,3466010000,0.15646460440210674,3006.6656576333335 +2019-11-13,3084.179932,3098.060059,3078.800049,3094.040039,3509280000,0.07115345352233238,3013.546655366667 +2019-11-14,3090.75,3098.199951,3083.26001,3096.629883,3276070000,0.08370428201818214,3019.746655366667 +2019-11-15,3107.919922,3120.459961,3104.600098,3120.459961,3335650000,0.7695487966070225,3025.3616537333337 +2019-11-18,3117.909912,3124.169922,3112.060059,3122.030029,3436690000,0.050315274658951914,3031.4696534000004 +2019-11-19,3127.449951,3127.639893,3113.469971,3120.179932,3590070000,-0.059259423606272676,3039.0403158333334 +2019-11-20,3114.659912,3118.969971,3091.409912,3108.459961,4034890000,-0.37561843404613215,3045.3423178000003 +2019-11-21,3108.48999,3110.110107,3094.550049,3103.540039,3720560000,-0.15827522508661263,3050.855989666667 +2019-11-22,3111.409912,3112.870117,3099.26001,3110.290039,3226780000,0.21749356912357243,3055.523323633333 +2019-11-25,3117.439941,3133.830078,3117.439941,3133.639893,3511530000,0.7507291508899616,3061.1063233333334 +2019-11-26,3134.850098,3142.689941,3131.0,3140.52002,4595590000,0.21955704021285882,3065.9343262666666 +2019-11-27,3145.48999,3154.26001,3143.409912,3153.629883,3033090000,0.4174424272576305,3071.398991 +2019-11-29,3147.179932,3150.300049,3139.340088,3140.97998,1743020000,-0.40112199177813057,3076.166658633333 +2019-12-02,3143.850098,3144.310059,3110.780029,3113.870117,3268740000,-0.8631020628154462,3080.422330833333 +2019-12-03,3087.409912,3094.969971,3070.330078,3093.199951,3653390000,-0.6638095111017095,3083.3049968333335 +2019-12-04,3103.5,3119.379883,3102.530029,3112.76001,3695030000,0.6323567603082392,3087.197330833333 +2019-12-05,3119.209961,3119.449951,3103.76001,3117.429932,3355750000,0.15002512191744088,3090.9609945666666 +2019-12-06,3134.620117,3150.600098,3134.620117,3145.909912,3479480000,0.9135724177039783,3095.481657 +2019-12-09,3141.860107,3148.870117,3135.459961,3135.959961,3345990000,-0.3162821338922095,3099.2619874 +2019-12-10,3135.360107,3142.120117,3126.090088,3132.52002,3343790000,-0.10969339668811529,3102.365324 +2019-12-11,3135.75,3143.97998,3133.209961,3141.629883,3252540000,0.29081579500966903,3105.856657 +2019-12-12,3141.22998,3176.280029,3138.469971,3168.570068,3990690000,0.8575225600500724,3109.9166586 +2019-12-13,3166.649902,3182.679932,3156.51001,3168.800049,3736870000,0.007258195181569782,3114.2913249333333 +2019-12-16,3183.629883,3197.709961,3183.629883,3191.449951,4051790000,0.7147785170966481,3118.442659566667 +2019-12-17,3195.399902,3198.219971,3191.030029,3192.52002,3837540000,0.03352924270878521,3122.2509929 +2019-12-18,3195.209961,3198.47998,3191.139893,3191.139893,4014080000,-0.04323001864839915,3126.134985433333 +2019-12-19,3192.320068,3205.47998,3192.320068,3205.370117,3720450000,0.44592918133157244,3130.4213216999997 +2019-12-20,3223.330078,3225.649902,3216.030029,3221.219971,6454270000,0.49447812331995245,3134.9559896666665 +2019-12-23,3226.050049,3227.780029,3222.300049,3224.01001,3060610000,0.08661435807297835,3139.3203207333336 +2019-12-24,3225.449951,3226.429932,3220.51001,3223.379883,1296540000,-0.019544821450478977,3143.865983166667 +2019-12-26,3227.199951,3240.080078,3227.199951,3239.909912,2160680000,0.512816658290216,3148.8016439666667 +2019-12-27,3247.22998,3247.929932,3234.370117,3240.02002,2428670000,0.0033984895565053463,3153.6676433333337 +2019-12-30,3240.090088,3240.919922,3216.570068,3221.290039,3013290000,-0.5780822613559056,3157.822981866667 +2019-12-31,3215.179932,3231.719971,3212.030029,3230.780029,2893810000,0.29460215892096464,3161.5003174666663 +2020-01-02,3244.669922,3258.139893,3235.530029,3257.850098,3458250000,0.8378802876399583,3166.0276531 +2020-01-03,3226.360107,3246.149902,3222.340088,3234.850098,3461290000,-0.7059870561300419,3169.8499919666665 +2020-01-06,3217.550049,3246.840088,3214.639893,3246.280029,3674070000,0.35333726923132414,3174.4439942333333 +2020-01-07,3241.860107,3244.909912,3232.429932,3237.179932,3420380000,-0.2803238450998058,3178.898657333333 +2020-01-08,3238.590088,3267.070068,3236.669922,3253.050049,3720890000,0.4902451310513145,3183.6573243333332 +2020-01-09,3266.030029,3275.580078,3263.669922,3274.699951,3638390000,0.6655262499467351,3188.359326266667 +2020-01-10,3281.810059,3282.98999,3260.860107,3265.350098,3212970000,-0.2855178532355285,3192.5203288666667 +2020-01-13,3271.129883,3288.129883,3268.429932,3288.129883,3456380000,0.6976215203984504,3197.0036622 +2020-01-14,3285.350098,3294.25,3277.189941,3283.149902,3665130000,-0.15145329342819425,3201.7426596 +2020-01-15,3282.27002,3298.659912,3280.689941,3289.290039,3716840000,0.18701969703727173,3207.5899903333334 +2020-01-16,3302.969971,3317.110107,3302.820068,3316.810059,3535080000,0.8366553169135038,3215.0436606 +2020-01-17,3323.659912,3329.879883,3318.860107,3329.620117,3698170000,0.38621620690157954,3222.272330833333 +2020-01-21,3321.030029,3329.790039,3316.610107,3320.790039,4105340000,-0.2651977609973044,3229.0510010666667 +2020-01-22,3330.02002,3337.77002,3320.040039,3321.75,3619850000,0.0289076089944329,3234.912337333333 +2020-01-23,3315.77002,3326.879883,3301.870117,3325.540039,3764860000,0.11409765936629679,3241.2316732666663 +2020-01-24,3333.100098,3333.179932,3281.530029,3295.469971,3707130000,-0.9042160866312154,3246.6633383000003 +2020-01-27,3247.159912,3258.850098,3234.5,3243.629883,3823100000,-1.5730711690954746,3250.0633383 +2020-01-28,3255.350098,3285.780029,3253.219971,3276.23999,3526720000,1.0053584464402299,3253.6523356999996 +2020-01-29,3289.459961,3293.469971,3271.889893,3273.399902,3584500000,-0.08668742243146399,3257.1389974666668 +2020-01-30,3256.449951,3285.909912,3242.800049,3283.659912,3787250000,0.31343588645345033,3260.2126628333335 +2020-01-31,3282.330078,3282.330078,3214.679932,3225.52002,4527830000,-1.7705820200054956,3261.3126628333334 +2020-02-03,3235.659912,3268.439941,3235.659912,3248.919922,3757910000,0.7254613784725583,3263.2386638000003 +2020-02-04,3280.610107,3306.919922,3280.610107,3297.590088,3995320000,1.4980414158696442,3266.3126628333334 +2020-02-05,3324.909912,3337.580078,3313.75,3334.689941,4117730000,1.125059574111642,3270.094995166667 +2020-02-06,3344.919922,3347.959961,3334.389893,3345.780029,3868370000,0.3325672909989974,3274.1539958 +2020-02-07,3335.540039,3341.419922,3322.120117,3327.709961,3730650000,-0.5400853565797892,3277.631665066667 +2020-02-10,3318.280029,3352.26001,3317.77002,3352.090088,3450350000,0.7326397818839148,3281.3710042666667 +2020-02-11,3365.870117,3375.629883,3352.719971,3357.75,3760550000,0.16884725205512652,3285.295336933333 +2020-02-12,3370.5,3381.469971,3369.719971,3379.449951,3926380000,0.6462646415010154,3290.567334 +2020-02-13,3365.899902,3385.090088,3360.52002,3373.939941,3498240000,-0.16304458062382787,3295.339331066667 +2020-02-14,3378.080078,3380.689941,3366.149902,3380.159912,3398040000,0.18435334086464028,3299.4163248666664 +2020-02-18,3369.040039,3375.01001,3355.610107,3370.290039,3746720000,-0.2919942623117011,3303.9309895666665 +2020-02-19,3380.389893,3393.52002,3378.830078,3386.149902,3600150000,0.470578579780212,3308.5933186666666 +2020-02-20,3380.449951,3389.149902,3341.02002,3373.22998,4007320000,-0.38155198009305336,3313.128320266667 +2020-02-21,3360.5,3360.76001,3328.449951,3337.75,3899270000,-1.0518102889622738,3315.9516519666668 +2020-02-24,3257.610107,3259.810059,3214.649902,3225.889893,4842960000,-3.3513626544828146,3314.3246500333335 +2020-02-25,3238.939941,3246.98999,3118.77002,3128.209961,5591510000,-3.0279995672499505,3309.7533121333336 +2020-02-26,3139.899902,3182.51001,3108.98999,3116.389893,5478110000,-0.37785404903645237,3304.0286458 +2020-02-27,3062.540039,3097.070068,2977.389893,2978.76001,7058840000,-4.416324263826644,3293.8823160666666 +2020-02-28,2916.899902,2959.719971,2855.840088,2954.219971,8563850000,-0.8238340422731749,3282.7133138 +2020-03-02,2974.280029,3090.959961,2945.189941,3090.22998,6376400000,4.603922874232036,3275.1606445 +2020-03-03,3096.459961,3136.719971,2976.629883,3003.370117,6355940000,-2.810789603432695,3264.2856445 +2020-03-04,3045.75,3130.969971,3034.379883,3130.120117,5035480000,4.220259077712596,3257.9299804333336 +2020-03-05,3075.699951,3083.040039,2999.830078,3023.939941,5575550000,-3.3922077118805904,3248.002978466667 +2020-03-06,2954.199951,2985.929932,2901.540039,2972.370117,6552140000,-1.7053851930321828,3236.2306477333336 +2020-03-09,2863.889893,2863.889893,2734.429932,2746.560059,8423050000,-7.596969728248681,3217.9336506666664 +2020-03-10,2813.47998,2882.590088,2734.0,2882.22998,7635960000,4.939630595567479,3205.8869872333335 +2020-03-11,2825.600098,2825.600098,2707.219971,2741.379883,7374110000,-4.886844491153342,3188.0583170000004 +2020-03-12,2630.860107,2660.949951,2478.860107,2480.639893,8829380000,-9.511268088633596,3161.632983366667 +2020-03-13,2569.98999,2711.330078,2492.370117,2711.02002,8258670000,9.287124973282035,3142.544986966667 +2020-03-16,2508.590088,2562.97998,2380.939941,2386.129883,7781540000,-11.984055248695647,3114.5653157333336 +2020-03-17,2425.659912,2553.929932,2367.040039,2529.189941,8358500000,5.995484949047936,3090.574316366667 +2020-03-18,2436.5,2453.570068,2280.52002,2398.100098,8755780000,-5.183076244094565,3060.5913167000003 +2020-03-19,2393.47998,2466.969971,2319.780029,2409.389893,7946710000,0.4707808072488717,3029.7479817666667 +2020-03-20,2431.939941,2453.01001,2295.560059,2304.919922,9044690000,-4.335951242408564,2995.0526448666665 +2020-03-23,2290.709961,2300.72998,2191.860107,2237.399902,7402180000,-2.9293868023585024,2958.7089762333335 +2020-03-24,2344.439941,2449.709961,2344.439941,2447.330078,7547350000,9.382773987446068,2928.5503092333333 +2020-03-25,2457.77002,2571.419922,2407.530029,2475.560059,8285670000,1.1535011665884554,2899.143977866667 +2020-03-26,2501.290039,2637.01001,2500.719971,2630.070068,7753160000,6.241416298436087,2874.1646484333332 +2020-03-27,2555.870117,2615.909912,2520.02002,2541.469971,6194330000,-3.368735231733755,2846.4156494333333 +2020-03-30,2558.97998,2631.800049,2545.280029,2626.649902,5746220000,3.351600922771647,2821.2986491 +2020-03-31,2614.689941,2641.389893,2571.149902,2584.590088,6568290000,-1.601272174414059,2795.1086507333334 +2020-04-01,2498.080078,2522.75,2447.48999,2470.5,5947900000,-4.414243037211552,2764.5869873333336 +2020-04-02,2458.540039,2533.219971,2455.790039,2526.899902,6454990000,2.28293470957297,2736.3759847333336 +2020-04-03,2514.919922,2538.179932,2459.959961,2488.649902,6087190000,-1.513712512700871,2708.072648133333 +2020-04-06,2578.280029,2676.850098,2574.570068,2663.679932,6391860000,7.033131894499789,2689.3323161 +2020-04-07,2738.649902,2756.889893,2657.669922,2659.409912,7040720000,-0.1603052960193252,2673.7056478 +2020-04-08,2685.0,2760.75,2663.300049,2749.97998,5856370000,3.4056452745897747,2661.491984033333 +2020-04-09,2776.98999,2818.570068,2762.360107,2789.820068,7880140000,1.4487410195618944,2655.193985966667 +2020-04-13,2782.459961,2782.459961,2721.169922,2761.629883,5274310000,-1.0104660627883844,2648.774316366667 +2020-04-14,2805.100098,2851.850098,2805.100098,2846.060059,5567400000,3.057258922339079,2640.635319 +2020-04-15,2795.639893,2801.879883,2761.540039,2783.360107,5203390000,-2.2030438817243536,2633.301652 +2020-04-16,2799.340088,2806.51001,2764.320068,2799.550049,5179990000,0.5816689676367393,2622.282649733333 +2020-04-17,2842.429932,2879.219971,2830.879883,2874.560059,5792140000,2.6793594930297315,2617.303320333333 diff --git a/common/workflow-operator/src/main/scala/py2udf/demo_texera_workflow_vx2.workflow.json b/common/workflow-operator/src/main/scala/py2udf/demo_texera_workflow_vx2.workflow.json new file mode 100644 index 00000000000..e17e1172872 --- /dev/null +++ b/common/workflow-operator/src/main/scala/py2udf/demo_texera_workflow_vx2.workflow.json @@ -0,0 +1,400 @@ +{ + "operators": [ + { + "operatorID": "CSVFileScan-operator-52a5c4c1-6d4c-4ce6-8d58-c69e991b2b15", + "operatorType": "CSVFileScan", + "operatorVersion": "N/A", + "operatorProperties": { + "fileEncoding": "UTF_8", + "customDelimiter": ",", + "hasHeader": true, + "fileName": "https://raw.githubusercontent.com/vega/vega-datasets/main/data/sp500-2000.csv" + }, + "inputPorts": [], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "CSV File Scan", + "dynamicInputPorts": false, + "dynamicOutputPorts": false + }, + { + "operatorID": "PythonUDFV2-operator-da9d7c0b-301c-4074-9fe4-262c29fd2b34", + "operatorType": "PythonUDFV2", + "operatorVersion": "N/A", + "operatorProperties": { + "code": "from typing import Iterator, Optional, Union\nimport pandas as pd\nimport matplotlib.pyplot as plt\nfrom pytexera import *\nfrom core.models.schema.attribute_type import AttributeType\nclass ProcessTableOperator(UDFTableOperator):\n\n def open(self) -> None:\n pass\n\n @overrides\n def process_table(self, table: Table, port: int) -> Iterator[Optional[TableLike]]:\n selected = table[['date', 'open', 'high', 'low', 'close', 'volume']].copy()\n print('\\nStep 2: Select columns')\n print(selected.head())\n yield selected\n return\n\n def close(self) -> None:\n pass\n", + "workers": 1, + "retainInputColumns": false, + "outputColumns": [ + { + "attributeName": "date", + "attributeType": "string" + }, + { + "attributeName": "open", + "attributeType": "double" + }, + { + "attributeName": "high", + "attributeType": "double" + }, + { + "attributeName": "low", + "attributeType": "double" + }, + { + "attributeName": "close", + "attributeType": "double" + }, + { + "attributeName": "volume", + "attributeType": "long" + } + ] + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": true, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Select Columns", + "dynamicInputPorts": true, + "dynamicOutputPorts": true + }, + { + "operatorID": "PythonUDFV2-operator-9763cabd-b5c1-46ca-97de-7de4796f11bf", + "operatorType": "PythonUDFV2", + "operatorVersion": "N/A", + "operatorProperties": { + "code": "from typing import Iterator, Optional, Union\nimport pandas as pd\nimport matplotlib.pyplot as plt\nfrom pytexera import *\nfrom core.models.schema.attribute_type import AttributeType\nclass ProcessTableOperator(UDFTableOperator):\n\n def open(self) -> None:\n pass\n\n @overrides\n def process_table(self, table: Table, port: int) -> Iterator[Optional[TableLike]]:\n cleaned = table.dropna().copy()\n print('\\nStep 3: Clean data')\n print(cleaned.head())\n yield cleaned\n return\n\n def close(self) -> None:\n pass\n", + "workers": 1, + "retainInputColumns": false, + "outputColumns": [ + { + "attributeName": "date", + "attributeType": "string" + }, + { + "attributeName": "open", + "attributeType": "double" + }, + { + "attributeName": "high", + "attributeType": "double" + }, + { + "attributeName": "low", + "attributeType": "double" + }, + { + "attributeName": "close", + "attributeType": "double" + }, + { + "attributeName": "volume", + "attributeType": "long" + } + ] + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": true, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Clean Data", + "dynamicInputPorts": true, + "dynamicOutputPorts": true + }, + { + "operatorID": "PythonUDFV2-operator-cdae744a-1e5e-4e8f-bd77-10434620f798", + "operatorType": "PythonUDFV2", + "operatorVersion": "N/A", + "operatorProperties": { + "code": "from typing import Iterator, Optional, Union\nimport pandas as pd\nimport matplotlib.pyplot as plt\nfrom pytexera import *\nfrom core.models.schema.attribute_type import AttributeType\nclass ProcessTableOperator(UDFTableOperator):\n\n def open(self) -> None:\n pass\n\n @overrides\n def process_table(self, table: Table, port: int) -> Iterator[Optional[TableLike]]:\n transformed = table.copy()\n transformed['date'] = pd.to_datetime(transformed['date'], errors='coerce')\n transformed = transformed.dropna(subset=['date']).copy()\n transformed = transformed.sort_values('date')\n transformed['daily_return'] = transformed['close'].pct_change() * 100\n transformed['ma_30'] = transformed['close'].rolling(window=30).mean()\n print('\\nStep 4: Transform data')\n print(transformed.head())\n yield transformed\n return\n\n def close(self) -> None:\n pass\n", + "workers": 1, + "retainInputColumns": false, + "outputColumns": [ + { + "attributeName": "date", + "attributeType": "timestamp" + }, + { + "attributeName": "open", + "attributeType": "double" + }, + { + "attributeName": "high", + "attributeType": "double" + }, + { + "attributeName": "low", + "attributeType": "double" + }, + { + "attributeName": "close", + "attributeType": "double" + }, + { + "attributeName": "volume", + "attributeType": "long" + }, + { + "attributeName": "daily_return", + "attributeType": "double" + }, + { + "attributeName": "ma_30", + "attributeType": "double" + } + ] + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": true, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Transform Data", + "dynamicInputPorts": true, + "dynamicOutputPorts": true + }, + { + "operatorID": "PythonUDFV2-operator-f45cfd8f-0f39-42c6-a97a-35a0094359da", + "operatorType": "PythonUDFV2", + "operatorVersion": "N/A", + "operatorProperties": { + "code": "from typing import Iterator, Optional, Union\nimport pandas as pd\nimport matplotlib.pyplot as plt\nfrom pytexera import *\nfrom core.models.schema.attribute_type import AttributeType\nclass ProcessTableOperator(UDFTableOperator):\n\n def open(self) -> None:\n self.output_file = 'clean_sp500_2000.csv'\n # Temporary hardcoded default for UI parameter 'output_file' from the source script.\n # self.UiParameter('output_file', AttributeType.STRING) # UiParameter disabled for now\n\n @overrides\n def process_table(self, table: Table, port: int) -> Iterator[Optional[TableLike]]:\n table.to_csv(self.output_file, index=False)\n print(f'\\nStep 5: Load data')\n print(f'Saved cleaned data to: {self.output_file}')\n yield table\n\n def close(self) -> None:\n pass\n", + "workers": 1, + "retainInputColumns": false, + "outputColumns": [ + { + "attributeName": "date", + "attributeType": "timestamp" + }, + { + "attributeName": "open", + "attributeType": "double" + }, + { + "attributeName": "high", + "attributeType": "double" + }, + { + "attributeName": "low", + "attributeType": "double" + }, + { + "attributeName": "close", + "attributeType": "double" + }, + { + "attributeName": "volume", + "attributeType": "long" + }, + { + "attributeName": "daily_return", + "attributeType": "double" + }, + { + "attributeName": "ma_30", + "attributeType": "double" + } + ] + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": true, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Load Data", + "dynamicInputPorts": true, + "dynamicOutputPorts": true + }, + { + "operatorID": "TimeSeriesPlot-operator-4c61e814-c060-4a03-8170-2bd0c441ac8e", + "operatorType": "TimeSeriesPlot", + "operatorVersion": "N/A", + "operatorProperties": { + "timeColumn": "date", + "valueColumn": "close", + "line": "close", + "facetColumn": "No Selection", + "categoryColumn": "No Selection", + "slider": false + }, + "inputPorts": [ + { + "portID": "input-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false, + "dependencies": [] + } + ], + "outputPorts": [ + { + "portID": "output-0", + "displayName": "", + "allowMultiInputs": false, + "isDynamicPort": false + } + ], + "showAdvanced": false, + "isDisabled": false, + "customDisplayName": "Plot Data", + "dynamicInputPorts": false, + "dynamicOutputPorts": false, + "viewResult": true + } + ], + "operatorPositions": { + "CSVFileScan-operator-52a5c4c1-6d4c-4ce6-8d58-c69e991b2b15": { + "x": 240, + "y": 180 + }, + "PythonUDFV2-operator-da9d7c0b-301c-4074-9fe4-262c29fd2b34": { + "x": 540, + "y": 180 + }, + "PythonUDFV2-operator-9763cabd-b5c1-46ca-97de-7de4796f11bf": { + "x": 840, + "y": 180 + }, + "PythonUDFV2-operator-cdae744a-1e5e-4e8f-bd77-10434620f798": { + "x": 1140, + "y": 180 + }, + "PythonUDFV2-operator-f45cfd8f-0f39-42c6-a97a-35a0094359da": { + "x": 1440, + "y": 180 + }, + "TimeSeriesPlot-operator-4c61e814-c060-4a03-8170-2bd0c441ac8e": { + "x": 1440, + "y": 360 + } + }, + "links": [ + { + "linkID": "link-84bd3626-9908-4fb1-b746-ad9da043aa92", + "source": { + "operatorID": "CSVFileScan-operator-52a5c4c1-6d4c-4ce6-8d58-c69e991b2b15", + "portID": "output-0" + }, + "target": { + "operatorID": "PythonUDFV2-operator-da9d7c0b-301c-4074-9fe4-262c29fd2b34", + "portID": "input-0" + } + }, + { + "linkID": "link-49eb65dd-4c68-4df6-a245-aedb508b7857", + "source": { + "operatorID": "PythonUDFV2-operator-da9d7c0b-301c-4074-9fe4-262c29fd2b34", + "portID": "output-0" + }, + "target": { + "operatorID": "PythonUDFV2-operator-9763cabd-b5c1-46ca-97de-7de4796f11bf", + "portID": "input-0" + } + }, + { + "linkID": "link-bf345bd5-6196-482e-bda1-bba512abf7da", + "source": { + "operatorID": "PythonUDFV2-operator-9763cabd-b5c1-46ca-97de-7de4796f11bf", + "portID": "output-0" + }, + "target": { + "operatorID": "PythonUDFV2-operator-cdae744a-1e5e-4e8f-bd77-10434620f798", + "portID": "input-0" + } + }, + { + "linkID": "link-6031e10a-0ac6-42af-9321-2782a2be6d8e", + "source": { + "operatorID": "PythonUDFV2-operator-cdae744a-1e5e-4e8f-bd77-10434620f798", + "portID": "output-0" + }, + "target": { + "operatorID": "PythonUDFV2-operator-f45cfd8f-0f39-42c6-a97a-35a0094359da", + "portID": "input-0" + } + }, + { + "linkID": "link-9b1eacbb-1a02-47b7-b14e-6c1d41964c8e", + "source": { + "operatorID": "PythonUDFV2-operator-cdae744a-1e5e-4e8f-bd77-10434620f798", + "portID": "output-0" + }, + "target": { + "operatorID": "TimeSeriesPlot-operator-4c61e814-c060-4a03-8170-2bd0c441ac8e", + "portID": "input-0" + } + } + ], + "commentBoxes": [], + "settings": { + "dataTransferBatchSize": 400 + } +} diff --git a/common/workflow-operator/src/main/scala/py2udf/demo_texera_workflow_vx2.workflow.meta.json b/common/workflow-operator/src/main/scala/py2udf/demo_texera_workflow_vx2.workflow.meta.json new file mode 100644 index 00000000000..8136a9df4bc --- /dev/null +++ b/common/workflow-operator/src/main/scala/py2udf/demo_texera_workflow_vx2.workflow.meta.json @@ -0,0 +1,398 @@ +{ + "entry": "main", + "catalog_path": "catalog.json", + "stages": [ + { + "stage_id": "extract_data__0", + "function": "extract_data", + "operatorID": "CSVFileScan-operator-52a5c4c1-6d4c-4ce6-8d58-c69e991b2b15", + "operator_type": "CSVFileScan", + "native_operator_type": "CSVFileScan", + "family": "table", + "base_class": null, + "method": null, + "is_source": true, + "is_sink": true, + "recursive": false, + "has_loop": false, + "assigned_to": [ + "raw_df" + ], + "data_inputs": [], + "ui_parameters": [ + { + "name": "url", + "attr_type": "AttributeType.STRING", + "default": "'https://raw.githubusercontent.com/vega/vega-datasets/main/data/sp500-2000.csv'" + } + ], + "source_columns": [ + { + "attributeName": "date", + "attributeType": "string" + }, + { + "attributeName": "open", + "attributeType": "double" + }, + { + "attributeName": "high", + "attributeType": "double" + }, + { + "attributeName": "low", + "attributeType": "double" + }, + { + "attributeName": "close", + "attributeType": "double" + }, + { + "attributeName": "adjclose", + "attributeType": "double" + }, + { + "attributeName": "volume", + "attributeType": "long" + } + ], + "output_columns": [ + { + "attributeName": "date", + "attributeType": "string" + }, + { + "attributeName": "open", + "attributeType": "double" + }, + { + "attributeName": "high", + "attributeType": "double" + }, + { + "attributeName": "low", + "attributeType": "double" + }, + { + "attributeName": "close", + "attributeType": "double" + }, + { + "attributeName": "adjclose", + "attributeType": "double" + }, + { + "attributeName": "volume", + "attributeType": "long" + } + ], + "retain_input_columns": false, + "native_notes": [ + "Matched pandas.read_csv to CSVFileScan" + ] + }, + { + "stage_id": "select_columns__1", + "function": "select_columns", + "operatorID": "PythonUDFV2-operator-da9d7c0b-301c-4074-9fe4-262c29fd2b34", + "operator_type": "PythonUDFV2", + "native_operator_type": null, + "family": "table", + "base_class": "UDFTableOperator", + "method": "process_table", + "is_source": false, + "is_sink": true, + "recursive": false, + "has_loop": false, + "assigned_to": [ + "selected_df" + ], + "data_inputs": [ + { + "param_name": "df", + "upstream_stage_id": "extract_data__0", + "upstream_var": "raw_df", + "input_port": 0 + } + ], + "ui_parameters": [], + "source_columns": [], + "output_columns": [ + { + "attributeName": "date", + "attributeType": "string" + }, + { + "attributeName": "open", + "attributeType": "double" + }, + { + "attributeName": "high", + "attributeType": "double" + }, + { + "attributeName": "low", + "attributeType": "double" + }, + { + "attributeName": "close", + "attributeType": "double" + }, + { + "attributeName": "volume", + "attributeType": "long" + } + ], + "retain_input_columns": false, + "native_notes": [] + }, + { + "stage_id": "clean_data__2", + "function": "clean_data", + "operatorID": "PythonUDFV2-operator-9763cabd-b5c1-46ca-97de-7de4796f11bf", + "operator_type": "PythonUDFV2", + "native_operator_type": null, + "family": "table", + "base_class": "UDFTableOperator", + "method": "process_table", + "is_source": false, + "is_sink": true, + "recursive": false, + "has_loop": false, + "assigned_to": [ + "cleaned_df" + ], + "data_inputs": [ + { + "param_name": "df", + "upstream_stage_id": "select_columns__1", + "upstream_var": "selected_df", + "input_port": 0 + } + ], + "ui_parameters": [], + "source_columns": [], + "output_columns": [ + { + "attributeName": "date", + "attributeType": "string" + }, + { + "attributeName": "open", + "attributeType": "double" + }, + { + "attributeName": "high", + "attributeType": "double" + }, + { + "attributeName": "low", + "attributeType": "double" + }, + { + "attributeName": "close", + "attributeType": "double" + }, + { + "attributeName": "volume", + "attributeType": "long" + } + ], + "retain_input_columns": false, + "native_notes": [] + }, + { + "stage_id": "transform_data__3", + "function": "transform_data", + "operatorID": "PythonUDFV2-operator-cdae744a-1e5e-4e8f-bd77-10434620f798", + "operator_type": "PythonUDFV2", + "native_operator_type": null, + "family": "table", + "base_class": "UDFTableOperator", + "method": "process_table", + "is_source": false, + "is_sink": true, + "recursive": false, + "has_loop": false, + "assigned_to": [ + "transformed_df" + ], + "data_inputs": [ + { + "param_name": "df", + "upstream_stage_id": "clean_data__2", + "upstream_var": "cleaned_df", + "input_port": 0 + } + ], + "ui_parameters": [], + "source_columns": [], + "output_columns": [ + { + "attributeName": "date", + "attributeType": "timestamp" + }, + { + "attributeName": "open", + "attributeType": "double" + }, + { + "attributeName": "high", + "attributeType": "double" + }, + { + "attributeName": "low", + "attributeType": "double" + }, + { + "attributeName": "close", + "attributeType": "double" + }, + { + "attributeName": "volume", + "attributeType": "long" + }, + { + "attributeName": "daily_return", + "attributeType": "double" + }, + { + "attributeName": "ma_30", + "attributeType": "double" + } + ], + "retain_input_columns": false, + "native_notes": [] + }, + { + "stage_id": "load_data__4", + "function": "load_data", + "operatorID": "PythonUDFV2-operator-f45cfd8f-0f39-42c6-a97a-35a0094359da", + "operator_type": "PythonUDFV2", + "native_operator_type": null, + "family": "table", + "base_class": "UDFTableOperator", + "method": "process_table", + "is_source": false, + "is_sink": true, + "recursive": false, + "has_loop": false, + "assigned_to": [], + "data_inputs": [ + { + "param_name": "df", + "upstream_stage_id": "transform_data__3", + "upstream_var": "transformed_df", + "input_port": 0 + } + ], + "ui_parameters": [ + { + "name": "output_file", + "attr_type": "AttributeType.STRING", + "default": "'clean_sp500_2000.csv'" + } + ], + "source_columns": [], + "output_columns": [ + { + "attributeName": "date", + "attributeType": "timestamp" + }, + { + "attributeName": "open", + "attributeType": "double" + }, + { + "attributeName": "high", + "attributeType": "double" + }, + { + "attributeName": "low", + "attributeType": "double" + }, + { + "attributeName": "close", + "attributeType": "double" + }, + { + "attributeName": "volume", + "attributeType": "long" + }, + { + "attributeName": "daily_return", + "attributeType": "double" + }, + { + "attributeName": "ma_30", + "attributeType": "double" + } + ], + "retain_input_columns": false, + "native_notes": [] + }, + { + "stage_id": "plot_data__5", + "function": "plot_data", + "operatorID": "TimeSeriesPlot-operator-4c61e814-c060-4a03-8170-2bd0c441ac8e", + "operator_type": "TimeSeriesPlot", + "native_operator_type": "TimeSeriesPlot", + "family": "table", + "base_class": null, + "method": null, + "is_source": false, + "is_sink": true, + "recursive": false, + "has_loop": false, + "assigned_to": [], + "data_inputs": [ + { + "param_name": "df", + "upstream_stage_id": "transform_data__3", + "upstream_var": "transformed_df", + "input_port": 0 + } + ], + "ui_parameters": [], + "source_columns": [], + "output_columns": [ + { + "attributeName": "date", + "attributeType": "timestamp" + }, + { + "attributeName": "open", + "attributeType": "double" + }, + { + "attributeName": "high", + "attributeType": "double" + }, + { + "attributeName": "low", + "attributeType": "double" + }, + { + "attributeName": "close", + "attributeType": "double" + }, + { + "attributeName": "volume", + "attributeType": "long" + }, + { + "attributeName": "daily_return", + "attributeType": "double" + }, + { + "attributeName": "ma_30", + "attributeType": "double" + } + ], + "retain_input_columns": true, + "native_notes": [ + "Matched line/time-series plot on x='date', y='close'" + ] + } + ] +} diff --git a/common/workflow-operator/src/main/scala/py2udf/py2udf.ipynb b/common/workflow-operator/src/main/scala/py2udf/py2udf.ipynb new file mode 100644 index 00000000000..b5125c6b556 --- /dev/null +++ b/common/workflow-operator/src/main/scala/py2udf/py2udf.ipynb @@ -0,0 +1,2028 @@ +{ + "cells": [ + { + "metadata": { + "ExecuteTime": { + "end_time": "2026-03-04T07:52:53.906136Z", + "start_time": "2026-03-04T07:52:52.994657Z" + } + }, + "cell_type": "code", + "source": [ + "import ast\n", + "import copy\n", + "import json\n", + "import uuid\n", + "from dataclasses import dataclass, field\n", + "from pathlib import Path\n", + "from typing import Any, Optional\n", + "\n", + "\n", + "ATTRIBUTE_TYPE_FOR_PY = {\n", + " \"str\": \"AttributeType.STRING\",\n", + " \"int\": \"AttributeType.INTEGER\",\n", + " \"float\": \"AttributeType.DOUBLE\",\n", + " \"bool\": \"AttributeType.BOOLEAN\",\n", + "}\n", + "\n", + "\n", + "@dataclass\n", + "class FunctionFacts:\n", + " name: str\n", + " params: list[str]\n", + " returns_annotation: str | None\n", + " called_functions: set[str] = field(default_factory=set)\n", + " has_loop: bool = False\n", + " recursive: bool = False\n", + " family: str = \"table\" # source | table | batch | tuple\n", + " is_sink: bool = False\n", + " globals_used: set[str] = field(default_factory=set)\n", + "\n", + "\n", + "@dataclass\n", + "class UiParamSpec:\n", + " name: str\n", + " attr_type: str\n", + " default_ast: ast.AST | None = None\n", + "\n", + "\n", + "@dataclass\n", + "class DataInputSpec:\n", + " param_name: str\n", + " upstream_stage_id: str\n", + " upstream_var: str\n", + " input_port: int\n", + "\n", + "\n", + "@dataclass\n", + "class StageInvocation:\n", + " stage_id: str\n", + " function_name: str\n", + " family: str\n", + " is_source: bool\n", + " is_sink: bool\n", + " recursive: bool\n", + " has_loop: bool\n", + " assigned_to: list[str]\n", + " data_inputs: list[DataInputSpec] = field(default_factory=list)\n", + " ui_params: list[UiParamSpec] = field(default_factory=list)\n", + " operator_id: str = \"\"\n", + " display_name: str = \"\"\n", + " code: str = \"\"\n", + " operator_type: str = \"PythonUDFV2\"\n", + " source_columns: list[dict[str, str]] = field(default_factory=list)\n", + " output_columns: list[dict[str, str]] = field(default_factory=list)\n", + " retain_input_columns: bool = True\n", + "\n", + "\n", + "class SourceModuleParser:\n", + " def parse(self, source: str) -> ast.Module:\n", + " return ast.parse(source)\n", + "\n", + "\n", + "class ImportCollector:\n", + " def collect_nodes(self, tree: ast.Module) -> list[ast.stmt]:\n", + " return [n for n in tree.body if isinstance(n, (ast.Import, ast.ImportFrom))]\n", + "\n", + " def collect_names(self, tree: ast.Module) -> set[str]:\n", + " names = set()\n", + " for node in self.collect_nodes(tree):\n", + " if isinstance(node, ast.Import):\n", + " for alias in node.names:\n", + " names.add(alias.asname or alias.name.split(\".\")[0])\n", + " else:\n", + " for alias in node.names:\n", + " names.add(alias.asname or alias.name)\n", + " return names\n", + "\n", + "\n", + "class FunctionIndex:\n", + " def collect(self, tree: ast.Module) -> dict[str, ast.FunctionDef]:\n", + " return {n.name: n for n in tree.body if isinstance(n, ast.FunctionDef)}\n", + "\n", + "\n", + "class CallCollector(ast.NodeVisitor):\n", + " def __init__(self):\n", + " self.calls: list[ast.Call] = []\n", + "\n", + " def visit_Call(self, node: ast.Call):\n", + " self.calls.append(node)\n", + " self.generic_visit(node)\n", + "\n", + "\n", + "class CallGraphBuilder:\n", + " def build(self, functions: dict[str, ast.FunctionDef]) -> dict[str, set[str]]:\n", + " graph = {name: set() for name in functions}\n", + " for name, fn in functions.items():\n", + " collector = CallCollector()\n", + " collector.visit(fn)\n", + " for call in collector.calls:\n", + " if isinstance(call.func, ast.Name) and call.func.id in functions:\n", + " graph[name].add(call.func.id)\n", + " return graph\n", + "\n", + "\n", + "class RecursiveAnalyzer:\n", + " def strongly_connected_components(self, graph: dict[str, set[str]]) -> list[list[str]]:\n", + " index = 0\n", + " stack: list[str] = []\n", + " on_stack: set[str] = set()\n", + " indices: dict[str, int] = {}\n", + " lowlink: dict[str, int] = {}\n", + " comps: list[list[str]] = []\n", + "\n", + " def strongconnect(v: str):\n", + " nonlocal index\n", + " indices[v] = index\n", + " lowlink[v] = index\n", + " index += 1\n", + " stack.append(v)\n", + " on_stack.add(v)\n", + "\n", + " for w in graph[v]:\n", + " if w not in indices:\n", + " strongconnect(w)\n", + " lowlink[v] = min(lowlink[v], lowlink[w])\n", + " elif w in on_stack:\n", + " lowlink[v] = min(lowlink[v], indices[w])\n", + "\n", + " if lowlink[v] == indices[v]:\n", + " comp = []\n", + " while True:\n", + " w = stack.pop()\n", + " on_stack.remove(w)\n", + " comp.append(w)\n", + " if w == v:\n", + " break\n", + " comps.append(comp)\n", + "\n", + " for v in graph:\n", + " if v not in indices:\n", + " strongconnect(v)\n", + " return comps\n", + "\n", + " def detect(self, graph: dict[str, set[str]]) -> set[str]:\n", + " recursive = set()\n", + " for comp in self.strongly_connected_components(graph):\n", + " if len(comp) > 1:\n", + " recursive.update(comp)\n", + " elif len(comp) == 1 and comp[0] in graph[comp[0]]:\n", + " recursive.add(comp[0])\n", + " return recursive\n", + "\n", + "\n", + "class NameUsageCollector(ast.NodeVisitor):\n", + " def __init__(self):\n", + " self.loads: set[str] = set()\n", + " self.stores: set[str] = set()\n", + "\n", + " def visit_Name(self, node: ast.Name):\n", + " if isinstance(node.ctx, ast.Load):\n", + " self.loads.add(node.id)\n", + " elif isinstance(node.ctx, ast.Store):\n", + " self.stores.add(node.id)\n", + "\n", + " def visit_FunctionDef(self, node):\n", + " return\n", + "\n", + " def visit_ClassDef(self, node):\n", + " return\n", + "\n", + "\n", + "class FamilyInferer:\n", + " def infer(self, fn: ast.FunctionDef) -> str:\n", + " ann_texts = []\n", + " for a in fn.args.args:\n", + " if a.annotation is not None:\n", + " ann_texts.append(ast.unparse(a.annotation))\n", + " if fn.returns is not None:\n", + " ann_texts.append(ast.unparse(fn.returns))\n", + " joined = \" | \".join(ann_texts)\n", + "\n", + " if any(tok in joined for tok in [\"TupleLike\", \"Tuple\", \"tuple_\"]):\n", + " return \"tuple\"\n", + " if any(tok in joined for tok in [\"BatchLike\", \"Batch\"]):\n", + " return \"batch\"\n", + " if any(tok in joined for tok in [\"DataFrame\", \"TableLike\", \"Table\", \"pd.DataFrame\"]):\n", + " return \"table\"\n", + "\n", + " source = ast.unparse(fn)\n", + " if any(tok in source for tok in [\"pd.\", \".copy(\", \".dropna(\", \".sort_values(\", \".rolling(\"]):\n", + " return \"table\"\n", + " return \"table\"\n", + "\n", + "\n", + "class SinkDetector:\n", + " def detect(self, fn: ast.FunctionDef) -> bool:\n", + " source = ast.unparse(fn)\n", + " if any(tok in source for tok in [\"to_csv(\", \".show(\", \"plt.\", \".save(\", \"print(\"]):\n", + " return True\n", + " if fn.returns is None:\n", + " for stmt in fn.body:\n", + " if isinstance(stmt, ast.Return) and stmt.value is not None:\n", + " return False\n", + " return True\n", + " return False\n", + "\n", + "\n", + "class LoopCollector(ast.NodeVisitor):\n", + " def __init__(self, function_name: str):\n", + " self.function_name = function_name\n", + " self.has_loop = False\n", + "\n", + " def visit_For(self, node: ast.For):\n", + " self.has_loop = True\n", + " self.generic_visit(node)\n", + "\n", + " def visit_While(self, node: ast.While):\n", + " self.has_loop = True\n", + " self.generic_visit(node)\n", + "\n", + "\n", + "class FunctionFactsAnalyzer:\n", + " def __init__(self):\n", + " self.family_inferer = FamilyInferer()\n", + " self.sink_detector = SinkDetector()\n", + "\n", + " def analyze(\n", + " self,\n", + " tree: ast.Module,\n", + " functions: dict[str, ast.FunctionDef],\n", + " graph: dict[str, set[str]],\n", + " recursive: set[str],\n", + " ) -> dict[str, FunctionFacts]:\n", + " import_names = ImportCollector().collect_names(tree)\n", + " facts: dict[str, FunctionFacts] = {}\n", + " for name, fn in functions.items():\n", + " usage = NameUsageCollector()\n", + " usage.visit(fn)\n", + " loops = LoopCollector(name)\n", + " loops.visit(fn)\n", + " facts[name] = FunctionFacts(\n", + " name=name,\n", + " params=[a.arg for a in fn.args.args],\n", + " returns_annotation=ast.unparse(fn.returns) if fn.returns is not None else None,\n", + " called_functions=set(graph[name]),\n", + " has_loop=loops.has_loop,\n", + " recursive=name in recursive,\n", + " family=self.family_inferer.infer(fn),\n", + " is_sink=self.sink_detector.detect(fn),\n", + " globals_used=(usage.loads - usage.stores - {a.arg for a in fn.args.args}) & import_names,\n", + " )\n", + " return facts\n", + "\n", + "\n", + "class SourceSchemaInferer:\n", + " def __init__(self):\n", + " try:\n", + " import pandas as _pd\n", + " except Exception:\n", + " _pd = None\n", + " self.pd = _pd\n", + "\n", + " def _literal_value(self, node: ast.AST | None):\n", + " if isinstance(node, ast.Constant):\n", + " return node.value\n", + " return None\n", + "\n", + " def _resolve_expr(self, expr: ast.AST | None, ui_defaults: dict[str, Any]):\n", + " if expr is None:\n", + " return None\n", + " if isinstance(expr, ast.Constant):\n", + " return expr.value\n", + " if isinstance(expr, ast.Name):\n", + " return ui_defaults.get(expr.id)\n", + " return None\n", + "\n", + " def _map_dtype(self, dtype: Any) -> str:\n", + " kind = getattr(dtype, \"kind\", None)\n", + " if kind == \"b\":\n", + " return \"boolean\"\n", + " if kind == \"i\":\n", + " try:\n", + " itemsize = int(getattr(dtype, \"itemsize\", 8) or 8)\n", + " except Exception:\n", + " itemsize = 8\n", + " return \"integer\" if itemsize <= 4 else \"long\"\n", + " if kind == \"u\":\n", + " try:\n", + " itemsize = int(getattr(dtype, \"itemsize\", 8) or 8)\n", + " except Exception:\n", + " itemsize = 8\n", + " return \"integer\" if itemsize <= 4 else \"long\"\n", + " if kind == \"f\":\n", + " return \"double\"\n", + " if kind == \"M\":\n", + " return \"timestamp\"\n", + " if kind == \"S\":\n", + " return \"binary\"\n", + " return \"string\"\n", + "\n", + " def infer(self, fn: ast.FunctionDef, stage: StageInvocation) -> list[dict[str, str]]:\n", + " if not stage.is_source or stage.family != \"table\" or self.pd is None:\n", + " return []\n", + "\n", + " ui_defaults = {spec.name: self._literal_value(spec.default_ast) for spec in stage.ui_params}\n", + "\n", + " for node in ast.walk(fn):\n", + " if not isinstance(node, ast.Call):\n", + " continue\n", + " if not isinstance(node.func, ast.Attribute):\n", + " continue\n", + " if not (isinstance(node.func.value, ast.Name) and node.func.value.id == \"pd\" and node.func.attr == \"read_csv\"):\n", + " continue\n", + "\n", + " source_expr = None\n", + " if node.args:\n", + " source_expr = node.args[0]\n", + " else:\n", + " for kw in node.keywords:\n", + " if kw.arg in (\"filepath_or_buffer\", \"path\", \"url\"):\n", + " source_expr = kw.value\n", + " break\n", + "\n", + " source_value = self._resolve_expr(source_expr, ui_defaults)\n", + " if not isinstance(source_value, str) or not source_value:\n", + " continue\n", + "\n", + " try:\n", + " df = self.pd.read_csv(source_value, nrows=50)\n", + " except Exception:\n", + " continue\n", + "\n", + " cols: list[dict[str, str]] = []\n", + " for col in df.columns:\n", + " try:\n", + " dtype = df[col].dtype\n", + " except Exception:\n", + " dtype = None\n", + " cols.append({\n", + " \"attributeName\": str(col),\n", + " \"attributeType\": self._map_dtype(dtype),\n", + " })\n", + " if cols:\n", + " return cols\n", + "\n", + " return []\n", + "\n", + "\n", + "class TableOutputSchemaInferer:\n", + " def _schema_dict(self, cols: list[dict[str, str]]) -> dict[str, str]:\n", + " return {c[\"attributeName\"]: c[\"attributeType\"] for c in cols if c.get(\"attributeName\")}\n", + "\n", + " def _schema_list(self, d: dict[str, str]) -> list[dict[str, str]]:\n", + " return [{\"attributeName\": k, \"attributeType\": v} for k, v in d.items()]\n", + "\n", + " def _list_of_constant_strings(self, node: ast.AST | None) -> list[str] | None:\n", + " if isinstance(node, (ast.List, ast.Tuple)):\n", + " vals = []\n", + " for elt in node.elts:\n", + " if isinstance(elt, ast.Constant) and isinstance(elt.value, str):\n", + " vals.append(elt.value)\n", + " else:\n", + " return None\n", + " return vals\n", + " return None\n", + "\n", + " def _infer_scalar_type(self, expr: ast.AST, env: dict[str, dict[str, str]]) -> str:\n", + " if isinstance(expr, ast.Constant):\n", + " v = expr.value\n", + " if isinstance(v, bool):\n", + " return \"boolean\"\n", + " if isinstance(v, int):\n", + " return \"long\"\n", + " if isinstance(v, float):\n", + " return \"double\"\n", + " return \"string\"\n", + " if isinstance(expr, ast.Subscript) and isinstance(expr.value, ast.Name):\n", + " if isinstance(expr.slice, ast.Constant) and isinstance(expr.slice.value, str):\n", + " return env.get(expr.value.id, {}).get(expr.slice.value, \"string\")\n", + " if isinstance(expr, ast.BinOp):\n", + " return \"double\"\n", + " if isinstance(expr, ast.Call) and isinstance(expr.func, ast.Attribute):\n", + " attr = expr.func.attr\n", + " if isinstance(expr.func.value, ast.Name) and expr.func.value.id == \"pd\" and attr == \"to_datetime\":\n", + " return \"timestamp\"\n", + " if attr in {\"pct_change\", \"mean\", \"sum\", \"std\", \"median\", \"max\", \"min\", \"rolling\"}:\n", + " return \"double\"\n", + " return \"string\"\n", + "\n", + " def _resolve_table_schema(self, expr: ast.AST, env: dict[str, dict[str, str]]) -> dict[str, str] | None:\n", + " if isinstance(expr, ast.Name):\n", + " schema = env.get(expr.id)\n", + " return dict(schema) if schema is not None else None\n", + " if isinstance(expr, ast.Subscript):\n", + " base = self._resolve_table_schema(expr.value, env)\n", + " cols = self._list_of_constant_strings(expr.slice)\n", + " if base is not None and cols is not None:\n", + " return {c: base[c] for c in cols if c in base}\n", + " return None\n", + " if isinstance(expr, ast.Call) and isinstance(expr.func, ast.Attribute):\n", + " base = self._resolve_table_schema(expr.func.value, env)\n", + " attr = expr.func.attr\n", + " if base is None:\n", + " return None\n", + " if attr in {\"copy\", \"dropna\", \"sort_values\", \"reset_index\", \"rename_axis\", \"fillna\", \"head\", \"tail\"}:\n", + " return dict(base)\n", + " if attr == \"assign\":\n", + " out = dict(base)\n", + " for kw in expr.keywords:\n", + " if kw.arg:\n", + " out[kw.arg] = self._infer_scalar_type(kw.value, env)\n", + " return out\n", + " return dict(base)\n", + " return None\n", + "\n", + " def infer(self, fn: ast.FunctionDef, stage: StageInvocation, input_columns: list[dict[str, str]]) -> tuple[list[dict[str, str]], bool]:\n", + " if stage.family != \"table\":\n", + " return [], True\n", + " env: dict[str, dict[str, str]] = {}\n", + " if stage.data_inputs:\n", + " if len(stage.data_inputs) == 1:\n", + " env[stage.data_inputs[0].param_name] = self._schema_dict(input_columns)\n", + " else:\n", + " merged: dict[str, str] = {}\n", + " for spec in stage.data_inputs:\n", + " for c in input_columns:\n", + " if c.get(\"attributeName\"):\n", + " merged[c[\"attributeName\"]] = c[\"attributeType\"]\n", + " env[spec.param_name] = dict(merged)\n", + " elif stage.is_source and stage.source_columns:\n", + " # Seed read_csv-assigned variables lazily below.\n", + " pass\n", + "\n", + " return_schema: dict[str, str] | None = None\n", + " for stmt in fn.body:\n", + " if isinstance(stmt, ast.Assign):\n", + " value_schema = self._resolve_table_schema(stmt.value, env)\n", + " if value_schema is not None:\n", + " for t in stmt.targets:\n", + " if isinstance(t, ast.Name):\n", + " env[t.id] = dict(value_schema)\n", + " for t in stmt.targets:\n", + " if isinstance(t, ast.Subscript) and isinstance(t.value, ast.Name):\n", + " root = t.value.id\n", + " if root not in env:\n", + " continue\n", + " if isinstance(t.slice, ast.Constant) and isinstance(t.slice.value, str):\n", + " env[root][t.slice.value] = self._infer_scalar_type(stmt.value, env)\n", + " elif isinstance(stmt, ast.Return) and stmt.value is not None:\n", + " rs = self._resolve_table_schema(stmt.value, env)\n", + " if rs is not None:\n", + " return_schema = rs\n", + "\n", + " if return_schema is None:\n", + " if stage.is_source:\n", + " return_schema = self._schema_dict(stage.source_columns)\n", + " elif len(stage.data_inputs) == 1:\n", + " return_schema = self._schema_dict(input_columns)\n", + " else:\n", + " return_schema = {}\n", + " for c in input_columns:\n", + " if c.get(\"attributeName\"):\n", + " return_schema[c[\"attributeName\"]] = c[\"attributeType\"]\n", + "\n", + " input_schema_dict = self._schema_dict(input_columns)\n", + " retain = return_schema == input_schema_dict\n", + " # Emit explicit output columns for all table stages to keep runtime schema aligned.\n", + " return self._schema_list(return_schema), False if return_schema else retain\n", + "\n", + "\n", + "class WorkflowIdFactory:\n", + " def operator_id(self, operator_type: str = \"PythonUDFV2\") -> str:\n", + " return f\"{operator_type}-operator-{uuid.uuid4()}\"\n", + "\n", + " def link_id(self) -> str:\n", + " return f\"link-{uuid.uuid4()}\"\n", + "\n", + " def stage_id(self, base: str, idx: int) -> str:\n", + " return f\"{base}__{idx}\"\n", + "\n", + "\n", + "class ConstantEnvBuilder:\n", + " def build(self, entry_fn: ast.FunctionDef) -> dict[str, ast.AST]:\n", + " env: dict[str, ast.AST] = {}\n", + " for stmt in entry_fn.body:\n", + " if isinstance(stmt, ast.Assign) and isinstance(stmt.value, ast.Constant):\n", + " for t in stmt.targets:\n", + " if isinstance(t, ast.Name):\n", + " env[t.id] = copy.deepcopy(stmt.value)\n", + " return env\n", + "\n", + "\n", + "class AttributeTypeInferer:\n", + " def from_annotation(self, annotation: ast.AST | None) -> str:\n", + " if annotation is None:\n", + " return \"AttributeType.STRING\"\n", + " text = ast.unparse(annotation)\n", + " if text in (\"str\", \"Optional[str]\"):\n", + " return \"AttributeType.STRING\"\n", + " if text in (\"int\", \"Optional[int]\"):\n", + " return \"AttributeType.INTEGER\"\n", + " if text in (\"float\", \"Optional[float]\"):\n", + " return \"AttributeType.DOUBLE\"\n", + " if text in (\"bool\", \"Optional[bool]\"):\n", + " return \"AttributeType.BOOLEAN\"\n", + " return \"AttributeType.STRING\"\n", + "\n", + " def from_value(self, node: ast.AST | None) -> str:\n", + " if isinstance(node, ast.Constant):\n", + " py_name = type(node.value).__name__\n", + " return ATTRIBUTE_TYPE_FOR_PY.get(py_name, \"AttributeType.STRING\")\n", + " return \"AttributeType.STRING\"\n", + "\n", + "\n", + "class EntryDagExtractor:\n", + " def __init__(self):\n", + " self.type_inferer = AttributeTypeInferer()\n", + " self.ids = WorkflowIdFactory()\n", + "\n", + " def _assigned_names(self, stmt: ast.stmt) -> list[str]:\n", + " names: list[str] = []\n", + " if isinstance(stmt, ast.Assign):\n", + " for t in stmt.targets:\n", + " if isinstance(t, ast.Name):\n", + " names.append(t.id)\n", + " elif isinstance(t, (ast.Tuple, ast.List)):\n", + " for elt in t.elts:\n", + " if isinstance(elt, ast.Name):\n", + " names.append(elt.id)\n", + " return names\n", + "\n", + " def extract(\n", + " self,\n", + " entry_fn: ast.FunctionDef,\n", + " functions: dict[str, ast.FunctionDef],\n", + " facts: dict[str, FunctionFacts],\n", + " constant_env: dict[str, ast.AST],\n", + " ) -> list[StageInvocation]:\n", + " stages: list[StageInvocation] = []\n", + " producer_for_var: dict[str, str] = {}\n", + " stage_index = 0\n", + "\n", + " for stmt in entry_fn.body:\n", + " call = None\n", + " if isinstance(stmt, ast.Assign) and isinstance(stmt.value, ast.Call):\n", + " call = stmt.value\n", + " elif isinstance(stmt, ast.Expr) and isinstance(stmt.value, ast.Call):\n", + " call = stmt.value\n", + " if not call or not isinstance(call.func, ast.Name) or call.func.id not in functions or call.func.id == entry_fn.name:\n", + " continue\n", + "\n", + " fn_name = call.func.id\n", + " fn = functions[fn_name]\n", + " fact = facts[fn_name]\n", + " assigned_to = self._assigned_names(stmt)\n", + " data_inputs: list[DataInputSpec] = []\n", + " ui_params: list[UiParamSpec] = []\n", + "\n", + " for i, param in enumerate(fn.args.args):\n", + " arg_node = None\n", + " if i < len(call.args):\n", + " arg_node = call.args[i]\n", + " else:\n", + " # support exact-name keyword arguments\n", + " for kw in call.keywords:\n", + " if kw.arg == param.arg:\n", + " arg_node = kw.value\n", + " break\n", + "\n", + " if arg_node is None:\n", + " continue\n", + "\n", + " if isinstance(arg_node, ast.Name) and arg_node.id in producer_for_var:\n", + " data_inputs.append(DataInputSpec(\n", + " param_name=param.arg,\n", + " upstream_stage_id=producer_for_var[arg_node.id],\n", + " upstream_var=arg_node.id,\n", + " input_port=len(data_inputs),\n", + " ))\n", + " else:\n", + " default_ast = copy.deepcopy(constant_env[arg_node.id]) if isinstance(arg_node, ast.Name) and arg_node.id in constant_env else copy.deepcopy(arg_node)\n", + " attr_type = self.type_inferer.from_value(default_ast)\n", + " if attr_type == \"AttributeType.STRING\":\n", + " attr_type = self.type_inferer.from_annotation(param.annotation) or attr_type\n", + " ui_params.append(UiParamSpec(name=param.arg, attr_type=attr_type, default_ast=default_ast))\n", + "\n", + " is_source = len(data_inputs) == 0\n", + " stage = StageInvocation(\n", + " stage_id=self.ids.stage_id(fn_name, stage_index),\n", + " function_name=fn_name,\n", + " family=fact.family,\n", + " is_source=is_source,\n", + " is_sink=fact.is_sink,\n", + " recursive=fact.recursive,\n", + " has_loop=fact.has_loop,\n", + " assigned_to=assigned_to,\n", + " data_inputs=data_inputs,\n", + " ui_params=ui_params,\n", + " )\n", + " stages.append(stage)\n", + " for name in assigned_to:\n", + " producer_for_var[name] = stage.stage_id\n", + " stage_index += 1\n", + "\n", + " return stages\n", + "\n", + "\n", + "class ParamRewriter(ast.NodeTransformer):\n", + " def __init__(self, name_mapping: dict[str, ast.AST]):\n", + " self.name_mapping = name_mapping\n", + "\n", + " def visit_Name(self, node: ast.Name):\n", + " if isinstance(node.ctx, ast.Load) and node.id in self.name_mapping:\n", + " return ast.copy_location(copy.deepcopy(self.name_mapping[node.id]), node)\n", + " return node\n", + "\n", + "\n", + "class YieldTransformer:\n", + " def __init__(self, family: str, is_source: bool, is_sink: bool, passthrough_name: str):\n", + " self.family = family\n", + " self.is_source = is_source\n", + " self.is_sink = is_sink\n", + " self.passthrough_name = passthrough_name\n", + "\n", + " def _yield_stmt(self, value: ast.AST | None) -> ast.stmt:\n", + " return ast.Expr(value=ast.Yield(value=value))\n", + "\n", + " def transform_block(self, body: list[ast.stmt], top_level: bool = False) -> list[ast.stmt]:\n", + " new_body: list[ast.stmt] = []\n", + " for stmt in body:\n", + " if isinstance(stmt, ast.Return):\n", + " if stmt.value is not None:\n", + " new_body.append(self._yield_stmt(stmt.value))\n", + " elif top_level and (not self.is_source) and self.is_sink:\n", + " new_body.append(self._yield_stmt(ast.Name(id=self.passthrough_name, ctx=ast.Load())))\n", + " new_body.append(ast.Return(value=None))\n", + " elif isinstance(stmt, ast.If):\n", + " stmt.body = self.transform_block(stmt.body, top_level=False)\n", + " stmt.orelse = self.transform_block(stmt.orelse, top_level=False)\n", + " new_body.append(stmt)\n", + " elif isinstance(stmt, ast.For):\n", + " stmt.body = self.transform_block(stmt.body, top_level=False)\n", + " stmt.orelse = self.transform_block(stmt.orelse, top_level=False)\n", + " new_body.append(stmt)\n", + " elif isinstance(stmt, ast.While):\n", + " stmt.body = self.transform_block(stmt.body, top_level=False)\n", + " stmt.orelse = self.transform_block(stmt.orelse, top_level=False)\n", + " new_body.append(stmt)\n", + " else:\n", + " new_body.append(stmt)\n", + "\n", + " has_yield = any(isinstance(n, ast.Yield) for n in ast.walk(ast.Module(body=new_body, type_ignores=[])))\n", + " if top_level and not has_yield and not self.is_source:\n", + " new_body.append(self._yield_stmt(ast.Name(id=self.passthrough_name, ctx=ast.Load())))\n", + " return new_body\n", + "\n", + "\n", + "class UdfBaseSelector:\n", + " def select(self, family: str, is_source: bool) -> tuple[str, str, str]:\n", + " if is_source:\n", + " return \"ProcessSourceOperator\", \"UDFSourceOperator\", \"produce\"\n", + " if family == \"tuple\":\n", + " return \"ProcessTupleOperator\", \"UDFOperatorV2\", \"process_tuple\"\n", + " if family == \"batch\":\n", + " return \"ProcessBatchOperator\", \"UDFBatchOperator\", \"process_batch\"\n", + " return \"ProcessTableOperator\", \"UDFTableOperator\", \"process_table\"\n", + "\n", + " def workflow_operator_type(self, family: str, is_source: bool, input_count: int) -> str:\n", + " \"\"\"\n", + " Workflow JSON only uses the Python operator types that are known to exist\n", + " in the target Texera deployment:\n", + " - PythonUDFSourceV2 for 0-input source operators\n", + " - PythonUDFV2 for regular 1-input Python UDFs\n", + " - DualInputPortsPythonUDFV2 for 2-input Python UDFs\n", + "\n", + " The implementation class inside `code` may still be UDFOperatorV2,\n", + " UDFBatchOperator, UDFTableOperator, or UDFSourceOperator.\n", + " \"\"\"\n", + " if is_source:\n", + " return \"PythonUDFSourceV2\"\n", + " if input_count == 2:\n", + " return \"DualInputPortsPythonUDFV2\"\n", + " return \"PythonUDFV2\"\n", + "\n", + " def data_variable(self, family: str) -> str:\n", + " return {\"tuple\": \"tuple_\", \"batch\": \"batch\"}.get(family, \"table\")\n", + "\n", + " def process_signature(self, family: str, is_source: bool) -> tuple[list[ast.arg], Optional[ast.AST]]:\n", + " if is_source:\n", + " return (\n", + " [ast.arg(arg=\"self\")],\n", + " ast.Subscript(\n", + " value=ast.Name(id=\"Iterator\", ctx=ast.Load()),\n", + " slice=ast.Subscript(\n", + " value=ast.Name(id=\"Optional\", ctx=ast.Load()),\n", + " slice=ast.Subscript(\n", + " value=ast.Name(id=\"Union\", ctx=ast.Load()),\n", + " slice=ast.Tuple(elts=[ast.Name(id=\"TupleLike\", ctx=ast.Load()), ast.Name(id=\"TableLike\", ctx=ast.Load())], ctx=ast.Load()),\n", + " ctx=ast.Load(),\n", + " ),\n", + " ctx=ast.Load(),\n", + " ),\n", + " ctx=ast.Load(),\n", + " ),\n", + " )\n", + " if family == \"tuple\":\n", + " return (\n", + " [ast.arg(arg=\"self\"), ast.arg(arg=\"tuple_\", annotation=ast.Name(id=\"Tuple\", ctx=ast.Load())), ast.arg(arg=\"port\", annotation=ast.Name(id=\"int\", ctx=ast.Load()))],\n", + " ast.Subscript(value=ast.Name(id=\"Iterator\", ctx=ast.Load()), slice=ast.Subscript(value=ast.Name(id=\"Optional\", ctx=ast.Load()), slice=ast.Name(id=\"TupleLike\", ctx=ast.Load()), ctx=ast.Load()), ctx=ast.Load()),\n", + " )\n", + " if family == \"batch\":\n", + " return (\n", + " [ast.arg(arg=\"self\"), ast.arg(arg=\"batch\", annotation=ast.Name(id=\"Batch\", ctx=ast.Load())), ast.arg(arg=\"port\", annotation=ast.Name(id=\"int\", ctx=ast.Load()))],\n", + " ast.Subscript(value=ast.Name(id=\"Iterator\", ctx=ast.Load()), slice=ast.Subscript(value=ast.Name(id=\"Optional\", ctx=ast.Load()), slice=ast.Name(id=\"BatchLike\", ctx=ast.Load()), ctx=ast.Load()), ctx=ast.Load()),\n", + " )\n", + " return (\n", + " [ast.arg(arg=\"self\"), ast.arg(arg=\"table\", annotation=ast.Name(id=\"Table\", ctx=ast.Load())), ast.arg(arg=\"port\", annotation=ast.Name(id=\"int\", ctx=ast.Load()))],\n", + " ast.Subscript(value=ast.Name(id=\"Iterator\", ctx=ast.Load()), slice=ast.Subscript(value=ast.Name(id=\"Optional\", ctx=ast.Load()), slice=ast.Name(id=\"TableLike\", ctx=ast.Load()), ctx=ast.Load()), ctx=ast.Load()),\n", + " )\n", + "\n", + "\n", + "class UiParameterEmitter:\n", + " def statements(self, spec: UiParamSpec) -> list[ast.stmt]:\n", + " stmts: list[ast.stmt] = []\n", + " if spec.default_ast is not None:\n", + " stmts.append(\n", + " ast.Assign(\n", + " targets=[ast.Attribute(value=ast.Name(id=\"self\", ctx=ast.Load()), attr=spec.name, ctx=ast.Store())],\n", + " value=copy.deepcopy(spec.default_ast),\n", + " )\n", + " )\n", + " else:\n", + " stmts.append(\n", + " ast.Assign(\n", + " targets=[ast.Attribute(value=ast.Name(id=\"self\", ctx=ast.Load()), attr=spec.name, ctx=ast.Store())],\n", + " value=ast.Constant(value=None),\n", + " )\n", + " )\n", + " return stmts\n", + "\n", + " def commented_line(self, spec: UiParamSpec) -> str:\n", + " attr_suffix = spec.attr_type.split(\".\")[-1]\n", + " return f\"# self.UiParameter({spec.name!r}, AttributeType.{attr_suffix}) # UiParameter disabled for now\"\n", + "\n", + " def hardcoded_comment_line(self, spec: UiParamSpec) -> str:\n", + " return f\"# Temporary hardcoded default for UI parameter '{spec.name}' from the source script.\"\n", + "\n", + "\n", + "class CodeCommentInjector:\n", + " def inject_ui_parameter_comments(self, code: str, stage: StageInvocation, ui_emitter: UiParameterEmitter) -> str:\n", + " if not stage.ui_params:\n", + " return code\n", + " lines = code.splitlines()\n", + " out: list[str] = []\n", + " specs_by_line = {\n", + " f\"self.{spec.name} = {ast.unparse(spec.default_ast) if spec.default_ast is not None else 'None'}\": spec\n", + " for spec in stage.ui_params\n", + " }\n", + " for line in lines:\n", + " out.append(line)\n", + " stripped = line.strip()\n", + " spec = specs_by_line.get(stripped)\n", + " if spec is not None:\n", + " indent = line[: len(line) - len(line.lstrip())]\n", + " out.append(indent + ui_emitter.hardcoded_comment_line(spec))\n", + " out.append(indent + ui_emitter.commented_line(spec))\n", + " return \"\\n\".join(out) + \"\\n\"\n", + "\n", + "\n", + "class FunctionBodyCompiler:\n", + " def __init__(self):\n", + " self.base_selector = UdfBaseSelector()\n", + " self.ui_emitter = UiParameterEmitter()\n", + " self.comment_injector = CodeCommentInjector()\n", + "\n", + " def _param_mapping(self, stage: StageInvocation) -> dict[str, ast.AST]:\n", + " mapping: dict[str, ast.AST] = {}\n", + " for spec in stage.ui_params:\n", + " mapping[spec.name] = ast.Attribute(value=ast.Name(id=\"self\", ctx=ast.Load()), attr=spec.name, ctx=ast.Load())\n", + " if stage.is_source:\n", + " return mapping\n", + " if len(stage.data_inputs) == 1:\n", + " only = stage.data_inputs[0]\n", + " mapping[only.param_name] = ast.Name(id=self.base_selector.data_variable(stage.family), ctx=ast.Load())\n", + " elif len(stage.data_inputs) > 1:\n", + " for spec in stage.data_inputs:\n", + " mapping[spec.param_name] = ast.Name(id=f\"input_{spec.input_port}\", ctx=ast.Load())\n", + " return mapping\n", + "\n", + " def _prep_statements(self, stage: StageInvocation) -> list[ast.stmt]:\n", + " stmts: list[ast.stmt] = []\n", + " if len(stage.data_inputs) > 1:\n", + " data_var = self.base_selector.data_variable(stage.family)\n", + " stmts.append(ast.Assign(\n", + " targets=[ast.Subscript(value=ast.Attribute(value=ast.Name(id=\"self\", ctx=ast.Load()), attr=\"_texera_inputs\", ctx=ast.Load()), slice=ast.Name(id=\"port\", ctx=ast.Load()), ctx=ast.Store())],\n", + " value=ast.Name(id=data_var, ctx=ast.Load()),\n", + " ))\n", + " cond = ast.Compare(\n", + " left=ast.Call(func=ast.Name(id=\"len\", ctx=ast.Load()), args=[ast.Attribute(value=ast.Name(id=\"self\", ctx=ast.Load()), attr=\"_texera_inputs\", ctx=ast.Load())], keywords=[]),\n", + " ops=[ast.Lt()],\n", + " comparators=[ast.Constant(value=len(stage.data_inputs))],\n", + " )\n", + " stmts.append(ast.If(test=cond, body=[ast.Return(value=None)], orelse=[]))\n", + " for spec in stage.data_inputs:\n", + " stmts.append(ast.Assign(\n", + " targets=[ast.Name(id=f\"input_{spec.input_port}\", ctx=ast.Store())],\n", + " value=ast.Subscript(value=ast.Attribute(value=ast.Name(id=\"self\", ctx=ast.Load()), attr=\"_texera_inputs\", ctx=ast.Load()), slice=ast.Constant(value=spec.input_port), ctx=ast.Load()),\n", + " ))\n", + " return stmts\n", + "\n", + " def compile_body(self, fn: ast.FunctionDef, stage: StageInvocation) -> list[ast.stmt]:\n", + " fn_copy = copy.deepcopy(fn)\n", + " mapping = self._param_mapping(stage)\n", + " fn_copy = ParamRewriter(mapping).visit(fn_copy)\n", + " ast.fix_missing_locations(fn_copy)\n", + "\n", + " body: list[ast.stmt] = self._prep_statements(stage)\n", + " for stmt in fn_copy.body:\n", + " if isinstance(stmt, ast.Expr) and isinstance(stmt.value, ast.Constant) and isinstance(stmt.value.value, str):\n", + " continue\n", + " body.append(stmt)\n", + " body = YieldTransformer(\n", + " family=stage.family,\n", + " is_source=stage.is_source,\n", + " is_sink=stage.is_sink,\n", + " passthrough_name=self.base_selector.data_variable(stage.family),\n", + " ).transform_block(body, top_level=True)\n", + " if not body:\n", + " body = [ast.Pass()]\n", + " return body\n", + "\n", + " def emit_class(self, import_nodes: list[ast.stmt], fn: ast.FunctionDef, stage: StageInvocation) -> str:\n", + " class_name, base_name, method_name = self.base_selector.select(stage.family, stage.is_source)\n", + " args_list, returns_ann = self.base_selector.process_signature(stage.family, stage.is_source)\n", + " body = self.compile_body(fn, stage)\n", + "\n", + " open_body: list[ast.stmt] = []\n", + " for spec in stage.ui_params:\n", + " open_body.extend(self.ui_emitter.statements(spec))\n", + " if len(stage.data_inputs) > 1:\n", + " open_body.append(ast.Assign(\n", + " targets=[ast.Attribute(value=ast.Name(id=\"self\", ctx=ast.Load()), attr=\"_texera_inputs\", ctx=ast.Store())],\n", + " value=ast.Dict(keys=[], values=[]),\n", + " ))\n", + " if not open_body:\n", + " open_body = [ast.Pass()]\n", + "\n", + " class_body: list[ast.stmt] = []\n", + " if stage.recursive:\n", + " class_body.append(ast.Expr(value=ast.Constant(value=f\"TRANSLATOR NOTE: {stage.function_name} is recursive.\")))\n", + " if stage.has_loop:\n", + " class_body.append(ast.Expr(value=ast.Constant(value=f\"TRANSLATOR NOTE: {stage.function_name} contains loops.\")))\n", + "\n", + " class_body.append(ast.FunctionDef(\n", + " name=\"open\",\n", + " args=ast.arguments(posonlyargs=[], args=[ast.arg(arg=\"self\")], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]),\n", + " body=open_body,\n", + " decorator_list=[],\n", + " returns=ast.Name(id=\"None\", ctx=ast.Load()),\n", + " type_comment=None,\n", + " ))\n", + " class_body.append(ast.FunctionDef(\n", + " name=method_name,\n", + " args=ast.arguments(posonlyargs=[], args=args_list, vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]),\n", + " body=body,\n", + " decorator_list=[ast.Name(id=\"overrides\", ctx=ast.Load())],\n", + " returns=returns_ann,\n", + " type_comment=None,\n", + " ))\n", + " class_body.append(ast.FunctionDef(\n", + " name=\"close\",\n", + " args=ast.arguments(posonlyargs=[], args=[ast.arg(arg=\"self\")], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]),\n", + " body=[ast.Pass()],\n", + " decorator_list=[],\n", + " returns=ast.Name(id=\"None\", ctx=ast.Load()),\n", + " type_comment=None,\n", + " ))\n", + " cls = ast.ClassDef(name=class_name, bases=[ast.Name(id=base_name, ctx=ast.Load())], keywords=[], body=class_body, decorator_list=[])\n", + " ast.fix_missing_locations(cls)\n", + "\n", + " prelude = [\n", + " \"from typing import Iterator, Optional, Union\",\n", + " *[ast.unparse(n) for n in import_nodes],\n", + " \"from pytexera import *\",\n", + " \"from core.models.schema.attribute_type import AttributeType\",\n", + " \"\",\n", + " ]\n", + " module = ast.Module(body=[cls], type_ignores=[])\n", + " ast.fix_missing_locations(module)\n", + " rendered = \"\\n\".join(prelude) + ast.unparse(module) + \"\\n\"\n", + " return self.comment_injector.inject_ui_parameter_comments(rendered, stage, self.ui_emitter)\n", + "\n", + "\n", + "class WorkflowOperatorBuilder:\n", + " def _operator_properties(self, stage: StageInvocation) -> dict[str, Any]:\n", + " props: dict[str, Any] = {\n", + " \"code\": stage.code,\n", + " \"workers\": 1,\n", + " }\n", + " if stage.operator_type == \"PythonUDFSourceV2\":\n", + " if stage.source_columns:\n", + " props[\"columns\"] = stage.source_columns\n", + " else:\n", + " props[\"retainInputColumns\"] = stage.retain_input_columns\n", + " if stage.output_columns:\n", + " props[\"outputColumns\"] = stage.output_columns\n", + " return props\n", + "\n", + " def _input_ports(self, stage: StageInvocation) -> list[dict[str, Any]]:\n", + " if stage.is_source:\n", + " return []\n", + " count = max(1, len(stage.data_inputs))\n", + " ports = []\n", + " for i in range(count):\n", + " display_name = \"\"\n", + " if count > 1 and i < len(stage.data_inputs):\n", + " display_name = stage.data_inputs[i].param_name\n", + " dependencies: list[dict[str, Any]] = []\n", + " if count > 1 and i > 0:\n", + " dependencies = [{\"id\": i - 1, \"internal\": False}]\n", + " ports.append({\n", + " \"portID\": f\"input-{i}\",\n", + " \"displayName\": display_name,\n", + " \"allowMultiInputs\": True,\n", + " \"isDynamicPort\": False,\n", + " \"dependencies\": dependencies,\n", + " })\n", + " return ports\n", + "\n", + " def _dynamic_ports_flags(self, stage: StageInvocation) -> tuple[bool, bool]:\n", + " if stage.is_source:\n", + " return False, False\n", + " if stage.operator_type == \"DualInputPortsPythonUDFV2\":\n", + " return False, False\n", + " return True, True\n", + "\n", + " def build(self, stage: StageInvocation, view_result: bool = False) -> dict[str, Any]:\n", + " dynamic_input_ports, dynamic_output_ports = self._dynamic_ports_flags(stage)\n", + " operator = {\n", + " \"operatorID\": stage.operator_id,\n", + " \"operatorType\": stage.operator_type,\n", + " \"operatorVersion\": \"N/A\",\n", + " \"operatorProperties\": self._operator_properties(stage),\n", + " \"inputPorts\": self._input_ports(stage),\n", + " \"outputPorts\": [\n", + " {\n", + " \"portID\": \"output-0\",\n", + " \"displayName\": \"\",\n", + " \"allowMultiInputs\": False,\n", + " \"isDynamicPort\": False,\n", + " }\n", + " ],\n", + " \"showAdvanced\": False,\n", + " \"isDisabled\": False,\n", + " \"customDisplayName\": stage.display_name,\n", + " \"dynamicInputPorts\": dynamic_input_ports,\n", + " \"dynamicOutputPorts\": dynamic_output_ports,\n", + " }\n", + " if view_result:\n", + " operator[\"viewResult\"] = True\n", + " return operator\n", + "\n", + "\n", + "class WorkflowLinkBuilder:\n", + " def __init__(self):\n", + " self.ids = WorkflowIdFactory()\n", + "\n", + " def build_links(self, stages: list[StageInvocation]) -> list[dict[str, Any]]:\n", + " stage_by_id = {s.stage_id: s for s in stages}\n", + " links: list[dict[str, Any]] = []\n", + " for stage in stages:\n", + " for inp in stage.data_inputs:\n", + " upstream = stage_by_id[inp.upstream_stage_id]\n", + " links.append({\n", + " \"linkID\": self.ids.link_id(),\n", + " \"source\": {\"operatorID\": upstream.operator_id, \"portID\": \"output-0\"},\n", + " \"target\": {\"operatorID\": stage.operator_id, \"portID\": f\"input-{inp.input_port}\"},\n", + " })\n", + " return links\n", + "\n", + "\n", + "class WorkflowLayoutBuilder:\n", + " def build_positions(self, stages: list[StageInvocation], start_x: int = 240, start_y: int = 180, x_gap: int = 300, y_gap: int = 180) -> dict[str, dict[str, int]]:\n", + " preds: dict[str, list[str]] = {s.stage_id: [inp.upstream_stage_id for inp in s.data_inputs] for s in stages}\n", + " layers: dict[str, int] = {}\n", + " remaining = {s.stage_id for s in stages}\n", + " while remaining:\n", + " progressed = False\n", + " for sid in list(remaining):\n", + " if all(p in layers for p in preds[sid]):\n", + " layers[sid] = 0 if not preds[sid] else max(layers[p] for p in preds[sid]) + 1\n", + " remaining.remove(sid)\n", + " progressed = True\n", + " if not progressed:\n", + " for sid in list(remaining):\n", + " layers[sid] = 0\n", + " remaining.remove(sid)\n", + " by_layer: dict[int, list[StageInvocation]] = {}\n", + " for s in stages:\n", + " by_layer.setdefault(layers[s.stage_id], []).append(s)\n", + " positions: dict[str, dict[str, int]] = {}\n", + " for layer, items in sorted(by_layer.items()):\n", + " for idx, stage in enumerate(items):\n", + " positions[stage.operator_id] = {\"x\": start_x + layer * x_gap, \"y\": start_y + idx * y_gap}\n", + " return positions\n", + "\n", + "\n", + "class WorkflowJsonAssembler:\n", + " def __init__(self):\n", + " self.operator_builder = WorkflowOperatorBuilder()\n", + " self.link_builder = WorkflowLinkBuilder()\n", + " self.layout_builder = WorkflowLayoutBuilder()\n", + "\n", + " def assemble(self, stages: list[StageInvocation]) -> dict[str, Any]:\n", + " operators = [\n", + " self.operator_builder.build(stage, view_result=(i == len(stages) - 1))\n", + " for i, stage in enumerate(stages)\n", + " ]\n", + " return {\n", + " \"operators\": operators,\n", + " \"operatorPositions\": self.layout_builder.build_positions(stages),\n", + " \"links\": self.link_builder.build_links(stages),\n", + " \"commentBoxes\": [],\n", + " \"settings\": {\"dataTransferBatchSize\": 400},\n", + " }\n", + "\n", + "\n", + "class WorkflowTranslator:\n", + " def __init__(self):\n", + " self.parser = SourceModuleParser()\n", + " self.imports = ImportCollector()\n", + " self.functions = FunctionIndex()\n", + " self.call_graph = CallGraphBuilder()\n", + " self.recursion = RecursiveAnalyzer()\n", + " self.facts = FunctionFactsAnalyzer()\n", + " self.constant_env = ConstantEnvBuilder()\n", + " self.dag_extractor = EntryDagExtractor()\n", + " self.ids = WorkflowIdFactory()\n", + " self.code_emitter = FunctionBodyCompiler()\n", + " self.workflow = WorkflowJsonAssembler()\n", + " self.schema_inferer = SourceSchemaInferer()\n", + " self.table_schema_inferer = TableOutputSchemaInferer()\n", + "\n", + " def translate(self, source: str, entry: str = \"main\") -> dict[str, Any]:\n", + " tree = self.parser.parse(source)\n", + " import_nodes = self.imports.collect_nodes(tree)\n", + " functions = self.functions.collect(tree)\n", + " if entry not in functions:\n", + " raise ValueError(f\"Entry function {entry!r} not found. Available: {sorted(functions)}\")\n", + "\n", + " graph = self.call_graph.build(functions)\n", + " recursive = self.recursion.detect(graph)\n", + " facts = self.facts.analyze(tree, functions, graph, recursive)\n", + " const_env = self.constant_env.build(functions[entry])\n", + " stages = self.dag_extractor.extract(functions[entry], functions, facts, const_env)\n", + " if not stages:\n", + " raise ValueError(f\"Entry function {entry!r} does not contain a detectable pipeline of helper calls.\")\n", + "\n", + " stage_by_id: dict[str, StageInvocation] = {s.stage_id: s for s in stages}\n", + " for stage in stages:\n", + " fn = functions[stage.function_name]\n", + " if len(stage.data_inputs) > 2:\n", + " raise ValueError(f\"Current workflow JSON emitter supports at most 2 data inputs per stage, got {len(stage.data_inputs)} for {stage.function_name!r}.\")\n", + " stage.operator_type = UdfBaseSelector().workflow_operator_type(stage.family, stage.is_source, len(stage.data_inputs))\n", + " stage.operator_id = self.ids.operator_id(stage.operator_type)\n", + " stage.display_name = \" \".join(part.capitalize() for part in stage.function_name.split(\"_\"))\n", + " stage.source_columns = self.schema_inferer.infer(fn, stage)\n", + " if stage.operator_type == \"PythonUDFSourceV2\" and stage.family == \"table\" and not stage.source_columns:\n", + " raise ValueError(\n", + " f\"Could not infer output columns for source stage {stage.function_name!r}. \"\n", + " \"Make the source schema explicit or use a source that can be sampled at translation time.\"\n", + " )\n", + " if stage.family == \"table\":\n", + " input_columns: list[dict[str, str]] = []\n", + " for di in stage.data_inputs:\n", + " upstream = stage_by_id[di.upstream_stage_id]\n", + " input_columns.extend(upstream.output_columns or upstream.source_columns)\n", + " if stage.is_source:\n", + " stage.output_columns = list(stage.source_columns)\n", + " stage.retain_input_columns = False\n", + " else:\n", + " stage.output_columns, stage.retain_input_columns = self.table_schema_inferer.infer(fn, stage, input_columns)\n", + " stage.code = self.code_emitter.emit_class(import_nodes, fn, stage)\n", + "\n", + " workflow_json = self.workflow.assemble(stages)\n", + " metadata = {\n", + " \"entry\": entry,\n", + " \"stages\": [\n", + " {\n", + " \"stage_id\": s.stage_id,\n", + " \"function\": s.function_name,\n", + " \"operatorID\": s.operator_id,\n", + " \"operator_type\": s.operator_type,\n", + " \"family\": s.family,\n", + " \"base_class\": UdfBaseSelector().select(s.family, s.is_source)[1],\n", + " \"method\": UdfBaseSelector().select(s.family, s.is_source)[2],\n", + " \"is_source\": s.is_source,\n", + " \"is_sink\": s.is_sink,\n", + " \"recursive\": s.recursive,\n", + " \"has_loop\": s.has_loop,\n", + " \"assigned_to\": s.assigned_to,\n", + " \"data_inputs\": [\n", + " {\n", + " \"param_name\": di.param_name,\n", + " \"upstream_stage_id\": di.upstream_stage_id,\n", + " \"upstream_var\": di.upstream_var,\n", + " \"input_port\": di.input_port,\n", + " }\n", + " for di in s.data_inputs\n", + " ],\n", + " \"ui_parameters\": [\n", + " {\n", + " \"name\": p.name,\n", + " \"attr_type\": p.attr_type,\n", + " \"default\": ast.unparse(p.default_ast) if p.default_ast is not None else None,\n", + " }\n", + " for p in s.ui_params\n", + " ],\n", + " \"source_columns\": s.source_columns,\n", + " \"output_columns\": s.output_columns,\n", + " \"retain_input_columns\": s.retain_input_columns,\n", + " }\n", + " for s in stages\n", + " ],\n", + " }\n", + " return {\"workflow_json\": workflow_json, \"metadata\": metadata}\n", + "\n", + "\n", + "def translate_to_texera_workflow_json(source: str, entry: str = \"main\") -> dict[str, Any]:\n", + " return WorkflowTranslator().translate(source, entry=entry)\n", + "\n", + "\n", + "def write_translation(result: dict[str, Any], out_prefix: str | Path) -> dict[str, str]:\n", + " out_prefix = Path(out_prefix)\n", + " base = out_prefix.with_suffix(\"\")\n", + " workflow_path = base.parent / f\"{base.name}.workflow.json\"\n", + " meta_path = base.parent / f\"{base.name}.workflow.meta.json\"\n", + " workflow_path.write_text(json.dumps(result[\"workflow_json\"], indent=2) + \"\\n\", encoding=\"utf-8\")\n", + " meta_path.write_text(json.dumps(result[\"metadata\"], indent=2) + \"\\n\", encoding=\"utf-8\")\n", + " return {\"workflow_json\": str(workflow_path), \"workflow_metadata\": str(meta_path)}\n", + "\n", + "# =============================\n", + "# Native-operator knowledge base\n", + "# =============================\n", + "\n", + "@dataclass\n", + "class NativeOperatorMatch:\n", + " operator_type: str\n", + " properties: dict[str, Any]\n", + " display_name: str | None = None\n", + " confidence: float = 1.0\n", + " output_columns: list[dict[str, str]] | None = None\n", + " retain_input_columns: bool | None = None\n", + " notes: list[str] = field(default_factory=list)\n", + "\n", + "\n", + "class NativeOperatorCatalog:\n", + " def __init__(self, catalog_json_path: str | Path | None = None):\n", + " self.catalog_json_path = Path(catalog_json_path) if catalog_json_path else None\n", + " self.templates: dict[str, dict[str, Any]] = {}\n", + " self._load_default_if_available()\n", + "\n", + " def _load_default_if_available(self):\n", + " if self.catalog_json_path is None:\n", + " default = Path('/mnt/data/Untitled workflow (11).json')\n", + " if default.exists():\n", + " self.catalog_json_path = default\n", + " if self.catalog_json_path and self.catalog_json_path.exists():\n", + " self.load(self.catalog_json_path)\n", + "\n", + " def load(self, path: str | Path):\n", + " path = Path(path)\n", + " obj = json.loads(path.read_text(encoding='utf-8'))\n", + " templates: dict[str, dict[str, Any]] = {}\n", + " for op in obj.get('operators', []):\n", + " op_type = op.get('operatorType')\n", + " if op_type and op_type not in templates:\n", + " templates[op_type] = copy.deepcopy(op)\n", + " self.templates = templates\n", + "\n", + " def has(self, operator_type: str) -> bool:\n", + " return operator_type in self.templates\n", + "\n", + " def template(self, operator_type: str) -> dict[str, Any]:\n", + " if operator_type not in self.templates:\n", + " raise KeyError(f'Operator type {operator_type!r} not found in native operator catalog')\n", + " return copy.deepcopy(self.templates[operator_type])\n", + "\n", + "\n", + "class ImportAliasIndex:\n", + " def build(self, tree: ast.Module) -> dict[str, str]:\n", + " aliases: dict[str, str] = {}\n", + " for node in tree.body:\n", + " if isinstance(node, ast.Import):\n", + " for alias in node.names:\n", + " aliases[alias.asname or alias.name.split('.')[0]] = alias.name\n", + " elif isinstance(node, ast.ImportFrom):\n", + " mod = node.module or ''\n", + " for alias in node.names:\n", + " aliases[alias.asname or alias.name] = f\"{mod}.{alias.name}\" if mod else alias.name\n", + " return aliases\n", + "\n", + "\n", + "class QualifiedNameResolver:\n", + " def __init__(self, aliases: dict[str, str]):\n", + " self.aliases = aliases\n", + "\n", + " def resolve(self, node: ast.AST | None) -> str | None:\n", + " if node is None:\n", + " return None\n", + " if isinstance(node, ast.Name):\n", + " return self.aliases.get(node.id, node.id)\n", + " if isinstance(node, ast.Attribute):\n", + " base = self.resolve(node.value)\n", + " if base is None:\n", + " return None\n", + " return f\"{base}.{node.attr}\"\n", + " return None\n", + "\n", + "\n", + "@dataclass\n", + "class CallSignature:\n", + " qualified_names: tuple[str, ...]\n", + " positional_params: tuple[str, ...] = ()\n", + " keyword_aliases: dict[str, str] = field(default_factory=dict)\n", + "\n", + "\n", + "class CallArgumentBinder:\n", + " def bind(self, call: ast.Call, sig: CallSignature) -> dict[str, ast.AST]:\n", + " bound: dict[str, ast.AST] = {}\n", + " for idx, arg in enumerate(call.args):\n", + " if idx < len(sig.positional_params):\n", + " bound[sig.positional_params[idx]] = arg\n", + " for kw in call.keywords:\n", + " if kw.arg is None:\n", + " continue\n", + " canonical = sig.keyword_aliases.get(kw.arg, kw.arg)\n", + " bound[canonical] = kw.value\n", + " return bound\n", + "\n", + "\n", + "class StageSemanticFacts:\n", + " def __init__(self, fn: ast.FunctionDef, resolver: QualifiedNameResolver):\n", + " self.fn = fn\n", + " self.resolver = resolver\n", + " self.calls: list[ast.Call] = []\n", + " self.assignments: list[ast.Assign] = []\n", + " self.returns: list[ast.Return] = []\n", + " self.name_to_value: dict[str, ast.AST] = {}\n", + " self._scan()\n", + "\n", + " def _scan(self):\n", + " for stmt in self.fn.body:\n", + " if isinstance(stmt, ast.Assign):\n", + " self.assignments.append(stmt)\n", + " if len(stmt.targets) == 1 and isinstance(stmt.targets[0], ast.Name):\n", + " self.name_to_value[stmt.targets[0].id] = stmt.value\n", + " elif isinstance(stmt, ast.Return):\n", + " self.returns.append(stmt)\n", + " for node in ast.walk(stmt):\n", + " if isinstance(node, ast.Call):\n", + " self.calls.append(node)\n", + "\n", + " def call_qname(self, call: ast.Call) -> str | None:\n", + " return self.resolver.resolve(call.func)\n", + "\n", + " def all_call_names(self) -> list[str]:\n", + " out = []\n", + " for call in self.calls:\n", + " name = self.call_qname(call)\n", + " if name:\n", + " out.append(name)\n", + " return out\n", + "\n", + " def final_return_value(self) -> ast.AST | None:\n", + " for stmt in reversed(self.fn.body):\n", + " if isinstance(stmt, ast.Return):\n", + " return stmt.value\n", + " return None\n", + "\n", + "\n", + "class NativeMatchContext:\n", + " def __init__(self, stage: StageInvocation, fn: ast.FunctionDef, facts: StageSemanticFacts,\n", + " input_columns: list[dict[str, str]], const_env: dict[str, ast.AST]):\n", + " self.stage = stage\n", + " self.fn = fn\n", + " self.facts = facts\n", + " self.input_columns = input_columns\n", + " self.const_env = const_env\n", + "\n", + " @property\n", + " def input_column_names(self) -> list[str]:\n", + " return [c.get('attributeName', '') for c in self.input_columns if c.get('attributeName')]\n", + "\n", + " def resolve_const(self, node: ast.AST | None) -> ast.AST | None:\n", + " if isinstance(node, ast.Name) and node.id in self.const_env:\n", + " return self.const_env[node.id]\n", + " return node\n", + "\n", + " def const_value(self, node: ast.AST | None) -> Any:\n", + " node = self.resolve_const(node)\n", + " if isinstance(node, ast.Constant):\n", + " return node.value\n", + " return None\n", + "\n", + " def subscript_column(self, node: ast.AST | None) -> str | None:\n", + " if isinstance(node, ast.Subscript):\n", + " sl = node.slice\n", + " if isinstance(sl, ast.Constant) and isinstance(sl.value, str):\n", + " return sl.value\n", + " return None\n", + "\n", + "\n", + "class NativeMatcher:\n", + " def match(self, ctx: NativeMatchContext) -> NativeOperatorMatch | None:\n", + " raise NotImplementedError\n", + "\n", + "\n", + "class PandasReadCsvMatcher(NativeMatcher):\n", + " SIG = CallSignature(\n", + " qualified_names=('pandas.read_csv', 'pd.read_csv'),\n", + " positional_params=('filepath_or_buffer',),\n", + " keyword_aliases={'filepath_or_buffer': 'filepath_or_buffer', 'sep': 'sep', 'delimiter': 'sep', 'header': 'header'},\n", + " )\n", + "\n", + " def __init__(self):\n", + " self.binder = CallArgumentBinder()\n", + "\n", + " def match(self, ctx: NativeMatchContext) -> NativeOperatorMatch | None:\n", + " if not ctx.stage.is_source:\n", + " return None\n", + " for call in ctx.facts.calls:\n", + " qn = ctx.facts.call_qname(call)\n", + " if qn not in self.SIG.qualified_names:\n", + " continue\n", + " args = self.binder.bind(call, self.SIG)\n", + " file_node = ctx.resolve_const(args.get('filepath_or_buffer'))\n", + " file_value = ctx.const_value(file_node)\n", + " if isinstance(file_value, str) and file_value:\n", + " file_name = file_value\n", + " elif file_node is not None:\n", + " file_name = ast.unparse(file_node)\n", + " else:\n", + " file_name = ''\n", + " sep = ctx.const_value(args.get('sep')) or ','\n", + " header = args.get('header')\n", + " has_header = ctx.const_value(header)\n", + " if has_header is None:\n", + " has_header = True\n", + " props = {\n", + " 'fileEncoding': 'UTF_8',\n", + " 'customDelimiter': sep,\n", + " 'hasHeader': bool(has_header),\n", + " 'fileName': file_name,\n", + " }\n", + " return NativeOperatorMatch(\n", + " operator_type='CSVFileScan',\n", + " properties=props,\n", + " display_name='CSV File Scan',\n", + " confidence=0.99,\n", + " output_columns=ctx.stage.source_columns or None,\n", + " retain_input_columns=False,\n", + " notes=['Matched pandas.read_csv to CSVFileScan'],\n", + " )\n", + " return None\n", + "\n", + "\n", + "class HistPlotMatcher(NativeMatcher):\n", + " def match(self, ctx: NativeMatchContext) -> NativeOperatorMatch | None:\n", + " for call in ctx.facts.calls:\n", + " qn = ctx.facts.call_qname(call)\n", + " col = None\n", + " if qn in ('matplotlib.pyplot.hist', 'plt.hist') and call.args:\n", + " col = ctx.subscript_column(call.args[0])\n", + " elif qn in ('seaborn.histplot', 'sns.histplot'):\n", + " for kw in call.keywords:\n", + " if kw.arg == 'x':\n", + " if isinstance(kw.value, ast.Constant) and isinstance(kw.value.value, str):\n", + " col = kw.value.value\n", + " else:\n", + " col = ctx.subscript_column(kw.value)\n", + " elif qn in ('plotly.express.histogram', 'px.histogram'):\n", + " for kw in call.keywords:\n", + " if kw.arg in ('x', 'y') and isinstance(kw.value, ast.Constant) and isinstance(kw.value.value, str):\n", + " col = kw.value.value\n", + " break\n", + " elif qn is None and isinstance(call.func, ast.Attribute) and call.func.attr == 'plot':\n", + " base = call.func.value\n", + " if isinstance(base, ast.Call) and isinstance(base.func, ast.Attribute) and base.func.attr == 'dropna':\n", + " if call.keywords:\n", + " for kw in call.keywords:\n", + " if kw.arg == 'kind' and isinstance(kw.value, ast.Constant) and kw.value.value == 'hist':\n", + " col = ctx.subscript_column(base.func.value)\n", + " break\n", + " if col:\n", + " return NativeOperatorMatch(\n", + " operator_type='Histogram',\n", + " properties={'value': col},\n", + " display_name='Histogram',\n", + " confidence=0.95,\n", + " output_columns=ctx.input_columns,\n", + " retain_input_columns=True,\n", + " notes=[f'Matched histogram on column {col!r}'],\n", + " )\n", + " return None\n", + "\n", + "\n", + "class ScatterPlotMatcher(NativeMatcher):\n", + " def match(self, ctx: NativeMatchContext) -> NativeOperatorMatch | None:\n", + " for call in ctx.facts.calls:\n", + " qn = ctx.facts.call_qname(call)\n", + " x = y = None\n", + " if qn in ('matplotlib.pyplot.scatter', 'plt.scatter') and len(call.args) >= 2:\n", + " x = ctx.subscript_column(call.args[0])\n", + " y = ctx.subscript_column(call.args[1])\n", + " elif qn in ('seaborn.scatterplot', 'sns.scatterplot'):\n", + " for kw in call.keywords:\n", + " if kw.arg == 'x':\n", + " x = kw.value.value if isinstance(kw.value, ast.Constant) else ctx.subscript_column(kw.value)\n", + " elif kw.arg == 'y':\n", + " y = kw.value.value if isinstance(kw.value, ast.Constant) else ctx.subscript_column(kw.value)\n", + " elif qn in ('plotly.express.scatter', 'px.scatter'):\n", + " for kw in call.keywords:\n", + " if kw.arg == 'x' and isinstance(kw.value, ast.Constant):\n", + " x = kw.value.value\n", + " elif kw.arg == 'y' and isinstance(kw.value, ast.Constant):\n", + " y = kw.value.value\n", + " if x and y:\n", + " return NativeOperatorMatch(\n", + " operator_type='Scatterplot',\n", + " properties={'xColumn': x, 'yColumn': y, 'alpha': 1.0, 'xLogScale': False, 'yLogScale': False},\n", + " display_name='Scatter Plot',\n", + " confidence=0.95,\n", + " output_columns=ctx.input_columns,\n", + " retain_input_columns=True,\n", + " notes=[f'Matched scatter plot on {x!r}, {y!r}'],\n", + " )\n", + " return None\n", + "\n", + "\n", + "class PieChartMatcher(NativeMatcher):\n", + " def match(self, ctx: NativeMatchContext) -> NativeOperatorMatch | None:\n", + " for call in ctx.facts.calls:\n", + " qn = ctx.facts.call_qname(call)\n", + " value = name = None\n", + " if qn in ('matplotlib.pyplot.pie', 'plt.pie') and call.args:\n", + " value = ctx.subscript_column(call.args[0])\n", + " for kw in call.keywords:\n", + " if kw.arg == 'labels':\n", + " name = ctx.subscript_column(kw.value)\n", + " elif qn in ('plotly.express.pie', 'px.pie'):\n", + " for kw in call.keywords:\n", + " if kw.arg == 'values' and isinstance(kw.value, ast.Constant):\n", + " value = kw.value.value\n", + " elif kw.arg == 'names' and isinstance(kw.value, ast.Constant):\n", + " name = kw.value.value\n", + " if value and name:\n", + " return NativeOperatorMatch(\n", + " operator_type='PieChart',\n", + " properties={'value': value, 'name': name},\n", + " display_name='Pie Chart',\n", + " confidence=0.93,\n", + " output_columns=ctx.input_columns,\n", + " retain_input_columns=True,\n", + " )\n", + " return None\n", + "\n", + "\n", + "class WordCloudMatcher(NativeMatcher):\n", + " def match(self, ctx: NativeMatchContext) -> NativeOperatorMatch | None:\n", + " # Look for WordCloud().generate(_from_text)?(table['col'])\n", + " for call in ctx.facts.calls:\n", + " qn = ctx.facts.call_qname(call)\n", + " if qn not in ('wordcloud.WordCloud', 'WordCloud'):\n", + " continue\n", + " generated_col = None\n", + " top_n = 200\n", + " for kw in call.keywords:\n", + " if kw.arg in ('max_words', 'top_n'):\n", + " v = ctx.const_value(kw.value)\n", + " if isinstance(v, int):\n", + " top_n = v\n", + " # search users of constructor result\n", + " for node in ast.walk(ctx.fn):\n", + " if isinstance(node, ast.Call) and isinstance(node.func, ast.Attribute) and node.func.attr in ('generate', 'generate_from_text') and node.args:\n", + " generated_col = ctx.subscript_column(node.args[0])\n", + " if generated_col:\n", + " return NativeOperatorMatch(\n", + " operator_type='WordCloud',\n", + " properties={'topN': top_n, 'textColumn': generated_col},\n", + " display_name='Word Cloud',\n", + " confidence=0.92,\n", + " output_columns=ctx.input_columns,\n", + " retain_input_columns=True,\n", + " )\n", + " return None\n", + "\n", + "\n", + "class NativeOperatorKnowledgeBase:\n", + " def __init__(self):\n", + " self.matchers: list[NativeMatcher] = [\n", + " PandasReadCsvMatcher(),\n", + " HistPlotMatcher(),\n", + " ScatterPlotMatcher(),\n", + " PieChartMatcher(),\n", + " WordCloudMatcher(),\n", + " ]\n", + "\n", + " def match(self, ctx: NativeMatchContext) -> NativeOperatorMatch | None:\n", + " best: NativeOperatorMatch | None = None\n", + " for matcher in self.matchers:\n", + " match = matcher.match(ctx)\n", + " if match is not None and (best is None or match.confidence > best.confidence):\n", + " best = match\n", + " return best\n", + "\n", + "\n", + "class NativeStagePlanner:\n", + " def __init__(self, catalog: NativeOperatorCatalog | None = None):\n", + " self.catalog = catalog or NativeOperatorCatalog()\n", + " self.aliases = ImportAliasIndex()\n", + " self.knowledge = NativeOperatorKnowledgeBase()\n", + "\n", + " def plan(self, tree: ast.Module, fn: ast.FunctionDef, stage: StageInvocation,\n", + " input_columns: list[dict[str, str]], const_env: dict[str, ast.AST]) -> NativeOperatorMatch | None:\n", + " alias_map = self.aliases.build(tree)\n", + " resolver = QualifiedNameResolver(alias_map)\n", + " facts = StageSemanticFacts(fn, resolver)\n", + " ctx = NativeMatchContext(stage, fn, facts, input_columns, const_env)\n", + " match = self.knowledge.match(ctx)\n", + " if match is None:\n", + " return None\n", + " if not self.catalog.has(match.operator_type):\n", + " return None\n", + " return match\n", + "\n", + "\n", + "# =============================\n", + "# Override workflow builders with native support\n", + "# =============================\n", + "\n", + "class WorkflowOperatorBuilder:\n", + " def __init__(self, native_catalog: NativeOperatorCatalog | None = None):\n", + " self.native_catalog = native_catalog or NativeOperatorCatalog()\n", + "\n", + " def _operator_properties(self, stage: StageInvocation) -> dict[str, Any]:\n", + " if getattr(stage, 'native_operator_type', None):\n", + " props = copy.deepcopy(getattr(stage, 'native_operator_properties', {}) or {})\n", + " return props\n", + " props: dict[str, Any] = {\n", + " 'code': stage.code,\n", + " 'workers': 1,\n", + " }\n", + " if stage.operator_type == 'PythonUDFSourceV2':\n", + " if stage.source_columns:\n", + " props['columns'] = stage.source_columns\n", + " else:\n", + " props['retainInputColumns'] = stage.retain_input_columns\n", + " if stage.output_columns:\n", + " props['outputColumns'] = stage.output_columns\n", + " return props\n", + "\n", + " def _input_ports(self, stage: StageInvocation) -> list[dict[str, Any]]:\n", + " if getattr(stage, 'native_operator_type', None):\n", + " template = self.native_catalog.template(stage.native_operator_type)\n", + " ports = copy.deepcopy(template.get('inputPorts', []))\n", + " count = len(stage.data_inputs)\n", + " if count and len(ports) >= count:\n", + " for i in range(count):\n", + " if i < len(ports):\n", + " ports[i]['portID'] = f'input-{i}'\n", + " if count > 1 and i < len(stage.data_inputs):\n", + " ports[i]['displayName'] = stage.data_inputs[i].param_name\n", + " ports[i]['dependencies'] = [] if i == 0 else [{'id': i - 1, 'internal': False}]\n", + " return ports[:count]\n", + " return ports\n", + " if stage.is_source:\n", + " return []\n", + " count = max(1, len(stage.data_inputs))\n", + " ports = []\n", + " for i in range(count):\n", + " display_name = ''\n", + " if count > 1 and i < len(stage.data_inputs):\n", + " display_name = stage.data_inputs[i].param_name\n", + " dependencies: list[dict[str, Any]] = []\n", + " if count > 1 and i > 0:\n", + " dependencies = [{'id': i - 1, 'internal': False}]\n", + " ports.append({\n", + " 'portID': f'input-{i}',\n", + " 'displayName': display_name,\n", + " 'allowMultiInputs': True,\n", + " 'isDynamicPort': False,\n", + " 'dependencies': dependencies,\n", + " })\n", + " return ports\n", + "\n", + " def _dynamic_ports_flags(self, stage: StageInvocation) -> tuple[bool, bool]:\n", + " if getattr(stage, 'native_operator_type', None):\n", + " template = self.native_catalog.template(stage.native_operator_type)\n", + " return bool(template.get('dynamicInputPorts', False)), bool(template.get('dynamicOutputPorts', False))\n", + " if stage.is_source:\n", + " return False, False\n", + " if stage.operator_type == 'DualInputPortsPythonUDFV2':\n", + " return False, False\n", + " return True, True\n", + "\n", + " def build(self, stage: StageInvocation, view_result: bool = False) -> dict[str, Any]:\n", + " if getattr(stage, 'native_operator_type', None):\n", + " template = self.native_catalog.template(stage.native_operator_type)\n", + " template['operatorID'] = stage.operator_id\n", + " template['operatorType'] = stage.native_operator_type\n", + " template['operatorVersion'] = 'N/A'\n", + " template['operatorProperties'] = self._operator_properties(stage)\n", + " template['inputPorts'] = self._input_ports(stage)\n", + " template['outputPorts'] = copy.deepcopy(template.get('outputPorts', [\n", + " {'portID': 'output-0', 'displayName': '', 'allowMultiInputs': False, 'isDynamicPort': False}\n", + " ]))\n", + " template['customDisplayName'] = stage.display_name\n", + " if view_result:\n", + " template['viewResult'] = True\n", + " return template\n", + "\n", + " dynamic_input_ports, dynamic_output_ports = self._dynamic_ports_flags(stage)\n", + " operator = {\n", + " 'operatorID': stage.operator_id,\n", + " 'operatorType': stage.operator_type,\n", + " 'operatorVersion': 'N/A',\n", + " 'operatorProperties': self._operator_properties(stage),\n", + " 'inputPorts': self._input_ports(stage),\n", + " 'outputPorts': [\n", + " {'portID': 'output-0', 'displayName': '', 'allowMultiInputs': False, 'isDynamicPort': False}\n", + " ],\n", + " 'showAdvanced': False,\n", + " 'isDisabled': False,\n", + " 'customDisplayName': stage.display_name,\n", + " 'dynamicInputPorts': dynamic_input_ports,\n", + " 'dynamicOutputPorts': dynamic_output_ports,\n", + " }\n", + " if view_result:\n", + " operator['viewResult'] = True\n", + " return operator\n", + "\n", + "\n", + "class WorkflowJsonAssembler:\n", + " def __init__(self, native_catalog: NativeOperatorCatalog | None = None):\n", + " self.operator_builder = WorkflowOperatorBuilder(native_catalog=native_catalog)\n", + " self.link_builder = WorkflowLinkBuilder()\n", + " self.layout_builder = WorkflowLayoutBuilder()\n", + "\n", + " def assemble(self, stages: list[StageInvocation]) -> dict[str, Any]:\n", + " operators = [\n", + " self.operator_builder.build(stage, view_result=(i == len(stages) - 1))\n", + " for i, stage in enumerate(stages)\n", + " ]\n", + " return {\n", + " 'operators': operators,\n", + " 'operatorPositions': self.layout_builder.build_positions(stages),\n", + " 'links': self.link_builder.build_links(stages),\n", + " 'commentBoxes': [],\n", + " 'settings': {'dataTransferBatchSize': 400},\n", + " }\n", + "\n", + "\n", + "class WorkflowTranslator:\n", + " def __init__(self, catalog_json_path: str | Path | None = None):\n", + " self.parser = SourceModuleParser()\n", + " self.imports = ImportCollector()\n", + " self.functions = FunctionIndex()\n", + " self.call_graph = CallGraphBuilder()\n", + " self.recursion = RecursiveAnalyzer()\n", + " self.facts = FunctionFactsAnalyzer()\n", + " self.constant_env = ConstantEnvBuilder()\n", + " self.dag_extractor = EntryDagExtractor()\n", + " self.ids = WorkflowIdFactory()\n", + " self.code_emitter = FunctionBodyCompiler()\n", + " self.catalog = NativeOperatorCatalog(catalog_json_path)\n", + " self.native_planner = NativeStagePlanner(self.catalog)\n", + " self.workflow = WorkflowJsonAssembler(native_catalog=self.catalog)\n", + " self.schema_inferer = SourceSchemaInferer()\n", + " self.table_schema_inferer = TableOutputSchemaInferer()\n", + "\n", + " def translate(self, source: str, entry: str = 'main') -> dict[str, Any]:\n", + " tree = self.parser.parse(source)\n", + " import_nodes = self.imports.collect_nodes(tree)\n", + " functions = self.functions.collect(tree)\n", + " if entry not in functions:\n", + " raise ValueError(f\"Entry function {entry!r} not found. Available: {sorted(functions)}\")\n", + "\n", + " graph = self.call_graph.build(functions)\n", + " recursive = self.recursion.detect(graph)\n", + " facts = self.facts.analyze(tree, functions, graph, recursive)\n", + " const_env = self.constant_env.build(functions[entry])\n", + " stages = self.dag_extractor.extract(functions[entry], functions, facts, const_env)\n", + " if not stages:\n", + " raise ValueError(f\"Entry function {entry!r} does not contain a detectable pipeline of helper calls.\")\n", + "\n", + " stage_by_id: dict[str, StageInvocation] = {s.stage_id: s for s in stages}\n", + " selector = UdfBaseSelector()\n", + " for stage in stages:\n", + " fn = functions[stage.function_name]\n", + " if len(stage.data_inputs) > 2:\n", + " raise ValueError(f\"Current workflow JSON emitter supports at most 2 data inputs per stage, got {len(stage.data_inputs)} for {stage.function_name!r}.\")\n", + " stage.display_name = ' '.join(part.capitalize() for part in stage.function_name.split('_'))\n", + " # default UDF path\n", + " stage.operator_type = selector.workflow_operator_type(stage.family, stage.is_source, len(stage.data_inputs))\n", + " stage.operator_id = self.ids.operator_id(stage.operator_type)\n", + " stage.source_columns = self.schema_inferer.infer(fn, stage)\n", + " if stage.family == 'table':\n", + " input_columns: list[dict[str, str]] = []\n", + " for di in stage.data_inputs:\n", + " upstream = stage_by_id[di.upstream_stage_id]\n", + " input_columns.extend(getattr(upstream, 'output_columns', []) or getattr(upstream, 'source_columns', []))\n", + " if stage.is_source:\n", + " stage.output_columns = list(stage.source_columns)\n", + " stage.retain_input_columns = False\n", + " else:\n", + " stage.output_columns, stage.retain_input_columns = self.table_schema_inferer.infer(fn, stage, input_columns)\n", + " else:\n", + " input_columns = []\n", + "\n", + " native_match = self.native_planner.plan(tree, fn, stage, input_columns, const_env)\n", + " if native_match is not None:\n", + " stage.native_operator_type = native_match.operator_type\n", + " stage.native_operator_properties = native_match.properties\n", + " stage.native_notes = native_match.notes\n", + " stage.operator_type = native_match.operator_type\n", + " stage.operator_id = self.ids.operator_id(native_match.operator_type)\n", + " if native_match.display_name:\n", + " stage.display_name = native_match.display_name if stage.is_source else stage.display_name\n", + " if native_match.output_columns is not None:\n", + " stage.output_columns = native_match.output_columns\n", + " if stage.is_source:\n", + " stage.source_columns = native_match.output_columns\n", + " if native_match.retain_input_columns is not None:\n", + " stage.retain_input_columns = native_match.retain_input_columns\n", + " stage.code = ''\n", + " else:\n", + " if stage.operator_type == 'PythonUDFSourceV2' and stage.family == 'table' and not stage.source_columns:\n", + " raise ValueError(\n", + " f\"Could not infer output columns for source stage {stage.function_name!r}. \"\n", + " 'Make the source schema explicit or use a source that can be sampled at translation time.'\n", + " )\n", + " stage.code = self.code_emitter.emit_class(import_nodes, fn, stage)\n", + "\n", + " workflow_json = self.workflow.assemble(stages)\n", + " metadata = {\n", + " 'entry': entry,\n", + " 'catalog_path': str(self.catalog.catalog_json_path) if self.catalog.catalog_json_path else None,\n", + " 'stages': [\n", + " {\n", + " 'stage_id': s.stage_id,\n", + " 'function': s.function_name,\n", + " 'operatorID': s.operator_id,\n", + " 'operator_type': s.operator_type,\n", + " 'native_operator_type': getattr(s, 'native_operator_type', None),\n", + " 'family': s.family,\n", + " 'base_class': None if getattr(s, 'native_operator_type', None) else selector.select(s.family, s.is_source)[1],\n", + " 'method': None if getattr(s, 'native_operator_type', None) else selector.select(s.family, s.is_source)[2],\n", + " 'is_source': s.is_source,\n", + " 'is_sink': s.is_sink,\n", + " 'recursive': s.recursive,\n", + " 'has_loop': s.has_loop,\n", + " 'assigned_to': s.assigned_to,\n", + " 'data_inputs': [\n", + " {\n", + " 'param_name': di.param_name,\n", + " 'upstream_stage_id': di.upstream_stage_id,\n", + " 'upstream_var': di.upstream_var,\n", + " 'input_port': di.input_port,\n", + " }\n", + " for di in s.data_inputs\n", + " ],\n", + " 'ui_parameters': [\n", + " {\n", + " 'name': p.name,\n", + " 'attr_type': p.attr_type,\n", + " 'default': ast.unparse(p.default_ast) if p.default_ast is not None else None,\n", + " }\n", + " for p in s.ui_params\n", + " ],\n", + " 'source_columns': s.source_columns,\n", + " 'output_columns': s.output_columns,\n", + " 'retain_input_columns': s.retain_input_columns,\n", + " 'native_notes': getattr(s, 'native_notes', []),\n", + " }\n", + " for s in stages\n", + " ],\n", + " }\n", + " return {'workflow_json': workflow_json, 'metadata': metadata}\n", + "\n", + "\n", + "def translate_to_texera_workflow_json(source: str, entry: str = 'main', catalog_json_path: str | Path | None = None) -> dict[str, Any]:\n", + " return WorkflowTranslator(catalog_json_path=catalog_json_path).translate(source, entry=entry)\n", + "\n", + "# =============================\n", + "# Native matcher extensions added in v15\n", + "# =============================\n", + "\n", + "class TimeSeriesPlotMatcher(NativeMatcher):\n", + " \"\"\"Match simple matplotlib/seaborn/plotly line plots over a column pair.\n", + "\n", + " Conservative mapping:\n", + " plt.plot(table['date'], table['close']) -> TimeSeriesPlot\n", + " We avoid LineChart here because the catalog template exposes a less explicit\n", + " nested `lines` shape, while TimeSeriesPlot has a stable flat property schema.\n", + " \"\"\"\n", + "\n", + " def match(self, ctx: NativeMatchContext) -> NativeOperatorMatch | None:\n", + " for call in ctx.facts.calls:\n", + " qn = ctx.facts.call_qname(call)\n", + " x = y = None\n", + "\n", + " if qn in ('matplotlib.pyplot.plot', 'plt.plot') and len(call.args) >= 2:\n", + " x = ctx.subscript_column(call.args[0])\n", + " y = ctx.subscript_column(call.args[1])\n", + " elif qn in ('seaborn.lineplot', 'sns.lineplot'):\n", + " for kw in call.keywords:\n", + " if kw.arg == 'x':\n", + " x = kw.value.value if isinstance(kw.value, ast.Constant) and isinstance(kw.value.value, str) else ctx.subscript_column(kw.value)\n", + " elif kw.arg == 'y':\n", + " y = kw.value.value if isinstance(kw.value, ast.Constant) and isinstance(kw.value.value, str) else ctx.subscript_column(kw.value)\n", + " elif qn in ('plotly.express.line', 'px.line'):\n", + " for kw in call.keywords:\n", + " if kw.arg == 'x' and isinstance(kw.value, ast.Constant) and isinstance(kw.value.value, str):\n", + " x = kw.value.value\n", + " elif kw.arg == 'y' and isinstance(kw.value, ast.Constant) and isinstance(kw.value.value, str):\n", + " y = kw.value.value\n", + "\n", + " if x and y:\n", + " return NativeOperatorMatch(\n", + " operator_type='TimeSeriesPlot',\n", + " properties={\n", + " 'timeColumn': x,\n", + " 'valueColumn': y,\n", + " 'line': y,\n", + " 'facetColumn': 'No Selection',\n", + " 'categoryColumn': 'No Selection',\n", + " 'slider': False,\n", + " },\n", + " display_name='Time Series Plot',\n", + " confidence=0.96,\n", + " output_columns=ctx.input_columns,\n", + " retain_input_columns=True,\n", + " notes=[f'Matched line/time-series plot on x={x!r}, y={y!r}'],\n", + " )\n", + " return None\n", + "\n", + "\n", + "class NativeOperatorKnowledgeBase:\n", + " def __init__(self):\n", + " self.matchers: list[NativeMatcher] = [\n", + " PandasReadCsvMatcher(),\n", + " TimeSeriesPlotMatcher(),\n", + " HistPlotMatcher(),\n", + " ScatterPlotMatcher(),\n", + " PieChartMatcher(),\n", + " WordCloudMatcher(),\n", + " ]\n", + "\n", + " def match(self, ctx: NativeMatchContext) -> NativeOperatorMatch | None:\n", + " best: NativeOperatorMatch | None = None\n", + " for matcher in self.matchers:\n", + " match = matcher.match(ctx)\n", + " if match is not None and (best is None or match.confidence > best.confidence):\n", + " best = match\n", + " return best\n", + "if __name__ == \"__main__\":\n", + " result = translate_to_texera_workflow_json(sample, entry=\"main\", catalog_json_path=\"catalog.json\")\n", + " paths = write_translation(result, \"demo_texera_workflow_vx2\")\n", + " print(json.dumps(paths, indent=2))" + ], + "id": "419833dbad71acdf", + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\n", + " \"workflow_json\": \"demo_texera_workflow_vx2.workflow.json\",\n", + " \"workflow_metadata\": \"demo_texera_workflow_vx2.workflow.meta.json\"\n", + "}\n" + ] + } + ], + "execution_count": 52 + }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2026-03-04T07:44:16.497856Z", + "start_time": "2026-03-04T07:44:15.182307Z" + } + }, + "cell_type": "code", + "source": "", + "id": "a8549cb2873a7b65", + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\n", + " \"workflow_json\": \"demo_texera_workflow_vx2.workflow.json\",\n", + " \"workflow_metadata\": \"demo_texera_workflow_vx2.workflow.meta.json\"\n", + "}\n" + ] + } + ], + "execution_count": 40 + }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2026-03-04T05:37:27.140055Z", + "start_time": "2026-03-04T05:37:27.135017Z" + } + }, + "cell_type": "code", + "source": [ + "sample = '''\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "\n", + "def extract_data(url: str) -> pd.DataFrame:\n", + " df = pd.read_csv(url)\n", + " print(\"Step 1: Extract\")\n", + " print(df.head())\n", + " return df\n", + "\n", + "def select_columns(df: pd.DataFrame) -> pd.DataFrame:\n", + " selected = df[[\"date\", \"open\", \"high\", \"low\", \"close\", \"volume\"]].copy()\n", + " print(\"\\\\nStep 2: Select columns\")\n", + " print(selected.head())\n", + " return selected\n", + "\n", + "def clean_data(df: pd.DataFrame) -> pd.DataFrame:\n", + " cleaned = df.dropna().copy()\n", + " print(\"\\\\nStep 3: Clean data\")\n", + " print(cleaned.head())\n", + " return cleaned\n", + "\n", + "def transform_data(df: pd.DataFrame) -> pd.DataFrame:\n", + " transformed = df.copy()\n", + " transformed[\"date\"] = pd.to_datetime(transformed[\"date\"], errors=\"coerce\")\n", + " transformed = transformed.dropna(subset=[\"date\"]).copy()\n", + " transformed = transformed.sort_values(\"date\")\n", + " transformed[\"daily_return\"] = transformed[\"close\"].pct_change() * 100\n", + " transformed[\"ma_30\"] = transformed[\"close\"].rolling(window=30).mean()\n", + " print(\"\\\\nStep 4: Transform data\")\n", + " print(transformed.head())\n", + " return transformed\n", + "\n", + "def load_data(df: pd.DataFrame, output_file: str) -> None:\n", + " df.to_csv(output_file, index=False)\n", + " print(f\"\\\\nStep 5: Load data\")\n", + " print(f\"Saved cleaned data to: {output_file}\")\n", + "\n", + "def plot_data(df: pd.DataFrame) -> None:\n", + " plt.figure(figsize=(10, 5))\n", + " plt.plot(df[\"date\"], df[\"close\"])\n", + " plt.show()\n", + "\n", + "def main():\n", + " url = \"https://raw.githubusercontent.com/vega/vega-datasets/main/data/sp500-2000.csv\"\n", + " output_file = \"clean_sp500_2000.csv\"\n", + "\n", + " raw_df = extract_data(url)\n", + " selected_df = select_columns(raw_df)\n", + " cleaned_df = clean_data(selected_df)\n", + " transformed_df = transform_data(cleaned_df)\n", + " load_data(transformed_df, output_file)\n", + " plot_data(transformed_df)'''" + ], + "id": "85c4fdcfef2fa543", + "outputs": [], + "execution_count": 7 + }, + { + "metadata": {}, + "cell_type": "code", + "outputs": [], + "execution_count": null, + "source": "", + "id": "ab7e07559b2247ee" + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 4a5686154c01b7811c276b2ae2f89d92cf0385ec Mon Sep 17 00:00:00 2001 From: Carlos Ernesto Alvarez Berumen Date: Sat, 7 Mar 2026 00:17:37 -0600 Subject: [PATCH 05/12] v2.1 --- .../operator-property-edit-frame.component.ts | 41 ++++--------------- 1 file changed, 8 insertions(+), 33 deletions(-) diff --git a/frontend/src/app/workspace/component/property-editor/operator-property-edit-frame/operator-property-edit-frame.component.ts b/frontend/src/app/workspace/component/property-editor/operator-property-edit-frame/operator-property-edit-frame.component.ts index 300c5bfcbab..e98193c9924 100644 --- a/frontend/src/app/workspace/component/property-editor/operator-property-edit-frame/operator-property-edit-frame.component.ts +++ b/frontend/src/app/workspace/component/property-editor/operator-property-edit-frame/operator-property-edit-frame.component.ts @@ -200,41 +200,16 @@ export class OperatorPropertyEditFrameComponent implements OnInit, OnChanges, On .subscribe(({ operatorId, parameters }) => { if (operatorId !== this.currentOperatorId) return; - const readCurrentUiParams = () => - this.workflowActionService.getTexeraGraph().getOperator(operatorId).operatorProperties?.uiParameters ?? []; + const currentOperator = this.workflowActionService.getTexeraGraph().getOperator(operatorId); - // initial read - let currentUiParams = readCurrentUiParams(); - - // max attempts = abs(prevLen - newLen), with sane bounds - const diffLen = Math.abs((currentUiParams?.length ?? 0) - (parameters?.length ?? 0)); - const MAX_ATTEMPTS = Math.min(Math.max(diffLen, 1), 20); - - let attempts = 0; - - while (!isEqual(currentUiParams, parameters) && attempts < MAX_ATTEMPTS) { - const currentOperator = this.workflowActionService.getTexeraGraph().getOperator(operatorId); - - const newModel = { - ...cloneDeep(currentOperator.operatorProperties), - uiParameters: cloneDeep(parameters), - }; - - this.listeningToChange = false; - this.workflowActionService.setOperatorProperty(operatorId, newModel); - this.listeningToChange = true; - - // re-read after mutation - currentUiParams = readCurrentUiParams(); - attempts++; - } + const newModel = { + ...cloneDeep(currentOperator.operatorProperties), + uiParameters: cloneDeep(parameters), + }; - if (!isEqual(currentUiParams, parameters)) { - console.warn(`uiParameters did not converge after ${attempts}/${MAX_ATTEMPTS} attempts`, { - currentLen: currentUiParams.length, - targetLen: parameters.length, - }); - } + this.listeningToChange = false; + this.workflowActionService.setOperatorProperty(operatorId, newModel); + this.listeningToChange = true; }); } From 5aa3f4e26e135b776e4425be4825b95353840741 Mon Sep 17 00:00:00 2001 From: Carlos Ernesto Alvarez Berumen Date: Sat, 7 Mar 2026 01:54:49 -0600 Subject: [PATCH 06/12] vnt --- .../amber/pybuilder/EncodableInspector.scala | 16 +++------------- .../pybuilder/EncodableStringAnnotation.java | 3 +-- .../python/PythonUdfUiParameterInjector.scala | 18 ++++++++++++++++++ .../PythonUdfUiParameterInjectorSpec.scala | 18 ++++++++++++++++++ .../ui-udf-parameters.component.html | 18 ++++++++++++++++++ .../ui-udf-parameters.component.ts | 18 ++++++++++++++++++ .../ui-udf-parameters-sync.service.ts | 18 ++++++++++++++++++ 7 files changed, 94 insertions(+), 15 deletions(-) diff --git a/common/pybuilder/src/main/scala/org/apache/texera/amber/pybuilder/EncodableInspector.scala b/common/pybuilder/src/main/scala/org/apache/texera/amber/pybuilder/EncodableInspector.scala index 9362016c72f..58bdcb649ec 100644 --- a/common/pybuilder/src/main/scala/org/apache/texera/amber/pybuilder/EncodableInspector.scala +++ b/common/pybuilder/src/main/scala/org/apache/texera/amber/pybuilder/EncodableInspector.scala @@ -46,7 +46,7 @@ final class EncodableInspector[C <: blackbox.Context](val c: C) { // Keep this as a string so it also works if the annotation is referenced indirectly. private val encodableStringAnnotationFqn = - "org.apache.texera.amber.pybuilder.EncodableStringAnnotation" + "org.apache.texera.amber.EncodableStringAnn" /** * If we are pointing at a getter/accessor, hop to its accessed field symbol when possible. @@ -110,20 +110,10 @@ final class EncodableInspector[C <: blackbox.Context](val c: C) { val symHasAnn = rawSym != null && rawSym != NoSymbol && { val accessed = safeAccessed(rawSym) - accessed != null && accessed != NoSymbol && - accessed.annotations.exists(annIsEncodableString) + accessed != null && accessed != NoSymbol && accessed.annotations.exists(annIsEncodableString) } - val methodReturnHasAnn = - rawSym != null && rawSym != NoSymbol && (rawSym match { - case m: MethodSymbol => - typeHasEncodableString(m.typeSignature.finalResultType) - case _ => - false - }) - - symHasAnn || methodReturnHasAnn || - (tree.tpe != null && typeHasEncodableString(tree.tpe)) + symHasAnn || (tree.tpe != null && typeHasEncodableString(tree.tpe)) } def isPythonTemplateBuilderArg(argExpr: c.Expr[Any]): Boolean = { diff --git a/common/pybuilder/src/main/scala/org/apache/texera/amber/pybuilder/EncodableStringAnnotation.java b/common/pybuilder/src/main/scala/org/apache/texera/amber/pybuilder/EncodableStringAnnotation.java index f94c01f680a..ea17e6d0130 100644 --- a/common/pybuilder/src/main/scala/org/apache/texera/amber/pybuilder/EncodableStringAnnotation.java +++ b/common/pybuilder/src/main/scala/org/apache/texera/amber/pybuilder/EncodableStringAnnotation.java @@ -29,7 +29,6 @@ ElementType.FIELD, ElementType.PARAMETER, ElementType.TYPE_USE, - ElementType.LOCAL_VARIABLE, - ElementType.METHOD + ElementType.LOCAL_VARIABLE }) public @interface EncodableStringAnnotation {} \ No newline at end of file diff --git a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjector.scala b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjector.scala index 76bf11048e4..189882b7dc6 100644 --- a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjector.scala +++ b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjector.scala @@ -1,3 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ package org.apache.texera.amber.operator.udf.python import org.apache.texera.amber.pybuilder.PythonTemplateBuilder diff --git a/common/workflow-operator/src/test/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjectorSpec.scala b/common/workflow-operator/src/test/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjectorSpec.scala index e4946c1b0f6..9d7e367255b 100644 --- a/common/workflow-operator/src/test/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjectorSpec.scala +++ b/common/workflow-operator/src/test/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjectorSpec.scala @@ -1,3 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ package org.apache.texera.amber.operator.udf.python import org.apache.texera.amber.core.tuple.{Attribute, AttributeType} diff --git a/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.html b/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.html index 8b9ffecdb2f..0ecfb16a780 100644 --- a/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.html +++ b/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.html @@ -1,3 +1,21 @@ +
diff --git a/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.ts b/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.ts index 85972be9e76..10e98d7afa7 100644 --- a/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.ts +++ b/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.ts @@ -1,3 +1,21 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ import { Component } from "@angular/core"; import { FieldArrayType, FormlyFieldConfig } from "@ngx-formly/core"; diff --git a/frontend/src/app/workspace/service/code-editor/ui-udf-parameters-sync.service.ts b/frontend/src/app/workspace/service/code-editor/ui-udf-parameters-sync.service.ts index c28742977ff..edd9cc428a2 100644 --- a/frontend/src/app/workspace/service/code-editor/ui-udf-parameters-sync.service.ts +++ b/frontend/src/app/workspace/service/code-editor/ui-udf-parameters-sync.service.ts @@ -1,3 +1,21 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ import { Injectable } from "@angular/core"; import { isEqual } from "lodash-es"; import { ReplaySubject } from "rxjs"; From 1d82c9af5f2216c7c77a247d5f87416ce0b8970f Mon Sep 17 00:00:00 2001 From: Carlos Ernesto Alvarez Berumen Date: Sat, 7 Mar 2026 01:55:53 -0600 Subject: [PATCH 07/12] v2 --- .../src/main/scala/py2udf/catalog.json | 2889 ---------- .../main/scala/py2udf/clean_sp500_2000.csv | 5106 ----------------- .../demo_texera_workflow_vx2.workflow.json | 400 -- ...emo_texera_workflow_vx2.workflow.meta.json | 398 -- .../src/main/scala/py2udf/py2udf.ipynb | 2028 ------- 5 files changed, 10821 deletions(-) delete mode 100644 common/workflow-operator/src/main/scala/py2udf/catalog.json delete mode 100644 common/workflow-operator/src/main/scala/py2udf/clean_sp500_2000.csv delete mode 100644 common/workflow-operator/src/main/scala/py2udf/demo_texera_workflow_vx2.workflow.json delete mode 100644 common/workflow-operator/src/main/scala/py2udf/demo_texera_workflow_vx2.workflow.meta.json delete mode 100644 common/workflow-operator/src/main/scala/py2udf/py2udf.ipynb diff --git a/common/workflow-operator/src/main/scala/py2udf/catalog.json b/common/workflow-operator/src/main/scala/py2udf/catalog.json deleted file mode 100644 index a65f77859a7..00000000000 --- a/common/workflow-operator/src/main/scala/py2udf/catalog.json +++ /dev/null @@ -1,2889 +0,0 @@ -{ - "operators": [ - { - "operatorID": "ArrowSource-operator-2953ddfa-3b7c-4b40-be61-e86af2d5e4fa", - "operatorType": "ArrowSource", - "operatorVersion": "N/A", - "operatorProperties": { - "fileName": "" - }, - "inputPorts": [], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Arrow File Scan", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "CSVFileScan-operator-7a2892e1-8812-41d9-80aa-273aa68cb8cc", - "operatorType": "CSVFileScan", - "operatorVersion": "N/A", - "operatorProperties": { - "fileEncoding": "UTF_8", - "customDelimiter": ",", - "hasHeader": true, - "fileName": "" - }, - "inputPorts": [], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "CSV File Scan", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "FileScan-operator-a71dc68f-95db-433a-b927-4aa1748d6ee6", - "operatorType": "FileScan", - "operatorVersion": "N/A", - "operatorProperties": { - "encoding": "UTF_8", - "extract": false, - "outputFileName": false, - "attributeType": "string", - "attributeName": "line", - "fileName": "" - }, - "inputPorts": [], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": " File Scan", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "JSONLFileScan-operator-fa519958-7a70-4761-a579-aa2192e026d9", - "operatorType": "JSONLFileScan", - "operatorVersion": "N/A", - "operatorProperties": { - "fileEncoding": "UTF_8", - "fileName": "" - }, - "inputPorts": [], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "JSONL File Scan", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "TextInput-operator-c922ef7e-d321-495c-9517-25ebe6669d86", - "operatorType": "TextInput", - "operatorVersion": "N/A", - "operatorProperties": { - "attributeType": "string", - "attributeName": "line", - "textInput": "" - }, - "inputPorts": [], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Text Input", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "DictionaryMatcher-operator-433f9c67-db8c-4682-8181-d7ee21dc446f", - "operatorType": "DictionaryMatcher", - "operatorVersion": "N/A", - "operatorProperties": { - "result attribute": "matched", - "Dictionary": "", - "Attribute": "", - "Matching type": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Dictionary matcher", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "KeywordSearch-operator-f4d943e2-f145-483c-9b73-301201fbebc4", - "operatorType": "KeywordSearch", - "operatorVersion": "N/A", - "operatorProperties": { - "attribute": "", - "keyword": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Keyword Search", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "Regex-operator-a822d4bb-174d-4cda-a282-5915d5bc5f22", - "operatorType": "Regex", - "operatorVersion": "N/A", - "operatorProperties": { - "caseInsensitive": false, - "attribute": "", - "regex": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Regular Expression", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "SubstringSearch-operator-22333ad4-cf2c-4bdf-a204-a6ab2ab8e826", - "operatorType": "SubstringSearch", - "operatorVersion": "N/A", - "operatorProperties": { - "isCaseSensitive": false, - "attribute": "", - "substring": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Substring Search", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "CartesianProduct-operator-98d5fc05-8542-43fc-97f3-4ffeee552a8b", - "operatorType": "CartesianProduct", - "operatorVersion": "N/A", - "operatorProperties": {}, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "left", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - }, - { - "portID": "input-1", - "displayName": "right", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [ - { - "id": 0, - "internal": false - } - ] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Cartesian Product", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "HashJoin-operator-6be1c0e0-4ffc-4b3a-9921-652089668587", - "operatorType": "HashJoin", - "operatorVersion": "N/A", - "operatorProperties": { - "joinType": "inner", - "buildAttributeName": "", - "probeAttributeName": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "left", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - }, - { - "portID": "input-1", - "displayName": "right", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [ - { - "id": 0, - "internal": false - } - ] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Hash Join", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "IntervalJoin-operator-94ce5ee3-888d-4194-8750-6af5eafb3bcd", - "operatorType": "IntervalJoin", - "operatorVersion": "N/A", - "operatorProperties": { - "constant": 10, - "includeLeftBound": true, - "includeRightBound": true, - "timeIntervalType": "day", - "leftAttributeName": "", - "rightAttributeName": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "left table", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - }, - { - "portID": "input-1", - "displayName": "right table", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [ - { - "id": 0, - "internal": false - } - ] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Interval Join", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "Aggregate-operator-fbcc0b1a-d5bc-42c7-89d9-5f99a98d0569", - "operatorType": "Aggregate", - "operatorVersion": "N/A", - "operatorProperties": { - "aggregations": [ - { - "aggFunction": "", - "attribute": "", - "result attribute": "" - } - ] - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Aggregate", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "Distinct-operator-e55deaf5-0898-4af9-8195-965899c8ea9b", - "operatorType": "Distinct", - "operatorVersion": "N/A", - "operatorProperties": {}, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Distinct", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "Sort-operator-0ed0e580-1853-46a1-aca8-95c338099e8b", - "operatorType": "Sort", - "operatorVersion": "N/A", - "operatorProperties": { - "attributes": [] - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Sort", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "Sort-operator-6ed8c337-70be-4e3a-b931-73aa0ecf0d42", - "operatorType": "Sort", - "operatorVersion": "N/A", - "operatorProperties": {}, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Sort", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "Filter-operator-be233302-0e5f-4535-859b-21a05d90eef4", - "operatorType": "Filter", - "operatorVersion": "N/A", - "operatorProperties": {}, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Filter", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "Limit-operator-fd28a8eb-3c59-4924-8165-122642d10bd3", - "operatorType": "Limit", - "operatorVersion": "N/A", - "operatorProperties": {}, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Limit", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "Projection-operator-b3114c5f-1696-420f-bada-fe708c11c3bf", - "operatorType": "Projection", - "operatorVersion": "N/A", - "operatorProperties": { - "isDrop": false - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Projection", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "TypeCasting-operator-b8785d82-8dce-44ee-b47a-4a35ef84fe56", - "operatorType": "TypeCasting", - "operatorVersion": "N/A", - "operatorProperties": { - "typeCastingUnits": [] - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Type Casting", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "RandomKSampling-operator-914b05e3-7ab7-48d1-8ddc-1559302c5d6b", - "operatorType": "RandomKSampling", - "operatorVersion": "N/A", - "operatorProperties": {}, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Random K Sampling", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "ReservoirSampling-operator-59bc7446-274b-4934-be28-bd11b59dd70b", - "operatorType": "ReservoirSampling", - "operatorVersion": "N/A", - "operatorProperties": {}, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Reservoir Sampling", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "Split-operator-1aae1a37-276f-4863-a29f-d8bce28fb5bb", - "operatorType": "Split", - "operatorVersion": "N/A", - "operatorProperties": { - "k": 80, - "random": true, - "seed": 1 - }, - "inputPorts": [], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - }, - { - "portID": "output-1", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Split", - "dynamicInputPorts": true, - "dynamicOutputPorts": true - }, - { - "operatorID": "UnnestString-operator-10eca6e3-5952-4751-9845-e9dfaedaf5a2", - "operatorType": "UnnestString", - "operatorVersion": "N/A", - "operatorProperties": { - "Delimiter": ",", - "Result attribute": "unnestResult", - "Attribute": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Unnest String", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "BarChart-operator-ef49769f-57fa-43d2-a49c-7bec25797d6c", - "operatorType": "BarChart", - "operatorVersion": "N/A", - "operatorProperties": { - "categoryColumn": "No Selection", - "horizontalOrientation": false, - "fields": "", - "value": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Bar Chart", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "BubbleChart-operator-f702a4a4-689a-4bd3-9152-7ebe5178a0b9", - "operatorType": "BubbleChart", - "operatorVersion": "N/A", - "operatorProperties": { - "enableColor": false, - "xValue": "", - "yValue": "", - "zValue": "", - "colorCategory": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Bubble Chart", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "DotPlot-operator-b74e2826-dca4-4579-9705-e350215dd226", - "operatorType": "DotPlot", - "operatorVersion": "N/A", - "operatorProperties": { - "Count Attribute": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Dot Plot", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "DumbbellPlot-operator-7818ab0d-dad7-4179-8d6c-2ebb01ee5686", - "operatorType": "DumbbellPlot", - "operatorVersion": "N/A", - "operatorProperties": { - "categoryColumnName": "", - "dumbbellStartValue": "", - "dumbbellEndValue": "", - "measurementColumnName": "", - "comparedColumnName": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Dumbbell Plot", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "FigureFactoryTable-operator-1d300a9e-0815-441b-a778-892710a6eebb", - "operatorType": "FigureFactoryTable", - "operatorVersion": "N/A", - "operatorProperties": { - "add attribute": [] - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Figure Factory Table", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "GanttChart-operator-e0aea151-a552-46f9-8fc0-221c80a4e19c", - "operatorType": "GanttChart", - "operatorVersion": "N/A", - "operatorProperties": { - "start": "", - "finish": "", - "task": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Gantt Chart", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "IcicleChart-operator-3ae3e25c-7664-45b7-aeb3-67b6b425e4a3", - "operatorType": "IcicleChart", - "operatorVersion": "N/A", - "operatorProperties": { - "hierarchy": [ - { - "attributeName": "" - } - ], - "value": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Icicle Chart", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "IcicleChart-operator-c75d70ee-3ec0-4f32-9e13-f4c723d88efe", - "operatorType": "IcicleChart", - "operatorVersion": "N/A", - "operatorProperties": { - "hierarchy": [ - { - "attributeName": "" - } - ], - "value": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Icicle Chart", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "LineChart-operator-fcc4b934-324a-4cb5-8452-2d2acd0a7707", - "operatorType": "LineChart", - "operatorVersion": "N/A", - "operatorProperties": { - "yLabel": "Y Axis", - "xLabel": "X Axis", - "lines": [] - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Line Chart", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "PieChart-operator-3b836b59-694c-48ae-bf38-f4d0f62dd897", - "operatorType": "PieChart", - "operatorVersion": "N/A", - "operatorProperties": { - "value": "", - "name": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Pie Chart", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "RangeSlider-operator-0f974148-5915-4cf6-a739-5679cdaca92a", - "operatorType": "RangeSlider", - "operatorVersion": "N/A", - "operatorProperties": { - "Y-axis": "", - "X-axis": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Range Slider", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "SankeyDiagram-operator-066172b7-1069-47c1-b890-278ebf39ca69", - "operatorType": "SankeyDiagram", - "operatorVersion": "N/A", - "operatorProperties": { - "Source Attribute": "", - "Target Attribute": "", - "Value Attribute": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Sankey Diagram", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "Scatterplot-operator-1931db20-31dc-4c88-9da6-d3dcb398ebfc", - "operatorType": "Scatterplot", - "operatorVersion": "N/A", - "operatorProperties": { - "alpha": 1, - "xLogScale": false, - "yLogScale": false, - "xColumn": "", - "yColumn": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Scatter Plot", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "TablesPlot-operator-e0a3b5dd-6393-4a29-9c4c-56ad8b8b4e93", - "operatorType": "TablesPlot", - "operatorVersion": "N/A", - "operatorProperties": { - "add attribute": [ - { - "attributeName": "" - } - ] - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Tables Plot", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "TimeSeriesPlot-operator-2efaa07d-e691-46de-9b83-53c242841d04", - "operatorType": "TimeSeriesPlot", - "operatorVersion": "N/A", - "operatorProperties": { - "categoryColumn": "No Selection", - "facetColumn": "No Selection", - "line": "line", - "slider": false, - "timeColumn": "", - "valueColumn": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Time Series Plot", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "BoxViolinPlot-operator-f50c0377-4b0a-4ae3-bce2-7fc9b353fbd3", - "operatorType": "BoxViolinPlot", - "operatorVersion": "N/A", - "operatorProperties": { - "Quartile Method": "linear", - "horizontalOrientation": false, - "violinPlot": false, - "value": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Box/Violin Plot", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "ContinuousErrorBands-operator-07d42ae5-20f9-476e-96a0-72d24e44dbb6", - "operatorType": "ContinuousErrorBands", - "operatorVersion": "N/A", - "operatorProperties": { - "xLabel": "X Axis", - "yLabel": "Y Axis", - "bands": [] - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Continuous Error Bands", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "Histogram-operator-77939ed1-9f38-4f3b-be58-31a38916faa1", - "operatorType": "Histogram", - "operatorVersion": "N/A", - "operatorProperties": { - "value": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Histogram", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "Histogram2D-operator-60f6c41c-1e37-4ef8-b44b-c3388deb60d1", - "operatorType": "Histogram2D", - "operatorVersion": "N/A", - "operatorProperties": { - "xBins": 10, - "yBins": 10, - "normalize": "density", - "xColumn": "", - "yColumn": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Histogram2D", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "ScatterMatrixChart-operator-38745d8a-3785-4e52-ba05-5f7da4603557", - "operatorType": "ScatterMatrixChart", - "operatorVersion": "N/A", - "operatorProperties": { - "Selected Attributes": [], - "Color": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Scatter Matrix Chart", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "StripChart-operator-4f9e7bc0-1647-4d58-bacd-c65984dc6a69", - "operatorType": "StripChart", - "operatorVersion": "N/A", - "operatorProperties": { - "x": "", - "y": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Strip Chart", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "TreePlot-operator-38877af1-9b6a-4fb6-8cee-edc5a54a5c9b", - "operatorType": "TreePlot", - "operatorVersion": "N/A", - "operatorProperties": { - "Edge List Column": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Tree Plot", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "ContourPlot-operator-d430f695-c9a0-4c48-8cc2-776b5b5be8c0", - "operatorType": "ContourPlot", - "operatorVersion": "N/A", - "operatorProperties": { - "gridSize": "10", - "connectGaps": true, - "Coloring Method": "heatmap", - "x": "", - "y": "", - "z": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Contour Plot", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "Dendrogram-operator-00a7c79c-8ac3-4ef4-b7ac-b99affe5ad2e", - "operatorType": "Dendrogram", - "operatorVersion": "N/A", - "operatorProperties": { - "xVal": "", - "yVal": "", - "Labels": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Dendrogram", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "HeatMap-operator-55972f50-222c-4f85-9041-9a1a3a65605d", - "operatorType": "HeatMap", - "operatorVersion": "N/A", - "operatorProperties": { - "x": "", - "y": "", - "Values": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Heatmap", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "NetworkGraph-operator-f3c26f3a-8e31-4ac2-a477-7e747e31491e", - "operatorType": "NetworkGraph", - "operatorVersion": "N/A", - "operatorProperties": { - "title": "Network Graph", - "source": "", - "destination": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Network Graph", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "QuiverPlot-operator-1ed3209b-4831-492e-aab1-c44b9ae78430", - "operatorType": "QuiverPlot", - "operatorVersion": "N/A", - "operatorProperties": { - "x": "", - "y": "", - "u": "", - "v": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Quiver Plot", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "QuiverPlot-operator-dcebfefd-9f3a-4702-93ae-8a374c2a5c60", - "operatorType": "QuiverPlot", - "operatorVersion": "N/A", - "operatorProperties": { - "x": "", - "y": "", - "u": "", - "v": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Quiver Plot", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "TernaryPlot-operator-2000371f-c80f-41c2-a51c-a00a0ed3ac10", - "operatorType": "TernaryPlot", - "operatorVersion": "N/A", - "operatorProperties": { - "colorEnabled": false, - "firstVariable": "", - "secondVariable": "", - "thirdVariable": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Ternary Plot", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "VolcanoPlot-operator-2ca7d2cd-69f3-4d26-935d-07cb048096d6", - "operatorType": "VolcanoPlot", - "operatorVersion": "N/A", - "operatorProperties": { - "effectColumn": "", - "pvalueColumn": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Volcano Plot", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "TernaryPlot-operator-dd361c61-76a7-44f3-aa56-2ff10ce5ceaf", - "operatorType": "TernaryPlot", - "operatorVersion": "N/A", - "operatorProperties": { - "colorEnabled": false, - "firstVariable": "", - "secondVariable": "", - "thirdVariable": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Ternary Plot", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "VolcanoPlot-operator-6a436ad1-b8c7-4804-af86-2ec7f6106f72", - "operatorType": "VolcanoPlot", - "operatorVersion": "N/A", - "operatorProperties": { - "effectColumn": "", - "pvalueColumn": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Volcano Plot", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "BulletChart-operator-4ecc403d-14b3-4a22-ab8a-f19d6c57c520", - "operatorType": "BulletChart", - "operatorVersion": "N/A", - "operatorProperties": { - "value": "", - "deltaReference": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Bullet Chart", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "CandlestickChart-operator-7f934e53-f4e0-4cb5-a0dc-db96f7d3de47", - "operatorType": "CandlestickChart", - "operatorVersion": "N/A", - "operatorProperties": { - "date": "", - "open": "", - "high": "", - "low": "", - "close": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Candlestick Chart", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "FunnelPlot-operator-1ace8f58-05f7-4fae-8b7a-48fa05ca869f", - "operatorType": "FunnelPlot", - "operatorVersion": "N/A", - "operatorProperties": { - "x": "", - "y": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Funnel Plot", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "GaugeChart-operator-bdfb4bfd-51db-4300-a76b-919b66acbd34", - "operatorType": "GaugeChart", - "operatorVersion": "N/A", - "operatorProperties": { - "value": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Gauge Chart", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "WaterfallChart-operator-e51ec00c-1815-4c16-b50e-2292e5780461", - "operatorType": "WaterfallChart", - "operatorVersion": "N/A", - "operatorProperties": { - "xColumn": "", - "yColumn": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Waterfall Chart", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "HTMLVisualizer-operator-c815a669-81af-4adb-865b-d9f2404cc249", - "operatorType": "HTMLVisualizer", - "operatorVersion": "N/A", - "operatorProperties": { - "htmlContentAttrName": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "HTML Visualizer", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "ImageVisualizer-operator-569d29a2-d6d7-408d-8b3e-1920ae25fac3", - "operatorType": "ImageVisualizer", - "operatorVersion": "N/A", - "operatorProperties": { - "binaryContent": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Image Visualizer", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "URLVisualizer-operator-187113ba-5c92-4e55-beff-8c23923cae3d", - "operatorType": "URLVisualizer", - "operatorVersion": "N/A", - "operatorProperties": { - "urlContentAttrName": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "URL Visualizer", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "WordCloud-operator-83815e13-64dc-4cb1-be4c-295d1f93fee6", - "operatorType": "WordCloud", - "operatorVersion": "N/A", - "operatorProperties": { - "topN": 100, - "textColumn": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Word Cloud", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "ChoroplethMap-operator-e0b89bb9-e0f9-45eb-91e9-681d8ea4d5f0", - "operatorType": "ChoroplethMap", - "operatorVersion": "N/A", - "operatorProperties": { - "locations": "", - "color": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Choropleth Map", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "Scatter3DChart-operator-929fb224-6e2f-4917-84ed-b04c361424c7", - "operatorType": "Scatter3DChart", - "operatorVersion": "N/A", - "operatorProperties": { - "x": "", - "y": "", - "z": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Scatter3D Chart", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "NestedTable-operator-b107f3d0-9a4c-4118-8a5b-836bb94dc2a2", - "operatorType": "NestedTable", - "operatorVersion": "N/A", - "operatorProperties": { - "add attribute": [] - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Nested Table", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "If-operator-8febb7e9-56b7-41c3-ae3e-b3dab428a7cd", - "operatorType": "If", - "operatorVersion": "N/A", - "operatorProperties": { - "conditionName": "" - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "Condition", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - }, - { - "portID": "input-1", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [ - { - "id": 0, - "internal": false - } - ] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "False", - "allowMultiInputs": false, - "isDynamicPort": false - }, - { - "portID": "output-1", - "displayName": "True", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "If", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - } - ], - "operatorPositions": { - "ArrowSource-operator-2953ddfa-3b7c-4b40-be61-e86af2d5e4fa": { - "x": 535.63330078125, - "y": 281.95001220703125 - }, - "CSVFileScan-operator-7a2892e1-8812-41d9-80aa-273aa68cb8cc": { - "x": 427.6333312988281, - "y": 153.9499969482422 - }, - "FileScan-operator-a71dc68f-95db-433a-b927-4aa1748d6ee6": { - "x": 600.63330078125, - "y": 197.9499969482422 - }, - "JSONLFileScan-operator-fa519958-7a70-4761-a579-aa2192e026d9": { - "x": 710.6333618164062, - "y": 334.95001220703125 - }, - "TextInput-operator-c922ef7e-d321-495c-9517-25ebe6669d86": { - "x": 717.6333618164062, - "y": 187.9499969482422 - }, - "DictionaryMatcher-operator-433f9c67-db8c-4682-8181-d7ee21dc446f": { - "x": 417.6333312988281, - "y": 340.95001220703125 - }, - "KeywordSearch-operator-f4d943e2-f145-483c-9b73-301201fbebc4": { - "x": 406.6333312988281, - "y": 513.9500122070312 - }, - "Regex-operator-a822d4bb-174d-4cda-a282-5915d5bc5f22": { - "x": 597.63330078125, - "y": 489.95001220703125 - }, - "SubstringSearch-operator-22333ad4-cf2c-4bdf-a204-a6ab2ab8e826": { - "x": 736.6333618164062, - "y": 582.9500122070312 - }, - "CartesianProduct-operator-98d5fc05-8542-43fc-97f3-4ffeee552a8b": { - "x": -156.36668395996094, - "y": 582.9500122070312 - }, - "HashJoin-operator-6be1c0e0-4ffc-4b3a-9921-652089668587": { - "x": 85.63331604003906, - "y": 231.9499969482422 - }, - "IntervalJoin-operator-94ce5ee3-888d-4194-8750-6af5eafb3bcd": { - "x": 159.63331604003906, - "y": 414.95001220703125 - }, - "Aggregate-operator-fbcc0b1a-d5bc-42c7-89d9-5f99a98d0569": { - "x": -172.36668395996094, - "y": -22.049999237060547 - }, - "Distinct-operator-e55deaf5-0898-4af9-8195-965899c8ea9b": { - "x": -408.3666687011719, - "y": 311.95001220703125 - }, - "Sort-operator-0ed0e580-1853-46a1-aca8-95c338099e8b": { - "x": 47.63335037231445, - "y": -31.049999237060547 - }, - "Sort-operator-6ed8c337-70be-4e3a-b931-73aa0ecf0d42": { - "x": -400.3666687011719, - "y": 743.9500122070312 - }, - "Filter-operator-be233302-0e5f-4535-859b-21a05d90eef4": { - "x": -556.36669921875, - "y": 1110.949951171875 - }, - "Limit-operator-fd28a8eb-3c59-4924-8165-122642d10bd3": { - "x": -665.36669921875, - "y": 992.9500122070312 - }, - "Projection-operator-b3114c5f-1696-420f-bada-fe708c11c3bf": { - "x": -295.3666687011719, - "y": 1476.949951171875 - }, - "TypeCasting-operator-b8785d82-8dce-44ee-b47a-4a35ef84fe56": { - "x": -219.3666534423828, - "y": 1219.949951171875 - }, - "RandomKSampling-operator-914b05e3-7ab7-48d1-8ddc-1559302c5d6b": { - "x": -549, - "y": 1750 - }, - "ReservoirSampling-operator-59bc7446-274b-4934-be28-bd11b59dd70b": { - "x": -332.3666687011719, - "y": 1897.949951171875 - }, - "Split-operator-1aae1a37-276f-4863-a29f-d8bce28fb5bb": { - "x": -611.36669921875, - "y": 1597.949951171875 - }, - "UnnestString-operator-10eca6e3-5952-4751-9845-e9dfaedaf5a2": { - "x": -748, - "y": 1671 - }, - "BarChart-operator-ef49769f-57fa-43d2-a49c-7bec25797d6c": { - "x": -797.36669921875, - "y": 2364.216552734375 - }, - "BubbleChart-operator-f702a4a4-689a-4bd3-9152-7ebe5178a0b9": { - "x": -525.36669921875, - "y": 2326.216552734375 - }, - "DotPlot-operator-b74e2826-dca4-4579-9705-e350215dd226": { - "x": -561.36669921875, - "y": 2121.216552734375 - }, - "DumbbellPlot-operator-7818ab0d-dad7-4179-8d6c-2ebb01ee5686": { - "x": -499.3666687011719, - "y": 1997.2166748046875 - }, - "FigureFactoryTable-operator-1d300a9e-0815-441b-a778-892710a6eebb": { - "x": -810.36669921875, - "y": 2213.216552734375 - }, - "GanttChart-operator-e0aea151-a552-46f9-8fc0-221c80a4e19c": { - "x": -307.36663818359375, - "y": 2243.216552734375 - }, - "IcicleChart-operator-3ae3e25c-7664-45b7-aeb3-67b6b425e4a3": { - "x": -355.36663818359375, - "y": 2090.216552734375 - }, - "IcicleChart-operator-c75d70ee-3ec0-4f32-9e13-f4c723d88efe": { - "x": -551.36669921875, - "y": 1913.2166748046875 - }, - "LineChart-operator-fcc4b934-324a-4cb5-8452-2d2acd0a7707": { - "x": -578.36669921875, - "y": 2241.216552734375 - }, - "PieChart-operator-3b836b59-694c-48ae-bf38-f4d0f62dd897": { - "x": -641.36669921875, - "y": 1920.2166748046875 - }, - "RangeSlider-operator-0f974148-5915-4cf6-a739-5679cdaca92a": { - "x": -370.36663818359375, - "y": 1814.2166748046875 - }, - "SankeyDiagram-operator-066172b7-1069-47c1-b890-278ebf39ca69": { - "x": -415.3666687011719, - "y": 2164.216552734375 - }, - "Scatterplot-operator-1931db20-31dc-4c88-9da6-d3dcb398ebfc": { - "x": -681.36669921875, - "y": 2255.216552734375 - }, - "TablesPlot-operator-e0a3b5dd-6393-4a29-9c4c-56ad8b8b4e93": { - "x": -643.36669921875, - "y": 2094.216552734375 - }, - "TimeSeriesPlot-operator-2efaa07d-e691-46de-9b83-53c242841d04": { - "x": -213.3666534423828, - "y": 2077.216552734375 - }, - "BoxViolinPlot-operator-f50c0377-4b0a-4ae3-bce2-7fc9b353fbd3": { - "x": -189.3666534423828, - "y": 1905.2166748046875 - }, - "ContinuousErrorBands-operator-07d42ae5-20f9-476e-96a0-72d24e44dbb6": { - "x": -310.36663818359375, - "y": 2417.216552734375 - }, - "Histogram-operator-77939ed1-9f38-4f3b-be58-31a38916faa1": { - "x": -472.3666687011719, - "y": 2564.216552734375 - }, - "Histogram2D-operator-60f6c41c-1e37-4ef8-b44b-c3388deb60d1": { - "x": -566.36669921875, - "y": 2477.216552734375 - }, - "ScatterMatrixChart-operator-38745d8a-3785-4e52-ba05-5f7da4603557": { - "x": -609.36669921875, - "y": 2670.216552734375 - }, - "StripChart-operator-4f9e7bc0-1647-4d58-bacd-c65984dc6a69": { - "x": -714.36669921875, - "y": 2679.216552734375 - }, - "TreePlot-operator-38877af1-9b6a-4fb6-8cee-edc5a54a5c9b": { - "x": -673.36669921875, - "y": 2473.216552734375 - }, - "ContourPlot-operator-d430f695-c9a0-4c48-8cc2-776b5b5be8c0": { - "x": -511.3666687011719, - "y": 2808.216552734375 - }, - "Dendrogram-operator-00a7c79c-8ac3-4ef4-b7ac-b99affe5ad2e": { - "x": -331.36663818359375, - "y": 2703.216552734375 - }, - "HeatMap-operator-55972f50-222c-4f85-9041-9a1a3a65605d": { - "x": -424.3666687011719, - "y": 2996.216552734375 - }, - "NetworkGraph-operator-f3c26f3a-8e31-4ac2-a477-7e747e31491e": { - "x": -621.36669921875, - "y": 2992.216552734375 - }, - "QuiverPlot-operator-1ed3209b-4831-492e-aab1-c44b9ae78430": { - "x": -726.36669921875, - "y": 3100.216552734375 - }, - "QuiverPlot-operator-dcebfefd-9f3a-4702-93ae-8a374c2a5c60": { - "x": -246.3666534423828, - "y": 2863.216552734375 - }, - "TernaryPlot-operator-2000371f-c80f-41c2-a51c-a00a0ed3ac10": { - "x": -357.36663818359375, - "y": 2836.216552734375 - }, - "VolcanoPlot-operator-2ca7d2cd-69f3-4d26-935d-07cb048096d6": { - "x": -799.36669921875, - "y": 2944.216552734375 - }, - "TernaryPlot-operator-dd361c61-76a7-44f3-aa56-2ff10ce5ceaf": { - "x": -269.36663818359375, - "y": 3126.216552734375 - }, - "VolcanoPlot-operator-6a436ad1-b8c7-4804-af86-2ec7f6106f72": { - "x": -552.36669921875, - "y": 3182.216552734375 - }, - "BulletChart-operator-4ecc403d-14b3-4a22-ab8a-f19d6c57c520": { - "x": -625.36669921875, - "y": 2811.216552734375 - }, - "CandlestickChart-operator-7f934e53-f4e0-4cb5-a0dc-db96f7d3de47": { - "x": -829.36669921875, - "y": 3213.216552734375 - }, - "FunnelPlot-operator-1ace8f58-05f7-4fae-8b7a-48fa05ca869f": { - "x": -649.36669921875, - "y": 3293.216552734375 - }, - "GaugeChart-operator-bdfb4bfd-51db-4300-a76b-919b66acbd34": { - "x": -421.3666687011719, - "y": 3289.216552734375 - }, - "WaterfallChart-operator-e51ec00c-1815-4c16-b50e-2292e5780461": { - "x": -492.3666687011719, - "y": 3108.216552734375 - }, - "HTMLVisualizer-operator-c815a669-81af-4adb-865b-d9f2404cc249": { - "x": -908.36669921875, - "y": 3104.216552734375 - }, - "ImageVisualizer-operator-569d29a2-d6d7-408d-8b3e-1920ae25fac3": { - "x": -831.36669921875, - "y": 3314.216552734375 - }, - "URLVisualizer-operator-187113ba-5c92-4e55-beff-8c23923cae3d": { - "x": -842.36669921875, - "y": 3451.216552734375 - }, - "WordCloud-operator-83815e13-64dc-4cb1-be4c-295d1f93fee6": { - "x": -650.36669921875, - "y": 3464.216552734375 - }, - "ChoroplethMap-operator-e0b89bb9-e0f9-45eb-91e9-681d8ea4d5f0": { - "x": -993.36669921875, - "y": 3339.216552734375 - }, - "Scatter3DChart-operator-929fb224-6e2f-4917-84ed-b04c361424c7": { - "x": -966.36669921875, - "y": 3578.216552734375 - }, - "NestedTable-operator-b107f3d0-9a4c-4118-8a5b-836bb94dc2a2": { - "x": -754.36669921875, - "y": 3614.216552734375 - }, - "If-operator-8febb7e9-56b7-41c3-ae3e-b3dab428a7cd": { - "x": -477.36663818359375, - "y": 3573.216552734375 - } - }, - "links": [ - { - "linkID": "link-a75743d7-2d3a-42a8-996e-c2539e97cf2d", - "source": { - "operatorID": "BarChart-operator-ef49769f-57fa-43d2-a49c-7bec25797d6c", - "portID": "output-0" - }, - "target": { - "operatorID": "BubbleChart-operator-f702a4a4-689a-4bd3-9152-7ebe5178a0b9", - "portID": "input-0" - } - }, - { - "linkID": "link-82fefcae-c360-4c68-8b41-c9e34bfb8744", - "source": { - "operatorID": "DotPlot-operator-b74e2826-dca4-4579-9705-e350215dd226", - "portID": "output-0" - }, - "target": { - "operatorID": "DumbbellPlot-operator-7818ab0d-dad7-4179-8d6c-2ebb01ee5686", - "portID": "input-0" - } - }, - { - "linkID": "link-bd4157d2-ece8-4ab5-8c7f-50683a24cbaa", - "source": { - "operatorID": "DumbbellPlot-operator-7818ab0d-dad7-4179-8d6c-2ebb01ee5686", - "portID": "output-0" - }, - "target": { - "operatorID": "ReservoirSampling-operator-59bc7446-274b-4934-be28-bd11b59dd70b", - "portID": "input-0" - } - }, - { - "linkID": "link-f2024126-38db-4b83-8071-ad24c55b870a", - "source": { - "operatorID": "FigureFactoryTable-operator-1d300a9e-0815-441b-a778-892710a6eebb", - "portID": "output-0" - }, - "target": { - "operatorID": "BarChart-operator-ef49769f-57fa-43d2-a49c-7bec25797d6c", - "portID": "input-0" - } - }, - { - "linkID": "link-ec154547-5240-4f29-973b-8e8a9d1abfe3", - "source": { - "operatorID": "BubbleChart-operator-f702a4a4-689a-4bd3-9152-7ebe5178a0b9", - "portID": "output-0" - }, - "target": { - "operatorID": "GanttChart-operator-e0aea151-a552-46f9-8fc0-221c80a4e19c", - "portID": "input-0" - } - }, - { - "linkID": "link-c026a799-002b-408f-8b5a-6a2a59dc4af4", - "source": { - "operatorID": "IcicleChart-operator-c75d70ee-3ec0-4f32-9e13-f4c723d88efe", - "portID": "output-0" - }, - "target": { - "operatorID": "RandomKSampling-operator-914b05e3-7ab7-48d1-8ddc-1559302c5d6b", - "portID": "input-0" - } - }, - { - "linkID": "link-008c38f2-fefe-483e-9d61-b7dc1d79dcff", - "source": { - "operatorID": "LineChart-operator-fcc4b934-324a-4cb5-8452-2d2acd0a7707", - "portID": "output-0" - }, - "target": { - "operatorID": "DotPlot-operator-b74e2826-dca4-4579-9705-e350215dd226", - "portID": "input-0" - } - }, - { - "linkID": "link-4d15bc0b-6a22-452a-9843-ff32d8729a71", - "source": { - "operatorID": "UnnestString-operator-10eca6e3-5952-4751-9845-e9dfaedaf5a2", - "portID": "output-0" - }, - "target": { - "operatorID": "PieChart-operator-3b836b59-694c-48ae-bf38-f4d0f62dd897", - "portID": "input-0" - } - }, - { - "linkID": "link-f34c1a6f-9da0-446f-82c3-d2e43bec1c94", - "source": { - "operatorID": "PieChart-operator-3b836b59-694c-48ae-bf38-f4d0f62dd897", - "portID": "output-0" - }, - "target": { - "operatorID": "IcicleChart-operator-c75d70ee-3ec0-4f32-9e13-f4c723d88efe", - "portID": "input-0" - } - }, - { - "linkID": "link-d2ba1ba5-22b4-46cb-bc88-9f72daf355e6", - "source": { - "operatorID": "RandomKSampling-operator-914b05e3-7ab7-48d1-8ddc-1559302c5d6b", - "portID": "output-0" - }, - "target": { - "operatorID": "RangeSlider-operator-0f974148-5915-4cf6-a739-5679cdaca92a", - "portID": "input-0" - } - }, - { - "linkID": "link-8067850c-34ca-4427-8be6-5c223879eb56", - "source": { - "operatorID": "RangeSlider-operator-0f974148-5915-4cf6-a739-5679cdaca92a", - "portID": "output-0" - }, - "target": { - "operatorID": "IcicleChart-operator-3ae3e25c-7664-45b7-aeb3-67b6b425e4a3", - "portID": "input-0" - } - }, - { - "linkID": "link-01760650-5ed1-4aa9-aca7-1001c3c2c42f", - "source": { - "operatorID": "Scatterplot-operator-1931db20-31dc-4c88-9da6-d3dcb398ebfc", - "portID": "output-0" - }, - "target": { - "operatorID": "LineChart-operator-fcc4b934-324a-4cb5-8452-2d2acd0a7707", - "portID": "input-0" - } - }, - { - "linkID": "link-7cfbd2b0-3a57-4455-b567-371fd82ec571", - "source": { - "operatorID": "TablesPlot-operator-e0a3b5dd-6393-4a29-9c4c-56ad8b8b4e93", - "portID": "output-0" - }, - "target": { - "operatorID": "SankeyDiagram-operator-066172b7-1069-47c1-b890-278ebf39ca69", - "portID": "input-0" - } - }, - { - "linkID": "link-496de7cb-09a2-4a1f-8f2d-b64cf4ea42ce", - "source": { - "operatorID": "IcicleChart-operator-3ae3e25c-7664-45b7-aeb3-67b6b425e4a3", - "portID": "output-0" - }, - "target": { - "operatorID": "TimeSeriesPlot-operator-2efaa07d-e691-46de-9b83-53c242841d04", - "portID": "input-0" - } - }, - { - "linkID": "link-e474988c-cad5-4568-bc32-f760d95cc402", - "source": { - "operatorID": "ReservoirSampling-operator-59bc7446-274b-4934-be28-bd11b59dd70b", - "portID": "output-0" - }, - "target": { - "operatorID": "BoxViolinPlot-operator-f50c0377-4b0a-4ae3-bce2-7fc9b353fbd3", - "portID": "input-0" - } - }, - { - "linkID": "link-921fccba-4627-4a0a-aa24-7e4944e840a4", - "source": { - "operatorID": "SankeyDiagram-operator-066172b7-1069-47c1-b890-278ebf39ca69", - "portID": "output-0" - }, - "target": { - "operatorID": "ContinuousErrorBands-operator-07d42ae5-20f9-476e-96a0-72d24e44dbb6", - "portID": "input-0" - } - }, - { - "linkID": "link-d950ddd6-6e3b-4986-9161-9d8029333d52", - "source": { - "operatorID": "Histogram2D-operator-60f6c41c-1e37-4ef8-b44b-c3388deb60d1", - "portID": "output-0" - }, - "target": { - "operatorID": "Histogram-operator-77939ed1-9f38-4f3b-be58-31a38916faa1", - "portID": "input-0" - } - }, - { - "linkID": "link-e99d88b7-e267-434e-9d29-a40f4e4b88f4", - "source": { - "operatorID": "ScatterMatrixChart-operator-38745d8a-3785-4e52-ba05-5f7da4603557", - "portID": "output-0" - }, - "target": { - "operatorID": "Histogram2D-operator-60f6c41c-1e37-4ef8-b44b-c3388deb60d1", - "portID": "input-0" - } - }, - { - "linkID": "link-7773f83c-69e9-4f46-aa32-f85e35e9117c", - "source": { - "operatorID": "StripChart-operator-4f9e7bc0-1647-4d58-bacd-c65984dc6a69", - "portID": "output-0" - }, - "target": { - "operatorID": "ScatterMatrixChart-operator-38745d8a-3785-4e52-ba05-5f7da4603557", - "portID": "input-0" - } - }, - { - "linkID": "link-003de26b-c684-4bf1-b635-e10fe5bd1341", - "source": { - "operatorID": "Histogram-operator-77939ed1-9f38-4f3b-be58-31a38916faa1", - "portID": "output-0" - }, - "target": { - "operatorID": "Dendrogram-operator-00a7c79c-8ac3-4ef4-b7ac-b99affe5ad2e", - "portID": "input-0" - } - }, - { - "linkID": "link-d9b3571b-db9f-4af4-9f0f-d3934c7ee1ee", - "source": { - "operatorID": "ContourPlot-operator-d430f695-c9a0-4c48-8cc2-776b5b5be8c0", - "portID": "output-0" - }, - "target": { - "operatorID": "HeatMap-operator-55972f50-222c-4f85-9041-9a1a3a65605d", - "portID": "input-0" - } - }, - { - "linkID": "link-3f9e6104-379d-4b1f-a083-34fd5239b4ca", - "source": { - "operatorID": "NetworkGraph-operator-f3c26f3a-8e31-4ac2-a477-7e747e31491e", - "portID": "output-0" - }, - "target": { - "operatorID": "ContourPlot-operator-d430f695-c9a0-4c48-8cc2-776b5b5be8c0", - "portID": "input-0" - } - }, - { - "linkID": "link-69efc9d9-bbca-421a-b268-d5208a54b67f", - "source": { - "operatorID": "QuiverPlot-operator-1ed3209b-4831-492e-aab1-c44b9ae78430", - "portID": "output-0" - }, - "target": { - "operatorID": "NetworkGraph-operator-f3c26f3a-8e31-4ac2-a477-7e747e31491e", - "portID": "input-0" - } - }, - { - "linkID": "link-681eb00e-4347-474c-b069-ec8f26e7b642", - "source": { - "operatorID": "Dendrogram-operator-00a7c79c-8ac3-4ef4-b7ac-b99affe5ad2e", - "portID": "output-0" - }, - "target": { - "operatorID": "QuiverPlot-operator-dcebfefd-9f3a-4702-93ae-8a374c2a5c60", - "portID": "input-0" - } - }, - { - "linkID": "link-48d763c5-e40c-4365-893b-761f795750e7", - "source": { - "operatorID": "HeatMap-operator-55972f50-222c-4f85-9041-9a1a3a65605d", - "portID": "output-0" - }, - "target": { - "operatorID": "TernaryPlot-operator-2000371f-c80f-41c2-a51c-a00a0ed3ac10", - "portID": "input-0" - } - }, - { - "linkID": "link-a4a7a917-0119-43b4-a277-9846f94e942e", - "source": { - "operatorID": "VolcanoPlot-operator-2ca7d2cd-69f3-4d26-935d-07cb048096d6", - "portID": "output-0" - }, - "target": { - "operatorID": "QuiverPlot-operator-1ed3209b-4831-492e-aab1-c44b9ae78430", - "portID": "input-0" - } - }, - { - "linkID": "link-14f8db40-5d82-4481-917e-bb58e99a1bea", - "source": { - "operatorID": "VolcanoPlot-operator-6a436ad1-b8c7-4804-af86-2ec7f6106f72", - "portID": "output-0" - }, - "target": { - "operatorID": "TernaryPlot-operator-dd361c61-76a7-44f3-aa56-2ff10ce5ceaf", - "portID": "input-0" - } - }, - { - "linkID": "link-13314015-aaec-4135-9c4b-28bd5eb9bde6", - "source": { - "operatorID": "CandlestickChart-operator-7f934e53-f4e0-4cb5-a0dc-db96f7d3de47", - "portID": "output-0" - }, - "target": { - "operatorID": "VolcanoPlot-operator-2ca7d2cd-69f3-4d26-935d-07cb048096d6", - "portID": "input-0" - } - }, - { - "linkID": "link-8d462478-100f-40f5-8bcd-ded0e6309ba7", - "source": { - "operatorID": "FunnelPlot-operator-1ace8f58-05f7-4fae-8b7a-48fa05ca869f", - "portID": "output-0" - }, - "target": { - "operatorID": "VolcanoPlot-operator-6a436ad1-b8c7-4804-af86-2ec7f6106f72", - "portID": "input-0" - } - }, - { - "linkID": "link-46c41f5d-4114-4f2d-9f9a-f00c8b373466", - "source": { - "operatorID": "WaterfallChart-operator-e51ec00c-1815-4c16-b50e-2292e5780461", - "portID": "output-0" - }, - "target": { - "operatorID": "GaugeChart-operator-bdfb4bfd-51db-4300-a76b-919b66acbd34", - "portID": "input-0" - } - }, - { - "linkID": "link-1b06e764-16df-46b7-aac4-63d3b172abbe", - "source": { - "operatorID": "HTMLVisualizer-operator-c815a669-81af-4adb-865b-d9f2404cc249", - "portID": "output-0" - }, - "target": { - "operatorID": "CandlestickChart-operator-7f934e53-f4e0-4cb5-a0dc-db96f7d3de47", - "portID": "input-0" - } - }, - { - "linkID": "link-d216ac60-ff87-4c08-9ad2-db305e60420a", - "source": { - "operatorID": "ImageVisualizer-operator-569d29a2-d6d7-408d-8b3e-1920ae25fac3", - "portID": "output-0" - }, - "target": { - "operatorID": "FunnelPlot-operator-1ace8f58-05f7-4fae-8b7a-48fa05ca869f", - "portID": "input-0" - } - }, - { - "linkID": "link-135a2eee-804c-4997-8aba-3bdebd1747d8", - "source": { - "operatorID": "URLVisualizer-operator-187113ba-5c92-4e55-beff-8c23923cae3d", - "portID": "output-0" - }, - "target": { - "operatorID": "ImageVisualizer-operator-569d29a2-d6d7-408d-8b3e-1920ae25fac3", - "portID": "input-0" - } - }, - { - "linkID": "link-d2392f2a-c338-4f1d-b611-07f5eb36f16a", - "source": { - "operatorID": "ChoroplethMap-operator-e0b89bb9-e0f9-45eb-91e9-681d8ea4d5f0", - "portID": "output-0" - }, - "target": { - "operatorID": "URLVisualizer-operator-187113ba-5c92-4e55-beff-8c23923cae3d", - "portID": "input-0" - } - }, - { - "linkID": "link-a291b356-364d-4ab7-a969-3aca0d4404ce", - "source": { - "operatorID": "Scatter3DChart-operator-929fb224-6e2f-4917-84ed-b04c361424c7", - "portID": "output-0" - }, - "target": { - "operatorID": "NestedTable-operator-b107f3d0-9a4c-4118-8a5b-836bb94dc2a2", - "portID": "input-0" - } - }, - { - "linkID": "link-78af87f8-94d7-4d5a-9ca8-1373ef7113ad", - "source": { - "operatorID": "NestedTable-operator-b107f3d0-9a4c-4118-8a5b-836bb94dc2a2", - "portID": "output-0" - }, - "target": { - "operatorID": "WordCloud-operator-83815e13-64dc-4cb1-be4c-295d1f93fee6", - "portID": "input-0" - } - }, - { - "linkID": "link-968b2431-f25e-4de4-bc28-4cf692ccac35", - "source": { - "operatorID": "WordCloud-operator-83815e13-64dc-4cb1-be4c-295d1f93fee6", - "portID": "output-0" - }, - "target": { - "operatorID": "If-operator-8febb7e9-56b7-41c3-ae3e-b3dab428a7cd", - "portID": "input-0" - } - } - ], - "commentBoxes": [], - "settings": { - "dataTransferBatchSize": 400, - "executionMode": "PIPELINED" - } -} \ No newline at end of file diff --git a/common/workflow-operator/src/main/scala/py2udf/clean_sp500_2000.csv b/common/workflow-operator/src/main/scala/py2udf/clean_sp500_2000.csv deleted file mode 100644 index b1e782376af..00000000000 --- a/common/workflow-operator/src/main/scala/py2udf/clean_sp500_2000.csv +++ /dev/null @@ -1,5106 +0,0 @@ -date,open,high,low,close,volume,daily_return,ma_30 -2000-01-03,1469.25,1478.0,1438.359985,1455.219971,931800000,, -2000-01-04,1455.219971,1455.219971,1397.430054,1399.420044,1009000000,-3.834466823710192, -2000-01-05,1399.420044,1413.27002,1377.680054,1402.109985,1085500000,0.19221827009932024, -2000-01-06,1402.109985,1411.900024,1392.099976,1403.449951,1092300000,0.09556782380377715, -2000-01-07,1403.449951,1441.469971,1400.72998,1441.469971,1225200000,2.7090399606277016, -2000-01-10,1441.469971,1464.359985,1441.469971,1457.599976,1064800000,1.1189969492607643, -2000-01-11,1457.599976,1458.660034,1434.420044,1438.560059,1014000000,-1.306251187808749, -2000-01-12,1438.560059,1442.599976,1427.079956,1432.25,974600000,-0.4386371608555817, -2000-01-13,1432.25,1454.199951,1432.25,1449.680054,1030400000,1.2169700820387375, -2000-01-14,1449.680054,1473.0,1449.680054,1465.150024,1085900000,1.067129947557377, -2000-01-18,1465.150024,1465.150024,1451.300049,1455.140015,1056700000,-0.6832071007084828, -2000-01-19,1455.140015,1461.390015,1448.680054,1455.900024,1087800000,0.05222926949748352, -2000-01-20,1455.900024,1465.709961,1438.540039,1445.569946,1100700000,-0.7095320990255005, -2000-01-21,1445.569946,1453.180054,1439.599976,1441.359985,1209800000,-0.29123191248194846, -2000-01-24,1441.359985,1454.089966,1395.420044,1401.530029,1115800000,-2.7633593560598246, -2000-01-25,1401.530029,1414.26001,1388.48999,1410.030029,1073700000,0.6064800485270139, -2000-01-26,1410.030029,1412.72998,1400.160034,1404.089966,1117300000,-0.4212720919293256, -2000-01-27,1404.089966,1418.859985,1370.98999,1398.560059,1129500000,-0.39384278314827936, -2000-01-28,1398.560059,1398.560059,1356.199951,1360.160034,1095800000,-2.7456829438884944, -2000-01-31,1360.160034,1394.47998,1350.140015,1394.459961,993800000,2.521756715577772, -2000-02-01,1394.459961,1412.48999,1384.790039,1409.280029,981000000,1.0627818951052692, -2000-02-02,1409.280029,1420.609985,1403.48999,1409.119995,1038600000,-0.01135572751382874, -2000-02-03,1409.119995,1425.780029,1398.52002,1424.969971,1146500000,1.124813788480794, -2000-02-04,1424.969971,1435.910034,1420.630005,1424.369995,1045100000,-0.04210446621404351, -2000-02-07,1424.369995,1427.150024,1413.329956,1424.23999,918100000,-0.0091271931068726, -2000-02-08,1424.23999,1441.829956,1424.23999,1441.719971,1047700000,1.2273199125661272, -2000-02-09,1441.719971,1444.550049,1411.650024,1411.709961,1050500000,-2.0815422275925477, -2000-02-10,1411.699951,1422.099976,1406.430054,1416.829956,1058800000,0.3626803763836284, -2000-02-11,1416.829956,1416.829956,1378.890015,1387.119995,1025700000,-2.0969320188484186, -2000-02-14,1387.119995,1394.930054,1380.530029,1389.939941,927300000,0.2032950292811586,1421.7003295666666 -2000-02-15,1389.939941,1407.719971,1376.25,1402.050049,1092100000,0.8712684370583146,1419.9279988333333 -2000-02-16,1402.050049,1404.550049,1385.579956,1387.670044,1018800000,-1.025641346416728,1419.5363321666669 -2000-02-17,1387.670044,1399.880005,1380.069946,1388.26001,1034800000,0.04251486169575269,1419.0746663333334 -2000-02-18,1388.26001,1388.589966,1345.319946,1346.089966,1042300000,-3.037618579822088,1417.1626668333333 -2000-02-22,1346.089966,1358.109985,1331.880005,1352.170044,980000000,0.4516843712955687,1414.1860026 -2000-02-23,1352.170044,1370.109985,1342.439941,1360.689941,993700000,0.6300906485693591,1410.9556681 -2000-02-24,1360.689941,1364.800049,1329.880005,1353.430054,1215000000,-0.5335445483388157,1408.1180012666666 -2000-02-25,1353.430054,1362.140015,1329.150024,1333.359985,1065200000,-1.4829040437430607,1404.8216674333332 -2000-02-28,1333.359985,1360.819946,1325.069946,1348.050049,1026500000,1.1017327777389285,1401.4340006 -2000-02-29,1348.050049,1369.630005,1348.050049,1366.420044,1204300000,1.362708677888258,1398.1430012666667 -2000-03-01,1366.420044,1383.459961,1366.420044,1379.189941,1274100000,0.9345513523512095,1395.6113321333332 -2000-03-02,1379.189941,1386.560059,1370.349976,1381.76001,1198600000,0.1863462691829465,1393.1399983333333 -2000-03-03,1381.76001,1410.880005,1381.76001,1409.170044,1150300000,1.9837043916186348,1391.9266682666669 -2000-03-06,1409.170044,1409.73999,1384.75,1391.280029,1029000000,-1.2695426698979717,1390.2573364000002 -2000-03-07,1391.280029,1399.209961,1349.98999,1355.619995,1314100000,-2.5631097447457174,1388.7270019333334 -2000-03-08,1355.619995,1373.790039,1346.619995,1366.699951,1203000000,0.8173349493860282,1387.2826659999998 -2000-03-09,1366.699951,1401.819946,1357.880005,1401.689941,1123000000,2.560180819088953,1387.2026651666667 -2000-03-10,1401.689941,1413.459961,1392.069946,1395.069946,1138800000,-0.4722866881157195,1387.0863280666667 -2000-03-13,1395.069946,1398.390015,1364.839966,1383.619995,1016100000,-0.8207438654118993,1387.8683267666668 -2000-03-14,1383.619995,1395.150024,1359.150024,1359.150024,1094000000,-1.768547078564009,1386.6913288666667 -2000-03-15,1359.150024,1397.98999,1356.98999,1392.140015,1302800000,2.4272516217827,1386.1199950666667 -2000-03-16,1392.150024,1458.469971,1392.150024,1458.469971,1482300000,4.764603795976652,1387.7649942666665 -2000-03-17,1458.469971,1477.329956,1453.319946,1464.469971,1295100000,0.4113900264868686,1389.0816609333335 -2000-03-20,1464.469971,1470.300049,1448.48999,1456.630005,920800000,-0.5353449476773187,1390.1569946000002 -2000-03-21,1456.630005,1493.920044,1446.060059,1493.869995,1065900000,2.5565853972642882,1392.4779947666668 -2000-03-22,1493.869995,1505.079956,1487.329956,1500.640015,1075000000,0.4531866911216653,1394.4419962333334 -2000-03-23,1500.640015,1532.5,1492.390015,1527.349976,1078300000,1.7799046228951898,1398.2966634 -2000-03-24,1527.349976,1552.869995,1516.829956,1527.459961,1052200000,0.007201034584625177,1401.9843302333331 -2000-03-27,1527.459961,1534.630005,1518.459961,1523.859985,901000000,-0.23568382097839402,1406.5423299 -2000-03-28,1523.859985,1527.359985,1507.089966,1507.72998,959100000,-1.0584965258471524,1410.4686645333334 -2000-03-29,1507.72998,1521.449951,1497.449951,1508.52002,1061900000,0.05239930295741768,1414.017663566667 -2000-03-30,1508.52002,1517.380005,1474.630005,1487.920044,1193400000,-1.36557524771862,1417.3593302333334 -2000-03-31,1487.920044,1519.810059,1484.380005,1498.579956,1227400000,0.7164304320642634,1421.0366617666666 -2000-04-03,1498.579956,1507.189941,1486.959961,1505.969971,1021700000,0.4931345151396149,1426.3659952666667 -2000-04-04,1505.97998,1526.449951,1416.410034,1494.72998,1515460000,-0.7463622261031033,1431.1179931333331 -2000-04-05,1494.72998,1506.550049,1478.050049,1487.369995,1110300000,-0.49239562318807995,1435.3406616 -2000-04-06,1487.369995,1511.76001,1487.369995,1501.339966,1008000000,0.9392398022658677,1440.270992 -2000-04-07,1501.339966,1518.680054,1501.339966,1516.349976,891600000,0.9997742243544661,1446.3706583666667 -2000-04-10,1516.349976,1527.189941,1503.349976,1504.459961,853700000,-0.7841207628970226,1451.5843221 -2000-04-11,1504.459961,1512.800049,1486.780029,1500.589966,971400000,-0.25723482846480294,1456.0566528333334 -2000-04-12,1500.589966,1509.079956,1466.150024,1467.170044,1175900000,-2.2271188504002115,1458.9893229333334 -2000-04-13,1467.170044,1477.52002,1439.339966,1440.51001,1032000000,-1.8171059386760446,1460.9476562666666 -2000-04-14,1440.51001,1440.51001,1339.400024,1356.560059,1279700000,-5.827793657608815,1459.1939901 -2000-04-17,1356.560059,1401.530029,1346.5,1401.439941,1204700000,3.3083593831506164,1459.5326538333331 -2000-04-18,1401.439941,1441.609985,1397.810059,1441.609985,1109400000,2.866340741747142,1462.3989868333333 -2000-04-19,1441.609985,1447.689941,1424.26001,1427.469971,1001400000,-0.9808487834523483,1464.4246541666666 -2000-04-20,1427.469971,1435.48999,1422.079956,1434.540039,896200000,0.495286636050718,1465.5196574333334 -2000-04-24,1434.540039,1434.540039,1407.130005,1429.859985,868700000,-0.32624073729321523,1466.6793254000002 -2000-04-25,1429.859985,1477.670044,1429.859985,1477.439941,1071100000,3.32759546383139,1469.8066569333334 -2000-04-26,1477.439941,1482.939941,1456.97998,1460.98999,999600000,-1.113409116912456,1473.2013224666666 -2000-04-27,1460.98999,1469.209961,1434.810059,1464.920044,1111000000,0.2689993789758871,1475.6273234333335 -2000-04-28,1464.920044,1473.619995,1448.150024,1452.430054,984600000,-0.8526055774276786,1475.4259928666665 -2000-05-01,1452.430054,1481.51001,1452.430054,1468.25,966300000,1.089205360108858,1475.5519938333334 -2000-05-02,1468.25,1468.25,1445.219971,1446.290039,1011500000,-1.4956554401498345,1475.2073283 -2000-05-03,1446.290039,1446.290039,1398.359985,1415.099976,991600000,-2.1565565798659314,1472.581661 -2000-05-04,1415.099976,1420.98999,1404.939941,1409.569946,925800000,-0.3907872301454951,1469.5459920333333 -2000-05-05,1409.569946,1436.030029,1405.079956,1432.630005,805500000,1.6359641510120593,1466.3886596666669 -2000-05-08,1432.630005,1432.630005,1417.050049,1424.170044,787600000,-0.5905196017446213,1462.9456624333334 -2000-05-09,1424.170044,1430.280029,1401.849976,1412.140015,896600000,-0.8447045386667296,1459.2216634333333 -2000-05-10,1412.140015,1412.140015,1375.140015,1383.050049,1006400000,-2.0599916220064074,1455.0656657333334 -2000-05-11,1383.050049,1410.26001,1383.050049,1407.810059,953600000,1.790246854616906,1451.7086670333333 -2000-05-12,1407.810059,1430.130005,1407.810059,1420.959961,858200000,0.9340679103643224,1449.4766642666666 -2000-05-15,1420.959961,1452.390015,1416.540039,1452.359985,854600000,2.209775423784799,1447.9359985666667 -2000-05-16,1452.359985,1470.400024,1450.76001,1466.040039,955500000,0.9419189554440877,1446.6050008333334 -2000-05-17,1466.040039,1466.040039,1441.670044,1447.800049,820500000,-1.2441672474676535,1445.0406698000002 -2000-05-18,1447.800049,1458.040039,1436.589966,1437.209961,807900000,-0.7314606742356844,1443.3686686666667 -2000-05-19,1437.209961,1437.209961,1401.73999,1406.949951,853700000,-2.105468986517822,1440.2223348333334 -2000-05-22,1406.949951,1410.550049,1368.72998,1400.719971,869000000,-0.44280039923041414,1436.3680013333333 -2000-05-23,1400.719971,1403.77002,1373.430054,1373.859985,869900000,-1.9175842820905897,1432.0146687999998 -2000-05-24,1373.859985,1401.75,1361.089966,1399.050049,1152300000,1.8335248333184229,1428.6300049 -2000-05-25,1399.050049,1411.650024,1373.930054,1381.52002,984500000,-1.252995131412915,1425.7750041 -2000-05-26,1381.52002,1391.420044,1369.75,1378.02002,722600000,-0.25334413901580977,1423.6920044333335 -2000-05-30,1378.02002,1422.449951,1378.02002,1422.449951,844200000,3.2241861769178204,1425.8883341666665 -2000-05-31,1422.439941,1434.48999,1415.5,1420.599976,960500000,-0.13005554246035,1426.527002 -2000-06-01,1420.599976,1448.810059,1420.599976,1448.810059,960100000,1.9857865322109536,1426.7670044666665 -2000-06-02,1448.810059,1483.22998,1448.810059,1477.26001,1162400000,1.9636770757677446,1428.4266724333331 -2000-06-05,1477.26001,1477.280029,1464.680054,1467.630005,838600000,-0.651882873347398,1429.5296713 -2000-06-06,1467.630005,1471.359985,1454.73999,1457.839966,950100000,-0.6670645167138001,1430.4623373333334 -2000-06-07,1457.839966,1474.640015,1455.060059,1471.359985,854600000,0.9274007651948191,1430.2596721333332 -2000-06-08,1471.359985,1475.650024,1456.48999,1461.670044,854300000,-0.6585703769835805,1430.2823406 -2000-06-09,1461.670044,1472.670044,1454.959961,1456.949951,786000000,-0.3229246586379353,1430.0166708333334 -2000-06-12,1456.949951,1462.930054,1445.98999,1446.0,774100000,-0.7515667228297329,1429.8023356999997 -2000-06-13,1446.0,1470.420044,1442.380005,1469.439941,935900000,1.6210194329183913,1429.8420004 -2000-06-14,1469.439941,1483.619995,1467.709961,1470.540039,929700000,0.07486512169059267,1430.6503337333334 -2000-06-15,1470.540039,1482.040039,1464.619995,1478.72998,1011400000,0.5569342406732014,1432.7713338666665 -2000-06-16,1478.72998,1480.77002,1460.420044,1464.459961,1250800000,-0.9650185762785424,1434.6010010333334 -2000-06-19,1464.459961,1488.930054,1459.050049,1486.0,921700000,1.470852025567937,1436.3800008666665 -2000-06-20,1486.0,1487.319946,1470.180054,1475.949951,1031500000,-0.6763155450874803,1438.1059977666666 -2000-06-21,1475.949951,1482.189941,1468.0,1479.130005,1009600000,0.21545811887764277,1440.3389974333334 -2000-06-22,1479.130005,1479.130005,1448.030029,1452.180054,1022700000,-1.822013677560419,1442.6433309333333 -2000-06-23,1452.180054,1459.939941,1438.310059,1441.47998,847600000,-0.7368283272123688,1443.7656616333334 -2000-06-26,1441.47998,1459.660034,1441.47998,1455.310059,889000000,0.9594360790220469,1444.9106648999998 -2000-06-27,1455.310059,1463.349976,1450.550049,1450.550049,1042500000,-0.3270787534630726,1444.8503337 -2000-06-28,1450.550049,1467.630005,1450.550049,1454.819946,1095100000,0.2943639899184225,1444.4763305999998 -2000-06-29,1454.819946,1455.140015,1434.630005,1442.390015,1110900000,-0.8543965206262105,1444.2959961333333 -2000-06-30,1442.390015,1454.680054,1438.709961,1454.599976,1459700000,0.8465089797505376,1444.8756633 -2000-07-03,1454.599976,1469.579956,1450.849976,1469.540039,451900000,1.027090832290778,1446.9619995666665 -2000-07-05,1469.540039,1469.540039,1442.449951,1446.22998,1019300000,-1.5862146237173635,1448.4789998666668 -2000-07-06,1446.22998,1461.650024,1439.560059,1456.670044,947300000,0.7218813151695258,1451.2393351666667 -2000-07-07,1456.670044,1484.119995,1456.670044,1478.900024,931700000,1.526082045248689,1453.9010009999997 -2000-07-10,1478.900024,1486.560059,1474.76001,1475.619995,838700000,-0.22178842022927414,1457.0376668333333 -2000-07-11,1475.619995,1488.77002,1470.47998,1480.880005,980500000,0.3564610142057667,1460.4663329999998 -2000-07-12,1480.880005,1497.689941,1480.880005,1492.920044,1001200000,0.8130327210407629,1462.8153361000002 -2000-07-13,1492.920044,1501.390015,1489.650024,1495.839966,1026800000,0.1955846203375078,1465.3233357666666 -2000-07-14,1495.839966,1509.98999,1494.560059,1509.97998,960600000,0.9452892235398469,1467.3623331333333 -2000-07-17,1509.97998,1517.319946,1505.26001,1510.48999,906000000,0.033775944499603305,1468.4699991333332 -2000-07-18,1510.48999,1510.48999,1491.349976,1493.73999,908300000,-1.1089116850089176,1469.3403319666666 -2000-07-19,1493.73999,1495.630005,1479.920044,1481.959961,909400000,-0.7886264730717962,1470.1443318 -2000-07-20,1481.959961,1501.920044,1481.959961,1495.569946,1064600000,0.9183773757839075,1470.9513305 -2000-07-21,1495.569946,1495.569946,1477.910034,1480.189941,968300000,-1.0283708255260704,1471.5686604000002 -2000-07-24,1480.189941,1485.880005,1463.800049,1464.290039,880300000,-1.0741798440582762,1471.8133300000002 -2000-07-25,1464.290039,1476.22998,1464.290039,1474.469971,969400000,0.6952128150070624,1472.7623290333333 -2000-07-26,1474.469971,1474.469971,1452.420044,1452.420044,1235800000,-1.4954476817893747,1472.1949991333333 -2000-07-27,1452.420044,1464.910034,1445.329956,1449.619995,1156400000,-0.1927850701019307,1471.4976643333332 -2000-07-28,1449.619995,1456.680054,1413.890015,1419.890015,980000000,-2.050880927590959,1469.5363321666666 -2000-07-31,1419.890015,1437.650024,1418.709961,1430.829956,952600000,0.7704780570627623,1468.415332 -2000-08-01,1430.829956,1443.540039,1428.959961,1438.099976,938700000,0.5080981125334949,1466.8186645333333 -2000-08-02,1438.099976,1451.589966,1433.48999,1438.699951,994500000,0.04171997844466535,1465.5769978666665 -2000-08-03,1438.699951,1454.189941,1425.430054,1452.560059,1095600000,0.9633772483530034,1464.691333 -2000-08-04,1452.560059,1462.930054,1451.310059,1462.930054,956000000,0.7139116166486881,1465.0496663333333 -2000-08-07,1462.930054,1480.800049,1460.719971,1479.319946,854800000,1.12034693355203,1466.3109985333333 -2000-08-08,1479.319946,1484.52002,1472.609985,1482.800049,992200000,0.2352501911036864,1467.2273315333334 -2000-08-09,1482.800049,1490.329956,1471.160034,1472.869995,1054000000,-0.6696826053315008,1467.9713297333333 -2000-08-10,1472.869995,1475.150024,1459.890015,1460.25,940800000,-0.8568302051668919,1468.1523315333334 -2000-08-11,1460.25,1475.719971,1453.060059,1471.839966,835500000,0.793697380585523,1469.1339965666666 -2000-08-14,1471.839966,1491.640015,1468.560059,1491.560059,783800000,1.3398258951748065,1470.3659993333335 -2000-08-15,1491.560059,1493.119995,1482.73999,1484.430054,895900000,-0.47802332577745466,1470.8623331666668 -2000-08-16,1484.430054,1496.089966,1475.73999,1479.849976,929800000,-0.3085411796708293,1471.9829997 -2000-08-17,1479.849976,1499.319946,1479.849976,1496.069946,922400000,1.0960550233505728,1473.2963297666668 -2000-08-18,1496.069946,1499.469971,1488.98999,1491.719971,821400000,-0.29076013535533907,1473.7236613333334 -2000-08-21,1491.719971,1502.839966,1491.130005,1499.47998,731600000,0.5202054776271448,1474.5189941666665 -2000-08-22,1499.47998,1508.449951,1497.420044,1498.130005,818800000,-0.09002954477592695,1475.0939941666668 -2000-08-23,1498.130005,1507.199951,1489.52002,1505.969971,871000000,0.5233167998661026,1475.5289917333332 -2000-08-24,1505.969971,1511.160034,1501.25,1508.310059,837100000,0.15538742770853098,1475.9446615 -2000-08-25,1508.310059,1513.469971,1505.089966,1506.449951,685600000,-0.12332398029839542,1475.8269938666667 -2000-08-28,1506.449951,1523.949951,1506.449951,1514.089966,733600000,0.5071535894656476,1475.9469930666667 -2000-08-29,1514.089966,1514.810059,1505.459961,1509.839966,795600000,-0.2806966623804974,1476.4836589333331 -2000-08-30,1509.839966,1510.48999,1500.089966,1502.589966,818400000,-0.4801833414972645,1477.1713257666665 -2000-08-31,1502.589966,1525.209961,1502.589966,1517.680054,1056600000,1.0042718467081713,1477.9083293666667 -2000-09-01,1517.680054,1530.089966,1515.530029,1520.77002,767700000,0.20359798442735055,1479.2609986666664 -2000-09-05,1520.77002,1520.77002,1504.209961,1507.079956,838500000,-0.900206067976006,1480.6873292333332 -2000-09-06,1507.079956,1512.609985,1492.119995,1492.25,995100000,-0.9840191916134833,1481.2799968666666 -2000-09-07,1492.25,1505.339966,1492.25,1502.51001,985500000,0.6875530239571104,1482.9496623999999 -2000-09-08,1502.51001,1502.51001,1489.880005,1494.5,961000000,-0.5331085947307579,1484.4456625666667 -2000-09-11,1494.5,1506.76001,1483.01001,1489.26001,899300000,-0.3506182669789304,1486.7579957333335 -2000-09-12,1489.26001,1496.930054,1479.670044,1481.98999,991200000,-0.4881632455839502,1488.4633302 -2000-09-13,1481.98999,1487.449951,1473.609985,1484.910034,1068300000,0.19703533894990244,1490.0236654666667 -2000-09-14,1484.910034,1494.160034,1476.72998,1480.869995,1014000000,-0.2720729813588174,1491.4293336 -2000-09-15,1480.869995,1480.959961,1460.219971,1465.810059,1268400000,-1.0169654359159397,1491.8710002666667 -2000-09-18,1465.810059,1467.77002,1441.920044,1444.51001,962500000,-1.4531247666925706,1491.2569988 -2000-09-19,1444.51001,1461.160034,1444.51001,1459.900024,1024900000,1.065414146905086,1490.6096680666667 -2000-09-20,1459.900024,1460.48999,1430.949951,1451.339966,1104000000,-0.5863454934774359,1489.5609986333334 -2000-09-21,1451.339966,1452.77002,1436.300049,1449.050049,1105400000,-0.15777950402008356,1488.7670004333334 -2000-09-22,1449.050049,1449.050049,1421.880005,1448.719971,1185500000,-0.022778923352417824,1488.3826661333333 -2000-09-25,1448.719971,1457.420044,1435.930054,1439.030029,982400000,-0.6688623194247345,1487.2890015666667 -2000-09-26,1439.030029,1448.040039,1425.25,1427.209961,1106600000,-0.8213913373450565,1485.1439982999998 -2000-09-27,1427.209961,1437.219971,1419.439941,1426.569946,1174700000,-0.04484378735357675,1483.2153280333332 -2000-09-28,1426.569946,1461.689941,1425.780029,1458.290039,1206200000,2.223521748018098,1482.4966634666669 -2000-09-29,1458.290039,1458.290039,1436.290039,1436.51001,1197100000,-1.4935320421536558,1480.5113322666666 -2000-10-02,1436.52002,1445.599976,1429.829956,1436.22998,1051200000,-0.019493772967160705,1478.6616659 -2000-10-03,1436.22998,1454.819946,1425.280029,1426.459961,1098100000,-0.6802544951749367,1476.2276652666667 -2000-10-04,1426.459961,1439.98999,1416.310059,1434.319946,1167400000,0.5510133627928848,1474.1006633 -2000-10-05,1434.319946,1444.170044,1431.800049,1436.280029,1176100000,0.1366559117766064,1471.7776652333334 -2000-10-06,1436.280029,1443.300049,1397.060059,1408.98999,1150100000,-1.9000500215129001,1468.4669962666667 -2000-10-09,1408.98999,1409.689941,1392.47998,1402.030029,716600000,-0.49396809412393106,1464.9863321999999 -2000-10-10,1402.030029,1408.829956,1383.849976,1387.02002,1044000000,-1.0705911206984609,1460.7506673333335 -2000-10-11,1387.02002,1387.02002,1349.670044,1364.589966,1387500000,-1.617139888146668,1455.9090006666668 -2000-10-12,1364.589966,1374.930054,1328.060059,1329.780029,1388600000,-2.550944816195433,1450.1486694333332 -2000-10-13,1329.780029,1374.170044,1327.079956,1374.170044,1223900000,3.33814721472252,1445.3650024333333 -2000-10-16,1374.170044,1379.47998,1365.060059,1374.619995,1005400000,0.032743473194218886,1440.4933349333335 -2000-10-17,1374.619995,1380.98999,1342.339966,1349.969971,1161500000,-1.7932246067757784,1435.2563354333333 -2000-10-18,1349.969971,1356.650024,1305.790039,1342.130005,1441700000,-0.5807511402785126,1430.2523356 -2000-10-19,1342.130005,1389.930054,1342.130005,1388.76001,1297900000,3.474328479825628,1426.4606689333334 -2000-10-20,1388.76001,1408.469971,1382.189941,1396.930054,1177400000,0.5882977577961856,1423.2083374000001 -2000-10-23,1396.930054,1406.959961,1387.75,1395.780029,1046800000,-0.08232516701225379,1420.0923380333331 -2000-10-24,1395.780029,1415.640015,1388.130005,1398.130005,1158600000,0.16836291902553313,1417.2970051999998 -2000-10-25,1398.130005,1398.130005,1362.209961,1364.900024,1315600000,-2.3767447148092646,1413.2966715333334 -2000-10-26,1364.900024,1372.719971,1337.810059,1364.439941,1303800000,-0.03370818315701074,1409.4156697333335 -2000-10-27,1364.439941,1384.569946,1364.130005,1379.579956,1086300000,1.1096138822280333,1406.5413329666665 -2000-10-30,1379.579956,1406.359985,1376.859985,1398.660034,1186500000,1.383035315714598,1405.0130004333332 -2000-10-31,1398.660034,1432.219971,1398.660034,1429.400024,1366400000,2.1978171430327764,1403.9963337666666 -2000-11-01,1429.400024,1429.599976,1410.449951,1421.219971,1206800000,-0.5722717827518431,1402.9923339333332 -2000-11-02,1421.219971,1433.400024,1421.219971,1428.319946,1167700000,0.499569042433623,1402.3013305 -2000-11-03,1428.319946,1433.209961,1420.920044,1426.689941,997700000,-0.11412043951110062,1401.5669961666667 -2000-11-06,1428.76001,1438.459961,1427.719971,1432.189941,930900000,0.38550772960135316,1401.3389932333334 -2000-11-07,1432.189941,1436.219971,1423.26001,1431.869995,880900000,-0.022339634628121274,1401.4943277 -2000-11-08,1431.869995,1437.280029,1408.780029,1409.280029,909300000,-1.5776548205411633,1400.9179971333333 -2000-11-09,1409.280029,1409.280029,1369.680054,1400.140015,1111000000,-0.6485591090427678,1398.9796629999998 -2000-11-10,1400.140015,1400.140015,1365.969971,1365.97998,962500000,-2.439758498009925,1396.6286619999998 -2000-11-13,1365.97998,1365.97998,1328.619995,1351.26001,1129300000,-1.0776124259156528,1393.796329666667 -2000-11-14,1351.26001,1390.060059,1351.26001,1382.949951,1118800000,2.345214153122166,1392.345996 -2000-11-15,1382.949951,1395.959961,1374.75,1389.810059,1066800000,0.4960488985909617,1390.8623331000001 -2000-11-16,1389.810059,1394.76001,1370.390015,1372.319946,956300000,-1.2584534761954758,1388.730330333333 -2000-11-17,1372.319946,1384.849976,1355.550049,1367.719971,1070400000,-0.335196978912089,1387.3546630333333 -2000-11-20,1367.719971,1367.719971,1341.670044,1342.619995,955800000,-1.835169225587041,1385.3743285666667 -2000-11-21,1342.619995,1355.869995,1333.619995,1347.349976,1137100000,0.35229484274141853,1384.0519937666666 -2000-11-22,1347.349976,1347.349976,1321.890015,1322.359985,963200000,-1.8547512854967363,1382.6443277333333 -2000-11-24,1322.359985,1343.829956,1322.359985,1341.77002,404870000,1.4678329063322337,1383.0439941000002 -2000-11-27,1341.77002,1362.5,1341.77002,1348.969971,946100000,0.5366009742861833,1382.2039916666665 -2000-11-28,1348.969971,1358.810059,1334.969971,1336.089966,1028200000,-0.9548029442384087,1380.9196573666666 -2000-11-29,1336.089966,1352.380005,1329.280029,1341.930054,402100000,0.43710290089851167,1380.651660133333 -2000-11-30,1341.910034,1341.910034,1294.900024,1314.949951,1186530000,-2.0105446568975838,1379.7456583333333 -2000-12-01,1314.949951,1334.670044,1307.02002,1315.22998,1195200000,0.021295791508046946,1377.2946573333334 -2000-12-04,1315.180054,1332.060059,1310.22998,1324.969971,1103000000,0.7405542109068852,1374.8959879 -2000-12-05,1324.969971,1376.560059,1324.969971,1376.540039,900300000,3.8921688135375776,1374.2546549 -2000-12-06,1376.540039,1376.540039,1346.150024,1351.459961,1399300000,-1.8219650202270565,1372.6989867666668 -2000-12-07,1351.459961,1353.5,1339.26001,1343.550049,1128000000,-0.5852864478609665,1371.9873209333334 -2000-12-08,1343.550049,1380.329956,1343.550049,1369.890015,1358300000,1.9604752364532185,1372.1689900666668 -2000-12-11,1369.890015,1389.050049,1364.140015,1380.199951,1202400000,0.7526104933321953,1372.1896565666668 -2000-12-12,1380.199951,1380.27002,1370.27002,1371.180054,1083400000,-0.6535210346489961,1371.2736572333336 -2000-12-13,1371.180054,1385.819946,1358.47998,1359.98999,1195100000,-0.8160900508548341,1368.9599894333332 -2000-12-14,1359.98999,1359.98999,1340.47998,1340.930054,1061300000,-1.4014761976299583,1366.2836588666667 -2000-12-15,1340.930054,1340.930054,1305.380005,1312.150024,1561100000,-2.146273768281126,1362.4113281333334 -2000-12-18,1312.150024,1332.319946,1312.150024,1322.73999,1189900000,0.8070697562247764,1358.9463297666666 -2000-12-19,1322.959961,1346.439941,1305.199951,1305.599976,1324900000,-1.29579616021136,1354.7266642666666 -2000-12-20,1305.599976,1305.599976,1261.160034,1264.73999,1421600000,-3.129594573460681,1349.1556640999997 -2000-12-21,1264.73999,1285.310059,1254.069946,1274.859985,1449900000,0.8001640716682079,1344.6749959666668 -2000-12-22,1274.859985,1305.969971,1274.859985,1305.949951,1087100000,2.4386965130135385,1341.5353271666668 -2000-12-26,1305.969971,1315.939941,1301.640015,1315.189941,806500000,0.7075301770121278,1339.8423258666667 -2000-12-27,1315.189941,1332.030029,1310.959961,1328.920044,1092700000,1.0439635045840001,1339.0976603333334 -2000-12-28,1328.920044,1335.930054,1325.780029,1334.219971,1015300000,0.3988145881258065,1337.4733276666666 -2000-12-29,1334.219971,1340.099976,1317.51001,1320.280029,1035500000,-1.0448008801391295,1335.15566 -2001-01-02,1320.280029,1320.280029,1276.050049,1283.27002,1129400000,-2.8031938821366564,1332.1873291333334 -2001-01-03,1283.27002,1347.76001,1274.619995,1347.560059,1880700000,5.009860590368964,1331.5153320666664 -2001-01-04,1347.560059,1350.23999,1329.140015,1333.339966,2131000000,-1.0552474381403387,1331.2059977666665 -2001-01-05,1333.339966,1334.77002,1294.949951,1298.349976,1430800000,-2.624236195737051,1329.5726644333333 -2001-01-08,1298.349976,1298.349976,1276.290039,1295.859985,1115500000,-0.19178118735528882,1328.6893311 -2001-01-09,1295.859985,1311.719971,1295.140015,1300.800049,1191300000,0.38121896325087334,1327.3236654 -2001-01-10,1300.800049,1313.76001,1287.280029,1313.27002,1296500000,0.9586385708999945,1326.1336670333333 -2001-01-11,1313.27002,1332.189941,1309.719971,1326.819946,1411200000,1.031769993500653,1325.8246663666666 -2001-01-12,1326.819946,1333.209961,1311.589966,1318.550049,1276000000,-0.6232870575191174,1325.0453328666665 -2001-01-16,1318.319946,1327.810059,1313.329956,1326.650024,1205700000,0.6143092563034136,1325.4353353000001 -2001-01-17,1326.650024,1346.920044,1325.410034,1329.469971,1349100000,0.21256148562056598,1325.9100016666666 -2001-01-18,1329.890015,1352.709961,1327.410034,1347.969971,1445000000,1.391531994219064,1326.6766683333333 -2001-01-19,1347.969971,1354.550049,1336.73999,1342.540039,1407800000,-0.4028229201553879,1325.5433349999998 -2001-01-22,1342.540039,1353.619995,1333.839966,1342.900024,1164000000,0.026813725441532377,1325.2580037666667 -2001-01-23,1342.900024,1362.900024,1339.630005,1360.400024,1232600000,1.3031498761816973,1325.8196696000002 -2001-01-24,1360.400024,1369.75,1357.280029,1364.300049,1309000000,0.2866822207583164,1325.6333373999998 -2001-01-25,1364.300049,1367.349976,1354.630005,1357.51001,1258000000,-0.4976939643868583,1324.8770060333334 -2001-01-26,1357.51001,1357.51001,1342.75,1354.949951,1098000000,-0.18858490774590342,1324.3360026 -2001-01-29,1354.920044,1365.540039,1350.359985,1364.170044,1053100000,0.6804748022755547,1324.4753377333334 -2001-01-30,1364.170044,1375.680054,1356.199951,1373.72998,1149800000,0.7007877091310899,1325.5686686000001 -2001-01-31,1373.72998,1383.369995,1364.660034,1366.01001,1295300000,-0.561971429057706,1327.3640014666667 -2001-02-01,1366.01001,1373.5,1359.339966,1373.469971,1118800000,0.5461132016155501,1329.0550008333335 -2001-02-02,1373.469971,1376.380005,1348.719971,1349.469971,1048400000,-1.7473989607887819,1330.517334 -2001-02-05,1349.469971,1354.560059,1344.47998,1354.310059,1013000000,0.3586658542993115,1333.5030029666668 -2001-02-06,1354.310059,1363.550049,1350.040039,1352.26001,1059600000,-0.15137220508527616,1336.0830038 -2001-02-07,1352.26001,1352.26001,1334.26001,1340.890015,1158300000,-0.8408142602693736,1337.2476725999998 -2001-02-08,1341.099976,1350.319946,1332.420044,1332.530029,1107200000,-0.6234654525337779,1337.8256755333334 -2001-02-09,1332.530029,1332.530029,1309.97998,1314.76001,1075500000,-1.3335548628000238,1337.3536744 -2001-02-12,1314.76001,1330.959961,1313.640015,1330.310059,1039100000,1.182729082245193,1337.2233439999998 -2001-02-13,1330.310059,1336.619995,1317.51001,1318.800049,1075200000,-0.8652125812423028,1337.1740113333333 -2001-02-14,1318.800049,1320.72998,1304.719971,1315.920044,1150300000,-0.21838071678749182,1338.2623454666666 -2001-02-15,1315.920044,1331.290039,1315.920044,1326.609985,1153700000,0.8123549032284627,1337.5640096666668 -2001-02-16,1326.609985,1326.609985,1293.180054,1301.530029,1257200000,-1.8905297173682944,1336.5036784333336 -2001-02-20,1301.530029,1307.160034,1278.439941,1278.939941,1112200000,-1.7356563042465134,1335.8566772666666 -2001-02-21,1278.939941,1282.969971,1253.160034,1255.27002,1208500000,-1.8507453118942196,1334.5036784333336 -2001-02-22,1255.27002,1259.939941,1228.329956,1252.819946,1365900000,-0.19518302524264008,1332.9043416666666 -2001-02-23,1252.819946,1252.819946,1215.439941,1245.859985,1231300000,-0.5555435976432044,1330.6573405000001 -2001-02-26,1245.859985,1267.689941,1241.709961,1267.650024,1130800000,1.7489958151276408,1328.6850097666668 -2001-02-27,1267.650024,1272.76001,1252.26001,1257.939941,1114100000,-0.7659908347069089,1326.6646728333333 -2001-02-28,1257.939941,1263.469971,1229.650024,1239.939941,1225300000,-1.4309109213664795,1323.7743367333335 -2001-03-01,1239.939941,1241.359985,1214.5,1241.22998,1294900000,0.10404044239107346,1320.8330037 -2001-03-02,1241.22998,1251.01001,1219.73999,1234.180054,1294000000,-0.5679790299618848,1317.040006466667 -2001-03-05,1234.180054,1242.550049,1234.040039,1241.410034,929200000,0.5858124166378875,1313.6690062999999 -2001-03-06,1241.410034,1267.420044,1241.410034,1253.800049,1091800000,0.9980598400737506,1310.6990071333335 -2001-03-07,1253.800049,1263.859985,1253.800049,1261.890015,1132200000,0.6452357380630547,1307.4153401666665 -2001-03-08,1261.890015,1266.5,1257.599976,1264.73999,1114100000,0.22584971480261729,1304.0966715333334 -2001-03-09,1264.73999,1264.73999,1228.420044,1233.420044,1085900000,-2.47639406104333,1299.9603393333334 -2001-03-12,1233.420044,1233.420044,1176.780029,1180.160034,1229000000,-4.318075602799265,1294.1340087666665 -2001-03-13,1180.160034,1197.829956,1171.5,1197.660034,1360900000,1.4828497403598817,1288.5836751 -2001-03-14,1197.660034,1197.660034,1155.349976,1166.709961,1397400000,-2.5842118899660926,1281.6830077999998 -2001-03-15,1166.709961,1182.040039,1166.709961,1173.560059,1259500000,0.5871294691037532,1275.2680094333332 -2001-03-16,1173.560059,1173.560059,1148.640015,1150.530029,1543560000,-1.962407447610648,1267.8366780333333 -2001-03-19,1150.530029,1173.5,1147.180054,1170.810059,1126200000,1.7626684648662794,1261.8813476333335 -2001-03-20,1170.810059,1180.560059,1142.189941,1142.619995,1235900000,-2.4077401610366533,1254.8250121666667 -2001-03-21,1142.619995,1149.390015,1118.73999,1122.140015,1346300000,-1.7923701746528686,1247.1543456666666 -2001-03-22,1122.140015,1124.27002,1081.189941,1117.579956,1723950000,-0.40637165942254416,1239.7106770333335 -2001-03-23,1117.579956,1141.829956,1117.579956,1139.829956,1364900000,1.9909090066035473,1233.2873412666668 -2001-03-26,1139.829956,1160.02002,1139.829956,1152.689941,1114000000,1.1282371490857646,1227.8850056333333 -2001-03-27,1152.689941,1183.349976,1150.959961,1182.170044,1314200000,2.5575050107945696,1222.9470051333333 -2001-03-28,1182.170044,1182.170044,1147.829956,1153.290039,1333400000,-2.442965387811835,1217.4300048 -2001-03-29,1153.290039,1161.689941,1136.26001,1147.949951,1234500000,-0.4630307918578991,1211.8310017000001 -2001-03-30,1147.949951,1162.800049,1143.829956,1160.329956,1280800000,1.0784446647012391,1206.2883340666667 -2001-04-02,1160.329956,1169.51001,1137.51001,1145.869995,1254900000,-1.2461938886631718,1201.0996662666666 -2001-04-03,1145.869995,1145.869995,1100.189941,1106.459961,1386100000,-3.4393111061434167,1195.3503336 -2001-04-04,1106.459961,1117.5,1091.98999,1103.25,1425590000,-0.2901109044288308,1190.2829996 -2001-04-05,1103.25,1151.469971,1103.25,1151.439941,1368000000,4.367998277815555,1186.9036661 -2001-04-06,1151.439941,1151.439941,1119.290039,1128.430054,1266800000,-1.9983575504612605,1182.9893350666669 -2001-04-09,1128.430054,1146.130005,1126.380005,1137.589966,1062800000,0.8117394576234949,1178.6539998 -2001-04-10,1137.589966,1173.920044,1137.589966,1168.380005,1349600000,2.7066025475122713,1175.6686686 -2001-04-11,1168.380005,1182.23999,1160.26001,1165.890015,1290300000,-0.21311473915544,1173.2003377333333 -2001-04-12,1165.890015,1183.51001,1157.72998,1183.5,1102000000,1.510432782975668,1171.2760050666666 -2001-04-16,1183.5,1184.640015,1167.380005,1179.680054,913900000,-0.3227668779045234,1169.4593384 -2001-04-17,1179.680054,1192.25,1168.900024,1191.810059,1109600000,1.0282453245581413,1167.8060059000002 -2001-04-18,1191.810059,1248.420044,1191.810059,1238.160034,1918900000,3.8890404263654643,1167.2846720666666 -2001-04-19,1238.160034,1253.709961,1233.390015,1253.689941,1486800000,1.2542729997372826,1167.0113362666666 -2001-04-20,1253.699951,1253.699951,1234.410034,1242.97998,1338700000,-0.8542751002259208,1166.2860026 -2001-04-23,1242.97998,1242.97998,1217.469971,1224.359985,1012600000,-1.4980124619545343,1165.9840006333334 -2001-04-24,1224.359985,1233.540039,1208.890015,1209.469971,1216500000,-1.2161467364518619,1166.9609985333334 -2001-04-25,1209.469971,1232.359985,1207.380005,1228.75,1203600000,1.5940891020269854,1167.9973307333335 -2001-04-26,1228.75,1248.300049,1228.75,1234.52002,1345200000,0.46958453713121795,1170.2576660333332 -2001-04-27,1234.52002,1253.069946,1234.52002,1253.050049,1091300000,1.50099056311781,1172.9073323666669 -2001-04-30,1253.050049,1269.300049,1243.98999,1249.459961,1266800000,-0.2865079493724165,1176.204996766667 -2001-05-01,1249.459961,1266.469971,1243.550049,1266.439941,1181300000,1.358985524146794,1179.3926595 -2001-05-02,1266.439941,1272.930054,1257.699951,1267.430054,1342200000,0.07818080968118313,1183.5529947999999 -2001-05-03,1267.430054,1267.430054,1239.880005,1248.579956,1137900000,-1.4872692927320963,1187.7676595 -2001-05-04,1248.579956,1267.51001,1232.0,1266.609985,1082100000,1.4440428034550257,1192.7353271333334 -2001-05-07,1266.609985,1270.0,1259.189941,1263.51001,949000000,-0.24474582047449012,1196.8579955999999 -2001-05-08,1266.709961,1267.01001,1253.0,1261.199951,1006300000,-0.18282870588416378,1200.4749959333335 -2001-05-09,1261.199951,1261.650024,1247.829956,1255.540039,1132400000,-0.44877198064529056,1202.9206624333335 -2001-05-10,1255.540039,1268.140015,1254.560059,1255.180054,1056700000,-0.028671726015749854,1206.3169962666666 -2001-05-11,1255.180054,1259.839966,1240.790039,1245.670044,906200000,-0.7576610200021539,1209.5743326999998 -2001-05-14,1245.670044,1249.680054,1241.02002,1248.920044,858200000,0.26090376144582983,1212.5273356333335 -2001-05-15,1248.920044,1257.449951,1245.359985,1249.439941,1071800000,0.04162772488902622,1215.9796671666666 -2001-05-16,1249.439941,1286.390015,1243.02002,1284.98999,1405300000,2.845278739172308,1221.9306681333333 -2001-05-17,1284.98999,1296.47998,1282.650024,1288.48999,1355600000,0.2723756626306528,1228.1053344666666 -2001-05-18,1288.48999,1292.060059,1281.150024,1291.959961,1130800000,0.26930523534762774,1232.7893351333335 -2001-05-21,1291.959961,1312.949951,1287.869995,1312.829956,1174900000,1.6153747507659855,1238.935998533333 -2001-05-22,1312.829956,1315.930054,1306.890015,1309.380005,1260400000,-0.26278734608643495,1244.6623331666667 -2001-05-23,1309.380005,1309.380005,1288.699951,1289.050049,1134800000,-1.5526398694319488,1248.6846679666667 -2001-05-24,1289.050049,1295.040039,1281.219971,1293.170044,1100700000,0.3196148204793303,1252.9273356 -2001-05-25,1293.170044,1293.170044,1276.420044,1277.890015,828100000,-1.1815947230525259,1256.0736694333332 -2001-05-29,1277.890015,1278.420044,1265.410034,1267.930054,1026000000,-0.7794067473013366,1259.0153361 -2001-05-30,1267.930054,1267.930054,1245.959961,1248.079956,1158600000,-1.5655515016288035,1260.8909993333334 -2001-05-31,1248.079956,1261.910034,1248.069946,1255.819946,1226600000,0.6201517749556684,1261.4796630666667 -2001-06-01,1255.819946,1265.339966,1246.880005,1260.670044,1015000000,0.38620966448639216,1261.7123331666667 -2001-06-04,1260.670044,1267.170044,1256.359985,1267.109985,836500000,0.5108347763675525,1262.5166666666667 -2001-06-05,1267.109985,1286.619995,1267.109985,1283.569946,1116800000,1.299015965058481,1264.4903320333333 -2001-06-06,1283.569946,1283.849976,1269.01001,1270.030029,1061900000,-1.0548639785618708,1266.5090006333332 -2001-06-07,1270.030029,1277.079956,1265.079956,1276.959961,1089600000,0.5456510351536048,1268.1159993333333 -2001-06-08,1276.959961,1277.109985,1259.98999,1264.959961,726200000,-0.9397318918756614,1269.1306640333335 -2001-06-11,1264.959961,1264.959961,1249.22998,1254.390015,870100000,-0.8355953015022011,1269.1753295666667 -2001-06-12,1254.390015,1261.0,1235.75,1255.849976,1136500000,0.11638812351355554,1269.3883300666666 -2001-06-13,1255.849976,1259.75,1241.589966,1241.599976,1063600000,-1.1346896741112,1268.5603312333333 -2001-06-14,1241.599976,1241.599976,1218.900024,1219.869995,1242900000,-1.7501595860211272,1266.9749959333335 -2001-06-15,1219.869995,1221.5,1203.030029,1214.359985,1635550000,-0.4516882965057256,1265.8343302333335 -2001-06-18,1214.359985,1221.22998,1208.329956,1208.430054,1111600000,-0.48831739132116914,1263.8949992 -2001-06-19,1208.430054,1226.109985,1207.709961,1212.579956,1184900000,0.34341267715607415,1262.1973307333333 -2001-06-20,1212.579956,1225.609985,1210.069946,1223.140015,1350100000,0.8708752728219915,1260.9286662 -2001-06-21,1223.140015,1240.23999,1220.25,1237.040039,1546820000,1.1364213278559188,1260.3119995333332 -2001-06-22,1237.040039,1237.72998,1221.410034,1225.349976,1189200000,-0.9450027995415611,1259.3176636 -2001-06-25,1225.349976,1231.5,1213.599976,1218.599976,1050100000,-0.5508630295186778,1258.4153279999998 -2001-06-26,1218.599976,1220.699951,1204.640015,1216.76001,1198900000,-0.15099015560787743,1257.3433268666665 -2001-06-27,1216.76001,1219.920044,1207.290039,1211.069946,1162100000,-0.467640615506415,1256.0643270333335 -2001-06-28,1211.069946,1234.439941,1211.069946,1226.199951,1327300000,1.2493089313273975,1254.1046590666667 -2001-06-29,1226.199951,1237.290039,1221.140015,1224.380005,1832360000,-0.14842163372423833,1251.9676595666667 -2001-07-02,1224.420044,1239.780029,1224.030029,1236.719971,1128300000,1.0078542568162874,1250.1263265666666 -2001-07-03,1236.709961,1236.709961,1229.430054,1234.449951,622110000,-0.18355165706303023,1247.5136597333335 -2001-07-05,1234.449951,1234.449951,1219.150024,1219.23999,934900000,-1.2321245577982975,1244.5089925666666 -2001-07-06,1219.23999,1219.23999,1188.73999,1190.589966,1056700000,-2.3498264685363535,1241.2269898 -2001-07-09,1190.589966,1201.76001,1189.75,1198.780029,1045700000,0.6878995484495887,1238.0806559666667 -2001-07-10,1198.780029,1203.430054,1179.930054,1181.52002,1263800000,-1.4397978430119585,1234.8683228000002 -2001-07-11,1181.52002,1184.930054,1168.459961,1180.180054,1384100000,-0.11341035084618811,1231.9433228 -2001-07-12,1180.180054,1210.25,1180.180054,1208.140015,1394000000,2.3691267197098353,1230.611991433333 -2001-07-13,1208.140015,1218.540039,1203.609985,1215.680054,1121700000,0.6241030763309396,1229.2739950333334 -2001-07-16,1215.680054,1219.630005,1200.050049,1202.449951,1039800000,-1.0882882347594935,1227.3333252666669 -2001-07-17,1202.449951,1215.359985,1196.140015,1214.439941,1238100000,0.9971300668297101,1225.5776571333333 -2001-07-18,1214.439941,1214.439941,1198.329956,1207.709961,1316300000,-0.5541632626524517,1223.0489909666665 -2001-07-19,1207.709961,1225.040039,1205.800049,1215.02002,1343500000,0.6052826619022955,1221.215324 -2001-07-20,1215.02002,1215.689941,1207.040039,1210.849976,1170900000,-0.343207842781057,1219.0116578333334 -2001-07-23,1210.849976,1215.219971,1190.5,1191.030029,986900000,-1.6368623192672072,1216.5473267666669 -2001-07-24,1191.030029,1191.030029,1165.540039,1171.650024,1198700000,-1.6271634239374833,1213.7893270666666 -2001-07-25,1171.650024,1190.52002,1171.280029,1190.48999,1280700000,1.6079857990085378,1211.6106608666666 -2001-07-26,1190.48999,1204.180054,1182.650024,1202.930054,1213900000,1.0449532633197478,1210.321663466667 -2001-07-27,1202.930054,1209.26001,1195.98999,1205.819946,1015300000,0.24023774203585369,1209.8533285 -2001-07-30,1205.819946,1209.050049,1200.410034,1204.52002,909100000,-0.10780432056314293,1209.5253296666667 -2001-07-31,1204.52002,1222.73999,1204.52002,1211.22998,1129200000,0.5570650457100923,1209.6186605333335 -2001-08-01,1211.22998,1223.040039,1211.22998,1215.930054,1340300000,0.38804141885588894,1209.7303304666668 -2001-08-02,1215.930054,1226.27002,1215.310059,1220.75,1218300000,0.3963999396300766,1209.6506633000001 -2001-08-03,1220.75,1220.75,1205.310059,1214.349976,939900000,-0.5242698341183738,1208.8943278666668 -2001-08-06,1214.349976,1214.349976,1197.349976,1200.47998,811700000,-1.1421745192178312,1208.065328 -2001-08-07,1200.469971,1207.560059,1195.640015,1204.400024,1012000000,0.3265397228864986,1207.5919962666667 -2001-08-08,1204.400024,1206.790039,1181.27002,1183.530029,1124600000,-1.732812569256481,1206.4843302333334 -2001-08-09,1183.530029,1184.709961,1174.680054,1183.430054,1104200000,-0.008447187443527682,1205.5630004999998 -2001-08-10,1183.430054,1193.329956,1169.550049,1190.160034,960900000,0.5686842223799227,1204.3616699333331 -2001-08-13,1190.160034,1193.819946,1185.119995,1191.290039,837600000,0.09494563484897522,1203.2586710666665 -2001-08-14,1191.290039,1198.790039,1184.26001,1186.72998,964600000,-0.3827832728147129,1201.5923380333334 -2001-08-15,1186.72998,1191.209961,1177.609985,1178.02002,1065600000,-0.7339462343405323,1199.711340333333 -2001-08-16,1178.02002,1181.800049,1166.079956,1181.660034,1055400000,0.308994239333904,1198.4586751333334 -2001-08-17,1181.660034,1181.660034,1156.069946,1161.969971,974300000,-1.6663052344546014,1197.5046753 -2001-08-20,1161.969971,1171.410034,1160.939941,1171.410034,897100000,0.8124188434814661,1196.5923421333332 -2001-08-21,1171.410034,1179.849976,1156.560059,1157.26001,1041600000,-1.207947993383851,1195.7836751333334 -2001-08-22,1157.26001,1168.560059,1153.339966,1165.310059,1110800000,0.6956128208387646,1195.2880086333332 -2001-08-23,1165.310059,1169.859985,1160.959961,1162.089966,986200000,-0.27632928894162356,1193.7530069999998 -2001-08-24,1162.089966,1185.150024,1162.089966,1184.930054,1043600000,1.9654319947892906,1192.7280070000002 -2001-08-27,1184.930054,1186.849976,1178.069946,1179.209961,842600000,-0.4827367641398239,1191.9533406666667 -2001-08-28,1179.209961,1179.660034,1161.170044,1161.51001,987100000,-1.5010008043851664,1190.1890096333334 -2001-08-29,1161.51001,1166.969971,1147.380005,1148.560059,963700000,-1.1149237534336942,1188.2173462333333 -2001-08-30,1148.599976,1151.75,1124.869995,1129.030029,1157000000,-1.7003925782517526,1185.3510132000001 -2001-08-31,1129.030029,1141.829956,1126.380005,1133.579956,920100000,0.40299432992318973,1182.7753458666666 -2001-09-04,1133.579956,1155.400024,1129.060059,1132.939941,1178300000,-0.05645962568519014,1180.8390095999998 -2001-09-05,1132.939941,1135.52002,1114.859985,1131.73999,1384500000,-0.10591479358922351,1179.5086751333333 -2001-09-06,1131.73999,1131.73999,1105.829956,1106.400024,1359700000,-2.23902718149952,1176.7056762666666 -2001-09-07,1106.400024,1106.400024,1082.119995,1085.780029,1424300000,-1.8637016045473298,1172.8006754333333 -2001-09-10,1085.780029,1096.939941,1073.150024,1092.540039,1276600000,0.6225948000006865,1169.0246785333334 -2001-09-17,1092.540039,1092.540039,1037.459961,1038.77002,2330830000,-4.921560499440892,1163.499678533333 -2001-09-18,1038.77002,1046.420044,1029.25,1032.73999,1650410000,-0.5804971152324812,1157.5500122 -2001-09-19,1032.73999,1038.910034,984.619995,1016.099976,2120550000,-1.611249119926117,1150.8890095999998 -2001-09-20,1016.099976,1016.099976,984.48999,984.539978,2004800000,-3.1059933811079965,1143.0153421999998 -2001-09-21,984.539978,984.539978,944.75,965.799988,2317300000,-1.9034260079584087,1134.7303425999999 -2001-09-24,965.799988,1008.440002,965.799988,1003.450012,1746600000,3.8983251675086983,1128.162677 -2001-09-25,1003.450012,1017.140015,998.330017,1012.27002,1613800000,0.8789683486495337,1121.7583435333333 -2001-09-26,1012.27002,1020.289978,1002.619995,1007.039978,1519100000,-0.5166647136304658,1115.8753418333333 -2001-09-27,1007.039978,1018.919983,998.23999,1018.609985,1467000000,1.1489123821060598,1110.3813395333334 -2001-09-28,1018.609985,1040.939941,1018.609985,1040.939941,1631500000,2.192198812973545,1105.4073364333335 -2001-10-01,1040.939941,1040.939941,1026.76001,1038.550049,1175600000,-0.2295898068532365,1100.3160034333334 -2001-10-02,1038.550049,1051.329956,1034.469971,1051.329956,1289800000,1.2305528281767009,1095.8026693 -2001-10-03,1051.329956,1075.380005,1041.47998,1072.280029,1650600000,1.992721017834298,1092.2780029333335 -2001-10-04,1072.280029,1084.119995,1067.819946,1069.630005,1609100000,-0.24713917338098357,1088.5436686333335 -2001-10-05,1069.619995,1072.349976,1053.5,1071.380005,1301700000,0.16360797582524178,1085.5240031 -2001-10-08,1071.369995,1071.369995,1056.880005,1062.439941,979000000,-0.834443797558071,1081.8916666666667 -2001-10-09,1062.439941,1063.369995,1053.829956,1056.75,1227800000,-0.5355541316193868,1078.5413330000001 -2001-10-10,1056.75,1081.619995,1052.76001,1080.98999,1312400000,2.293824461793248,1075.7306640333334 -2001-10-11,1080.98999,1099.160034,1080.98999,1097.430054,1704580000,1.5208340643376284,1073.5753336333335 -2001-10-12,1097.430054,1097.430054,1072.150024,1091.650024,1331400000,-0.5266877810510495,1070.4659993 -2001-10-15,1091.650024,1091.650024,1078.189941,1089.97998,1024700000,-0.1529834620330628,1067.4916666 -2001-10-16,1089.97998,1101.660034,1087.130005,1097.540039,1210500000,0.6935961337565022,1065.3593342333334 -2001-10-17,1097.540039,1107.119995,1076.569946,1077.089966,1452200000,-1.8632644161786227,1062.9769978 -2001-10-18,1077.089966,1077.939941,1064.540039,1068.609985,1262900000,-0.7873047997552285,1060.9629963333334 -2001-10-19,1068.609985,1075.52002,1057.23999,1073.47998,1294900000,0.45573175137418875,1058.9596638 -2001-10-22,1073.47998,1090.569946,1070.790039,1089.900024,1105700000,1.5296087776131673,1057.5249999 -2001-10-23,1089.900024,1098.98999,1081.530029,1084.780029,1317300000,-0.4697673995096685,1055.9596678666667 -2001-10-24,1084.780029,1090.26001,1079.97998,1085.199951,1336200000,0.038710336545100255,1055.2529987666667 -2001-10-25,1085.199951,1100.089966,1065.640015,1100.089966,1364400000,1.3720987534397766,1055.7299966666667 -2001-10-26,1100.089966,1110.609985,1094.23999,1104.609985,1244500000,0.410877213655092,1056.1323282 -2001-10-29,1104.609985,1104.609985,1078.300049,1078.300049,1106100000,-2.3818303616004455,1057.4499958333333 -2001-10-30,1078.300049,1078.300049,1053.609985,1059.790039,1297400000,-1.7165917795483598,1058.3516641333333 -2001-10-31,1059.790039,1074.790039,1057.550049,1059.780029,1352500000,-0.0009445267110996802,1059.8076659 -2001-11-01,1059.780029,1085.609985,1054.310059,1084.099976,1317400000,2.2948108413543222,1063.1263325000002 -2001-11-02,1084.099976,1089.630005,1075.579956,1087.199951,1121900000,0.2859491807608139,1067.1729979333334 -2001-11-05,1087.199951,1106.719971,1087.199951,1102.839966,1267700000,1.438559207587753,1070.4859964 -2001-11-06,1102.839966,1119.72998,1095.359985,1118.859985,1356000000,1.45261502066385,1074.0389952333333 -2001-11-07,1118.859985,1126.619995,1112.97998,1115.800049,1411300000,-0.2734869457325484,1077.6643309333333 -2001-11-08,1115.800049,1135.75,1115.420044,1118.540039,1517500000,0.24556281409520153,1080.9953327333333 -2001-11-09,1118.540039,1123.02002,1111.130005,1120.310059,1093800000,0.15824377655557775,1083.6410033333334 -2001-11-12,1120.310059,1121.709961,1098.319946,1118.329956,991600000,-0.17674598064104652,1086.3003335666667 -2001-11-13,1118.329956,1139.140015,1118.329956,1139.089966,1370100000,1.856340330384576,1089.2256672333333 -2001-11-14,1139.089966,1148.280029,1132.869995,1141.209961,1443400000,0.18611304315536703,1091.5233316333333 -2001-11-15,1141.209961,1146.459961,1135.060059,1142.23999,1454500000,0.09025762438117368,1093.9436644666669 -2001-11-16,1142.23999,1143.52002,1129.920044,1138.650024,1337400000,-0.31429174529251647,1096.1859984333335 -2001-11-19,1138.650024,1151.060059,1138.650024,1151.060059,1316800000,1.0898901979033315,1099.1400023666667 -2001-11-20,1151.060059,1152.449951,1142.170044,1142.660034,1330200000,-0.7297642668009474,1102.0036701666666 -2001-11-21,1142.660034,1142.660034,1129.780029,1137.030029,1029300000,-0.4927104153885198,1103.8716714666666 -2001-11-23,1137.030029,1151.050049,1135.900024,1150.339966,410300000,1.170587993327299,1105.6353352 -2001-11-26,1150.339966,1157.880005,1146.170044,1157.420044,1129800000,0.6154770076031602,1107.8276692 -2001-11-27,1157.420044,1163.380005,1140.810059,1149.5,1288000000,-0.6842843305727264,1109.8116698666668 -2001-11-28,1149.5,1149.5,1128.290039,1128.52002,1423700000,-1.8251396259243213,1110.8443359 -2001-11-29,1128.52002,1140.400024,1125.51001,1140.199951,1375700000,1.0349777401379212,1112.9480020666667 -2001-11-30,1140.199951,1143.569946,1135.890015,1139.449951,1343600000,-0.06577793652264852,1115.3093342666666 -2001-12-03,1139.449951,1139.449951,1125.780029,1129.900024,1202900000,-0.838117285591955,1117.1900024 -2001-12-04,1129.900024,1144.800049,1128.859985,1144.800049,1318500000,1.318702954554496,1119.0200032333335 -2001-12-05,1143.77002,1173.619995,1143.77002,1170.349976,1765300000,2.2318244153045175,1121.8723347999999 -2001-12-06,1170.349976,1173.349976,1164.430054,1167.099976,1487900000,-0.2776947124062623,1124.6023356333333 -2001-12-07,1167.099976,1167.099976,1152.660034,1158.310059,1248200000,-0.7531417342776181,1126.5430054 -2001-12-10,1158.310059,1158.310059,1139.660034,1139.930054,1218700000,-1.5867949049728436,1127.7203410333334 -2001-12-11,1139.930054,1150.890015,1134.319946,1136.76001,1367200000,-0.2780910976841411,1129.6690064 -2001-12-12,1136.76001,1141.579956,1126.01001,1137.069946,1449700000,0.027264857777686835,1132.2450033 -2001-12-13,1137.069946,1137.069946,1117.849976,1119.380005,1511500000,-1.5557478290785909,1134.2316691666667 -2001-12-14,1119.380005,1128.280029,1114.530029,1123.089966,1306800000,0.3314299865486703,1135.5313355 -2001-12-17,1123.089966,1137.300049,1122.660034,1134.359985,1260400000,1.0034831884518924,1137.1033366333334 -2001-12-18,1134.359985,1145.099976,1134.359985,1142.920044,1354000000,0.75461574043445,1138.4393392333334 -2001-12-19,1142.920044,1152.439941,1134.75,1149.560059,1484900000,0.5809693368191482,1139.4626750333332 -2001-12-20,1149.560059,1151.420044,1139.930054,1139.930054,1490500000,-0.8377122121289715,1140.2670085333334 -2001-12-21,1139.930054,1147.459961,1139.930054,1144.890015,1694000000,0.4351109949768839,1141.1453410666666 -2001-12-24,1144.890015,1147.829956,1144.619995,1144.650024,439670000,-0.020961926198637126,1141.9566732333333 -2001-12-26,1144.650024,1159.180054,1144.650024,1149.369995,791100000,0.41235057887003546,1142.9913412 -2001-12-27,1149.369995,1157.130005,1149.369995,1157.130005,876300000,0.6751533478129401,1143.5926758333333 -2001-12-28,1157.130005,1164.640015,1157.130005,1161.02002,917400000,0.33617786965951524,1144.2530111333333 -2001-12-31,1161.02002,1161.160034,1148.040039,1148.079956,943600000,-1.1145427104693573,1144.4476766666667 -2002-01-02,1148.079956,1154.670044,1136.22998,1154.670044,1171000000,0.5740094986903532,1144.9816773333332 -2002-01-03,1154.670044,1165.27002,1154.01001,1165.27002,1398900000,0.9180090931673934,1145.4553427 -2002-01-04,1165.27002,1176.550049,1163.420044,1172.51001,1513000000,0.621314362828973,1146.4503419 -2002-01-07,1172.51001,1176.969971,1163.550049,1164.890015,1308300000,-0.6498874154601042,1147.3790081 -2002-01-08,1164.890015,1167.599976,1157.459961,1160.709961,1258800000,-0.35883679542054736,1147.7246745999998 -2002-01-09,1160.709961,1174.26001,1151.890015,1155.140015,1452000000,-0.47987405873568534,1147.6486736333334 -2002-01-10,1155.140015,1159.930054,1150.849976,1156.550049,1299000000,0.12206606832851907,1147.8836752666668 -2002-01-11,1156.550049,1159.410034,1145.449951,1145.599976,1211900000,-0.9467876474059889,1148.4530071333331 -2002-01-14,1145.599976,1145.599976,1138.150024,1138.410034,1286400000,-0.6276136653829645,1148.393343233333 -2002-01-15,1138.410034,1148.810059,1136.880005,1146.189941,1386900000,0.6834011268034956,1148.6180095666668 -2002-01-16,1146.189941,1146.189941,1127.48999,1127.569946,1482500000,-1.6245121627707637,1148.5403402999998 -2002-01-17,1127.569946,1139.27002,1127.569946,1138.880005,1380100000,1.0030472202741558,1148.3430055 -2002-01-18,1138.880005,1138.880005,1124.449951,1127.579956,1333300000,-0.9922071640901198,1146.9173381666665 -2002-01-22,1127.579956,1135.26001,1117.910034,1119.310059,1311600000,-0.733420007689467,1145.3243409333334 -2002-01-23,1119.310059,1131.939941,1117.430054,1128.180054,1479200000,0.7924520045790029,1144.3200074333333 -2002-01-24,1128.180054,1139.5,1128.180054,1132.150024,1552800000,0.3518915252866295,1144.0606731 -2002-01-25,1132.150024,1138.310059,1127.819946,1133.280029,1345100000,0.09981053535710327,1143.9446737333335 -2002-01-28,1133.280029,1138.630005,1126.660034,1133.060059,1186800000,-0.019410030563604685,1143.8110108333333 -2002-01-29,1133.060059,1137.469971,1098.73999,1100.640015,1812000000,-2.861282042596469,1143.1863445000001 -2002-01-30,1100.640015,1113.790039,1081.660034,1113.569946,2019600000,1.174764757212654,1142.8690104999998 -2002-01-31,1113.569946,1130.209961,1113.300049,1130.199951,1557000000,1.4933956380320579,1142.7303427 -2002-02-01,1130.199951,1130.199951,1118.51001,1122.199951,1367200000,-0.7078393511627423,1142.0396729333333 -2002-02-04,1122.199951,1122.199951,1092.25,1094.439941,1437600000,-2.4737133498591635,1140.2023356666666 -2002-02-05,1094.439941,1100.959961,1082.579956,1090.02002,1778300000,-0.4038523115267201,1138.5386678666666 -2002-02-06,1090.02002,1093.579956,1077.780029,1083.51001,1665800000,-0.5972376544056468,1136.4926677 -2002-02-07,1083.51001,1094.030029,1078.439941,1080.170044,1441600000,-0.30825428184092507,1134.3433350333332 -2002-02-08,1080.170044,1096.300049,1079.910034,1096.219971,1371900000,1.4858704043082982,1132.5716675666665 -2002-02-11,1096.219971,1112.01001,1094.680054,1111.939941,1159400000,1.4340160201296026,1131.0653321 -2002-02-12,1111.939941,1112.680054,1102.97998,1107.5,1094200000,-0.3992968357631854,1129.2813314333334 -2002-02-13,1107.5,1120.560059,1107.5,1118.51001,1215900000,0.994131828442435,1128.2956665666668 -2002-02-14,1118.51001,1124.719971,1112.300049,1116.47998,1272500000,-0.18149412896178996,1127.0226644333334 -2002-02-15,1116.47998,1117.089966,1103.22998,1104.180054,1359200000,-1.1016700899554088,1124.9863322333333 -2002-02-19,1104.180054,1104.180054,1082.23999,1083.339966,1189900000,-1.887381312903147,1122.0139974333333 -2002-02-20,1083.339966,1098.319946,1074.359985,1097.97998,1438900000,1.351377633934736,1119.7836629333333 -2002-02-21,1097.97998,1101.5,1080.23999,1080.949951,1381600000,-1.5510327428738702,1117.1249959333334 -2002-02-22,1080.949951,1093.930054,1074.390015,1089.839966,1411000000,0.8224261439464087,1114.9483276333335 -2002-02-25,1089.839966,1112.709961,1089.839966,1109.430054,1367400000,1.7975196919875147,1113.3776611333335 -2002-02-26,1109.430054,1115.050049,1101.719971,1109.380005,1309200000,-0.004511235279724968,1112.1703287666667 -2002-02-27,1109.380005,1123.060059,1102.26001,1109.890015,1393800000,0.04597252498705906,1111.2196614666668 -2002-02-28,1109.890015,1121.569946,1106.72998,1106.72998,1392200000,-0.28471604909428017,1109.9043294333335 -2002-03-01,1106.72998,1131.790039,1106.72998,1131.780029,1456500000,2.2634291518876193,1110.0446655333333 -2002-03-04,1131.780029,1153.839966,1130.930054,1153.839966,1594300000,1.9491364430145763,1110.5433309 -2002-03-05,1153.839966,1157.73999,1144.780029,1146.140015,1549300000,-0.6673326654382916,1111.1619995333333 -2002-03-06,1146.140015,1165.290039,1145.109985,1162.77002,1541300000,1.4509575429141552,1112.6106648999998 -2002-03-07,1162.77002,1167.939941,1150.689941,1157.540039,1517400000,-0.4497863644609579,1113.5893310666665 -2002-03-08,1157.540039,1172.76001,1157.540039,1164.310059,1412000000,0.584862706420819,1114.6613322333333 -2002-03-11,1164.310059,1173.030029,1159.579956,1168.26001,1210200000,0.33925250146791264,1115.8273316 -2002-03-12,1168.26001,1168.26001,1154.339966,1165.579956,1304400000,-0.2294056098008479,1116.9113281666664 -2002-03-13,1165.579956,1165.579956,1151.01001,1154.089966,1354000000,-0.9857745014276831,1118.6929932 -2002-03-14,1154.089966,1157.829956,1151.079956,1153.040039,1208800000,-0.09097445008026117,1120.0086629666666 -2002-03-15,1153.040039,1166.47998,1153.040039,1166.160034,1493900000,1.137861180551769,1121.2073324 -2002-03-18,1166.160034,1172.72998,1159.140015,1165.550049,1169500000,-0.0523071432921407,1122.6523356666667 -2002-03-19,1165.550049,1173.939941,1165.550049,1170.290039,1255000000,0.4066740852584294,1125.1806722666665 -2002-03-20,1170.290039,1170.290039,1151.609985,1151.849976,1304900000,-1.5756831542167782,1127.2416707999998 -2002-03-21,1151.849976,1155.099976,1139.47998,1153.589966,1339200000,0.15106047109036957,1129.5776693333332 -2002-03-22,1153.589966,1156.48999,1144.599976,1148.699951,1243300000,-0.4238954172734122,1131.8619995666668 -2002-03-25,1148.699951,1151.040039,1131.869995,1131.869995,1057900000,-1.4651307319503926,1133.0503337 -2002-03-26,1131.869995,1147.0,1131.609985,1138.48999,1223600000,0.5848723819205093,1133.9353353333331 -2002-03-27,1138.48999,1146.949951,1135.329956,1144.579956,1180100000,0.5349160777425865,1135.1713338666666 -2002-03-28,1144.579956,1154.449951,1144.579956,1147.390015,1147600000,0.24551006552835375,1136.1340007 -2002-04-01,1147.390015,1147.839966,1132.869995,1146.540039,1050900000,-0.07407908286529707,1137.1360026666666 -2002-04-02,1146.540039,1146.540039,1135.709961,1136.76001,1176700000,-0.8530037039552574,1138.2220012 -2002-04-03,1136.76001,1138.849976,1119.680054,1125.400024,1219700000,-0.9993301928346243,1139.6240031333332 -2002-04-04,1125.400024,1130.449951,1120.060059,1126.339966,1283800000,0.08352070196864236,1140.569336 -2002-04-05,1126.339966,1133.310059,1119.48999,1122.72998,1110200000,-0.32050589599693646,1141.9620036333333 -2002-04-08,1122.72998,1125.410034,1111.790039,1125.290039,1095300000,0.22802089955769045,1143.1436727333335 -2002-04-09,1125.290039,1128.290039,1116.72998,1117.800049,1235400000,-0.665605287562665,1143.4226725666665 -2002-04-10,1117.800049,1131.76001,1117.800049,1130.469971,1447900000,1.1334694439613546,1144.125671433333 -2002-04-11,1130.469971,1130.469971,1102.420044,1103.689941,1505600000,-2.368928913371371,1143.9190023 -2002-04-12,1103.689941,1112.77002,1102.73999,1111.01001,1282100000,0.6632359984514835,1144.0616699666666 -2002-04-15,1111.01001,1114.859985,1099.410034,1102.550049,1120400000,-0.7614657765324773,1143.0873373 -2002-04-16,1102.550049,1129.400024,1102.550049,1128.369995,1341300000,2.3418389054917332,1142.2383382666667 -2002-04-17,1128.369995,1133.0,1123.369995,1126.069946,1376900000,-0.20383819227662858,1141.5693359666666 -2002-04-18,1126.069946,1130.48999,1109.290039,1124.469971,1359300000,-0.1420848683231002,1140.2926676666668 -2002-04-19,1124.469971,1128.819946,1122.589966,1125.170044,1185000000,0.062258043171881106,1139.2136678333334 -2002-04-22,1125.170044,1125.170044,1105.619995,1107.829956,1181800000,-1.5411082167061219,1137.3309977333333 -2002-04-23,1107.829956,1111.170044,1098.939941,1100.959961,1388500000,-0.620130820871212,1135.0876627666667 -2002-04-24,1100.959961,1108.459961,1092.51001,1093.140015,1373200000,-0.7102843225013533,1132.6729980666667 -2002-04-25,1093.140015,1094.359985,1084.810059,1091.47998,1517400000,-0.1518593206012886,1130.5859985333334 -2002-04-26,1091.47998,1096.77002,1076.310059,1076.319946,1374200000,-1.388942928664616,1128.0286621 -2002-04-29,1076.319946,1078.949951,1063.619995,1065.449951,1314700000,-1.009922285691811,1124.6716593333333 -2002-04-30,1065.449951,1082.619995,1063.459961,1076.920044,1628600000,1.0765492071433735,1121.7173258333335 -2002-05-01,1076.920044,1088.319946,1065.290039,1086.459961,1451400000,0.8858519305264378,1118.9229899 -2002-05-02,1086.459961,1091.420044,1079.459961,1084.560059,1364000000,-0.17487087128837953,1116.6799926666667 -2002-05-03,1084.560059,1084.560059,1068.890015,1073.430054,1284500000,-1.0262230208128997,1114.0079956 -2002-05-06,1073.430054,1075.959961,1052.650024,1052.670044,1122600000,-1.9339881460035957,1110.8069987000001 -2002-05-07,1052.670044,1058.670044,1048.959961,1049.48999,1354700000,-0.3020940909381431,1108.0609985333333 -2002-05-08,1049.48999,1088.920044,1049.48999,1088.849976,1502000000,3.7503917498060035,1106.4063314 -2002-05-09,1088.849976,1088.849976,1072.22998,1073.01001,1153000000,-1.4547427422636927,1104.0206665333333 -2002-05-10,1073.01001,1075.430054,1053.930054,1054.98999,1171900000,-1.6793897384051348,1100.9406657 -2002-05-13,1054.98999,1074.839966,1053.900024,1074.560059,1088600000,1.8550004441274304,1098.5413330333333 -2002-05-14,1074.560059,1097.709961,1074.560059,1097.280029,1414500000,2.114350874081783,1097.2253336666665 -2002-05-15,1097.280029,1104.22998,1088.939941,1091.069946,1420200000,-0.5659524310908548,1096.0809977333333 -2002-05-16,1091.069946,1099.290039,1089.170044,1098.22998,1256600000,0.6562396871300225,1095.1439982 -2002-05-17,1098.22998,1106.589966,1096.77002,1106.589966,1274400000,0.7612236191184563,1094.6059977333332 -2002-05-20,1106.589966,1106.589966,1090.609985,1091.880005,989800000,-1.3293054746531086,1093.4923299333334 -2002-05-21,1091.880005,1099.550049,1079.079956,1079.880005,1200500000,-1.0990218655025141,1092.2283284666667 -2002-05-22,1079.880005,1086.02002,1075.640015,1086.02002,1136300000,0.5685830806729353,1090.7466634333332 -2002-05-23,1086.02002,1097.099976,1080.550049,1097.079956,1192900000,1.018391539411967,1090.5263306 -2002-05-24,1097.079956,1097.079956,1082.189941,1083.819946,885400000,-1.2086639563032908,1089.6199951333333 -2002-05-28,1083.819946,1085.97998,1070.310059,1074.550049,996500000,-0.8552986161780907,1088.6866618 -2002-05-29,1074.550049,1074.829956,1067.660034,1067.660034,1081800000,-0.6412000079858537,1086.6629964333333 -2002-05-30,1067.660034,1069.5,1054.26001,1064.660034,1286600000,-0.28098832066987267,1084.6159993666668 -2002-05-31,1064.660034,1079.930054,1064.660034,1067.140015,1277300000,0.23293642297086414,1082.7050008333333 -2002-06-03,1067.140015,1070.73999,1039.900024,1040.680054,1324300000,-2.479521021428477,1079.8886678333333 -2002-06-04,1040.680054,1046.060059,1030.52002,1040.689941,1466600000,0.0009500518398652957,1077.6506673333333 -2002-06-05,1040.689941,1050.109985,1038.839966,1049.900024,1300100000,0.8849977920561081,1075.9486694333332 -2002-06-06,1049.900024,1049.900024,1026.910034,1029.150024,1601500000,-1.9763786575549225,1073.8156697333334 -2002-06-07,1029.150024,1033.02002,1012.48999,1027.530029,1341300000,-0.15741096654728892,1071.6840047 -2002-06-10,1027.530029,1038.180054,1025.449951,1030.73999,1226200000,0.3123958336403998,1070.1646728333333 -2002-06-11,1030.73999,1039.040039,1012.940002,1013.599976,1212400000,-1.6628843516588554,1068.4363403333334 -2002-06-12,1013.26001,1021.849976,1002.580017,1020.26001,1795720000,0.6570673004830496,1066.5476725333333 -2002-06-13,1020.26001,1023.469971,1008.119995,1009.559998,1405500000,-1.0487534447223945,1063.9843404333335 -2002-06-14,1009.559998,1009.559998,981.630005,1007.27002,1549000000,-0.22682931222873792,1061.4080058 -2002-06-17,1007.27002,1036.170044,1007.27002,1036.170044,1236600000,2.8691436681496763,1060.1660054666668 -2002-06-18,1036.170044,1040.829956,1030.920044,1037.140015,1193100000,0.0936111795179384,1059.6483378333332 -2002-06-19,1037.140015,1037.609985,1017.880005,1019.98999,1336100000,-1.6535882091098242,1058.6650045000001 -2002-06-20,1019.98999,1023.330017,1004.590027,1006.289978,1389700000,-1.3431516126937715,1055.9130045666666 -2002-06-21,1006.289978,1006.289978,985.650024,989.140015,1497200000,-1.7042764386946962,1053.1173380666667 -2002-06-24,989.140015,1002.109985,970.849976,992.719971,1552600000,0.3619261121490469,1051.0416707666668 -2002-06-25,992.719971,1005.880005,974.210022,976.140015,1513700000,-1.670154372264565,1047.7610026333334 -2002-06-26,976.140015,977.429993,952.919983,973.530029,2014290000,-0.2673782408151748,1043.6360026333334 -2002-06-27,973.530029,990.669983,963.73999,990.640015,1908600000,1.7575201062441925,1040.2883382666666 -2002-06-28,990.640015,1001.789978,988.309998,989.820007,2117000000,-0.08277557817002457,1036.6746725 -2002-07-01,989.820007,994.460022,967.429993,968.650024,1425500000,-2.138770973539228,1032.0766744333334 -2002-07-02,968.650024,968.650024,945.539978,948.090027,1823000000,-2.1225413194229215,1027.2836751666666 -2002-07-03,948.090027,954.299988,934.869995,953.98999,1527800000,0.6222998694194848,1023.0873413333334 -2002-07-05,953.98999,989.070007,953.98999,989.030029,699400000,3.6729986024276906,1019.8543416333334 -2002-07-08,989.030029,993.559998,972.909973,976.97998,1184400000,-1.2183703878216656,1015.8510091 -2002-07-09,976.97998,979.630005,951.710022,952.830017,1348900000,-2.471899475360795,1011.4846781333333 -2002-07-10,952.830017,956.340027,920.289978,920.469971,1816900000,-3.396203459446645,1006.3486755333332 -2002-07-11,920.469971,929.159973,900.940002,927.369995,2080480000,0.749619674447799,1001.6723409 -2002-07-12,927.369995,934.309998,913.710022,921.390015,1607400000,-0.6448321632403164,996.8966736 -2002-07-15,921.390015,921.390015,876.460022,917.929993,2574800000,-0.37552197697735545,991.9230062 -2002-07-16,917.929993,918.650024,897.130005,900.940002,1843700000,-1.8509026973258402,987.2650044666667 -2002-07-17,901.049988,926.52002,895.030029,906.039978,2566500000,0.5660727671852106,982.7766723666666 -2002-07-18,905.450012,907.799988,880.599976,881.559998,1736300000,-2.701865325417252,977.1653381666667 -2002-07-19,881.559998,881.559998,842.070007,847.75,2654100000,-3.8352463901157985,971.1186706999999 -2002-07-22,847.76001,854.130005,813.26001,819.849976,2248060000,-3.2910674137422657,964.1960022666667 -2002-07-23,819.849976,827.690002,796.130005,797.700012,2441020000,-2.701709416162734,956.4280030000001 -2002-07-24,797.710022,844.320007,775.679993,843.429993,2775560000,5.732729135272963,950.7556702333333 -2002-07-25,843.419983,853.830017,816.109985,838.679993,2424700000,-0.5631765575592973,944.7030030000001 -2002-07-26,838.679993,852.849976,835.919983,852.840027,1796100000,1.6883715026215107,939.4790039666666 -2002-07-29,852.840027,898.960022,852.840027,898.960022,1778650000,5.407813134924533,935.8686706999999 -2002-07-30,898.960022,909.809998,884.700012,902.780029,1826090000,0.42493624927850693,931.4223368666667 -2002-07-31,902.780029,911.640015,889.880005,911.619995,2049360000,0.9791937920682559,927.2383362 -2002-08-01,911.619995,911.619995,882.47998,884.659973,1672200000,-2.9573750189628045,922.7273356333333 -2002-08-02,884.400024,884.719971,853.950012,864.23999,1538100000,-2.308229559742947,917.9923360333335 -2002-08-05,864.23999,864.23999,833.440002,834.599976,1425500000,-3.4296045476905124,912.8410014 -2002-08-06,834.599976,874.440002,834.599976,859.570007,1514100000,2.9918561847646297,908.4026692666666 -2002-08-07,859.570007,878.73999,854.150024,876.77002,1490400000,2.001001996338858,905.0903361000001 -2002-08-08,876.77002,905.840027,875.169983,905.460022,1646700000,3.272238026569374,902.8213358666667 -2002-08-09,898.72998,913.950012,890.77002,908.640015,1294900000,0.3512019219772844,900.0880025333333 -2002-08-12,908.640015,908.640015,892.380005,903.799988,1036500000,-0.5326671641243896,897.2206685666666 -2002-08-13,903.799988,911.710022,883.619995,884.210022,1297700000,-2.1675112038173627,894.4060018333332 -2002-08-14,884.210022,920.210022,876.200012,919.619995,1533800000,4.004701611491135,893.4570007666666 -2002-08-15,919.619995,933.289978,918.169983,930.25,1505100000,1.1559127746020748,892.6656677666667 -2002-08-16,930.25,935.380005,916.210022,928.77002,1265300000,-0.1590948669712433,890.6570008 -2002-08-19,928.77002,951.169983,927.210022,950.700012,1299800000,2.3611864646535308,889.7810018666667 -2002-08-20,950.700012,950.700012,931.859985,937.429993,1308500000,-1.3958155919324922,889.2676677333333 -2002-08-21,937.429993,951.590027,931.320007,949.359985,1353100000,1.27262751235655,890.2306682000001 -2002-08-22,949.359985,965.0,946.429993,962.700012,1373000000,1.4051600247297014,891.4083354333333 -2002-08-23,962.700012,962.700012,937.169983,940.859985,1071500000,-2.2686222839685577,892.0573344333333 -2002-08-26,940.859985,950.799988,930.419983,947.950012,1016900000,0.753568768258317,893.0580017333334 -2002-08-27,947.950012,955.820007,930.359985,934.820007,1307700000,-1.385094660455577,894.1873352333333 -2002-08-28,934.820007,934.820007,913.210022,917.869995,1146600000,-1.8131845567143534,894.5816691333333 -2002-08-29,917.869995,924.590027,903.330017,917.799988,1271100000,-0.007627114992470041,895.7896688000001 -2002-08-30,917.799988,928.150024,910.169983,916.070007,929900000,-0.18849215761811422,898.0670023666667 -2002-09-03,916.070007,916.070007,877.51001,878.02002,1289800000,-4.153611264340851,900.0060038333334 -2002-09-04,878.02002,896.099976,875.72998,893.400024,1372100000,1.7516689425828735,903.1960042333333 -2002-09-05,893.400024,893.400024,870.5,879.150024,1401300000,-1.5950301787768906,904.3866719333333 -2002-09-06,879.150024,899.070007,879.150024,893.919983,1184500000,1.680027139486251,906.2280049333333 -2002-09-09,893.919983,907.340027,882.919983,902.960022,1130600000,1.011280558877492,907.8986714333333 -2002-09-10,902.960022,909.890015,900.5,909.580017,1186400000,0.7331437537331009,908.2526712666667 -2002-09-11,910.630005,924.02002,908.469971,909.450012,846600000,-0.014292860173947819,908.4750040333333 -2002-09-12,909.450012,909.450012,884.840027,886.909973,1191600000,-2.4784252792994566,907.6513366333332 -2002-09-13,886.909973,892.75,877.049988,889.809998,1271000000,0.32698076335644366,907.8230041333334 -2002-09-16,889.809998,891.840027,878.909973,891.099976,1001400000,0.14497229778260845,908.718337 -2002-09-17,891.099976,902.679993,872.380005,873.52002,1448600000,-1.9728376695635652,910.0156718000001 -2002-09-18,873.52002,878.450012,857.390015,869.460022,1501000000,-0.46478591297770544,910.3453389666666 -2002-09-19,869.460022,869.460022,843.090027,843.320007,1524000000,-3.006465431253602,909.2303385333332 -2002-09-20,843.320007,849.320007,839.090027,845.390015,1792800000,0.24545937281432728,907.2280049666666 -2002-09-23,845.390015,845.390015,825.76001,833.700012,1381100000,-1.3827940704977393,904.7300048666667 -2002-09-24,833.700012,833.700012,817.380005,819.289978,1670240000,-1.7284435399528286,901.9130045333334 -2002-09-25,819.27002,844.219971,818.460022,839.659973,1651500000,2.4862985691251893,900.4280029 -2002-09-26,839.659973,856.599976,839.659973,854.950012,1650000000,1.8209798599033489,898.2723368000001 -2002-09-27,854.950012,854.950012,826.840027,827.369995,1507300000,-3.2259215875652836,894.8430033000001 -2002-09-30,827.369995,827.369995,800.200012,815.280029,1721870000,-1.4612526527505998,891.0600036 -2002-10-01,815.280029,847.929993,812.820007,847.909973,1780900000,4.002298945065896,887.6336689666666 -2002-10-02,843.77002,851.929993,826.5,827.909973,1668900000,-2.3587409792147795,883.9830016333333 -2002-10-03,827.909973,840.02002,817.25,818.950012,1674500000,-1.0822385636366838,879.6360025333332 -2002-10-04,818.950012,825.900024,794.099976,800.580017,1835930000,-2.2431155419532556,874.2320027000001 -2002-10-07,800.580017,808.210022,782.960022,785.280029,1576500000,-1.9111129025345064,869.0460041666668 -2002-10-08,785.280029,808.859985,779.5,798.549988,1938430000,1.6898378298119132,864.0660033666667 -2002-10-09,798.549988,798.549988,775.799988,776.76001,1885030000,-2.7286930470782234,858.7973367999999 -2002-10-10,776.76001,806.51001,768.630005,803.919983,2090230000,3.4965719978298004,854.9990030666668 -2002-10-11,803.919983,843.27002,803.919983,835.320007,1854130000,3.9058643476959087,852.2496703666667 -2002-10-14,835.320007,844.390015,828.369995,841.440002,1200300000,0.7326527496904545,849.7620035333333 -2002-10-15,841.440002,881.27002,841.440002,881.27002,1956000000,4.733554134023676,849.8703368666667 -2002-10-16,881.27002,881.27002,856.280029,860.02002,1585000000,-2.4112927386319094,848.7576700666666 -2002-10-17,860.02002,885.349976,860.02002,879.200012,1780390000,2.2301797113978727,848.7593363333333 -2002-10-18,879.200012,886.679993,866.580017,884.390015,1423100000,0.5903097053187922,848.4416707333334 -2002-10-21,884.390015,900.690002,873.059998,899.719971,1447000000,1.7333931568641825,848.3336690333333 -2002-10-22,899.719971,899.719971,882.400024,890.159973,1549200000,-1.0625526061597168,847.6863342333334 -2002-10-23,890.159973,896.140015,873.820007,896.140015,1593900000,0.6717940798715238,847.2426676666666 -2002-10-24,896.140015,902.940002,879.0,882.5,1700570000,-1.5220852513767036,847.0956685666666 -2002-10-25,882.5,897.710022,877.030029,897.650024,1340400000,1.7167166005665813,847.3570027666667 -2002-10-28,897.650024,907.440002,886.150024,890.22998,1382600000,-0.8266076757772245,847.3280029 -2002-10-29,890.22998,890.640015,867.909973,882.150024,1529700000,-0.9076256901615398,847.6156697 -2002-10-30,882.150024,895.280029,879.190002,890.710022,1422300000,0.97035626221329,848.3240030333333 -2002-10-31,890.710022,898.830017,879.75,885.76001,1641300000,-0.5557377684922926,849.7386698000001 -2002-11-01,885.76001,903.419983,877.710022,900.960022,1450400000,1.716041797822876,851.5910033666667 -2002-11-04,900.960022,924.580017,900.960022,908.349976,1645900000,0.8202310668119717,854.0793355000001 -2002-11-05,908.349976,915.830017,904.909973,915.390015,1354100000,0.7750359647722416,857.2826700666666 -2002-11-06,915.390015,925.659973,905.0,923.76001,1674000000,0.91436380808676,860.0860046333333 -2002-11-07,923.76001,923.76001,898.679993,902.650024,1466900000,-2.285224059439417,861.6760050333334 -2002-11-08,902.650024,910.109985,891.619995,894.73999,1446500000,-0.8763123901495584,863.9216715333333 -2002-11-11,894.73999,894.73999,874.630005,876.190002,1113000000,-2.0732266588419757,865.9520039666667 -2002-11-12,876.190002,894.299988,876.190002,882.950012,1377100000,0.7715232979798259,867.1200052666667 -2002-11-13,882.950012,892.51001,872.049988,882.530029,1463400000,-0.047565886436617966,868.9406738 -2002-11-14,882.530029,904.27002,882.530029,904.27002,1519000000,2.463371249206525,871.7846740666666 -2002-11-15,904.27002,910.210022,895.349976,909.830017,1400100000,0.614860260434158,875.4263407333333 -2002-11-18,909.830017,915.909973,899.47998,900.359985,1282600000,-1.0408572835644225,879.2623392666666 -2002-11-19,900.359985,905.450012,893.090027,896.73999,1337400000,-0.40206084902807415,882.5353393333334 -2002-11-20,896.73999,915.01001,894.929993,914.150024,1517300000,1.9414807183964156,887.1150064666667 -2002-11-21,914.150024,935.130005,914.150024,933.76001,2415100000,2.145160584713812,891.4430073666666 -2002-11-22,933.76001,937.280029,928.409973,930.549988,1626800000,-0.34377377116417973,894.6173400666667 -2002-11-25,930.549988,937.150024,923.309998,932.869995,1574000000,0.24931567674149058,897.6650065 -2002-11-26,932.869995,932.869995,912.099976,913.309998,1543600000,-2.0967548645403733,898.7330057666667 -2002-11-27,913.309998,940.409973,913.309998,938.869995,1350300000,2.798611321016109,901.3613382666666 -2002-11-29,938.869995,941.820007,935.580017,936.309998,643460000,-0.27266788944512177,903.2650044666666 -2002-12-02,936.309998,954.280029,927.719971,934.530029,1612000000,-0.1901046665956807,904.9363382666667 -2002-12-03,934.530029,934.530029,918.72998,920.75,1488400000,-1.4745410604670939,905.6373392333334 -2002-12-04,920.75,925.25,909.51001,917.580017,1588900000,-0.3442827043171337,906.5513407 -2002-12-05,917.580017,921.48999,905.900024,906.549988,1250200000,-1.2020781616476683,906.8983398 -2002-12-06,906.549988,915.47998,895.960022,912.22998,1241100000,0.6265503364608627,907.8893391333334 -2002-12-09,912.22998,912.22998,891.969971,892.0,1320800000,-2.21764033670544,907.701005 -2002-12-10,892.0,904.950012,892.0,904.450012,1286600000,1.395741255605376,908.1750060666667 -2002-12-11,904.450012,909.940002,896.47998,904.960022,1285100000,0.05638896492159429,908.9353393333333 -2002-12-12,904.960022,908.369995,897.0,901.580017,1255300000,-0.37349771457638736,909.2976725000001 -2002-12-13,901.580017,901.580017,888.47998,889.47998,1330800000,-1.342092412414242,909.4216715 -2002-12-16,889.47998,910.419983,889.47998,910.400024,1271600000,2.3519409621788334,909.7363382333333 -2002-12-17,910.400024,911.219971,901.73999,902.98999,1251800000,-0.8139316569262256,909.5576720333333 -2002-12-18,902.98999,902.98999,887.820007,891.119995,1446200000,-1.3145212163426123,908.7486713666666 -2002-12-19,890.02002,899.190002,880.320007,884.25,1385900000,-0.7709393839827383,907.4316710333333 -2002-12-20,884.25,897.789978,884.25,895.76001,1782730000,1.3016692111959216,907.2020039 -2002-12-23,895.73999,902.429993,892.26001,897.380005,1112100000,0.18085145372810363,907.2900043999999 -2002-12-24,897.380005,897.380005,892.289978,892.469971,458310000,-0.5471521509998412,907.8326700333333 -2002-12-26,892.469971,903.890015,887.47998,889.659973,721100000,-0.31485630792164043,908.0563354 -2002-12-27,889.659973,890.460022,873.619995,875.400024,758400000,-1.602853835484408,907.8186685666667 -2002-12-30,875.400024,882.099976,870.22998,879.390015,1057800000,0.45579059751086337,906.9893350666666 -2002-12-31,879.390015,881.929993,869.450012,879.820007,1088500000,0.04889662068769951,905.9890014 -2003-01-02,879.820007,909.030029,879.820007,909.030029,1229200000,3.319999746266289,906.2780028666667 -2003-01-03,909.030029,911.25,903.070007,908.590027,1130800000,-0.0484034614878559,906.6730041 -2003-01-06,908.590027,931.77002,908.590027,929.01001,1435900000,2.247436400707925,907.1683369666666 -2003-01-07,929.01001,930.809998,919.929993,922.929993,1545200000,-0.6544619470784774,906.8073363999999 -2003-01-08,922.929993,922.929993,908.320007,909.929993,1467600000,-1.4085575394232497,906.1200032333333 -2003-01-09,909.929993,928.309998,909.929993,927.570007,1560300000,1.938612215852098,905.9433369666666 -2003-01-10,927.580017,932.890015,917.659973,927.570007,1485400000,0.0,906.4186705999999 -2003-01-13,927.570007,935.049988,922.049988,926.26001,1396300000,-0.14122890888170758,905.9983377666667 -2003-01-14,926.26001,931.659973,921.719971,931.659973,1379400000,0.582985656478896,905.8433369333333 -2003-01-15,931.659973,932.590027,916.700012,918.219971,1432100000,-1.44258660772153,905.2996683333333 -2003-01-16,918.219971,926.030029,911.97998,914.599976,1534600000,-0.39424049948049156,905.0946675333332 -2003-01-17,914.599976,914.599976,899.02002,901.780029,1358200000,-1.4016999055770807,904.5680012666667 -2003-01-21,901.780029,906.0,887.619995,887.619995,1335200000,-1.5702314915647775,903.9370015000001 -2003-01-22,887.619995,889.73999,877.640015,878.359985,1560800000,-1.0432403564770931,902.8080016666667 -2003-01-23,878.359985,890.25,876.890015,887.340027,1744550000,1.0223646515500118,902.6526692333333 -2003-01-24,887.340027,887.340027,859.710022,861.400024,1574800000,-2.923344175929976,901.2176696333333 -2003-01-27,861.400024,863.950012,844.25,847.47998,1435900000,-1.6159790587607525,899.3016682333333 -2003-01-28,847.47998,860.76001,847.47998,858.539978,1459100000,1.3050453416020513,897.8670002666667 -2003-01-29,858.539978,868.719971,845.859985,864.359985,1595400000,0.6778958638079979,897.0296671 -2003-01-30,864.359985,865.47998,843.73999,844.609985,1510300000,-2.284927616125121,894.8366658 -2003-01-31,844.609985,858.330017,840.340027,855.700012,1578530000,1.3130352703561776,893.2603332 -2003-02-03,855.700012,864.640015,855.700012,860.320007,1258500000,0.5399082546699852,892.2336669333333 -2003-02-04,860.320007,860.320007,840.190002,848.200012,1451600000,-1.4087775364266308,891.0320006666667 -2003-02-05,848.200012,861.630005,842.109985,843.590027,1450800000,-0.5435021144517549,889.2930012333333 -2003-02-06,843.590027,844.22998,833.25,838.150024,1430900000,-0.6448633608609478,887.3186685333334 -2003-02-07,838.150024,845.72998,826.700012,829.690002,1276800000,-1.0093684612243137,885.2260029 -2003-02-10,829.690002,837.159973,823.530029,835.969971,1238200000,0.7569054688934207,883.4363361666667 -2003-02-11,835.969971,843.02002,825.090027,829.200012,1307000000,-0.8098327972117958,881.8963357666667 -2003-02-12,829.200012,832.119995,818.48999,818.679993,1260500000,-1.2686949888756183,879.8726683666667 -2003-02-13,818.679993,821.25,806.289978,817.369995,1489300000,-0.16001343763142328,877.7910013 -2003-02-14,817.369995,834.890015,815.030029,834.890015,1404600000,2.1434625820831554,875.3196675 -2003-02-18,834.890015,852.869995,834.890015,851.169983,1250800000,1.9499536115544558,873.4056660333333 -2003-02-19,851.169983,851.169983,838.789978,845.130005,1075600000,-0.709608905463488,870.6096658666667 -2003-02-20,845.130005,849.369995,836.559998,837.099976,1194100000,-0.9501531069175617,867.7486653 -2003-02-21,837.099976,852.280029,831.47998,848.169983,1398200000,1.3224235237584203,865.6899983000001 -2003-02-24,848.169983,848.169983,832.159973,832.580017,1229200000,-1.8380709424374864,862.5236653 -2003-02-25,832.580017,839.549988,818.539978,838.570007,1483700000,0.719449167370545,859.5569986333334 -2003-02-26,838.570007,840.099976,826.679993,827.549988,1374400000,-1.3141441868907755,856.2666645666667 -2003-02-27,827.549988,842.190002,827.549988,837.280029,1287800000,1.175764744256158,853.1206664333333 -2003-02-28,837.280029,847.0,837.280029,841.150024,1373300000,0.4622103556706225,850.5516682 -2003-03-03,841.150024,852.340027,832.73999,834.809998,1208900000,-0.7537330819834875,847.8920022666667 -2003-03-04,834.809998,835.429993,821.960022,821.98999,1256600000,-1.5356797391877786,845.2323343 -2003-03-05,821.98999,829.869995,819.0,829.849976,1332700000,0.956214320809412,843.3066670000001 -2003-03-06,829.849976,829.849976,819.849976,822.099976,1299200000,-0.9339037445486364,841.4313333666666 -2003-03-07,822.099976,829.549988,811.22998,828.890015,1368500000,0.8259383527825293,839.4829996333334 -2003-03-10,828.890015,828.890015,806.570007,807.47998,1255000000,-2.582976584655805,837.6856648333334 -2003-03-11,807.47998,814.25,800.299988,800.72998,1427700000,-0.8359340376463575,836.1273315 -2003-03-12,800.72998,804.190002,788.900024,804.190002,1620000000,0.43210846183130425,834.3156656333333 -2003-03-13,804.190002,832.02002,804.190002,831.900024,1816300000,3.445705856959913,833.2336669333332 -2003-03-14,831.890015,841.390015,828.26001,833.27002,1541900000,0.16468276962089412,832.8556681000001 -2003-03-17,833.27002,862.789978,827.169983,862.789978,1700420000,3.5426641174489903,833.0920002999999 -2003-03-18,862.789978,866.940002,857.359985,866.450012,1555100000,0.4242091462958619,833.2963338000001 -2003-03-19,866.450012,874.98999,861.210022,874.02002,1473400000,0.873680869658755,834.1570007333333 -2003-03-20,874.02002,879.599976,859.01001,875.669983,1439100000,0.1887786277481318,835.2263326 -2003-03-21,875.840027,895.900024,875.840027,895.789978,1883710000,2.2976686869030205,837.1476643999999 -2003-03-24,895.789978,895.789978,862.02002,864.22998,1293000000,-3.523147029448015,838.298997 -2003-03-25,864.22998,879.869995,862.590027,874.73999,1333400000,1.2161126370552555,839.5913309666666 -2003-03-26,874.73999,875.799988,866.469971,869.950012,1319700000,-0.547588775494301,840.9496643 -2003-03-27,869.950012,874.150024,858.090027,868.52002,1232900000,-0.16437634120062272,842.6109985333333 -2003-03-28,868.52002,869.880005,860.830017,863.5,1227000000,-0.5779970391471267,844.1486653666667 -2003-03-31,863.5,863.5,843.679993,848.179993,1495500000,-1.7741756803705933,844.5916646333334 -2003-04-01,848.179993,861.280029,847.849976,858.47998,1461600000,1.2143633527087916,844.8353312 -2003-04-02,858.47998,884.570007,858.47998,880.900024,1589800000,2.61159776841855,846.0276651666667 -2003-04-03,880.900024,885.890015,876.119995,876.450012,1339500000,-0.5051665204631739,847.3393330333333 -2003-04-04,876.450012,882.72998,874.22998,878.849976,1241200000,0.27382782442131326,848.3619994666666 -2003-04-07,878.849976,904.890015,878.849976,879.929993,1494000000,0.12288980252530557,849.940332 -2003-04-08,879.929993,883.109985,874.679993,878.289978,1235400000,-0.18638016808684155,851.2643310333334 -2003-04-09,878.289978,887.349976,865.719971,865.98999,1293700000,-1.400447267770144,852.5456644333333 -2003-04-10,865.98999,871.780029,862.76001,871.580017,1275300000,0.6455071149263469,853.6889973666667 -2003-04-11,871.580017,883.340027,865.919983,868.299988,1141600000,-0.3763313678633806,854.5939961666666 -2003-04-14,868.299988,885.26001,868.299988,885.22998,1131000000,1.9497860456034077,856.2746622333333 -2003-04-15,885.22998,891.27002,881.849976,890.809998,1460200000,0.6303467038023314,858.5686625 -2003-04-16,890.809998,896.77002,877.929993,879.909973,1587600000,-1.2236082918323898,860.2373290666667 -2003-04-17,879.909973,893.830017,879.200012,893.580017,1430600000,1.553573026725985,862.6199971000001 -2003-04-21,893.580017,898.01001,888.169983,892.01001,1118700000,-0.1756985351206719,864.7239969333333 -2003-04-22,892.01001,911.73999,886.700012,911.369995,1631200000,2.17037754991114,868.1869974333333 -2003-04-23,911.369995,919.73999,909.890015,919.02002,1667200000,0.8393983828708373,872.1299987666666 -2003-04-24,919.02002,919.02002,906.690002,911.429993,1648100000,-0.8258826614027437,875.7046651333334 -2003-04-25,911.429993,911.429993,897.52002,898.809998,1335800000,-1.3846367902005219,877.9349976 -2003-04-28,898.809998,918.150024,898.809998,914.840027,1273000000,1.7834724842479943,880.6539978333333 -2003-04-29,914.840027,924.23999,911.099976,917.840027,1525600000,0.3279261850662296,882.4889994666667 -2003-04-30,917.840027,922.01001,911.700012,916.919983,1788510000,-0.10024012604976651,884.1713318333333 -2003-05-01,916.919983,919.679993,902.830017,916.299988,1397500000,-0.06761713251918211,885.5806641 -2003-05-02,916.299988,930.559998,912.349976,930.080017,1554300000,1.5038774615808492,887.3943319000001 -2003-05-05,930.080017,933.880005,924.549988,926.549988,1446300000,-0.3795403551821508,888.4196655666667 -2003-05-06,926.549988,939.609985,926.380005,934.390015,1649600000,0.8461526201001934,890.7583334 -2003-05-07,934.390015,937.219971,926.409973,929.619995,1531900000,-0.5104956092665369,892.5876669 -2003-05-08,929.619995,929.619995,919.719971,920.27002,1379600000,-1.0057846270830284,894.2650004999999 -2003-05-09,920.27002,933.77002,920.27002,933.409973,1326100000,1.427836690800821,896.4279989333334 -2003-05-12,933.409973,946.840027,929.299988,945.109985,1378800000,1.2534697869571731,899.1483317666666 -2003-05-13,945.109985,947.51001,938.909973,942.299988,1418100000,-0.29731957598565506,902.2856649333334 -2003-05-14,942.299988,947.289978,935.23999,939.280029,1401800000,-0.3204880652083797,904.9789999 -2003-05-15,939.280029,948.22998,938.789978,946.669983,1508700000,0.7867679256278626,907.1713318666666 -2003-05-16,946.669983,948.650024,938.599976,944.299988,1505500000,-0.25035070748620214,909.4329977333333 -2003-05-19,944.299988,944.299988,920.22998,920.77002,1375700000,-2.491789505349429,910.8303325333334 -2003-05-20,920.77002,925.340027,912.049988,919.72998,1505300000,-0.11295328664154836,912.1569987666667 -2003-05-21,919.72998,923.849976,914.909973,923.419983,1457800000,0.4012050362868447,913.6613322666667 -2003-05-22,923.419983,935.299988,922.539978,931.869995,1448500000,0.9150778795740999,915.8573324333333 -2003-05-23,931.869995,935.200012,927.419983,933.219971,1201000000,0.14486741790629143,917.9119975666667 -2003-05-27,933.219971,952.76001,927.330017,951.47998,1532000000,1.9566671918126,920.6846639666668 -2003-05-28,951.47998,959.390015,950.119995,953.219971,1559000000,0.18287205580511667,922.950997 -2003-05-29,953.219971,962.080017,946.22998,949.640015,1685800000,-0.37556451909461774,924.9119975666667 -2003-05-30,949.640015,965.380005,949.640015,963.590027,1688800000,1.468978958305578,927.7013327 -2003-06-02,963.590027,979.109985,963.590027,967.0,1662500000,0.35388213913094546,930.1486654666666 -2003-06-03,967.0,973.02002,964.469971,971.559998,1450200000,0.47156132368149084,932.8003317333333 -2003-06-04,971.559998,987.849976,970.719971,986.23999,1618700000,1.5109712246510254,935.2959982333334 -2003-06-05,986.23999,990.140015,978.130005,990.140015,1693100000,0.3954438107909075,937.6666647333333 -2003-06-06,990.140015,1007.690002,986.01001,987.76001,1837200000,-0.2403705500176101,940.2109986333332 -2003-06-09,987.76001,987.76001,972.590027,975.929993,1307000000,-1.1976610593903314,942.7816651333334 -2003-06-10,975.929993,984.840027,975.929993,984.840027,1275400000,0.9129788062574695,945.1149984666666 -2003-06-11,984.840027,997.47998,981.609985,997.47998,1520000000,1.2834524037882211,947.7696635666667 -2003-06-12,997.47998,1002.73999,991.27002,998.51001,1553100000,0.1032632253932464,950.4893311333333 -2003-06-13,998.51001,1000.919983,984.27002,988.609985,1271600000,-0.9914797949797105,952.8996643666667 -2003-06-16,988.609985,1010.859985,988.609985,1010.73999,1345900000,2.2384970145734373,955.5883301333332 -2003-06-17,1010.73999,1015.330017,1007.039978,1011.659973,1479700000,0.09102073818212375,958.4253296333334 -2003-06-18,1011.659973,1015.119995,1004.609985,1010.090027,1488900000,-0.1551851453946984,960.9486633666667 -2003-06-19,1010.090027,1011.219971,993.080017,994.700012,1530100000,-1.5236280518191814,963.1179972666667 -2003-06-20,994.700012,1002.090027,993.359985,995.690002,1698000000,0.09952648919844265,965.6319966666667 -2003-06-23,995.690002,995.690002,977.400024,981.640015,1398100000,-1.4110804539343103,967.2396647333334 -2003-06-24,981.640015,987.840027,979.080017,983.450012,1388300000,0.18438500594335494,968.5176656333333 -2003-06-25,983.450012,991.640015,974.859985,975.320007,1459200000,-0.8266820784786355,969.6183329333332 -2003-06-26,975.320007,986.530029,973.799988,985.820007,1387400000,1.0765697334864655,971.1696655333333 -2003-06-27,985.820007,988.880005,974.289978,976.219971,1267800000,-0.973812250901096,972.1546651333334 -2003-06-30,976.219971,983.609985,973.599976,974.5,1587200000,-0.17618682787631235,973.1613322 -2003-07-01,974.5,983.26001,962.099976,982.320007,1460200000,0.8024635197537267,975.2129984333333 -2003-07-02,982.320007,993.780029,982.320007,993.75,1519300000,1.163571231223015,977.6803324333333 -2003-07-03,993.75,995.0,983.340027,985.700012,775900000,-0.810061685534591,979.7563334 -2003-07-07,985.700012,1005.559998,985.700012,1004.419983,1429100000,1.899154993618879,982.1746663333334 -2003-07-08,1004.419983,1008.919983,998.72998,1007.840027,1565700000,0.3404993984473581,984.6620015333333 -2003-07-09,1007.840027,1010.429993,998.169983,1002.210022,1618000000,-0.5586208970840945,986.3530029333332 -2003-07-10,1002.210022,1002.210022,983.630005,988.700012,1465700000,-1.3480218420725332,987.5356709666667 -2003-07-11,988.700012,1000.859985,988.700012,998.140015,1212700000,0.9547894088626663,989.1523376333333 -2003-07-14,998.140015,1015.409973,998.140015,1003.859985,1448900000,0.573062888376441,990.4946695666666 -2003-07-15,1003.859985,1009.609985,996.669983,1000.419983,1518600000,-0.3426774701055568,991.608669 -2003-07-16,1000.419983,1003.469971,989.299988,994.090027,1662000000,-0.6327298642134438,992.3596699666667 -2003-07-17,994.0,994.0,978.599976,981.72998,1661400000,-1.2433528819618678,992.2093363 -2003-07-18,981.72998,994.25,981.710022,993.320007,1365200000,1.180571769846539,992.3153360333333 -2003-07-21,993.320007,993.320007,975.630005,978.799988,1254200000,-1.461766489920302,992.0166686333333 -2003-07-22,978.799988,990.289978,976.080017,988.109985,1439700000,0.9511643966223726,992.4226683666668 -2003-07-23,988.109985,989.859985,979.789978,988.609985,1362700000,0.05060165443020459,992.5483336333333 -2003-07-24,988.609985,998.890015,981.070007,981.599976,1559000000,-0.7090773010956508,992.0190001666666 -2003-07-25,981.599976,998.710022,977.48999,998.679993,1397500000,1.7400180743280647,992.0246662666667 -2003-07-28,998.679993,1000.679993,993.590027,996.52002,1328600000,-0.2162827948031132,992.2883340999999 -2003-07-29,996.52002,998.640015,984.150024,989.280029,1508900000,-0.7265274008243283,991.5730020666667 -2003-07-30,989.280029,992.619995,985.960022,987.48999,1391900000,-0.18094361025455807,990.7673359666666 -2003-07-31,987.48999,1004.590027,987.48999,990.309998,1608000000,0.2855733251533987,990.1080016666667 -2003-08-01,990.309998,990.309998,978.859985,980.150024,1390600000,-1.0259387485250793,989.6230020666666 -2003-08-04,980.150024,985.75,966.789978,982.820007,1318700000,0.2724055435007644,989.1940022333333 -2003-08-05,982.820007,982.820007,964.969971,965.460022,1351700000,-1.7663442824073505,988.6546691333333 -2003-08-06,965.460022,975.73999,960.840027,967.080017,1491000000,0.167795140459992,988.1090026333334 -2003-08-07,967.080017,974.890015,963.820007,974.119995,1389300000,0.7279623067632857,988.0690022333333 -2003-08-08,974.119995,980.570007,973.830017,977.590027,1086600000,0.3562222331756848,987.7946695666667 -2003-08-11,977.590027,985.460022,974.210022,980.590027,1022200000,0.30687710769783383,987.9403381 -2003-08-12,980.590027,990.409973,979.900024,990.349976,1132300000,0.9953139162407476,988.4686706333333 -2003-08-13,990.349976,992.5,980.849976,984.030029,1208800000,-0.6381528907110301,988.5256713666666 -2003-08-14,984.030029,991.909973,980.359985,990.51001,1186800000,0.6585145584007357,988.4176716999999 -2003-08-15,990.51001,992.390015,987.099976,990.669983,636370000,0.01615056873580656,988.5833373999999 -2003-08-18,990.669983,1000.349976,990.669983,999.73999,1127600000,0.9155427292279361,988.4273376333333 -2003-08-19,999.73999,1003.299988,995.299988,1002.349976,1300600000,0.2610664798954332,988.2443359333333 -2003-08-20,1002.349976,1003.539978,996.619995,1000.299988,1210800000,-0.20451818716858972,988.1806681333334 -2003-08-21,1000.299988,1009.530029,999.330017,1003.27002,1407100000,0.29691412932417727,988.6663350666666 -2003-08-22,1003.27002,1011.01001,992.619995,993.059998,1308900000,-1.017674384409506,988.4970011666667 -2003-08-25,993.059998,993.710022,987.909973,993.710022,971700000,0.06545666941666362,988.1586690666667 -2003-08-26,993.710022,997.929993,983.570007,996.72998,1178700000,0.3039073706755824,988.0356689666667 -2003-08-27,996.72998,998.049988,993.330017,996.789978,1051400000,0.006019483832520045,988.1256673333334 -2003-08-28,996.789978,1004.119995,991.419983,1002.840027,1165200000,0.606953233231633,988.8293355666666 -2003-08-29,1002.840027,1008.849976,999.52002,1008.01001,945100000,0.5155341690405102,989.3190023333334 -2003-09-02,1008.01001,1022.590027,1005.72998,1021.98999,1470500000,1.3868890051994764,990.7586690666667 -2003-09-03,1021.98999,1029.339966,1021.98999,1026.27002,1675600000,0.4187937300638156,992.0306702333332 -2003-09-04,1026.27002,1029.170044,1022.190002,1027.969971,1453900000,0.1656436383087545,993.3426697666666 -2003-09-05,1027.969971,1029.209961,1018.190002,1021.390015,1465200000,-0.6400922386477048,994.6690044000001 -2003-09-08,1021.390015,1032.410034,1021.390015,1031.640015,1299300000,1.0035343844633227,995.7676718 -2003-09-09,1031.640015,1031.640015,1021.140015,1023.169983,1414800000,-0.821025927343455,996.6560039 -2003-09-10,1023.169983,1023.169983,1009.73999,1010.919983,1582100000,-1.197259517336724,997.3773356999999 -2003-09-11,1010.919983,1020.880005,1010.919983,1016.419983,1335900000,0.5440588862115625,998.3416688 -2003-09-12,1016.419983,1019.650024,1007.710022,1018.630005,1236700000,0.21743197073684772,999.2856690333333 -2003-09-15,1018.630005,1019.789978,1013.590027,1014.809998,1151300000,-0.3750141838792631,1000.4410015 -2003-09-16,1014.809998,1029.660034,1014.809998,1029.319946,1403200000,1.4298191807921246,1001.9909994666666 -2003-09-17,1029.319946,1031.339966,1024.530029,1025.969971,1338210000,-0.3254551719334975,1004.0079977666667 -2003-09-18,1025.969971,1040.160034,1025.75,1039.579956,1498800000,1.3265480847099775,1006.4246624 -2003-09-19,1039.579956,1040.290039,1031.890015,1036.300049,1518600000,-0.31550310113905855,1008.4973308666666 -2003-09-22,1036.300049,1036.300049,1018.299988,1022.820007,1278800000,-1.3007856183166022,1010.0049968666666 -2003-09-23,1022.820007,1030.119995,1021.539978,1029.030029,1301700000,0.6071470989518879,1011.6196636 -2003-09-24,1029.030029,1029.829956,1008.929993,1009.380005,1556000000,-1.909567597273687,1012.2539979 -2003-09-25,1009.380005,1015.969971,1003.26001,1003.27002,1530000000,-0.6053205898406855,1012.8953309333333 -2003-09-26,1003.27002,1003.450012,996.080017,996.849976,1472500000,-0.6399118753693145,1013.1066631333334 -2003-09-29,996.849976,1006.890015,995.309998,1006.580017,1366500000,0.9760787715562991,1013.6369976000001 -2003-09-30,1006.580017,1006.580017,990.359985,995.969971,1590500000,-1.0540688093155337,1013.5113302999999 -2003-10-01,995.969971,1018.219971,995.969971,1018.219971,1566300000,2.234003097268089,1014.0403301333333 -2003-10-02,1018.219971,1021.869995,1013.380005,1020.23999,1269300000,0.19838728934142846,1014.7049968666666 -2003-10-03,1020.23999,1039.310059,1020.23999,1029.849976,1570500000,0.9419338679323763,1015.5909954 -2003-10-06,1029.849976,1036.47998,1029.150024,1034.349976,1025800000,0.4369568485575126,1016.967328 -2003-10-07,1034.349976,1039.25,1026.27002,1039.25,1279500000,0.4737297929806372,1018.4853272666666 -2003-10-08,1039.25,1040.060059,1030.959961,1033.780029,1262500000,-0.5263383209044958,1019.7203289 -2003-10-09,1033.780029,1048.280029,1033.780029,1038.72998,1578700000,0.4788205286561986,1021.1183289666666 -2003-10-10,1038.72998,1040.839966,1035.73999,1038.060059,1108100000,-0.06449423939801635,1022.2923300333333 -2003-10-13,1038.060059,1048.900024,1038.060059,1045.349976,1040500000,0.7022635093987484,1023.5369955666666 -2003-10-14,1045.349976,1049.48999,1040.839966,1049.47998,1271900000,0.395083378277139,1024.4533285666666 -2003-10-15,1049.47998,1053.790039,1043.150024,1046.76001,1521100000,-0.25917311924331665,1025.1363282333334 -2003-10-16,1046.76001,1052.939941,1044.040039,1050.069946,1417700000,0.31620772367870753,1025.8729940666667 -2003-10-17,1050.069946,1051.890015,1036.569946,1039.319946,1352000000,-1.0237413270372753,1026.4706584333333 -2003-10-20,1039.319946,1044.689941,1036.130005,1044.680054,1172600000,0.5157322363175121,1026.9053264 -2003-10-21,1044.680054,1048.569946,1042.589966,1046.030029,1498000000,0.12922377476540792,1027.6673279333334 -2003-10-22,1046.030029,1046.030029,1028.390015,1030.359985,1647200000,-1.4980491539980378,1028.315328 -2003-10-23,1030.359985,1035.439941,1025.890015,1033.77002,1604300000,0.3309556902095556,1028.8936625666668 -2003-10-24,1033.77002,1033.77002,1018.320007,1028.910034,1420300000,-0.4701225520159613,1029.2363302 -2003-10-27,1028.910034,1037.75,1028.910034,1031.130005,1371800000,0.2157594859260481,1029.7803304333333 -2003-10-28,1031.130005,1046.790039,1031.130005,1046.790039,1629200000,1.5187254685697926,1030.3626668666666 -2003-10-29,1046.790039,1049.829956,1043.349976,1048.109985,1562600000,0.12609462746331346,1031.1006673333334 -2003-10-30,1048.109985,1052.810059,1043.819946,1046.939941,1629700000,-0.11163370416702456,1031.3460001666667 -2003-10-31,1046.939941,1053.089966,1046.939941,1050.709961,1498900000,0.3600989753432149,1031.8263305666667 -2003-11-03,1050.709961,1061.439941,1050.709961,1059.02002,1378200000,0.7908994211962117,1033.0329976666667 -2003-11-04,1059.02002,1059.02002,1051.699951,1053.25,1417600000,-0.544845223983581,1033.8403300333334 -2003-11-05,1053.25,1054.540039,1044.880005,1051.810059,1401800000,-0.1367140754806595,1035.2546651666667 -2003-11-06,1051.810059,1058.939941,1046.930054,1058.050049,1453900000,0.5932620577837611,1037.0806661333334 -2003-11-07,1058.050049,1062.390015,1052.170044,1053.209961,1440500000,-0.45745359631848004,1038.9593323 -2003-11-10,1053.209961,1053.650024,1045.579956,1047.109985,1243600000,-0.5791794823330587,1040.3103312333333 -2003-11-11,1047.109985,1048.22998,1043.459961,1046.569946,1162500000,-0.051574238402474215,1041.9969970666668 -2003-11-12,1046.569946,1059.099976,1046.569946,1058.530029,1349300000,1.1427886923097264,1043.3406656666666 -2003-11-13,1058.560059,1059.619995,1052.959961,1058.410034,1383000000,-0.01133600339268126,1044.6130004666668 -2003-11-14,1058.410034,1063.650024,1048.109985,1050.349976,1356100000,-0.7615250934025042,1045.2963338 -2003-11-17,1050.349976,1050.349976,1035.280029,1043.630005,1374300000,-0.6397839913884096,1045.6056681 -2003-11-18,1043.630005,1048.77002,1034.0,1034.150024,1354300000,-0.9083660832461371,1045.4356689 -2003-11-19,1034.150024,1043.949951,1034.150024,1042.439941,1326200000,0.8016164780362711,1045.7243326333332 -2003-11-20,1042.439941,1046.47998,1033.420044,1033.650024,1326700000,-0.8432060835627642,1045.5550007666668 -2003-11-21,1033.650024,1037.569946,1031.199951,1035.280029,1273800000,0.15769409008401514,1045.4623331 -2003-11-24,1035.280029,1052.079956,1035.280029,1052.079956,1302800000,1.6227423044398392,1045.6866657666667 -2003-11-25,1052.079956,1058.050049,1049.310059,1053.890015,1333700000,0.1720457641719353,1045.8336669333332 -2003-11-26,1053.890015,1058.449951,1048.280029,1058.449951,1097700000,0.43267664890060953,1046.2233316333334 -2003-11-28,1058.449951,1060.630005,1056.77002,1058.199951,487220000,-0.023619444619349395,1046.4943318 -2003-12-01,1058.199951,1070.469971,1058.199951,1070.119995,1375000000,1.126445336605375,1047.5210001 -2003-12-02,1070.119995,1071.219971,1065.219971,1066.619995,1383200000,-0.32706612495359,1048.2523314666666 -2003-12-03,1066.619995,1074.300049,1064.630005,1064.72998,1441700000,-0.17719665943445317,1048.8756631666668 -2003-12-04,1064.72998,1070.369995,1063.150024,1069.719971,1463100000,0.46866258053519516,1050.1876627 -2003-12-05,1069.719971,1069.719971,1060.089966,1061.5,1265900000,-0.7684226921851112,1051.1119953666666 -2003-12-08,1061.5,1069.589966,1060.930054,1069.300049,1218900000,0.734813848327831,1052.4583292 -2003-12-09,1069.300049,1071.939941,1059.160034,1060.180054,1465500000,-0.8528939102293132,1053.4266641666668 -2003-12-10,1060.180054,1063.02002,1053.410034,1059.050049,1444000000,-0.10658614031989755,1053.8353311666665 -2003-12-11,1059.050049,1073.630005,1059.050049,1071.209961,1441100000,1.1481904950084276,1054.6053303666665 -2003-12-12,1071.209961,1074.76001,1067.640015,1074.140015,1223100000,0.2735275162363715,1055.5119995 -2003-12-15,1074.140015,1082.790039,1068.0,1068.040039,1520800000,-0.5678939351309809,1056.0896687666668 -2003-12-16,1068.040039,1075.939941,1068.040039,1075.130005,1547900000,0.6638296076089345,1056.6266682666667 -2003-12-17,1075.130005,1076.540039,1071.140015,1076.47998,1441700000,0.1255638847136531,1057.4010009333333 -2003-12-18,1076.47998,1089.5,1076.47998,1089.180054,1579900000,1.1797780020023962,1058.6466674333333 -2003-12-19,1089.180054,1091.060059,1084.189941,1088.660034,1657300000,-0.04774417214951088,1059.6670002666667 -2003-12-22,1088.660034,1092.939941,1086.140015,1092.939941,1251700000,0.39313531004483426,1060.9913329333333 -2003-12-23,1092.939941,1096.949951,1091.72998,1096.02002,1145300000,0.2818159428945144,1062.6216674333334 -2003-12-24,1096.02002,1096.400024,1092.72998,1094.040039,518060000,-0.18065190086582472,1064.2040038666667 -2003-12-26,1094.040039,1098.469971,1094.040039,1095.890015,356070000,0.16909582227822018,1065.4493367333334 -2003-12-29,1095.890015,1109.47998,1095.890015,1109.47998,1058800000,1.240084754308124,1067.1516682666668 -2003-12-30,1109.47998,1109.75,1106.410034,1109.640015,1012600000,0.0144243251689824,1069.1280029 -2003-12-31,1109.640015,1112.560059,1106.209961,1111.920044,1027500000,0.2054746556702014,1071.4043375333333 -2004-01-02,1111.920044,1118.849976,1105.079956,1108.47998,1153200000,-0.309380518730884,1073.8820027333334 -2004-01-05,1108.47998,1122.219971,1108.47998,1122.219971,1578200000,1.2395344298414823,1076.5413370666668 -2004-01-06,1122.219971,1124.459961,1118.439941,1123.670044,1494500000,0.1292146849523501,1079.5420044 -2004-01-07,1123.670044,1126.329956,1116.449951,1126.329956,1704900000,0.23671646442859906,1082.5770019666666 -2004-01-08,1126.329956,1131.920044,1124.910034,1131.920044,1868400000,0.4963099818326988,1085.2383382333333 -2004-01-09,1131.920044,1131.920044,1120.900024,1121.859985,1720700000,-0.8887605669080201,1087.5040039 -2004-01-12,1121.859985,1127.849976,1120.900024,1127.22998,1510200000,0.47866891339385376,1089.7966715333334 -2004-01-13,1127.22998,1129.069946,1115.189941,1121.219971,1595900000,-0.5331661778548602,1091.8973388666666 -2004-01-14,1121.219971,1130.75,1121.219971,1130.52002,1514600000,0.8294580225596038,1093.9106730333333 -2004-01-15,1130.52002,1137.109985,1124.540039,1132.050049,1695000000,0.13533851439446742,1096.0916748333332 -2004-01-16,1132.050049,1139.829956,1132.050049,1139.829956,1721100000,0.6872405514996904,1098.5950073666668 -2004-01-20,1139.829956,1142.930054,1135.400024,1138.77002,1698200000,-0.09299071273050075,1100.8966756666666 -2004-01-21,1138.77002,1149.209961,1134.619995,1147.619995,1757600000,0.7771520890583306,1103.7673421666666 -2004-01-22,1147.619995,1150.51001,1143.01001,1143.939941,1693700000,-0.3206683410914235,1106.2553385666665 -2004-01-23,1143.939941,1150.310059,1136.849976,1141.550049,1561200000,-0.20891761134863573,1108.9676717333334 -2004-01-26,1141.550049,1155.380005,1141.0,1155.369995,1480600000,1.210629881020675,1112.1783366000002 -2004-01-27,1155.369995,1155.369995,1144.050049,1144.050049,1673100000,-0.9797680439156742,1114.6063395333333 -2004-01-28,1144.050049,1149.140015,1126.5,1128.47998,1842000000,-1.3609604766513073,1116.4176717 -2004-01-29,1128.47998,1134.390015,1122.380005,1134.109985,1921900000,0.49890162872008315,1118.6200032333334 -2004-01-30,1134.109985,1134.170044,1127.72998,1131.130005,1635000000,-0.2627593478069956,1120.4866699000002 -2004-02-02,1131.130005,1142.449951,1127.869995,1135.26001,1599200000,0.3651220444815362,1122.4460042333335 -2004-02-03,1135.26001,1137.439941,1131.329956,1136.030029,1476900000,0.06782754551533099,1124.0076700666666 -2004-02-04,1136.030029,1136.030029,1124.73999,1126.52002,1634800000,-0.8371265509919068,1125.2696695999998 -2004-02-05,1126.52002,1131.170044,1124.439941,1128.589966,1566600000,0.18374693420895039,1126.4580037666667 -2004-02-06,1128.589966,1142.790039,1128.390015,1142.76001,1477600000,1.2555528958158257,1128.0160034333335 -2004-02-09,1142.76001,1144.459961,1139.209961,1139.810059,1303500000,-0.25814265236671075,1129.5416707666666 -2004-02-10,1139.810059,1147.02002,1138.699951,1145.540039,1403900000,0.5027135841411345,1131.1966715666667 -2004-02-11,1145.540039,1158.890015,1142.329956,1157.76001,1699300000,1.066743246326629,1132.8060059000002 -2004-02-12,1157.76001,1157.76001,1151.439941,1152.109985,1464300000,-0.4880134873547659,1134.2216715666666 -2004-02-13,1152.109985,1156.880005,1143.23999,1145.810059,1329200000,-0.546816370140224,1135.3513387333335 -2004-02-17,1145.810059,1158.97998,1145.810059,1156.98999,1396500000,0.9757228881161373,1136.9683390666667 -2004-02-18,1156.98999,1157.400024,1149.540039,1151.819946,1382400000,-0.44685295851176754,1137.9550049 -2004-02-19,1151.819946,1158.569946,1146.849976,1147.060059,1562800000,-0.41324922497913974,1138.734672066667 -2004-02-20,1147.060059,1149.810059,1139.0,1144.109985,1479600000,-0.25718566145278565,1139.3273397 -2004-02-23,1144.109985,1146.689941,1136.97998,1140.98999,1380400000,-0.2727006180266889,1139.6296712333335 -2004-02-24,1140.98999,1144.540039,1134.430054,1139.089966,1543600000,-0.16652416030398243,1140.2040039333333 -2004-02-25,1139.089966,1145.23999,1138.959961,1143.670044,1360700000,0.4020822004150659,1140.7520060666668 -2004-02-26,1143.670044,1147.22998,1138.619995,1144.910034,1383900000,0.10842200567422466,1141.5416748333332 -2004-02-27,1145.800049,1151.680054,1141.800049,1144.939941,1540400000,0.002612170311366846,1142.0223388666668 -2004-03-01,1144.939941,1157.449951,1144.939941,1155.969971,1497100000,0.9633719293927534,1142.8196696000002 -2004-03-02,1155.969971,1156.540039,1147.310059,1149.099976,1476000000,-0.5943056629798882,1143.1286702666666 -2004-03-03,1149.099976,1152.439941,1143.780029,1151.030029,1334500000,0.16796214779488672,1143.5373372333333 -2004-03-04,1151.030029,1154.969971,1149.810059,1154.869995,1265800000,0.3336112788765444,1143.7790039 -2004-03-05,1154.869995,1163.22998,1148.77002,1156.859985,1398200000,0.17231290176520364,1144.2096720333332 -2004-03-08,1156.859985,1159.939941,1146.969971,1147.199951,1254400000,-0.8350218803704235,1144.3980021 -2004-03-09,1147.199951,1147.319946,1136.839966,1140.579956,1499400000,-0.5770567715095765,1143.9050008000002 -2004-03-10,1140.579956,1141.449951,1122.530029,1123.890015,1648400000,-1.4632854901756698,1143.2329996666665 -2004-03-11,1123.890015,1125.959961,1105.869995,1106.780029,1889900000,-1.5223897153317067,1142.5096679666667 -2004-03-12,1106.780029,1120.630005,1106.780029,1120.569946,1388500000,1.2459492074915257,1142.0583333333334 -2004-03-15,1120.569946,1120.569946,1103.359985,1104.48999,1600600000,-1.4349801239448956,1141.170332833333 -2004-03-16,1104.48999,1113.76001,1102.609985,1110.699951,1500700000,0.5622469244832118,1140.3516642 -2004-03-17,1110.699951,1125.76001,1110.699951,1123.75,1490100000,1.1749391893148609,1139.9423299 -2004-03-18,1123.75,1125.5,1113.25,1122.319946,1369200000,-0.12725730812013225,1139.8023274333334 -2004-03-19,1122.319946,1122.719971,1109.689941,1109.780029,1457400000,-1.1173210495539099,1139.1753295333333 -2004-03-22,1109.780029,1109.780029,1089.540039,1095.400024,1452300000,-1.29575272794894,1137.5966633333333 -2004-03-23,1095.400024,1101.52002,1091.569946,1093.949951,1458200000,-0.13237839768387438,1136.0679930666668 -2004-03-24,1093.949951,1098.319946,1087.160034,1091.329956,1527800000,-0.23949861669677608,1134.2609903000002 -2004-03-25,1091.329956,1110.380005,1091.329956,1109.189941,1471700000,1.6365339283328506,1132.6419879999999 -2004-03-26,1109.189941,1115.27002,1106.130005,1108.060059,1319100000,-0.10186551087738582,1131.1736571333336 -2004-03-29,1108.060059,1124.369995,1108.060059,1122.469971,1405500000,1.3004630825701469,1130.3956542 -2004-03-30,1122.469971,1127.599976,1119.660034,1127.0,1332400000,0.4035768543513285,1129.3959878666667 -2004-03-31,1127.0,1130.829956,1121.459961,1126.209961,1560700000,-0.07010106477373101,1128.5423217 -2004-04-01,1126.209961,1135.670044,1126.199951,1132.170044,1560700000,0.5292159727221524,1128.0459878666666 -2004-04-02,1132.170044,1144.810059,1132.170044,1141.810059,1629200000,0.851463528035179,1127.9693236666667 -2004-04-05,1141.810059,1150.569946,1141.640015,1150.569946,1413700000,0.7671930134922844,1128.2886555333332 -2004-04-06,1150.569946,1150.569946,1143.300049,1148.160034,1397700000,-0.20945375884171558,1128.5909911333333 -2004-04-07,1148.160034,1148.160034,1138.410034,1140.530029,1458800000,-0.6645419431138277,1128.4863239666668 -2004-04-08,1140.530029,1148.969971,1134.52002,1139.319946,1199800000,-0.10609830247616525,1128.2999877 -2004-04-12,1139.319946,1147.290039,1139.319946,1145.199951,1102400000,0.5160977845287462,1128.3086547 -2004-04-13,1145.199951,1147.780029,1127.699951,1129.439941,1423200000,-1.3761797654844643,1127.4243203666667 -2004-04-14,1129.439941,1132.52002,1122.150024,1128.170044,1547700000,-0.11243599184882491,1126.7266559666668 -2004-04-15,1128.170044,1134.079956,1120.75,1128.839966,1568700000,0.05938129660176816,1125.9869872000002 -2004-04-16,1128.839966,1136.800049,1126.900024,1134.609985,1487800000,0.5111458819486936,1125.3116535333331 -2004-04-19,1134.560059,1136.180054,1129.839966,1135.819946,1194900000,0.1066411380118426,1124.6103189 -2004-04-20,1135.819946,1139.26001,1118.089966,1118.150024,1508500000,-1.5556974555894998,1123.641988 -2004-04-21,1118.150024,1125.719971,1116.030029,1124.089966,1738100000,0.5312294300858555,1123.0923216666667 -2004-04-22,1124.089966,1142.77002,1121.949951,1139.930054,1826700000,1.409147708734193,1123.6269896333333 -2004-04-23,1139.930054,1141.920044,1134.810059,1140.599976,1396100000,0.05876869353951264,1124.7543211999998 -2004-04-26,1140.599976,1145.079956,1132.910034,1135.530029,1290600000,-0.4444982558898469,1125.2529906333334 -2004-04-27,1135.530029,1146.560059,1135.530029,1138.109985,1518000000,0.2272027981745195,1126.3736571333332 -2004-04-28,1138.109985,1138.109985,1121.699951,1122.410034,1855600000,-1.3794757279104286,1126.7639932333334 -2004-04-29,1122.410034,1128.800049,1108.040039,1113.890015,1859000000,-0.7590825760561581,1126.4353270666666 -2004-04-30,1113.890015,1119.26001,1107.22998,1107.300049,1634700000,-0.5916172971529909,1125.9346638333334 -2004-05-03,1107.300049,1118.719971,1107.300049,1117.48999,1571600000,0.920251110726733,1126.1916625333333 -2004-05-04,1117.48999,1127.73999,1112.890015,1119.550049,1662100000,0.1843469756717786,1126.9966633666668 -2004-05-05,1119.550049,1125.069946,1117.900024,1121.530029,1469000000,0.17685497863795252,1127.9159992999998 -2004-05-06,1121.530029,1121.530029,1106.300049,1113.98999,1509300000,-0.6722993415274825,1128.6713337666667 -2004-05-07,1113.98999,1117.300049,1098.630005,1098.699951,1653600000,-1.3725472524218962,1128.3216674333335 -2004-05-10,1098.699951,1098.699951,1079.630005,1087.119995,1918400000,-1.053968919308712,1127.6236653 -2004-05-11,1087.119995,1095.689941,1087.119995,1095.449951,1533800000,0.7662407129214843,1126.7229979666665 -2004-05-12,1095.449951,1097.550049,1076.319946,1097.280029,1697600000,0.16706176291572117,1125.7323322666666 -2004-05-13,1097.280029,1102.77002,1091.76001,1096.439941,1411100000,-0.07656094869106234,1124.7399982666668 -2004-05-14,1096.439941,1102.099976,1088.23999,1095.699951,1335900000,-0.0674902447757586,1123.5243285 -2004-05-17,1095.699951,1095.699951,1079.359985,1084.099976,1430100000,-1.0586817120337821,1121.6006590666666 -2004-05-18,1084.099976,1094.099976,1084.099976,1091.48999,1353000000,0.6816727390094535,1119.6313272 -2004-05-19,1091.48999,1105.930054,1088.48999,1088.680054,1548600000,-0.2574403820231219,1117.6486612 -2004-05-20,1088.680054,1092.619995,1085.430054,1089.189941,1211000000,0.04683533955882613,1115.9373249333332 -2004-05-21,1089.189941,1099.640015,1089.189941,1093.560059,1258600000,0.4012264376943797,1114.4119953666666 -2004-05-24,1093.560059,1101.280029,1091.77002,1095.410034,1227500000,0.16916994954001563,1112.7523314666666 -2004-05-25,1095.410034,1113.800049,1090.73999,1113.050049,1545700000,1.6103572591521509,1112.2060017333336 -2004-05-26,1113.050049,1116.709961,1109.910034,1114.939941,1369400000,0.1697939820134886,1111.7649983000001 -2004-05-27,1114.939941,1123.949951,1114.859985,1121.280029,1447500000,0.5686483878506898,1111.5130003999998 -2004-05-28,1121.280029,1122.689941,1118.099976,1120.680054,1172600000,-0.053508042993966054,1111.0486693666667 -2004-06-01,1120.680054,1122.699951,1113.319946,1121.199951,1238000000,0.046391206673535024,1110.5613362 -2004-06-02,1121.199951,1128.099976,1118.640015,1124.98999,1251700000,0.33803417460192,1110.7893350666668 -2004-06-03,1124.98999,1125.310059,1116.569946,1116.640015,1232400000,-0.7422266041673953,1110.5410033666667 -2004-06-04,1116.640015,1129.170044,1116.640015,1122.5,1115300000,0.5247873013040971,1109.9600015666667 -2004-06-07,1122.5,1140.540039,1122.5,1140.420044,1211800000,1.5964404454342995,1109.9540038333332 -2004-06-08,1140.420044,1142.180054,1135.449951,1142.180054,1190300000,0.15432997773581203,1110.1756713333334 -2004-06-09,1142.180054,1142.180054,1131.170044,1131.329956,1276800000,-0.9499463733412261,1109.9496703666666 -2004-06-10,1131.329956,1136.469971,1131.329956,1136.469971,1160600000,0.4543338548351761,1110.4183349333332 -2004-06-14,1136.469971,1136.469971,1122.160034,1125.290039,1179400000,-0.9837419628573763,1110.7983357333333 -2004-06-15,1125.290039,1137.359985,1125.290039,1132.01001,1345900000,0.5971767959460195,1111.6220011 -2004-06-16,1132.01001,1135.280029,1130.550049,1133.560059,1168400000,0.1369289128459128,1112.1576700666667 -2004-06-17,1133.560059,1133.560059,1126.890015,1132.050049,1296700000,-0.13320952763032912,1112.5743367333334 -2004-06-18,1132.050049,1138.959961,1129.829956,1135.02002,1500600000,0.26235332992772253,1113.0240030999998 -2004-06-21,1135.02002,1138.050049,1129.640015,1130.300049,1123900000,-0.4158491407050269,1113.5676717333333 -2004-06-22,1130.300049,1135.050049,1124.369995,1134.410034,1382300000,0.36361893495768793,1114.7580078333333 -2004-06-23,1134.410034,1145.150024,1131.72998,1144.060059,1444200000,0.8506646371923665,1116.6560099666667 -2004-06-24,1144.060059,1146.339966,1139.939941,1140.650024,1394900000,-0.29806433440046076,1118.1626790666667 -2004-06-25,1140.650024,1145.969971,1134.23999,1134.430054,1812900000,-0.5453004750912149,1119.401013233333 -2004-06-28,1134.430054,1142.599976,1131.719971,1133.349976,1354600000,-0.09520886688355601,1120.6313477333335 -2004-06-29,1133.349976,1138.26001,1131.810059,1136.199951,1375000000,0.2514646896679462,1121.9813477333332 -2004-06-30,1136.199951,1144.199951,1133.619995,1140.839966,1473800000,0.40838014435014003,1123.8726807333333 -2004-07-01,1140.839966,1140.839966,1123.060059,1128.939941,1495700000,-1.0430932781679836,1125.1210124333334 -2004-07-02,1128.939941,1129.150024,1123.26001,1125.380005,1085000000,-0.3153344009466763,1126.3443441333332 -2004-07-06,1125.380005,1125.380005,1113.209961,1116.209961,1283300000,-0.8148397838292798,1127.2450114666667 -2004-07-07,1116.209961,1122.369995,1114.920044,1118.329956,1328600000,0.18992797717920507,1128.0706747 -2004-07-08,1118.329956,1119.119995,1108.719971,1109.109985,1401100000,-0.8244410292806315,1128.5273397333333 -2004-07-09,1109.109985,1115.569946,1109.109985,1112.810059,1186300000,0.3336074915960552,1128.5193400666665 -2004-07-12,1112.810059,1116.109985,1106.709961,1114.349976,1114600000,0.13838093819746877,1128.4996745666665 -2004-07-13,1114.349976,1116.300049,1112.98999,1115.140015,1199700000,0.07089684722172418,1128.2950074333335 -2004-07-14,1115.140015,1119.599976,1107.829956,1111.469971,1462000000,-0.3291106005195221,1127.9880046666665 -2004-07-15,1111.469971,1114.630005,1106.670044,1106.689941,1408700000,-0.4300638006170532,1127.5043376666665 -2004-07-16,1106.689941,1112.170044,1101.069946,1101.390015,1450300000,-0.47889890416923375,1126.7176718333333 -2004-07-19,1101.390015,1105.52002,1096.550049,1100.900024,1319900000,-0.04448841857349617,1126.1930054666666 -2004-07-20,1100.900024,1108.880005,1099.099976,1108.670044,1445800000,0.7057879762567776,1125.7320069333334 -2004-07-21,1108.670044,1116.27002,1093.880005,1093.880005,1679500000,-1.3340343305965563,1124.1806723 -2004-07-22,1093.880005,1099.660034,1084.160034,1096.839966,1680800000,0.27059284258514893,1122.6693360333334 -2004-07-23,1096.839966,1096.839966,1083.560059,1086.199951,1337500000,-0.970060841127296,1121.1650025333333 -2004-07-26,1086.199951,1089.819946,1078.780029,1084.069946,1413400000,-0.19609695231885826,1119.4183350333333 -2004-07-27,1084.069946,1096.650024,1084.069946,1094.829956,1610800000,0.9925568031566856,1118.4029989333333 -2004-07-28,1094.829956,1098.839966,1082.170044,1095.420044,1554300000,0.053897684911352606,1117.1833334 -2004-07-29,1095.420044,1103.51001,1095.420044,1100.430054,1530100000,0.4573597157950138,1116.0789999 -2004-07-30,1100.430054,1103.72998,1096.959961,1101.719971,1298200000,0.11721935395270222,1115.0679973000001 -2004-08-02,1101.719971,1108.599976,1097.339966,1106.619995,1276000000,0.44476129406572085,1114.1213298 -2004-08-03,1106.619995,1106.619995,1099.26001,1099.689941,1338300000,-0.6262361091713298,1113.1009928666667 -2004-08-04,1099.689941,1102.449951,1092.400024,1098.630005,1369200000,-0.09638498639318316,1111.9083252333332 -2004-08-05,1098.630005,1098.790039,1079.97998,1080.699951,1397400000,-1.6320375302329326,1109.7963216333333 -2004-08-06,1080.699951,1080.699951,1062.22998,1063.969971,1521000000,-1.548068914458578,1107.2403198666666 -2004-08-09,1063.969971,1069.459961,1063.969971,1065.219971,1086000000,0.11748451874304955,1104.9333171 -2004-08-10,1065.219971,1079.040039,1065.219971,1079.040039,1245600000,1.2973909968122532,1103.1229858666668 -2004-08-11,1079.040039,1079.040039,1065.920044,1075.790039,1410400000,-0.30119364273191174,1101.1093221333333 -2004-08-12,1075.790039,1075.790039,1062.819946,1063.22998,1405100000,-1.1675195479291745,1098.5223226 -2004-08-13,1063.22998,1067.579956,1060.719971,1064.800049,1175100000,0.1476697449783959,1096.3843262 -2004-08-16,1064.800049,1080.660034,1064.800049,1079.339966,1206200000,1.365506792909632,1094.8496582333332 -2004-08-17,1079.339966,1086.780029,1079.339966,1081.709961,1267800000,0.2195781750566672,1093.6996582333334 -2004-08-18,1081.709961,1095.170044,1078.930054,1095.170044,1282500000,1.2443338311830532,1092.9276611666667 -2004-08-19,1095.170044,1095.170044,1086.280029,1091.22998,1249400000,-0.35976732760231167,1092.331661 -2004-08-20,1091.22998,1100.26001,1089.569946,1098.349976,1199900000,0.652474375749823,1091.8496582333332 -2004-08-23,1098.349976,1101.400024,1094.72998,1095.680054,1021900000,-0.24308481434336393,1091.2273275 -2004-08-24,1095.680054,1100.939941,1092.819946,1096.189941,1092500000,0.04653612139224883,1090.5956583666668 -2004-08-25,1096.189941,1106.290039,1093.23999,1104.959961,1192200000,0.8000456555913527,1090.3786580333333 -2004-08-26,1104.959961,1106.780029,1102.459961,1105.089966,1023600000,0.011765584689804598,1090.3253255333334 -2004-08-27,1105.089966,1109.680054,1104.619995,1107.77002,845400000,0.2425190783064135,1090.5379923666667 -2004-08-30,1107.77002,1107.77002,1099.150024,1099.150024,843100000,-0.7781394914442519,1090.4796590333333 -2004-08-31,1099.150024,1104.23999,1094.719971,1104.23999,1138200000,0.46308200781151054,1090.3319905666667 -2004-09-01,1104.23999,1109.23999,1099.180054,1105.910034,1142100000,0.15123922472686235,1090.7329915333332 -2004-09-02,1105.910034,1119.109985,1105.599976,1118.310059,1118400000,1.1212507906407154,1091.4486613000001 -2004-09-03,1118.310059,1120.800049,1113.569946,1113.630005,924170000,-0.4184934189168321,1092.3629964333334 -2004-09-07,1113.630005,1124.079956,1113.630005,1121.300049,1214400000,0.688742577477508,1093.6039998666668 -2004-09-08,1121.300049,1123.050049,1116.27002,1116.27002,1246300000,-0.44858902882292107,1094.3186686666666 -2004-09-09,1116.27002,1121.300049,1113.619995,1118.380005,1371300000,0.18902102199251924,1095.0840007 -2004-09-10,1118.380005,1125.26001,1114.390015,1123.920044,1261200000,0.4953628440451219,1095.8670003666666 -2004-09-13,1123.920044,1129.780029,1123.349976,1125.819946,1299800000,0.1690424519201983,1096.6703328666667 -2004-09-14,1125.819946,1129.459961,1124.719971,1128.329956,1204500000,0.22294950528438662,1097.3939982333331 -2004-09-15,1128.329956,1128.329956,1119.819946,1120.369995,1256000000,-0.705463943208473,1098.0833333666667 -2004-09-16,1120.369995,1126.060059,1120.369995,1123.5,1113900000,0.2793724407087472,1098.9123332000001 -2004-09-17,1123.5,1130.140015,1123.5,1128.550049,1422600000,0.4494925678682593,1100.5073364666669 -2004-09-20,1128.550049,1128.550049,1120.339966,1122.199951,1197600000,-0.5626775707135545,1102.4483358 -2004-09-21,1122.199951,1131.540039,1122.199951,1129.300049,1325000000,0.6326945562306285,1104.5843384 -2004-09-22,1129.300049,1129.300049,1112.670044,1113.560059,1379900000,-1.393782813871114,1105.7350057333335 -2004-09-23,1113.560059,1113.609985,1108.050049,1108.359985,1286300000,-0.4669774169764662,1106.8206705999999 -2004-09-24,1108.359985,1113.810059,1108.359985,1110.109985,1255400000,0.15789094009921456,1108.3833374333333 -2004-09-27,1110.109985,1110.109985,1103.23999,1103.52002,1263500000,-0.5936317201939323,1109.6740031333331 -2004-09-28,1103.52002,1111.77002,1101.290039,1110.060059,1396600000,0.592652501220603,1110.6980062333334 -2004-09-29,1110.060059,1114.800049,1107.420044,1114.800049,1402900000,0.427003022185124,1111.8010091666665 -2004-09-30,1114.800049,1116.310059,1109.680054,1114.579956,1748000000,-0.019742822957113937,1112.4480062333334 -2004-10-01,1114.579956,1131.640015,1114.579956,1131.5,1582200000,1.5180646223643235,1113.7903402333334 -2004-10-04,1131.5,1140.130005,1131.5,1135.170044,1534000000,0.32435209898364903,1115.0176758333332 -2004-10-05,1135.170044,1137.869995,1132.030029,1134.47998,1418400000,-0.06078948291907693,1116.3110067 -2004-10-06,1134.47998,1142.050049,1132.939941,1142.050049,1416700000,0.6672721540665671,1117.8396769666665 -2004-10-07,1142.050049,1142.050049,1130.5,1130.650024,1447500000,-0.9982071284863503,1118.6960124 -2004-10-08,1130.650024,1132.920044,1120.189941,1122.140015,1291600000,-0.752665176611722,1119.2643473666665 -2004-10-11,1122.140015,1126.199951,1122.140015,1124.390015,943800000,0.20050973763732216,1119.8183471999998 -2004-10-12,1124.390015,1124.390015,1115.77002,1121.839966,1320100000,-0.22679399194059924,1120.5746786000002 -2004-10-13,1121.839966,1127.01001,1109.630005,1113.650024,1546200000,-0.7300454831540515,1120.8883463999998 -2004-10-14,1113.650024,1114.959961,1102.060059,1103.290039,1489500000,-0.9302729562011836,1120.8010132333332 -2004-10-15,1103.290039,1113.170044,1102.140015,1108.199951,1645100000,0.4450245924861429,1120.4640096333335 -2004-10-18,1108.199951,1114.459961,1103.329956,1114.02002,1373300000,0.5251822105521775,1120.4770101333334 -2004-10-19,1114.02002,1117.959961,1103.150024,1103.22998,1737500000,-0.9685678718771906,1119.8746745 -2004-10-20,1103.22998,1104.089966,1094.25,1103.660034,1685700000,0.038981355455902644,1119.4543416333331 -2004-10-21,1103.660034,1108.869995,1098.469971,1106.48999,1673000000,0.25641555486461964,1119.0580077999998 -2004-10-22,1106.48999,1108.140015,1095.469971,1095.73999,1469600000,-0.9715406462917908,1118.1186726666667 -2004-10-25,1095.73999,1096.810059,1090.290039,1094.800049,1380500000,-0.08578139052861644,1117.0846761 -2004-10-26,1094.810059,1111.099976,1094.810059,1111.089966,1685400000,1.487935355399328,1116.5100097666666 -2004-10-27,1111.089966,1126.290039,1107.430054,1125.400024,1741900000,1.287929730075521,1116.6776774 -2004-10-28,1125.339966,1130.670044,1120.599976,1127.439941,1628200000,0.1812615031541842,1116.8090087666667 -2004-10-29,1127.439941,1131.400024,1124.619995,1130.199951,1500800000,0.24480328393829964,1116.8640055 -2004-11-01,1130.199951,1133.410034,1127.599976,1130.51001,1395900000,0.027433995172754244,1117.1410074666667 -2004-11-02,1130.51001,1140.47998,1128.119995,1130.560059,1659000000,0.004427116925742602,1117.1830077999998 -2004-11-03,1130.540039,1147.569946,1130.540039,1143.199951,1767500000,1.1180203916968612,1118.1710042000002 -2004-11-04,1143.199951,1161.670044,1142.339966,1161.670044,1782700000,1.6156485122172493,1119.9480061666666 -2004-11-05,1161.670044,1170.869995,1160.660034,1166.170044,1724400000,0.3873733357627973,1121.8166748 -2004-11-08,1166.170044,1166.77002,1162.319946,1164.890015,1358700000,-0.10976349517686224,1123.8623412999998 -2004-11-09,1164.890015,1168.959961,1162.47998,1164.079956,1450800000,-0.06953952644189743,1125.6630045333334 -2004-11-10,1164.079956,1169.25,1162.51001,1162.910034,1504300000,-0.10050185934135092,1127.2666706999998 -2004-11-11,1162.910034,1174.800049,1162.910034,1173.47998,1393000000,0.9089220740183368,1129.2300048333334 -2004-11-12,1173.47998,1184.170044,1171.430054,1184.170044,1531600000,0.9109711441348978,1130.9856729666667 -2004-11-15,1184.170044,1184.47998,1179.849976,1183.810059,1453300000,-0.03039977255159254,1132.6070068000001 -2004-11-16,1183.810059,1183.810059,1175.319946,1175.430054,1364400000,-0.7078842535836238,1133.9720092666664 -2004-11-17,1175.430054,1188.459961,1175.430054,1181.939941,1684200000,0.5538302324197719,1135.3016723333335 -2004-11-18,1181.939941,1184.900024,1180.150024,1183.550049,1456700000,0.1362258727493071,1137.0650065 -2004-11-19,1183.550049,1184.0,1169.189941,1170.339966,1526600000,-1.1161406322581224,1138.6716715333334 -2004-11-22,1170.339966,1178.180054,1167.890015,1177.23999,1392700000,0.5895743288664157,1140.4333373666666 -2004-11-23,1177.23999,1179.52002,1171.410034,1176.939941,1428300000,-0.02548749639399439,1142.2700031999998 -2004-11-24,1176.939941,1182.459961,1176.939941,1181.76001,1149600000,0.40954247808979716,1144.540336066667 -2004-11-26,1181.76001,1186.619995,1181.079956,1182.650024,504580000,0.0753125839822566,1147.1856689 -2004-11-29,1182.650024,1186.939941,1172.369995,1178.569946,1378500000,-0.34499453914524914,1149.5313354 -2004-11-30,1178.569946,1178.660034,1173.810059,1173.819946,1553500000,-0.40303081001863417,1151.5246662666664 -2004-12-01,1173.780029,1191.369995,1173.780029,1191.369995,1772800000,1.495122745171007,1154.4626667666666 -2004-12-02,1191.369995,1194.800049,1186.719971,1190.329956,1774900000,-0.08729773322854184,1157.3516641666668 -2004-12-03,1190.329956,1197.459961,1187.709961,1191.170044,1566700000,0.07057606134881489,1160.1743326333333 -2004-12-06,1191.170044,1192.410034,1185.180054,1190.25,1354400000,-0.07723867844345866,1163.3246662999998 -2004-12-07,1190.25,1192.170044,1177.069946,1177.069946,1533900000,-1.1073349296366275,1166.0669962 -2004-12-08,1177.069946,1184.050049,1177.069946,1182.810059,1525200000,0.4876611640205697,1168.4576659666666 -2004-12-09,1182.810059,1190.51001,1173.790039,1189.23999,1624700000,0.5436148391768203,1170.585664833333 -2004-12-10,1189.23999,1191.449951,1185.23999,1188.0,1443700000,-0.1042674321774184,1172.6043334666667 -2004-12-13,1188.0,1198.73999,1188.0,1198.680054,1436100000,0.8989944444444342,1174.8870035666666 -2004-12-14,1198.680054,1205.290039,1197.839966,1203.380005,1544400000,0.3920938689449427,1177.3160034 -2004-12-15,1203.380005,1206.609985,1199.439941,1205.719971,1695800000,0.1944494665257368,1179.8213338 -2004-12-16,1205.719971,1207.969971,1198.410034,1203.209961,1793900000,-0.2081752032288442,1181.8216674666667 -2004-12-17,1203.209961,1203.209961,1193.48999,1194.199951,2335000000,-0.7488310678970489,1182.9059977000002 -2004-12-20,1194.199951,1203.430054,1193.359985,1194.650024,1422800000,0.03768824472176746,1183.8553303666665 -2004-12-21,1194.650024,1205.930054,1194.650024,1205.449951,1483700000,0.9040243404373038,1185.2073282333333 -2004-12-22,1205.449951,1211.420044,1203.849976,1209.569946,1390800000,0.3417806767159526,1186.7236612333334 -2004-12-23,1209.569946,1213.660034,1208.709961,1210.130005,956100000,0.04630232438000981,1188.2976602666668 -2004-12-27,1210.130005,1214.130005,1204.920044,1204.920044,922000000,-0.4305290322918709,1189.3456624 -2004-12-28,1204.920044,1213.540039,1204.920044,1213.540039,983000000,0.715399751454382,1190.3246622333334 -2004-12-29,1213.540039,1213.849976,1210.949951,1213.449951,925900000,-0.007423570471898344,1191.3126586333335 -2004-12-30,1213.449951,1216.469971,1213.410034,1213.550049,829800000,0.008249042320818134,1192.5833251333336 -2004-12-31,1213.550049,1217.329956,1211.650024,1211.920044,786900000,-0.1343170808112193,1193.5826619 -2005-01-03,1211.920044,1217.800049,1200.319946,1202.079956,1510800000,-0.811942012900635,1194.2003254666668 -2005-01-04,1202.079956,1205.839966,1185.390015,1188.050049,1721000000,-1.1671359238602963,1194.7906615666666 -2005-01-05,1188.050049,1192.72998,1183.719971,1183.73999,1738900000,-0.3627842954619376,1195.0073282333333 -2005-01-06,1183.73999,1191.630005,1183.27002,1187.890015,1569100000,0.3505858579636145,1195.3723307 -2005-01-07,1187.890015,1192.199951,1182.160034,1186.189941,1477900000,-0.1431171218321814,1195.5199950666668 -2005-01-10,1186.189941,1194.780029,1184.800049,1190.25,1490400000,0.3422773081836361,1195.7733276000001 -2005-01-11,1190.25,1190.25,1180.430054,1182.98999,1488800000,-0.6099567317790378,1195.9206623999999 -2005-01-12,1182.98999,1187.920044,1175.640015,1187.699951,1562100000,0.3981403933942085,1196.3833292333334 -2005-01-13,1187.699951,1187.699951,1175.810059,1177.449951,1510300000,-0.8630125808601674,1195.9193277666668 -2005-01-14,1177.449951,1185.209961,1177.449951,1184.52002,1335400000,0.6004560103803458,1195.7256632333333 -2005-01-18,1184.52002,1195.97998,1180.099976,1195.97998,1596800000,0.9674771051991327,1195.8859944333335 -2005-01-19,1195.97998,1195.97998,1184.410034,1184.630005,1498700000,-0.9490104508271147,1195.6986612666667 -2005-01-20,1184.630005,1184.630005,1173.420044,1175.410034,1692000000,-0.778299634576618,1195.6433308666667 -2005-01-21,1175.410034,1179.449951,1167.819946,1167.869995,1643500000,-0.6414815921164774,1195.1453287333336 -2005-01-24,1167.869995,1173.030029,1163.75,1163.75,1494600000,-0.35277856419284603,1194.2956624 -2005-01-25,1163.75,1174.300049,1163.75,1168.410034,1610400000,0.40043256713211406,1193.6426635333335 -2005-01-26,1168.410034,1175.959961,1168.410034,1174.069946,1635900000,0.48441145105744265,1192.8223265999998 -2005-01-27,1174.069946,1177.5,1170.150024,1174.550049,1600600000,0.040892197405750785,1191.8613280666666 -2005-01-28,1174.550049,1175.609985,1166.25,1171.359985,1641800000,-0.2715988137513503,1190.7159952 -2005-01-31,1171.359985,1182.069946,1171.359985,1181.27002,1679800000,0.8460281319922158,1189.9846638333333 -2005-02-01,1181.27002,1190.390015,1180.949951,1189.410034,1681980000,0.6890900354857177,1189.8249999333334 -2005-02-02,1189.410034,1195.25,1188.920044,1193.189941,1561740000,0.31779679773578096,1189.7763305 -2005-02-03,1193.189941,1193.189941,1185.640015,1189.890015,1554460000,-0.27656334390772086,1189.2576659666665 -2005-02-04,1189.890015,1203.469971,1189.670044,1203.030029,1648160000,1.1043049218292689,1189.0396687333332 -2005-02-07,1203.030029,1204.150024,1199.27002,1201.719971,1347270000,-0.1088965336209391,1188.7593342666664 -2005-02-08,1201.719971,1205.109985,1200.160034,1202.300049,1416170000,0.048270646573111975,1188.6720011 -2005-02-09,1202.300049,1203.829956,1191.540039,1191.98999,1511040000,-0.8575279530742108,1187.9536661333334 -2005-02-10,1191.98999,1198.75,1191.540039,1197.01001,1491670000,0.4211461540880812,1187.4056681 -2005-02-11,1197.01001,1208.380005,1193.280029,1205.300049,1562300000,0.6925622117395669,1187.1306680999999 -2005-02-14,1205.300049,1206.930054,1203.589966,1206.140015,1290180000,0.06968936910745072,1186.9380004666668 -2005-02-15,1206.140015,1212.439941,1205.52002,1210.119995,1527080000,0.329976615525851,1187.2060017666665 -2005-02-16,1210.119995,1212.439941,1205.060059,1210.339966,1490100000,0.018177618823655983,1187.948999 -2005-02-17,1210.339966,1211.329956,1200.73999,1200.75,1580120000,-0.7923365557937823,1188.5159993333332 -2005-02-18,1200.75,1202.920044,1197.349976,1201.589966,1551200000,0.06995344576306017,1188.9726643666668 -2005-02-22,1201.589966,1202.47998,1184.160034,1184.160034,1744940000,-1.4505723660478753,1188.9050008 -2005-02-23,1184.160034,1193.52002,1184.160034,1190.800049,1501090000,0.560736286426633,1188.9233357666667 -2005-02-24,1190.800049,1200.420044,1187.800049,1200.199951,1518750000,0.7893770249584708,1189.497001133333 -2005-02-25,1200.199951,1212.150024,1199.609985,1211.369995,1523680000,0.9306819243487752,1190.2860026 -2005-02-28,1211.369995,1211.369995,1198.130005,1203.599976,1795480000,-0.6414240927273496,1191.1576701000001 -2005-03-01,1203.599976,1212.25,1203.599976,1210.410034,1708060000,0.5658074223823473,1192.020670566667 -2005-03-02,1210.410034,1215.790039,1204.219971,1210.079956,1568540000,-0.027269932562368204,1192.4906697666665 -2005-03-03,1210.079956,1215.719971,1204.449951,1210.469971,1616240000,0.03223051485699013,1193.3520019666669 -2005-03-04,1210.469971,1224.76001,1210.469971,1222.119995,1636820000,0.9624380843066715,1194.9090006666665 -2005-03-07,1222.119995,1229.109985,1222.119995,1225.310059,1488830000,0.26102706878630144,1196.8236694666666 -2005-03-08,1225.310059,1225.689941,1218.569946,1219.430054,1523090000,-0.47987894629697436,1198.6796712666664 -2005-03-09,1219.430054,1219.430054,1206.660034,1207.01001,1704970000,-1.018512210623268,1199.9663371333334 -2005-03-10,1207.01001,1211.22998,1201.410034,1209.25,1604020000,0.18558172520872773,1201.1390056000002 -2005-03-11,1209.25,1213.040039,1198.150024,1200.079956,1449820000,-0.7583249121356217,1201.9900025 -2005-03-14,1200.079956,1206.829956,1199.51001,1206.829956,1437430000,0.562462523122087,1203.1723348666667 -2005-03-15,1206.829956,1210.540039,1197.75,1197.75,1513530000,-0.7523807272811878,1203.7216675333332 -2005-03-16,1197.75,1197.75,1185.609985,1188.069946,1653190000,-0.8081865163848789,1203.6769979333333 -2005-03-17,1188.069946,1193.280029,1186.339966,1190.209961,1581930000,0.1801253375026457,1203.5776652666668 -2005-03-18,1190.209961,1191.97998,1182.780029,1189.650024,2344370000,-0.0470452288543699,1203.5696655666668 -2005-03-21,1189.650024,1189.650024,1178.819946,1183.780029,1819440000,-0.49342200492402677,1202.9279989 -2005-03-22,1183.780029,1189.589966,1171.630005,1171.709961,2114470000,-1.0196208505220516,1201.927665233333 -2005-03-23,1171.709961,1176.26001,1168.699951,1172.530029,2246870000,0.06998899277941284,1200.9353312333333 -2005-03-24,1172.530029,1180.109985,1171.420044,1171.420044,1721720000,-0.09466580578296746,1200.2496663666666 -2005-03-28,1171.420044,1179.910034,1171.420044,1174.280029,1746220000,0.24414683824549588,1199.4920003333332 -2005-03-29,1174.280029,1179.390015,1163.689941,1165.359985,2223250000,-0.7596181302339078,1198.1606648666668 -2005-03-30,1165.359985,1181.540039,1165.359985,1181.410034,2097110000,1.3772610357819959,1197.3363321666668 -2005-03-31,1181.410034,1184.530029,1179.48999,1180.589966,2214230000,-0.06941434187954787,1196.3519978666668 -2005-04-01,1180.589966,1189.800049,1169.910034,1172.920044,2168690000,-0.6496685742626407,1195.1046671333336 -2005-04-04,1172.790039,1178.609985,1167.719971,1176.119995,2079770000,0.2728191931214097,1194.283666966667 -2005-04-05,1176.119995,1183.560059,1176.119995,1181.390015,1870800000,0.4480852313032857,1193.6103352666667 -2005-04-06,1181.390015,1189.339966,1181.390015,1184.069946,1797400000,0.2268455773261513,1193.6073323333335 -2005-04-07,1184.069946,1191.880005,1183.810059,1191.140015,1900620000,0.5970989318565101,1193.6186645333332 -2005-04-08,1191.140015,1191.75,1181.130005,1181.199951,1661330000,-0.8345000482583798,1192.9853312000002 -2005-04-11,1181.199951,1184.069946,1178.689941,1181.209961,1525310000,0.0008474433131677728,1191.9799967333336 -2005-04-12,1181.209961,1190.170044,1170.849976,1187.76001,1979830000,0.5545202983604058,1191.4519978666665 -2005-04-13,1187.76001,1187.76001,1171.400024,1173.790039,2049740000,-1.1761610832477842,1190.2313313666666 -2005-04-14,1173.790039,1174.670044,1161.699951,1162.050049,2355040000,-1.000178022468301,1188.6303344666667 -2005-04-15,1162.050049,1162.050049,1141.920044,1142.619995,2689960000,-1.6720496691790876,1186.3686685999999 -2005-04-18,1142.619995,1148.920044,1139.800049,1145.97998,2180670000,0.29405970617555344,1183.8306681000001 -2005-04-19,1145.97998,1154.670044,1145.97998,1152.780029,2142700000,0.5933828791668816,1181.4130004333333 -2005-04-20,1152.780029,1155.5,1136.150024,1137.5,2217050000,-1.3254939030523438,1178.6819986333333 -2005-04-21,1137.5,1159.949951,1137.5,1159.949951,2308560000,1.9736220659340775,1177.11333 -2005-04-22,1159.949951,1159.949951,1142.949951,1152.119995,2045880000,-0.6750253313300147,1175.2089965 -2005-04-25,1152.119995,1164.050049,1152.119995,1162.099976,1795030000,0.8662275668603447,1173.9429971666666 -2005-04-26,1162.099976,1164.800049,1151.829956,1151.829956,1959740000,-0.8837466837706809,1172.1096638333333 -2005-04-27,1151.73999,1159.869995,1144.420044,1156.380005,2151520000,0.39502784037681593,1170.730664 -2005-04-28,1156.380005,1156.380005,1143.219971,1143.219971,2182270000,-1.138037145496995,1169.2356648333332 -2005-04-29,1143.219971,1156.969971,1139.189941,1156.849976,2362360000,1.1922469293532023,1168.1236653333333 -2005-05-02,1156.849976,1162.869995,1154.709961,1162.160034,1980040000,0.45901007997255494,1167.2073323333336 -2005-05-03,1162.160034,1166.890015,1156.709961,1161.170044,2167020000,-0.0851853420387072,1166.4536661666668 -2005-05-04,1161.170044,1176.01001,1161.170044,1175.650024,2306480000,1.2470163241655285,1166.5850016000002 -2005-05-05,1175.650024,1178.619995,1166.77002,1172.630005,1997100000,-0.25688078410655013,1166.5883341333333 -2005-05-06,1172.630005,1177.75,1170.5,1171.349976,1707200000,-0.10915881348269041,1166.5859985333334 -2005-05-09,1171.349976,1178.869995,1169.380005,1178.839966,1857020000,0.6394322920957762,1166.7379964333334 -2005-05-10,1178.839966,1178.839966,1162.97998,1166.219971,1889660000,-1.0705435312667433,1166.7666626333332 -2005-05-11,1166.219971,1171.77002,1157.709961,1171.109985,1834970000,0.4193046013272195,1166.4233276666666 -2005-05-12,1171.109985,1173.369995,1157.76001,1159.359985,1995290000,-1.003321647880917,1165.7156616333334 -2005-05-13,1159.359985,1163.75,1146.180054,1154.050049,2188590000,-0.45800580222717935,1165.0866618 -2005-05-16,1154.050049,1165.75,1153.640015,1165.689941,1856860000,1.0086124089753623,1164.7389933333332 -2005-05-17,1165.689941,1174.349976,1159.859985,1173.800049,1887260000,0.6957345787030222,1164.4859944666669 -2005-05-18,1173.800049,1187.900024,1173.800049,1185.560059,2266320000,1.0018750646686891,1164.5356648999998 -2005-05-19,1185.560059,1191.089966,1184.48999,1191.079956,1775860000,0.465594042081352,1164.5336629333333 -2005-05-20,1191.079956,1191.219971,1185.189941,1189.280029,1631750000,-0.1511172269277994,1164.8029988666667 -2005-05-23,1189.280029,1197.439941,1188.76001,1193.859985,1681170000,0.3851032463608295,1165.224666333333 -2005-05-24,1193.859985,1195.290039,1189.869995,1194.069946,1681000000,0.017586735684083088,1165.4349975333332 -2005-05-25,1194.069946,1194.069946,1185.959961,1190.01001,1742180000,-0.3400082226003964,1165.9756632333333 -2005-05-26,1190.01001,1198.949951,1190.01001,1197.619995,1654110000,0.6394891585828066,1167.1613281 -2005-05-27,1197.619995,1199.560059,1195.280029,1198.780029,1381430000,0.09686160926196674,1169.0333292333335 -2005-05-31,1198.780029,1198.780029,1191.5,1191.5,1840680000,-0.6072864765750974,1170.5506632333334 -2005-06-01,1191.5,1205.640015,1191.030029,1202.219971,1810100000,0.8997038187159134,1172.1986613000001 -2005-06-02,1202.27002,1204.670044,1198.420044,1204.290039,1813790000,0.1721871246472606,1174.4249959333333 -2005-06-03,1204.290039,1205.089966,1194.550049,1196.02002,1627520000,-0.6867132278921106,1175.6273315666667 -2005-06-06,1196.02002,1198.780029,1192.75,1197.51001,1547120000,0.12457901833449192,1177.1403320666666 -2005-06-07,1197.51001,1208.849976,1197.26001,1197.26001,1851370000,-0.020876652212697966,1178.3123332 -2005-06-08,1197.26001,1201.969971,1193.329956,1194.670044,1715490000,-0.21632443899968212,1179.7403361333334 -2005-06-09,1194.670044,1201.859985,1191.089966,1200.930054,1824120000,0.5239948914296244,1181.2253377666668 -2005-06-10,1200.930054,1202.790039,1192.640015,1198.109985,1664180000,-0.23482375102588104,1183.0550049 -2005-06-13,1198.109985,1206.030029,1194.51001,1200.819946,1661350000,0.22618632962982943,1184.5206705666667 -2005-06-14,1200.819946,1207.530029,1200.180054,1203.910034,1698150000,0.25733150172040364,1185.9123372333333 -2005-06-15,1203.910034,1208.079956,1198.660034,1206.579956,1840440000,0.22177089023249774,1187.4260009666666 -2005-06-16,1206.550049,1212.099976,1205.469971,1210.959961,1776040000,0.3630099255519159,1188.6029988666667 -2005-06-17,1210.930054,1219.550049,1210.930054,1216.959961,2407370000,0.4954746806860033,1190.0806640666667 -2005-06-20,1216.959961,1219.099976,1210.650024,1216.099976,1714530000,-0.0706666634532005,1191.5723307333333 -2005-06-21,1216.099976,1217.130005,1211.859985,1213.609985,1720700000,-0.20475216258041273,1192.7313313666668 -2005-06-22,1213.609985,1219.589966,1211.689941,1213.880005,1823250000,0.02224932254490941,1194.3199991666668 -2005-06-23,1213.880005,1216.449951,1200.719971,1200.72998,2029920000,-1.0833051822119688,1195.3073323333333 -2005-06-24,1200.72998,1200.900024,1191.449951,1191.569946,2418800000,-0.7628720988543947,1196.3809976999999 -2005-06-27,1191.569946,1194.329956,1188.300049,1190.689941,1738620000,-0.07385256761083259,1197.6023274333334 -2005-06-28,1190.689941,1202.540039,1190.689941,1201.569946,1772410000,0.9137563546444794,1198.7983276000002 -2005-06-29,1201.569946,1204.069946,1198.699951,1199.849976,1769280000,-0.1431435602834319,1199.6666584999998 -2005-06-30,1199.849976,1203.27002,1190.51001,1191.329956,2109490000,-0.7100904421737386,1199.8589884 -2005-07-01,1191.329956,1197.890015,1191.329956,1194.439941,1593820000,0.2610515234958255,1199.9709879 -2005-07-05,1194.439941,1206.339966,1192.48999,1204.98999,1805820000,0.8832632464690793,1200.4946532666665 -2005-07-06,1204.98999,1206.109985,1194.780029,1194.939941,1883470000,-0.8340358910367329,1200.5306518000002 -2005-07-07,1194.939941,1198.459961,1183.550049,1197.869995,1952440000,0.24520512700814123,1200.6573200999999 -2005-07-08,1197.869995,1212.72998,1197.199951,1211.859985,1900810000,1.167905537194791,1201.3856526000002 -2005-07-11,1211.859985,1220.030029,1211.859985,1219.439941,1846300000,0.6254811689322404,1202.1129841333334 -2005-07-12,1219.439941,1225.540039,1216.599976,1222.209961,1932010000,0.22715509857158533,1202.8939818666665 -2005-07-13,1222.209961,1224.459961,1219.640015,1223.290039,1812500000,0.08837090471069953,1203.9536498333332 -2005-07-14,1223.290039,1233.160034,1223.290039,1226.5,2048710000,0.2624039187488325,1204.7629841333332 -2005-07-15,1226.5,1229.530029,1223.5,1227.920044,1716400000,0.11578018752547159,1205.5506509666668 -2005-07-18,1227.920044,1227.920044,1221.130005,1221.130005,1582100000,-0.5529707763284986,1206.3876504666666 -2005-07-19,1221.130005,1230.339966,1221.130005,1229.349976,2041280000,0.6731446255798135,1207.4489826666666 -2005-07-20,1229.349976,1236.560059,1222.910034,1235.199951,2063340000,0.47585920317292363,1208.7136473666667 -2005-07-21,1235.199951,1235.829956,1224.699951,1227.040039,2129840000,-0.6606146635120824,1209.7926472000001 -2005-07-22,1227.040039,1234.189941,1226.150024,1233.680054,1766990000,0.5411408584035549,1210.8843138666666 -2005-07-25,1233.680054,1238.359985,1228.150024,1229.030029,1717580000,-0.3769230916008559,1211.914982 -2005-07-26,1229.030029,1234.420044,1229.030029,1231.160034,1934180000,0.1733078077622796,1212.9263182666666 -2005-07-27,1231.160034,1237.640015,1230.150024,1236.790039,1945800000,0.45729270318402016,1214.0223184333333 -2005-07-28,1236.790039,1245.150024,1235.810059,1243.719971,2001680000,0.5603159616003328,1215.2603189333333 -2005-07-29,1243.719971,1245.040039,1234.180054,1234.180054,1789600000,-0.7670470220341952,1216.0343220333334 -2005-08-01,1234.180054,1239.099976,1233.800049,1235.349976,1716870000,0.0947934619594859,1216.6473225333332 -2005-08-02,1235.349976,1244.689941,1235.349976,1244.119995,2043120000,0.7099218173296062,1217.5813231666666 -2005-08-03,1244.119995,1245.859985,1240.569946,1245.040039,1999980000,0.07395138762318343,1218.6289916333333 -2005-08-04,1245.040039,1245.040039,1235.150024,1235.859985,1981220000,-0.7373300225246737,1219.3616576333334 -2005-08-05,1235.859985,1235.859985,1225.619995,1226.420044,1930280000,-0.7638357997326151,1220.2179931 -2005-08-08,1226.420044,1232.280029,1222.670044,1223.130005,1804140000,-0.26826363578251744,1221.2699950666668 -2005-08-09,1223.130005,1234.109985,1223.130005,1231.380005,1897520000,0.6744990284168528,1222.6263305333334 -2005-08-10,1231.380005,1242.689941,1226.579956,1229.130005,2172320000,-0.18272182355275612,1223.5449991666667 -2005-08-11,1229.130005,1237.810059,1228.329956,1237.810059,1941560000,0.7061949480274832,1224.8103352666667 -2005-08-12,1237.810059,1237.810059,1225.869995,1230.390015,1709300000,-0.5994493214891539,1226.1123372333334 -2005-08-15,1230.400024,1236.23999,1226.199951,1233.869995,1562880000,0.28283552024761516,1227.4266723666667 -2005-08-16,1233.869995,1233.869995,1219.050049,1219.339966,1820410000,-1.177598049946904,1227.9050049 -2005-08-17,1219.339966,1225.630005,1218.069946,1220.23999,1859150000,0.07381239236770032,1228.7483398666668 -2005-08-18,1220.23999,1222.640015,1215.930054,1219.02002,1808170000,-0.09997787402460379,1229.4533407000001 -2005-08-19,1219.02002,1225.079956,1219.02002,1219.709961,1558790000,0.056598004026220394,1229.7150065666667 -2005-08-22,1219.709961,1228.959961,1216.469971,1221.72998,1621330000,0.16561470059193173,1229.7913412000003 -2005-08-23,1221.72998,1223.040039,1214.439941,1217.589966,1678620000,-0.3388648938614125,1229.6373413666668 -2005-08-24,1217.569946,1224.150024,1209.369995,1209.589966,1930800000,-0.6570356378906017,1229.1806722666668 -2005-08-25,1209.589966,1213.72998,1209.569946,1212.369995,1571110000,0.22983234634406102,1228.7096721000003 -2005-08-26,1212.400024,1212.400024,1204.22998,1205.099976,1541090000,-0.5996534910945317,1227.9490031666667 -2005-08-29,1205.099976,1214.280029,1201.530029,1212.280029,1599450000,0.5958055881664093,1227.6540039666666 -2005-08-30,1212.280029,1212.280029,1201.069946,1208.410034,1916470000,-0.31923276037074677,1226.9560059 -2005-08-31,1208.410034,1220.359985,1204.400024,1220.329956,2365510000,0.986413689444765,1226.4603394 -2005-09-01,1220.329956,1227.290039,1216.180054,1221.589966,2229860000,0.10325158321360384,1226.2786703 -2005-09-02,1221.589966,1224.449951,1217.75,1218.02002,1640160000,-0.29223766561291553,1225.7566691666666 -2005-09-06,1218.02002,1233.609985,1218.02002,1233.390015,1932090000,1.2618836100904085,1225.9020020333332 -2005-09-07,1233.390015,1237.060059,1230.930054,1236.359985,2067700000,0.24079731178949793,1226.0753337333333 -2005-09-08,1236.359985,1236.359985,1229.51001,1231.670044,1955380000,-0.3793345835274686,1225.9046672333332 -2005-09-09,1231.670044,1243.130005,1231.670044,1241.47998,1992560000,0.7964743518597883,1225.8300008666668 -2005-09-12,1241.47998,1242.599976,1239.150024,1240.560059,1938050000,-0.07409873818505774,1226.0426676999998 -2005-09-13,1240.569946,1240.569946,1231.199951,1231.199951,2082360000,-0.7545066385213905,1225.9043335333333 -2005-09-14,1231.199951,1234.73999,1226.160034,1227.160034,1986750000,-0.3281284243650928,1225.3390015 -2005-09-15,1227.160034,1231.880005,1224.849976,1227.72998,2079340000,0.04644430915357045,1224.7619995333332 -2005-09-16,1228.420044,1237.949951,1228.420044,1237.910034,3152470000,0.8291769498045332,1224.8303344999997 -2005-09-19,1237.910034,1237.910034,1227.650024,1231.02002,2076540000,-0.5565843890720124,1224.9836670333332 -2005-09-20,1231.02002,1236.48999,1220.069946,1221.339966,2319250000,-0.7863441570998941,1224.9239990666667 -2005-09-21,1221.339966,1221.52002,1209.890015,1210.199951,2548150000,-0.9121141786987086,1224.2179972666668 -2005-09-22,1210.199951,1216.640015,1205.349976,1214.619995,2424720000,0.3652325383377786,1223.7343302666668 -2005-09-23,1214.619995,1218.829956,1209.800049,1215.290039,1973020000,0.055164907770177685,1222.9836629333333 -2005-09-26,1215.290039,1222.560059,1211.839966,1215.630005,2022220000,0.027974062905977704,1222.4916626000002 -2005-09-27,1215.630005,1220.170044,1211.109985,1215.660034,1976270000,0.002470241757479563,1221.8846639 -2005-09-28,1215.660034,1220.97998,1212.719971,1216.890015,2106980000,0.10117804037308442,1221.8029988666667 -2005-09-29,1216.890015,1228.699951,1211.540039,1227.680054,2176120000,0.8866897473885471,1222.0510009999998 -2005-09-30,1227.680054,1229.569946,1225.219971,1228.810059,2097520000,0.09204393248209986,1222.3773356333334 -2005-10-03,1228.810059,1233.339966,1225.150024,1226.699951,2097490000,-0.17171962294295628,1222.6103353 -2005-10-04,1226.699951,1229.880005,1214.02002,1214.469971,2341420000,-0.9969821870482898,1222.368335 -2005-10-05,1214.469971,1214.469971,1196.25,1196.390015,2546780000,-1.4887116546087098,1221.6616699666665 -2005-10-06,1196.390015,1202.140015,1181.920044,1191.48999,2792030000,-0.4095675271913679,1221.0583374333332 -2005-10-07,1191.48999,1199.709961,1191.459961,1195.900024,2126080000,0.3701276583951918,1220.5093384 -2005-10-10,1195.900024,1196.52002,1186.119995,1187.329956,2195990000,-0.7166207733097285,1219.9170044 -2005-10-11,1187.329956,1193.099976,1183.160034,1184.869995,2299040000,-0.20718427826813546,1219.0033365999998 -2005-10-12,1184.869995,1190.02002,1173.650024,1177.680054,2491280000,-0.6068126486737602,1217.9790039333334 -2005-10-13,1177.680054,1179.560059,1168.199951,1176.839966,2351150000,-0.07133414522446646,1216.5293376 -2005-10-14,1176.839966,1187.130005,1175.439941,1186.569946,2188940000,0.8267887122385575,1215.3620035999998 -2005-10-17,1186.569946,1191.209961,1184.47998,1190.099976,2054570000,0.2974986861836282,1214.4313354666667 -2005-10-18,1190.099976,1190.099976,1178.130005,1178.140015,2197010000,-1.0049543098217817,1212.5896687999998 -2005-10-19,1178.140015,1195.76001,1170.550049,1195.76001,2703590000,1.4955773316977172,1211.2363363 -2005-10-20,1195.76001,1197.300049,1173.300049,1177.800049,2617250000,-1.5019703661105055,1209.4406698 -2005-10-21,1177.800049,1186.459961,1174.920044,1179.589966,2470920000,0.15197121120174018,1207.3776693333334 -2005-10-24,1179.589966,1199.390015,1179.589966,1199.380005,2197790000,1.6777049288667856,1206.0050008666667 -2005-10-25,1199.380005,1201.300049,1189.290039,1196.540039,2312470000,-0.23678617186885242,1204.8496704666666 -2005-10-26,1196.540039,1204.01001,1191.380005,1191.380005,2467750000,-0.43124624599377714,1203.6570028333333 -2005-10-27,1191.380005,1192.650024,1178.890015,1178.900024,2395370000,-1.0475231200476554,1202.0293376333332 -2005-10-28,1178.900024,1198.410034,1178.900024,1198.410034,2379400000,1.6549333788121068,1200.7126709666668 -2005-10-31,1198.410034,1211.430054,1198.410034,1207.01001,2567470000,0.7176154868543172,1199.9123373 -2005-11-01,1207.01001,1207.339966,1201.660034,1202.76001,2457850000,-0.3521097559083253,1199.2930054333333 -2005-11-02,1202.76001,1215.170044,1201.069946,1214.76001,2648090000,0.9977052695657962,1199.4450074 -2005-11-03,1214.76001,1224.699951,1214.76001,1219.939941,2716630000,0.4264159963579983,1199.6223389333331 -2005-11-04,1219.939941,1222.52002,1214.449951,1220.140015,2050510000,0.0164003155627368,1199.7840047999998 -2005-11-07,1220.140015,1224.180054,1217.290039,1222.810059,1987580000,0.21883095113472972,1200.0233399333333 -2005-11-08,1222.810059,1222.810059,1216.079956,1218.589966,1965050000,-0.34511435107518196,1200.1210043333333 -2005-11-09,1218.589966,1226.589966,1216.530029,1220.650024,2214460000,0.1690525982880109,1200.2463379666667 -2005-11-10,1220.650024,1232.410034,1215.050049,1230.959961,2378460000,0.8446267805914509,1200.3556682 -2005-11-11,1230.959961,1235.699951,1230.719971,1234.719971,1773140000,0.30545347689012736,1200.5526652666667 -2005-11-14,1234.719971,1237.199951,1231.780029,1233.76001,1899780000,-0.0777472643633148,1200.7880005666666 -2005-11-15,1233.76001,1237.939941,1226.410034,1229.01001,2359370000,-0.3850019421524298,1201.2726685333332 -2005-11-16,1229.01001,1232.23999,1227.180054,1231.209961,2121580000,0.1790018781051339,1202.4333334 -2005-11-17,1231.209961,1242.959961,1231.209961,1242.800049,2298040000,0.941357556154454,1204.1436686999998 -2005-11-18,1242.800049,1249.579956,1240.709961,1248.27002,2453290000,0.44013282783512686,1205.8893352333332 -2005-11-21,1248.27002,1255.890015,1246.900024,1254.849976,2117350000,0.5271260139693146,1208.1400025666665 -2005-11-22,1254.849976,1261.900024,1251.400024,1261.22998,2291420000,0.5084276305552748,1210.6853354000002 -2005-11-23,1261.22998,1270.640015,1259.51001,1265.609985,1985400000,0.3472804381005945,1213.6163330999998 -2005-11-25,1265.609985,1268.780029,1265.540039,1268.25,724940000,0.2085962525019136,1216.6633342333332 -2005-11-28,1268.25,1268.439941,1257.170044,1257.459961,2016900000,-0.8507817070766754,1219.0263347333332 -2005-11-29,1257.459961,1266.180054,1257.459961,1257.47998,2268340000,0.0015920188809914748,1221.2723348666666 -2005-11-30,1257.47998,1260.930054,1249.390015,1249.47998,2374690000,-0.6361930310811004,1223.6503337 -2005-12-01,1249.47998,1266.170044,1249.47998,1264.670044,2614830000,1.2157108751754464,1225.9473348333336 -2005-12-02,1264.670044,1266.849976,1261.420044,1265.079956,2125580000,0.032412564996286974,1228.8566650666664 -2005-12-05,1265.079956,1265.079956,1258.119995,1262.089966,2325840000,-0.23634790716737797,1231.6066650666664 -2005-12-06,1262.089966,1272.890015,1262.089966,1263.699951,2110740000,0.12756499483967954,1233.7506632666666 -2005-12-07,1263.699951,1264.849976,1253.02002,1257.369995,2093830000,-0.5009065636974119,1235.7783284666666 -2005-12-08,1257.369995,1263.359985,1250.910034,1255.839966,2178300000,-0.12168486651377153,1237.9269938333334 -2005-12-09,1255.839966,1263.079956,1254.23999,1259.369995,1896290000,0.28108907946635675,1240.6093262 -2005-12-12,1259.369995,1263.859985,1255.52002,1260.430054,1876550000,0.08417375387761439,1242.6766601999998 -2005-12-13,1260.430054,1272.109985,1258.560059,1267.430054,2390020000,0.5553660020867657,1244.6906616666668 -2005-12-14,1267.430054,1275.800049,1267.069946,1272.73999,2145520000,0.41895298152683225,1247.0233276666668 -2005-12-15,1272.73999,1275.170044,1267.73999,1270.939941,2180590000,-0.14143100822973098,1248.8959920333332 -2005-12-16,1270.939941,1275.23999,1267.319946,1267.319946,2584190000,-0.2848281719080914,1250.4753255333335 -2005-12-19,1267.319946,1270.51001,1259.280029,1259.920044,2208810000,-0.583901644044682,1251.8013265000002 -2005-12-20,1259.920044,1263.859985,1257.209961,1259.619995,1996690000,-0.023814923925435938,1253.0283243666668 -2005-12-21,1259.619995,1269.369995,1259.619995,1262.790039,2065170000,0.2516666941286605,1254.5016601333334 -2005-12-22,1262.790039,1268.189941,1262.5,1268.119995,1888500000,0.42207776711802314,1256.0839925 -2005-12-23,1268.119995,1269.76001,1265.920044,1268.660034,1285810000,0.042585796464789105,1257.3406615999997 -2005-12-27,1268.660034,1271.829956,1256.540039,1256.540039,1540470000,-0.9553382841096081,1258.0679972 -2005-12-28,1256.540039,1261.099976,1256.540039,1258.170044,1422360000,0.12972169205982542,1258.881665 -2005-12-29,1258.170044,1260.609985,1254.180054,1254.420044,1382540000,-0.29805192214542586,1259.7286661333335 -2005-12-30,1254.420044,1254.420044,1246.589966,1248.290039,1443500000,-0.48867243706127717,1260.2980020666666 -2006-01-03,1248.290039,1270.219971,1245.73999,1268.800049,2554570000,1.6430484390014488,1261.1646687333332 -2006-01-04,1268.800049,1275.369995,1267.73999,1273.459961,2515330000,0.3672692165856084,1262.0043334333334 -2006-01-05,1273.459961,1276.910034,1270.300049,1273.47998,2433340000,0.0015720164444177342,1262.6253335666668 -2006-01-06,1273.47998,1286.089966,1273.47998,1285.449951,2446560000,0.939941827746682,1263.4326659333333 -2006-01-09,1285.449951,1290.780029,1284.819946,1290.150024,2301490000,0.3656364058626904,1264.2506672333334 -2006-01-10,1290.150024,1290.150024,1283.76001,1289.689941,2373080000,-0.03566120152239671,1264.9653319333336 -2006-01-11,1289.719971,1294.900024,1288.119995,1294.180054,2406130000,0.34815445614146956,1266.1893350333335 -2006-01-12,1294.180054,1294.180054,1285.040039,1286.060059,2318350000,-0.6274239024858241,1267.1420043333335 -2006-01-13,1286.060059,1288.959961,1282.780029,1287.609985,2206510000,0.12051738868286144,1268.4130045 -2006-01-17,1287.609985,1287.609985,1278.609985,1282.930054,2179970000,-0.363458737856881,1269.0216715 -2006-01-18,1282.930054,1282.930054,1272.079956,1277.930054,2233200000,-0.3897328606817352,1269.4500081 -2006-01-19,1277.930054,1287.790039,1277.930054,1285.040039,2444020000,0.5563673049041595,1270.2150105333335 -2006-01-20,1285.040039,1285.040039,1260.920044,1261.48999,2845810000,-1.8326315356155143,1270.1413451666667 -2006-01-23,1261.48999,1268.189941,1261.48999,1263.819946,2256070000,0.18469873074458132,1270.3563435333333 -2006-01-24,1263.819946,1271.469971,1263.819946,1266.859985,2608720000,0.2405436794712612,1270.7236775 -2006-01-25,1266.859985,1271.869995,1259.420044,1264.680054,2617060000,-0.1720735539689544,1270.9006794666668 -2006-01-26,1264.680054,1276.439941,1264.680054,1273.829956,2856780000,0.723495398781715,1271.3473428666666 -2006-01-27,1273.829956,1286.380005,1273.829956,1283.719971,2623620000,0.7763999388942011,1271.8903400999998 -2006-01-30,1283.719971,1287.939941,1283.51001,1285.189941,2282730000,0.11450861817277058,1272.3053384666666 -2006-01-31,1285.199951,1285.199951,1276.849976,1280.079956,2708310000,-0.39760543068241283,1272.6100056333335 -2006-02-01,1280.079956,1283.329956,1277.569946,1282.459961,2589410000,0.1859262766239267,1273.1146727999999 -2006-02-02,1282.459961,1282.459961,1267.719971,1270.839966,2565300000,-0.9060707821973102,1273.4786702 -2006-02-03,1270.839966,1270.869995,1261.02002,1264.030029,2282210000,-0.5358610983438372,1273.6256713333335 -2006-02-06,1264.030029,1267.040039,1261.619995,1265.02002,2132360000,0.07832021212210716,1273.7000040333332 -2006-02-07,1265.02002,1265.780029,1253.609985,1254.780029,2366370000,-0.809472643761,1273.2553384999999 -2006-02-08,1254.780029,1266.469971,1254.780029,1265.650024,2456860000,0.8662868988011274,1273.1550048333336 -2006-02-09,1265.650024,1274.560059,1262.800049,1263.780029,2441920000,-0.1477497700422714,1273.396337833333 -2006-02-10,1263.819946,1269.890015,1254.97998,1266.98999,2290050000,0.25399681323814427,1273.6903360333333 -2006-02-13,1266.98999,1266.98999,1258.339966,1262.859985,1850080000,-0.32596982080339565,1273.9716674000001 -2006-02-14,1262.859985,1278.209961,1260.800049,1275.530029,2437940000,1.0032817691978613,1274.8796670666668 -2006-02-15,1275.530029,1281.0,1271.060059,1280.0,2317590000,0.35044027959925117,1275.252998766667 -2006-02-16,1280.0,1289.390015,1280.0,1289.380005,2251490000,0.7328128906249898,1275.7836669 -2006-02-17,1289.380005,1289.469971,1284.069946,1287.23999,2128260000,-0.16597240469848895,1276.2423339 -2006-02-21,1287.23999,1291.920044,1281.329956,1283.030029,2104320000,-0.3270533103931994,1276.1616698333335 -2006-02-22,1283.030029,1294.170044,1283.030029,1292.670044,2222380000,0.7513475742663145,1276.2456705 -2006-02-23,1292.670044,1293.839966,1285.140015,1287.790039,2144210000,-0.3775135830408338,1276.1823404333331 -2006-02-24,1287.790039,1292.109985,1285.619995,1289.430054,1933010000,0.12735111705581836,1276.0240071 -2006-02-27,1289.430054,1297.569946,1289.430054,1294.119995,1975320000,0.36372201698349205,1276.2926716333334 -2006-02-28,1294.119995,1294.119995,1278.660034,1280.660034,2370860000,-1.0400860084075925,1276.0610066000002 -2006-03-01,1280.660034,1291.800049,1280.660034,1291.23999,2308320000,0.8261330656938348,1276.3380044666667 -2006-03-02,1291.23999,1291.23999,1283.209961,1289.140015,2494590000,-0.16263243210118405,1276.7116698333334 -2006-03-03,1289.140015,1297.329956,1284.199951,1287.22998,2152950000,-0.1481635026277517,1276.7846678666667 -2006-03-06,1287.22998,1288.22998,1275.670044,1278.26001,2280190000,-0.6968428438871577,1277.3436685333334 -2006-03-07,1278.26001,1278.26001,1271.109985,1275.880005,2268050000,-0.18619099255088312,1277.7456705000002 -2006-03-08,1275.880005,1280.329956,1268.420044,1278.469971,2442870000,0.2029944814442075,1278.1326700333334 -2006-03-09,1278.469971,1282.73999,1272.22998,1272.22998,2140110000,-0.48808271930853575,1278.3843342333332 -2006-03-10,1272.22998,1284.369995,1271.109985,1281.420044,2123450000,0.7223587043593938,1278.6373371666668 -2006-03-13,1281.579956,1287.369995,1281.579956,1284.130005,2070330000,0.21148108402775367,1278.6510049666665 -2006-03-14,1284.130005,1298.140015,1282.670044,1297.47998,2165270000,1.0396124183703837,1279.0606729333333 -2006-03-15,1297.47998,1304.400024,1294.969971,1303.02002,2293000000,0.4269846229149499,1279.8253417333333 -2006-03-16,1303.02002,1310.449951,1303.02002,1305.329956,2292180000,0.1772755571322726,1280.5876749000001 -2006-03-17,1305.329956,1309.790039,1305.319946,1307.25,2549620000,0.1470926175542342,1281.8013427 -2006-03-20,1307.25,1310.0,1303.589966,1305.079956,1976830000,-0.16600068846815974,1283.1696736 -2006-03-21,1305.079956,1310.880005,1295.819946,1297.22998,2147370000,-0.6014938750618537,1284.2433389333335 -2006-03-22,1297.22998,1305.969971,1295.810059,1305.040039,2039810000,0.6020566222189716,1285.9186726 -2006-03-23,1305.040039,1305.040039,1298.109985,1301.670044,1980940000,-0.25822924196121644,1287.119339933333 -2006-03-24,1301.670044,1306.530029,1298.890015,1302.949951,2326070000,0.09832806753906631,1288.4250040000002 -2006-03-27,1302.949951,1303.73999,1299.089966,1301.609985,2029700000,-0.10284094173929059,1289.5790038333332 -2006-03-28,1301.609985,1306.23999,1291.839966,1293.22998,2148580000,-0.6438184322932972,1290.591337 -2006-03-29,1293.22998,1305.599976,1293.22998,1302.890015,2143540000,0.7469696147934801,1291.5033365333331 -2006-03-30,1302.890015,1310.150024,1296.719971,1300.25,2294560000,-0.202627617803941,1292.178336533333 -2006-03-31,1300.25,1303.0,1294.869995,1294.869995,2236710000,-0.41376696789079404,1292.3613361999999 -2006-04-03,1302.880005,1309.189941,1296.650024,1297.810059,2494080000,0.22705476313087392,1292.7136718333336 -2006-04-04,1297.810059,1307.550049,1294.709961,1305.930054,2147660000,0.6256689831990236,1293.477006 -2006-04-05,1305.930054,1312.810059,1304.819946,1311.560059,2420020000,0.4311107614650256,1294.1066731666667 -2006-04-06,1311.560059,1311.98999,1302.439941,1309.040039,2281680000,-0.19213912338267303,1294.8150065 -2006-04-07,1309.040039,1314.069946,1294.180054,1295.5,2082470000,-1.0343487285800257,1295.0173380333333 -2006-04-10,1295.51001,1300.73999,1293.170044,1296.619995,1898320000,0.08645272095715306,1295.1006713666668 -2006-04-11,1296.599976,1300.709961,1282.959961,1286.569946,2232880000,-0.7750959447451633,1295.2976684333332 -2006-04-12,1286.569946,1290.930054,1286.449951,1288.119995,1938100000,0.1204791861351362,1295.1936686000001 -2006-04-13,1288.119995,1292.089966,1283.369995,1289.119995,1891940000,0.07763251901078405,1295.1930012666667 -2006-04-17,1289.119995,1292.449951,1280.73999,1285.329956,1794650000,-0.2940020335345128,1295.1296671333334 -2006-04-18,1285.329956,1309.02002,1285.329956,1307.280029,2595440000,1.7077383824702475,1296.0970011 -2006-04-19,1307.650024,1310.390015,1302.790039,1309.930054,2447310000,0.20271288027149392,1297.2320027333333 -2006-04-20,1309.930054,1318.160034,1306.380005,1311.459961,2512920000,0.11679302992768648,1298.3316690666666 -2006-04-21,1311.459961,1317.670044,1306.589966,1311.280029,2392630000,-0.013719976617720953,1299.6333373666669 -2006-04-24,1311.280029,1311.280029,1303.790039,1308.109985,2117330000,-0.24175187068299353,1300.5230020666665 -2006-04-25,1308.109985,1310.790039,1299.170044,1301.73999,2366380000,-0.48696172898642365,1301.1100015666666 -2006-04-26,1301.73999,1310.969971,1301.73999,1305.410034,2502690000,0.2819337216489748,1301.3743367 -2006-04-27,1305.410034,1315.0,1295.569946,1309.719971,2772010000,0.3301596347312863,1301.5976684 -2006-04-28,1309.719971,1316.040039,1306.160034,1310.609985,2419920000,0.06795452613588271,1301.7736693666666 -2006-05-01,1310.609985,1317.209961,1303.459961,1305.189941,2437040000,-0.4135512518623097,1301.7050007333332 -2006-05-02,1305.189941,1313.660034,1305.189941,1313.209961,2403470000,0.6144714840397247,1301.9760009 -2006-05-03,1313.209961,1313.469971,1303.920044,1308.119995,2395230000,-0.3875972731827271,1302.3390014 -2006-05-04,1307.849976,1315.140015,1307.849976,1312.25,2431450000,0.31572065374629865,1302.5793334333332 -2006-05-05,1312.25,1326.530029,1312.25,1325.76001,2294760000,1.0295301962278458,1303.3823323 -2006-05-08,1325.76001,1326.699951,1322.869995,1324.660034,2151300000,-0.08296946594429366,1304.1060017333332 -2006-05-09,1324.660034,1326.599976,1322.47998,1325.140015,2157290000,0.03623427805476975,1304.8903360666668 -2006-05-10,1324.569946,1325.51001,1317.439941,1322.849976,2268550000,-0.1728148704346566,1305.8776692666665 -2006-05-11,1322.630005,1322.630005,1303.449951,1305.920044,2531520000,-1.2798074087881361,1305.9786702333333 -2006-05-12,1305.880005,1305.880005,1290.380005,1291.23999,2567970000,-1.1241158344606816,1305.6783365666668 -2006-05-15,1291.189941,1294.810059,1284.51001,1294.5,2505660000,0.25247126988376944,1305.6660034000001 -2006-05-16,1294.5,1297.880005,1288.51001,1292.079956,2386210000,-0.18694816531479308,1305.4749999666667 -2006-05-17,1291.72998,1291.72998,1267.310059,1270.319946,2830200000,-1.684107078587016,1304.2879963666667 -2006-05-18,1270.25,1274.890015,1261.75,1261.810059,2537490000,-0.6699010770315206,1302.6296630333334 -2006-05-19,1261.810059,1272.150024,1256.280029,1267.030029,2982300000,0.41368904636382986,1301.2293293666667 -2006-05-22,1267.030029,1268.77002,1252.97998,1262.069946,2773010000,-0.3914732000404708,1300.1149942333332 -2006-05-23,1262.060059,1273.670044,1256.150024,1256.579956,2605250000,-0.4349988697060714,1298.7803262666666 -2006-05-24,1256.560059,1264.530029,1245.339966,1258.569946,2999030000,0.15836556921811074,1297.8469929333335 -2006-05-25,1258.410034,1273.26001,1258.410034,1272.880005,2372730000,1.1370094324499203,1297.3389932666666 -2006-05-26,1272.709961,1280.540039,1272.5,1280.160034,1814020000,0.5719336442872258,1297.0403279 -2006-05-30,1280.040039,1280.040039,1259.869995,1259.869995,2176190000,-1.5849611346326342,1296.1916625333333 -2006-05-31,1259.380005,1270.089966,1259.380005,1270.089966,2692160000,0.8111925072078474,1294.9519937666666 -2006-06-01,1270.050049,1285.709961,1269.189941,1285.709961,2360160000,1.2298337454939023,1294.1446573333335 -2006-06-02,1285.709961,1290.680054,1280.219971,1288.219971,2295540000,0.19522365666730934,1293.369991 -2006-06-05,1288.160034,1288.160034,1264.660034,1265.290039,2313470000,-1.7799702314970522,1291.8369913333333 -2006-06-06,1265.22998,1269.880005,1254.459961,1263.849976,2697650000,-0.11381287733349676,1290.3616577 -2006-06-07,1263.609985,1272.469971,1255.77002,1256.150024,2644170000,-0.6092457290199693,1288.8419921666668 -2006-06-08,1256.079956,1259.849976,1235.180054,1257.930054,3543790000,0.141705207657572,1287.2593261666666 -2006-06-09,1257.930054,1262.579956,1250.030029,1252.300049,2214000000,-0.4475610533429486,1285.3453287666669 -2006-06-12,1252.27002,1255.219971,1236.430054,1237.439941,2247010000,-1.1866252031105584,1282.9063273 -2006-06-13,1236.079956,1243.369995,1222.52002,1223.689941,3215770000,-1.111165038756412,1280.1896606333335 -2006-06-14,1223.660034,1231.459961,1219.290039,1230.040039,2667990000,0.5189303096510445,1277.4173299000001 -2006-06-15,1230.01001,1258.640015,1230.01001,1256.160034,2775480000,2.1235077047764284,1275.6853312 -2006-06-16,1256.160034,1256.27002,1246.329956,1251.540039,2783390000,-0.36778713499493465,1273.6616658333335 -2006-06-19,1251.540039,1255.930054,1237.170044,1240.130005,2517200000,-0.9116795024086355,1270.8073323333335 -2006-06-20,1240.119995,1249.01001,1238.869995,1240.119995,2232950000,-0.0008071734382331108,1267.9893310333334 -2006-06-21,1240.089966,1257.959961,1240.089966,1252.199951,2361230000,0.974095736598457,1265.5579955666665 -2006-06-22,1251.920044,1251.920044,1241.530029,1245.599976,2148180000,-0.5270703767980001,1262.982995566667 -2006-06-23,1245.589966,1253.130005,1241.430054,1244.5,2017270000,-0.08830892912605748,1260.9356607666668 -2006-06-26,1244.5,1250.920044,1243.680054,1250.560059,1878580000,0.4869472880674852,1259.5796630666666 -2006-06-27,1250.550049,1253.369995,1238.939941,1239.199951,2203130000,-0.9084016331917577,1257.7363281 -2006-06-28,1238.98999,1247.060059,1237.589966,1246.0,2085490000,0.5487450991676024,1256.2003295666666 -2006-06-29,1245.939941,1272.880005,1245.939941,1272.869995,2621250000,2.1565004012841005,1256.2853312000002 -2006-06-30,1272.859985,1276.300049,1270.199951,1270.199951,3049560000,-0.20976564853348867,1256.5649942666666 -2006-07-03,1270.060059,1280.380005,1270.060059,1280.189941,1114470000,0.7864895595480981,1257.003658 -2006-07-05,1280.050049,1280.050049,1265.910034,1270.910034,2165070000,-0.7248851676456058,1257.2983276000002 -2006-07-06,1270.579956,1278.319946,1270.579956,1274.079956,2009160000,0.24942143150945562,1257.8816609333335 -2006-07-07,1274.079956,1275.380005,1263.130005,1265.47998,1988150000,-0.6749950000783156,1258.1119953999998 -2006-07-10,1265.459961,1274.060059,1264.459961,1267.339966,1854590000,0.14697869815372133,1257.9273274333332 -2006-07-11,1267.26001,1273.640015,1259.650024,1272.430054,2310850000,0.4016355624028245,1257.6696614333334 -2006-07-12,1272.390015,1273.310059,1257.290039,1258.599976,2250450000,-1.0869028090403798,1257.6273274666667 -2006-07-13,1258.579956,1258.579956,1241.430054,1242.280029,2545760000,-1.2966746632132375,1256.7003295666666 -2006-07-14,1242.290039,1242.699951,1228.449951,1236.199951,2467120000,-0.48942894178973795,1255.0499958999999 -2006-07-17,1236.199951,1240.069946,1231.48999,1234.48999,2146410000,-0.13832398218562858,1253.2589965333332 -2006-07-18,1234.47998,1239.859985,1224.540039,1236.859985,2481750000,0.1919817106009969,1252.3113280666666 -2006-07-19,1236.73999,1261.810059,1236.73999,1259.810059,2701980000,1.8555110746831804,1252.1766641666666 -2006-07-20,1259.810059,1262.560059,1249.130005,1249.130005,2345580000,-0.8477511291247741,1251.9426635333332 -2006-07-21,1249.119995,1250.959961,1238.719971,1240.290039,2704090000,-0.7076898292904255,1251.3546630333333 -2006-07-24,1240.25,1262.5,1240.25,1260.910034,2312720000,1.6625139565439984,1251.6416625333331 -2006-07-25,1260.910034,1272.390015,1257.189941,1268.880005,2563930000,0.6320808610521311,1252.6896646666669 -2006-07-26,1268.869995,1273.890015,1261.939941,1268.400024,2667710000,-0.03782713874508348,1254.1800007666668 -2006-07-27,1268.199951,1275.849976,1261.920044,1263.199951,2776710000,-0.4099710581525473,1255.2853311666665 -2006-07-28,1263.150024,1280.420044,1263.150024,1278.550049,2480420000,1.2151756329509045,1256.0316649999997 -2006-07-31,1278.530029,1278.660034,1274.310059,1276.660034,2461300000,-0.14782487408124823,1256.8689981666664 -2006-08-01,1278.530029,1278.660034,1265.709961,1270.920044,2527690000,-0.4496099076600424,1257.8953327999998 -2006-08-02,1270.72998,1283.420044,1270.72998,1277.410034,2610750000,0.5106528951714262,1259.1383340999998 -2006-08-03,1278.219971,1283.959961,1271.25,1280.27002,2728440000,0.22388942656450528,1260.0740030666668 -2006-08-04,1280.26001,1292.920044,1273.819946,1279.359985,2530970000,-0.0710814895126477,1261.1993366999998 -2006-08-07,1279.310059,1279.310059,1273.0,1275.77002,2045660000,-0.28060632207440594,1262.2416707 -2006-08-08,1275.670044,1282.75,1268.369995,1271.47998,2457840000,-0.33627063912349264,1262.9390013999998 -2006-08-09,1271.130005,1283.73999,1264.72998,1265.949951,2555180000,-0.4349285153510629,1263.8306680666667 -2006-08-10,1265.719971,1272.550049,1261.300049,1271.810059,2402190000,0.46290202826508864,1264.6910033666668 -2006-08-11,1271.640015,1271.640015,1262.079956,1266.73999,2004540000,-0.39864985845342593,1264.4866698666665 -2006-08-14,1266.670044,1278.900024,1266.670044,1268.209961,2118020000,0.1160436247062746,1264.4203368666667 -2006-08-15,1268.189941,1286.22998,1268.189941,1285.579956,2334100000,1.3696466306181376,1264.6000040333333 -2006-08-16,1285.27002,1296.209961,1285.27002,1295.430054,2554570000,0.7661987847607632,1265.4173380333334 -2006-08-17,1295.369995,1300.780029,1292.709961,1297.47998,2458340000,0.1582428934445712,1266.197338833333 -2006-08-18,1297.47998,1302.300049,1293.569946,1302.300049,2033910000,0.371494672310857,1267.4246744666666 -2006-08-21,1302.300049,1302.300049,1295.51001,1297.52002,1759240000,-0.3670451370765493,1268.4306762666668 -2006-08-22,1297.52002,1302.48999,1294.439941,1298.819946,1908740000,0.10018542912348938,1269.3103393333333 -2006-08-23,1298.72998,1301.5,1289.819946,1292.98999,1893670000,-0.4488656043475925,1270.4566731333332 -2006-08-24,1292.969971,1297.22998,1291.400024,1296.060059,1930320000,0.23743950252854695,1272.2493408 -2006-08-25,1295.920044,1298.880005,1292.390015,1295.089966,1667580000,-0.07484938628140592,1274.2123413000002 -2006-08-28,1295.089966,1305.02002,1293.969971,1301.780029,1834920000,0.5165712943219658,1276.4553426 -2006-08-29,1301.569946,1305.02002,1295.290039,1304.280029,2093720000,0.19204473446412518,1278.7026773999999 -2006-08-30,1303.699951,1306.73999,1302.150024,1305.369995,2060690000,0.08356840369898588,1280.2213419333334 -2006-08-31,1304.25,1306.109985,1302.449951,1303.819946,1974540000,-0.11874403471331396,1282.0443399666667 -2006-09-01,1303.800049,1312.030029,1303.800049,1311.01001,1800520000,0.5514614208854907,1284.4016723333334 -2006-09-05,1310.939941,1314.670044,1308.819946,1313.25,2114480000,0.17085987009359815,1286.1463378666667 -2006-09-06,1313.040039,1313.040039,1299.280029,1300.26001,2329870000,-0.9891482962116949,1287.192338033333 -2006-09-07,1300.209961,1301.25,1292.130005,1294.02002,2325850000,-0.47990324642838145,1288.0463379 -2006-09-08,1294.02002,1300.140015,1294.02002,1298.920044,2132890000,0.3786667844597913,1289.2370076666666 -2006-09-11,1298.859985,1302.359985,1290.930054,1299.540039,2506430000,0.047731575385556724,1289.936674 -2006-09-12,1299.530029,1314.280029,1299.530029,1313.0,2791580000,1.0357480797865692,1291.1480062 -2006-09-13,1312.73999,1319.920044,1311.119995,1318.069946,2597220000,0.3861345011424211,1292.7196696 -2006-09-14,1318.0,1318.0,1313.25,1316.280029,2351220000,-0.13579833190431323,1294.0153361000002 -2006-09-15,1316.280029,1324.650024,1316.280029,1319.660034,3198030000,0.25678464502481013,1295.3283365666668 -2006-09-18,1319.849976,1324.869995,1318.160034,1321.180054,2325080000,0.11518269560628625,1296.7223388666669 -2006-09-19,1321.170044,1322.040039,1312.170044,1317.640015,2390850000,-0.26794523496491696,1298.1180053666665 -2006-09-20,1318.280029,1328.530029,1318.280029,1325.180054,2543070000,0.5722381617258243,1299.9080078333334 -2006-09-21,1324.890015,1328.189941,1315.449951,1318.030029,2627440000,-0.5395512087899235,1301.6440104333335 -2006-09-22,1318.030029,1318.030029,1310.939941,1314.780029,2162880000,-0.24658011794054246,1303.0763427666666 -2006-09-25,1314.780029,1329.349976,1311.579956,1326.369995,2710240000,0.8815136938773893,1305.0640096 -2006-09-26,1326.349976,1336.599976,1325.300049,1336.349976,2673350000,0.752428133750116,1307.3353434333335 -2006-09-27,1336.119995,1340.079956,1333.540039,1336.589966,2749190000,0.017958618947888638,1309.0356771000002 -2006-09-28,1336.560059,1340.280029,1333.75,1338.880005,2397820000,0.1713344449871368,1310.4840087999999 -2006-09-29,1339.150024,1339.880005,1335.640015,1335.849976,2273430000,-0.226310721549694,1311.7630086666666 -2006-10-02,1335.819946,1338.540039,1330.280029,1331.319946,2154480000,-0.33911218186074565,1312.730338566667 -2006-10-03,1331.319946,1338.310059,1327.099976,1334.109985,2682690000,0.2095693832562695,1313.9500040666667 -2006-10-04,1333.810059,1350.199951,1331.47998,1350.199951,3019880000,1.206044942389073,1315.6626709 -2006-10-05,1349.839966,1353.790039,1347.75,1353.219971,2817240000,0.22367205670266177,1317.6703369333334 -2006-10-06,1353.219971,1353.219971,1344.209961,1349.589966,2523000000,-0.26824944043040144,1319.4546671666665 -2006-10-09,1349.579956,1352.689941,1346.550049,1350.660034,1935170000,0.07928837846737924,1321.3070027666665 -2006-10-10,1350.619995,1354.22998,1348.599976,1353.420044,2376140000,0.20434527790285095,1323.0283365999999 -2006-10-11,1353.280029,1353.969971,1343.569946,1349.949951,2521000000,-0.2563943851270345,1324.5506673333332 -2006-10-12,1349.939941,1363.76001,1349.939941,1362.829956,2514350000,0.9541098164757011,1326.465999366667 -2006-10-13,1362.819946,1366.630005,1360.5,1365.619995,2482920000,0.2047239266877332,1328.526001 -2006-10-16,1365.609985,1370.199951,1364.47998,1369.060059,2305920000,0.251904923228663,1330.4610026333332 -2006-10-17,1369.050049,1369.050049,1356.869995,1364.050049,2519620000,-0.3659452313333422,1332.1543376000002 -2006-10-18,1363.930054,1372.869995,1360.949951,1365.800049,2658840000,0.1282944127514174,1334.3390055666669 -2006-10-19,1365.949951,1368.089966,1362.060059,1366.959961,2619830000,0.08492546188216821,1336.7703369333333 -2006-10-20,1366.939941,1368.660034,1362.099976,1368.599976,2526410000,0.11997535017778116,1339.0930013333334 -2006-10-23,1368.579956,1377.400024,1363.939941,1377.02002,2480430000,0.6152304652678131,1341.6756673666669 -2006-10-24,1377.02002,1377.780029,1372.420044,1377.380005,2876890000,0.02614232144571016,1343.8216675333335 -2006-10-25,1377.359985,1383.609985,1376.0,1382.219971,2953540000,0.35138930305584903,1345.9600017 -2006-10-26,1382.209961,1389.449951,1379.469971,1389.079956,2793350000,0.49630197392076525,1348.3866659333332 -2006-10-27,1388.890015,1388.890015,1375.849976,1377.339966,2458450000,-0.8451630123442633,1350.3093303333333 -2006-10-30,1377.300049,1381.219971,1373.459961,1377.930054,2770440000,0.04284258168401056,1352.200997 -2006-10-31,1377.930054,1381.209961,1372.189941,1377.939941,2803030000,0.0007175255356095533,1354.2109945333334 -2006-11-01,1377.76001,1381.949951,1366.26001,1367.810059,2821160000,-0.7351468448362652,1355.6319947 -2006-11-02,1367.439941,1368.390015,1362.209961,1367.339966,2646180000,-0.03436829528389307,1357.2756592666665 -2006-11-03,1367.310059,1371.680054,1360.97998,1364.300049,2419730000,-0.22232342179633324,1358.9263266000003 -2006-11-06,1364.27002,1381.400024,1364.27002,1379.780029,2533550000,1.1346462980300176,1360.7066610666666 -2006-11-07,1379.75,1388.189941,1379.189941,1382.839966,2636390000,0.22176991518116917,1362.2563274 -2006-11-08,1382.5,1388.609985,1379.329956,1385.719971,2814820000,0.20826741132820015,1363.8939942333334 -2006-11-09,1385.430054,1388.920044,1377.310059,1378.329956,3012050000,-0.5332978635407049,1365.2089926 -2006-11-10,1378.329956,1381.040039,1375.599976,1380.900024,2290200000,0.18646246414453227,1366.7106608666666 -2006-11-13,1380.579956,1387.609985,1378.800049,1384.420044,2386340000,0.2549076644812853,1368.4806641333332 -2006-11-14,1384.359985,1394.48999,1379.069946,1393.219971,3027480000,0.6356399589949824,1370.4509970000001 -2006-11-15,1392.910034,1401.349976,1392.130005,1396.569946,2831130000,0.2404483907588295,1371.9966634999998 -2006-11-16,1396.530029,1403.76001,1396.530029,1399.76001,2835730000,0.2284213554170078,1373.5479981333333 -2006-11-17,1399.76001,1401.209961,1394.550049,1401.199951,2726100000,0.10287056279025819,1375.2683309666668 -2006-11-20,1401.170044,1404.369995,1397.849976,1400.5,2546710000,-0.04995368430469327,1376.9296631666666 -2006-11-21,1400.430054,1403.48999,1399.98999,1402.810059,2597940000,0.1649453052481098,1378.5759970000001 -2006-11-22,1402.689941,1407.890015,1402.26001,1406.089966,2237710000,0.23380977196143515,1380.4473308333334 -2006-11-24,1405.939941,1405.939941,1399.25,1400.949951,832550000,-0.3655537785126284,1381.7179973333332 -2006-11-27,1400.949951,1400.949951,1381.439941,1381.959961,2711210000,-1.3555080955208298,1382.2626628666665 -2006-11-28,1381.609985,1387.910034,1377.829956,1386.719971,2639750000,0.34443906729073603,1382.8513266 -2006-11-29,1386.109985,1401.140015,1386.109985,1399.47998,2790970000,0.920157585298087,1384.0323242999998 -2006-11-30,1399.469971,1406.300049,1393.829956,1400.630005,4006230000,0.08217516623567622,1385.1933228333332 -2006-12-01,1400.630005,1402.459961,1385.930054,1396.709961,2800980000,-0.2798771971188718,1386.1849895 -2006-12-04,1396.670044,1411.22998,1396.670044,1409.119995,2766320000,0.8885190445061975,1387.5356568 -2006-12-05,1409.099976,1415.27002,1408.780029,1414.76001,2755700000,0.40025086720878456,1388.7936564666666 -2006-12-06,1414.400024,1415.930054,1411.050049,1412.900024,2725280000,-0.13147007173321956,1389.9776571 -2006-12-07,1412.859985,1418.27002,1406.800049,1407.290039,2743150000,-0.3970546326496516,1390.8133260333334 -2006-12-08,1407.27002,1414.089966,1403.670044,1409.839966,2440460000,0.1811941340686296,1391.5053263666666 -2006-12-11,1409.810059,1415.599976,1408.560059,1413.040039,2289900000,0.22698129413079027,1392.6953288 -2006-12-12,1413.0,1413.780029,1404.75,1411.560059,2738170000,-0.10473730107799506,1393.8163289666668 -2006-12-13,1411.319946,1416.640015,1411.050049,1413.209961,2552260000,0.11688500177378103,1394.9919963 -2006-12-14,1413.160034,1427.22998,1413.160034,1425.48999,2729700000,0.8689458282129969,1396.9146606666666 -2006-12-15,1425.47998,1431.630005,1425.47998,1427.089966,3229580000,0.1122404233789176,1398.9063273333334 -2006-12-18,1427.079956,1431.810059,1420.650024,1422.47998,2568140000,-0.3230340139606769,1400.8456583666666 -2006-12-19,1422.420044,1428.300049,1414.880005,1425.550049,2717060000,0.2158251112961196,1402.3713257000002 -2006-12-20,1425.51001,1429.050049,1423.51001,1423.530029,2387630000,-0.14170109295124078,1403.7276611333334 -2006-12-21,1423.199951,1426.400024,1415.900024,1418.300049,2322410000,-0.3673951299554945,1404.8136637333332 -2006-12-22,1418.099976,1418.819946,1410.280029,1410.76001,1647590000,-0.5316250962069891,1405.8946655333336 -2006-12-26,1410.75,1417.910034,1410.449951,1416.900024,1310310000,0.43522739207784156,1407.0946655333332 -2006-12-27,1416.630005,1427.719971,1416.630005,1426.839966,1667370000,0.7015274071305866,1408.5086629333334 -2006-12-28,1426.77002,1427.26001,1422.050049,1424.72998,1508570000,-0.14787825196087567,1409.5589965666666 -2006-12-29,1424.709961,1427.0,1416.839966,1418.300049,1678200000,-0.45130874553507283,1410.2833333333333 -2007-01-03,1418.030029,1429.420044,1407.859985,1416.599976,3429160000,-0.11986694925369967,1410.8446655333332 -2007-01-04,1416.599976,1421.839966,1408.430054,1418.339966,3004460000,0.12282860577996768,1411.4159993666665 -2007-01-05,1418.339966,1418.339966,1405.75,1409.709961,2919400000,-0.6084581416921031,1411.7229980666666 -2007-01-08,1409.26001,1414.97998,1403.969971,1412.839966,2763340000,0.22203184247771013,1412.0573283 -2007-01-09,1412.839966,1415.609985,1405.420044,1412.109985,3038380000,-0.05166763522882478,1412.2579956 -2007-01-10,1408.699951,1415.98999,1405.319946,1414.849976,2764660000,0.1940352401091472,1412.7213297666667 -2007-01-11,1414.839966,1427.119995,1414.839966,1423.819946,2857870000,0.6339873592364542,1414.1166626000002 -2007-01-12,1423.819946,1431.22998,1422.579956,1430.72998,2686480000,0.48531656122761113,1415.5836629000003 -2007-01-16,1430.72998,1433.930054,1428.619995,1431.900024,2599530000,0.08177951230181613,1416.6643310333334 -2007-01-17,1431.77002,1435.27002,1428.569946,1430.619995,2690270000,-0.08939374108146714,1417.6639973666668 -2007-01-18,1430.589966,1432.959961,1424.209961,1426.369995,2822430000,-0.2970739969281655,1418.6526651666668 -2007-01-19,1426.349976,1431.569946,1425.189941,1430.5,2777480000,0.2895465422349863,1419.365332 -2007-01-22,1430.469971,1431.390015,1420.400024,1422.949951,2540120000,-0.5277909122684332,1419.6383300333334 -2007-01-23,1422.949951,1431.329956,1421.660034,1427.98999,2975070000,0.3541965053976748,1420.1413289 -2007-01-24,1427.959961,1440.140015,1427.959961,1440.130005,2783180000,0.8501470658068166,1421.2359944333332 -2007-01-25,1440.119995,1440.689941,1422.339966,1423.900024,2994330000,-1.1269802687015051,1421.7046630333332 -2007-01-26,1423.900024,1427.27002,1416.959961,1422.180054,2626620000,-0.12079289072335353,1422.0093302 -2007-01-29,1422.030029,1426.939941,1418.459961,1420.619995,2730480000,-0.10969490083988509,1422.3113280666666 -2007-01-30,1420.609985,1428.819946,1420.609985,1428.819946,2706250000,0.5772093190902883,1422.8316608999999 -2007-01-31,1428.650024,1441.609985,1424.780029,1438.23999,2976690000,0.6592883887414525,1423.2566609 -2007-02-01,1437.900024,1446.640015,1437.900024,1445.939941,2914890000,0.5353731681456031,1423.8849934 -2007-02-02,1445.939941,1449.329956,1444.48999,1448.390015,2569450000,0.16944507379093032,1424.7486612333335 -2007-02-05,1448.329956,1449.380005,1443.849976,1446.98999,2439430000,-0.09666077406643714,1425.4633259333334 -2007-02-06,1446.97998,1450.189941,1443.400024,1448.0,2608710000,0.06980075929896579,1426.2789916333334 -2007-02-07,1447.410034,1452.98999,1446.439941,1450.02002,2618820000,0.13950414364640729,1427.336324 -2007-02-08,1449.98999,1450.449951,1442.810059,1448.310059,2816180000,-0.11792671662561593,1428.5879922999998 -2007-02-09,1448.25,1452.449951,1433.439941,1438.060059,2951810000,-0.7077213844028152,1429.2933268000002 -2007-02-12,1438.0,1439.109985,1431.439941,1433.369995,2395680000,-0.32613825623258874,1429.5109944333335 -2007-02-13,1433.219971,1444.410034,1433.219971,1444.26001,2652150000,0.7597490555814268,1430.1619954333332 -2007-02-14,1443.910034,1457.650024,1443.910034,1455.300049,2699290000,0.7644079960366756,1431.3953287666666 -2007-02-15,1455.150024,1457.969971,1453.189941,1456.810059,2490920000,0.10375935883719656,1432.7356648666669 -2007-02-16,1456.77002,1456.77002,1451.569946,1455.540039,2399450000,-0.0871781459877985,1433.9756673000002 -2007-02-20,1455.530029,1460.530029,1449.199951,1459.680054,2337860000,0.28443154355577427,1435.6413370666667 -2007-02-21,1459.599976,1459.599976,1452.02002,1457.630005,2606980000,-0.14044509235994207,1437.134338366667 -2007-02-22,1457.290039,1461.569946,1450.51001,1456.380005,1950770000,-0.08575564414236014,1438.6100057 -2007-02-23,1456.219971,1456.219971,1448.359985,1451.189941,2579950000,-0.35636743035344365,1439.8213378666667 -2007-02-26,1451.040039,1456.949951,1445.47998,1449.369995,2822170000,-0.12541059916291175,1440.6730061666667 -2007-02-27,1449.25,1449.25,1389.420044,1399.040039,4065230000,-3.472540219103959,1439.6166747999998 -2007-02-28,1398.640015,1415.890015,1396.650024,1406.819946,3925250000,0.5560889455001661,1438.7806722 -2007-03-01,1406.800049,1409.459961,1380.869995,1403.170044,3874910000,-0.25944343555676097,1437.8656738333334 -2007-03-02,1403.160034,1403.400024,1386.869995,1387.170044,3312260000,-1.140275198178331,1436.5590088 -2007-03-05,1387.109985,1391.859985,1373.969971,1374.119995,3480520000,-0.9407677924163638,1434.6796753 -2007-03-06,1374.060059,1397.900024,1374.060059,1395.410034,3358160000,1.54935806752452,1433.7616780666665 -2007-03-07,1395.02002,1401.160034,1390.640015,1391.969971,3141350000,-0.24652703622454197,1432.5610107666666 -2007-03-08,1391.880005,1407.930054,1391.880005,1401.890015,3014850000,0.7126622130270155,1431.2863444333334 -2007-03-09,1401.890015,1410.150024,1397.300049,1402.839966,2623050000,0.06776216321078277,1430.5843424999998 -2007-03-12,1402.800049,1409.339966,1398.400024,1406.599976,2664000000,0.2680284345420558,1430.0650065666666 -2007-03-13,1406.22998,1406.22998,1377.709961,1377.949951,3485570000,-2.036828201964924,1428.6426717666666 -2007-03-14,1377.859985,1388.089966,1363.97998,1387.170044,3758350000,0.6691166825985695,1427.2543417000002 -2007-03-15,1387.109985,1395.72998,1385.160034,1392.280029,2821900000,0.36837480899349906,1425.722343 -2007-03-16,1392.280029,1397.51001,1383.630005,1386.949951,3393640000,-0.38283088811007504,1423.75601 -2007-03-19,1386.949951,1403.199951,1386.949951,1402.060059,2777180000,1.089448684799721,1422.2116781333332 -2007-03-20,1402.040039,1411.530029,1400.699951,1410.939941,2795940000,0.6333453365994668,1421.0100098333335 -2007-03-21,1410.920044,1437.77002,1409.75,1435.040039,3184770000,1.7080881545474602,1420.5780111333333 -2007-03-22,1435.040039,1437.660034,1429.880005,1434.540039,3129970000,-0.034842233415899315,1420.0620117666665 -2007-03-23,1434.540039,1438.890015,1433.209961,1436.109985,2619020000,0.10943898094990523,1419.6553426333335 -2007-03-26,1436.109985,1437.650024,1423.280029,1437.5,2754660000,0.09679028866302897,1419.636674 -2007-03-27,1437.48999,1437.48999,1425.540039,1428.609985,2673040000,-0.6184358260869494,1419.4780070000002 -2007-03-28,1428.349976,1428.349976,1414.069946,1417.22998,3000440000,-0.7965788507351079,1418.577006 -2007-03-29,1417.170044,1426.23999,1413.27002,1422.530029,2854710000,0.373972402136169,1417.484672 -2007-03-30,1422.52002,1429.219971,1408.900024,1420.859985,2903960000,-0.11739956035753396,1416.2863361999998 -2007-04-02,1420.829956,1425.48999,1416.369995,1424.550049,2875880000,0.25970637775403205,1415.2533365333334 -2007-04-03,1424.27002,1440.569946,1424.27002,1437.77002,2921760000,0.9280102871275009,1414.5230020666665 -2007-04-04,1437.75,1440.160034,1435.079956,1439.369995,2616320000,0.11128170554008943,1413.9143350666666 -2007-04-05,1438.939941,1444.880005,1436.670044,1443.76001,2357230000,0.3049955894071532,1413.4936685666664 -2007-04-09,1443.77002,1448.099976,1443.280029,1444.609985,2349410000,0.05887231909131874,1413.2743367 -2007-04-10,1444.579956,1448.72998,1443.98999,1448.390015,2510110000,0.2616643965672072,1413.2416707 -2007-04-11,1448.22998,1448.390015,1436.150024,1438.869995,2950190000,-0.6572829073252073,1414.5693359 -2007-04-12,1438.869995,1448.02002,1433.910034,1447.800049,2770570000,0.6206296629321262,1415.9353393333333 -2007-04-13,1447.800049,1453.109985,1444.150024,1452.849976,2690020000,0.34880002963724177,1417.5913370666667 -2007-04-16,1452.839966,1468.619995,1452.839966,1468.329956,2870140000,1.065490605067132,1420.2966674666668 -2007-04-17,1468.469971,1474.349976,1467.150024,1471.47998,2920570000,0.21453107233344593,1423.5420003 -2007-04-18,1471.469971,1476.569946,1466.410034,1472.5,2971330000,0.06931932570362065,1426.1116658333333 -2007-04-19,1472.47998,1474.22998,1464.469971,1470.72998,2913610000,-0.1202050933786003,1428.7369994666667 -2007-04-20,1470.689941,1484.73999,1470.689941,1484.349976,3329940000,0.9260704674014963,1431.4856648333334 -2007-04-23,1484.329956,1487.319946,1480.189941,1480.930054,2575020000,-0.23039862938630806,1434.0886677666665 -2007-04-24,1480.930054,1483.819946,1473.73999,1480.410034,3119750000,-0.03511442006294274,1436.5490030333333 -2007-04-25,1480.280029,1496.589966,1480.280029,1495.420044,3252590000,1.013908961387111,1440.4646728 -2007-04-26,1495.27002,1498.02002,1491.170044,1494.25,3211800000,-0.07824182942407498,1444.0340046666668 -2007-04-27,1494.209961,1497.319946,1488.670044,1494.069946,2732810000,-0.012049790864976373,1447.4270019 -2007-04-30,1494.069946,1497.160034,1482.290039,1482.369995,3093420000,-0.783092587554135,1450.6076700333333 -2007-05-01,1482.369995,1487.27002,1476.699951,1486.300049,3400350000,0.2651196403904432,1453.4156696999999 -2007-05-02,1486.130005,1499.099976,1486.130005,1495.920044,3189800000,0.647244478426301,1456.2483398000002 -2007-05-03,1495.560059,1503.339966,1495.560059,1502.390015,3007970000,0.4325078085523737,1458.493339 -2007-05-04,1502.349976,1510.339966,1501.800049,1505.619995,2761930000,0.21498944799629438,1460.8626708666668 -2007-05-07,1505.569946,1511.0,1505.540039,1509.47998,2545090000,0.25637179453106285,1463.3083373666666 -2007-05-08,1509.359985,1509.359985,1500.660034,1507.719971,2795720000,-0.1165970415851425,1465.6490030666669 -2007-05-09,1507.319946,1513.800049,1503.77002,1512.579956,2935550000,0.3223400295465195,1468.4480020999997 -2007-05-10,1512.329956,1512.329956,1491.420044,1491.469971,3031240000,-1.3956277098782333,1470.9226684666667 -2007-05-11,1491.469971,1506.23999,1491.469971,1505.849976,2720780000,0.9641498172677565,1473.7000000333333 -2007-05-14,1505.76001,1510.900024,1498.339966,1503.150024,2776130000,-0.17929754245319396,1476.4430013333335 -2007-05-15,1503.109985,1514.829956,1500.430054,1501.189941,3071020000,-0.13039836135477767,1478.9976644 -2007-05-16,1500.75,1514.150024,1500.75,1514.140015,2915350000,0.8626539284811274,1481.5433309 -2007-05-17,1514.01001,1517.140015,1509.290039,1512.75,2868640000,-0.09180227629080884,1483.9893310666666 -2007-05-18,1512.73999,1522.75,1512.73999,1522.75,2959050000,0.6610477607007059,1486.6223307333335 -2007-05-21,1522.75,1529.869995,1522.709961,1525.099976,3465360000,0.1543244787391318,1489.3053304333334 -2007-05-22,1525.099976,1529.23999,1522.050049,1524.119995,2860500000,-0.06425683662851789,1491.8296631 -2007-05-23,1524.089966,1532.430054,1521.900024,1522.280029,3084260000,-0.12072317179986358,1494.6099975666666 -2007-05-24,1522.099976,1529.310059,1505.180054,1507.51001,3365530000,-0.9702563732444602,1496.6003296000001 -2007-05-25,1507.5,1517.410034,1507.5,1515.72998,2316250000,0.5452680211390559,1498.6963297333334 -2007-05-29,1515.550049,1521.800049,1512.02002,1518.109985,2571790000,0.15702038169094212,1500.3556640333334 -2007-05-30,1517.599976,1530.22998,1510.060059,1530.22998,2980210000,0.7983607986083996,1502.3139973666666 -2007-05-31,1530.189941,1535.560059,1528.26001,1530.619995,3335530000,0.025487345372754433,1504.2513305333334 -2007-06-01,1530.619995,1540.560059,1530.619995,1536.339966,2927020000,0.37370287979283656,1506.4383300666666 -2007-06-04,1536.280029,1540.530029,1532.310059,1539.180054,2738930000,0.18486064691751736,1508.2659993333334 -2007-06-05,1539.119995,1539.119995,1525.619995,1530.949951,2939450000,-0.5347069680776806,1509.9333292333333 -2007-06-06,1530.569946,1530.569946,1514.130005,1517.380005,2964190000,-0.886374240460075,1511.1656616 -2007-06-07,1517.359985,1517.359985,1490.369995,1490.719971,3538470000,-1.75697807484948,1511.0089925 -2007-06-08,1490.709961,1507.76001,1487.410034,1507.670044,2993460000,1.1370393722323069,1511.4563272999999 -2007-06-11,1507.640015,1515.530029,1503.349976,1509.119995,2525280000,0.09617163952884145,1511.9579956000002 -2007-06-12,1509.119995,1511.329956,1492.969971,1493.0,3056200000,-1.0681718520335393,1512.3123291000002 -2007-06-13,1492.650024,1515.699951,1492.650024,1515.670044,3077930000,1.5184222371064982,1513.2913289333335 -2007-06-14,1515.579956,1526.449951,1515.579956,1522.969971,2813630000,0.4816303541062883,1514.1929931666666 -2007-06-15,1522.969971,1538.709961,1522.969971,1532.910034,3406030000,0.6526762306070522,1515.2103271333333 -2007-06-18,1532.900024,1535.439941,1529.310059,1531.050049,2480240000,-0.12133686640086738,1516.0579956 -2007-06-19,1531.02002,1535.849976,1525.670044,1533.699951,2873590000,0.17307742498233747,1516.8653279666667 -2007-06-20,1533.680054,1537.319946,1512.359985,1512.839966,3286900000,-1.3601086044502386,1517.0359944666668 -2007-06-21,1512.5,1522.900024,1504.75,1522.189941,3161110000,0.6180412475961905,1517.3563273 -2007-06-22,1522.189941,1522.189941,1500.73999,1502.560059,4284320000,-1.2895816396674142,1517.7259969 -2007-06-25,1502.560059,1514.290039,1492.680054,1497.73999,3287250000,-0.32079043836742427,1517.4556640333333 -2007-06-26,1497.680054,1506.119995,1490.540039,1492.890015,3398530000,-0.3238195569579494,1517.1136637333334 -2007-06-27,1492.619995,1506.800049,1484.180054,1506.339966,3398150000,0.9009338172845993,1517.2853312333332 -2007-06-28,1506.319946,1514.839966,1503.410034,1505.709961,3006710000,-0.0418235600342598,1517.0043294333334 -2007-06-29,1505.699951,1517.530029,1493.609985,1503.349976,3165410000,-0.15673569685576982,1516.6909953 -2007-07-02,1504.660034,1519.449951,1504.660034,1519.430054,2648990000,1.0696164071379188,1516.5803304333335 -2007-07-03,1519.119995,1526.01001,1519.119995,1524.869995,1560790000,0.35802510195708237,1516.5726644 -2007-07-05,1524.859985,1526.569946,1517.719971,1525.400024,2622950000,0.034758963173109336,1516.615332033333 -2007-07-06,1524.959961,1532.400024,1520.469971,1530.439941,2441520000,0.33039969324137886,1516.8873291000002 -2007-07-09,1530.430054,1534.26001,1527.449951,1531.849976,2715330000,0.09213265821319538,1517.6986613 -2007-07-10,1531.849976,1531.849976,1510.01001,1510.119995,3244280000,-1.4185449841988884,1517.5116618 -2007-07-11,1509.930054,1519.339966,1506.099976,1518.76001,3082920000,0.5721409575800029,1517.5333292999999 -2007-07-12,1518.73999,1547.920044,1518.73999,1547.699951,3489600000,1.9054979594834043,1518.1156616666667 -2007-07-13,1547.680054,1555.099976,1544.849976,1552.5,2801120000,0.31014079937772276,1518.8449951666666 -2007-07-16,1552.5,1555.900024,1546.689941,1549.52002,2704110000,-0.19194718196458016,1519.2843303000002 -2007-07-17,1549.52002,1555.319946,1547.73999,1549.369995,3007140000,-0.009682030439328582,1519.6239949999997 -2007-07-18,1549.199951,1549.199951,1533.670044,1546.170044,3609220000,-0.20653239770530574,1520.1313314333336 -2007-07-19,1546.130005,1555.199951,1546.130005,1553.079956,3251450000,0.44690504946816034,1521.3213298 -2007-07-20,1553.189941,1553.189941,1529.199951,1534.099976,3745780000,-1.2220864693201938,1522.7673299666667 -2007-07-23,1534.060059,1547.22998,1534.060059,1541.569946,3102700000,0.486928499893291,1523.8973267 -2007-07-24,1541.569946,1541.569946,1508.619995,1511.040039,4115830000,-1.9804425403607384,1523.9613281666666 -2007-07-25,1511.030029,1524.310059,1503.72998,1518.089966,4283200000,0.46656123054591436,1524.7976603666664 -2007-07-26,1518.089966,1518.089966,1465.300049,1482.660034,4472550000,-2.3338492970448876,1523.6973266999998 -2007-07-27,1482.439941,1488.530029,1458.949951,1458.949951,4784650000,-1.5991584352640587,1521.5633260333334 -2007-07-30,1458.930054,1477.880005,1454.319946,1473.910034,4128780000,1.025400699300616,1519.5966593666667 -2007-07-31,1473.900024,1488.300049,1454.25,1455.27002,4524520000,-1.264664299042284,1517.0706584 -2007-08-01,1455.180054,1468.380005,1439.589966,1465.810059,5256780000,0.7242668958438392,1514.807662 -2007-08-02,1465.459961,1476.430054,1460.579956,1472.199951,4368850000,0.4359290592097276,1513.4529948333334 -2007-08-03,1472.180054,1473.22998,1432.800049,1433.060059,4272110000,-2.6585989201680205,1510.4819987666667 -2007-08-06,1433.040039,1467.670044,1427.390015,1467.670044,5067200000,2.4151105728360767,1509.3189982666665 -2007-08-07,1467.619995,1488.300049,1455.800049,1476.709961,4909390000,0.6159366021645241,1508.6179972999998 -2007-08-08,1476.219971,1503.890015,1476.219971,1497.48999,5499560000,1.4071841830015197,1508.7713298 -2007-08-09,1497.209961,1497.209961,1453.089966,1453.089966,5889600000,-2.964962991171649,1506.9963298 -2007-08-10,1453.089966,1462.02002,1429.73999,1453.640015,5345780000,0.03785374704046163,1505.2606649333334 -2007-08-13,1453.420044,1466.290039,1451.540039,1452.920044,3696280000,-0.04952883744053782,1503.5796672000001 -2007-08-14,1452.869995,1456.73999,1426.199951,1426.540039,3814630000,-1.8156542824871336,1500.4833333666668 -2007-08-15,1426.150024,1440.780029,1404.359985,1406.699951,4290930000,-1.3907838166188236,1496.5443318999999 -2007-08-16,1406.640015,1415.969971,1370.599976,1411.27002,6509300000,0.32487873456958916,1492.7399984333335 -2007-08-17,1411.26001,1450.329956,1411.26001,1445.939941,3570040000,2.456646886043834,1489.9233317666665 -2007-08-20,1445.939941,1451.75,1430.540039,1445.550049,3321340000,-0.02696460544070467,1487.0466675333334 -2007-08-21,1445.550049,1455.319946,1439.76001,1447.119995,3012150000,0.10860544061315203,1484.9466675333335 -2007-08-22,1447.030029,1464.859985,1447.030029,1464.069946,3309120000,1.1712885633924364,1483.1236654 -2007-08-23,1464.050049,1472.060059,1453.880005,1462.5,3084390000,-0.10723162539394426,1480.2836670333334 -2007-08-24,1462.339966,1479.400024,1460.540039,1479.369995,2541400000,1.1535039316239226,1477.8460002 -2007-08-27,1479.359985,1479.359985,1465.97998,1466.790039,2406180000,-0.8503590070447542,1475.0883341666665 -2007-08-28,1466.719971,1466.719971,1432.01001,1432.359985,3078090000,-2.3473062322861837,1471.1880005 -2007-08-29,1432.01001,1463.76001,1432.01001,1463.76001,2824070000,2.19218809020274,1468.4409993666666 -2007-08-30,1463.670044,1468.430054,1451.25,1457.640015,2582960000,-0.41810098364417625,1465.259668 -2007-08-31,1457.609985,1481.469971,1457.609985,1473.98999,2731610000,1.1216744073810458,1463.2560018 -2007-09-04,1473.959961,1496.400024,1472.150024,1489.420044,2766600000,1.0468221700745683,1461.5176717333334 -2007-09-05,1488.76001,1488.76001,1466.339966,1472.290039,2991600000,-1.1501124259074347,1460.2260050666666 -2007-09-06,1472.030029,1481.48999,1467.410034,1478.550049,2459590000,0.42518864042928595,1458.9080078333334 -2007-09-07,1478.550049,1478.550049,1449.069946,1453.550049,3191080000,-1.6908457050140768,1457.9376750000001 -2007-09-10,1453.5,1462.25,1439.290039,1451.699951,2835720000,-0.1272813413802143,1457.6960083333333 -2007-09-11,1451.689941,1472.47998,1451.689941,1471.48999,3015330000,1.3632320498714323,1457.6153401999998 -2007-09-12,1471.099976,1479.5,1465.75,1471.560059,2885720000,0.004761772113703877,1458.1583415 -2007-09-13,1471.469971,1489.579956,1471.469971,1483.949951,2877080000,0.8419562575257444,1458.7630045666667 -2007-09-14,1483.949951,1485.98999,1473.180054,1484.25,2641740000,0.020219617231553855,1459.1646728666667 -2007-09-17,1484.23999,1484.23999,1471.819946,1476.650024,2598390000,-0.5120415024423064,1460.6176717 -2007-09-18,1476.630005,1519.890015,1476.630005,1519.780029,3708940000,2.9208007516343004,1462.3546712 -2007-09-19,1519.75,1538.73999,1519.75,1529.030029,3846750000,0.6086407127014581,1464.0986734666667 -2007-09-20,1528.689941,1529.140015,1516.420044,1518.75,2957700000,-0.6723235518613868,1464.8073404666668 -2007-09-21,1518.75,1530.890015,1518.75,1525.75,3679460000,0.46090534979423836,1467.2293416 -2007-09-24,1525.75,1530.180054,1516.150024,1517.72998,3131310000,-0.5256444371620428,1469.3656737666665 -2007-09-25,1516.339966,1518.27002,1507.130005,1517.209961,3187770000,-0.034262945771157405,1471.5086709999998 -2007-09-26,1518.619995,1529.390015,1518.619995,1525.420044,3237390000,0.5411303122864197,1474.8046711666668 -2007-09-27,1527.319946,1532.459961,1525.810059,1531.380005,2872180000,0.39070949824231427,1478.9606729666668 -2007-09-28,1531.23999,1533.73999,1521.98999,1526.75,2925350000,-0.30234200426301205,1482.8100056333335 -2007-10-01,1527.290039,1549.02002,1527.25,1547.040039,3281990000,1.328969313902073,1486.1800089 -2007-10-02,1546.959961,1548.01001,1540.369995,1546.630005,3101910000,-0.02650442067840819,1489.5493407666665 -2007-10-03,1545.800049,1545.839966,1536.339966,1539.589966,3065320000,-0.45518572491420883,1492.6316731333332 -2007-10-04,1539.910034,1544.02002,1537.630005,1542.839966,2690430000,0.21109516636068637,1495.2573404666666 -2007-10-05,1543.839966,1561.910034,1543.839966,1557.589966,2919030000,0.956029162132821,1498.4270060000001 -2007-10-08,1556.51001,1556.51001,1549.0,1552.579956,2040650000,-0.32165140437223627,1500.8673380333335 -2007-10-09,1553.180054,1565.26001,1551.819946,1565.150024,2932040000,0.809624518944907,1504.1460042 -2007-10-10,1564.97998,1565.420044,1555.459961,1562.469971,3044760000,-0.1712329782387667,1508.4830037333334 -2007-10-11,1564.719971,1576.089966,1546.719971,1554.410034,3911260000,-0.5158458818150247,1511.5046712 -2007-10-12,1555.410034,1563.030029,1554.089966,1561.800049,2788690000,0.4754224971761811,1514.9766723333335 -2007-10-15,1562.25,1564.73999,1540.810059,1548.709961,3139290000,-0.8381410929255262,1517.4673380333334 -2007-10-16,1547.810059,1547.810059,1536.290039,1538.530029,3234560000,-0.6573168802651019,1519.1043375333334 -2007-10-17,1544.439941,1550.660034,1526.01001,1541.23999,3638070000,0.17613962346652023,1521.4026692333334 -2007-10-18,1539.290039,1542.790039,1531.76001,1540.079956,3203210000,-0.07526627958829302,1523.4536661333332 -2007-10-19,1540.0,1540.0,1500.26001,1500.630005,4160970000,-2.561552135413936,1525.022998 -2007-10-22,1497.790039,1508.060059,1490.400024,1506.329956,3471830000,0.37983720044303393,1526.8439981666666 -2007-10-23,1509.300049,1520.01001,1503.609985,1519.589966,3309120000,0.880285886049248,1528.4473307 -2007-10-24,1516.609985,1517.22998,1489.560059,1515.880005,4003300000,-0.2441422411971872,1529.9246622333333 -2007-10-25,1516.150024,1523.23999,1500.459961,1514.400024,4183960000,-0.09763180430629737,1530.9396646666667 -2007-10-26,1522.170044,1535.530029,1520.180054,1535.280029,3612120000,1.3787641751912716,1532.6406656333334 -2007-10-29,1536.920044,1544.670044,1536.430054,1540.97998,3124480000,0.3712645831596362,1534.7849975 -2007-10-30,1539.420044,1539.420044,1529.550049,1531.02002,3212520000,-0.6463393508850168,1535.1596638666667 -2007-10-31,1532.150024,1552.76001,1529.400024,1549.380005,3953070000,1.1991995375736586,1535.8379964 -2007-11-01,1545.790039,1545.790039,1506.660034,1508.439941,4241470000,-2.642351383642638,1535.4943277666669 -2007-11-02,1511.069946,1513.150024,1492.530029,1509.650024,4285990000,0.08022082730041458,1534.9576619 -2007-11-05,1505.609985,1510.839966,1489.949951,1502.170044,3819330000,-0.49547775186866705,1534.4389973666664 -2007-11-06,1505.329956,1520.77002,1499.069946,1520.27002,3879160000,1.2049219109577791,1534.5409993333335 -2007-11-07,1515.459961,1515.459961,1475.040039,1475.619995,4353160000,-2.9369799057143764,1532.8809976999999 -2007-11-08,1475.27002,1482.5,1450.310059,1474.77002,5439720000,-0.057601211889246606,1530.9939981999999 -2007-11-09,1467.589966,1474.089966,1448.51001,1453.699951,4587050000,-1.4287020155183128,1528.5589965666666 -2007-11-12,1453.660034,1464.939941,1438.530029,1439.180054,4192520000,-0.9988235185680483,1524.963663733333 -2007-11-13,1441.349976,1481.369995,1441.349976,1481.050049,4141310000,2.9092951145083035,1522.7776652 -2007-11-14,1483.400024,1492.140015,1466.469971,1470.579956,4031470000,-0.7069371495628585,1520.4773315333334 -2007-11-15,1468.040039,1472.670044,1443.48999,1451.150024,3941010000,-1.3212428144913413,1517.4210001333333 -2007-11-16,1453.089966,1462.180054,1443.98999,1458.73999,4168870000,0.5230311046048097,1514.1260009333334 -2007-11-19,1456.699951,1456.699951,1430.420044,1433.27002,4119650000,-1.7460253489040345,1510.1490030666669 -2007-11-20,1434.51001,1452.640015,1419.280029,1439.699951,4875150000,0.44861965367839485,1505.9673339666665 -2007-11-21,1434.709961,1436.400024,1415.640015,1416.77002,4076230000,-1.592688183678359,1501.1106689333333 -2007-11-23,1417.619995,1440.859985,1417.619995,1440.699951,1612720000,1.6890483749790297,1497.3203328333332 -2007-11-26,1440.73999,1446.089966,1406.099976,1407.219971,3706470000,-2.323869031630177,1492.1676635666668 -2007-11-27,1409.589966,1429.48999,1407.430054,1428.22998,4320720000,1.4930152664810459,1488.1516642 -2007-11-28,1432.949951,1471.619995,1432.949951,1469.02002,4508020000,2.8559854204992963,1485.8346639000001 -2007-11-29,1467.410034,1473.810059,1458.359985,1469.719971,3524730000,0.047647478623202844,1483.4506632666667 -2007-11-30,1471.829956,1488.939941,1470.890015,1481.140015,4422200000,0.7770217609705421,1481.4859985666667 -2007-12-03,1479.630005,1481.160034,1470.079956,1472.420044,3323250000,-0.5887337396660586,1480.5456665333331 -2007-12-04,1471.339966,1471.339966,1460.660034,1462.790039,3343620000,-0.6540256660619082,1479.0943359666667 -2007-12-05,1465.219971,1486.089966,1465.219971,1485.01001,3663660000,1.5190130099046906,1477.941670766667 -2007-12-06,1484.589966,1508.02002,1482.189941,1507.339966,3568570000,1.503690604752217,1477.6570028 -2007-12-07,1508.599976,1510.630005,1502.660034,1504.660034,3177710000,-0.17779214115257735,1477.332336466667 -2007-12-10,1505.109985,1518.27002,1504.959961,1515.959961,2911760000,0.7509953574004413,1476.6883342 -2007-12-11,1516.680054,1523.569946,1475.98999,1477.650024,4080180000,-2.5271074425164186,1474.5773356666664 -2007-12-12,1487.579956,1511.959961,1468.22998,1486.589966,4482120000,0.6050107843398322,1473.0963338666666 -2007-12-13,1483.27002,1489.400024,1469.209961,1488.410034,3635170000,0.12243241523399728,1471.0640015 -2007-12-14,1486.189941,1486.670044,1467.780029,1467.949951,3401050000,-1.3746267851349359,1469.7143351666666 -2007-12-17,1465.050049,1465.050049,1445.430054,1445.900024,3569030000,-1.5020898352140044,1467.5893351666668 -2007-12-18,1445.920044,1460.160034,1435.650024,1454.97998,3723690000,0.6279795178978365,1466.0163330333335 -2007-12-19,1454.699951,1464.420044,1445.310059,1453.0,3401300000,-0.13608297208324016,1463.7739990333332 -2007-12-20,1456.420044,1461.530029,1447.219971,1460.119995,3526890000,0.4900203028217476,1463.2573323666666 -2007-12-21,1463.189941,1485.400024,1463.189941,1484.459961,4508590000,1.6669839522333252,1463.5803304 -2007-12-24,1484.550049,1497.630005,1484.550049,1496.449951,1267420000,0.8077004644788888,1465.0053304 -2007-12-26,1495.119995,1498.849976,1488.199951,1497.660034,2010500000,0.08086357978034364,1466.9546630666669 -2007-12-27,1495.050049,1495.050049,1475.859985,1476.27002,2365770000,-1.4282289381035929,1466.7953287666667 -2007-12-28,1479.829956,1488.01001,1471.699951,1478.48999,2420510000,0.15037696152633284,1467.0589965666666 -2007-12-31,1475.25,1475.829956,1465.130005,1468.359985,2440880000,-0.6851588491309291,1467.6326619333333 -2008-01-02,1467.969971,1471.77002,1442.069946,1447.160034,3452650000,-1.443784304705098,1467.2466634 -2008-01-03,1447.550049,1456.800049,1443.72998,1447.160034,3429500000,0.0,1467.7096638666665 -2008-01-04,1444.01001,1444.01001,1411.189941,1411.630005,4166000000,-2.455155488352856,1466.773999 -2008-01-07,1414.069946,1423.869995,1403.449951,1416.180054,4221260000,0.32232589162057845,1466.7543334666666 -2008-01-08,1415.709961,1430.280029,1388.300049,1390.189941,4705390000,-1.8352265961231962,1465.0706664666666 -2008-01-09,1390.25,1409.189941,1378.699951,1409.130005,5351030000,1.362408361721834,1465.1343342666664 -2008-01-10,1406.780029,1429.089966,1395.310059,1420.329956,5170490000,0.7948131797818059,1464.8710001333334 -2008-01-11,1419.910034,1419.910034,1394.829956,1401.02002,4495840000,-1.3595387408698811,1462.6043334666667 -2008-01-14,1402.910034,1417.890015,1402.910034,1416.25,3682090000,1.0870636952068802,1460.8220011 -2008-01-15,1411.880005,1411.880005,1380.599976,1380.949951,4601640000,-2.492501253309798,1457.4823322999998 -2008-01-16,1377.410034,1391.98999,1364.27002,1373.199951,5440620000,-0.5612078840647294,1454.1749958666667 -2008-01-17,1374.790039,1377.719971,1330.670044,1333.25,5303130000,-2.909259570749867,1449.8569945666668 -2008-01-18,1333.900024,1350.280029,1312.51001,1325.189941,6004840000,-0.6045422088880481,1444.5296589333334 -2008-01-22,1312.939941,1322.089966,1274.290039,1310.5,6544690000,-1.1085158848183618,1437.9683267333335 -2008-01-23,1310.410034,1339.089966,1270.050049,1338.599976,3241680000,2.144217932086989,1432.4329914666666 -2008-01-24,1340.130005,1355.150024,1334.310059,1352.069946,5735300000,1.006272989803203,1426.9699909666665 -2008-01-25,1357.319946,1368.560059,1327.5,1330.609985,4882250000,-1.5871931081293367,1422.0686563333334 -2008-01-28,1330.699951,1353.969971,1322.26001,1353.959961,4100930000,1.7548324650517255,1417.6476561666668 -2008-01-29,1355.939941,1364.930054,1350.189941,1362.300049,4232960000,0.6159774469135737,1413.44399 -2008-01-30,1362.219971,1385.859985,1352.949951,1355.810059,4742760000,-0.4763994543466432,1409.7059936 -2008-01-31,1351.97998,1385.619995,1334.079956,1378.550049,4970290000,1.6772253494543587,1407.460994433333 -2008-02-01,1378.599976,1396.02002,1375.930054,1395.420044,4650770000,1.2237491857649552,1405.4756632333333 -2008-02-04,1395.380005,1395.380005,1379.689941,1380.819946,3495780000,-1.046286963038623,1403.0696614333333 -2008-02-05,1380.280029,1380.280029,1336.640015,1336.640015,4315740000,-3.1995432227048703,1398.9536621 -2008-02-06,1339.47998,1351.959961,1324.339966,1326.449951,4008120000,-0.7623641283849958,1393.6866617666667 -2008-02-07,1324.01001,1347.160034,1316.75,1336.910034,4589160000,0.7885772842099348,1388.3686645333332 -2008-02-08,1336.880005,1341.219971,1321.060059,1331.290039,3768490000,-0.4203719664804373,1382.8229980333333 -2008-02-11,1331.920044,1341.400024,1320.319946,1339.130005,3593140000,0.5888999219050062,1378.2516642 -2008-02-12,1340.550049,1362.099976,1339.359985,1348.859985,4044640000,0.7265896487772316,1373.9306640333334 -2008-02-13,1353.119995,1369.22998,1350.780029,1367.209961,3856420000,1.3604062841259257,1370.5589965666668 -2008-02-14,1367.329956,1368.160034,1347.310059,1348.859985,3644760000,-1.3421476235134011,1367.2823282666666 -2008-02-15,1347.52002,1350.0,1338.130005,1349.98999,3583300000,0.083774818184712,1364.0433268000002 -2008-02-19,1355.859985,1367.280029,1345.050049,1348.780029,3613550000,-0.08962740531135438,1361.9483276 -2008-02-20,1348.390015,1363.709961,1336.550049,1360.030029,3870520000,0.834087083002033,1360.0766601 -2008-02-21,1362.209961,1367.939941,1339.339966,1342.530029,3696660000,-1.286736294555746,1358.4879963666667 -2008-02-22,1344.219971,1354.300049,1327.040039,1353.109985,3572660000,0.7880610318921955,1356.6206623666667 -2008-02-25,1352.75,1374.359985,1346.030029,1371.800049,3866350000,1.3812671702367219,1355.0029988 -2008-02-26,1371.76001,1387.339966,1363.290039,1381.290039,4096060000,0.6917910527061144,1354.3453327666668 -2008-02-27,1378.949951,1388.339966,1372.0,1380.02002,3904700000,-0.09194441168340894,1353.1376667666666 -2008-02-28,1378.160034,1378.160034,1363.160034,1367.680054,3938580000,-0.8941874625847834,1352.6953368666666 -2008-02-29,1364.069946,1364.069946,1325.420044,1330.630005,4426730000,-2.7089704855781993,1351.2763386666668 -2008-03-03,1330.449951,1335.130005,1320.040039,1331.339966,4117570000,0.05335525257450513,1351.2126708666667 -2008-03-04,1329.579956,1331.030029,1307.390015,1326.75,4757180000,-0.34476287929600113,1351.2646728333334 -2008-03-05,1327.689941,1344.189941,1320.219971,1333.699951,4277710000,0.5238327491991823,1352.0380045333332 -2008-03-06,1332.199951,1332.199951,1303.420044,1304.339966,4323460000,-2.2013935726687306,1350.8960041999999 -2008-03-07,1301.530029,1313.23999,1282.430054,1293.369995,4565410000,-0.8410361781400755,1348.9393391666667 -2008-03-10,1293.160034,1295.01001,1272.660034,1273.369995,4261240000,-1.546347918794888,1347.0313395 -2008-03-11,1274.400024,1320.650024,1274.400024,1320.650024,5109080000,3.7129843789039496,1345.9210082666666 -2008-03-12,1321.130005,1333.26001,1307.859985,1308.77002,4414280000,-0.8995573228415044,1344.1366739666666 -2008-03-13,1305.26001,1321.680054,1282.109985,1315.47998,5073360000,0.512692061818476,1342.792338 -2008-03-14,1316.050049,1321.469971,1274.859985,1288.140015,5153780000,-2.078326193911373,1339.7786702 -2008-03-17,1283.209961,1287.5,1256.97998,1276.599976,5683010000,-0.8958683734392014,1335.818001266667 -2008-03-18,1277.160034,1330.73999,1277.160034,1330.73999,5335630000,4.2409537065509095,1334.1486694 -2008-03-19,1330.969971,1341.51001,1298.420044,1298.420044,5358550000,-2.4287198282814115,1332.8746703666666 -2008-03-20,1299.670044,1330.670044,1295.219971,1329.51001,6145220000,2.3944459378663074,1332.9766723333335 -2008-03-24,1330.290039,1359.680054,1330.290039,1349.880005,4499000000,1.53214303365794,1333.4090047 -2008-03-25,1349.069946,1357.469971,1341.209961,1352.98999,4145120000,0.23038973749374136,1334.1323364000002 -2008-03-26,1352.449951,1352.449951,1336.410034,1341.130005,4055670000,-0.8765759604769885,1334.1990030666668 -2008-03-27,1340.339966,1345.619995,1325.660034,1325.76001,4037930000,-1.1460481044117676,1333.4290039 -2008-03-28,1327.02002,1334.869995,1312.949951,1315.219971,3686980000,-0.7950186248263713,1331.6960042333333 -2008-03-31,1315.920044,1328.52002,1312.810059,1322.699951,4188990000,0.5687246365573939,1330.8240031 -2008-04-01,1326.410034,1370.180054,1326.410034,1370.180054,4745120000,3.5896351976201,1331.4970052333333 -2008-04-02,1369.959961,1377.949951,1361.550049,1367.530029,4320440000,-0.1934070629815099,1332.1220052333333 -2008-04-03,1365.689941,1375.660034,1358.680054,1369.310059,3920100000,0.1301638693302687,1332.4313395666666 -2008-04-04,1369.849976,1380.910034,1362.829956,1370.400024,3703100000,0.07959957592045264,1333.3603393999997 -2008-04-07,1373.689941,1386.73999,1369.02002,1372.540039,3747780000,0.15615987759205474,1334.0080078666665 -2008-04-08,1370.160034,1370.160034,1360.619995,1365.540039,3602500000,-0.5100033369591195,1333.7993408666666 -2008-04-09,1365.5,1368.390015,1349.969971,1354.48999,3556670000,-0.8092072502020486,1332.9060059 -2008-04-10,1355.369995,1367.23999,1350.109985,1360.550049,3686150000,0.44740522593305077,1332.2570068666669 -2008-04-11,1357.97998,1357.97998,1331.209961,1332.829956,3723790000,-2.0374181030954452,1331.0953369333333 -2008-04-14,1332.199951,1335.640015,1326.160034,1328.319946,3565020000,-0.33837849904987394,1331.0183349666665 -2008-04-15,1331.719971,1337.719971,1324.349976,1334.430054,3581230000,0.4599876722772622,1331.1213378999998 -2008-04-16,1337.02002,1365.48999,1337.02002,1364.709961,4260370000,2.2691265764912094,1332.3866699333332 -2008-04-17,1363.369995,1368.599976,1357.25,1365.560059,3713880000,0.06229147762482068,1333.4486735333335 -2008-04-18,1369.0,1395.900024,1369.0,1390.329956,4222380000,1.813900226266063,1336.3150065333334 -2008-04-21,1387.719971,1390.22998,1379.25,1388.170044,3420570000,-0.15535247519331552,1339.4750081666668 -2008-04-22,1386.430054,1386.430054,1369.839966,1375.939941,3821900000,-0.8810234058040156,1342.8940063666666 -2008-04-23,1378.400024,1387.869995,1372.23999,1379.930054,4103610000,0.2899917998673729,1344.8700073666666 -2008-04-24,1380.52002,1397.719971,1371.089966,1388.819946,4461660000,0.6442277254728346,1347.5383382333334 -2008-04-25,1387.880005,1399.109985,1379.97998,1397.839966,3891150000,0.6494736791460065,1350.2836710999998 -2008-04-28,1397.959961,1402.900024,1394.400024,1396.369995,3607000000,-0.10516017825749069,1353.8913371 -2008-04-29,1395.609985,1397.0,1386.699951,1390.939941,3815320000,-0.3888692838891816,1357.7026692666666 -2008-04-30,1391.219971,1404.569946,1384.25,1385.589966,4508890000,-0.38463019446790536,1359.5310018000002 -2008-05-01,1385.969971,1410.069946,1383.069946,1409.339966,4448780000,1.7140713041220224,1363.2283325333335 -2008-05-02,1409.160034,1422.719971,1406.25,1413.900024,3953030000,0.32355983013399037,1366.041333 -2008-05-05,1415.339966,1415.339966,1404.369995,1407.48999,3410090000,-0.45335836276921837,1367.9616658333332 -2008-05-06,1405.599976,1421.569946,1397.099976,1418.26001,3924100000,0.7651933638263442,1370.1373331666664 -2008-05-07,1417.48999,1419.540039,1391.160034,1392.569946,4075860000,-1.811379000949187,1371.8519978666666 -2008-05-08,1394.290039,1402.349976,1389.390015,1397.680054,3827550000,0.3669552121728703,1374.2493326666665 -2008-05-09,1394.900024,1394.900024,1384.109985,1388.280029,3518620000,-0.6725448340697215,1376.6846679333332 -2008-05-12,1389.400024,1404.060059,1386.199951,1403.579956,3370630000,1.1020778719276647,1379.3806680999999 -2008-05-13,1404.400024,1406.300049,1396.26001,1403.040039,4018590000,-0.03846713524883194,1380.4760009333334 -2008-05-14,1405.650024,1420.189941,1405.650024,1408.660034,3979370000,0.4005584191314693,1381.8470011 -2008-05-15,1408.359985,1424.400024,1406.869995,1423.569946,3836480000,1.0584464413079253,1383.6556640000001 -2008-05-16,1423.890015,1425.819946,1414.349976,1425.349976,3842590000,0.1250398693089405,1385.4873290666667 -2008-05-19,1425.280029,1440.23999,1421.630005,1426.630005,3683970000,0.08980454074809519,1387.2903279333334 -2008-05-20,1424.48999,1424.48999,1409.089966,1413.400024,3854320000,-0.9273589475639832,1388.885660766667 -2008-05-21,1414.060059,1419.119995,1388.810059,1390.709961,4517990000,-1.6053532343791699,1390.0929931333335 -2008-05-22,1390.829956,1399.069946,1390.22998,1394.349976,3955960000,0.2617378966195405,1391.2196573666665 -2008-05-23,1392.199951,1392.199951,1373.719971,1375.930054,3516380000,-1.3210400772438513,1392.6563273 -2008-05-27,1375.969971,1387.400024,1373.069946,1385.349976,3588860000,0.6846221559457355,1394.5573283 -2008-05-28,1386.540039,1391.25,1378.160034,1390.839966,3927240000,0.3962890312996237,1396.4376587000002 -2008-05-29,1390.5,1406.319946,1388.589966,1398.26001,3894440000,0.5334937290693231,1397.5559936666666 -2008-05-30,1398.359985,1404.459961,1398.079956,1400.380005,3845630000,0.15161665104046484,1398.7166585333332 -2008-06-02,1399.619995,1399.619995,1377.790039,1385.670044,3714320000,-1.0504263805166225,1398.561328133333 -2008-06-03,1386.420044,1393.119995,1370.119995,1377.650024,4396380000,-0.5787828087016056,1398.2106608 -2008-06-04,1376.26001,1388.180054,1371.73999,1377.199951,4338640000,-0.03266961798419343,1398.2526611333335 -2008-06-05,1377.47998,1404.050049,1377.47998,1404.050049,4350790000,1.949615085340639,1399.0566609666666 -2008-06-06,1400.060059,1400.060059,1359.900024,1360.680054,4771660000,-3.0889208707972515,1398.1186645666667 -2008-06-09,1360.829956,1370.630005,1350.619995,1361.76001,4404570000,0.07936884183943338,1396.9159993666667 -2008-06-10,1358.97998,1366.839966,1351.560059,1358.439941,4635070000,-0.24380720359088448,1395.6516642333333 -2008-06-11,1357.089966,1357.089966,1335.469971,1335.48999,4779980000,-1.6894343509294751,1393.8033325333333 -2008-06-12,1335.780029,1353.030029,1331.290039,1339.869995,4734240000,0.32796988616889955,1392.2793335 -2008-06-13,1341.810059,1360.030029,1341.709961,1360.030029,4080420000,1.5046261260593496,1390.6356689333334 -2008-06-16,1358.849976,1364.699951,1352.069946,1360.140015,3706940000,0.008087027319603202,1388.8436686333334 -2008-06-17,1360.709961,1366.589966,1350.540039,1350.930054,3801960000,-0.6771333023387283,1386.9583374333333 -2008-06-18,1349.589966,1349.589966,1333.400024,1337.810059,4573570000,-0.9711824058657004,1384.2766724 -2008-06-19,1336.890015,1347.660034,1330.5,1342.829956,4811670000,0.3752324155607223,1382.6186727333334 -2008-06-20,1341.02002,1341.02002,1314.459961,1317.930054,5324900000,-1.8542855622741383,1379.9603394 -2008-06-23,1319.77002,1323.780029,1315.310059,1318.0,4186370000,0.005307261928488849,1377.6176717666667 -2008-06-24,1317.22998,1326.02002,1304.420044,1314.290039,4705050000,-0.2814841426403647,1374.6413412 -2008-06-25,1314.540039,1335.630005,1314.540039,1321.969971,4825640000,0.5843407293753433,1371.9390056 -2008-06-26,1316.290039,1316.290039,1283.150024,1283.150024,5231280000,-2.9365226027513125,1367.7553386 -2008-06-27,1283.599976,1289.449951,1272.0,1278.380005,6208260000,-0.3717428913830645,1362.9156738999998 -2008-06-30,1278.060059,1290.310059,1274.859985,1280.0,5032330000,0.12672249203398156,1358.0706747 -2008-07-01,1276.689941,1285.310059,1260.680054,1284.910034,5846290000,0.38359640625000857,1353.3466756666667 -2008-07-02,1285.819946,1292.170044,1261.51001,1261.52002,5276090000,-1.820362000535214,1348.2840088666667 -2008-07-03,1262.959961,1271.47998,1252.01001,1262.900024,3247590000,0.10939216010223962,1344.0236776333331 -2008-07-07,1262.900024,1273.949951,1240.680054,1252.310059,5265420000,-0.8385434158484251,1339.2890137333334 -2008-07-08,1251.839966,1274.170044,1242.839966,1273.699951,6034110000,1.70803483101305,1335.8813436333335 -2008-07-09,1273.380005,1277.359985,1244.569946,1244.689941,5181000000,-2.2776172659207394,1331.1926758 -2008-07-10,1245.25,1257.650024,1236.76001,1253.390015,5840430000,0.6989751996396842,1326.6110107666668 -2008-07-11,1248.660034,1257.27002,1225.349976,1239.48999,6742200000,-1.1089943938958124,1321.3186767666666 -2008-07-14,1241.609985,1253.5,1225.01001,1228.300049,5434860000,-0.9027859111633507,1315.5826782333336 -2008-07-15,1226.829956,1234.349976,1200.439941,1214.910034,7363640000,-1.0901257401154663,1309.8906779000001 -2008-07-16,1214.650024,1245.52002,1211.390015,1245.359985,6738630000,2.5063543923286247,1305.4810099333333 -2008-07-17,1246.310059,1262.310059,1241.48999,1260.319946,7365210000,1.201255956525693,1301.5850097666666 -2008-07-18,1258.219971,1262.22998,1251.810059,1260.680054,5653280000,0.0285727446544648,1296.8060099333334 -2008-07-21,1261.819946,1267.73999,1255.699951,1260.0,4630640000,-0.05394342504604355,1293.450008133333 -2008-07-22,1257.079956,1277.420044,1248.829956,1277.0,6180230000,1.3492063492063444,1290.6246744666666 -2008-07-23,1278.869995,1291.170044,1276.060059,1282.189941,6705830000,0.40641667971810236,1288.0830078000001 -2008-07-24,1283.219971,1283.219971,1251.47998,1252.540039,6127980000,-2.3124422561664804,1285.3180094333334 -2008-07-25,1253.51001,1263.22998,1251.75,1257.76001,4672560000,0.41675082931220686,1282.5810099333332 -2008-07-28,1257.76001,1260.089966,1234.369995,1234.369995,4282960000,-1.8596564379559144,1278.3923421333334 -2008-07-29,1236.380005,1263.199951,1236.380005,1263.199951,5414240000,2.335600842274199,1275.1610066666665 -2008-07-30,1264.52002,1284.329956,1264.52002,1284.26001,5631330000,1.6671991622013493,1272.938671866667 -2008-07-31,1281.369995,1284.930054,1265.969971,1267.380005,5346050000,-1.3143759728218907,1270.5910034 -2008-08-01,1269.420044,1270.52002,1254.540039,1260.310059,4684870000,-0.5578394776711071,1267.8403401666665 -2008-08-04,1253.27002,1260.48999,1247.449951,1249.01001,4562280000,-0.8966086495386771,1265.5430053666669 -2008-08-05,1254.869995,1284.880005,1254.670044,1284.880005,1219310000,2.871874101313243,1264.4390055333336 -2008-08-06,1283.98999,1291.670044,1276.0,1289.189941,4873420000,0.33543490312155644,1263.6023356 -2008-08-07,1286.51001,1286.51001,1264.290039,1266.069946,5319380000,-1.793373828379885,1261.7390014333334 -2008-08-08,1266.290039,1297.849976,1262.109985,1296.319946,4966810000,2.389283474864201,1262.1779988333333 -2008-08-11,1294.420044,1313.150024,1291.410034,1305.319946,5067310000,0.6942730479285508,1263.0759968666669 -2008-08-12,1304.790039,1304.790039,1285.640015,1289.589966,4711290000,-1.20506700661418,1263.3956624 -2008-08-13,1288.640015,1294.030029,1274.859985,1285.829956,4787600000,-0.2915663194606455,1263.4263264666668 -2008-08-14,1282.109985,1300.109985,1276.839966,1292.930054,4064000000,0.5521801671262372,1264.4733276 -2008-08-15,1293.849976,1302.050049,1290.73999,1298.199951,4041820000,0.40759335616775694,1265.6499918333334 -2008-08-18,1298.140015,1300.219971,1274.51001,1278.599976,3829290000,-1.509780907394298,1266.5263224 -2008-08-19,1276.650024,1276.650024,1263.109985,1266.689941,4159760000,-0.9314903193772484,1266.2926554 -2008-08-20,1267.339966,1276.01001,1261.160034,1274.540039,4555030000,0.6197331916761417,1267.2876586666669 -2008-08-21,1271.069946,1281.400024,1265.219971,1277.719971,4032590000,0.24949643814211608,1268.0986572 -2008-08-22,1277.589966,1293.089966,1277.589966,1292.199951,3741070000,1.1332670951888835,1269.8556559 -2008-08-25,1290.469971,1290.469971,1264.869995,1266.839966,3420600000,-1.9625434113640594,1271.1403198 -2008-08-26,1267.030029,1275.650024,1263.209961,1271.51001,3587570000,0.36863724900828565,1273.0269856666666 -2008-08-27,1271.290039,1285.050049,1270.030029,1281.660034,3499610000,0.7982653632431891,1274.2369873 -2008-08-28,1283.790039,1300.680054,1283.790039,1300.680054,3854280000,1.4840144418515777,1275.582324233333 -2008-08-29,1296.48999,1297.589966,1282.73999,1282.829956,3288120000,-1.3723665512594962,1276.3206543000001 -2008-09-02,1287.829956,1303.040039,1272.199951,1277.579956,4783560000,-0.4092514347240561,1276.9066528333335 -2008-09-03,1276.609985,1280.599976,1265.589966,1274.97998,5056980000,-0.20350788909840878,1276.8393188333332 -2008-09-04,1271.800049,1271.800049,1232.829956,1236.829956,5212500000,-2.9922057285950543,1275.3273193333332 -2008-09-05,1233.209961,1244.939941,1217.22998,1242.310059,5017080000,0.44307650970250023,1274.98632 -2008-09-08,1249.5,1274.420044,1247.119995,1267.790039,7351340000,2.0510161545749916,1275.3206543000001 -2008-09-09,1267.97998,1268.660034,1224.51001,1224.51001,7380630000,-3.4138167731731173,1274.9919881333333 -2008-09-10,1227.5,1243.900024,1221.599976,1232.040039,6543440000,0.6149422167647245,1273.9533244000002 -2008-09-11,1229.040039,1249.97998,1211.540039,1249.050049,6869250000,1.3806377602635589,1272.7796590333332 -2008-09-12,1245.880005,1255.089966,1233.810059,1251.699951,6273260000,0.21215338825866237,1272.2569905666667 -2008-09-15,1250.920044,1250.920044,1192.699951,1192.699951,8279510000,-4.713589702776943,1270.0033203 -2008-09-16,1188.310059,1214.839966,1169.280029,1213.599976,9459830000,1.7523288218865618,1268.8229858333332 -2008-09-17,1210.339966,1210.339966,1155.880005,1156.390015,9431870000,-4.714070709572926,1264.5399861666665 -2008-09-18,1157.079956,1211.140015,1133.5,1206.51001,10082690000,4.3341774271546285,1261.7839884666669 -2008-09-19,1213.109985,1265.119995,1213.109985,1255.079956,9387170000,4.025656281127743,1261.4176554666667 -2008-09-22,1255.369995,1255.369995,1205.609985,1207.089966,5368130000,-3.823659980432359,1258.4433228000003 -2008-09-23,1207.609985,1221.150024,1187.060059,1188.219971,5185730000,-1.5632633466857948,1254.5399903 -2008-09-24,1188.790039,1197.410034,1179.790039,1185.869995,4820360000,-0.1977728078431662,1251.0826579333334 -2008-09-25,1187.869995,1220.030029,1187.869995,1209.180054,5877640000,1.9656504590117363,1248.5276612 -2008-09-26,1204.469971,1215.77002,1187.540039,1213.27002,5383610000,0.3382429263921738,1245.8723267333335 -2008-09-29,1209.069946,1209.069946,1106.420044,1106.420044,7305060000,-8.806776252494885,1239.4796631666666 -2008-09-30,1113.780029,1168.030029,1113.780029,1166.359985,4937680000,5.417467021231959,1235.7383301333332 -2008-10-01,1164.170044,1167.030029,1140.77002,1161.060059,5782130000,-0.4543988192461934,1232.2173340666666 -2008-10-02,1160.640015,1160.640015,1111.430054,1114.280029,6285640000,-4.029079257130819,1226.8753337333333 -2008-10-03,1115.160034,1153.819946,1098.140015,1099.22998,6716120000,-1.3506523143474558,1220.9256673666666 -2008-10-06,1097.560059,1097.560059,1007.969971,1056.890015,7956020000,-3.851784046137474,1213.0820028333333 -2008-10-07,1057.599976,1072.910034,996.22998,996.22998,7069210000,-5.739484160042895,1204.0616699666666 -2008-10-08,988.909973,1021.059998,970.969971,984.940002,8716330000,-1.1332702515136073,1194.5093363666667 -2008-10-09,988.419983,1005.25,909.190002,909.919983,6819000000,-7.616709530292798,1182.1180013333333 -2008-10-10,902.309998,936.359985,839.799988,899.219971,11456230000,-1.1759288948377744,1168.7359985666667 -2008-10-13,912.75,1006.929993,912.75,1003.349976,7263370000,11.580036960722694,1159.4199992333333 -2008-10-14,1009.969971,1044.310059,972.070007,998.01001,8161990000,-0.5322136968885505,1150.1010010333334 -2008-10-15,994.599976,994.599976,903.98999,907.840027,6542330000,-9.034977815503076,1137.8630026 -2008-10-16,909.530029,947.710022,865.830017,946.429993,7984500000,4.250745159091784,1128.1830038333333 -2008-10-17,942.289978,984.640015,918.73999,940.549988,6581780000,-0.6212826139798788,1118.1243347999998 -2008-10-20,943.51001,985.400024,943.51001,985.400024,5175640000,4.768490412228887,1108.7113342999999 -2008-10-21,980.400024,985.440002,952.469971,955.049988,5121830000,-3.0799711042020506,1099.7293335666666 -2008-10-22,951.669983,951.669983,875.809998,896.780029,6147980000,-6.101247027082312,1088.5539999 -2008-10-23,899.080017,922.830017,858.440002,908.109985,7189900000,1.263404138541535,1077.1893311 -2008-10-24,895.219971,896.299988,852.849976,876.77002,6550050000,-3.451119965386129,1064.6916667333332 -2008-10-27,874.280029,893.780029,846.75,848.919983,5558050000,-3.1764358229310896,1053.2323344666665 -2008-10-28,848.919983,940.51001,845.27002,940.51001,7096950000,10.789005893857006,1044.1293356 -2008-10-29,939.51001,969.969971,922.26001,930.090027,7077800000,-1.1079077191320952,1036.5860026666667 -2008-10-30,939.380005,963.22998,928.5,954.090027,6175830000,2.580395370694588,1028.1720032333333 -2008-10-31,953.109985,984.380005,944.590027,968.75,6394350000,1.536539800766623,1018.6276713666666 -2008-11-03,968.669983,975.570007,958.820007,966.299988,4492280000,-0.2529044645161349,1010.6013387666667 -2008-11-04,971.309998,1007.51001,971.309998,1005.75,5531290000,4.082584341292583,1004.5190064 -2008-11-05,1001.840027,1001.840027,949.859985,952.77002,5426640000,-5.267708675118065,996.7490072333334 -2008-11-06,952.400024,952.400024,899.72998,904.880005,6102230000,-5.026398185786752,986.6056722666667 -2008-11-07,907.440002,931.460022,906.900024,930.98999,4931640000,2.885463802462973,977.1963379333334 -2008-11-10,936.75,951.950012,907.469971,919.210022,4572000000,-1.2653162898131787,970.9560038666666 -2008-11-11,917.150024,917.150024,884.900024,898.950012,4998340000,-2.204067570533952,962.0423380999999 -2008-11-12,893.390015,893.390015,850.47998,852.299988,5764180000,-5.189390219397428,951.7503357333334 -2008-11-13,853.130005,913.01001,818.690002,911.289978,7849120000,6.921270776786637,944.9840007 -2008-11-14,904.359985,916.880005,869.880005,873.289978,5881030000,-4.169913081168552,937.4526672999999 -2008-11-17,873.22998,882.289978,848.97998,850.75,4927490000,-2.5810416434207673,930.5813334666667 -2008-11-18,852.340027,865.900024,826.840027,859.119995,6679470000,0.9838372024684183,926.0110006333333 -2008-11-19,859.030029,864.570007,806.179993,806.580017,6548600000,-6.115557582849651,920.0656677999999 -2008-11-20,805.869995,820.52002,747.780029,752.440002,9093740000,-6.712293121439917,914.8163351 -2008-11-21,755.840027,801.200012,741.02002,800.030029,9495900000,6.324760362753801,911.5100037 -2008-11-24,801.200012,865.599976,801.200012,851.809998,7879440000,6.472253180886534,906.4586711 -2008-11-25,853.400024,868.940002,834.98999,857.390015,6952700000,0.6550776597012975,901.7713379333333 -2008-11-26,852.900024,887.679993,841.369995,887.679993,5793260000,3.532812077360159,901.0993368 -2008-11-28,886.890015,896.25,881.210022,896.23999,2740860000,0.9643111332351628,899.4263367 -2008-12-01,888.609985,888.609985,815.690002,816.210022,6052010000,-8.929524334213212,895.2816711666668 -2008-12-02,817.940002,850.539978,817.940002,848.809998,6170100000,3.994067105439192,890.7286702999999 -2008-12-03,843.599976,873.119995,827.599976,870.73999,6221880000,2.583616127481103,887.9183370333334 -2008-12-04,869.75,875.599976,833.599976,845.219971,5860390000,-2.93084265028416,886.1996684333333 -2008-12-05,844.429993,879.419983,818.409973,876.070007,6165370000,3.649941678909996,885.1316691666667 -2008-12-08,882.710022,918.570007,882.710022,909.700012,6553600000,3.838734887770223,886.2293355666666 -2008-12-09,906.47998,916.26001,885.380005,888.669983,5693110000,-2.3117542841144867,887.5543355666667 -2008-12-10,892.169983,908.27002,885.450012,899.23999,5942130000,1.1894187046036508,886.1786682333333 -2008-12-11,898.349976,904.630005,868.72998,873.590027,5513840000,-2.8524046178151075,884.2953349 -2008-12-12,871.789978,883.23999,851.349976,879.72998,5959590000,0.7028414714262743,881.8166666666667 -2008-12-15,881.070007,884.630005,857.719971,868.570007,4982390000,-1.2685679985579124,878.4773335666667 -2008-12-16,871.530029,914.659973,871.530029,913.179993,6009780000,5.136026531019722,876.7066670666666 -2008-12-17,908.159973,918.849976,895.940002,904.419983,5907380000,-0.9592862378884792,873.3289998333333 -2008-12-18,905.97998,911.02002,877.440002,885.280029,5675000000,-2.1162683664409876,871.0793334666666 -2008-12-19,886.960022,905.469971,883.02002,887.880005,6705310000,0.29368967048051253,870.5126667999999 -2008-12-22,887.200012,887.369995,857.090027,871.630005,4869850000,-1.8302022692807451,868.5340006333333 -2008-12-23,874.309998,880.440002,860.099976,863.159973,4051970000,-0.9717462629111662,866.6656656666667 -2008-12-24,863.869995,869.789978,861.440002,868.150024,1546550000,0.578114272683039,865.6389994000001 -2008-12-26,869.51001,873.73999,866.52002,872.799988,1880050000,0.5356175628004056,866.3223327333333 -2008-12-29,872.369995,873.700012,857.070007,869.419983,3323430000,-0.3872599732437143,864.9266662333333 -2008-12-30,870.580017,891.119995,870.580017,890.640015,3627800000,2.4407113265074276,865.5050008000001 -2008-12-31,890.590027,910.320007,889.669983,903.25,4172940000,1.415834095439794,867.2550008000001 -2009-01-02,902.98999,934.72998,899.349976,931.799988,4048270000,3.1608068641018505,869.6776672333333 -2009-01-05,929.169983,936.630005,919.530029,927.450012,5413910000,-0.4668358076862278,873.7066670666667 -2009-01-06,931.169983,943.849976,927.280029,934.700012,5392620000,0.7817132897939949,879.7820007333333 -2009-01-07,927.450012,927.450012,902.369995,906.650024,4704940000,-3.0009615534272616,883.3360005666667 -2009-01-08,905.72998,910.0,896.809998,909.72998,4991550000,0.33970726503835813,885.2666666333333 -2009-01-09,909.909973,911.929993,888.309998,890.349976,4716500000,-2.13030288393925,886.365332 -2009-01-12,890.400024,890.400024,864.320007,870.26001,4725050000,-2.256412258273599,885.7846659 -2009-01-13,869.789978,877.02002,862.02002,871.789978,5567460000,0.17580584910479313,884.9696655000001 -2009-01-14,867.280029,867.280029,836.929993,842.619995,5407880000,-3.345987420837271,885.8499979333333 -2009-01-15,841.98999,851.590027,817.039978,843.73999,7807350000,0.13291816081340002,885.6809976666667 -2009-01-16,844.450012,858.130005,830.659973,850.119995,6786040000,0.756157711571781,884.9936645 -2009-01-20,849.640015,849.640015,804.469971,805.219971,6375230000,-5.281610156693239,883.6603311666667 -2009-01-21,806.77002,841.719971,804.299988,840.23999,6467830000,4.349124495323786,882.4659972666667 -2009-01-22,839.73999,839.73999,811.289978,827.5,5843830000,-1.5162322850165721,879.7259968666668 -2009-01-23,822.159973,838.609985,806.070007,831.950012,5832160000,0.5377658006042285,877.8353311666666 -2009-01-26,832.5,852.530029,827.690002,836.570007,6039940000,0.5553212252372708,875.7463317333334 -2009-01-27,837.299988,850.450012,835.400024,845.710022,5353260000,1.09255829440702,874.8169982333334 -2009-01-28,845.72998,877.859985,845.72998,874.090027,6199180000,3.355760752708692,874.6289998 -2009-01-29,868.890015,868.890015,844.150024,845.140015,5067060000,-3.312017195684125,873.8480000666666 -2009-01-30,845.690002,851.659973,821.669983,825.880005,5350580000,-2.2789135123367665,870.9380004666667 -2009-02-02,823.090027,830.780029,812.869995,825.440002,5673270000,-0.053276867987617216,868.3053344333332 -2009-02-03,825.690002,842.599976,821.97998,838.51001,5886310000,1.5833989106818214,866.7463338 -2009-02-04,837.77002,851.849976,829.179993,832.22998,6420450000,-0.7489511067375387,864.8913329666667 -2009-02-05,831.75,850.549988,819.909973,845.849976,6624030000,1.6365663731556568,864.0319986666667 -2009-02-06,846.090027,870.75,845.419983,868.599976,6484100000,2.689602251640899,864.2133321 -2009-02-09,868.23999,875.01001,861.650024,869.890015,5574370000,0.1485193455727174,864.2713318 -2009-02-10,866.869995,868.049988,822.98999,827.159973,6770170000,-4.912120068420367,862.7499979666667 -2009-02-11,827.409973,838.219971,822.299988,833.73999,5926460000,0.7954950934261351,861.5606648666667 -2009-02-12,829.909973,835.47998,808.059998,835.190002,6476460000,0.17391657080045864,859.7123310999999 -2009-02-13,833.950012,839.429993,825.210022,826.840027,5296650000,-0.9997695111297666,857.165332 -2009-02-17,818.609985,818.609985,789.169983,789.169983,5907820000,-4.555904742139427,852.4109985 -2009-02-18,791.059998,796.169983,780.429993,788.419983,5740710000,-0.09503655944298472,847.7766642 -2009-02-19,787.909973,797.580017,777.030029,778.940002,5746940000,-1.2024024256625077,842.5846638666667 -2009-02-20,775.869995,778.690002,754.25,770.049988,8210590000,-1.1412963741975202,838.0313293333332 -2009-02-23,773.25,777.849976,742.369995,743.330017,6509300000,-3.4699008397361286,832.4846639 -2009-02-24,744.690002,775.48999,744.690002,773.140015,7234490000,4.010331524120314,828.5776652000001 -2009-02-25,770.640015,780.119995,752.890015,764.900024,7483640000,-1.0657825025393253,825.0656656666666 -2009-02-26,765.76001,779.419983,751.75,752.830017,7599970000,-1.577984915843067,821.1003336333332 -2009-02-27,749.929993,751.27002,734.52002,735.090027,8926480000,-2.3564403118107924,817.5160013666667 -2009-03-02,729.570007,729.570007,699.700012,700.820007,7868290000,-4.6620167246535065,812.7520019333333 -2009-03-03,704.440002,711.669983,692.299988,696.330017,7583230000,-0.6406766295414923,807.6256693333332 -2009-03-04,698.599976,724.119995,698.599976,712.869995,7673620000,2.3753073393646407,804.5473368 -2009-03-05,708.27002,708.27002,677.929993,682.549988,7507250000,-4.253230913443062,799.2910033999999 -2009-03-06,684.039978,699.090027,666.789978,683.380005,7331830000,0.12160530577871587,794.4870035666665 -2009-03-09,680.76001,695.27002,672.880005,676.530029,7277320000,-1.0023670505255655,789.3063374666667 -2009-03-10,679.280029,719.599976,679.280029,719.599976,8618330000,6.366302330092122,785.4073364333333 -2009-03-11,719.590027,731.919983,713.849976,721.359985,7287810000,0.24458158125342244,781.2623351999999 -2009-03-12,720.890015,752.630005,714.76001,750.73999,7326630000,4.072863148903383,777.1506673 -2009-03-13,751.969971,758.289978,742.460022,756.549988,6787090000,0.7739028261968484,774.1976664 -2009-03-16,758.840027,774.530029,753.369995,753.890015,7883540000,-0.35159249781127055,771.7980000666666 -2009-03-17,753.880005,778.119995,749.929993,778.119995,6156800000,3.213994020069366,770.2206665 -2009-03-18,776.01001,803.039978,765.640015,794.349976,9098450000,2.085794106858785,768.7486653666667 -2009-03-19,797.919983,803.23999,781.820007,784.039978,9033870000,-1.297916322968451,767.1423319666667 -2009-03-20,784.580017,788.909973,766.200012,768.539978,7643720000,-1.9769400075157928,764.5653320333332 -2009-03-23,772.309998,823.369995,772.309998,822.919983,7715770000,7.075754880249052,763.0426656000001 -2009-03-24,820.599976,823.650024,805.47998,806.119995,6767980000,-2.0415093018831154,760.9169982666666 -2009-03-25,806.809998,826.780029,791.369995,813.880005,7687180000,0.9626370823365926,760.4743326666666 -2009-03-26,814.059998,832.97998,814.059998,832.859985,6992960000,2.3320366495549916,760.4449991666667 -2009-03-27,828.679993,828.679993,813.429993,815.940002,5600210000,-2.031551918057395,759.8033325 -2009-03-30,809.070007,809.070007,779.809998,787.530029,5912660000,-3.481870349579952,758.4929992333333 -2009-03-31,790.880005,810.47998,790.880005,797.869995,6089100000,1.3129614896246755,758.7829996333332 -2009-04-01,793.590027,813.619995,783.320007,811.080017,6034140000,1.65566095764762,759.5383340999999 -2009-04-02,814.530029,845.609985,814.530029,834.380005,7542810000,2.8727113862552445,761.3863342 -2009-04-03,835.130005,842.5,826.700012,842.5,5855640000,0.9731770837437592,763.8013346 -2009-04-06,839.75,839.75,822.789978,835.47998,6210000000,-0.8332367952522346,766.8730000333333 -2009-04-07,834.119995,834.119995,814.530029,815.549988,5155580000,-2.3854541673158924,768.2866658 -2009-04-08,816.76001,828.419983,814.840027,825.159973,5938460000,1.1783440796274025,770.2953307666667 -2009-04-09,829.289978,856.909973,829.289978,856.559998,7600710000,3.805325758330258,773.7529968 -2009-04-13,855.330017,864.309998,845.349976,858.72998,6434890000,0.2533368363064836,777.8743285666666 -2009-04-14,856.880005,856.880005,840.25,841.5,7569840000,-2.006449105223973,782.5636616666667 -2009-04-15,839.440002,852.929993,835.580017,852.059998,6241100000,1.2549017231134885,787.7546610333334 -2009-04-16,854.539978,870.349976,847.039978,865.299988,6598670000,1.5538800120974638,792.8356607999999 -2009-04-17,865.179993,875.630005,860.869995,869.599976,7352010000,0.49693609842047515,799.0706604000001 -2009-04-20,868.27002,868.27002,832.390015,832.390015,6973960000,-4.278974474120734,804.0376607333334 -2009-04-21,831.25,850.090027,826.830017,850.080017,7436490000,2.12520593486456,809.8226603333334 -2009-04-22,847.26001,861.780029,840.570007,843.549988,7327860000,-0.7681663925056093,813.9543274 -2009-04-23,844.619995,852.869995,835.450012,851.919983,6563100000,0.9922346178730557,818.3063273333333 -2009-04-24,853.909973,871.799988,853.909973,866.22998,7114440000,1.6797348677757062,822.1559936666667 -2009-04-27,862.820007,868.830017,854.650024,857.51001,5613460000,-1.0066576084101775,825.5213277333332 -2009-04-28,854.47998,864.47998,847.119995,855.159973,6328000000,-0.27405359384666816,828.8969930000001 -2009-04-29,856.849976,882.059998,856.849976,873.640015,6101620000,2.1610040908685013,832.0809936666667 -2009-04-30,876.590027,888.700012,868.51001,872.809998,6862540000,-0.09500675172255946,834.6963277333333 -2009-05-01,872.73999,880.47998,866.099976,877.52002,5312170000,0.5396388688022391,837.8123291333334 -2009-05-04,879.210022,907.849976,879.210022,907.23999,7038840000,3.38681389855926,842.4356628666667 -2009-05-05,906.099976,907.700012,897.340027,903.799988,6882860000,-0.379172218808399,845.1316630333332 -2009-05-06,903.950012,920.280029,903.950012,919.530029,8555040000,1.7404338580274459,848.9119975 -2009-05-07,919.580017,929.580017,901.359985,907.390015,9120100000,-1.3202411685458992,852.0289978333333 -2009-05-08,909.030029,930.169983,909.030029,929.22998,8163280000,2.4068994190992843,855.241331 -2009-05-11,922.98999,922.98999,908.679993,909.23999,6150600000,-2.1512424728267976,858.3513306 -2009-05-12,910.52002,915.570007,896.460022,908.349976,6871750000,-0.09788548785674145,862.3786621666666 -2009-05-13,905.400024,905.400024,882.799988,883.919983,7091820000,-2.6894912363601975,865.2469951 -2009-05-14,884.23999,898.359985,882.52002,893.070007,6134870000,1.0351642881683887,867.9799947666667 -2009-05-15,892.76001,896.969971,878.940002,882.880005,5439720000,-1.1410081986999332,869.5966614333335 -2009-05-18,886.070007,910.0,886.070007,909.710022,5702150000,3.0389199945693557,871.8369955 -2009-05-19,909.669983,916.390015,905.219971,908.130005,6616270000,-0.17368358727392064,874.2586630000001 -2009-05-20,908.619995,924.599976,901.369995,903.469971,8205060000,-0.5131461326398967,877.1893290999999 -2009-05-21,900.419983,900.419983,879.609985,888.330017,6019840000,-1.675756194004152,879.2949972333333 -2009-05-22,888.679993,896.650024,883.75,887.0,5155320000,-0.14972104674472186,880.3096639666667 -2009-05-26,887.0,911.76001,881.460022,910.330017,5667050000,2.6302161217587328,882.0296652 -2009-05-27,909.950012,913.840027,891.869995,893.059998,5698800000,-1.8971162850274337,883.7483318 -2009-05-28,892.960022,909.450012,887.599976,906.830017,5738980000,1.5418918136337778,885.5739990999999 -2009-05-29,907.02002,920.02002,903.559998,919.140015,6050420000,1.3574757969221363,887.3686666666667 -2009-06-01,923.26001,947.77002,923.26001,942.869995,6370440000,2.5817589934869822,889.8110006333334 -2009-06-02,942.869995,949.380005,938.460022,944.73999,5987340000,0.19833009958070136,893.5559998 -2009-06-03,942.51001,942.51001,923.849976,931.76001,5323770000,-1.3739208816597293,896.2786662333333 -2009-06-04,932.48999,942.469971,929.320007,942.460022,5352890000,1.1483656612393256,899.5756673666667 -2009-06-05,945.669983,951.690002,934.130005,940.090027,5277910000,-0.251469021993167,902.5146688333333 -2009-06-08,938.119995,946.330017,926.440002,939.140015,4483430000,-0.10105542796062794,904.9450033333334 -2009-06-09,940.349976,946.919983,936.150024,942.429993,4439950000,0.3503181578308201,907.7756694333333 -2009-06-10,942.72998,949.77002,927.969971,939.150024,5379420000,-0.3480331721573249,910.5753378 -2009-06-11,939.039978,956.22998,939.039978,944.890015,5500840000,0.6111899966261269,912.9503378 -2009-06-12,943.440002,946.299988,935.659973,946.210022,4528120000,0.13969953952788217,915.3970052666666 -2009-06-15,942.450012,942.450012,919.650024,923.719971,4697880000,-2.3768561394501897,916.9370036333332 -2009-06-16,925.599976,928.0,911.599976,911.969971,4951200000,-1.272030525363621,917.0946696666667 -2009-06-17,911.890015,918.440002,903.780029,910.710022,5523650000,-0.13815685165800007,917.3250041333334 -2009-06-18,910.859985,921.929993,907.940002,918.369995,4684010000,0.8410990123044915,917.2863363333332 -2009-06-19,919.960022,927.090027,915.799988,921.22998,5713390000,0.31141969092749466,917.7476684999999 -2009-06-22,918.130005,918.130005,893.039978,893.039978,4903940000,-3.0600395788248136,916.5413351 -2009-06-23,893.460022,898.690002,888.859985,895.099976,5071020000,0.23067253994757397,916.0700013000001 -2009-06-24,896.309998,910.849976,896.309998,900.940002,4636720000,0.6524439902342305,915.8230021666666 -2009-06-25,899.450012,921.419983,896.27002,920.26001,4911240000,2.1444278150721807,917.0343364 -2009-06-26,918.840027,922.0,913.030029,918.900024,6076660000,-0.14778279890701462,917.8953369666667 -2009-06-29,919.859985,927.98999,916.179993,927.22998,4211760000,0.9065138516091586,919.3736694666666 -2009-06-30,927.150024,930.01001,912.859985,919.320007,4627570000,-0.8530756307081333,919.6940023 -2009-07-01,920.820007,931.919983,920.820007,923.330017,3919400000,0.4361930524155344,920.2006693666666 -2009-07-02,921.23999,921.23999,896.419983,896.419983,3931000000,-2.914454583360526,919.9656697666667 -2009-07-06,894.27002,898.719971,886.359985,898.719971,4712580000,0.25657482470469173,920.3120015666667 -2009-07-07,898.599976,898.599976,879.929993,881.030029,4673300000,-1.9683486036608855,920.1130025333333 -2009-07-08,881.900024,886.799988,869.320007,879.559998,5721780000,-0.16685367712933052,919.0873352333333 -2009-07-09,881.280029,887.859985,878.450012,882.679993,4347170000,0.3547222482939816,918.7413350666667 -2009-07-10,880.030029,883.570007,872.809998,879.130005,3912080000,-0.4021829007287758,917.8180013333333 -2009-07-13,879.570007,901.049988,875.320007,901.049988,4499440000,2.493372183332543,917.2150004333332 -2009-07-14,900.77002,905.840027,896.5,905.840027,4149030000,0.5316063552291972,915.9806681666666 -2009-07-15,910.150024,933.950012,910.150024,932.679993,5238830000,2.9629918307860326,915.5786682666666 -2009-07-16,930.169983,943.960022,927.450012,940.73999,4898640000,0.864176036849984,915.8780009333333 -2009-07-17,940.559998,941.890015,934.650024,940.380005,5141380000,-0.03826615258484267,915.8086670333333 -2009-07-20,942.070007,951.619995,940.98999,951.130005,4853150000,1.1431548887515852,916.1766663 -2009-07-21,951.969971,956.530029,943.219971,954.580017,5309300000,0.3627277009308649,916.6913330333333 -2009-07-22,953.400024,959.830017,947.75,954.070007,4634100000,-0.05342768452274438,917.0793335000001 -2009-07-23,954.070007,979.419983,953.27002,976.289978,5761650000,2.328966515766373,918.3173319666665 -2009-07-24,972.159973,979.789978,965.950012,979.26001,4458300000,0.30421617213405305,919.4629984666666 -2009-07-27,978.630005,982.48999,972.289978,982.179993,4631290000,0.29818260422991294,920.6619975 -2009-07-28,981.47998,982.349976,969.349976,979.619995,5490350000,-0.26064448657527883,922.5253316333333 -2009-07-29,977.659973,977.76001,968.650024,975.150024,5178770000,-0.45629642339016785,924.6313334 -2009-07-30,976.01001,996.679993,976.01001,986.75,6035180000,1.1895580899867753,927.1659993333334 -2009-07-31,986.799988,993.179993,982.849976,987.47998,5139070000,0.07397821129970783,929.4696655000001 -2009-08-03,990.219971,1003.609985,990.219971,1002.630005,5603440000,1.534210850532891,932.1829996666668 -2009-08-04,1001.409973,1007.119995,996.679993,1005.650024,5713700000,0.3012097169384109,935.9366678666667 -2009-08-05,1005.409973,1006.640015,994.309998,1002.719971,7242120000,-0.29135911401321213,939.5240010333333 -2009-08-06,1004.059998,1008.0,992.48999,997.080017,6753380000,-0.5624655101239662,942.7286682 -2009-08-07,999.830017,1018.0,999.830017,1010.47998,6827090000,1.343920525086606,945.7360005333334 -2009-08-10,1008.890015,1010.119995,1000.98999,1007.099976,5406080000,-0.33449490013646166,948.6759989333333 -2009-08-11,1005.77002,1005.77002,992.400024,994.349976,5773160000,-1.2660113498006886,950.9133321333334 -2009-08-12,994.0,1012.780029,993.359985,1005.809998,5498170000,1.1525139313725896,953.7963318333334 -2009-08-13,1005.859985,1013.140015,1000.820007,1012.72998,5250660000,0.6880009160537215,956.7763306 -2009-08-14,1012.22998,1012.599976,994.599976,1004.090027,4940750000,-0.8531349096626895,960.3653320666667 -2009-08-17,998.179993,998.179993,978.51001,979.72998,4088570000,-2.4260819592823224,963.0656657 -2009-08-18,980.619995,991.200012,980.619995,989.669983,4198970000,1.0145655642792573,966.6869975000001 -2009-08-19,986.880005,999.609985,980.619995,996.460022,4257000000,0.6860912341119185,970.5836649666667 -2009-08-20,996.409973,1008.919983,996.390015,1007.369995,4893160000,1.0948731267816036,974.7399983666667 -2009-08-21,1009.059998,1027.589966,1009.059998,1026.130005,5885550000,1.8622760349339185,979.6399983666666 -2009-08-24,1026.589966,1035.819946,1022.47998,1025.569946,6302450000,-0.05457973134699312,983.7906636333333 -2009-08-25,1026.630005,1037.75,1026.209961,1028.0,5768740000,0.23694668603324587,987.8626627333332 -2009-08-26,1027.349976,1032.469971,1021.570007,1028.119995,5080060000,0.011672665369655277,991.0439961333334 -2009-08-27,1027.810059,1033.329956,1016.200012,1030.97998,5785880000,0.27817618701211355,994.0519958 -2009-08-28,1031.619995,1039.469971,1023.130005,1028.930054,5785780000,-0.19883276491946544,997.0036641 -2009-08-31,1025.209961,1025.209961,1014.619995,1020.619995,5004560000,-0.8076408078172337,999.3199971 -2009-09-01,1019.52002,1028.449951,996.280029,998.039978,6862360000,-2.2123823862572833,1000.7686624666668 -2009-09-02,996.070007,1000.340027,991.969971,994.75,5842730000,-0.32964390931442544,1002.1246622333333 -2009-09-03,996.119995,1003.429993,992.25,1003.23999,4624280000,0.8534797687861362,1003.0229959666667 -2009-09-04,1003.840027,1016.47998,1001.650024,1016.400024,4097370000,1.3117533323208086,1004.2609964333333 -2009-09-08,1018.669983,1026.069946,1018.669983,1025.390015,5235160000,0.8844933872217187,1005.7013304999999 -2009-09-09,1025.359985,1036.339966,1023.969971,1033.369995,5202550000,0.7782385124942115,1007.4929971666667 -2009-09-10,1032.98999,1044.140015,1028.040039,1044.140015,5191380000,1.042223022935751,1009.7926635333333 -2009-09-11,1043.920044,1048.180054,1038.400024,1042.72998,4922600000,-0.135042712638489,1011.6586628666666 -2009-09-14,1040.150024,1049.73999,1035.0,1049.339966,4979610000,0.6339115712391763,1013.7206623999999 -2009-09-15,1049.030029,1056.040039,1043.420044,1052.630005,6185620000,0.3135341363715849,1015.3873290666667 -2009-09-16,1053.98999,1068.76001,1052.869995,1068.76001,6793530000,1.5323527662504777,1017.4909952666668 -2009-09-17,1067.869995,1074.77002,1061.199951,1065.48999,6668110000,-0.3059639179426199,1019.5833292333333 -2009-09-18,1066.599976,1071.52002,1064.27002,1068.300049,5607970000,0.26373396525292137,1021.9573303 -2009-09-21,1067.140015,1067.280029,1057.459961,1064.660034,4615280000,-0.3407296483237343,1023.7633321 -2009-09-22,1066.349976,1073.810059,1066.349976,1071.660034,5246600000,0.657486876228508,1025.9153340333332 -2009-09-23,1072.689941,1080.150024,1060.390015,1060.869995,5531930000,-1.0068527945122585,1028.132668 -2009-09-24,1062.560059,1066.290039,1045.849976,1050.780029,5505610000,-0.9511029671453786,1029.6316690333333 -2009-09-25,1049.47998,1053.469971,1041.170044,1044.380005,4507090000,-0.6090736237241545,1030.6866698666665 -2009-09-28,1045.380005,1065.130005,1045.380005,1062.97998,3726950000,1.7809585506187497,1032.6496683 -2009-09-29,1063.689941,1069.619995,1057.829956,1060.609985,4949900000,-0.22295763274864377,1035.3456684666667 -2009-09-30,1061.02002,1063.400024,1046.469971,1057.079956,5998860000,-0.33283007419546706,1037.5926675666667 -2009-10-01,1054.910034,1054.910034,1029.449951,1029.849976,5791450000,-2.5759621914541397,1038.7056660333335 -2009-10-02,1029.709961,1030.599976,1019.950012,1025.209961,5583240000,-0.45055251814658526,1039.3003315666667 -2009-10-05,1026.869995,1042.579956,1025.920044,1040.459961,4313310000,1.4875001785122244,1039.7779967666668 -2009-10-06,1042.02002,1060.550049,1042.02002,1054.719971,5029840000,1.3705486548751367,1040.7496642666667 -2009-10-07,1053.650024,1058.02002,1050.099976,1057.579956,4238220000,0.2711605998404032,1041.7356628 -2009-10-08,1060.030029,1070.670044,1060.030029,1065.47998,4988400000,0.7469907079063365,1042.9809956333334 -2009-10-09,1065.280029,1071.51001,1063.0,1071.48999,3763780000,0.5640659714694962,1044.3313293 -2009-10-12,1071.630005,1079.459961,1071.630005,1076.189941,3710430000,0.43863694890888816,1045.9066588666667 -2009-10-13,1074.959961,1075.300049,1066.709961,1073.189941,4320480000,-0.278761200575095,1047.6589904 -2009-10-14,1078.680054,1093.170044,1078.680054,1092.02002,5406420000,1.7545895913312348,1050.7916584666666 -2009-10-15,1090.359985,1096.560059,1086.410034,1096.560059,5369780000,0.41574686515362114,1054.1853271 -2009-10-16,1094.670044,1094.670044,1081.530029,1087.680054,4894740000,-0.8098056214174032,1056.9999959000002 -2009-10-19,1088.219971,1100.170044,1086.47998,1097.910034,4619240000,0.9405320951118679,1059.7169962333332 -2009-10-20,1098.640015,1098.640015,1086.160034,1091.060059,5396930000,-0.6239104104954429,1061.9059977000002 -2009-10-21,1090.359985,1101.359985,1080.77002,1081.400024,5616290000,-0.8853806827878619,1063.5069986666667 -2009-10-22,1080.959961,1095.209961,1074.310059,1092.910034,5192410000,1.0643619146063488,1065.1326659666668 -2009-10-23,1095.619995,1095.829956,1075.48999,1079.599976,4767460000,-1.217854863248513,1066.3616658333333 -2009-10-26,1080.359985,1091.75,1065.22998,1066.949951,6363380000,-1.1717326121911564,1066.9486653333333 -2009-10-27,1067.540039,1072.47998,1060.619995,1063.410034,5337380000,-0.3317791051662966,1067.3079996333333 -2009-10-28,1061.51001,1063.26001,1042.189941,1042.630005,6600350000,-1.9540937489404997,1066.4369994666665 -2009-10-29,1043.689941,1066.829956,1043.689941,1066.109985,5595040000,2.2519954238224837,1066.4576659666666 -2009-10-30,1065.410034,1065.410034,1033.380005,1036.189941,6512420000,-2.8064687903659347,1065.3873290333333 -2009-11-02,1036.180054,1052.180054,1029.380005,1042.880005,6202640000,0.6456407011192766,1064.6613280666666 -2009-11-03,1040.920044,1046.359985,1033.939941,1045.410034,5487500000,0.24260020212008016,1063.7863280666668 -2009-11-04,1047.140015,1061.0,1045.150024,1046.5,5635510000,0.10426205647076081,1063.3073282333332 -2009-11-05,1047.300049,1066.650024,1047.300049,1066.630005,4848350000,1.9235551839464904,1063.8356607666667 -2009-11-06,1064.949951,1071.47998,1059.319946,1069.300049,4277130000,0.2503252287563429,1064.6663289 -2009-11-09,1072.310059,1093.189941,1072.310059,1093.079956,4460030000,2.2238759852521106,1065.6696614333334 -2009-11-10,1091.859985,1096.420044,1087.400024,1093.01001,4394770000,-0.006398982948696563,1066.7496622666667 -2009-11-11,1096.040039,1105.369995,1093.810059,1098.51001,4286700000,0.5031975873670103,1068.1306640666667 -2009-11-12,1098.310059,1101.969971,1084.900024,1087.23999,4160250000,-1.0259369416214859,1070.0436645333332 -2009-11-13,1087.589966,1097.790039,1085.329956,1093.47998,3792610000,0.5739294044914578,1072.3193318333333 -2009-11-16,1094.130005,1113.689941,1094.130005,1109.300049,4565850000,1.446763478925317,1074.6140014333334 -2009-11-17,1109.219971,1110.52002,1102.189941,1110.319946,3824070000,0.09194058910566572,1076.4673339333333 -2009-11-18,1109.439941,1111.099976,1102.699951,1109.800049,4293340000,-0.046824071014228696,1078.2080037 -2009-11-19,1106.439941,1106.439941,1088.400024,1094.900024,4178030000,-1.3425864427944245,1079.1886718333333 -2009-11-20,1094.660034,1094.660034,1086.810059,1091.380005,3751230000,-0.3214922753531746,1079.8516723333332 -2009-11-23,1094.859985,1112.380005,1094.859985,1106.23999,3827920000,1.3615775377889605,1080.8533406333333 -2009-11-24,1105.829956,1107.560059,1097.630005,1105.650024,3700820000,-0.053330742454904545,1081.9353434 -2009-11-25,1106.48999,1111.180054,1104.75,1110.630005,3036350000,0.45041205552398544,1082.5556762333333 -2009-11-27,1105.469971,1105.469971,1083.73999,1091.48999,2362910000,-1.723347551734833,1082.3866739333332 -2009-11-30,1091.069946,1097.23999,1086.25,1095.630005,3895520000,0.3792994015455742,1082.6516723 -2009-12-01,1098.890015,1112.280029,1098.890015,1108.859985,4249310000,1.2075226070501932,1083.0166706666666 -2009-12-02,1109.030029,1115.579956,1105.290039,1109.23999,3941340000,0.03426988124204389,1083.6226683666666 -2009-12-03,1110.589966,1117.280029,1098.73999,1099.920044,4810030000,-0.8402100613051355,1084.2400023666667 -2009-12-04,1100.430054,1119.130005,1096.52002,1105.97998,5781140000,0.5509433192945945,1084.6756672333333 -2009-12-07,1105.52002,1110.719971,1100.829956,1103.25,4103360000,-0.24683810280182739,1085.4640013666667 -2009-12-08,1103.040039,1103.040039,1088.609985,1091.939941,4748030000,-1.0251583050079227,1086.2970010333333 -2009-12-09,1091.069946,1097.040039,1085.890015,1095.949951,4115410000,0.36723723067841885,1087.3816649333332 -2009-12-10,1098.689941,1106.25,1098.689941,1102.349976,3996490000,0.58397055396191,1089.3723306333334 -2009-12-11,1103.959961,1108.5,1101.339966,1106.410034,3791090000,0.3683093471578136,1090.7156656 -2009-12-14,1107.839966,1114.76001,1107.839966,1114.109985,4548490000,0.6959400912302405,1093.3130004000002 -2009-12-15,1114.109985,1114.109985,1105.349976,1107.930054,5045100000,-0.5546966711729162,1095.4813353666666 -2009-12-16,1108.609985,1116.209961,1107.959961,1109.180054,4829820000,0.11282300678523427,1097.6070026999998 -2009-12-17,1106.359985,1106.359985,1095.880005,1096.079956,7615070000,-1.1810614473959813,1099.2596679 -2009-12-18,1097.859985,1103.73999,1093.880005,1102.469971,6325890000,0.5829880352268724,1100.4543334333332 -2009-12-21,1105.310059,1117.680054,1105.310059,1114.050049,3977340000,1.0503758201682478,1101.9460001 -2009-12-22,1114.51001,1120.27002,1114.51001,1118.02002,3641130000,0.3563548157969665,1102.7773355666666 -2009-12-23,1118.839966,1121.579956,1116.0,1120.589966,3166870000,0.22986583013067108,1103.6966674333335 -2009-12-24,1121.079956,1126.47998,1121.079956,1126.47998,1267710000,0.5256172354482835,1104.6289997666668 -2009-12-28,1127.530029,1130.380005,1123.51001,1127.780029,2716400000,0.11540808741226094,1105.9803344 -2009-12-29,1128.550049,1130.380005,1126.079956,1126.199951,2491020000,-0.14010515875165774,1107.0710001 -2009-12-30,1125.530029,1126.420044,1121.939941,1126.420044,2277300000,0.019542977231035152,1107.6416666 -2009-12-31,1126.599976,1127.640015,1114.810059,1115.099976,2076990000,-1.0049597448391956,1107.8010009333334 -2010-01-04,1116.560059,1133.869995,1116.560059,1132.98999,3991400000,1.604341707922341,1108.5739989666665 -2010-01-05,1132.660034,1136.630005,1129.660034,1136.52002,2491020000,0.3115676247060106,1109.9613321666666 -2010-01-06,1135.709961,1139.189941,1133.949951,1137.140015,4972660000,0.05455205267743679,1111.4866658333333 -2010-01-07,1136.27002,1142.459961,1131.319946,1141.689941,5270680000,0.4001201206520033,1112.6683308666666 -2010-01-08,1140.52002,1145.390015,1136.219971,1144.97998,4389590000,0.28817272377106296,1113.9793294 -2010-01-11,1145.959961,1149.73999,1142.02002,1146.97998,4255780000,0.1746755432352698,1115.1909952333333 -2010-01-12,1143.810059,1143.810059,1131.77002,1136.219971,4716160000,-0.9381165484684484,1116.6819946 -2010-01-13,1137.310059,1148.400024,1133.180054,1145.680054,4170360000,0.8325925649479649,1118.3503295666667 -2010-01-14,1145.680054,1150.410034,1143.800049,1148.459961,3915200000,0.24264252400085784,1119.6703287666667 -2010-01-15,1147.719971,1147.77002,1131.390015,1136.030029,4758730000,-1.0823130472199405,1120.5633300666666 -2010-01-19,1136.030029,1150.449951,1135.77002,1150.22998,4724830000,1.2499626451335732,1122.2403279333334 -2010-01-20,1147.949951,1147.949951,1129.25,1138.040039,4810560000,-1.0597829314099472,1123.3089965666666 -2010-01-21,1138.680054,1141.579956,1114.839966,1116.47998,6874290000,-1.894490374780211,1123.7499959000002 -2010-01-22,1115.48999,1115.48999,1090.180054,1091.76001,6208650000,-2.2140988143826923,1123.7439982 -2010-01-25,1092.400024,1102.969971,1092.400024,1096.780029,4481390000,0.45980975251145306,1123.7716674666667 -2010-01-26,1095.800049,1103.689941,1089.859985,1092.170044,4731910000,-0.4203199254278256,1123.4323364000002 -2010-01-27,1091.939941,1099.51001,1083.109985,1097.5,5319120000,0.4880152160628315,1123.1353352666667 -2010-01-28,1096.930054,1100.219971,1078.459961,1084.530029,5452400000,-1.181774123006829,1122.1493367333335 -2010-01-29,1087.609985,1096.449951,1071.589966,1073.869995,5412850000,-0.9829173665047541,1121.0140014333333 -2010-02-01,1073.890015,1089.380005,1073.890015,1089.189941,4077610000,1.4266108627050356,1120.3476643333333 -2010-02-02,1090.050049,1104.72998,1087.959961,1103.319946,4749540000,1.2972948489615277,1120.5889973333333 -2010-02-03,1100.670044,1102.719971,1093.969971,1097.280029,4285450000,-0.5474311437853818,1120.4159992666669 -2010-02-04,1097.25,1097.25,1062.780029,1063.109985,5859690000,-3.114067794630382,1118.7179971333333 -2010-02-05,1064.119995,1067.130005,1044.5,1066.189941,6438900000,0.28971188714779217,1116.9903278333334 -2010-02-08,1065.51001,1071.199951,1056.51001,1056.73999,4089820000,-0.88632903356195,1114.8619953 -2010-02-09,1060.060059,1079.280029,1060.060059,1070.52002,5114260000,1.3040132984841302,1112.9966633 -2010-02-10,1069.680054,1073.670044,1059.339966,1068.130005,4251450000,-0.22325738476146606,1111.0083291666667 -2010-02-11,1067.099976,1080.040039,1060.589966,1078.469971,4400870000,0.9680437729113311,1109.4173298333333 -2010-02-12,1075.949951,1077.810059,1062.969971,1075.51001,4160680000,-0.27445928765688077,1107.7203287 -2010-02-16,1079.130005,1095.670044,1079.130005,1094.869995,4080770000,1.8000748314746184,1107.045996 -2010-02-17,1096.140015,1101.030029,1094.719971,1099.51001,4259230000,0.4237959777133149,1105.9299966666667 -2010-02-18,1099.030029,1108.23999,1097.47998,1106.75,3878620000,0.6584742234406749,1104.9376626666667 -2010-02-19,1105.48999,1112.420044,1100.800049,1109.170044,3944280000,0.21866220917099444,1104.0053303 -2010-02-22,1110.0,1112.290039,1105.380005,1108.01001,3814440000,-0.10458576719368784,1102.8826659333333 -2010-02-23,1107.48999,1108.579956,1092.180054,1094.599976,4521050000,-1.210280943219999,1101.2033324666666 -2010-02-24,1095.890015,1106.420044,1095.5,1105.23999,4168360000,0.9720458828148315,1099.8119994666667 -2010-02-25,1101.23999,1103.5,1086.02002,1102.939941,4521130000,-0.20810403358639817,1098.7026651333333 -2010-02-26,1103.099976,1107.23999,1097.560059,1104.48999,3945190000,0.1405379334249668,1097.329663 -2010-03-01,1105.359985,1116.109985,1105.359985,1115.709961,3847640000,1.0158508543839373,1096.2379963333333 -2010-03-02,1117.01001,1123.459961,1116.51001,1118.310059,4134680000,0.2330442579959957,1095.6473306666667 -2010-03-03,1119.359985,1125.640015,1116.579956,1118.790039,3951320000,0.04292011827464748,1094.5993326333332 -2010-03-04,1119.119995,1123.72998,1116.660034,1122.969971,3945010000,0.37361183549113886,1094.0969970333333 -2010-03-05,1125.119995,1139.380005,1125.119995,1138.699951,4133000000,1.4007480525942029,1094.8376627333334 -2010-03-08,1138.400024,1141.050049,1136.77002,1138.5,3774680000,-0.01755958624785059,1096.3956624 -2010-03-09,1137.560059,1145.369995,1134.900024,1140.449951,5185570000,0.1712736934563086,1097.8513264666665 -2010-03-10,1140.219971,1148.26001,1140.089966,1145.609985,5469120000,0.45245597980652086,1099.6326578333333 -2010-03-11,1143.959961,1150.23999,1138.98999,1150.23999,4669060000,0.40415194181464553,1101.3906575 -2010-03-12,1151.709961,1153.410034,1146.969971,1149.98999,4928160000,-0.021734594708366917,1103.5726562000002 -2010-03-15,1148.530029,1150.97998,1141.449951,1150.51001,4164110000,0.04521952404124008,1106.1273233666666 -2010-03-16,1150.829956,1160.280029,1150.349976,1159.459961,4369770000,0.7779116150410603,1108.4696573666668 -2010-03-17,1159.939941,1169.839966,1159.939941,1166.209961,4963200000,0.5821675803430404,1110.5659912 -2010-03-18,1166.130005,1167.77002,1161.160034,1165.829956,4234510000,-0.03258461278053959,1112.8509887666667 -2010-03-19,1166.680054,1169.199951,1155.329956,1159.900024,5212410000,-0.5086446757935237,1116.0773234 -2010-03-22,1157.25,1167.819946,1152.880005,1165.810059,4261680000,0.5095296902933644,1119.397994 -2010-03-23,1166.469971,1174.719971,1163.829956,1174.170044,4411640000,0.7170966604260531,1123.3123291333332 -2010-03-24,1172.699951,1173.040039,1166.01001,1167.719971,4705750000,-0.5493304000523391,1126.5523275 -2010-03-25,1170.030029,1180.689941,1165.089966,1165.72998,5668900000,-0.17041679935436704,1129.8056600000002 -2010-03-26,1167.579956,1173.930054,1161.47998,1166.589966,4708420000,0.07377231560947717,1132.7429931666668 -2010-03-29,1167.709961,1174.849976,1167.709961,1173.219971,4375580000,0.5683235063929981,1135.9999918666667 -2010-03-30,1173.75,1177.829956,1168.920044,1173.27002,4085000000,0.00426595193032675,1138.6133260333334 -2010-03-31,1171.75,1174.560059,1165.77002,1169.430054,4484340000,-0.32728749005279667,1140.9439941666667 -2010-04-01,1171.22998,1181.430054,1170.689941,1178.099976,4006870000,0.7413801253306929,1143.3223266999998 -2010-04-05,1178.709961,1187.72998,1178.709961,1187.439941,3881620000,0.7927990145379704,1145.9313232666668 -2010-04-06,1186.01001,1191.800049,1182.77002,1189.439941,4086180000,0.16842957112557233,1148.6456543 -2010-04-07,1188.22998,1189.599976,1177.25,1182.449951,5101430000,-0.5876706977002377,1151.5739868000003 -2010-04-08,1181.75,1188.550049,1175.119995,1186.439941,4726970000,0.3374341549615467,1154.2806518333334 -2010-04-09,1187.469971,1194.660034,1187.150024,1194.369995,4511570000,0.6683906808899298,1157.3283202999999 -2010-04-12,1194.939941,1199.199951,1194.709961,1196.47998,4607090000,0.17666091821069152,1160.3946533 -2010-04-13,1195.939941,1199.040039,1188.819946,1197.300049,5403580000,0.06854013553991845,1163.1143229000002 -2010-04-14,1198.689941,1210.650024,1198.689941,1210.650024,5760040000,1.115006636068383,1166.192321733333 -2010-04-15,1210.77002,1213.920044,1208.5,1211.670044,5995330000,0.08425391151687389,1169.2883219 -2010-04-16,1210.170044,1210.170044,1186.77002,1192.130005,8108470000,-1.6126534692145977,1171.5936563666667 -2010-04-19,1192.060059,1197.869995,1183.680054,1197.52002,6597740000,0.4521331547225005,1173.5543253333333 -2010-04-20,1199.040039,1208.579956,1199.040039,1207.170044,5316590000,0.8058340435928679,1175.8433267999999 -2010-04-21,1207.160034,1210.98999,1198.849976,1205.939941,5724310000,-0.10189972871791353,1178.026326466667 -2010-04-22,1202.52002,1210.27002,1190.189941,1208.670044,6035780000,0.2263879739927921,1180.1283284333333 -2010-04-23,1207.869995,1217.280029,1205.099976,1217.280029,5326060000,0.7123519808190037,1182.3629964 -2010-04-26,1217.069946,1219.800049,1211.069946,1212.050049,5647760000,-0.42964477157293457,1184.4316650333333 -2010-04-27,1209.920044,1211.380005,1181.619995,1183.709961,7454540000,-2.3381945344073785,1185.5383300666665 -2010-04-28,1184.589966,1195.050049,1181.810059,1191.359985,6342310000,0.6462752069381406,1186.6016642 -2010-04-29,1193.300049,1209.359985,1193.300049,1206.780029,6059410000,1.2943228070565027,1187.9539998 -2010-04-30,1206.77002,1207.98999,1186.319946,1186.689941,6048260000,-1.664768020452545,1188.6493326333334 -2010-05-03,1188.579956,1205.130005,1188.579956,1202.26001,4938050000,1.312058732618837,1190.0613321666667 -2010-05-04,1197.5,1197.5,1168.119995,1173.599976,6594720000,-2.3838465690961486,1190.3209960666668 -2010-05-05,1169.23999,1175.949951,1158.150024,1165.869995,6795940000,-0.6586555179002418,1190.0443277666666 -2010-05-06,1164.380005,1167.579956,1065.790039,1128.150024,10617810000,-3.235349666924059,1188.7253295333333 -2010-05-07,1127.040039,1135.130005,1094.150024,1110.880005,9472910000,-1.530826453273204,1186.8969970333333 -2010-05-10,1122.27002,1163.849976,1122.27002,1159.72998,6893700000,4.397412391989186,1186.6683308333334 -2010-05-11,1156.390015,1170.47998,1147.709961,1155.790039,5842550000,-0.3397291669566149,1186.0873331 -2010-05-12,1155.430054,1172.869995,1155.430054,1171.670044,5225460000,1.3739524017476024,1186.0340005666667 -2010-05-13,1170.040039,1173.569946,1156.140015,1157.439941,4870640000,-1.2145145361418752,1185.6343301333332 -2010-05-14,1157.189941,1157.189941,1126.140015,1135.680054,6126400000,-1.8800013917957714,1184.2203327333334 -2010-05-17,1136.52002,1141.880005,1114.959961,1136.939941,5922920000,0.1109367903013414,1182.5369993999998 -2010-05-18,1138.780029,1148.660034,1117.199951,1120.800049,6170840000,-1.4195905533764819,1180.2490030000001 -2010-05-19,1119.569946,1124.27002,1100.660034,1115.050049,6765800000,-0.5130263872784702,1178.0023396 -2010-05-20,1107.339966,1107.339966,1071.579956,1071.589966,8328570000,-3.897590340359691,1174.1740071 -2010-05-21,1067.26001,1090.160034,1055.900024,1087.689941,5452130000,1.5024380136833049,1170.6180052999998 -2010-05-24,1084.780029,1089.949951,1072.699951,1073.650024,5224040000,-1.290801401279118,1166.5236734333334 -2010-05-25,1067.420044,1074.75,1040.780029,1074.030029,7329580000,0.03539374949987906,1162.4146727666666 -2010-05-26,1075.51001,1090.75,1065.589966,1067.949951,4521050000,-0.5660994418993037,1157.658003666667 -2010-05-27,1074.27002,1103.52002,1074.27002,1103.060059,5698460000,3.2876173613869852,1154.037670833333 -2010-05-28,1102.589966,1102.589966,1084.780029,1089.410034,4871210000,-1.2374688838225678,1150.6136718 -2010-06-01,1087.300049,1094.77002,1069.890015,1070.709961,5271480000,-1.7165321060371275,1146.3866698333334 -2010-06-02,1073.01001,1098.560059,1072.030029,1098.380005,5026360000,2.5842707182958558,1142.7603352 -2010-06-03,1098.819946,1105.670044,1091.810059,1102.829956,4995970000,0.4051376554328412,1139.3233357 -2010-06-04,1098.430054,1098.430054,1060.5,1064.880005,6180580000,-3.441142561782218,1134.5303344 -2010-06-07,1065.839966,1071.359985,1049.859985,1050.469971,5467560000,-1.3532073033900138,1128.9699991333332 -2010-06-08,1050.810059,1063.150024,1042.170044,1062.0,6192750000,1.0976067206398987,1123.9683308333333 -2010-06-09,1062.75,1077.73999,1052.25,1055.689941,5983200000,-0.5941675141242886,1119.7009968333334 -2010-06-10,1058.77002,1087.849976,1058.77002,1086.839966,5144780000,2.9506793415586596,1116.2169962 -2010-06-11,1082.650024,1092.25,1077.119995,1091.599976,4059280000,0.4379678838567713,1112.3776611 -2010-06-14,1095.0,1105.910034,1089.030029,1089.630005,4425830000,-0.18046638359398015,1109.1423299 -2010-06-15,1091.209961,1115.589966,1091.209961,1115.22998,4644490000,2.34941905807744,1106.2413288999999 -2010-06-16,1114.02002,1118.73999,1107.130005,1114.609985,5002600000,-0.055593466022141325,1104.2749958666668 -2010-06-17,1115.97998,1117.719971,1105.869995,1116.040039,4557760000,0.12830084237940298,1102.6139973333334 -2010-06-18,1116.160034,1121.01001,1113.930054,1117.51001,4555360000,0.13171310603847797,1102.2593302 -2010-06-21,1122.790039,1131.22998,1108.23999,1113.199951,4514360000,-0.38568415150034285,1102.3366617333334 -2010-06-22,1113.900024,1118.5,1094.180054,1095.310059,4514380000,-1.6070690610370142,1100.1893310333332 -2010-06-23,1095.569946,1099.640015,1085.310059,1092.040039,4526150000,-0.2985474271080313,1098.0643310333332 -2010-06-24,1090.930054,1090.930054,1071.599976,1073.689941,4814830000,-1.6803502934565784,1094.7983276 -2010-06-25,1075.099976,1083.560059,1067.890015,1076.76001,5128840000,0.28593627291884083,1092.1089965666665 -2010-06-28,1077.5,1082.599976,1071.449951,1074.569946,3896410000,-0.203393883470826,1090.0719929666668 -2010-06-29,1071.099976,1071.099976,1035.180054,1041.23999,6136700000,-3.1017018598061608,1086.8819945999999 -2010-06-30,1040.560059,1048.079956,1028.329956,1030.709961,5067080000,-1.0112970209682381,1083.8789916666667 -2010-07-01,1031.099976,1033.579956,1010.909973,1027.369995,6435770000,-0.3240451850062165,1080.9563232 -2010-07-02,1027.650024,1032.949951,1015.929993,1022.580017,3968500000,-0.4662368984213905,1079.3226582333334 -2010-07-06,1028.089966,1042.5,1018.349976,1028.060059,4691240000,0.5359034900835447,1077.3349955 -2010-07-07,1028.540039,1060.890015,1028.540039,1060.27002,4931220000,3.1330816442115994,1076.8889953666667 -2010-07-08,1062.920044,1071.25,1058.23999,1070.25,4548460000,0.9412677725245899,1076.7629944 -2010-07-09,1070.5,1078.160034,1068.099976,1077.959961,3506570000,0.7203887876664261,1077.0966614000001 -2010-07-12,1077.22998,1080.780029,1070.449951,1078.75,3426990000,0.0732901989483059,1076.2863261 -2010-07-13,1080.650024,1099.459961,1080.650024,1095.339966,4640460000,1.5378879258400868,1076.4839905000001 -2010-07-14,1095.609985,1099.079956,1087.680054,1095.170044,4521050000,-0.01551317447318068,1077.2993266 -2010-07-15,1094.459961,1098.660034,1080.530029,1096.47998,4552470000,0.11961028400810925,1077.2359924333334 -2010-07-16,1093.849976,1093.849976,1063.319946,1064.880005,5297350000,-2.8819472837069093,1075.9709940666667 -2010-07-19,1066.849976,1074.699951,1061.109985,1071.25,4089500000,0.5981889950126273,1076.1833272333333 -2010-07-20,1064.530029,1083.939941,1056.880005,1083.47998,4713280000,1.141655075845982,1077.2836608666667 -2010-07-21,1086.670044,1088.959961,1065.25,1069.589966,4747180000,-1.2819816015428365,1077.5366597333334 -2010-07-22,1072.140015,1097.5,1072.140015,1093.670044,4826900000,2.2513373129380954,1078.8026631666667 -2010-07-23,1092.170044,1103.72998,1087.880005,1102.660034,4524570000,0.8220020333664868,1079.3299987666667 -2010-07-26,1102.890015,1115.01001,1101.300049,1115.01001,4009650000,1.1200166523855248,1080.1103332333334 -2010-07-27,1117.359985,1120.949951,1109.780029,1113.839966,4725690000,-0.10493573954550861,1080.9173319333333 -2010-07-28,1112.839966,1114.660034,1103.109985,1106.130005,4002390000,-0.6921964766345989,1080.6139994333332 -2010-07-29,1108.069946,1115.900024,1092.819946,1101.530029,4612420000,-0.4158621481387237,1080.1780009 -2010-07-30,1098.439941,1106.439941,1088.01001,1101.599976,4006450000,0.006349985761477939,1079.6966654666667 -2010-08-02,1107.530029,1127.300049,1107.530029,1125.859985,4144180000,2.2022521358515457,1079.9749979666667 -2010-08-03,1125.339966,1125.439941,1116.76001,1120.459961,4071820000,-0.47963548504657005,1080.2169983 -2010-08-04,1121.060059,1128.75,1119.459961,1127.23999,4057850000,0.6051112253889768,1081.2813293333334 -2010-08-05,1125.780029,1126.560059,1118.810059,1125.810059,3685560000,-0.12685240167891187,1082.4069966666668 -2010-08-06,1122.069946,1123.060059,1107.170044,1121.640015,3857890000,-0.37040386756750365,1084.0053324666667 -2010-08-09,1122.800049,1129.23999,1120.910034,1127.790039,3979360000,0.5483064011406524,1085.7063334333334 -2010-08-10,1122.920044,1127.160034,1111.579956,1121.060059,3979360000,-0.5967405072993426,1087.2560038666666 -2010-08-11,1116.890015,1116.890015,1088.550049,1089.469971,4511860000,-2.817876504152572,1088.8636699 -2010-08-12,1081.47998,1086.719971,1076.689941,1083.609985,4521050000,-0.5378749443292308,1090.6270040333334 -2010-08-13,1082.219971,1086.25,1079.0,1079.25,3328890000,-0.40235740352650984,1092.3563375333333 -2010-08-16,1077.48999,1082.619995,1069.48999,1079.380005,3142450000,0.012045865184151516,1094.2496704666667 -2010-08-17,1081.160034,1100.140015,1081.160034,1092.540039,3968210000,1.2192215845243437,1096.3990031333333 -2010-08-18,1092.079956,1099.77002,1085.76001,1094.160034,3724260000,0.14827786096358597,1097.5286702666667 -2010-08-19,1092.439941,1092.439941,1070.660034,1075.630005,4290540000,-1.6935391920922638,1097.7080037666667 -2010-08-20,1075.630005,1075.630005,1063.910034,1071.689941,3761570000,-0.36630290914949626,1097.4990031 -2010-08-23,1073.359985,1081.579956,1067.079956,1067.359985,3210950000,-0.40403066543293065,1097.1193359333333 -2010-08-24,1063.199951,1063.199951,1046.680054,1051.869995,4436330000,-1.4512432747795012,1095.6703369 -2010-08-25,1048.97998,1059.380005,1039.829956,1055.329956,4360190000,0.32893428051439244,1094.3423339666667 -2010-08-26,1056.280029,1061.449951,1045.400024,1047.219971,3646710000,-0.7684786122000409,1092.7003336666667 -2010-08-27,1049.27002,1065.209961,1039.699951,1064.589966,4102460000,1.6586768282706776,1092.6906657 -2010-08-30,1062.900024,1064.400024,1048.790039,1048.920044,2917990000,-1.471920880381472,1091.9463338333333 -2010-08-31,1046.880005,1055.140015,1040.880005,1049.329956,4038770000,0.03907943244529921,1090.8079997 -2010-09-01,1049.719971,1081.300049,1049.719971,1080.290039,4396880000,2.950462132808873,1091.1646688 -2010-09-02,1080.660034,1090.099976,1080.390015,1090.099976,3704210000,0.9080836299370842,1091.0456665333334 -2010-09-03,1093.609985,1105.099976,1093.609985,1104.51001,3534500000,1.321900221746275,1091.1073324 -2010-09-07,1102.599976,1102.599976,1091.150024,1091.839966,3107380000,-1.1471189835572382,1090.3349976 -2010-09-08,1092.359985,1103.26001,1092.359985,1098.869995,3224640000,0.6438699094112543,1089.8359985666668 -2010-09-09,1101.150024,1110.27002,1101.150024,1104.180054,3387770000,0.4832290465807132,1089.7710002 -2010-09-10,1104.569946,1110.880005,1103.920044,1109.550049,3061160000,0.48633327332319176,1090.0383342 -2010-09-13,1113.380005,1123.869995,1113.380005,1121.900024,4521050000,1.1130615523951004,1090.7150024666666 -2010-09-14,1121.160034,1127.359985,1115.579956,1121.099976,4521050000,-0.07131188010386369,1090.5563355 -2010-09-15,1119.430054,1126.459961,1114.630005,1125.069946,3369840000,0.3541138243678077,1090.7100016666666 -2010-09-16,1123.890015,1125.439941,1118.880005,1124.660034,3364080000,-0.03643435694442587,1090.6240031333332 -2010-09-17,1126.390015,1131.469971,1122.430054,1125.589966,4086140000,0.08268560915183354,1090.6166667 -2010-09-20,1126.569946,1144.859985,1126.569946,1142.709961,3364080000,1.5209797099417388,1091.3189982333333 -2010-09-21,1142.819946,1148.589966,1136.219971,1139.780029,4175660000,-0.2564020705163039,1091.7186645666666 -2010-09-22,1139.48999,1144.380005,1131.579956,1134.280029,3911070000,-0.48254925161528295,1092.1593302333333 -2010-09-23,1131.099976,1136.77002,1122.790039,1124.829956,3847850000,-0.8331340373092244,1093.3379964 -2010-09-24,1131.689941,1148.900024,1131.689941,1148.670044,4123950000,2.1194392870525602,1095.5066650333333 -2010-09-27,1148.640015,1149.920044,1142.0,1142.160034,3587860000,-0.5667432552981189,1097.6036661666667 -2010-09-28,1142.310059,1150.0,1132.089966,1147.699951,4025840000,0.48503859661404025,1099.8809976999999 -2010-09-29,1146.75,1148.630005,1140.26001,1144.72998,3990280000,-0.25877591067353656,1101.6206624 -2010-09-30,1145.969971,1157.160034,1136.079956,1141.199951,4284160000,-0.30837219795710746,1103.1886596333331 -2010-10-01,1143.48999,1150.300049,1139.420044,1146.23999,4298910000,0.4416438149671853,1105.5423258 -2010-10-04,1144.959961,1148.160034,1131.869995,1137.030029,3604110000,-0.8034932544972562,1107.7203287333332 -2010-10-05,1140.680054,1162.76001,1140.680054,1160.75,4068840000,2.0861340857339927,1110.8333292333334 -2010-10-06,1159.810059,1162.329956,1154.849976,1159.969971,4073160000,-0.06720043075597593,1114.4366617666667 -2010-10-07,1161.569946,1163.869995,1151.410034,1158.060059,3910550000,-0.16465184856065962,1117.8609985333335 -2010-10-08,1158.359985,1167.72998,1155.579956,1165.150024,3871420000,0.6122277462986103,1121.7920003 -2010-10-11,1165.319946,1168.680054,1162.02002,1165.319946,2505900000,0.014583701368908741,1125.1496663 -2010-10-12,1164.280029,1172.579956,1155.709961,1169.77002,4076170000,0.3818757256558447,1129.1779988333333 -2010-10-13,1171.319946,1184.380005,1171.319946,1178.099976,4969410000,0.7121020249775345,1133.4703328333335 -2010-10-14,1177.819946,1178.890015,1166.709961,1173.810059,4969410000,-0.36413862043912504,1136.5876668333333 -2010-10-15,1177.469971,1181.199951,1167.119995,1176.189941,5724910000,0.2027484755095399,1139.4573323333336 -2010-10-18,1176.829956,1185.530029,1174.550049,1184.709961,4450050000,0.7243744996455304,1142.1306640333335 -2010-10-19,1178.640015,1178.640015,1159.709961,1165.900024,5600120000,-1.5877250651393782,1144.5993326333332 -2010-10-20,1166.73999,1182.939941,1166.73999,1178.170044,5027880000,1.0524075604616323,1147.2426676 -2010-10-21,1179.819946,1189.430054,1171.170044,1180.26001,4625470000,0.17739086226504774,1149.7786661333334 -2010-10-22,1180.52002,1183.930054,1178.98999,1183.079956,3177890000,0.23892582787754524,1152.2296630333333 -2010-10-25,1184.73999,1196.140015,1184.73999,1185.619995,4221380000,0.21469715441615467,1154.3536620666666 -2010-10-26,1184.880005,1187.109985,1177.719971,1185.640015,4203680000,0.001688568013724634,1156.5049967000002 -2010-10-27,1183.839966,1183.839966,1171.699951,1182.449951,4335670000,-0.26905839543547305,1158.417663533333 -2010-10-28,1184.469971,1189.530029,1177.099976,1183.780029,4283460000,0.11248493002813387,1160.3883300333332 -2010-10-29,1183.869995,1185.459961,1179.699951,1183.26001,3537880000,-0.0439286849972742,1162.3106648333332 -2010-11-01,1185.709961,1195.810059,1177.650024,1184.380005,4129180000,0.09465332982900865,1163.6996662999998 -2010-11-02,1187.859985,1195.880005,1187.859985,1193.569946,3866200000,0.7759284149684742,1165.4926635333331 -2010-11-03,1193.790039,1198.300049,1183.560059,1197.959961,4665480000,0.36780542394789784,1167.6153279333334 -2010-11-04,1198.339966,1221.25,1198.339966,1221.060059,5695470000,1.928286316073291,1170.8229980333335 -2010-11-05,1221.199951,1227.079956,1220.290039,1225.849976,5637460000,0.3922752992119749,1173.3956624333334 -2010-11-08,1223.23999,1224.569946,1217.550049,1223.25,3937230000,-0.2120957744343066,1176.0986613 -2010-11-09,1223.589966,1226.839966,1208.939941,1213.400024,4848040000,-0.8052300020437331,1178.2886637333334 -2010-11-10,1213.140015,1218.75,1204.329956,1218.709961,4561300000,0.4376081172716262,1180.7546631 -2010-11-11,1213.040039,1215.449951,1204.48999,1213.540039,3931120000,-0.4242126646571309,1183.1659993666667 -2010-11-12,1209.069946,1210.5,1194.079956,1199.209961,4213620000,-1.1808492130023551,1184.9316650666665 -2010-11-15,1200.439941,1207.430054,1197.150024,1197.75,3503370000,-0.1217435684725765,1186.9556640999997 -2010-11-16,1194.790039,1194.790039,1173.0,1178.339966,5116380000,-1.620541348361515,1187.5419963 -2010-11-17,1178.329956,1183.560059,1175.819946,1178.589966,3904780000,0.02121628793163577,1188.1626628000001 -2010-11-18,1183.75,1200.290039,1183.75,1196.689941,4687260000,1.5357312994466854,1189.4503255333334 -2010-11-19,1196.119995,1199.969971,1189.439941,1199.72998,3675390000,0.2540373154185316,1190.6029907333334 -2010-11-22,1198.069946,1198.939941,1184.579956,1197.839966,3689500000,-0.1575366150306623,1191.6869914000001 -2010-11-23,1192.51001,1192.51001,1176.910034,1180.72998,4133070000,-1.42840333313774,1192.0523234 -2010-11-24,1183.699951,1198.619995,1183.699951,1198.349976,3384250000,1.492296824715167,1192.7273233999997 -2010-11-26,1194.160034,1194.160034,1186.930054,1189.400024,1613820000,-0.7468562756494768,1193.2469889 -2010-11-29,1189.079956,1190.339966,1173.640015,1187.76001,3673450000,-0.13788582200331412,1193.6326578666665 -2010-11-30,1182.959961,1187.400024,1174.140015,1180.550049,4284700000,-0.6070216996108546,1193.4939941333334 -2010-12-01,1186.599976,1207.609985,1186.599976,1206.069946,4548110000,2.161695475902703,1194.8329915333334 -2010-12-02,1206.810059,1221.890015,1206.810059,1221.530029,4970800000,1.2818562514781418,1196.2783243666668 -2010-12-03,1219.930054,1225.569946,1216.819946,1224.709961,3735780000,0.26032368623825075,1197.7599894 -2010-12-06,1223.869995,1225.800049,1220.670044,1223.119995,3527370000,-0.1298238808069896,1199.0946573666668 -2010-12-07,1227.25,1235.050049,1223.25,1223.75,6970630000,0.051508028858604504,1200.3656575333334 -2010-12-08,1225.02002,1228.930054,1219.5,1228.280029,4607590000,0.3701760163432155,1201.7869913333334 -2010-12-09,1230.140015,1234.709961,1226.849976,1233.0,4522510000,0.38427483054028766,1203.471992966667 -2010-12-10,1233.849976,1240.400024,1232.579956,1240.400024,4547310000,0.6001641524736367,1205.3593261333333 -2010-12-13,1242.52002,1246.72998,1240.339966,1240.459961,4361240000,0.004832070206406414,1207.2659911666667 -2010-12-14,1241.839966,1246.589966,1238.170044,1241.589966,4132350000,0.09109564480331844,1209.1729898666667 -2010-12-15,1241.579956,1244.25,1234.01001,1235.22998,4407340000,-0.512245280178103,1210.5616576666666 -2010-12-16,1236.339966,1243.75,1232.849976,1242.869995,4736820000,0.6185095183651512,1212.0586588 -2010-12-17,1243.630005,1245.810059,1239.869995,1243.910034,4632470000,0.08368043352755539,1212.8203246333333 -2010-12-20,1245.76001,1250.199951,1241.51001,1247.079956,3548140000,0.2548353107022283,1213.5279906333333 -2010-12-21,1249.430054,1255.819946,1249.430054,1254.599976,3479670000,0.6030102531773718,1214.5729898333334 -2010-12-22,1254.939941,1259.390015,1254.939941,1258.839966,1285590000,0.33795553013784563,1216.0876545666665 -2010-12-23,1257.530029,1258.589966,1254.050049,1256.77002,2515020000,-0.16443281560064582,1217.3563232000001 -2010-12-27,1254.660034,1258.430054,1251.47998,1257.540039,1992470000,0.06126968241970676,1218.8229898666664 -2010-12-28,1259.099976,1259.900024,1256.219971,1258.51001,2478450000,0.07713241486699829,1220.7996581666669 -2010-12-29,1258.780029,1262.599976,1258.780029,1259.780029,2214380000,0.10091449332214619,1222.8673258000001 -2010-12-30,1259.439941,1261.089966,1256.319946,1257.880005,1970720000,-0.1508218860643673,1225.5186604333333 -2010-12-31,1256.76001,1259.339966,1254.189941,1257.640015,1799770000,-0.0190789263718405,1228.1536620666666 -2011-01-03,1257.619995,1276.170044,1257.619995,1271.869995,4286670000,1.131482763770042,1230.6596638666667 -2011-01-04,1272.949951,1274.119995,1262.660034,1270.199951,4796420000,-0.13130618746926004,1233.0086629 -2011-01-05,1268.780029,1277.630005,1265.359985,1276.560059,4764920000,0.5007170717486353,1235.632666 -2011-01-06,1276.290039,1278.170044,1270.430054,1273.849976,4844100000,-0.212295769469939,1238.7366658666665 -2011-01-07,1274.410034,1276.829956,1261.699951,1271.5,4963110000,-0.18447823874668812,1241.175 -2011-01-10,1270.839966,1271.52002,1262.180054,1269.75,4036450000,-0.1376327172630698,1243.8533325333333 -2011-01-11,1272.579956,1277.25,1269.619995,1274.47998,4050750000,0.3725126993502803,1246.7439982 -2011-01-12,1275.650024,1286.869995,1275.650024,1285.959961,4226940000,0.9007580487847333,1250.2576619333333 -2011-01-13,1285.780029,1286.699951,1280.469971,1283.76001,4310840000,-0.17107461093028853,1252.8473307333334 -2011-01-14,1282.900024,1293.23999,1281.23999,1293.23999,4661590000,0.7384542224523782,1255.2376627666667 -2011-01-18,1293.219971,1296.060059,1290.160034,1295.02002,5284990000,0.13764111949552404,1257.5813314 -2011-01-19,1294.52002,1294.599976,1278.920044,1281.920044,4743710000,-1.0115655200450102,1259.5413330333333 -2011-01-20,1280.849976,1283.349976,1271.26001,1280.26001,4935320000,-0.12949590793667198,1261.4250000333334 -2011-01-21,1283.630005,1291.209961,1282.069946,1283.349976,4935320000,0.241354566718055,1263.2606649333331 -2011-01-24,1283.290039,1291.930054,1282.469971,1290.839966,3902470000,0.5836280157455631,1265.1886637999999 -2011-01-25,1288.170044,1291.26001,1281.069946,1291.180054,4595380000,0.026346255845632882,1266.8813314666668 -2011-01-26,1291.969971,1299.73999,1291.969971,1296.630005,4730980000,0.42209070556167294,1268.7536662666669 -2011-01-27,1297.51001,1301.290039,1294.410034,1299.540039,4309190000,0.22443056143837126,1270.6853353666668 -2011-01-28,1299.630005,1302.670044,1275.099976,1276.339966,5618630000,-1.7852526512266986,1272.0556682333333 -2011-01-31,1276.5,1287.170044,1276.5,1286.119995,4167160000,0.7662557986529484,1273.4973349 -2011-02-01,1289.140015,1308.859985,1289.140015,1307.589966,5164500000,1.6693598640459717,1275.6199993 -2011-02-02,1305.910034,1307.609985,1302.619995,1304.030029,4098260000,-0.272251783247468,1277.5183350666669 -2011-02-03,1302.77002,1308.599976,1294.829956,1307.099976,4370990000,0.23541996209659466,1279.2683350666666 -2011-02-04,1307.01001,1311.0,1301.670044,1310.869995,3925950000,0.2884262159912998,1281.0026693666666 -2011-02-07,1311.849976,1322.849976,1311.849976,1319.050049,3902270000,0.624017181810621,1283.0786703333333 -2011-02-08,1318.76001,1324.869995,1316.030029,1324.569946,3881530000,0.41847517493251996,1285.313000566667 -2011-02-09,1322.47998,1324.540039,1314.890015,1320.880005,3922240000,-0.278576530529262,1287.3920004 -2011-02-10,1318.130005,1322.780029,1311.73999,1321.869995,4184610000,0.0749492759563708,1289.4616659333333 -2011-02-11,1318.660034,1330.790039,1316.079956,1329.150024,4219300000,0.5507371396231697,1291.837333233333 -2011-02-14,1328.72998,1332.959961,1326.900024,1332.319946,3567040000,0.23849241566127333,1294.3266642666667 -2011-02-15,1330.430054,1330.430054,1324.609985,1328.01001,3926860000,-0.32349106631179847,1296.1979981 -2011-02-16,1329.51001,1337.609985,1329.51001,1336.319946,1966450000,0.6257434761353986,1298.4019979333332 -2011-02-17,1334.369995,1341.5,1331.0,1340.430054,1966450000,0.3075691575436412,1300.5309977666666 -2011-02-18,1340.380005,1344.069946,1338.119995,1343.01001,1162310000,0.19247225860843376,1302.8363322333332 -2011-02-22,1338.910034,1338.910034,1312.329956,1315.439941,1322780000,-2.052856553168947,1304.3009969333334 -2011-02-23,1315.439941,1317.910034,1299.550049,1307.400024,1330340000,-0.6111960530777338,1305.5559977333335 -2011-02-24,1307.089966,1310.910034,1294.26001,1306.099976,1222900000,-0.09943766071095483,1306.6099976 -2011-02-25,1307.339966,1320.609985,1307.339966,1319.880005,3836030000,1.0550516233988505,1307.7406657333333 -2011-02-28,1321.609985,1329.380005,1320.550049,1327.219971,1252850000,0.5561085835223301,1309.1893311 -2011-03-01,1328.640015,1332.089966,1306.140015,1306.329956,1180420000,-1.573967801604148,1309.6256633 -2011-03-02,1305.469971,1314.189941,1302.579956,1308.439941,1025000000,0.16152006545580022,1310.0729939999999 -2011-03-03,1312.369995,1332.280029,1312.369995,1330.969971,4340470000,1.7219002029837727,1311.7079915666666 -2011-03-04,1330.72998,1331.079956,1312.589966,1321.150024,4223740000,-0.7378037982796792,1313.0709920333331 -2011-03-07,1322.719971,1327.680054,1303.98999,1310.130005,3964730000,-0.8341232108246999,1313.9636596666667 -2011-03-08,1311.050049,1325.73999,1306.859985,1321.819946,4531420000,0.892273358780149,1314.9963256666667 -2011-03-09,1319.920044,1323.209961,1312.27002,1320.02002,3709520000,-0.1361702859339453,1315.9576578666665 -2011-03-10,1315.719971,1315.719971,1294.209961,1295.109985,4723020000,-1.8870952426918386,1315.9069905333333 -2011-03-11,1293.430054,1308.349976,1291.98999,1304.280029,3740400000,0.7080513706332114,1316.0649902 -2011-03-14,1301.189941,1301.189941,1286.369995,1296.390015,4050370000,-0.6049325163745234,1316.7333251666666 -2011-03-15,1288.459961,1288.459961,1261.119995,1281.869995,5201400000,-1.1200348530916449,1316.5916585 -2011-03-16,1279.459961,1280.910034,1249.050049,1256.880005,5833000000,-1.9494948861799366,1314.9013264666667 -2011-03-17,1261.609985,1278.880005,1261.609985,1273.719971,4134950000,1.3398228894571318,1313.8909911999997 -2011-03-18,1276.709961,1288.880005,1276.180054,1279.209961,4685500000,0.4310201712304007,1312.9613240333333 -2011-03-21,1281.650024,1300.579956,1281.650024,1298.380005,4223730000,1.4985846408680281,1312.5449910333334 -2011-03-22,1298.290039,1299.349976,1292.699951,1293.77002,3576550000,-0.35505668465681817,1311.7023234 -2011-03-23,1292.189941,1300.51001,1284.050049,1297.540039,3842350000,0.2913979255756871,1310.8013265 -2011-03-24,1300.609985,1311.339966,1297.73999,1309.660034,4223740000,0.9340748366686746,1310.4273274666666 -2011-03-25,1311.800049,1319.180054,1310.150024,1313.800049,4223740000,0.31611371596607096,1310.1583292666664 -2011-03-28,1315.449951,1319.73999,1310.189941,1310.189941,3215170000,-0.2747836706771034,1309.5263265 -2011-03-29,1309.369995,1319.449951,1305.26001,1319.439941,3482580000,0.706004504426283,1309.0969929999999 -2011-03-30,1321.890015,1331.73999,1321.890015,1328.26001,3809570000,0.6684706689502828,1309.1053263333336 -2011-03-31,1327.439941,1329.77002,1325.030029,1325.829956,3566270000,-0.1829501740400863,1308.7556599999998 -2011-04-01,1329.47998,1337.849976,1328.890015,1332.410034,4223740000,0.4962987878062375,1308.488326 -2011-04-04,1333.560059,1336.73999,1329.099976,1332.869995,4223740000,0.034520979898289283,1308.1503255 -2011-04-05,1332.030029,1338.209961,1330.030029,1332.630005,3852280000,-0.01800550698120018,1308.7233276333332 -2011-04-06,1335.939941,1339.380005,1331.089966,1335.540039,4223740000,0.21836773816299448,1309.6613281333332 -2011-04-07,1334.819946,1338.800049,1326.560059,1333.51001,4005600000,-0.15200060954518868,1310.5749959333334 -2011-04-08,1336.160034,1339.459961,1322.939941,1328.170044,3582810000,-0.40044438811523975,1310.8513305666668 -2011-04-11,1329.01001,1333.77002,1321.060059,1324.459961,3478970000,-0.27933795200096867,1310.7593302333335 -2011-04-12,1321.959961,1321.959961,1309.51001,1314.160034,4275490000,-0.7776699412055721,1311.0203328333334 -2011-04-13,1314.030029,1321.349976,1309.189941,1314.410034,3850860000,0.019023558283004505,1311.2193359333335 -2011-04-14,1311.130005,1316.790039,1302.420044,1314.52002,3872630000,0.008367708489354087,1310.6710042333332 -2011-04-15,1314.540039,1322.880005,1313.680054,1319.680054,4223740000,0.39254130188142167,1310.6220052333335 -2011-04-18,1313.349976,1313.349976,1294.699951,1305.140015,4223740000,-1.1017851604204099,1310.4556722333334 -2011-04-19,1305.98999,1312.699951,1303.969971,1312.619995,3886300000,0.5731170536519059,1310.1490072000001 -2011-04-20,1319.119995,1332.660034,1319.119995,1330.359985,4236280000,1.3514947256307863,1310.4936727 -2011-04-21,1333.22998,1337.48999,1332.829956,1337.380005,3587240000,0.527678228385664,1311.9026733666667 -2011-04-25,1337.140015,1337.550049,1331.469971,1335.25,2142130000,-0.15926699906060326,1312.9350057333334 -2011-04-26,1336.75,1349.550049,1336.75,1347.23999,3908060000,0.8979584347500458,1314.6300049 -2011-04-27,1348.430054,1357.48999,1344.25,1355.660034,4051570000,0.6249847141191145,1317.0896728666667 -2011-04-28,1353.859985,1361.709961,1353.599976,1360.47998,4036820000,0.35554238371831026,1320.5430053666669 -2011-04-29,1360.140015,1364.560059,1358.689941,1363.609985,3479070000,0.23006623000803028,1323.5393391666664 -2011-05-02,1365.209961,1370.579956,1358.589966,1361.219971,3846250000,-0.1752710838356042,1326.2730061666666 -2011-05-03,1359.76001,1360.839966,1349.52002,1356.619995,4223740000,-0.3379303931766886,1328.2143391666664 -2011-05-04,1355.900024,1355.900024,1341.5,1347.319946,4223740000,-0.6855308807386384,1329.9993367 -2011-05-05,1344.160034,1348.0,1329.170044,1335.099976,3846250000,-0.9069835295082984,1331.2513346 -2011-05-06,1340.23999,1354.359985,1335.579956,1340.199951,4223740000,0.3819919924858084,1332.2693318333334 -2011-05-09,1340.199951,1349.439941,1338.640015,1346.290039,4265250000,0.45441637238203825,1333.3523315 -2011-05-10,1348.339966,1359.439941,1348.339966,1357.160034,4223740000,0.8074036563528342,1334.9180012666666 -2011-05-11,1354.51001,1354.51001,1336.359985,1342.079956,3846250000,-1.1111495786944148,1335.6726684333335 -2011-05-12,1339.390015,1351.050049,1332.030029,1348.650024,3777210000,0.48954370942113634,1336.3523355666666 -2011-05-13,1348.689941,1350.469971,1333.359985,1337.77002,3426660000,-0.806732940821131,1336.7503377 -2011-05-16,1334.77002,1343.329956,1327.319946,1329.469971,3846250000,-0.6204391544071153,1336.6523356 -2011-05-17,1326.099976,1330.420044,1318.51001,1328.97998,4053970000,-0.03685611639887565,1336.5226684333334 -2011-05-18,1328.540039,1341.819946,1326.589966,1340.680054,3922030000,0.8803800039184795,1336.7910034000001 -2011-05-19,1342.400024,1346.819946,1336.359985,1343.599976,3626110000,0.21779409571196506,1337.0596679666667 -2011-05-20,1342.0,1342.0,1330.670044,1333.27002,4066020000,-0.7688267478802024,1337.0516682999998 -2011-05-23,1333.069946,1333.069946,1312.880005,1317.369995,3255580000,-1.1925585036405395,1336.6916666666666 -2011-05-24,1317.699951,1323.719971,1313.869995,1316.280029,3846250000,-0.08273803139109415,1336.4190022666667 -2011-05-25,1316.359985,1325.859985,1311.800049,1320.469971,4109670000,0.3183169164378441,1336.6293335 -2011-05-26,1320.640015,1328.51001,1314.410034,1325.689941,3259470000,0.3953115265504348,1337.0053303999998 -2011-05-27,1325.689941,1334.619995,1325.689941,1331.099976,3124560000,0.4080920306236191,1337.5579956000001 -2011-05-31,1331.099976,1345.199951,1331.099976,1345.199951,4696240000,1.0592724253794206,1338.4086588333334 -2011-06-01,1345.199951,1345.199951,1313.709961,1314.550049,4241090000,-2.278464400568514,1338.7223266333333 -2011-06-02,1314.550049,1318.030029,1305.609985,1312.939941,3762170000,-0.12248358297386464,1338.7329915 -2011-06-03,1312.939941,1312.939941,1297.900024,1300.160034,3505030000,-0.973380929387091,1337.7263264666667 -2011-06-06,1300.26001,1300.26001,1284.719971,1286.170044,3555980000,-1.0760206154744822,1336.0193277666665 -2011-06-07,1286.310059,1296.219971,1284.73999,1284.939941,3846250000,-0.09564077516330816,1334.3423258 -2011-06-08,1284.630005,1287.040039,1277.420044,1279.560059,3970810000,-0.41868742875353915,1332.0863281 -2011-06-09,1279.630005,1294.540039,1279.630005,1289.0,3332510000,0.7377489578236363,1329.8643269666668 -2011-06-10,1288.599976,1288.599976,1268.280029,1270.97998,3846250000,-1.397984484096193,1326.8809936333334 -2011-06-13,1271.310059,1277.040039,1265.640015,1271.829956,4132520000,0.06687564032283877,1323.8216593333334 -2011-06-14,1272.219971,1292.5,1272.219971,1287.869995,3500280000,1.2611779526287448,1321.3766601333332 -2011-06-15,1287.869995,1287.869995,1261.900024,1265.420044,4070500000,-1.7431845673211765,1318.3366617666666 -2011-06-16,1265.530029,1274.109985,1258.069946,1267.640015,3846250000,0.17543352584985517,1315.6806640666666 -2011-06-17,1268.579956,1279.819946,1267.400024,1271.5,4916460000,0.3045016687959423,1313.5606648666667 -2011-06-20,1271.5,1280.420044,1267.560059,1278.359985,3464660000,0.5395190719622578,1311.4993326666665 -2011-06-21,1278.400024,1297.619995,1278.400024,1295.52002,4056150000,1.3423476330104211,1309.8069987000001 -2011-06-22,1295.47998,1298.609985,1286.790039,1287.140015,3718420000,-0.6468448862720022,1307.4729980666666 -2011-06-23,1286.599976,1286.599976,1262.869995,1283.5,4983450000,-0.282798682162011,1305.5203328666664 -2011-06-24,1283.040039,1283.930054,1267.23999,1268.449951,3665340000,-1.1725788079470112,1302.8469971000002 -2011-06-27,1268.439941,1284.910034,1267.530029,1280.099976,3479070000,0.9184457763442344,1300.9246623 -2011-06-28,1280.209961,1296.800049,1280.209961,1296.670044,3681500000,1.2944354590004314,1299.8313314 -2011-06-29,1296.849976,1309.209961,1296.849976,1307.410034,4347540000,0.82827470640634,1299.1123331999997 -2011-06-30,1307.640015,1321.969971,1307.640015,1320.640015,4200500000,1.0119228593896468,1298.4443319 -2011-07-01,1320.640015,1341.01001,1318.180054,1339.670044,3796930000,1.4409701950459208,1298.3133341666667 -2011-07-05,1339.589966,1340.890015,1334.300049,1337.880005,3722320000,-0.1336179015136607,1298.4670003333333 -2011-07-06,1337.560059,1340.939941,1330.920044,1339.219971,3564190000,0.10015591794423351,1299.1953328666666 -2011-07-07,1339.619995,1356.47998,1339.619995,1353.219971,4069530000,1.0453846495095398,1300.4266642666664 -2011-07-08,1352.390015,1352.390015,1333.709961,1343.800049,3594360000,-0.6961116597354766,1301.2043335333333 -2011-07-11,1343.310059,1343.310059,1316.420044,1319.48999,3879130000,-1.8090532901892997,1300.9976685000001 -2011-07-12,1319.609985,1327.170044,1313.329956,1313.640015,4227890000,-0.44335122239161917,1300.4156698000002 -2011-07-13,1314.449951,1331.47998,1314.449951,1317.719971,4060080000,0.3105840225185341,1299.4996704666667 -2011-07-14,1317.73999,1326.880005,1306.51001,1308.869995,4358570000,-0.6716128005014532,1299.3103353333333 -2011-07-15,1308.869995,1317.699951,1307.52002,1316.140015,4242760000,0.5554424830404914,1299.4170044666666 -2011-07-18,1315.939941,1315.939941,1295.920044,1305.439941,4118160000,-0.8129890344531376,1299.5930013666666 -2011-07-19,1307.069946,1328.140015,1307.069946,1326.72998,4304600000,1.6308708146076212,1300.9449992333332 -2011-07-20,1328.660034,1330.430054,1323.650024,1325.839966,3767420000,-0.06708328095518246,1302.3083334 -2011-07-21,1325.650024,1347.0,1325.650024,1343.800049,4837430000,1.3546192195566853,1304.4496664 -2011-07-22,1343.800049,1346.099976,1336.949951,1345.02002,3522830000,0.09078515817200206,1306.3170003999999 -2011-07-25,1344.319946,1344.319946,1331.089966,1337.430054,3536890000,-0.5643013402878538,1308.5320028666667 -2011-07-26,1337.390015,1338.51001,1329.589966,1331.939941,4007050000,-0.4104972057103029,1310.5356690333333 -2011-07-27,1331.910034,1331.910034,1303.48999,1304.890015,3479040000,-2.030866795667341,1311.1030030333334 -2011-07-28,1304.839966,1316.319946,1299.160034,1300.670044,4951800000,-0.323396681060506,1312.2780030333336 -2011-07-29,1300.119995,1304.160034,1282.859985,1292.280029,5061190000,-0.6450532968528933,1313.0993368333332 -2011-08-01,1292.589966,1307.380005,1274.72998,1286.939941,4967390000,-0.41322994089231235,1313.6140015333333 -2011-08-02,1286.560059,1286.560059,1254.030029,1254.050049,5206290000,-2.555666426394654,1312.8036703333335 -2011-08-03,1254.25,1261.199951,1234.560059,1260.339966,6446940000,0.5015682591787973,1311.6310018666666 -2011-08-04,1260.22998,1260.22998,1199.540039,1200.069946,4266530000,-4.782044656671625,1308.7286662333333 -2011-08-05,1200.280029,1218.109985,1168.089966,1199.380005,5454590000,-0.057491732236092385,1305.9246664 -2011-08-08,1198.47998,1198.47998,1119.280029,1119.459961,2615150000,-6.66344641955241,1300.9583334000001 -2011-08-09,1120.22998,1172.880005,1101.540039,1172.530029,2366660000,4.740684780953952,1297.3726685000001 -2011-08-10,1171.77002,1171.77002,1118.01001,1120.76001,5018070000,-4.4152403537291445,1291.5090007000001 -2011-08-11,1121.300049,1186.290039,1121.300049,1172.640015,3685050000,4.6290021536367965,1287.0166667333333 -2011-08-12,1172.869995,1189.040039,1170.73999,1178.810059,5640380000,0.5261669328246343,1282.2890015333332 -2011-08-15,1178.859985,1204.48999,1178.859985,1204.48999,4272850000,2.178462153757388,1277.7829997333333 -2011-08-16,1204.219971,1204.219971,1180.530029,1192.76001,5071600000,-0.9738545025185341,1272.9456665666667 -2011-08-17,1192.890015,1208.469971,1184.359985,1193.890015,4388340000,0.09473867253479984,1268.1013347 -2011-08-18,1189.619995,1189.619995,1131.030029,1140.650024,3234810000,-4.459371494115382,1261.0156698 -2011-08-19,1140.469971,1154.540039,1122.050049,1123.530029,5167560000,-1.5008981405150057,1253.6733358 -2011-08-22,1123.550049,1145.48999,1121.089966,1123.819946,5436260000,0.02580411671400107,1247.1510009999997 -2011-08-23,1124.359985,1162.349976,1124.359985,1162.349976,5013170000,3.428487822906101,1242.1079997000002 -2011-08-24,1162.160034,1178.560059,1156.300049,1177.599976,5315310000,1.3119972740464947,1237.4373332 -2011-08-25,1176.689941,1190.680054,1155.469971,1159.27002,5748420000,-1.5565520018319012,1232.4506673666665 -2011-08-26,1158.849976,1181.22998,1135.910034,1176.800049,5035320000,1.5121609890334176,1227.8060018333335 -2011-08-29,1177.910034,1210.280029,1177.910034,1210.079956,4228070000,2.8280001371753904,1224.6273356666668 -2011-08-30,1209.76001,1220.099976,1195.77002,1212.920044,4572570000,0.23470250754240585,1220.8336711333334 -2011-08-31,1213.0,1230.709961,1209.349976,1218.890015,5267840000,0.49219823099897475,1217.2686727666667 -2011-09-01,1219.119995,1229.290039,1203.849976,1204.420044,4780410000,-1.1871432879036248,1212.6226725999998 -2011-09-02,1203.900024,1203.900024,1170.560059,1173.969971,4401740000,-2.528193810099022,1206.9210042999998 -2011-09-06,1173.969971,1173.969971,1140.130005,1165.23999,5103980000,-0.7436289867417734,1201.1813355 -2011-09-07,1165.849976,1198.619995,1165.849976,1198.619995,4441040000,2.8646463635358055,1196.7373373 -2011-09-08,1197.97998,1204.400024,1183.339966,1185.900024,4465170000,-1.0612179884417872,1192.7710042666668 -2011-09-09,1185.369995,1185.369995,1148.369995,1154.22998,4586370000,-2.670549233414976,1187.8896687999998 -2011-09-12,1153.5,1162.52002,1136.069946,1162.27002,5168550000,0.6965717525375448,1183.5560018333335 -2011-09-13,1162.589966,1176.410034,1157.439941,1172.869995,4681370000,0.9120062307035992,1179.7536703 -2011-09-14,1173.319946,1202.380005,1162.72998,1188.680054,4986740000,1.3479805150953483,1177.5746704666667 -2011-09-15,1189.439941,1209.109985,1189.439941,1209.109985,4479730000,1.7187073116312401,1175.8670044333335 -2011-09-16,1209.209961,1220.060059,1204.459961,1216.01001,5248890000,0.5706697559031415,1176.3983398999999 -2011-09-19,1214.98999,1214.98999,1188.359985,1204.089966,4254190000,-0.9802587069163926,1176.5553386 -2011-09-20,1204.5,1220.390015,1201.290039,1202.089966,4315610000,-0.16610054534745844,1179.3096721 -2011-09-21,1203.630005,1206.300049,1166.209961,1166.76001,4728550000,-2.939044247874545,1179.117338133333 -2011-09-22,1164.550049,1164.550049,1114.219971,1129.560059,6703140000,-3.1883121362721423,1179.4106731 -2011-09-23,1128.819946,1141.719971,1121.359985,1136.430054,5639930000,0.6082009491449325,1178.2036744 -2011-09-26,1136.910034,1164.189941,1131.069946,1162.949951,4762830000,2.3336145420173926,1177.6750041333332 -2011-09-27,1163.319946,1195.859985,1163.319946,1175.380005,5548130000,1.068838258199456,1176.7046712999997 -2011-09-28,1175.390015,1184.709961,1150.400024,1151.060059,4787920000,-2.069113469392403,1175.3146729333334 -2011-09-29,1151.73999,1175.869995,1139.930054,1160.400024,5285740000,0.8114229076903623,1174.1983398999998 -2011-09-30,1159.930054,1159.930054,1131.339966,1131.420044,4416790000,-2.4974129093951247,1173.8906739000001 -2011-10-03,1131.209961,1138.98999,1098.920044,1099.22998,5670340000,-2.845102857308046,1173.0806722666666 -2011-10-04,1097.420044,1125.119995,1074.77002,1123.949951,3714670000,2.2488443228231514,1173.0850057666669 -2011-10-05,1124.030029,1146.069946,1115.680054,1144.030029,2510620000,1.7865633591721997,1172.4743408666666 -2011-10-06,1144.109985,1165.550049,1134.949951,1164.969971,5098330000,1.8303664649697682,1172.0533407 -2011-10-07,1165.030029,1171.400024,1150.26001,1155.459961,5580380000,-0.8163309129622154,1171.9263387333335 -2011-10-10,1158.150024,1194.910034,1158.150024,1194.890015,4446800000,3.412498514087403,1172.5293376 -2011-10-11,1194.599976,1199.23999,1187.300049,1195.540039,4424500000,0.054400320685576986,1172.0446736999997 -2011-10-12,1196.189941,1220.25,1196.189941,1207.25,5355360000,0.9794704165487111,1171.8556722333333 -2011-10-13,1206.959961,1207.459961,1190.579956,1203.660034,4436270000,-0.29736723959411515,1171.3480062 -2011-10-14,1205.650024,1224.609985,1205.650024,1224.579956,4116690000,1.738025805382848,1172.0200032666667 -2011-10-17,1224.469971,1224.469971,1198.550049,1200.859985,4300700000,-1.9369883431278323,1172.9163370666668 -2011-10-18,1200.75,1233.099976,1191.47998,1225.380005,4840170000,2.041871684149754,1174.9210042333334 -2011-10-19,1223.459961,1229.640015,1206.310059,1209.880005,4846390000,-1.2649137358822782,1175.2963379 -2011-10-20,1209.920044,1219.530029,1197.339966,1215.390015,4870290000,0.45541789080147943,1176.2793376 -2011-10-21,1215.390015,1239.030029,1215.390015,1238.25,4980770000,1.8808764855617222,1179.0800049333334 -2011-10-24,1238.719971,1256.550049,1238.719971,1254.189941,4309380000,1.2872958610942842,1182.1440023 -2011-10-25,1254.189941,1254.189941,1226.790039,1229.050049,4473970000,-2.0044724629154187,1184.0166707666665 -2011-10-26,1229.170044,1246.280029,1221.060059,1242.0,4873530000,1.0536553015507044,1185.7940023 -2011-10-27,1243.969971,1292.660034,1243.969971,1284.589966,6367610000,3.4291438003220653,1188.3100016666665 -2011-10-28,1284.390015,1287.079956,1277.01001,1285.089966,4536690000,0.03892292585445656,1190.6126668666666 -2011-10-31,1284.959961,1284.959961,1253.160034,1253.300049,4310210000,-2.473750308622369,1192.2530029666666 -2011-11-01,1251.0,1251.0,1215.420044,1218.280029,5645540000,-2.794224737160278,1192.7926717333332 -2011-11-02,1219.619995,1242.47998,1219.619995,1237.900024,4110530000,1.610466767324814,1195.1640055333335 -2011-11-03,1238.25,1263.209961,1234.810059,1261.150024,4849140000,1.8781807536341066,1199.5503377 -2011-11-04,1260.819946,1260.819946,1238.920044,1253.22998,3830650000,-0.62800173248857,1203.4436685666667 -2011-11-07,1253.209961,1261.699951,1240.75,1261.119995,3429740000,0.6295743898498074,1206.7160033666667 -2011-11-08,1261.119995,1277.550049,1254.98999,1275.920044,3908490000,1.1735639002377285,1210.067338 -2011-11-09,1275.180054,1275.180054,1226.640015,1229.099976,4659740000,-3.669514263073992,1212.6686685666666 -2011-11-10,1229.589966,1246.219971,1227.699951,1239.699951,4002760000,0.862417639490709,1215.3119994666667 -2011-11-11,1240.119995,1266.97998,1240.119995,1263.849976,3370180000,1.9480540416670467,1219.726330533333 -2011-11-14,1263.849976,1263.849976,1246.680054,1251.780029,3219680000,-0.955014220770134,1224.8113321666667 -2011-11-15,1251.699951,1264.25,1244.339966,1257.810059,3599300000,0.48171642463548103,1229.2733357666666 -2011-11-16,1257.810059,1259.609985,1235.670044,1236.910034,4085010000,-1.661620119067586,1232.3693359333333 -2011-11-17,1236.560059,1237.72998,1209.430054,1216.130005,4596450000,-1.6799951838696092,1234.0746704 -2011-11-18,1216.189941,1223.51001,1211.359985,1215.650024,3827610000,-0.03946790211790674,1236.0810058333334 -2011-11-21,1215.619995,1215.619995,1183.160034,1192.97998,4050070000,-1.8648495498240547,1236.017338 -2011-11-22,1192.97998,1196.810059,1181.650024,1188.040039,3911710000,-0.41408414917407654,1235.767338 -2011-11-23,1187.47998,1187.47998,1161.790039,1161.790039,3798940000,-2.2095214923981144,1234.2520059666667 -2011-11-25,1161.410034,1172.660034,1158.660034,1158.670044,1664200000,-0.26855067570432656,1232.7523396333333 -2011-11-28,1158.670044,1197.349976,1158.670044,1192.550049,3920750000,2.924042541312133,1231.6846760666667 -2011-11-29,1192.560059,1203.670044,1191.800049,1195.189941,3992650000,0.2213653005350924,1231.4956745999998 -2011-11-30,1196.719971,1247.109985,1196.719971,1246.959961,5801910000,4.331530765451785,1232.2150064666666 -2011-12-01,1246.910034,1251.089966,1239.72998,1244.579956,3818680000,-0.1908645886345317,1233.3716715 -2011-12-02,1246.030029,1260.079956,1243.349976,1244.280029,4144310000,-0.02409865260597499,1234.3346719666667 -2011-12-05,1244.329956,1266.72998,1244.329956,1257.079956,4148060000,1.0287014740795186,1234.9623371666667 -2011-12-06,1257.189941,1266.030029,1253.030029,1258.469971,3734230000,0.1105749076155016,1235.1050048333334 -2011-12-07,1258.140015,1267.060059,1244.800049,1261.01001,4160540000,0.20183548741983248,1236.1703368666667 -2011-12-08,1260.869995,1260.869995,1231.469971,1234.349976,4298370000,-2.114180996866155,1235.9153360666667 -2011-12-09,1234.47998,1258.25,1234.47998,1255.189941,3830610000,1.688335188982104,1234.9353352333335 -2011-12-12,1255.050049,1255.050049,1227.25,1236.469971,3600570000,-1.491405355358888,1233.3146687333333 -2011-12-13,1236.829956,1249.859985,1219.430054,1225.72998,4121570000,-0.8686010377845221,1232.3956664333334 -2011-12-14,1225.72998,1225.72998,1209.469971,1211.819946,4298290000,-1.1348367280695881,1232.1803303333334 -2011-12-15,1212.119995,1225.599976,1212.119995,1215.75,3810340000,0.32431006049804534,1231.4419962 -2011-12-16,1216.089966,1231.040039,1215.199951,1219.660034,5345800000,0.3216149701830151,1230.0589965333334 -2011-12-19,1219.73999,1224.569946,1202.369995,1205.349976,3659820000,-1.173282521447283,1228.4629964 -2011-12-20,1205.719971,1242.819946,1205.719971,1241.300049,4055590000,2.9825423085253266,1227.8023315333335 -2011-12-21,1241.25,1245.089966,1229.51001,1243.719971,2959020000,0.194950608593758,1226.7289957666667 -2011-12-22,1243.719971,1255.219971,1243.719971,1254.0,3492250000,0.8265549512511683,1227.5589965666668 -2011-12-23,1254.0,1265.420044,1254.0,1265.329956,2233830000,0.9035052631578999,1228.4133300666667 -2011-12-27,1265.02002,1269.369995,1262.300049,1265.430054,2130590000,0.007910821957968217,1228.4659993333335 -2011-12-28,1265.380005,1265.849976,1248.640015,1249.640015,2349980000,-1.2478002201771643,1228.3946655333334 -2011-12-29,1249.75,1263.540039,1249.75,1263.02002,2278130000,1.070708751271865,1228.5683309 -2011-12-30,1262.819946,1264.119995,1257.459961,1257.599976,2271850000,-0.42913365696293226,1229.2579956333332 -2012-01-03,1258.859985,1284.619995,1258.859985,1277.060059,3943710000,1.5473984869096347,1231.2889974333334 -2012-01-04,1277.030029,1278.72998,1268.099976,1277.300049,3592580000,0.018792381635357458,1233.3439982666666 -2012-01-05,1277.300049,1283.050049,1265.26001,1281.060059,4315950000,0.2943717103075061,1236.2800009 -2012-01-06,1280.930054,1281.839966,1273.339966,1277.810059,3656830000,-0.2536961461851339,1239.2723349 -2012-01-09,1277.829956,1281.98999,1274.550049,1280.699951,3371600000,0.226159747268051,1243.2359986333333 -2012-01-10,1280.77002,1296.459961,1280.77002,1292.079956,4221960000,0.8885769841026514,1247.6829957000002 -2012-01-11,1292.02002,1293.800049,1285.410034,1292.47998,3968120000,0.030959693952570255,1251.0139934 -2012-01-12,1292.47998,1296.819946,1285.77002,1295.5,4019890000,0.23366087264267144,1254.3576620333333 -2012-01-13,1294.819946,1294.819946,1277.579956,1289.089966,3692370000,-0.4947922809726002,1255.7619955333332 -2012-01-17,1290.219971,1303.0,1290.219971,1293.670044,4010490000,0.35529545034096444,1257.3983317999998 -2012-01-18,1293.650024,1308.109985,1290.98999,1308.040039,4096160000,1.110792900140778,1259.5236654666664 -2012-01-19,1308.069946,1315.48999,1308.069946,1314.5,4465890000,0.4938656927458096,1261.437666933333 -2012-01-20,1314.48999,1315.380005,1309.170044,1315.380005,3912620000,0.06694598706733501,1263.3346680666666 -2012-01-23,1315.290039,1322.280029,1309.890015,1316.0,3770910000,0.04713428801133013,1265.1676677333335 -2012-01-24,1315.959961,1315.959961,1306.060059,1314.650024,3693560000,-0.10258176291793042,1267.8443359999999 -2012-01-25,1314.400024,1328.300049,1307.650024,1326.060059,4410910000,0.867914257916591,1270.2066732666667 -2012-01-26,1326.280029,1333.469971,1313.599976,1318.430054,4522070000,-0.5753890970635167,1272.9386760333332 -2012-01-27,1318.25,1320.060059,1311.719971,1316.329956,4007380000,-0.15928778274041377,1275.9586752333335 -2012-01-30,1316.160034,1316.160034,1300.48999,1313.01001,3659010000,-0.25221229562294445,1279.3316773666666 -2012-01-31,1313.530029,1321.410034,1306.689941,1312.410034,4235550000,-0.04569470113940932,1282.5536785 -2012-02-01,1312.449951,1330.52002,1312.449951,1324.089966,4504360000,0.8899605837667579,1286.0346762333331 -2012-02-02,1324.23999,1329.189941,1321.569946,1325.540039,4120920000,0.10951468836974954,1290.0410116666667 -2012-02-03,1326.209961,1345.339966,1326.209961,1344.900024,4608550000,1.4605356632309219,1293.4943441666667 -2012-02-06,1344.319946,1344.359985,1337.52002,1344.329956,3379700000,-0.042387388640574564,1296.8480103333334 -2012-02-07,1344.329956,1349.23999,1335.920044,1347.050049,3742460000,0.20233819739414738,1299.9496786333332 -2012-02-08,1347.040039,1351.0,1341.949951,1349.959961,4096730000,0.21602107524960612,1302.7706788 -2012-02-09,1349.969971,1354.319946,1344.630005,1351.949951,4209890000,0.14741103865969496,1305.6546753666667 -2012-02-10,1351.209961,1351.209961,1337.349976,1342.640015,3877580000,-0.6886302257797183,1308.7546753666668 -2012-02-13,1343.060059,1353.349976,1343.060059,1351.77002,3618040000,0.6800039398497937,1311.7130087 -2012-02-14,1351.300049,1351.300049,1340.829956,1350.5,3889520000,-0.09395237216460739,1314.8096761666668 -2012-02-15,1350.52002,1355.869995,1340.800049,1343.22998,4080340000,-0.5383206219918502,1317.0153401999999 -2012-02-16,1342.609985,1359.02002,1341.219971,1358.040039,4108880000,1.1025706111770894,1319.7066731999998 -2012-02-17,1358.060059,1363.400024,1357.23999,1361.22998,3717640000,0.23489300082411013,1322.3790039 -2012-02-21,1361.219971,1367.76001,1358.109985,1362.209961,3795200000,0.07199231683099327,1325.1923339666669 -2012-02-22,1362.109985,1362.699951,1355.530029,1357.660034,3633710000,-0.33401069807622585,1327.7576700666666 -2012-02-23,1357.530029,1364.23999,1352.280029,1363.459961,3786450000,0.42720024562497017,1330.1370035666666 -2012-02-24,1363.459961,1368.920044,1363.459961,1365.73999,3505360000,0.16722375905544595,1332.5790038999999 -2012-02-27,1365.199951,1371.939941,1354.920044,1367.589966,3648890000,0.13545594428994168,1334.9820027666667 -2012-02-28,1367.560059,1373.089966,1365.969971,1372.180054,3579120000,0.3356333487459784,1337.7516723666668 -2012-02-29,1372.199951,1378.040039,1363.810059,1365.680054,4482370000,-0.4736987672319004,1340.1520060333335 -2012-03-01,1365.900024,1376.170044,1365.900024,1374.089966,3919240000,0.6158039707300444,1342.3536702666668 -2012-03-02,1374.089966,1374.530029,1366.420044,1369.630005,3283490000,-0.32457561807128776,1344.1913371 -2012-03-05,1369.589966,1369.589966,1359.130005,1364.329956,3429480000,-0.3869693990823375,1345.8230021333331 -2012-03-06,1363.630005,1363.630005,1340.030029,1343.359985,4191060000,-1.537016094074528,1346.7350016333332 -2012-03-07,1343.390015,1354.849976,1343.390015,1352.630005,3580380000,0.6900622397205014,1348.001001 -2012-03-08,1352.650024,1368.719971,1352.650024,1365.910034,3543060000,0.9817931696702198,1349.3293335 -2012-03-09,1365.969971,1374.76001,1365.969971,1370.869995,3639470000,0.36312501383968243,1351.0773315333333 -2012-03-12,1370.780029,1373.040039,1366.689941,1371.089966,3081870000,0.016046087579590917,1352.9026652 -2012-03-13,1371.920044,1396.130005,1371.920044,1395.949951,4386470000,1.8131549071521702,1355.6673299000001 -2012-03-14,1395.949951,1399.420044,1389.969971,1394.280029,4502280000,-0.11962620857601802,1358.3963297333332 -2012-03-15,1394.170044,1402.630005,1392.780029,1402.599976,4271650000,0.5967199434081527,1361.0133300666669 -2012-03-16,1402.550049,1405.880005,1401.469971,1404.170044,5163950000,0.11193982795276725,1363.6343302333335 -2012-03-19,1404.170044,1414.0,1402.430054,1409.75,3932570000,0.3973846347059773,1365.7959961000001 -2012-03-20,1409.589966,1409.589966,1397.680054,1405.52002,3695280000,-0.30005178223089235,1367.8356649 -2012-03-21,1405.52002,1407.75,1400.640015,1402.890015,3573590000,-0.18711971103763103,1369.6969971 -2012-03-22,1402.890015,1402.890015,1388.72998,1392.780029,3740590000,-0.7206542132242588,1371.1243327000002 -2012-03-23,1392.780029,1399.180054,1386.869995,1397.109985,3472950000,0.31088584771774563,1372.6296671666666 -2012-03-26,1397.109985,1416.579956,1397.109985,1416.51001,3576950000,1.3885825173599375,1375.0920003333333 -2012-03-27,1416.550049,1419.150024,1411.949951,1412.52002,3513640000,-0.2816775011706407,1377.1170003333332 -2012-03-28,1412.52002,1413.650024,1397.199951,1405.540039,3892800000,-0.49415094307830865,1378.9516683 -2012-03-29,1405.390015,1405.390015,1391.560059,1403.280029,3832000000,-0.16079300036219157,1380.9533366 -2012-03-30,1403.310059,1410.890015,1401.420044,1408.469971,3676890000,0.36984364437213646,1382.6343343333333 -2012-04-02,1408.469971,1422.380005,1404.459961,1419.040039,3572010000,0.7504645620875605,1384.5613363 -2012-04-03,1418.97998,1419.0,1404.619995,1413.380005,3822090000,-0.3988635869632384,1386.267004433333 -2012-04-04,1413.089966,1413.089966,1394.089966,1398.959961,3938290000,-1.020252440885494,1387.6436686666666 -2012-04-05,1398.790039,1401.599976,1392.920044,1398.079956,3303740000,-0.0629042306093508,1388.7976684999999 -2012-04-09,1397.449951,1397.449951,1378.23999,1382.199951,3468980000,-1.135843835815642,1389.3463338666668 -2012-04-10,1382.180054,1383.01001,1357.380005,1358.589966,4631730000,-1.708145408550954,1389.0463338666668 -2012-04-11,1358.97998,1374.709961,1358.97998,1368.709961,3743040000,0.7448895732533378,1388.9306641 -2012-04-12,1368.77002,1388.130005,1368.77002,1387.569946,3618280000,1.3779387552802502,1389.6603271666668 -2012-04-13,1387.609985,1387.609985,1369.849976,1370.26001,3631160000,-1.2475000665660207,1389.5326619666666 -2012-04-16,1370.27002,1379.660034,1365.380005,1369.569946,3574780000,-0.050360077281963456,1389.5306600000001 -2012-04-17,1369.569946,1392.76001,1369.569946,1390.780029,3456200000,1.5486673800010564,1390.4123291 -2012-04-18,1390.780029,1390.780029,1383.290039,1385.140015,3463140000,-0.40552883147562113,1391.8049967666666 -2012-04-19,1385.079956,1390.459961,1370.300049,1376.920044,4180020000,-0.5934397180778817,1392.6146647333333 -2012-04-20,1376.959961,1387.400024,1376.959961,1378.530029,3833320000,0.11692654246815426,1393.0353312333332 -2012-04-23,1378.530029,1378.530029,1358.790039,1366.939941,3654860000,-0.8407570206074855,1392.9043294333335 -2012-04-24,1366.969971,1375.569946,1366.819946,1371.969971,3617100000,0.36797739601639456,1392.9336629333334 -2012-04-25,1372.109985,1391.369995,1372.109985,1390.689941,3998430000,1.3644591642450798,1392.7583292666666 -2012-04-26,1390.640015,1402.089966,1387.280029,1399.97998,4034700000,0.6680165525120518,1392.9483276333335 -2012-04-27,1400.189941,1406.640015,1397.310059,1403.359985,3645830000,0.24143238105447384,1392.9736612666666 -2012-04-30,1403.26001,1403.26001,1394.0,1397.910034,3574010000,-0.3883501780193699,1392.7649942666665 -2012-05-01,1397.859985,1415.319946,1395.72998,1405.819946,3807950000,0.5658384164656471,1392.6339924666668 -2012-05-02,1405.5,1405.5,1393.920044,1402.310059,3803860000,-0.24966831705488524,1392.5269937666667 -2012-05-03,1402.319946,1403.069946,1388.709961,1391.569946,4004910000,-0.7658871824437141,1392.1496581333333 -2012-05-04,1391.51001,1391.51001,1367.959961,1369.099976,3975140000,-1.6147208456598894,1391.360323033333 -2012-05-07,1368.790039,1373.910034,1363.939941,1369.579956,3559390000,0.035058067958071426,1390.4426554 -2012-05-08,1369.160034,1369.160034,1347.75,1363.719971,4261670000,-0.4278673161306146,1388.6829874333334 -2012-05-09,1363.199951,1363.72998,1343.130005,1354.579956,4288540000,-0.67022667368416,1386.7516519666667 -2012-05-10,1354.579956,1365.880005,1354.579956,1357.98999,3727990000,0.2517410644455209,1385.1666503333333 -2012-05-11,1358.109985,1365.660034,1348.890015,1353.390015,3869070000,-0.3387340874287381,1383.5036498666666 -2012-05-14,1351.930054,1351.930054,1336.609985,1338.349976,3688120000,-1.1112863870212597,1381.1663167000002 -2012-05-15,1338.359985,1344.939941,1328.410034,1330.660034,4114040000,-0.574583788837002,1378.2203165333335 -2012-05-16,1330.780029,1341.780029,1324.790039,1324.800049,4280420000,-0.4403818293380879,1375.2676513333333 -2012-05-17,1324.819946,1326.359985,1304.859985,1304.859985,4664280000,-1.5051376254893167,1372.1309854666665 -2012-05-18,1305.050049,1312.23999,1291.97998,1295.219971,4512470000,-0.738777655136702,1368.7023193 -2012-05-21,1295.72998,1316.390015,1295.72998,1315.98999,3786750000,1.6035900823829996,1366.4953205999998 -2012-05-22,1316.089966,1328.48999,1310.040039,1316.630005,4123680000,0.048633728589364544,1365.0966552333334 -2012-05-23,1316.02002,1320.709961,1296.530029,1318.859985,4108330000,0.16937028561794243,1363.4349893666665 -2012-05-24,1318.719971,1324.140015,1310.5,1320.680054,3937670000,0.13800320130266108,1361.2053263000003 -2012-05-25,1320.810059,1324.199951,1314.22998,1317.819946,2872660000,-0.21656327672530118,1359.4573241666667 -2012-05-29,1318.900024,1334.930054,1318.900024,1332.420044,3441640000,1.1078977856053607,1358.2189941 -2012-05-30,1331.25,1331.25,1310.76001,1313.319946,3534290000,-1.4334892428261803,1355.6369913333333 -2012-05-31,1313.089966,1319.73999,1298.900024,1310.329956,4557620000,-0.22766653389425517,1353.1433227000002 -2012-06-01,1309.869995,1309.869995,1277.25,1278.040039,4669350000,-2.4642584756720654,1349.8473225333335 -2012-06-04,1278.290039,1282.550049,1266.73999,1278.180054,4011960000,0.010955447069527224,1346.5023233666666 -2012-06-05,1277.819946,1287.619995,1274.160034,1285.5,3403230000,0.5726850436362785,1343.7876586666666 -2012-06-06,1285.609985,1315.130005,1285.609985,1315.130005,4268360000,2.3049401011279613,1341.8929931333332 -2012-06-07,1316.150024,1329.050049,1312.680054,1314.98999,4258140000,-0.010646475973297154,1339.3696614333335 -2012-06-08,1314.98999,1325.810059,1307.77002,1325.660034,3497190000,0.8114163667511942,1336.8923299 -2012-06-11,1325.719971,1335.52002,1307.72998,1308.930054,3537530000,-1.262011343098246,1333.7446655333333 -2012-06-12,1309.400024,1324.310059,1306.619995,1324.180054,3442920000,1.1650737144736745,1331.2869995333335 -2012-06-13,1324.02002,1327.280029,1310.51001,1314.880005,3506510000,-0.7023251084251725,1328.2556681666667 -2012-06-14,1314.880005,1333.680054,1314.140015,1329.099976,3687720000,1.0814653007062747,1325.8153320666668 -2012-06-15,1329.189941,1343.319946,1329.189941,1342.839966,4401570000,1.033781524949795,1324.1909994 -2012-06-18,1342.420044,1348.219971,1334.459961,1344.780029,3259430000,0.14447462461062432,1323.3803345000001 -2012-06-19,1344.829956,1363.459961,1344.829956,1357.97998,3815350000,0.9815695292423321,1322.9936686333335 -2012-06-20,1358.040039,1361.569946,1346.449951,1355.689941,3695700000,-0.16863569667646683,1322.7260009666668 -2012-06-21,1355.430054,1358.27002,1324.410034,1325.51001,4094470000,-2.2261676573139155,1321.7570027666666 -2012-06-22,1325.920044,1337.819946,1325.920044,1335.02002,5271490000,0.7174604437728771,1320.9913371 -2012-06-25,1334.900024,1334.900024,1309.27002,1313.719971,3501820000,-1.595485362084681,1319.6690023 -2012-06-26,1314.089966,1324.23999,1310.300049,1319.98999,3412940000,0.4772721080906761,1319.0570027666665 -2012-06-27,1320.709961,1334.400024,1320.709961,1331.849976,3286910000,0.8984906014325,1319.0966674999997 -2012-06-28,1331.52002,1331.52002,1313.290039,1329.040039,3969370000,-0.2109799940410051,1319.2380005 -2012-06-29,1330.119995,1362.170044,1330.119995,1362.160034,4590480000,2.4920238689663643,1321.1480021333334 -2012-07-02,1362.329956,1366.349976,1355.699951,1365.51001,3301650000,0.24593116200617438,1323.4910034333332 -2012-07-03,1365.75,1374.810059,1363.530029,1374.02002,2116390000,0.6232111033737553,1325.4253377666669 -2012-07-05,1373.719971,1373.849976,1363.02002,1367.579956,3041520000,-0.468702341032845,1327.1236694666668 -2012-07-06,1367.089966,1367.089966,1348.030029,1354.680054,2745140000,-0.9432649216160383,1328.3176717666668 -2012-07-09,1354.660034,1354.869995,1346.650024,1352.459961,2904860000,-0.1638831983570288,1329.377002 -2012-07-10,1352.959961,1361.540039,1336.27002,1341.469971,3470600000,-0.8125926324557553,1330.1653361666665 -2012-07-11,1341.400024,1345.0,1333.25,1341.449951,3426290000,-0.0014923927059706799,1330.4663330666667 -2012-07-12,1341.290039,1341.290039,1325.410034,1334.76001,3654440000,-0.4987096980407668,1331.1810018666665 -2012-07-13,1334.810059,1357.699951,1334.810059,1356.780029,3212930000,1.6497361948984324,1332.7293376333332 -2012-07-16,1356.5,1357.26001,1348.51001,1353.640015,2862720000,-0.2314313251142397,1335.2493368333332 -2012-07-17,1353.680054,1365.359985,1345.069946,1363.670044,3566680000,0.7409672356649466,1338.0990031666668 -2012-07-18,1363.579956,1375.26001,1358.959961,1372.780029,3642630000,0.6680490665673222,1341.0083374666667 -2012-07-19,1373.01001,1380.390015,1371.209961,1376.51001,4043360000,0.2717100279144624,1343.0543376333335 -2012-07-20,1376.51001,1376.51001,1362.189941,1362.660034,3925020000,-1.006166021269983,1344.6433391 -2012-07-23,1362.339966,1362.339966,1337.560059,1350.52002,3717180000,-0.8909055595006987,1345.4720052999999 -2012-07-24,1350.52002,1351.530029,1329.23999,1338.310059,3891290000,-0.9040932988168549,1346.4513388000003 -2012-07-25,1338.349976,1343.97998,1331.5,1337.890015,3719170000,-0.03138614980700005,1346.9083375 -2012-07-26,1338.170044,1363.130005,1338.170044,1360.02002,4429300000,1.654097478259442,1348.4130046666667 -2012-07-27,1360.050049,1389.189941,1360.050049,1385.969971,4399010000,1.9080565446382147,1350.3086711666667 -2012-07-30,1385.939941,1391.73999,1381.369995,1385.300049,3212060000,-0.04833596787935379,1351.7240072666668 -2012-07-31,1385.27002,1387.160034,1379.170044,1379.319946,3821570000,-0.43168286930450606,1352.8753378333336 -2012-08-01,1379.319946,1385.030029,1373.349976,1375.319946,4440920000,-0.2899979813675513,1353.4533367 -2012-08-02,1375.130005,1375.130005,1354.650024,1365.0,4193740000,-0.7503669258934753,1353.763672 -2012-08-03,1365.449951,1394.160034,1365.449951,1390.98999,3751170000,1.9040285714285732,1355.9463380000002 -2012-08-06,1391.040039,1399.630005,1391.040039,1394.22998,3122050000,0.23292690984786368,1357.9200033333332 -2012-08-07,1394.459961,1407.140015,1394.459961,1401.349976,3682490000,0.5106758642501541,1360.8410035000002 -2012-08-08,1401.22998,1404.140015,1396.130005,1402.219971,3221790000,0.06208263566560568,1363.5820028666667 -2012-08-09,1402.26001,1405.949951,1398.800049,1402.800049,3119610000,0.041368545021236436,1365.9470053 -2012-08-10,1402.579956,1405.97998,1395.619995,1405.869995,2767980000,0.21884416116100258,1368.5080038333333 -2012-08-13,1405.869995,1405.869995,1397.319946,1404.109985,2499990000,-0.12519009625779898,1369.9063355333335 -2012-08-14,1404.359985,1410.030029,1400.599976,1403.930054,2930900000,-0.012814594435073268,1371.1870036666667 -2012-08-15,1403.890015,1407.72998,1401.829956,1405.530029,2655750000,0.11396401091645636,1372.2373373 -2012-08-16,1405.569946,1417.439941,1404.150024,1415.51001,3114100000,0.7100510692824136,1373.8350057666664 -2012-08-17,1415.839966,1418.709961,1414.670044,1418.160034,2922990000,0.18721337053633214,1375.9510051 -2012-08-20,1417.849976,1418.130005,1412.119995,1418.130005,2766320000,-0.0021174620127517585,1378.1400065666667 -2012-08-21,1418.130005,1426.680054,1410.859985,1413.170044,3282950000,-0.3497536179696059,1380.5300089999998 -2012-08-22,1413.089966,1416.119995,1406.780029,1413.48999,3062690000,0.02264030442469256,1382.9313436333332 -2012-08-23,1413.48999,1413.48999,1400.5,1402.079956,3008240000,-0.8072242520797746,1385.1753418333333 -2012-08-24,1401.98999,1413.459961,1398.040039,1411.130005,2598790000,0.6454731031045435,1386.9870077 -2012-08-27,1411.130005,1416.170044,1409.109985,1410.439941,2472500000,-0.04890151846781432,1388.8803385666668 -2012-08-28,1410.439941,1413.630005,1405.589966,1409.300049,2629090000,-0.08081818777706529,1390.4013387333332 -2012-08-29,1409.319946,1413.949951,1406.569946,1410.48999,2571220000,0.08443489382155,1391.6583374333336 -2012-08-30,1410.079956,1410.079956,1397.01001,1399.47998,2530280000,-0.780580513017326,1392.4240031 -2012-08-31,1400.069946,1413.089966,1398.959961,1406.579956,2938250000,0.5073295868083694,1393.8880004999999 -2012-09-04,1406.540039,1409.310059,1396.560059,1404.939941,3200310000,-0.11659593135848745,1395.7019978666665 -2012-09-05,1404.939941,1408.810059,1401.25,1403.439941,3389110000,-0.10676612972738697,1397.8729939333332 -2012-09-06,1403.73999,1432.119995,1403.73999,1432.119995,3952870000,2.043554067555209,1401.0139932666668 -2012-09-07,1432.119995,1437.920044,1431.449951,1437.920044,3717620000,0.4049974178315985,1403.6106607333336 -2012-09-10,1437.920044,1438.73999,1428.97998,1429.079956,3223670000,-0.6147830011054456,1405.0476602333333 -2012-09-11,1429.130005,1437.76001,1429.130005,1433.560059,3509630000,0.31349561521663016,1406.6563272333333 -2012-09-12,1433.560059,1439.150024,1432.98999,1436.560059,3641200000,0.2092692232296578,1408.564331 -2012-09-13,1436.560059,1463.76001,1435.339966,1459.98999,4606550000,1.6309746921621793,1411.3866658000002 -2012-09-14,1460.069946,1474.51001,1460.069946,1465.77002,5041990000,0.3958951800758559,1414.7456664666668 -2012-09-17,1465.420044,1465.630005,1457.550049,1461.189941,3482430000,-0.31246914164609896,1417.085664833333 -2012-09-18,1461.189941,1461.469971,1456.130005,1459.319946,3377390000,-0.12797754402280592,1419.2553303666668 -2012-09-19,1459.5,1465.150024,1457.880005,1461.050049,3451360000,0.11855542746073144,1421.2453328 -2012-09-20,1461.050049,1461.22998,1449.97998,1460.26001,3382520000,-0.05407337007659052,1423.1800007666668 -2012-09-21,1460.339966,1467.069946,1459.51001,1460.150024,4833870000,-0.007531946314132121,1425.0916666 -2012-09-24,1459.76001,1460.719971,1452.060059,1456.890015,3008920000,-0.22326534578066548,1426.7923339333333 -2012-09-25,1456.939941,1463.23999,1441.589966,1441.589966,3739900000,-1.0501855900220458,1428.0416666333333 -2012-09-26,1441.599976,1441.599976,1430.530029,1433.319946,3565380000,-0.5736735268036641,1429.0213297 -2012-09-27,1433.359985,1450.199951,1433.359985,1447.150024,3150330000,0.9648981749396546,1430.4086628666666 -2012-09-28,1447.130005,1447.130005,1435.599976,1440.670044,3509230000,-0.4477752750256747,1431.2473306666666 -2012-10-01,1440.900024,1457.140015,1440.900024,1444.48999,3505080000,0.26515065097030277,1432.1249958666667 -2012-10-02,1444.98999,1451.52002,1439.01001,1445.75,3321790000,0.08722871108299834,1433.0456623666666 -2012-10-03,1446.050049,1454.300049,1441.98999,1450.98999,3531640000,0.3624409476050472,1434.3063272333336 -2012-10-04,1451.079956,1463.140015,1451.079956,1461.400024,3615860000,0.7174435434940563,1435.9033283666665 -2012-10-05,1461.400024,1470.959961,1456.890015,1460.930054,3172940000,-0.03215888820869983,1437.8649983 -2012-10-08,1460.930054,1460.930054,1453.099976,1455.880005,2328720000,-0.34567356501243873,1439.3566649666668 -2012-10-09,1455.900024,1455.900024,1441.180054,1441.47998,3216320000,-0.9890942214018428,1440.3913329333332 -2012-10-10,1441.47998,1442.52002,1430.640015,1432.560059,3225060000,-0.6188029749813251,1441.1666665999999 -2012-10-11,1432.819946,1443.900024,1432.819946,1432.839966,3672540000,0.019538936482388358,1441.9116657999998 -2012-10-12,1432.839966,1438.430054,1425.530029,1428.589966,3134750000,-0.2966137252483625,1442.8819986666667 -2012-10-15,1428.75,1441.310059,1427.23999,1440.130005,3483810000,0.8077922479262201,1444.0003336333332 -2012-10-16,1440.310059,1455.51001,1440.310059,1454.920044,3568770000,1.0269933234256845,1445.6663370666668 -2012-10-17,1454.219971,1462.199951,1453.349976,1460.910034,3655320000,0.4117057858060491,1447.5820068333333 -2012-10-18,1460.939941,1464.02002,1452.630005,1457.339966,3880030000,-0.2443728851820537,1448.422672533333 -2012-10-19,1457.339966,1457.339966,1429.849976,1433.189941,3875170000,-1.6571304955208976,1448.2650024333334 -2012-10-22,1433.209961,1435.459961,1422.060059,1433.819946,3216220000,0.04395823484222294,1448.4230020999998 -2012-10-23,1433.73999,1433.73999,1407.560059,1413.109985,3587670000,-1.4443906334108192,1447.7413329666667 -2012-10-24,1413.199951,1420.040039,1407.099976,1408.75,3385970000,-0.3085382628585709,1446.814331 -2012-10-25,1409.73999,1421.119995,1405.140015,1412.969971,3512640000,0.29955428571428744,1445.2469970333332 -2012-10-26,1412.969971,1417.089966,1403.280029,1411.939941,3284910000,-0.07289822297291693,1443.4526610666667 -2012-10-31,1410.98999,1418.76001,1405.949951,1412.160034,3577110000,0.015587985976517338,1441.8183308333332 -2012-11-01,1412.199951,1428.349976,1412.199951,1427.589966,3929890000,1.0926475490383503,1440.7606648333335 -2012-11-02,1427.589966,1434.27002,1412.910034,1414.199951,3732480000,-0.9379454408409593,1439.1989949000001 -2012-11-05,1414.02002,1419.900024,1408.130005,1417.26001,2921040000,0.21638092957336763,1437.7656615666667 -2012-11-06,1417.26001,1433.380005,1417.26001,1428.390015,3306970000,0.7853184963569237,1436.7069946000001 -2012-11-07,1428.27002,1428.27002,1388.140015,1394.530029,4356490000,-2.37050004861592,1434.6283283999999 -2012-11-08,1394.530029,1401.22998,1377.51001,1377.51001,3779520000,-1.2204842237929392,1432.4923298666665 -2012-11-09,1377.550049,1391.390015,1373.030029,1379.849976,3647350000,0.16986925561432997,1430.7099975333333 -2012-11-12,1379.859985,1384.869995,1377.189941,1380.030029,2567540000,0.013048737408549727,1428.4726643666665 -2012-11-13,1380.030029,1388.810059,1371.390015,1374.530029,3455550000,-0.39854205230486217,1426.2679972 -2012-11-14,1374.640015,1380.130005,1352.5,1355.48999,4109510000,-1.3852035676406471,1423.3013305333334 -2012-11-15,1355.410034,1360.619995,1348.050049,1353.329956,3928870000,-0.1593544781544276,1420.2206624 -2012-11-16,1353.359985,1362.030029,1343.349976,1359.880005,4045910000,0.48399497631455013,1417.1836629 -2012-11-19,1359.880005,1386.890015,1359.880005,1386.890015,3374800000,1.9862053931736456,1414.6999959333334 -2012-11-20,1386.819946,1389.77002,1377.040039,1387.810059,3207160000,0.06633864185690008,1412.2626627666666 -2012-11-21,1387.790039,1391.25,1386.390015,1391.030029,2667090000,0.23201806177426398,1410.1009969 -2012-11-23,1391.030029,1409.160034,1391.030029,1409.150024,1504960000,1.3026314761174662,1409.0233317 -2012-11-26,1409.150024,1409.150024,1397.680054,1406.290039,2948960000,-0.20295816281376,1408.1476643666667 -2012-11-27,1406.290039,1409.01001,1398.030029,1398.939941,3323120000,-0.5226587543225802,1407.0176635333335 -2012-11-28,1398.77002,1410.310059,1385.430054,1409.930054,3359250000,0.7856029181741553,1406.3956664666666 -2012-11-29,1409.959961,1419.699951,1409.040039,1415.949951,3356850000,0.42696423009933593,1405.5896646666667 -2012-11-30,1415.949951,1418.859985,1411.630005,1416.180054,3966000000,0.016250786253957372,1404.2983316666666 -2012-12-03,1416.339966,1423.72998,1408.459961,1409.459961,3074280000,-0.4745225002300346,1402.5833292333334 -2012-12-04,1409.459961,1413.140015,1403.650024,1407.050049,3247710000,-0.1709812315839221,1400.9069986666666 -2012-12-05,1407.050049,1415.560059,1398.22998,1409.280029,4253920000,0.1584861890012279,1400.1100015999998 -2012-12-06,1409.430054,1413.949951,1405.930054,1413.939941,3229700000,0.3306590531412468,1399.447334766667 -2012-12-07,1413.949951,1420.339966,1410.900024,1418.069946,3125160000,0.29209196799964143,1399.6126668 -2012-12-10,1418.069946,1421.640015,1415.640015,1418.550049,2999430000,0.03385608737807022,1399.9393351 -2012-12-11,1418.550049,1434.27002,1418.550049,1427.839966,3650230000,0.6548882083186935,1400.4350016 -2012-12-12,1427.839966,1438.589966,1426.76001,1428.47998,3709050000,0.044823930919446475,1400.9863362333333 -2012-12-13,1428.47998,1431.359985,1416.0,1419.449951,3349960000,-0.6321424959697342,1401.2293334666667 -2012-12-14,1419.449951,1419.449951,1411.880005,1413.579956,3210170000,-0.4135401178368192,1400.7623331333334 -2012-12-17,1413.540039,1430.670044,1413.540039,1430.359985,3455610000,1.1870590643830559,1401.3010009333334 -2012-12-18,1430.469971,1448.0,1430.469971,1446.790039,4302240000,1.1486656626513492,1402.2853352333332 -2012-12-19,1446.790039,1447.75,1435.800049,1435.810059,3869800000,-0.7589200716082711,1402.5326700333333 -2012-12-20,1435.810059,1443.699951,1432.819946,1443.689941,3686580000,0.548810892541618,1404.1713337666665 -2012-12-21,1443.670044,1443.670044,1422.579956,1430.150024,5229160000,-0.937868763608718,1405.9260009 -2012-12-24,1430.150024,1430.150024,1424.660034,1426.660034,1248960000,-0.2440296431446276,1407.486336166667 -2012-12-26,1426.660034,1429.420044,1416.430054,1419.829956,2285030000,-0.4787460107682495,1408.8130004000002 -2012-12-27,1419.829956,1422.800049,1401.800049,1418.099976,2830180000,-0.1218441682181326,1410.2653319666667 -2012-12-28,1418.099976,1418.099976,1401.579956,1402.430054,2426680000,-1.1049941657992113,1411.8300007666664 -2012-12-31,1402.430054,1426.73999,1398.109985,1426.189941,3204330000,1.6941940834933167,1414.2586669333332 -2013-01-02,1426.189941,1462.430054,1426.189941,1462.420044,4202600000,2.540342065138712,1417.6766682333332 -2013-01-03,1462.420044,1465.469971,1455.530029,1459.369995,3829730000,-0.2085617612062718,1420.0926675666667 -2013-01-04,1459.369995,1467.939941,1458.98999,1466.469971,3424290000,0.4865096599440566,1422.7146646333333 -2013-01-07,1466.469971,1466.469971,1456.619995,1461.890015,3304970000,-0.3123116115959057,1425.076664166667 -2013-01-08,1461.890015,1461.890015,1451.640015,1457.150024,3601600000,-0.32423718278149494,1426.6766641666666 -2013-01-09,1457.150024,1464.72998,1457.150024,1461.02002,3674390000,0.2655866545145713,1428.5009968666668 -2013-01-10,1461.02002,1472.300049,1461.02002,1472.119995,4081840000,0.7597414715782014,1430.940332 -2013-01-11,1472.119995,1472.75,1467.579956,1472.050049,3340650000,-0.004751378979817034,1433.0109985000001 -2013-01-14,1472.050049,1472.050049,1465.689941,1470.680054,3003010000,-0.09306714815373596,1434.8353352666666 -2013-01-15,1470.670044,1473.310059,1463.76001,1472.339966,3135350000,0.11286696895667081,1436.7073323333332 -2013-01-16,1472.329956,1473.959961,1467.599976,1472.630005,3384080000,0.019699186784150058,1438.8130004666668 -2013-01-17,1472.630005,1485.160034,1472.630005,1480.939941,3706710000,0.5642921828147962,1441.2759968666667 -2013-01-18,1480.949951,1485.97998,1475.810059,1485.97998,3795740000,0.34032703558501964,1443.8326619 -2013-01-22,1485.97998,1492.560059,1481.160034,1492.560059,3570950000,0.4428107436548201,1446.4533325 -2013-01-23,1492.560059,1496.130005,1489.900024,1494.810059,3552010000,0.15074770267586857,1449.0113362666668 -2013-01-24,1494.810059,1502.27002,1489.459961,1494.819946,3699430000,0.0006614218268419236,1451.5536661666665 -2013-01-25,1494.819946,1503.26001,1494.819946,1502.959961,3476290000,0.5445481926958484,1454.057666 -2013-01-28,1502.959961,1503.22998,1496.329956,1500.180054,3388540000,-0.18496214617390594,1456.4476684666668 -2013-01-29,1500.180054,1509.349976,1498.089966,1507.839966,3949640000,0.5105995096772675,1459.3940023 -2013-01-30,1507.839966,1509.939941,1500.109985,1501.959961,3726810000,-0.38996214005379004,1462.3400024666666 -2013-01-31,1501.959961,1504.189941,1496.76001,1498.109985,3999880000,-0.2563301352878078,1464.5983358 -2013-02-01,1498.109985,1514.410034,1498.109985,1513.170044,3836320000,1.005270584322271,1466.8110026333334 -2013-02-04,1513.170044,1513.170044,1495.02002,1495.709961,3390000000,-1.1538744815384416,1468.8076660333331 -2013-02-05,1495.709961,1514.959961,1495.709961,1511.290039,3618360000,1.0416510156543657,1471.0610026333334 -2013-02-06,1511.290039,1512.530029,1504.709961,1512.119995,3611570000,0.05491705619586895,1473.7933349999998 -2013-02-07,1512.119995,1512.900024,1498.48999,1509.390015,3614580000,-0.18053990483738458,1476.5510010333335 -2013-02-08,1509.390015,1518.310059,1509.390015,1517.930054,2986150000,0.5657940568793318,1479.8210043 -2013-02-11,1517.930054,1518.310059,1513.609985,1517.01001,2684100000,-0.060611752008965514,1483.1180054333333 -2013-02-12,1517.01001,1522.290039,1515.609985,1519.430054,3414370000,0.15952722685066423,1487.0180054333334 -2013-02-13,1519.430054,1524.689941,1515.930054,1520.329956,3385880000,0.059226286700786446,1490.1560059333335 -2013-02-14,1520.329956,1523.140015,1514.02002,1521.380005,3759740000,0.06906717820405195,1492.1213379666667 -2013-02-15,1521.380005,1524.23999,1514.140015,1519.790039,3838510000,-0.10450814357849669,1494.1353394333335 -2013-02-19,1519.790039,1530.939941,1519.790039,1530.939941,3748910000,0.7336475245841578,1496.2843384333332 -2013-02-20,1530.939941,1530.939941,1511.410034,1511.949951,4240570000,-1.2404137805429483,1497.9530029666666 -2013-02-21,1511.949951,1511.949951,1497.290039,1502.420044,4274600000,-0.630305718367008,1499.4620036333333 -2013-02-22,1502.420044,1515.640015,1502.420044,1515.599976,3419320000,0.8772468160708424,1501.2813354999998 -2013-02-25,1515.599976,1525.839966,1487.849976,1487.849976,4011050000,-1.8309580654150115,1501.8056682 -2013-02-26,1487.849976,1498.98999,1485.01001,1496.939941,3975280000,0.6109463418104921,1502.6353312666665 -2013-02-27,1496.939941,1520.079956,1494.880005,1515.98999,3551850000,1.2725994195381007,1504.1456624666669 -2013-02-28,1515.98999,1525.339966,1514.459961,1514.680054,3912320000,-0.08640795840612059,1505.5569987333333 -2013-03-01,1514.680054,1519.98999,1501.47998,1518.199951,3695610000,0.23238551208915048,1507.0759969333333 -2013-03-04,1518.199951,1525.27002,1512.290039,1525.199951,3414430000,0.46107233736829567,1508.5513306 -2013-03-05,1525.199951,1543.469971,1525.199951,1539.790039,3610690000,0.9566016567489344,1510.3449992333335 -2013-03-06,1539.790039,1545.25,1538.109985,1541.459961,3676890000,0.10845127957084255,1511.9749959666667 -2013-03-07,1541.459961,1545.780029,1541.459961,1544.26001,3634710000,0.1816491554009314,1513.6233276666667 -2013-03-08,1544.26001,1552.47998,1542.939941,1551.180054,3652260000,0.44811391573884585,1515.5019979333333 -2013-03-11,1551.150024,1556.27002,1547.359985,1556.219971,3091080000,0.3249085744110536,1517.2773316 -2013-03-12,1556.219971,1556.77002,1548.23999,1552.47998,3274910000,-0.2403253440833697,1519.0206624666666 -2013-03-13,1552.47998,1556.390015,1548.25,1554.52002,3073830000,0.13140523718702113,1520.5766642666667 -2013-03-14,1554.52002,1563.319946,1554.52002,1563.22998,3459260000,0.5602989918393142,1522.6189982333333 -2013-03-15,1563.209961,1563.619995,1555.73999,1560.699951,5175850000,-0.1618462435066692,1524.7053304333335 -2013-03-18,1560.699951,1560.699951,1545.130005,1552.099976,3164560000,-0.5510332075354896,1526.0029948333333 -2013-03-19,1552.099976,1557.25,1538.569946,1548.339966,3796210000,-0.242253080222965,1527.7573283333334 -2013-03-20,1548.339966,1561.560059,1548.339966,1558.709961,3349090000,0.6697492299956531,1529.3379924 -2013-03-21,1558.709961,1558.709961,1543.550049,1545.800049,3243270000,-0.8282433758053154,1530.4606608666666 -2013-03-22,1545.900024,1557.73999,1545.900024,1556.890015,2948380000,0.7174256468146956,1532.0439942 -2013-03-25,1556.890015,1564.910034,1546.219971,1551.689941,3178170000,-0.3340039405416717,1533.1693237666666 -2013-03-26,1551.689941,1563.949951,1551.689941,1563.77002,2869260000,0.7785111368457276,1534.7279907666668 -2013-03-27,1563.75,1564.069946,1551.900024,1562.849976,2914210000,-0.0588349941636479,1536.1753214999999 -2013-03-28,1562.859985,1570.280029,1561.079956,1569.189941,3304440000,0.4056668968461574,1537.8039876666664 -2013-04-01,1569.180054,1570.569946,1558.469971,1562.170044,2753110000,-0.44735801680748644,1539.1636556333333 -2013-04-02,1562.170044,1573.660034,1562.170044,1570.25,3312160000,0.5172264076521937,1540.8456543333334 -2013-04-03,1570.25,1571.469971,1549.800049,1553.689941,4060610000,-1.054612896035656,1541.6039876666666 -2013-04-04,1553.689941,1562.599976,1552.52002,1559.97998,3350670000,0.4048451904085537,1543.2049886333334 -2013-04-05,1559.97998,1559.97998,1539.5,1553.280029,3515410000,-0.42948955024409985,1544.9003214666666 -2013-04-08,1553.26001,1563.069946,1548.630005,1563.069946,2887120000,0.630273795917069,1546.4826538000002 -2013-04-09,1563.109985,1573.890015,1560.920044,1568.609985,3252780000,0.3544332110138271,1549.1746541 -2013-04-10,1568.609985,1589.069946,1568.609985,1587.72998,3453350000,1.218913253315801,1552.2009887333334 -2013-04-11,1587.72998,1597.349976,1586.170044,1593.369995,3393950000,0.35522507422829364,1554.7803222333334 -2013-04-12,1593.300049,1593.300049,1579.969971,1588.849976,3206290000,-0.2836766736027285,1557.2526529666668 -2013-04-15,1588.839966,1588.839966,1552.280029,1552.359985,4660130000,-2.2966291060320887,1558.3913207666667 -2013-04-16,1552.359985,1575.349976,1552.359985,1574.569946,3654700000,1.4307223333897001,1560.0369872666665 -2013-04-17,1574.569946,1574.569946,1543.689941,1552.01001,4250310000,-1.4327681064477793,1560.4443196333334 -2013-04-18,1552.030029,1554.380005,1536.030029,1541.609985,3890800000,-0.6701003816334872,1560.4493204333332 -2013-04-19,1541.609985,1555.890015,1539.400024,1555.25,3569870000,0.8847902603588809,1560.8156534333332 -2013-04-22,1555.25,1565.550049,1548.189941,1562.5,2979880000,0.4661629963028435,1561.1929849666667 -2013-04-23,1562.5,1579.579956,1562.5,1578.780029,3565150000,1.0419218560000054,1561.9449868999998 -2013-04-24,1578.780029,1583.0,1575.800049,1578.790039,3598240000,0.0006340338626120712,1562.8219888666667 -2013-04-25,1578.930054,1592.640015,1578.930054,1585.160034,3908580000,0.4034732195317581,1563.8433226666666 -2013-04-26,1585.160034,1585.780029,1577.560059,1582.23999,3198620000,-0.1842113059481787,1564.4769896666667 -2013-04-29,1582.339966,1596.650024,1582.339966,1593.609985,2891200000,0.7186011649218838,1565.5739907999998 -2013-04-30,1593.579956,1597.569946,1586.5,1597.569946,3745070000,0.24848997165389797,1567.0896564666666 -2013-05-01,1597.550049,1597.550049,1581.280029,1582.699951,3530320000,-0.9307883537263306,1568.2349893 -2013-05-02,1582.77002,1598.599976,1582.77002,1597.589966,3366950000,0.940798348454619,1569.5309894666668 -2013-05-03,1597.599976,1618.459961,1597.599976,1614.420044,3603910000,1.053466681575288,1571.8183226333335 -2013-05-06,1614.400024,1619.77002,1614.209961,1617.5,3062240000,0.1907778592967091,1573.8386554666665 -2013-05-07,1617.550049,1626.030029,1616.640015,1625.959961,3309580000,0.5230269551777411,1576.3143228000001 -2013-05-08,1625.949951,1632.780029,1622.699951,1632.689941,3554700000,0.41390810114789733,1578.6116534999999 -2013-05-09,1632.689941,1635.01001,1623.089966,1626.670044,3457400000,-0.3687103625023225,1580.7389891 -2013-05-10,1626.689941,1633.699951,1623.709961,1633.699951,3086470000,0.43216551665963276,1582.8893227666667 -2013-05-13,1632.099976,1636.0,1626.73999,1633.77002,2910600000,0.004288976072808204,1585.2759886333333 -2013-05-14,1633.75,1651.099976,1633.75,1650.339966,3457790000,1.014215330013224,1587.9456541666666 -2013-05-15,1649.130005,1661.48999,1646.680054,1658.780029,3657440000,0.5114135980392343,1591.4486571000002 -2013-05-16,1658.069946,1660.51001,1648.599976,1650.469971,3513130000,-0.5009740806326102,1594.4649901333332 -2013-05-17,1652.449951,1667.469971,1652.449951,1667.469971,3440710000,1.030009651717556,1598.2713215333335 -2013-05-20,1665.709961,1672.839966,1663.52002,1666.290039,3275080000,-0.07076181403689041,1601.7119913 -2013-05-21,1666.199951,1674.930054,1662.670044,1669.160034,3513560000,0.17223862189816863,1605.0636596 -2013-05-22,1669.390015,1687.180054,1648.859985,1655.349976,4361020000,-0.827365723998641,1607.3176594666666 -2013-05-23,1651.619995,1655.5,1635.530029,1650.51001,3945510000,-0.29238324645374236,1609.2223266333335 -2013-05-24,1646.670044,1649.780029,1636.880005,1649.599976,2758080000,-0.05513653322223311,1611.2473266333334 -2013-05-28,1652.630005,1674.209961,1652.630005,1660.060059,3457400000,0.6340981542303226,1614.8373290999998 -2013-05-29,1656.569946,1656.569946,1640.050049,1648.359985,3587140000,-0.7047982352546889,1617.2969970666668 -2013-05-30,1649.140015,1661.910034,1648.609985,1654.410034,3498620000,0.36703444969878873,1620.7103312 -2013-05-31,1652.130005,1658.98999,1630.73999,1630.73999,4099600000,-1.430724156258345,1623.6813313666669 -2013-06-03,1631.709961,1640.420044,1622.719971,1640.420044,3952070000,0.5935988606007081,1626.5203328333334 -2013-06-04,1640.72998,1646.530029,1623.619995,1631.380005,3653840000,-0.5510807450241018,1628.816333 -2013-06-05,1629.050049,1629.310059,1607.089966,1608.900024,3632350000,-1.3779733067158628,1629.8203328333334 -2013-06-06,1609.290039,1622.560059,1598.22998,1622.560059,3547380000,0.8490294484575056,1631.2793335 -2013-06-07,1625.27002,1644.400024,1625.27002,1643.380005,3371990000,1.283154104805928,1633.2199991999998 -2013-06-10,1644.670044,1648.689941,1639.26001,1642.810059,2978730000,-0.03468132740243046,1635.2390014999999 -2013-06-11,1638.640015,1640.130005,1622.920044,1626.130005,3435710000,-1.0153367340685282,1636.3230021666668 -2013-06-12,1629.939941,1637.709961,1610.920044,1612.52002,3202550000,-0.8369555298870512,1636.8213379666668 -2013-06-13,1612.150024,1639.25,1608.069946,1636.359985,3378620000,1.4784290864184202,1638.6100057666665 -2013-06-14,1635.52002,1640.800049,1623.959961,1626.72998,2939400000,-0.5885016187315295,1639.5813395666667 -2013-06-17,1630.640015,1646.5,1630.339966,1639.040039,3137080000,0.756736468335073,1640.4020060666667 -2013-06-18,1639.77002,1654.189941,1639.77002,1651.810059,3120980000,0.7791158053582992,1641.5456746999998 -2013-06-19,1651.829956,1652.449951,1628.910034,1628.930054,3545060000,-1.3851474553830623,1641.6446778 -2013-06-20,1624.619995,1624.619995,1584.319946,1588.189941,4858850000,-2.5010351365277073,1640.1613444666666 -2013-06-21,1588.619995,1599.189941,1577.699951,1592.430054,5797280000,0.266977701504012,1639.0200114666666 -2013-06-24,1588.77002,1588.77002,1560.329956,1573.089966,4733660000,-1.2145015695615546,1636.9996786333334 -2013-06-25,1577.52002,1593.790039,1577.089966,1588.030029,3761170000,0.9497271817192399,1635.4750122666667 -2013-06-26,1592.27002,1606.829956,1592.27002,1603.26001,3558340000,0.95904867803982,1633.9056804 -2013-06-27,1606.439941,1620.069946,1606.439941,1613.199951,3364540000,0.6199830930729844,1632.3863444666665 -2013-06-28,1611.119995,1615.939941,1601.060059,1606.280029,4977190000,-0.4289562490818577,1630.9133464 -2013-07-01,1609.780029,1626.609985,1609.780029,1614.959961,3104690000,0.5403747692364513,1629.1630127333333 -2013-07-02,1614.290039,1624.26001,1606.77002,1614.079956,3317130000,-0.05449082461803645,1627.4226766333334 -2013-07-03,1611.47998,1618.969971,1604.569946,1615.410034,1966050000,0.08240471576737018,1625.6310099666666 -2013-07-05,1618.650024,1632.069946,1614.709961,1631.890015,2634140000,1.020173247233891,1624.8490112666666 -2013-07-08,1634.199951,1644.680054,1634.199951,1640.459961,3514590000,0.5251546318211897,1624.5140096333332 -2013-07-09,1642.890015,1654.180054,1642.890015,1652.319946,3155360000,0.7229670508245967,1624.6046753 -2013-07-10,1651.560059,1657.920044,1647.660034,1652.619995,3011010000,0.018159255459360146,1624.3566731666667 -2013-07-11,1657.410034,1676.630005,1657.410034,1675.02002,3446340000,1.3554250261869738,1625.245341 -2013-07-12,1675.26001,1680.189941,1672.329956,1680.189941,3039070000,0.30864831096169,1626.1046712333334 -2013-07-15,1679.589966,1684.51001,1677.890015,1682.5,2623200000,0.1374879674987728,1627.8300049 -2013-07-16,1682.699951,1683.72998,1671.839966,1676.26001,3081710000,-0.37087607726598026,1629.0246704333333 -2013-07-17,1677.910034,1684.75,1677.910034,1680.910034,3153440000,0.2774046969002075,1630.6756714 -2013-07-18,1681.050049,1693.119995,1681.050049,1689.369995,3452370000,0.5032964780314897,1633.3580037666666 -2013-07-19,1686.150024,1692.089966,1684.079956,1692.089966,3302580000,0.16100504969605023,1635.6756673333334 -2013-07-22,1694.410034,1697.609985,1690.670044,1695.530029,2779130000,0.2033026061925236,1637.4140014666668 -2013-07-23,1696.630005,1698.780029,1691.130005,1692.390015,3096180000,-0.1851936530933629,1639.0666666666666 -2013-07-24,1696.060059,1698.380005,1682.569946,1685.939941,3336120000,-0.3811221965877576,1641.0603311999998 -2013-07-25,1685.209961,1690.939941,1680.069946,1690.25,3322500000,0.2556472443166369,1643.651330533333 -2013-07-26,1687.310059,1691.849976,1676.030029,1691.650024,2762770000,0.08282940393433691,1645.4943318333333 -2013-07-29,1690.319946,1690.920044,1681.859985,1685.329956,2840520000,-0.3736037543425108,1647.4476643666667 -2013-07-30,1687.920044,1693.189941,1682.420044,1685.959961,3320530000,0.037381700702421305,1649.0116617666667 -2013-07-31,1687.76001,1698.430054,1684.939941,1685.72998,3847390000,-0.013640952651305938,1650.1423258 -2013-08-01,1689.420044,1707.849976,1689.420044,1706.869995,3775170000,1.2540570109573546,1652.7403238333332 -2013-08-02,1706.099976,1709.670044,1700.680054,1709.670044,3136630000,0.164045827051984,1656.7896606 -2013-08-05,1708.01001,1709.23999,1703.550049,1707.140015,2529300000,-0.1479834666858082,1660.6133259666667 -2013-08-06,1705.790039,1705.790039,1693.290039,1697.369995,3141210000,-0.5723033795795529,1664.7559936 -2013-08-07,1695.300049,1695.300049,1684.910034,1690.910034,3010230000,-0.38058649669956424,1668.1853271 -2013-08-08,1693.349976,1700.180054,1688.380005,1697.47998,3271660000,0.38854497684055467,1671.3259927666666 -2013-08-09,1696.099976,1699.420044,1686.02002,1691.420044,2957670000,-0.35699602183232315,1673.9333292000001 -2013-08-12,1688.369995,1691.48999,1683.349976,1689.469971,2789160000,-0.11529205929168285,1676.7063272666667 -2013-08-13,1690.650024,1696.810059,1682.619995,1694.160034,3035560000,0.27760558521343626,1679.3463297 -2013-08-14,1693.880005,1695.52002,1684.829956,1685.390015,2871430000,-0.517661780705192,1681.7233316666668 -2013-08-15,1679.609985,1679.609985,1658.589966,1661.319946,3426690000,-1.4281601757323736,1683.2536620666665 -2013-08-16,1661.219971,1663.599976,1652.609985,1655.829956,3211450000,-0.3304595248626474,1684.0516601000002 -2013-08-19,1655.25,1659.180054,1645.839966,1646.060059,2904530000,-0.5900302120153245,1684.2383300333336 -2013-08-20,1646.810059,1658.920044,1646.079956,1652.349976,2994090000,0.38211953237121676,1684.2393310333332 -2013-08-21,1650.660034,1656.98999,1639.430054,1642.800049,2932180000,-0.5779603073628792,1683.9119994999999 -2013-08-22,1645.030029,1659.550049,1645.030029,1656.959961,2537460000,0.8619376416880042,1683.3099975333332 -2013-08-23,1659.920044,1664.849976,1654.810059,1663.5,2582670000,0.39470108837469375,1682.7536661666666 -2013-08-26,1664.290039,1669.51001,1656.02002,1656.780029,2430670000,-0.4039657950105191,1681.8963337999999 -2013-08-27,1652.540039,1652.540039,1629.050049,1630.47998,3219190000,-1.587419484762509,1680.3703328000001 -2013-08-28,1630.25,1641.180054,1627.469971,1634.959961,2784010000,0.2747645512335639,1678.8386637 -2013-08-29,1633.5,1646.410034,1630.880005,1638.170044,2527550000,0.19634015979428376,1677.1319986666667 -2013-08-30,1638.890015,1640.079956,1628.050049,1632.969971,2734300000,-0.31743182089343236,1675.1613321666666 -2013-09-03,1635.949951,1651.349976,1633.410034,1639.77002,3731610000,0.4164221706928206,1673.3026651999999 -2013-09-04,1640.719971,1655.719971,1637.410034,1653.079956,3312150000,0.8116952888308049,1671.9923299 -2013-09-05,1653.280029,1659.170044,1653.069946,1655.079956,2957110000,0.12098628337611217,1670.9636637333335 -2013-09-06,1657.439941,1664.829956,1640.619995,1655.170044,3123880000,0.005443120718928718,1669.7943318666667 -2013-09-09,1656.849976,1672.400024,1656.849976,1671.709961,3102780000,0.9992880828140427,1669.1296631 -2013-09-10,1675.109985,1684.089966,1675.109985,1683.98999,3691800000,0.7345789213730747,1669.0849975666667 -2013-09-11,1681.040039,1689.130005,1678.699951,1689.130005,3135460000,0.3052283582754445,1669.1906657 -2013-09-12,1689.209961,1689.969971,1681.959961,1683.420044,3106290000,-0.3380415351747934,1669.1136678333335 -2013-09-13,1685.040039,1688.72998,1682.219971,1687.98999,2736500000,0.27146795693018255,1668.4843343333334 -2013-09-16,1691.699951,1704.949951,1691.699951,1697.599976,3079800000,0.5693153429185971,1668.0819987333334 -2013-09-17,1697.72998,1705.52002,1697.72998,1704.76001,2774240000,0.42177392207973785,1668.0026652333333 -2013-09-18,1705.73999,1729.439941,1700.349976,1725.52002,3989760000,1.2177673032111924,1668.9409994 -2013-09-19,1727.339966,1729.859985,1720.199951,1722.339966,3740130000,-0.18429539867059752,1669.9886637999998 -2013-09-20,1722.439941,1725.22998,1708.890015,1709.910034,5074030000,-0.7216886471529516,1670.4029989333333 -2013-09-23,1711.439941,1711.439941,1697.099976,1701.839966,3126950000,-0.4719586317135982,1670.7503296666666 -2013-09-24,1702.599976,1707.630005,1694.900024,1697.420044,3268930000,-0.2597143144069336,1671.0153321 -2013-09-25,1698.02002,1701.709961,1691.880005,1692.77002,3148730000,-0.27394657064624406,1670.9689983 -2013-09-26,1694.050049,1703.849976,1693.109985,1698.670044,2813930000,0.34854256220817614,1671.4116659333333 -2013-09-27,1695.52002,1695.52002,1687.109985,1691.75,2951700000,-0.4073801162528756,1672.4260010666667 -2013-09-30,1687.26001,1687.26001,1674.98999,1681.550049,3308630000,-0.6029230678291753,1673.2833375 -2013-10-01,1682.410034,1696.550049,1682.069946,1695.0,3238690000,0.7998543372526257,1674.9146688666665 -2013-10-02,1691.900024,1693.869995,1680.339966,1693.869995,3148600000,-0.06666696165191777,1676.2986695 -2013-10-03,1692.349976,1692.349976,1670.359985,1678.660034,3279650000,-0.8979414621486326,1677.4940023333334 -2013-10-04,1678.790039,1691.939941,1677.329956,1690.5,2880270000,0.7053224452950868,1678.6120036333334 -2013-10-07,1687.150024,1687.150024,1674.699951,1676.119995,2678490000,-0.8506362023070091,1679.0326701333333 -2013-10-08,1676.219971,1676.790039,1655.030029,1655.449951,3569230000,-1.2332078885557318,1678.9883342 -2013-10-09,1656.98999,1662.469971,1646.469971,1656.400024,3577840000,0.057390620563668726,1679.8523356666665 -2013-10-10,1660.880005,1692.560059,1660.880005,1692.560059,3362300000,2.1830496544354094,1681.7723389333332 -2013-10-11,1691.089966,1703.439941,1688.52002,1703.199951,2944670000,0.6286271464001292,1683.9400025 -2013-10-14,1699.859985,1711.030029,1692.130005,1710.140015,2580580000,0.4074720643295615,1686.5123373 -2013-10-15,1709.170044,1711.569946,1695.930054,1698.060059,3327740000,-0.7063723375889785,1688.4553386000002 -2013-10-16,1700.48999,1721.76001,1700.48999,1721.540039,3486180000,1.3827532115576302,1690.737341366667 -2013-10-17,1720.170044,1733.449951,1714.119995,1733.150024,3453590000,0.6743952935735376,1693.3396769666665 -2013-10-18,1736.719971,1745.310059,1735.73999,1744.5,3664890000,0.6548755643094761,1696.3173421666665 -2013-10-21,1745.199951,1747.790039,1740.670044,1744.660034,3052710000,0.009173631413017524,1698.7490112666667 -2013-10-22,1746.47998,1759.329956,1746.47998,1754.670044,3850840000,0.5737513214565837,1701.1050130666665 -2013-10-23,1752.27002,1752.27002,1740.5,1746.380005,3713380000,-0.47245572056965335,1703.0133464 -2013-10-24,1747.47998,1753.939941,1745.5,1752.069946,3671700000,0.3258134531836987,1705.3016764666668 -2013-10-25,1756.01001,1759.819946,1752.449951,1759.77002,3175720000,0.43948439487699886,1707.6943441333335 -2013-10-28,1759.420044,1764.98999,1757.670044,1762.109985,3282300000,0.13296993205964558,1709.8446777666666 -2013-10-29,1762.930054,1772.089966,1762.930054,1771.949951,3358460000,0.5584195131837832,1712.0843424666666 -2013-10-30,1772.27002,1775.219971,1757.23999,1763.310059,3523040000,-0.4875923270363347,1713.3440104333336 -2013-10-31,1763.23999,1768.530029,1755.719971,1756.540039,3826530000,-0.38393814890611555,1714.4840128666667 -2013-11-01,1758.699951,1765.670044,1752.699951,1761.640015,3686290000,0.2903421434619524,1716.2083455666666 -2013-11-04,1763.400024,1768.780029,1761.560059,1767.930054,3194870000,0.3570558653551048,1718.4113485 -2013-11-05,1765.670044,1767.030029,1755.76001,1762.969971,3516680000,-0.2805587805228882,1720.596346066667 -2013-11-06,1765.0,1773.73999,1764.400024,1770.48999,3322100000,0.4265540039649407,1723.1870117333333 -2013-11-07,1770.73999,1774.540039,1746.199951,1747.150024,4143200000,-1.3182772075429838,1724.8030110666666 -2013-11-08,1748.369995,1770.780029,1747.630005,1770.609985,3837170000,1.342755955569852,1727.4316772333334 -2013-11-11,1769.959961,1773.439941,1767.849976,1771.890015,2534060000,0.07229316511505601,1730.4430094333334 -2013-11-12,1769.51001,1771.780029,1762.290039,1767.689941,3221030000,-0.23703920471609408,1732.8660074666666 -2013-11-13,1764.369995,1782.0,1760.640015,1782.0,3327480000,0.8095344476477973,1735.8036743 -2013-11-14,1782.75,1791.530029,1780.219971,1790.619995,3139060000,0.48372586980920396,1739.5356729999999 -2013-11-15,1790.660034,1798.219971,1790.660034,1798.180054,3254820000,0.4222034279249609,1743.1250081333335 -2013-11-18,1798.819946,1802.329956,1788.0,1791.530029,3168520000,-0.3698197510981771,1746.9720092666669 -2013-11-19,1790.790039,1795.51001,1784.719971,1787.869995,3224450000,-0.2042965476857228,1751.3860107333333 -2013-11-20,1789.589966,1795.72998,1777.22998,1781.369995,3109140000,-0.36356111004592906,1755.5516764333333 -2013-11-21,1783.52002,1797.160034,1783.52002,1795.849976,3256630000,0.8128564554608309,1758.9946736666668 -2013-11-22,1797.209961,1804.839966,1794.699951,1804.76001,3055140000,0.4961457871801578,1762.3800089666665 -2013-11-25,1806.329956,1808.099976,1800.579956,1802.47998,2998540000,-0.12633424872927623,1765.4580078 -2013-11-26,1802.869995,1808.420044,1800.77002,1802.75,3427120000,0.014980471516801153,1768.9476724999997 -2013-11-27,1803.47998,1808.27002,1802.77002,1807.22998,2613590000,0.2485081126057498,1771.8040038666666 -2013-11-29,1808.689941,1813.550049,1803.97998,1805.810059,1598300000,-0.07856891572814995,1774.2260050333332 -2013-12-02,1806.550049,1810.02002,1798.599976,1800.900024,3095430000,-0.27190207383820386,1776.1060058333335 -2013-12-03,1800.099976,1800.099976,1787.849976,1795.150024,3475680000,-0.31928479778842167,1777.7890055 -2013-12-04,1793.150024,1799.800049,1779.089966,1792.810059,3610540000,-0.13034927269121033,1779.0603393333333 -2013-12-05,1792.819946,1792.819946,1783.380005,1785.030029,3336880000,-0.4339572929627278,1780.3486734666665 -2013-12-06,1788.359985,1806.040039,1788.359985,1805.089966,3150030000,1.1237870889621915,1782.1160074666666 -2013-12-09,1806.209961,1811.52002,1806.209961,1808.369995,3129500000,0.18171000126205872,1783.7360066333333 -2013-12-10,1807.599976,1808.52002,1801.75,1802.619995,3117150000,-0.31796590387466184,1785.0863403 -2013-12-11,1802.76001,1802.969971,1780.089966,1782.219971,3472240000,-1.1316874358758056,1785.4286743 -2013-12-12,1781.709961,1782.98999,1772.280029,1775.5,3306640000,-0.37705620570671616,1785.8350056666668 -2013-12-13,1777.97998,1780.920044,1772.449951,1775.319946,3061070000,-0.010141030695576259,1786.4610025666666 -2013-12-16,1777.47998,1792.219971,1777.47998,1786.540039,3209890000,0.6320039959715418,1787.2910033666667 -2013-12-17,1786.469971,1786.77002,1777.050049,1781.0,3270030000,-0.3100987875480743,1787.7266682333334 -2013-12-18,1781.459961,1811.079956,1767.98999,1810.650024,4327770000,1.6647964065132026,1789.3160033333334 -2013-12-19,1809.0,1810.880005,1801.349976,1809.599976,3497210000,-0.05799287471801584,1790.6196695333335 -2013-12-20,1810.390015,1823.75,1810.25,1818.319946,5097700000,0.48187279595763854,1792.9920002666665 -2013-12-23,1822.920044,1829.75,1822.920044,1827.98999,2851540000,0.5318120180814345,1794.9046670999999 -2013-12-24,1828.02002,1833.319946,1828.02002,1833.319946,1307630000,0.29157468198171,1796.9523314666667 -2013-12-26,1834.959961,1842.839966,1834.959961,1842.02002,1982270000,0.4745529561810624,1799.4300007666668 -2013-12-27,1842.969971,1844.890015,1839.810059,1841.400024,2052920000,-0.03365848325578291,1801.4100015666668 -2013-12-30,1841.469971,1842.469971,1838.77002,1841.069946,2293860000,-0.01792538262723742,1803.0916666 -2013-12-31,1842.609985,1849.439941,1842.410034,1848.359985,2312840000,0.395967519639262,1804.7643309666666 -2014-01-02,1845.859985,1845.859985,1827.73999,1831.97998,3080600000,-0.8861912794546845,1806.1126626666667 -2014-01-03,1833.209961,1838.23999,1829.130005,1831.369995,2774270000,-0.03329648831642551,1807.5626626666667 -2014-01-06,1832.310059,1837.160034,1823.72998,1826.77002,3294850000,-0.25117671538569253,1809.0759968333334 -2014-01-07,1828.709961,1840.099976,1828.709961,1837.880005,3511750000,0.6081764468633066,1810.4769978 -2014-01-08,1837.900024,1840.02002,1831.400024,1837.48999,3652140000,-0.021220917521214133,1811.5679971333334 -2014-01-09,1839.0,1843.22998,1830.380005,1838.130005,3581150000,0.03483093804499404,1812.7563313 -2014-01-10,1840.060059,1843.150024,1832.430054,1842.369995,3335710000,0.23066866807388564,1814.0769978 -2014-01-13,1841.26001,1843.449951,1815.52002,1819.199951,3591350000,-1.2576216537872997,1814.4759968333335 -2014-01-14,1821.359985,1839.26001,1821.359985,1838.880005,3353270000,1.0817971927264969,1815.578328366667 -2014-01-15,1840.52002,1850.839966,1840.52002,1848.380005,3777800000,0.5166188100457436,1817.1609944000002 -2014-01-16,1847.98999,1847.98999,1840.300049,1845.890015,3491310000,-0.13471201772711217,1818.8523274333334 -2014-01-17,1844.22998,1846.040039,1835.22998,1838.699951,3626120000,-0.38951746537292387,1820.3819905000003 -2014-01-21,1841.050049,1849.310059,1832.380005,1843.800049,3782470000,0.2773752181385536,1822.3409911666668 -2014-01-22,1844.709961,1846.869995,1840.880005,1844.859985,3374170000,0.05748649375374448,1823.6666584666668 -2014-01-23,1842.290039,1842.290039,1820.060059,1828.459961,3972250000,-0.8889576517103537,1824.336324 -2014-01-24,1826.959961,1826.959961,1790.290039,1790.290039,4618450000,-2.0875448636635485,1823.9253254666667 -2014-01-27,1791.030029,1795.97998,1772.880005,1781.560059,4045200000,-0.48762936785797795,1823.9033284 -2014-01-28,1783.0,1793.869995,1779.48999,1792.5,3437830000,0.6140652370788313,1824.4699950666666 -2014-01-29,1790.150024,1790.150024,1770.449951,1774.199951,3964020000,-1.0209232357043185,1824.4326618999999 -2014-01-30,1777.170044,1798.77002,1777.170044,1794.189941,3547510000,1.1267044612831345,1824.6876586333333 -2014-01-31,1790.880005,1793.880005,1772.26001,1782.589966,4059690000,-0.6465299316935624,1824.7406575 -2014-02-03,1782.680054,1784.829956,1739.660034,1741.890015,4726040000,-2.2831919721464478,1822.4486571999998 -2014-02-04,1743.819946,1758.72998,1743.819946,1755.199951,4068410000,0.7641088636701321,1820.6353230333334 -2014-02-05,1753.380005,1755.790039,1737.920044,1751.640015,3984290000,-0.20282224814169858,1818.4126586666669 -2014-02-06,1752.98999,1774.060059,1752.98999,1773.430054,3825410000,1.2439792887467327,1816.5939941333334 -2014-02-07,1776.01001,1798.030029,1776.01001,1797.02002,3775990000,1.3301886898100301,1815.3839966 -2014-02-10,1796.199951,1799.939941,1791.829956,1799.839966,3312160000,0.156923460429792,1813.9779948 -2014-02-11,1800.449951,1823.540039,1800.410034,1819.75,3699380000,1.1062113507929405,1813.2563273333333 -2014-02-12,1820.119995,1826.550049,1815.969971,1819.26001,3326380000,-0.026926226129964093,1812.5293294666667 -2014-02-13,1814.819946,1830.25,1809.219971,1829.829956,3289510000,0.5810024923265322,1811.9116618333333 -2014-02-14,1828.459961,1841.650024,1825.589966,1838.630005,3114750000,0.4809216818833173,1812.1333293333332 -2014-02-18,1839.030029,1842.869995,1835.01001,1840.76001,3421110000,0.115847396931823,1812.4463298333333 -2014-02-19,1838.900024,1847.5,1826.98999,1828.75,3661570000,-0.6524484416629561,1812.5123291666666 -2014-02-20,1829.23999,1842.790039,1824.579956,1839.780029,3404980000,0.6031458099794884,1812.5756632999999 -2014-02-21,1841.069946,1846.130005,1835.599976,1836.25,3403880000,-0.1918723404079281,1812.5343303 -2014-02-24,1836.780029,1858.709961,1836.780029,1847.609985,4014530000,0.6186513274336392,1812.8503296333333 -2014-02-25,1847.660034,1852.910034,1840.189941,1845.119995,3515560000,-0.13476816104130984,1812.9419963 -2014-02-26,1845.790039,1852.650024,1840.660034,1845.160034,3716730000,0.002169994369394246,1813.8073324000002 -2014-02-27,1844.900024,1854.530029,1841.130005,1854.290039,3547460000,0.494808300188887,1814.3210002 -2014-02-28,1855.119995,1867.920044,1847.670044,1859.449951,3917450000,0.27826887334101436,1814.6899984 -2014-03-03,1857.680054,1857.680054,1834.439941,1845.72998,3428220000,-0.7378510506626745,1814.6846639 -2014-03-04,1849.22998,1876.22998,1849.22998,1873.910034,3765770000,1.5267701291821645,1815.8583333333333 -2014-03-05,1874.050049,1876.530029,1871.109985,1873.810059,3392990000,-0.005335101375525397,1816.858667 -2014-03-06,1874.180054,1881.939941,1874.180054,1877.030029,3360450000,0.17184078954717297,1817.9310017999999 -2014-03-07,1878.52002,1883.569946,1870.560059,1878.040039,3564740000,0.05380894201985065,1819.5836710666665 -2014-03-10,1877.859985,1877.869995,1867.040039,1877.170044,3021350000,-0.046324624711580054,1822.4796712333332 -2014-03-11,1878.26001,1882.349976,1863.880005,1867.630005,3392400000,-0.5082138951925441,1825.3486694333335 -2014-03-12,1866.150024,1868.380005,1854.380005,1868.199951,3270860000,0.030517072357705288,1827.8720011333332 -2014-03-13,1869.060059,1874.400024,1841.859985,1846.339966,3670990000,-1.1701094943450174,1830.2766683 -2014-03-14,1845.069946,1852.439941,1839.569946,1841.130005,3285460000,-0.28217777310465264,1831.8413371 -2014-03-17,1842.810059,1862.300049,1842.810059,1858.829956,2860490000,0.9613634535275528,1834.3826700999998 -2014-03-18,1858.920044,1873.76001,1858.920044,1872.25,2930190000,0.721961896336043,1838.7280029333333 -2014-03-19,1872.25,1874.140015,1850.349976,1860.77002,3289210000,-0.6131649085325153,1842.2470052333333 -2014-03-20,1860.089966,1873.48999,1854.630005,1872.01001,3327540000,0.6040504672361502,1846.2593384 -2014-03-21,1874.530029,1883.969971,1863.459961,1866.52002,5270710000,-0.29326712841669655,1849.3623372666668 -2014-03-24,1867.670044,1873.339966,1849.689941,1857.439941,3409000000,-0.4864710210823131,1851.3763346333333 -2014-03-25,1859.47998,1871.869995,1855.959961,1865.619995,3200560000,0.4403939971052928,1853.5690022666668 -2014-03-26,1867.089966,1875.920044,1852.560059,1852.560059,3480850000,-0.7000319483604245,1854.6626709 -2014-03-27,1852.109985,1855.550049,1842.109985,1849.040039,3733430000,-0.19000841472853747,1855.6553385333332 -2014-03-28,1850.069946,1866.630005,1850.069946,1857.619995,2955520000,0.46402218551417906,1856.5816731666666 -2014-03-31,1859.160034,1875.180054,1859.160034,1872.339966,3274300000,0.7924102367341312,1857.7053385333334 -2014-04-01,1873.959961,1885.839966,1873.959961,1885.52002,3336190000,0.7039348750407459,1859.1973388666668 -2014-04-02,1886.609985,1893.170044,1883.790039,1890.900024,3131660000,0.2853326373060794,1861.2690063333334 -2014-04-03,1891.430054,1893.800049,1882.650024,1888.77002,3055600000,-0.11264498244039078,1862.9020060333335 -2014-04-04,1890.25,1897.280029,1863.26001,1865.089966,3583750000,-1.2537288155389015,1863.8633382333333 -2014-04-07,1863.920044,1864.040039,1841.47998,1845.040039,3801540000,-1.0750112522990185,1863.7776733666665 -2014-04-08,1845.47998,1854.949951,1837.48999,1851.959961,3721450000,0.37505538382520687,1864.0056722333331 -2014-04-09,1852.640015,1872.430054,1852.380005,1872.180054,3308650000,1.091821282630856,1864.9063395666667 -2014-04-10,1872.280029,1872.530029,1830.869995,1833.079956,3758780000,-2.0884795731297645,1864.1993367999999 -2014-04-11,1830.650024,1835.069946,1814.359985,1815.689941,3743460000,-0.948677385461516,1862.7406698000002 -2014-04-14,1818.180054,1834.189941,1815.800049,1830.609985,3111540000,0.821728625746676,1862.2366699666666 -2014-04-15,1831.449951,1844.02002,1816.290039,1842.97998,3736440000,0.6757307728767703,1861.2056681666666 -2014-04-16,1846.01001,1862.310059,1846.01001,1862.310059,3155080000,1.0488491036131586,1860.8223348333336 -2014-04-17,1861.72998,1869.630005,1856.719971,1864.849976,3341430000,0.13638529136033029,1860.4163330666668 -2014-04-21,1865.790039,1871.890015,1863.180054,1871.890015,2642500000,0.3775123516960077,1860.2113322666667 -2014-04-22,1872.569946,1884.890015,1872.569946,1879.550049,3215440000,0.4092138928365463,1860.2906657666667 -2014-04-23,1879.319946,1879.75,1873.910034,1875.390015,3085720000,-0.22133137674165138,1860.5493327666666 -2014-04-24,1881.969971,1884.060059,1870.23999,1878.609985,3191830000,0.17169601918778366,1860.8963339 -2014-04-25,1877.719971,1877.719971,1859.699951,1863.400024,3213020000,-0.809639101327353,1861.4650025 -2014-04-28,1865.0,1877.01001,1850.609985,1869.430054,4034680000,0.32360362360925876,1862.4083374666668 -2014-04-29,1870.780029,1880.599976,1870.780029,1878.329956,3647820000,0.47607568846756987,1863.0583374666667 -2014-04-30,1877.099976,1885.199951,1872.689941,1883.949951,3779230000,0.29920169148385245,1863.4483358333334 -2014-05-01,1884.390015,1888.589966,1878.040039,1883.680054,3416740000,-0.01432612367737729,1864.2120036333333 -2014-05-02,1885.300049,1891.329956,1878.5,1881.140015,3159560000,-0.13484450263229197,1864.5163371333333 -2014-05-05,1879.449951,1885.51001,1866.77002,1884.660034,2733730000,0.18712158435478798,1865.121004266667 -2014-05-06,1883.689941,1883.689941,1867.719971,1867.719971,3327260000,-0.8988391908564264,1865.4636719333332 -2014-05-07,1868.530029,1878.829956,1859.790039,1878.209961,3632950000,0.561646829443263,1865.8833374666667 -2014-05-08,1877.390015,1889.069946,1870.050049,1875.630005,3393420000,-0.13736249160484215,1866.6523356666667 -2014-05-09,1875.27002,1878.569946,1867.02002,1878.47998,3025020000,0.1519476118639007,1867.6336670333335 -2014-05-12,1880.030029,1897.130005,1880.030029,1896.650024,3005740000,0.9672737635457729,1868.934668 -2014-05-13,1896.75,1902.170044,1896.060059,1897.449951,2915680000,0.04217578308480796,1869.7716675000001 -2014-05-14,1897.130005,1897.130005,1885.77002,1888.530029,2822060000,-0.4701005154470139,1869.8720011333332 -2014-05-15,1888.160034,1888.160034,1862.359985,1870.849976,3552640000,-0.9361806658357397,1869.2036661999998 -2014-05-16,1871.189941,1878.280029,1864.819946,1877.859985,3173650000,0.37469647967112163,1868.8399983666668 -2014-05-19,1876.660034,1886.0,1872.420044,1885.079956,2664250000,0.3844786649522147,1869.5063313666667 -2014-05-20,1884.880005,1884.880005,1868.140015,1872.829956,3007700000,-0.6498398097656066,1870.4326619333333 -2014-05-21,1873.339966,1888.800049,1873.339966,1888.030029,2777140000,0.8116098822161355,1871.6349975333333 -2014-05-22,1888.189941,1896.329956,1885.390015,1892.48999,2759800000,0.2362229907096447,1872.3119954 -2014-05-23,1893.319946,1901.26001,1893.319946,1900.530029,2396280000,0.4248391823726383,1874.5603311666669 -2014-05-27,1902.01001,1912.280029,1902.01001,1911.910034,2911020000,0.5987805941686686,1877.7676676 -2014-05-28,1911.77002,1914.459961,1907.300049,1909.780029,2976450000,-0.11140717722704085,1880.4066690666668 -2014-05-29,1910.599976,1920.030029,1909.819946,1920.030029,2709050000,0.536711026628911,1882.9750040333333 -2014-05-30,1920.329956,1924.030029,1916.640015,1923.569946,3263490000,0.18436779355184285,1885.0170002666666 -2014-06-02,1923.869995,1925.880005,1915.97998,1924.969971,2509020000,0.07278264057468675,1887.0210001 -2014-06-03,1923.069946,1925.069946,1918.790039,1924.23999,2867180000,-0.03792168246763428,1888.7659992666668 -2014-06-04,1923.060059,1928.630005,1918.599976,1927.880005,2793920000,0.1891663731611759,1890.3769978000003 -2014-06-05,1928.52002,1941.73999,1922.930054,1940.459961,3113270000,0.6525279564793207,1892.545996 -2014-06-06,1942.410034,1949.439941,1942.410034,1949.439941,2864300000,0.46277584595830756,1894.9069945333333 -2014-06-09,1948.969971,1955.550049,1947.160034,1951.27002,2812180000,0.09387716756541487,1897.8359944000001 -2014-06-10,1950.339966,1950.859985,1944.640015,1950.790039,2702360000,-0.02459838951454074,1900.5479939 -2014-06-11,1949.369995,1949.369995,1940.079956,1943.890015,2710620000,-0.35370408204140613,1902.7333292 -2014-06-12,1943.349976,1943.349976,1925.780029,1930.109985,3040480000,-0.7088893864193202,1904.271997 -2014-06-13,1930.800049,1937.300049,1927.689941,1936.160034,2598230000,0.3134561785089085,1906.0213296666666 -2014-06-16,1934.839966,1941.150024,1930.910034,1937.780029,2926130000,0.08367051129825054,1907.9093301333335 -2014-06-17,1937.150024,1943.689941,1933.550049,1941.98999,2971260000,0.21725690929803587,1909.8203286666665 -2014-06-18,1942.72998,1957.73999,1939.290039,1956.97998,3065220000,0.7718881187436022,1912.7956623 -2014-06-19,1957.5,1959.869995,1952.26001,1959.47998,2952150000,0.1277478576965363,1915.5046629333333 -2014-06-20,1960.449951,1963.910034,1959.170044,1962.869995,4336240000,0.17300585025625814,1918.4126626 -2014-06-23,1962.920044,1963.73999,1958.890015,1962.609985,2717630000,-0.013246419817014576,1921.2169961 -2014-06-24,1961.969971,1968.170044,1948.339966,1949.97998,3089700000,-0.6435310681454642,1922.9946613 -2014-06-25,1949.27002,1960.829956,1947.48999,1959.530029,3106710000,0.4897511306757085,1925.0639972333333 -2014-06-26,1959.890015,1959.890015,1944.689941,1957.219971,2778840000,-0.11788836944636172,1927.3536619666666 -2014-06-27,1956.560059,1961.469971,1952.180054,1960.959961,4290590000,0.19108685050301943,1930.3573281333333 -2014-06-30,1960.790039,1964.23999,1958.219971,1960.22998,3037350000,-0.03722569631802175,1933.1029946333333 -2014-07-01,1962.290039,1978.579956,1962.290039,1973.319946,3188240000,0.6677770533843219,1936.044327633333 -2014-07-02,1973.060059,1976.670044,1972.579956,1974.619995,2851480000,0.06588130843330209,1939.4373289333334 -2014-07-03,1975.880005,1985.589966,1975.880005,1985.439941,1998090000,0.5479507969835984,1942.684326 -2014-07-07,1984.219971,1984.219971,1974.880005,1977.650024,2681260000,-0.3923521854847234,1945.5229938 -2014-07-08,1976.390015,1976.390015,1959.459961,1963.709961,3302430000,-0.70488017752528,1947.6289915333332 -2014-07-09,1965.099976,1974.150024,1965.099976,1972.829956,2858800000,0.46442678303448837,1949.6596556 -2014-07-10,1966.670044,1969.839966,1952.859985,1964.680054,3165690000,-0.41310716999271024,1951.4896564333333 -2014-07-11,1965.76001,1968.670044,1959.630005,1967.569946,2684630000,0.14709224507656327,1953.0743203333334 -2014-07-14,1969.859985,1979.849976,1969.859985,1977.099976,2744920000,0.4843553348318874,1954.8586546666666 -2014-07-15,1977.359985,1982.52002,1965.339966,1973.280029,3328740000,-0.19320960226444361,1956.4689899333332 -2014-07-16,1976.349976,1983.939941,1975.670044,1981.569946,3390950000,0.42010849337998923,1958.3799884666666 -2014-07-17,1979.75,1981.800049,1955.589966,1958.119995,3381680000,-1.1834026372541717,1959.3879881333335 -2014-07-18,1961.540039,1979.910034,1960.819946,1978.219971,3106060000,1.0264935780914586,1960.6466551333333 -2014-07-21,1976.930054,1976.930054,1965.77002,1973.630005,2611160000,-0.23202505622667013,1961.4529906 -2014-07-22,1975.650024,1986.23999,1975.650024,1983.530029,2890480000,0.5016149924210289,1962.5283242333333 -2014-07-23,1985.319946,1989.22998,1982.439941,1987.01001,2869720000,0.1754438273744885,1963.7356566 -2014-07-24,1988.069946,1991.390015,1985.790039,1987.97998,3203530000,0.04881555679732141,1965.2053221 -2014-07-25,1984.599976,1984.599976,1974.369995,1978.339966,2638960000,-0.4849150442651884,1966.8129881333334 -2014-07-28,1978.25,1981.52002,1967.310059,1978.910034,2803320000,0.02881547205217938,1968.2379881333334 -2014-07-29,1980.030029,1984.849976,1969.949951,1969.949951,3183300000,-0.4527786936270539,1969.3103188666666 -2014-07-30,1973.209961,1978.900024,1962.420044,1970.069946,3448250000,0.006091271503572138,1970.2463174000002 -2014-07-31,1965.140015,1965.140015,1930.670044,1930.670044,4193000000,-1.9999240169110255,1969.3693195333333 -2014-08-01,1929.800049,1937.349976,1916.369995,1925.150024,3789660000,-0.2859121379727547,1968.224987666667 -2014-08-04,1926.619995,1942.920044,1921.199951,1938.98999,3072920000,0.7189032453296162,1967.4289875 -2014-08-05,1936.339966,1936.339966,1913.77002,1920.209961,3462520000,-0.9685469804823543,1966.0156533666666 -2014-08-06,1917.290039,1927.910034,1911.449951,1920.23999,3539150000,0.0015638394035066838,1965.0243203666666 -2014-08-07,1923.030029,1928.890015,1904.780029,1909.569946,3230520000,-0.5556620034769644,1963.3589842666668 -2014-08-08,1910.349976,1932.380005,1909.01001,1931.589966,2902280000,1.1531402683691017,1962.5046507666668 -2014-08-11,1933.430054,1944.900024,1933.430054,1936.920044,2784890000,0.27594251853759744,1961.7033202 -2014-08-12,1935.72998,1939.650024,1928.290039,1933.75,2611700000,-0.16366416413624574,1960.8206542 -2014-08-13,1935.599976,1948.410034,1935.599976,1946.719971,2718020000,0.6707160180995375,1959.9339883666667 -2014-08-14,1947.410034,1955.22998,1947.410034,1955.180054,2609460000,0.43458140492873554,1959.2859903333335 -2014-08-15,1958.869995,1964.040039,1941.5,1955.060059,3023380000,-0.006137286423035793,1958.2733276 -2014-08-18,1958.359985,1971.98999,1958.359985,1971.73999,2638160000,0.8531671916274464,1958.0763264666668 -2014-08-19,1972.72998,1982.569946,1972.72998,1981.599976,2656430000,0.5000652241170966,1958.6726603 -2014-08-20,1980.459961,1988.569946,1977.680054,1986.51001,2579560000,0.24778129084919165,1959.1286621 -2014-08-21,1986.819946,1994.76001,1986.819946,1992.369995,2638920000,0.2949889489859636,1960.0516601333331 -2014-08-22,1992.599976,1993.540039,1984.76001,1988.400024,2301860000,-0.19925872252457566,1960.7459960666667 -2014-08-25,1991.73999,2001.949951,1991.73999,1997.920044,2233880000,0.47877790611010607,1961.4399983333335 -2014-08-26,1998.589966,2005.040039,1998.589966,2000.02002,2451950000,0.10510811012214294,1962.3313313666667 -2014-08-27,2000.540039,2002.140015,1996.199951,2000.119995,2344350000,0.00499869996302138,1962.9496663333334 -2014-08-28,1997.420044,1998.550049,1990.52002,1996.73999,2282400000,-0.16899011101580985,1964.2369995 -2014-08-29,1998.449951,2003.380005,1994.650024,2003.369995,2259130000,0.3320414792714166,1965.0753336333332 -2014-09-02,2004.069946,2006.119995,1994.849976,2002.280029,2819980000,-0.0544066249729358,1966.0303344333333 -2014-09-03,2003.569946,2009.280029,1998.140015,2000.719971,2809980000,-0.0779140768226716,1966.6033324999999 -2014-09-04,2001.670044,2011.170044,1992.540039,1997.650024,3072410000,-0.15344211306420608,1966.9579996333334 -2014-09-05,1998.0,2007.709961,1990.099976,2007.709961,2818300000,0.5035885605155332,1967.6156656666667 -2014-09-08,2007.170044,2007.170044,1995.599976,2001.540039,2789090000,-0.3073114204666716,1968.3890014333333 -2014-09-09,2000.72998,2001.01001,1984.609985,1988.439941,2882830000,-0.6545009215276454,1968.706665 -2014-09-10,1988.410034,1996.660034,1982.98999,1995.689941,2912430000,0.3646074417693379,1969.5646646666669 -2014-09-11,1992.849976,1997.650024,1985.930054,1997.449951,2941690000,0.08819055324384983,1970.4773314999998 -2014-09-12,1996.73999,1996.73999,1980.26001,1985.540039,3206570000,-0.5962558408052931,1972.3063313333332 -2014-09-15,1986.040039,1987.180054,1978.47998,1984.130005,2776530000,-0.07101513806340165,1974.2723307 -2014-09-16,1981.930054,2002.280029,1979.060059,1998.97998,3160310000,0.7484376004887938,1976.2719970333335 -2014-09-17,1999.300049,2010.73999,1993.290039,2001.569946,3209420000,0.1295643791290102,1978.9839965333335 -2014-09-18,2003.069946,2012.339966,2003.069946,2011.359985,3235340000,0.4891180055718092,1982.0213297 -2014-09-19,2012.73999,2019.26001,2006.589966,2010.400024,4880220000,-0.04772696121823072,1985.3823323 -2014-09-22,2009.079956,2009.079956,1991.01001,1994.290039,3349670000,-0.8013323123597482,1987.4723347333334 -2014-09-23,1992.780029,1995.410034,1982.77002,1982.77002,3279350000,-0.5776501298565662,1989.0006672666668 -2014-09-24,1983.339966,1999.790039,1978.630005,1998.300049,3313850000,0.7832491334522018,1991.1523355666666 -2014-09-25,1997.319946,1997.319946,1965.98999,1965.98999,3273050000,-1.61687725605415,1991.7946695333335 -2014-09-26,1966.219971,1986.369995,1966.219971,1982.849976,2929440000,0.8575824946087218,1992.7170002666667 -2014-09-29,1978.959961,1981.280029,1964.040039,1977.800049,3094440000,-0.2546802360805511,1993.4749999333333 -2014-09-30,1978.209961,1985.170044,1968.959961,1972.290039,3951100000,-0.27859287407672184,1993.4933348999998 -2014-10-01,1971.439941,1971.439941,1941.719971,1946.160034,4188590000,-1.3248561055071106,1992.3120035 -2014-10-02,1945.829956,1952.319946,1926.030029,1946.170044,4012510000,0.0005143461907053393,1990.9673379666667 -2014-10-03,1948.119995,1971.189941,1948.119995,1967.900024,3560970000,1.1165509440962396,1990.1516722666668 -2014-10-06,1970.01001,1977.839966,1958.430054,1964.819946,3358220000,-0.15651597959429608,1989.3656696666667 -2014-10-07,1962.359985,1962.359985,1934.869995,1935.099976,3687870000,-1.5126052674955925,1987.2716674 -2014-10-08,1935.550049,1970.359985,1925.25,1968.890015,4441890000,1.7461650260492734,1986.2340005666665 -2014-10-09,1967.680054,1967.680054,1927.560059,1928.209961,4344020000,-2.0661415157819274,1983.8369994333332 -2014-10-10,1925.630005,1936.97998,1906.050049,1906.130005,4550540000,-1.1451012310168207,1980.8166666 -2014-10-13,1905.650024,1912.089966,1874.140015,1874.73999,4352580000,-1.646792974123501,1976.5289997666666 -2014-10-14,1877.109985,1898.709961,1871.790039,1877.699951,4812010000,0.1578864811007774,1972.3763305 -2014-10-15,1874.180054,1874.180054,1820.660034,1862.48999,6090800000,-0.8100314958148558,1967.768664466667 -2014-10-16,1855.949951,1876.01001,1835.02002,1862.76001,5073150000,0.014497796039147914,1963.2723306666667 -2014-10-17,1864.910034,1898.160034,1864.910034,1886.76001,4482120000,1.2884107384289356,1959.2406656333333 -2014-10-20,1885.619995,1905.030029,1882.300049,1904.01001,3331210000,0.9142657205247762,1955.9896646666666 -2014-10-21,1909.380005,1942.449951,1909.380005,1941.280029,3987090000,1.9574486900938215,1954.4176676 -2014-10-22,1941.290039,1949.310059,1926.829956,1927.109985,3761930000,-0.7299330229703749,1952.1316690666667 -2014-10-23,1931.02002,1961.949951,1931.02002,1950.819946,3789250000,1.2303377173358276,1950.5773355666668 -2014-10-24,1951.589966,1965.27002,1946.27002,1964.579956,3078380000,0.7053449513992227,1949.8786661333331 -2014-10-27,1962.969971,1964.640015,1951.369995,1961.630005,3538860000,-0.15015683077650444,1949.1286661333331 -2014-10-28,1964.140015,1985.050049,1964.140015,1985.050049,3653260000,1.1939073087332774,1948.6643351 -2014-10-29,1983.290039,1991.400024,1969.040039,1982.300049,3740350000,-0.13853554984093464,1948.0220052 -2014-10-30,1979.48999,1999.400024,1974.75,1994.650024,3586150000,0.6230123944268806,1947.4650065 -2014-10-31,2001.199951,2018.189941,2001.199951,2018.050049,4292290000,1.1731393837739246,1947.7200073333333 -2014-11-03,2018.209961,2024.459961,2013.680054,2017.810059,3555440000,-0.011892172848682048,1948.504008 -2014-11-04,2015.810059,2015.97998,2001.01001,2012.099976,3956260000,-0.28298416763913314,1949.4816732 -2014-11-05,2015.290039,2023.77002,2014.420044,2023.569946,3766590000,0.5700497061185805,1950.3240030999998 -2014-11-06,2023.329956,2031.609985,2015.859985,2031.209961,3669770000,0.3775513179122836,1952.498002133333 -2014-11-07,2032.359985,2034.26001,2025.069946,2031.920044,3704280000,0.03495862139482053,1954.1336710666665 -2014-11-10,2032.01001,2038.699951,2030.170044,2038.26001,3284940000,0.31201847822315276,1956.1490031 -2014-11-11,2038.199951,2041.280029,2035.280029,2039.680054,2958320000,0.06966942357859995,1958.3953369333333 -2014-11-12,2037.75,2040.329956,2031.949951,2038.25,3246650000,-0.07011168232956555,1961.4650024666666 -2014-11-13,2039.209961,2046.180054,2030.439941,2039.329956,3455270000,0.05298447197350509,1964.5703328666668 -2014-11-14,2039.73999,2042.219971,2035.199951,2039.819946,3227130000,0.02402700938897162,1966.9676636000002 -2014-11-17,2038.290039,2043.069946,2034.459961,2041.319946,3152890000,0.07353590217320516,1969.5176635999999 -2014-11-18,2041.47998,2056.080078,2041.47998,2051.800049,3416190000,0.5133983538707865,1973.4076660333333 -2014-11-19,2051.159912,2052.139893,2040.369995,2048.719971,3390850000,-0.15011589465070418,1976.068664566667 -2014-11-20,2045.869995,2053.840088,2040.48999,2052.75,3128290000,0.19670960682991456,1980.2199992 -2014-11-21,2057.459961,2071.459961,2056.75,2063.5,3916420000,0.5236877359639402,1985.4656657000003 -2014-11-24,2065.070068,2070.169922,2065.070068,2069.409912,3128060000,0.2864023261448967,1991.9546631 -2014-11-25,2070.149902,2074.209961,2064.75,2067.030029,3392940000,-0.11500297675195448,1998.2656657 -2014-11-26,2067.360107,2073.290039,2066.620117,2072.830078,2745260000,0.280598197347226,2005.2770019666666 -2014-11-28,2074.780029,2075.76001,2065.060059,2067.560059,2504640000,-0.2542426924393548,2012.1036702666668 -2014-12-01,2065.780029,2065.780029,2049.570068,2053.439941,4159010000,-0.6829362919125614,2017.6596679666666 -2014-12-02,2053.77002,2068.77002,2053.77002,2066.550049,3686650000,0.6384461380261053,2023.0776692666666 -2014-12-03,2067.449951,2076.280029,2066.649902,2074.330078,3612680000,0.37647425978213356,2027.5126709 -2014-12-04,2073.639893,2077.340088,2062.340088,2071.919922,3408340000,-0.11618960866265349,2032.3396687999998 -2014-12-05,2072.780029,2079.469971,2070.810059,2075.370117,3419620000,0.16652163837824752,2036.4913411666669 -2014-12-08,2074.840088,2075.780029,2054.27002,2060.310059,3800990000,-0.7256564926245379,2039.6823446 -2014-12-09,2056.550049,2060.600098,2034.170044,2059.820068,3970150000,-0.02378239128909554,2042.9553467 -2014-12-10,2058.860107,2058.860107,2024.26001,2026.140015,4114440000,-1.63509684769223,2044.3250122333334 -2014-12-11,2027.920044,2055.530029,2027.920044,2035.329956,3917950000,0.45356890106136305,2046.0926757999998 -2014-12-12,2030.359985,2032.25,2002.329956,2002.329956,4157650000,-1.6213587336401436,2046.348673533333 -2014-12-15,2005.030029,2018.689941,1982.26001,1989.630005,4361990000,-0.6342586526233873,2045.4013387333332 -2014-12-16,1986.709961,2016.890015,1972.560059,1972.73999,4958680000,-0.8489023063360968,2043.8990030999998 -2014-12-17,1973.77002,2016.75,1973.77002,2012.890015,4942370000,2.0352416032282106,2043.9253377333332 -2014-12-18,2018.97998,2061.22998,2018.97998,2061.22998,4703380000,2.40152043279922,2045.1806722000001 -2014-12-19,2061.040039,2077.850098,2061.030029,2070.649902,6465530000,0.457004899569724,2046.4953369 -2014-12-22,2069.280029,2078.76001,2069.280029,2078.540039,3369520000,0.3810464044346151,2048.0493367333333 -2014-12-23,2081.47998,2086.72998,2079.77002,2082.169922,3043950000,0.17463618366218014,2049.5130004666667 -2014-12-24,2083.25,2087.560059,2081.860107,2081.879883,1416980000,-0.013929650838551133,2050.919661433333 -2014-12-26,2084.300049,2092.699951,2084.300049,2088.77002,1735230000,0.3309574705179896,2052.6036621000003 -2014-12-29,2087.629883,2093.550049,2085.75,2090.570068,2452360000,0.08617741459158168,2054.3116658333333 -2014-12-30,2088.48999,2088.48999,2079.530029,2080.350098,2440280000,-0.4888604384246875,2055.6626708999997 -2014-12-31,2082.110107,2085.580078,2057.939941,2058.899902,2606070000,-1.0310858744699503,2056.2486694333334 -2015-01-02,2058.899902,2072.360107,2046.040039,2058.199951,2708700000,-0.03399635889632657,2056.4619995000003 -2015-01-05,2054.439941,2054.439941,2017.339966,2020.579956,3799120000,-1.8278105089703178,2055.523999 -2015-01-06,2022.150024,2030.25,1992.439941,2002.609985,4460110000,-0.8893471870112912,2053.8526651666666 -2015-01-07,2005.550049,2029.609985,2005.550049,2025.900024,3805480000,1.162984264257516,2052.5993326333332 -2015-01-08,2030.609985,2064.080078,2030.609985,2062.139893,3934010000,1.788828104579765,2052.3569986666666 -2015-01-09,2063.449951,2064.429932,2038.329956,2044.810059,3364140000,-0.8403811040573306,2051.616333 -2015-01-12,2046.130005,2049.300049,2022.579956,2028.26001,3456460000,-0.809368524335885,2050.1306640666667 -2015-01-13,2031.579956,2056.929932,2008.25,2023.030029,4107300000,-0.257855549792152,2048.6463297333335 -2015-01-14,2018.400024,2018.400024,1988.439941,2011.27002,4378680000,-0.5813066949783785,2047.2406657 -2015-01-15,2013.75,2021.349976,1991.469971,1992.670044,4276720000,-0.9247876125553778,2044.7779988666668 -2015-01-16,1992.25,2020.459961,1988.119995,2019.420044,4056410000,1.342419939545203,2042.9476644 -2015-01-20,2020.76001,2028.939941,2004.48999,2022.550049,3944340000,0.15499524278268506,2041.3020019666665 -2015-01-21,2020.189941,2038.290039,2012.040039,2032.119995,3730070000,0.4731623825443343,2039.8603312333332 -2015-01-22,2034.300049,2064.620117,2026.380005,2063.149902,4176050000,1.5269721805970526,2039.9549926666666 -2015-01-23,2062.97998,2062.97998,2050.540039,2051.820068,3573560000,-0.5491522447795494,2039.688326 -2015-01-26,2050.419922,2057.620117,2040.969971,2057.090088,3465760000,0.25684610859357804,2040.7199951 -2015-01-27,2047.859985,2047.859985,2019.910034,2029.550049,3329810000,-1.338786237931644,2040.5273315333334 -2015-01-28,2032.339966,2042.48999,2001.48999,2002.160034,4067530000,-1.3495609538427322,2040.5216674666667 -2015-01-29,2002.449951,2024.640015,1989.180054,2021.25,4127140000,0.9534685377702523,2041.5756673 -2015-01-30,2019.349976,2023.319946,1993.380005,1994.98999,4568650000,-1.299196536796532,2042.3173339666669 -2015-02-02,1996.670044,2021.660034,1980.900024,2020.849976,4008330000,1.2962464037225452,2042.582666 -2015-02-03,2022.709961,2050.300049,2022.709961,2050.030029,4615900000,1.4439494938539577,2042.2093343000001 -2015-02-04,2048.860107,2054.73999,2036.719971,2041.51001,4141920000,-0.4156045950290843,2041.2380045666666 -2015-02-05,2043.449951,2063.550049,2043.449951,2062.52002,3821990000,1.0291406800400527,2040.7040039333333 -2015-02-06,2062.280029,2072.399902,2049.969971,2055.469971,4232970000,-0.3418172396697505,2039.8140055666668 -2015-02-09,2053.469971,2056.159912,2041.880005,2046.73999,3549540000,-0.42471946188310516,2038.6426758 -2015-02-10,2049.379883,2070.860107,2048.620117,2068.590088,3669850000,1.0675561188404625,2037.9700114 -2015-02-11,2068.550049,2073.47998,2057.98999,2068.530029,3596860000,-0.0029033785063692363,2037.2353434333336 -2015-02-12,2069.97998,2088.530029,2069.97998,2088.47998,3788350000,0.9644506350069637,2037.5063395 -2015-02-13,2088.780029,2097.030029,2086.699951,2096.98999,3527450000,0.40747386048680667,2038.7760091000002 -2015-02-17,2096.469971,2101.300049,2089.800049,2100.340088,3361750000,0.15975746264769164,2040.1806803333334 -2015-02-18,2099.159912,2100.22998,2092.149902,2099.679932,3370020000,-0.031430909868912504,2042.8173462 -2015-02-19,2099.25,2102.129883,2090.790039,2097.449951,3247100000,-0.10620575860226245,2045.9786784 -2015-02-20,2097.649902,2110.610107,2085.439941,2110.300049,3281600000,0.6126533791127375,2048.7920125666665 -2015-02-23,2109.830078,2110.050049,2103.0,2109.659912,3093680000,-0.030333932859605284,2050.3760132 -2015-02-24,2109.100098,2117.939941,2105.870117,2115.47998,3199840000,0.2758770722662396,2052.7316772333334 -2015-02-25,2115.300049,2119.590088,2109.889893,2113.860107,3312340000,-0.0765723625519743,2055.5850138 -2015-02-26,2113.909912,2113.909912,2103.76001,2110.73999,3408690000,-0.14760281390748808,2058.5086791666668 -2015-02-27,2110.879883,2112.73999,2103.75,2104.5,3547380000,-0.2956304438046842,2061.6163451666666 -2015-03-02,2105.22998,2117.52002,2104.5,2117.389893,3409490000,0.6124919458303735,2065.7736734666664 -2015-03-03,2115.76001,2115.76001,2098.26001,2107.780029,3262300000,-0.4538542491286046,2068.7190063 -2015-03-04,2107.719971,2107.719971,2094.48999,2098.530029,3421110000,-0.4388503483633732,2071.2516723 -2015-03-05,2098.540039,2104.25,2095.219971,2101.040039,3103030000,0.11960800966932528,2073.5490071 -2015-03-06,2100.909912,2100.909912,2067.27002,2071.26001,3853570000,-1.4173946449004382,2073.8193440333334 -2015-03-09,2072.25,2083.48999,2072.209961,2079.429932,3349090000,0.3944421251101282,2074.7396728333333 -2015-03-10,2076.139893,2076.139893,2044.160034,2044.160034,3668900000,-1.6961330342146863,2074.308671033333 -2015-03-11,2044.689941,2050.080078,2039.689941,2040.23999,3406570000,-0.19176796017918996,2074.6650024 -2015-03-12,2041.099976,2066.409912,2041.099976,2065.949951,3405860000,1.2601439598289632,2076.7913329666667 -2015-03-13,2064.560059,2064.560059,2041.170044,2053.399902,3498560000,-0.6074711051894166,2077.8629963666667 -2015-03-16,2055.350098,2081.409912,2055.350098,2081.189941,3295600000,1.3533671143615367,2080.7363280666664 -2015-03-17,2080.590088,2080.590088,2065.080078,2074.280029,3221840000,-0.3320173648677094,2082.5173298333334 -2015-03-18,2072.840088,2106.850098,2061.22998,2099.5,4128210000,1.2158421547431297,2084.1663288666664 -2015-03-19,2098.689941,2098.689941,2085.560059,2089.27002,3305220000,-0.48725791855204204,2085.7583292 -2015-03-20,2090.320068,2113.919922,2090.320068,2108.100098,5554120000,0.9012754607946816,2087.2776651333334 -2015-03-23,2107.98999,2114.860107,2104.419922,2104.419922,3267960000,-0.1745731146016838,2088.9093301666667 -2015-03-24,2103.939941,2107.629883,2091.5,2091.5,3189820000,-0.6139422015983054,2090.4013305 -2015-03-25,2093.100098,2097.429932,2061.050049,2061.050049,3521140000,-1.4558905570164926,2090.149995866667 -2015-03-26,2059.939941,2067.149902,2045.5,2056.149902,3510670000,-0.23775002467200101,2089.7373249666666 -2015-03-27,2055.780029,2062.830078,2052.959961,2061.02002,3008550000,0.23685617450666108,2088.8219929666666 -2015-03-30,2064.110107,2088.969971,2064.110107,2086.23999,2917690000,1.2236644843459654,2088.4636596333335 -2015-03-31,2084.050049,2084.050049,2067.040039,2067.889893,3376550000,-0.8795774737306195,2087.3819864666666 -2015-04-01,2067.629883,2067.629883,2048.379883,2059.689941,3543270000,-0.39653716707825915,2086.048986766667 -2015-04-02,2060.030029,2072.169922,2057.320068,2066.959961,3095960000,0.35296671869311513,2085.032653766667 -2015-04-06,2064.870117,2086.98999,2056.52002,2080.620117,3302970000,0.6608815002585366,2084.0433227000003 -2015-04-07,2080.790039,2089.810059,2076.100098,2076.330078,3065510000,-0.20619040280095424,2082.9323282333335 -2015-04-08,2076.939941,2086.689941,2073.300049,2081.899902,3265330000,0.2682533022574818,2081.8129923 -2015-04-09,2081.290039,2093.310059,2074.290039,2091.179932,3172360000,0.4457481356853421,2081.056986466667 -2015-04-10,2091.51001,2102.610107,2091.51001,2102.060059,3156200000,0.5202865058863804,2080.7676554333334 -2015-04-13,2102.030029,2107.649902,2092.330078,2092.429932,2908420000,-0.4581280615065353,2080.365319833333 -2015-04-14,2092.280029,2098.620117,2083.23999,2095.840088,3301270000,0.1629758754569277,2079.6469930000003 -2015-04-15,2097.820068,2111.909912,2097.820068,2106.629883,4013760000,0.5148195733910566,2079.6086548 -2015-04-16,2105.959961,2111.300049,2100.02002,2104.98999,3434120000,-0.07784438136160254,2079.8239868333335 -2015-04-17,2102.580078,2102.580078,2072.370117,2081.179932,3627600000,-1.1311245237798029,2079.1619832666665 -2015-04-20,2084.110107,2103.939941,2084.110107,2100.399902,3000160000,0.9235131333180657,2080.1333130000003 -2015-04-21,2102.820068,2109.639893,2094.379883,2097.290039,3243410000,-0.14806051919155072,2080.7286499 -2015-04-22,2098.27002,2109.97998,2091.050049,2107.959961,3348480000,0.5087480415959744,2082.8553141333336 -2015-04-23,2107.209961,2120.48999,2103.189941,2112.929932,3636670000,0.23577160344365744,2085.2783122 -2015-04-24,2112.800049,2120.919922,2112.800049,2117.689941,3375780000,0.22528002125912217,2087.002978533333 -2015-04-27,2119.290039,2125.919922,2107.040039,2108.919922,3438750000,-0.414131399984774,2088.8536458666667 -2015-04-28,2108.350098,2116.040039,2094.889893,2114.76001,3546270000,0.2769231747055345,2089.9726481666667 -2015-04-29,2112.48999,2113.649902,2097.409912,2106.850098,4074970000,-0.37403355286635964,2091.0583171333333 -2015-04-30,2105.52002,2105.52002,2077.590088,2085.51001,4509680000,-1.0128906665100579,2090.5919841333334 -2015-05-01,2087.379883,2108.409912,2087.379883,2108.290039,3379390000,1.0923001515586117,2091.2259847666664 -2015-05-04,2110.22998,2120.949951,2110.22998,2114.48999,3091580000,0.2940748609209676,2091.438981166667 -2015-05-05,2112.629883,2115.23999,2088.459961,2089.459961,3793950000,-1.1837383538524149,2090.9403158 -2015-05-06,2091.26001,2098.419922,2067.929932,2080.149902,3792210000,-0.4455725007309619,2090.5619792 -2015-05-07,2079.959961,2092.899902,2074.98999,2088.0,3676640000,0.3773813604708076,2091.4603109 -2015-05-08,2092.129883,2117.659912,2092.129883,2116.100098,3399440000,1.3457901340996115,2093.458650766667 -2015-05-11,2115.560059,2117.689941,2104.580078,2105.330078,2992670000,-0.5089560749124811,2094.9356527 -2015-05-12,2102.870117,2105.060059,2085.570068,2099.120117,3139520000,-0.2949637714718456,2095.3649902666666 -2015-05-13,2099.620117,2110.189941,2096.040039,2098.47998,3374260000,-0.030495491649840112,2096.3846598333334 -2015-05-14,2100.429932,2121.449951,2100.429932,2121.100098,3225740000,1.077928701516595,2098.4316650666665 -2015-05-15,2122.070068,2123.889893,2116.810059,2122.72998,3092080000,0.07684135234999889,2100.2906657 -2015-05-18,2121.300049,2131.780029,2120.01001,2129.199951,2888190000,0.3047948189811578,2101.9099935 -2015-05-19,2129.449951,2133.02002,2124.5,2127.830078,3296030000,-0.0643374521663298,2103.6266601666666 -2015-05-20,2127.790039,2134.719971,2122.590088,2125.850098,3025880000,-0.09305160315531413,2105.0916667 -2015-05-21,2125.550049,2134.280029,2122.949951,2130.820068,3070460000,0.23378741542858794,2106.4130045666666 -2015-05-22,2130.360107,2132.149902,2126.060059,2126.060059,2571860000,-0.22338859444231973,2107.2130045666668 -2015-05-26,2125.340088,2125.340088,2099.179932,2104.199951,3342130000,-1.028198046779627,2107.6053385333335 -2015-05-27,2105.129883,2126.219971,2105.129883,2123.47998,3127960000,0.9162641122027138,2108.526668266667 -2015-05-28,2122.27002,2122.27002,2112.860107,2120.790039,2980350000,-0.1266760706639669,2108.998673466667 -2015-05-29,2120.659912,2120.659912,2104.889893,2107.389893,3927390000,-0.6318468944864764,2109.0786702333335 -2015-06-01,2108.639893,2119.149902,2102.540039,2111.72998,3011710000,0.20594608593389463,2110.097005166667 -2015-06-02,2110.409912,2117.590088,2099.139893,2109.600098,3049350000,-0.10085958054164568,2110.4036783666666 -2015-06-03,2110.639893,2121.919922,2109.610107,2114.070068,3099980000,0.21188707775647853,2110.9630126666666 -2015-06-04,2112.350098,2112.889893,2093.22998,2095.840088,3200050000,-0.8623167356627159,2110.5590168999997 -2015-06-05,2095.090088,2100.98999,2085.669922,2092.830078,3243690000,-0.143618304527815,2109.8890217666662 -2015-06-08,2092.340088,2093.01001,2079.110107,2079.280029,2917150000,-0.6474509871794765,2108.608691366667 -2015-06-09,2079.070068,2085.620117,2072.139893,2080.149902,3034580000,0.04183529817378684,2107.6496907 -2015-06-10,2081.120117,2108.5,2081.120117,2105.199951,3414320000,1.204242491174079,2107.3310220666667 -2015-06-11,2106.23999,2115.02002,2106.23999,2108.860107,3128600000,0.17386262992553636,2107.3980223666667 -2015-06-12,2107.429932,2107.429932,2091.330078,2094.110107,2719400000,-0.6994299883164357,2107.684692266667 -2015-06-15,2091.340088,2091.340088,2072.48999,2084.429932,3061570000,-0.4622572121514512,2106.8893553666667 -2015-06-16,2084.26001,2097.399902,2082.100098,2096.290039,2919900000,0.5689856405305171,2106.282690333333 -2015-06-17,2097.399902,2106.790039,2088.860107,2100.439941,3222240000,0.19796411387709156,2106.6486896666665 -2015-06-18,2101.580078,2126.649902,2101.580078,2121.23999,3520360000,0.990271066265147,2108.0183592666667 -2015-06-19,2121.060059,2121.639893,2109.449951,2109.98999,4449810000,-0.5303501750407835,2108.7513589333334 -2015-06-22,2112.5,2129.870117,2112.5,2122.850098,3030020000,0.6094866829202239,2108.9763589333334 -2015-06-23,2123.159912,2128.030029,2119.889893,2124.199951,3091190000,0.06358682609157729,2109.6053547 -2015-06-24,2123.649902,2125.100098,2108.580078,2108.580078,3102480000,-0.7353296940171172,2109.9206867333332 -2015-06-25,2109.959961,2116.040039,2101.780029,2102.310059,3214610000,-0.2973574048915073,2110.048356033333 -2015-06-26,2102.620117,2108.919922,2095.379883,2101.48999,5025470000,-0.03900799487159823,2109.3946857666665 -2015-06-29,2098.629883,2098.629883,2056.639893,2057.639893,3678960000,-2.0866193609611283,2107.2250162 -2015-06-30,2061.189941,2074.280029,2056.320068,2063.110107,4078540000,0.26584894755439237,2105.0220214 -2015-07-01,2067.0,2082.780029,2067.0,2077.419922,3727260000,0.693604037489215,2103.3416828666664 -2015-07-02,2078.030029,2085.060059,2071.02002,2076.780029,2996540000,-0.03080229438562343,2101.7060139 -2015-07-06,2073.949951,2078.610107,2058.399902,2068.76001,3486360000,-0.3861756607829947,2099.6373453 -2015-07-07,2069.52002,2083.73999,2044.02002,2081.340088,4458660000,0.60809750474633,2098.1466796 -2015-07-08,2077.659912,2077.659912,2044.660034,2046.680054,3608780000,-1.6652748966799358,2096.2293497 -2015-07-09,2049.72998,2074.280029,2049.72998,2051.310059,3446810000,0.22622026295469055,2093.8236856666667 -2015-07-10,2052.73999,2081.310059,2052.73999,2076.620117,3065070000,1.2338484808258832,2092.3513549333334 -2015-07-13,2080.030029,2100.669922,2080.030029,2099.600098,3096730000,1.1066049496427866,2092.0916951 -2015-07-14,2099.719971,2111.97998,2098.179932,2108.949951,3002120000,0.4453158965322279,2091.9990274666666 -2015-07-15,2109.01001,2114.139893,2102.48999,2107.399902,3261810000,-0.07349861476158015,2091.9256876 -2015-07-16,2110.550049,2124.419922,2110.550049,2124.290039,3227080000,0.801468054732779,2092.2663533 -2015-07-17,2126.800049,2128.909912,2119.879883,2126.639893,3362750000,0.11061832220924384,2093.2930134666667 -2015-07-20,2126.850098,2132.820068,2123.659912,2128.280029,3245870000,0.0771233533894744,2094.4746785 -2015-07-21,2127.550049,2128.48999,2115.399902,2119.209961,3343690000,-0.42616891933443535,2095.8056762333335 -2015-07-22,2118.209961,2118.51001,2110.0,2114.149902,3694070000,-0.23877100868345824,2096.9390095666668 -2015-07-23,2114.159912,2116.870117,2098.629883,2102.149902,3772810000,-0.5676040279191108,2096.837341266667 -2015-07-24,2102.23999,2106.01001,2077.090088,2079.649902,3870040000,-1.0703328044585847,2095.863667766667 -2015-07-27,2078.189941,2078.189941,2063.52002,2067.639893,3836750000,-0.5775014817854696,2094.9813273 -2015-07-28,2070.75,2095.600098,2069.090088,2093.25,4117740000,1.2386154420169104,2095.2753295666666 -2015-07-29,2094.699951,2110.600098,2094.080078,2108.570068,4038900000,0.7318795174967141,2095.6846638666666 -2015-07-30,2106.780029,2110.47998,2094.969971,2108.629883,3579410000,0.0028367565729991995,2095.9576619333334 -2015-07-31,2111.600098,2114.23999,2102.070068,2103.840088,3681340000,-0.22715200228432542,2095.3776651999997 -2015-08-03,2104.48999,2105.699951,2087.310059,2098.040039,3476770000,-0.27568868152492154,2094.9793335 -2015-08-04,2097.679932,2102.51001,2088.600098,2093.320068,3546710000,-0.22497049209078135,2093.9949991666667 -2015-08-05,2095.27002,2112.659912,2095.27002,2099.840088,3968680000,0.3114678973210827,2093.1830037333334 -2015-08-06,2100.75,2103.320068,2075.530029,2083.560059,4246570000,-0.7752985140647484,2092.3490030999997 -2015-08-07,2082.610107,2082.610107,2067.909912,2077.570068,3602320000,-0.28748828113334124,2091.5243367333333 -2015-08-10,2080.97998,2105.350098,2080.97998,2104.179932,3514460000,1.2808166814617383,2091.6140014666667 -2015-08-11,2102.659912,2102.659912,2076.48999,2084.070068,3708880000,-0.9557102838104625,2092.4950073 -2015-08-12,2081.100098,2089.060059,2052.090088,2086.050049,4269130000,0.09500549095742272,2093.259672033333 -2015-08-13,2086.189941,2092.929932,2078.26001,2083.389893,3221300000,-0.1275211973593371,2093.4586710666667 -2015-08-14,2083.149902,2092.449951,2080.610107,2091.540039,2795590000,0.3911963875500968,2093.9506714 -2015-08-17,2089.699951,2102.870117,2079.300049,2102.439941,2867690000,0.5211424020938882,2095.073335766667 -2015-08-18,2101.98999,2103.469971,2094.139893,2096.919922,2949990000,-0.26255299342222704,2095.592663566667 -2015-08-19,2095.689941,2096.169922,2070.530029,2079.610107,3512920000,-0.8254876506438191,2096.690332 -2015-08-20,2076.610107,2076.610107,2035.72998,2035.72998,3922470000,-2.110017010029852,2096.1709960333333 -2015-08-21,2034.079956,2034.079956,1970.890015,1970.890015,5018240000,-3.1850965323014013,2092.6466593 -2015-08-24,1965.150024,1965.150024,1867.01001,1893.209961,6612690000,-3.941369300610109,2085.7669880666667 -2015-08-25,1898.079956,1948.040039,1867.079956,1867.609985,5183560000,-1.3521995197235293,2077.722322533333 -2015-08-26,1872.75,1943.089966,1872.75,1940.51001,5338250000,3.903385909558632,2072.1593261333337 -2015-08-27,1942.77002,1989.599976,1942.77002,1987.660034,5006390000,2.429774840481236,2067.6049926333335 -2015-08-28,1986.060059,1993.47998,1975.189941,1988.869995,3949080000,0.06087363931974732,2063.0126627 -2015-08-31,1986.72998,1986.72998,1965.97998,1972.180054,3915100000,-0.8391670165449949,2057.8093302 -2015-09-01,1970.089966,1970.089966,1903.069946,1913.849976,4371850000,-2.9576446573270077,2050.9639973666667 -2015-09-02,1916.52002,1948.910034,1916.52002,1948.859985,3742620000,1.8292974600429224,2045.4543334666666 -2015-09-03,1950.790039,1975.01001,1944.719971,1951.130005,3520700000,0.11647937858398905,2040.4203369 -2015-09-04,1947.76001,1947.76001,1911.209961,1921.219971,3167090000,-1.5329595630917514,2035.1393392 -2015-09-08,1927.300049,1970.420044,1927.300049,1969.410034,3548650000,2.5083053334552297,2031.8650105666668 -2015-09-09,1971.449951,1988.630005,1937.880005,1942.040039,3652120000,-1.389756045083701,2026.8246785333333 -2015-09-10,1941.589966,1965.290039,1937.189941,1952.290039,3626320000,0.527795503396411,2021.6153442333334 -2015-09-11,1951.449951,1961.050049,1939.189941,1961.050049,3218590000,0.4487043331167673,2016.6960164333332 -2015-09-14,1963.060059,1963.060059,1948.27002,1953.030029,3000200000,-0.4089655949418347,2011.6690144666668 -2015-09-15,1955.099976,1983.189941,1954.300049,1978.089966,3239860000,1.2831311668480172,2007.6706786999998 -2015-09-16,1978.02002,1997.26001,1977.930054,1995.310059,3630680000,0.8705414463438865,2004.4036784000002 -2015-09-17,1995.329956,2020.859985,1986.72998,1990.199951,4183790000,-0.25610596092323634,2000.7490071666666 -2015-09-18,1989.660034,1989.660034,1953.449951,1958.030029,6021240000,-1.6164165808483677,1996.5646728333334 -2015-09-21,1960.839966,1979.640015,1955.800049,1966.969971,3269350000,0.4565783909129095,1992.8780029333334 -2015-09-22,1961.390015,1961.390015,1929.219971,1942.73999,3808260000,-1.2318429542511833,1987.4966715333333 -2015-09-23,1943.23999,1949.52002,1932.569946,1938.76001,3190530000,-0.2048642649292498,1982.6530029333335 -2015-09-24,1934.810059,1937.170044,1908.920044,1932.23999,4091530000,-0.33629845707411343,1977.5260009666665 -2015-09-25,1935.930054,1952.890015,1921.5,1931.339966,3721870000,-0.046579307159455574,1972.4576700666664 -2015-09-28,1929.180054,1929.180054,1879.209961,1881.77002,4326660000,-2.566609031690281,1965.4653360999998 -2015-09-29,1881.900024,1899.47998,1871.910034,1884.089966,4132390000,0.12328530985949993,1958.1870036 -2015-09-30,1887.140015,1920.530029,1887.140015,1920.030029,4525070000,1.907555565210206,1952.2906738333334 -2015-10-01,1919.650024,1927.209961,1900.699951,1923.819946,3983600000,0.19738842324117378,1947.0976684666666 -2015-10-02,1921.77002,1951.359985,1893.699951,1951.359985,4378570000,1.4315289254205554,1944.2853353 -2015-10-05,1954.329956,1989.170044,1954.329956,1987.050049,4334490000,1.828984107204601,1944.8240030999998 -2015-10-06,1986.630005,1991.619995,1971.98999,1979.920044,4202400000,-0.35882362417535285,1947.7143391999998 -2015-10-07,1982.339966,1999.310059,1976.439941,1995.829956,4666470000,0.8035633584403401,1951.9883382333333 -2015-10-08,1994.01001,2016.5,1987.530029,2013.430054,3939140000,0.8818435632298893,1954.4190063666667 -2015-10-09,2013.72998,2020.130005,2007.609985,2014.890015,3706900000,0.07251113576554058,1955.3266724 -2015-10-12,2015.650024,2018.660034,2010.550049,2017.459961,2893250000,0.12754770636946855,1956.2796712666668 -2015-10-13,2015.0,2022.339966,2001.780029,2003.689941,3401920000,-0.6825424180004314,1957.330000833333 -2015-10-14,2003.660034,2009.560059,1990.72998,1994.23999,3644590000,-0.4716274113390928,1960.0096679666667 -2015-10-15,1996.469971,2024.150024,1996.469971,2023.859985,3746290000,1.485277356212289,1962.5096679666667 -2015-10-16,2024.369995,2033.540039,2020.459961,2033.109985,3595430000,0.45704742761638606,1965.2423339666666 -2015-10-19,2031.72998,2034.449951,2022.310059,2033.660034,3287320000,0.02705456193015099,1968.9903360666665 -2015-10-20,2033.130005,2039.119995,2026.609985,2030.77002,3331500000,-0.1421090030626071,1971.0356689333335 -2015-10-21,2033.469971,2037.969971,2017.219971,2018.939941,3627790000,-0.5825415425425584,1973.598999 -2015-10-22,2021.880005,2055.199951,2021.880005,2052.51001,4430850000,1.6627571884764603,1976.9396647 -2015-10-23,2058.189941,2079.73999,2058.189941,2075.149902,4108460000,1.1030344256396596,1980.7429931333334 -2015-10-26,2075.080078,2075.139893,2066.530029,2071.179932,3385800000,-0.19131003481598352,1984.6813232333334 -2015-10-27,2068.75,2070.370117,2058.840088,2065.889893,4216880000,-0.2554118509101144,1987.6079874666668 -2015-10-28,2066.47998,2090.350098,2063.110107,2090.350098,4698110000,1.1840033238402548,1990.7759887666666 -2015-10-29,2088.350098,2092.52002,2082.629883,2089.409912,4008940000,-0.044977441860072354,1994.0829874666665 -2015-10-30,2090.0,2094.320068,2079.340088,2079.360107,4256200000,-0.4809877153488018,1998.1273234 -2015-11-02,2080.76001,2106.199951,2080.76001,2104.050049,3760020000,1.1873817294504763,2002.6966593333334 -2015-11-03,2102.629883,2116.47998,2097.51001,2109.790039,4272060000,0.27280672352485436,2008.2649943000001 -2015-11-04,2110.600098,2114.590088,2096.97998,2102.310059,4078870000,-0.3545367008911171,2013.7166625999998 -2015-11-05,2101.679932,2108.780029,2090.409912,2099.929932,4051890000,-0.11321484144598548,2019.3063273333332 -2015-11-06,2098.600098,2101.909912,2083.73999,2099.199951,4369020000,-0.03476215986428777,2024.9016601666667 -2015-11-09,2096.560059,2096.560059,2068.23999,2078.580078,3882350000,-0.9822729364192928,2031.4619954333332 -2015-11-10,2077.189941,2083.669922,2069.909912,2081.719971,3821440000,0.15105951573544107,2038.0496622666665 -2015-11-11,2083.409912,2086.939941,2074.850098,2075.0,3692410000,-0.32280859546982565,2043.2153279666666 -2015-11-12,2072.290039,2072.290039,2045.660034,2045.969971,4016370000,-1.3990375421686796,2047.286995466667 -2015-11-13,2044.640015,2044.640015,2022.02002,2023.040039,4278750000,-1.120736488072338,2049.6763306000003 -2015-11-16,2022.079956,2053.219971,2019.390015,2053.189941,3741240000,1.490326509548634,2051.8809936666667 -2015-11-17,2053.669922,2066.689941,2045.900024,2050.439941,4427350000,-0.13393792484004408,2054.2316569000004 -2015-11-18,2051.98999,2085.310059,2051.98999,2083.580078,3926390000,1.616245193889343,2057.156660966667 -2015-11-19,2083.699951,2086.73999,2078.76001,2081.23999,3628110000,-0.11231092218189076,2059.4169921666667 -2015-11-20,2082.820068,2097.060059,2082.820068,2089.169922,3929600000,0.38101958630922805,2061.892989066667 -2015-11-23,2089.409912,2095.610107,2081.389893,2086.590088,3587980000,-0.12348607802712408,2064.1973266333334 -2015-11-24,2084.419922,2094.120117,2070.290039,2089.139893,3884930000,0.12219961240418353,2067.045658366667 -2015-11-25,2089.300049,2093.0,2086.300049,2088.870117,2852940000,-0.012913256833779752,2070.1999959333334 -2015-11-27,2088.820068,2093.290039,2084.129883,2090.110107,1466840000,0.05936175686120926,2072.4083333333333 -2015-11-30,2090.949951,2093.810059,2080.409912,2080.409912,4275030000,-0.46409971261862637,2073.9849975666666 -2015-12-01,2082.929932,2103.370117,2082.929932,2102.629883,3712120000,1.0680573511899327,2076.2839925333333 -2015-12-02,2101.709961,2104.27002,2077.110107,2079.51001,3950640000,-1.0995693149292163,2077.908658866667 -2015-12-03,2080.709961,2085.0,2042.349976,2049.620117,4306490000,-1.4373526867514363,2078.9313314 -2015-12-04,2051.23999,2093.840088,2051.23999,2091.689941,4214910000,2.0525668952535936,2080.2373291 -2015-12-07,2090.419922,2090.419922,2066.780029,2077.070068,4043820000,-0.6989502943734904,2080.301334633333 -2015-12-08,2073.389893,2073.850098,2052.320068,2063.590088,4173570000,-0.6489901427822242,2080.048339833333 -2015-12-09,2061.169922,2080.330078,2036.530029,2047.619995,4385250000,-0.7738985127360154,2079.439343233333 -2015-12-10,2047.930054,2067.649902,2045.670044,2052.22998,3715150000,0.22513869815967702,2078.1686726333332 -2015-12-11,2047.27002,2047.27002,2008.800049,2012.369995,4301060000,-1.942276713061175,2075.6006754 -2015-12-14,2013.369995,2022.920044,1993.26001,2021.939941,4612440000,0.47555598740678384,2073.6866698666668 -2015-12-15,2025.550049,2053.870117,2025.550049,2043.410034,4353540000,1.0618561196917398,2071.6653360333335 -2015-12-16,2046.5,2076.719971,2042.430054,2073.070068,4635450000,1.4514969343641715,2070.4413369999997 -2015-12-17,2073.76001,2076.370117,2041.660034,2041.890015,4327390000,-1.5040520569611582,2068.4273355333335 -2015-12-18,2040.810059,2040.810059,2005.329956,2005.550049,6683070000,-1.779722009170015,2065.2813394333334 -2015-12-21,2010.27002,2022.900024,2005.930054,2021.150024,3760280000,0.7778402243204363,2062.6796752 -2015-12-22,2023.150024,2042.73999,2020.48999,2038.969971,3520860000,0.8816736406698222,2061.3593382999998 -2015-12-23,2042.199951,2064.72998,2042.199951,2064.290039,3484090000,1.2418068122691306,2060.7783405666664 -2015-12-24,2063.52002,2067.360107,2058.72998,2060.98999,1411860000,-0.15986363048084984,2060.3113402333333 -2015-12-28,2057.77002,2057.77002,2044.199951,2056.5,2492510000,-0.21785598289102426,2060.6623412 -2015-12-29,2060.540039,2081.560059,2060.540039,2078.360107,2542000000,1.0629762703622703,2062.5063434666667 -2015-12-30,2077.340088,2077.340088,2061.969971,2063.360107,2367430000,-0.7217228597430903,2062.845349 -2015-12-31,2060.590088,2062.540039,2043.619995,2043.939941,2655330000,-0.9411913089778401,2062.6286823333335 -2016-01-04,2038.199951,2038.199951,1989.680054,2012.660034,4304880000,-1.5303730981790165,2060.264680866667 -2016-01-05,2013.780029,2021.939941,2004.170044,2016.709961,3706620000,0.2012226074739054,2058.1136799 -2016-01-06,2011.709961,2011.709961,1979.050049,1990.26001,4336660000,-1.3115396617015107,2054.8166828333333 -2016-01-07,1985.319946,1985.319946,1938.829956,1943.089966,5076590000,-2.370044303909813,2050.033345433333 -2016-01-08,1945.969971,1960.400024,1918.459961,1922.030029,4664940000,-1.0838374634476344,2044.4630166333334 -2016-01-11,1926.119995,1935.650024,1901.099976,1923.670044,4607290000,0.08532723085774574,2038.9563475333334 -2016-01-12,1927.829956,1947.380005,1914.349976,1938.680054,4887260000,0.7802798638371966,2033.9086791 -2016-01-13,1940.339966,1950.329956,1886.410034,1890.280029,5087030000,-2.496545260273253,2027.5710163333335 -2016-01-14,1891.680054,1934.469971,1878.930054,1921.839966,5241110000,1.6695905641396447,2021.5446857666668 -2016-01-15,1916.680054,1916.680054,1857.829956,1880.329956,5468460000,-2.1599098121783955,2014.9053506333332 -2016-01-19,1888.660034,1901.439941,1864.599976,1881.329956,4928350000,0.05318215544081184,2009.2956786 -2016-01-20,1876.180054,1876.180054,1812.290039,1859.329956,6416070000,-1.1693855152753452,2001.5503457666666 -2016-01-21,1861.459961,1889.849976,1848.97998,1868.98999,5078810000,0.5195438264643304,1994.6143431666667 -2016-01-22,1877.400024,1908.849976,1877.400024,1906.900024,4901760000,2.028370093089693,1989.3913410333334 -2016-01-25,1906.280029,1906.280029,1875.969971,1877.079956,4401380000,-1.5637981868314221,1983.7066730666668 -2016-01-26,1878.790039,1906.72998,1878.790039,1903.630005,4357940000,1.4144335682203524,1978.7533405666666 -2016-01-27,1902.52002,1916.98999,1872.699951,1882.949951,4754040000,-1.0863483946818686,1974.4393391 -2016-01-28,1885.219971,1902.959961,1873.650024,1893.359985,4693010000,0.552857711086352,1970.1533405666667 -2016-01-29,1894.0,1940.23999,1894.0,1940.23999,5497570000,2.476021748183288,1966.7143391 -2016-02-01,1936.939941,1947.199951,1920.300049,1939.380005,4322530000,-0.04432364060282801,1962.2580036666666 -2016-02-02,1935.26001,1935.26001,1897.290039,1903.030029,4463190000,-1.8743091042644822,1957.6293374666668 -2016-02-03,1907.069946,1918.01001,1872.22998,1912.530029,5172950000,0.4992038935398124,1954.5286701333332 -2016-02-04,1911.670044,1927.349976,1900.52002,1915.449951,5193320000,0.15267326294097217,1951.0053343666666 -2016-02-05,1913.069946,1913.069946,1872.650024,1880.050049,4929940000,-1.8481246133065898,1945.7080036333334 -2016-02-08,1873.25,1873.25,1828.459961,1853.439941,5636460000,-1.4153935962584518,1938.6796670333335 -2016-02-09,1848.459961,1868.25,1834.939941,1852.209961,5183220000,-0.06636201005447706,1931.7203327333334 -2016-02-10,1857.099976,1881.599976,1850.319946,1851.859985,4471170000,-0.01889505009523562,1924.8989989000002 -2016-02-11,1847.0,1847.0,1810.099976,1829.079956,5500800000,-1.2301161634528213,1916.5896605333332 -2016-02-12,1833.400024,1864.780029,1833.400024,1864.780029,4696920000,1.9518049434029239,1909.9703246 -2016-02-16,1871.439941,1895.77002,1871.439941,1895.579956,4570670000,1.651665425466664,1905.0249917666665 -2016-02-17,1898.800049,1930.680054,1898.800049,1926.819946,5011540000,1.6480439087318555,1902.1636555 -2016-02-18,1927.569946,1930.0,1915.089966,1917.829956,4436490000,-0.46657135860892485,1898.8676553333332 -2016-02-19,1916.73999,1918.780029,1902.170044,1917.780029,4142850000,-0.0026033069221664817,1896.4516559666665 -2016-02-22,1924.439941,1946.699951,1924.439941,1945.5,4054710000,1.4454197343192865,1896.5319904333332 -2016-02-23,1942.380005,1942.380005,1919.439941,1921.27002,3890650000,-1.2454371626831162,1896.5066568 -2016-02-24,1917.560059,1932.079956,1891.0,1929.800049,4317250000,0.4439786657369549,1896.7109902999998 -2016-02-25,1931.869995,1951.829956,1925.410034,1951.699951,4118210000,1.1348275180813827,1897.1449868666668 -2016-02-26,1954.949951,1962.959961,1945.780029,1948.050049,4348510000,-0.18701143063153403,1899.0706542 -2016-02-29,1947.130005,1958.27002,1931.810059,1932.22998,4588180000,-0.8120976670040303,1899.4169880000002 -2016-03-01,1937.089966,1978.349976,1937.089966,1978.349976,4819750000,2.3868792264572836,1902.684322 -2016-03-02,1976.599976,1986.51001,1968.800049,1986.449951,4666610000,0.409430843797276,1906.1883218333335 -2016-03-03,1985.599976,1993.689941,1977.369995,1993.400024,5081700000,0.3498740552965396,1910.6573240999999 -2016-03-04,1994.01001,2009.130005,1986.77002,1999.98999,6049930000,0.3305892405266686,1915.0239907666667 -2016-03-07,1996.109985,2006.119995,1989.380005,2001.76001,4968180000,0.08850144294971773,1918.1859903 -2016-03-08,1996.880005,1996.880005,1977.430054,1979.26001,4641650000,-1.1240108648189029,1921.5919921 -2016-03-09,1981.439941,1992.689941,1979.839966,1989.26001,4038120000,0.5052393293188295,1924.4463256000001 -2016-03-10,1990.969971,2005.079956,1969.25,1989.569946,4376790000,0.015580467030051892,1928.000325433333 -2016-03-11,1994.709961,2022.369995,1994.709961,2022.189941,4078620000,1.6395500477669467,1932.2946573000002 -2016-03-14,2019.27002,2024.569946,2012.050049,2019.640015,3487850000,-0.12609725467921384,1934.9413247999998 -2016-03-15,2015.27002,2015.939941,2005.22998,2015.930054,3560280000,-0.18369417185468695,1937.4929931000001 -2016-03-16,2014.23999,2032.02002,2010.040039,2027.219971,4057020000,0.5600351548705085,1941.6326578333333 -2016-03-17,2026.900024,2046.23999,2022.160034,2040.589966,4530480000,0.6595236427847873,1945.9013224 -2016-03-18,2041.160034,2052.360107,2041.160034,2049.580078,6503140000,0.4405643539266535,1950.3723266333334 -2016-03-21,2047.880005,2053.909912,2043.140015,2051.600098,3376600000,0.09855774954501406,1956.0906616 -2016-03-22,2048.639893,2056.600098,2040.569946,2049.800049,3418460000,-0.08773878504659827,1962.6359985333333 -2016-03-23,2048.550049,2048.550049,2034.859985,2036.709961,3639510000,-0.6386031655324587,1968.7859985333334 -2016-03-24,2032.47998,2036.040039,2022.48999,2035.939941,3407720000,-0.03780705229240455,1974.9219970666666 -2016-03-28,2037.890015,2042.670044,2031.959961,2037.050049,2809090000,0.054525576989994384,1981.8543335000002 -2016-03-29,2035.75,2055.909912,2028.310059,2055.01001,3822330000,0.8816651809226084,1988.1953328666668 -2016-03-30,2058.27002,2072.209961,2058.27002,2063.949951,3590310000,0.4350315062455534,1993.8076660333334 -2016-03-31,2063.77002,2067.919922,2057.459961,2059.73999,3715280000,-0.2039759248018691,1998.2383341666666 -2016-04-01,2056.620117,2075.070068,2043.97998,2072.780029,3749990000,0.6330915097686685,2003.4033365999999 -2016-04-04,2073.189941,2074.02002,2062.570068,2066.129883,3485710000,-0.32083221118298644,2008.3483317333335 -2016-04-05,2062.5,2062.5,2042.560059,2045.170044,4154920000,-1.0144492450574583,2011.6706665333334 -2016-04-06,2045.560059,2067.330078,2043.089966,2066.659912,3750800000,1.0507619189438877,2016.5169962666666 -2016-04-07,2063.01001,2063.01001,2033.800049,2041.910034,3801250000,-1.197578656086118,2020.2539957666668 -2016-04-08,2045.540039,2060.629883,2041.689941,2047.599976,3359530000,0.27865782063147826,2023.4506632666667 -2016-04-11,2050.22998,2062.929932,2041.880005,2041.98999,3567840000,-0.2739786123146515,2026.5819946333334 -2016-04-12,2043.719971,2065.050049,2039.73999,2061.719971,4239740000,0.9662134044055692,2030.8983276666665 -2016-04-13,2065.919922,2083.179932,2065.919922,2082.419922,4191830000,1.0040137017230277,2034.3673258666668 -2016-04-14,2082.889893,2087.840088,2078.129883,2082.780029,3765870000,0.01729271777490826,2037.5783284666666 -2016-04-15,2083.100098,2083.219971,2076.310059,2080.72998,3701450000,-0.09842849323767888,2040.489327 -2016-04-18,2078.830078,2094.659912,2073.649902,2094.340088,3316880000,0.6541025568344017,2043.6343302666667 -2016-04-19,2096.050049,2104.050049,2091.679932,2100.800049,3896830000,0.3084485197515807,2046.9356649000001 -2016-04-20,2101.52002,2111.050049,2096.320068,2102.399902,4184880000,0.07615446318947061,2051.0403279666666 -2016-04-21,2102.090088,2103.780029,2088.52002,2091.47998,4175290000,-0.5194027068595286,2054.4476603 -2016-04-22,2091.48999,2094.320068,2081.199951,2091.580078,3790580000,0.00478598891489046,2057.8479980333336 -2016-04-25,2089.370117,2089.370117,2077.52002,2087.790039,3319740000,-0.18120458498649405,2060.034667966667 -2016-04-26,2089.840088,2096.870117,2085.800049,2091.699951,3557190000,0.18727515348586632,2062.4366658333333 -2016-04-27,2092.330078,2099.889893,2082.310059,2095.149902,4100110000,0.16493527182761536,2065.0773274333333 -2016-04-28,2090.929932,2099.300049,2071.620117,2075.810059,4309840000,-0.9230768157227676,2066.696997033333 -2016-04-29,2071.820068,2073.850098,2052.280029,2065.300049,4704720000,-0.5063088481738531,2067.5206664666666 -2016-05-02,2067.169922,2083.419922,2066.110107,2081.429932,3841110000,0.7809946553678726,2068.5823282666665 -2016-05-03,2077.179932,2077.179932,2054.889893,2063.370117,4173390000,-0.8676638460102692,2068.974662233333 -2016-05-04,2060.300049,2060.300049,2045.550049,2051.120117,4058560000,-0.5936889314754001,2069.0186645 -2016-05-05,2052.949951,2060.22998,2045.77002,2050.629883,4008530000,-0.02390079429950287,2069.4826619 -2016-05-06,2047.77002,2057.719971,2039.449951,2057.139893,3796350000,0.3174639194507334,2070.1893269666666 -2016-05-09,2057.550049,2064.149902,2054.310059,2058.689941,3788620000,0.07534966412710009,2070.9106567 -2016-05-10,2062.629883,2084.870117,2062.629883,2084.389893,3600200000,1.2483643839788838,2071.8899861333334 -2016-05-11,2083.290039,2083.290039,2064.459961,2064.459961,3821980000,-0.9561518249023626,2071.9069864666667 -2016-05-12,2067.169922,2073.98999,2053.129883,2064.110107,3782390000,-0.01694651417848414,2072.0526570333336 -2016-05-13,2062.5,2066.790039,2043.130005,2046.609985,3579880000,-0.8478288992748939,2071.1803222333333 -2016-05-16,2046.530029,2071.879883,2046.530029,2066.659912,3501360000,0.9796652584981969,2071.197989866667 -2016-05-17,2065.040039,2065.689941,2040.819946,2047.209961,4108960000,-0.9411297372666105,2071.2659871 -2016-05-18,2044.380005,2060.610107,2034.48999,2047.630005,4101320000,0.020517875938574903,2070.6316568666666 -2016-05-19,2044.209961,2044.209961,2025.910034,2040.040039,3846770000,-0.37067077457677566,2070.5693237 -2016-05-20,2041.880005,2058.350098,2041.880005,2052.320068,3507650000,0.6019503914256319,2070.7266601 -2016-05-23,2052.22998,2055.580078,2047.26001,2048.040039,3055480000,-0.20854588262010365,2070.9283284 -2016-05-24,2052.649902,2079.669922,2052.649902,2076.060059,3627340000,1.3681382915580853,2071.406331333333 -2016-05-25,2078.929932,2094.72998,2078.929932,2090.540039,3859160000,0.6974740416216374,2071.6770019 -2016-05-26,2091.439941,2094.300049,2087.080078,2090.100098,3230990000,-0.021044370918177346,2071.9210042 -2016-05-27,2090.060059,2099.060059,2090.060059,2099.060059,3079150000,0.42868573656227316,2072.5320068333335 -2016-05-31,2100.129883,2103.47998,2088.659912,2096.949951,4514410000,-0.10052632800822137,2072.6190022666665 -2016-06-01,2093.939941,2100.969971,2085.100098,2099.330078,3525170000,0.11350423498972528,2072.5700032333334 -2016-06-02,2097.709961,2105.26001,2088.590088,2105.26001,3632720000,0.28246782448091423,2072.6653401666667 -2016-06-03,2104.070068,2104.070068,2085.360107,2099.129883,3627780000,-0.29118146788909005,2072.920336933333 -2016-06-06,2100.830078,2113.360107,2100.830078,2109.409912,3442020000,0.48972810511886955,2073.514664733333 -2016-06-07,2110.179932,2119.219971,2110.179932,2112.129883,3534730000,0.1289446391868454,2074.3259928666666 -2016-06-08,2112.709961,2120.550049,2112.709961,2119.120117,3562060000,0.33095663558677657,2075.2399984 -2016-06-09,2115.649902,2117.639893,2107.72998,2115.47998,3290320000,-0.1717758691825888,2075.9176676666666 -2016-06-10,2109.570068,2109.570068,2089.959961,2096.070068,3515010000,-0.917518113312521,2076.5930013 -2016-06-13,2091.75,2098.120117,2078.459961,2079.060059,3392030000,-0.8115191023280288,2077.0516683 -2016-06-14,2076.649902,2081.300049,2064.100098,2075.320068,3759770000,-0.17988855029992257,2076.8480061666664 -2016-06-15,2077.600098,2085.649902,2069.800049,2071.5,3544720000,-0.1840712697237734,2077.1190022666665 -2016-06-16,2066.360107,2079.620117,2050.370117,2077.98999,3628280000,0.3132990586531603,2078.0146647 -2016-06-17,2078.199951,2078.199951,2062.840088,2071.219971,4952630000,-0.32579651646926777,2078.701000966667 -2016-06-20,2075.580078,2100.659912,2075.580078,2083.25,3467440000,0.5808185112367248,2079.571337866667 -2016-06-21,2085.189941,2093.659912,2083.02002,2088.899902,3232880000,0.2712061442457836,2080.5783365666666 -2016-06-22,2089.75,2099.709961,2084.360107,2085.449951,3168160000,-0.16515635798043382,2080.6136718333332 -2016-06-23,2092.800049,2113.320068,2092.800049,2113.320068,3297940000,1.3364078570495375,2082.2423420666664 -2016-06-24,2103.810059,2103.810059,2032.569946,2037.410034,7597450000,-3.591979991551375,2081.3523396333335 -2016-06-27,2031.449951,2031.449951,1991.680054,2000.540039,5431220000,-1.8096502120201086,2079.816674766667 -2016-06-28,2006.670044,2036.089966,2006.670044,2036.089966,4385810000,1.777016520887531,2078.7976765666667 -2016-06-29,2042.689941,2073.129883,2042.689941,2070.77002,4241740000,1.7032672710494579,2079.5830118666663 -2016-06-30,2073.169922,2098.939941,2070.0,2098.860107,4622820000,1.3565044272757953,2081.2906819333334 -2016-07-01,2099.340088,2108.709961,2097.899902,2102.949951,3458890000,0.19486024753911924,2083.387679 -2016-07-05,2095.050049,2095.050049,2080.860107,2088.550049,3658380000,-0.6847477275030989,2084.595345033333 -2016-07-06,2084.429932,2100.719971,2074.02002,2099.72998,3909380000,0.5352962934909389,2086.318343066667 -2016-07-07,2100.419922,2109.080078,2089.389893,2097.899902,3604550000,-0.0871577782587063,2087.0463378333334 -2016-07-08,2106.969971,2131.709961,2106.969971,2129.899902,3607500000,1.5253349299217511,2088.3583332666667 -2016-07-11,2131.719971,2143.159912,2131.719971,2137.159912,3253340000,0.3408615584790109,2089.9269937333333 -2016-07-12,2139.5,2155.399902,2139.5,2152.139893,4097820000,0.70092934627346,2091.696321533333 -2016-07-13,2153.810059,2156.449951,2146.209961,2152.429932,3502320000,0.013476772627241118,2093.545654233333 -2016-07-14,2157.879883,2168.98999,2157.879883,2163.75,3465610000,0.5259203949780522,2095.6929849666662 -2016-07-15,2165.129883,2169.050049,2155.790039,2161.73999,3122600000,-0.09289474292316635,2097.5756509666667 -2016-07-18,2162.040039,2168.350098,2159.629883,2166.889893,3009310000,0.2382295291673886,2099.8343179666667 -2016-07-19,2163.790039,2164.629883,2159.01001,2163.780029,2968340000,-0.14351739837110689,2101.6466552 -2016-07-20,2166.100098,2175.629883,2164.889893,2173.02002,3211860000,0.4270300527854598,2103.6763264333335 -2016-07-21,2172.909912,2174.560059,2159.75,2165.169922,3438900000,-0.3612529073708126,2105.2113199333335 -2016-07-22,2166.469971,2175.110107,2163.23999,2175.030029,3023280000,0.4553964517894249,2107.1963215666665 -2016-07-25,2173.709961,2173.709961,2161.949951,2168.47998,3057240000,-0.3011475203867131,2109.6099853 -2016-07-26,2168.969971,2173.540039,2160.179932,2169.179932,3442350000,0.03227846263076373,2112.613981066667 -2016-07-27,2169.810059,2174.97998,2159.070068,2166.580078,3995500000,-0.11985423438815035,2115.6559814 -2016-07-28,2166.050049,2172.850098,2159.73999,2170.060059,3664240000,0.16062092674702377,2118.9413167000002 -2016-07-29,2168.830078,2177.090088,2163.48999,2173.600098,4038840000,0.16313092282023156,2122.1283203 -2016-08-01,2173.149902,2178.290039,2166.209961,2170.840088,3505990000,-0.12697873921424518,2125.448990866667 -2016-08-02,2169.939941,2170.199951,2147.580078,2157.030029,3848750000,-0.6361619668044383,2127.9083251666666 -2016-08-03,2156.810059,2163.790039,2152.560059,2163.790039,3786530000,0.31339433893435853,2130.4046630666667 -2016-08-04,2163.51001,2168.189941,2159.070068,2164.25,3709200000,0.02125719185825936,2133.0313313666666 -2016-08-05,2168.790039,2182.870117,2168.790039,2182.870117,3663070000,0.8603496361325957,2135.3496663333335 -2016-08-08,2183.76001,2185.439941,2177.850098,2180.889893,3327550000,-0.09071652887535642,2140.1323283 -2016-08-09,2182.23999,2187.659912,2178.610107,2181.73999,3334300000,0.0389793635491964,2146.1723266666663 -2016-08-10,2182.810059,2183.409912,2172.0,2175.48999,3254950000,-0.28646859977113914,2150.8189941333335 -2016-08-11,2177.969971,2188.449951,2177.969971,2185.790039,3423160000,0.4734588091577452,2154.652994766667 -2016-08-12,2183.73999,2186.280029,2179.419922,2184.050049,3000660000,-0.07960462665462797,2157.4926595 -2016-08-15,2186.080078,2193.810059,2186.080078,2190.149902,3078530000,0.27929089824627606,2160.3993245333336 -2016-08-16,2186.23999,2186.23999,2178.139893,2178.149902,3196400000,-0.5479077020728917,2163.3859863000002 -2016-08-17,2177.840088,2183.080078,2168.5,2182.219971,3388910000,0.18685899424382146,2166.1356526666664 -2016-08-18,2181.899902,2187.030029,2180.459961,2187.02002,3300570000,0.21996173913669814,2169.1063232666665 -2016-08-19,2184.23999,2185.0,2175.129883,2183.870117,3084800000,-0.14402716807320193,2170.9053304333333 -2016-08-22,2181.580078,2185.149902,2175.959961,2182.639893,2777550000,-0.05633228782350175,2172.4213298 -2016-08-23,2187.810059,2193.419922,2186.800049,2186.899902,3041490000,0.19517690543742194,2173.5799967666667 -2016-08-24,2185.090088,2186.659912,2171.25,2175.439941,3148280000,-0.5240276882137795,2174.346997066667 -2016-08-25,2173.290039,2179.0,2169.73999,2172.469971,2969310000,-0.1365227301395766,2174.637662766667 -2016-08-26,2175.100098,2187.939941,2160.389893,2169.040039,3342340000,-0.15788167596264557,2174.8809977333335 -2016-08-29,2170.189941,2183.47998,2170.189941,2180.379883,2654780000,0.522804733711979,2175.3306640666665 -2016-08-30,2179.449951,2182.27002,2170.409912,2176.120117,3006800000,-0.1953680655931933,2175.742000333333 -2016-08-31,2173.560059,2173.790039,2161.350098,2170.949951,3766390000,-0.2375864254739568,2175.6729980333334 -2016-09-01,2171.330078,2173.560059,2157.090088,2170.860107,3392120000,-0.0041384648208353525,2175.8626708666666 -2016-09-02,2177.48999,2184.870117,2173.590088,2179.97998,3091120000,0.42010413156485793,2176.027669233333 -2016-09-06,2181.610107,2186.570068,2175.100098,2186.47998,3447650000,0.2981678758352535,2176.627669233333 -2016-09-07,2185.169922,2187.870117,2179.070068,2186.159912,3319420000,-0.014638505859998485,2177.193668566667 -2016-09-08,2182.76001,2184.939941,2177.48999,2181.300049,3727840000,-0.22230135011277463,2177.6843342666666 -2016-09-09,2169.080078,2169.080078,2127.810059,2127.810059,4233960000,-2.4522068857295465,2176.2760009333333 -2016-09-12,2120.860107,2163.300049,2119.120117,2159.040039,4010480000,1.4677052525391865,2175.7906656333334 -2016-09-13,2150.469971,2150.469971,2120.27002,2127.02002,4141670000,-1.4830674013266876,2174.3299967 -2016-09-14,2127.860107,2141.330078,2119.899902,2125.77002,3664100000,-0.058767665007686265,2173.2879964000003 -2016-09-15,2125.360107,2151.310059,2122.360107,2147.26001,3373720000,1.0109273250546558,2172.7369954333335 -2016-09-16,2146.47998,2146.47998,2131.199951,2139.159912,5014360000,-0.37722949071267164,2171.9006591666666 -2016-09-19,2143.98999,2153.610107,2135.909912,2139.120117,3163000000,-0.0018603097307945404,2170.442325833333 -2016-09-20,2145.939941,2150.800049,2139.169922,2139.76001,3140730000,0.02991384143951059,2169.071329733333 -2016-09-21,2144.580078,2165.110107,2139.570068,2163.120117,3712090000,1.0917162154086668,2168.4506673 -2016-09-22,2170.939941,2179.98999,2170.939941,2177.179932,3552830000,0.6499784681166743,2168.5069987 -2016-09-23,2173.290039,2173.75,2163.969971,2164.689941,3317190000,-0.5736774814255385,2167.8036621 -2016-09-26,2158.540039,2158.540039,2145.040039,2146.100098,3216170000,-0.8587762454059567,2166.538663733333 -2016-09-27,2146.040039,2161.129883,2141.550049,2159.929932,3437770000,0.6444170061260746,2165.5313314 -2016-09-28,2161.850098,2172.399902,2151.790039,2171.370117,3891460000,0.5296553758763256,2165.3053385666667 -2016-09-29,2168.899902,2172.669922,2145.199951,2151.129883,4249220000,-0.9321411325289963,2164.2690023 -2016-09-30,2156.51001,2175.300049,2156.51001,2168.27002,4173340000,0.7967969361336813,2163.6440023 -2016-10-03,2164.330078,2164.409912,2154.77002,2161.199951,3137550000,-0.32606958242220596,2162.8883301 -2016-10-04,2163.370117,2165.459961,2144.01001,2150.48999,3750890000,-0.4955562300028915,2161.8166666666666 -2016-10-05,2155.149902,2163.949951,2155.149902,2159.72998,3906550000,0.429669054167503,2160.9110026 -2016-10-06,2158.219971,2162.929932,2150.280029,2160.77002,3461550000,0.048156019948386586,2160.4220052333335 -2016-10-07,2164.189941,2165.860107,2144.850098,2153.73999,3619890000,-0.3253483681710745,2159.7976725333333 -2016-10-10,2160.389893,2169.600098,2160.389893,2163.659912,2916550000,0.4605905098135743,2159.6183349666667 -2016-10-11,2161.350098,2161.560059,2128.840088,2136.72998,3438270000,-1.2446471763257416,2158.1633382 -2016-10-12,2137.669922,2145.360107,2132.77002,2139.179932,2977100000,0.11465894253985809,2156.9319987 -2016-10-13,2130.26001,2138.189941,2114.719971,2132.550049,3580450000,-0.30992638350910706,2155.652001966667 -2016-10-14,2139.679932,2149.189941,2132.97998,2132.97998,3228150000,0.020160417815362486,2154.3893310666667 -2016-10-17,2132.949951,2135.610107,2124.429932,2126.5,2830390000,-0.30379938212078406,2152.6066650666667 -2016-10-18,2138.310059,2144.379883,2135.48999,2139.600098,3170000000,0.6160403479896548,2151.0440023333335 -2016-10-19,2140.810059,2148.439941,2138.149902,2144.290039,3362670000,0.2191970828747003,2149.6483399 -2016-10-20,2142.51001,2147.179932,2133.439941,2141.340088,3337170000,-0.1375723874264545,2148.3163412 -2016-10-21,2139.429932,2142.629883,2130.090088,2141.159912,3448850000,-0.00841417022030555,2148.7613363 -2016-10-24,2148.5,2154.790039,2146.909912,2151.330078,3357320000,0.4749839534638145,2148.5043376000003 -2016-10-25,2149.719971,2151.439941,2141.929932,2143.159912,3751340000,-0.3797727779455973,2149.0423339999998 -2016-10-26,2136.969971,2145.72998,2131.590088,2139.429932,3775200000,-0.17404114266579285,2149.4976644000003 -2016-10-27,2144.060059,2147.129883,2132.52002,2133.040039,4204830000,-0.298672693338764,2149.0236653666666 -2016-10-28,2132.22998,2140.719971,2119.360107,2126.409912,4019510000,-0.31082993655890956,2148.598665366667 -2016-10-31,2129.780029,2133.25,2125.530029,2126.149902,3922400000,-0.012227651805640782,2148.166324866667 -2016-11-01,2128.679932,2131.449951,2097.850098,2111.719971,4532160000,-0.6786883176217451,2147.2316569 -2016-11-02,2109.429932,2111.76001,2094.0,2097.939941,4248580000,-0.6525500629458225,2145.0589843666667 -2016-11-03,2098.800049,2102.560059,2085.22998,2088.659912,3886740000,-0.44234006982948326,2142.1083170333336 -2016-11-04,2083.790039,2099.070068,2083.790039,2085.179932,3837860000,-0.16661305078947697,2139.4579834 -2016-11-07,2100.590088,2132.0,2100.590088,2131.52002,3736060000,2.2223544015960606,2138.9719808 -2016-11-08,2129.919922,2146.870117,2123.560059,2139.560059,3916930000,0.3771974424148228,2138.2929850333335 -2016-11-09,2131.560059,2170.100098,2125.350098,2163.26001,6264150000,1.1077020670818172,2138.022648133333 -2016-11-10,2167.48999,2182.300049,2151.169922,2167.47998,6451640000,0.19507456248868404,2138.5676513666667 -2016-11-11,2162.709961,2165.919922,2152.48999,2164.449951,4988050000,-0.13979501669952876,2138.4403157333336 -2016-11-14,2165.639893,2171.360107,2156.080078,2164.199951,5367200000,-0.011550278623184695,2138.540315733333 -2016-11-15,2168.290039,2180.840088,2166.379883,2180.389893,4543860000,0.7480797692708263,2139.5369791666667 -2016-11-16,2177.530029,2179.219971,2172.199951,2176.939941,3830590000,-0.15822638011099288,2140.1106445333335 -2016-11-17,2178.610107,2188.060059,2176.649902,2187.120117,3809160000,0.46763697097327306,2140.9889811000003 -2016-11-18,2186.850098,2189.889893,2180.379883,2181.899902,3572400000,-0.23867984933356734,2141.9276448333335 -2016-11-21,2186.429932,2198.699951,2186.429932,2198.179932,3607010000,0.746140094927239,2143.0783121666664 -2016-11-22,2201.560059,2204.800049,2194.51001,2202.939941,3957940000,0.21654319242507825,2145.285310866667 -2016-11-23,2198.550049,2204.719971,2194.51001,2204.719971,3418640000,0.08080247522281869,2147.4699788333332 -2016-11-25,2206.27002,2213.350098,2206.27002,2213.350098,1584600000,0.3914386912404755,2150.1633138 -2016-11-28,2210.209961,2211.139893,2200.360107,2201.719971,3505650000,-0.5254535651864956,2152.4546468333333 -2016-11-29,2200.76001,2210.459961,2198.149902,2204.659912,3706560000,0.13352928795322683,2155.059977233333 -2016-11-30,2204.969971,2214.100098,2198.810059,2198.810059,5533980000,-0.2653403805348509,2157.0336426 -2016-12-01,2200.169922,2202.600098,2187.439941,2191.080078,5063740000,-0.3515529214704216,2158.593310566667 -2016-12-02,2191.120117,2197.949951,2188.370117,2191.949951,3779500000,0.03970064849452282,2160.280306 -2016-12-05,2200.649902,2209.419922,2199.969971,2204.709961,3895230000,0.5821305360635076,2162.398640966667 -2016-12-06,2207.26001,2212.780029,2202.209961,2212.22998,3855320000,0.3410888113640542,2164.4286377 -2016-12-07,2210.719971,2241.629883,2208.929932,2241.350098,4501820000,1.316324173493011,2167.7016439000004 -2016-12-08,2241.129883,2251.689941,2237.570068,2246.189941,4200580000,0.21593427123762776,2171.2603108666667 -2016-12-09,2249.72998,2259.800049,2249.22998,2259.530029,3884480000,0.5938984836723504,2175.4766438666666 -2016-12-12,2258.830078,2264.030029,2252.370117,2256.959961,4034510000,-0.11374347616602831,2179.828312166667 -2016-12-13,2263.320068,2277.530029,2263.320068,2271.719971,3857590000,0.6539774854251279,2184.6806478 -2016-12-14,2268.350098,2276.199951,2248.439941,2253.280029,4406970000,-0.811717211425611,2189.3993164 -2016-12-15,2253.77002,2272.120117,2253.77002,2262.030029,4168200000,0.3883227955418844,2194.868986 -2016-12-16,2266.810059,2268.050049,2254.23999,2258.070068,5920340000,-0.17506226483432474,2200.5159912 -2016-12-19,2259.23999,2267.469971,2258.209961,2262.530029,3248370000,0.19751207295131135,2206.4276611 -2016-12-20,2266.5,2272.560059,2266.139893,2270.76001,3298780000,0.3637512384150554,2211.0689941 -2016-12-21,2270.540039,2271.22998,2265.149902,2265.179932,2852230000,-0.24573614012164402,2215.2563232 -2016-12-22,2262.929932,2263.179932,2256.080078,2260.959961,2876320000,-0.18629738593322065,2218.5129882333335 -2016-12-23,2260.25,2263.790039,2258.840088,2263.790039,2020550000,0.12517152222140115,2221.7233235333333 -2016-12-27,2266.22998,2273.820068,2266.149902,2268.879883,1987080000,0.22483728227060684,2225.2043212666667 -2016-12-28,2270.22998,2271.310059,2249.110107,2249.919922,2392360000,-0.83565292028287,2228.061653633333 -2016-12-29,2249.5,2254.51001,2244.560059,2249.26001,2336370000,-0.029330466100030428,2230.3573241999998 -2016-12-30,2251.610107,2253.580078,2233.620117,2238.830078,2670900000,-0.4637050387073738,2232.420328766667 -2017-01-03,2251.570068,2263.879883,2245.129883,2257.830078,3770530000,0.8486575281753117,2234.777327466667 -2017-01-04,2261.600098,2272.820068,2261.600098,2270.75,3764890000,0.5722273844205539,2237.7389974000002 -2017-01-05,2268.179932,2271.5,2260.449951,2269.0,3761820000,-0.0770670483320468,2240.0996663333335 -2017-01-06,2271.139893,2282.100098,2264.060059,2276.97998,3339890000,0.351695901278104,2242.5676676333333 -2017-01-09,2273.590088,2275.48999,2268.899902,2268.899902,3217610000,-0.3548594221719936,2244.706998666667 -2017-01-10,2269.719971,2279.27002,2265.27002,2268.899902,3638790000,0.0,2246.5586588 -2017-01-11,2268.600098,2275.320068,2260.830078,2275.320068,3620410000,0.282963827286542,2249.0119953666667 -2017-01-12,2271.139893,2271.780029,2254.25,2270.439941,3462130000,-0.2144809017699867,2251.2046629999995 -2017-01-13,2272.73999,2278.679932,2271.51001,2274.639893,3081270000,0.18498406076092877,2253.7323241333333 -2017-01-17,2269.139893,2272.080078,2262.810059,2267.889893,3584990000,-0.2967502689446566,2256.2926512999998 -2017-01-18,2269.139893,2272.01001,2263.350098,2271.889893,3315250000,0.17637540571728838,2258.957316033333 -2017-01-19,2271.899902,2274.330078,2258.409912,2263.689941,3165970000,-0.3609308719258353,2260.9233153666664 -2017-01-20,2269.959961,2276.959961,2265.01001,2271.310059,3524970000,0.33662375142391454,2262.892651333333 -2017-01-23,2267.780029,2271.780029,2257.02002,2265.199951,3152710000,-0.2690125012121847,2263.687646433333 -2017-01-24,2267.879883,2284.629883,2266.679932,2280.070068,3810960000,0.6564593555387965,2264.8169839999996 -2017-01-25,2288.879883,2299.550049,2288.879883,2298.370117,3846020000,0.8026090626263915,2266.1116535999995 -2017-01-26,2298.629883,2300.98999,2294.080078,2296.679932,3610360000,-0.07353841696332575,2267.435652633333 -2017-01-27,2299.02002,2299.02002,2291.620117,2294.689941,3135890000,-0.08664642261523303,2268.2013183 -2017-01-30,2286.01001,2286.01001,2268.040039,2280.899902,3591270000,-0.6009543491523051,2269.121980733333 -2017-01-31,2274.02002,2279.090088,2267.209961,2278.870117,4087450000,-0.08899053387745326,2269.6833170000004 -2017-02-01,2285.590088,2289.139893,2272.439941,2279.550049,3916610000,0.029836364737412246,2270.399316366667 -2017-02-02,2276.689941,2283.969971,2271.649902,2280.850098,3807710000,0.05703094786491114,2271.009985333333 -2017-02-03,2288.540039,2298.310059,2287.879883,2297.419922,3597970000,0.7264758001645832,2271.8986490666666 -2017-02-06,2294.280029,2296.179932,2288.570068,2292.560059,3109050000,-0.21153568633501818,2272.811319966667 -2017-02-07,2295.870117,2299.399902,2290.159912,2293.080078,3448690000,0.02268289539280044,2273.881990533334 -2017-02-08,2289.550049,2295.909912,2285.379883,2294.669922,3609740000,0.06933224946015226,2274.9113199666667 -2017-02-09,2296.699951,2311.080078,2296.610107,2307.870117,3677940000,0.5752546313281925,2276.210994433334 -2017-02-10,2312.27002,2319.22998,2311.100098,2316.100098,3475020000,0.35660503333254656,2278.4170003000004 -2017-02-13,2321.719971,2331.580078,2321.419922,2328.25,3349730000,0.524584494879643,2281.0499999666667 -2017-02-14,2326.120117,2337.580078,2322.169922,2337.580078,3520910000,0.4007335122946376,2284.3416666333333 -2017-02-15,2335.580078,2351.300049,2334.810059,2349.25,3775590000,0.49923089736394477,2287.3889973666664 -2017-02-16,2349.639893,2351.310059,2338.870117,2347.219971,3672370000,-0.08641179099713181,2289.9379963999995 -2017-02-17,2343.01001,2351.159912,2339.580078,2351.159912,3513060000,0.16785563554666538,2292.6766601333334 -2017-02-21,2354.909912,2366.709961,2354.909912,2365.379883,3579780000,0.6048066287377196,2295.623323566667 -2017-02-22,2361.110107,2365.129883,2358.340088,2362.820068,3468670000,-0.10822003765219579,2298.753995766667 -2017-02-23,2367.5,2368.26001,2355.090088,2363.810059,4015260000,0.04189870457795841,2301.9176676666666 -2017-02-24,2355.72998,2367.340088,2352.870117,2367.340088,3831570000,0.14933640655938607,2304.9850016666664 -2017-02-27,2365.22998,2371.540039,2361.870117,2369.75,3582610000,0.10179830148679958,2308.2953369666666 -2017-02-28,2366.080078,2367.790039,2358.959961,2363.639893,4210140000,-0.2578376200021104,2311.2620036333333 -2017-03-01,2380.129883,2400.97998,2380.129883,2395.959961,4345180000,1.36738545053825,2315.5310059 -2017-03-02,2394.75,2394.75,2380.169922,2381.919922,3821320000,-0.5859880477359969,2319.1986735333335 -2017-03-03,2380.919922,2383.889893,2375.389893,2383.120117,3555260000,0.050387714083699464,2323.1796793999997 -2017-03-06,2375.22998,2378.800049,2367.97998,2375.310059,3232700000,-0.3277240599114939,2326.646346066667 -2017-03-07,2370.73999,2375.120117,2365.51001,2368.389893,3518390000,-0.2913373760945248,2330.0860108 -2017-03-08,2369.810059,2373.090088,2361.01001,2362.97998,3812100000,-0.22842155406883613,2332.849674533333 -2017-03-09,2363.48999,2369.080078,2354.540039,2364.870117,3716340000,0.07998954777432843,2335.0663412 -2017-03-10,2372.52002,2376.860107,2363.040039,2372.600098,3432950000,0.3268670420600417,2337.5970134000004 -2017-03-13,2371.560059,2374.419922,2368.52002,2373.469971,3133900000,0.03666327927462909,2340.2230144 -2017-03-14,2368.550049,2368.550049,2358.179932,2365.449951,3172630000,-0.3379027372577559,2343.0413493666665 -2017-03-15,2370.340088,2390.01001,2368.939941,2385.26001,3906840000,0.8374752968933086,2346.5876791333335 -2017-03-16,2387.709961,2388.100098,2377.179932,2381.379883,3365660000,-0.16267102889130358,2349.9820069333337 -2017-03-17,2383.709961,2385.709961,2377.639893,2378.25,5178040000,-0.13143148736342036,2353.2286703333334 -2017-03-20,2378.23999,2379.550049,2369.659912,2373.469971,3054930000,-0.20098934090192477,2355.763671966667 -2017-03-21,2379.320068,2381.929932,2341.899902,2344.02002,4265590000,-1.2407972866659844,2357.479004 -2017-03-22,2343.0,2351.810059,2336.449951,2348.449951,3572730000,0.18898861623204422,2359.3246664333333 -2017-03-23,2345.969971,2358.919922,2342.129883,2345.959961,3260600000,-0.10602695616058755,2361.0343344 -2017-03-24,2350.419922,2356.219971,2335.73999,2343.97998,2975130000,-0.08439960753447995,2362.2379965 -2017-03-27,2329.110107,2344.899902,2322.25,2341.590088,3240230000,-0.10195872065427158,2363.0876628333335 -2017-03-28,2339.790039,2363.780029,2337.629883,2358.570068,3367780000,0.7251474152977444,2364.098331766667 -2017-03-29,2356.540039,2363.360107,2352.939941,2361.129883,3106940000,0.10853249749627203,2364.883325266667 -2017-03-30,2361.310059,2370.419922,2358.580078,2368.060059,3158420000,0.2935110029268939,2365.5103272333336 -2017-03-31,2364.820068,2370.350098,2362.600098,2362.719971,3354110000,-0.22550475355151978,2366.0269939 -2017-04-03,2362.340088,2365.870117,2344.72998,2358.840088,3416400000,-0.16421256211577306,2366.2829997666663 -2017-04-04,2354.76001,2360.530029,2350.719971,2360.159912,3206240000,0.055952245627599595,2366.1090007333332 -2017-04-05,2366.590088,2378.360107,2350.52002,2352.949951,3770520000,-0.30548612250135276,2365.7799968333334 -2017-04-06,2353.790039,2364.159912,2348.899902,2357.48999,3201920000,0.19295093795217433,2365.5693278666668 -2017-04-07,2356.590088,2363.76001,2350.73999,2355.540039,3053150000,-0.08271301291931099,2365.1759929000004 -2017-04-10,2357.159912,2366.370117,2351.5,2357.159912,2785410000,0.06876864639022706,2364.7563233000005 -2017-04-11,2353.919922,2355.219971,2337.25,2353.780029,3117420000,-0.14338793828936325,2364.427661166667 -2017-04-12,2352.149902,2352.719971,2341.179932,2344.929932,3196950000,-0.3759950756214048,2362.7266602000004 -2017-04-13,2341.97998,2348.26001,2328.949951,2328.949951,3143890000,-0.6814694452883074,2360.9609944999997 -2017-04-17,2332.620117,2349.139893,2332.51001,2349.01001,2824710000,0.861334911528977,2359.823990933334 -2017-04-18,2342.530029,2348.350098,2334.540039,2342.189941,3269840000,-0.29033801350211164,2358.7199869999995 -2017-04-19,2346.790039,2352.629883,2335.050049,2338.169922,3519900000,-0.17163505528009493,2357.712654633333 -2017-04-20,2342.689941,2361.370117,2340.909912,2355.840088,3647420000,0.7557263410900905,2357.4746582333332 -2017-04-21,2354.73999,2356.179932,2344.51001,2348.689941,3503360000,-0.30350731513657525,2356.9353190333336 -2017-04-24,2370.330078,2376.97998,2369.189941,2374.149902,3690650000,1.0840068991465168,2356.9869791666665 -2017-04-25,2381.51001,2392.47998,2381.149902,2388.610107,3995240000,0.6090687444722187,2357.491650366667 -2017-04-26,2388.97998,2398.159912,2386.780029,2387.449951,4105920000,-0.048570337896503,2358.2249837 -2017-04-27,2389.699951,2392.100098,2382.679932,2388.77002,4098460000,0.0552920072501184,2358.341984033333 -2017-04-28,2393.679932,2393.679932,2382.360107,2384.199951,3718270000,-0.19131473359665918,2358.4359863 -2017-05-01,2388.5,2394.48999,2384.830078,2388.330078,3199240000,0.1732290531365699,2358.7719889 -2017-05-02,2391.050049,2392.929932,2385.820068,2391.169922,3813680000,0.11890500505600254,2359.361987266667 -2017-05-03,2386.5,2389.820068,2379.75,2388.129883,3893990000,-0.12713605051778432,2360.8323160333334 -2017-05-04,2389.790039,2391.429932,2380.350098,2389.52002,4362540000,0.05821027616192964,2362.2013183333333 -2017-05-05,2392.370117,2399.290039,2389.379883,2399.290039,3540140000,0.4088695184901736,2363.9789876 -2017-05-08,2399.939941,2401.360107,2393.919922,2399.379883,3429440000,0.003744607718947357,2365.825651033333 -2017-05-09,2401.580078,2403.870117,2392.439941,2396.919922,3653590000,-0.10252486558836038,2367.6699788333335 -2017-05-10,2396.790039,2399.73999,2392.790039,2399.629883,3643530000,0.11306013918641611,2369.0386393333333 -2017-05-11,2394.840088,2395.719971,2381.73999,2394.439941,3727420000,-0.21628093718817354,2370.1489745999997 -2017-05-12,2392.439941,2392.439941,2387.189941,2390.899902,3305630000,-0.14784413421209397,2370.9103027 -2017-05-15,2393.97998,2404.050049,2393.939941,2402.320068,3473600000,0.47765136426025645,2372.2303059333335 -2017-05-16,2404.550049,2405.77002,2396.050049,2400.669922,3420790000,-0.06868968136181097,2373.6246337333337 -2017-05-17,2382.949951,2384.870117,2356.209961,2357.030029,4163000000,-1.81782145892192,2373.5203043 -2017-05-18,2354.689941,2375.73999,2352.719971,2365.719971,4319420000,0.3686818535649561,2373.9459716333336 -2017-05-19,2371.370117,2389.060059,2370.429932,2381.72998,3825160000,0.6767499617984285,2374.7539713 -2017-05-22,2387.209961,2395.459961,2386.919922,2394.02002,3172830000,0.5160131544382551,2376.036637333333 -2017-05-23,2397.040039,2400.850098,2393.879883,2398.419922,3213570000,0.18378718487075396,2377.411971 -2017-05-24,2401.409912,2405.580078,2397.98999,2404.389893,3389900000,0.2489126672622799,2379.0989664666663 -2017-05-25,2409.540039,2418.709961,2408.01001,2415.070068,3535390000,0.44419480513928633,2381.436971 -2017-05-26,2414.5,2416.679932,2412.199951,2415.820068,2805040000,0.031054999601765054,2384.332641566667 -2017-05-30,2411.669922,2415.26001,2409.429932,2412.909912,3203160000,-0.12046244828196606,2386.4626383 -2017-05-31,2415.629883,2415.98999,2403.590088,2411.800049,4516110000,-0.04599686853125062,2388.7829752333337 -2017-06-01,2415.649902,2430.060059,2413.540039,2430.060059,3857140000,0.7571112707942307,2391.8459798 -2017-06-02,2431.280029,2440.22998,2427.709961,2439.070068,3461680000,0.3707730994808367,2394.6203124666667 -2017-06-05,2437.830078,2439.550049,2434.320068,2436.100098,2912600000,-0.12176648957179514,2397.5339843666666 -2017-06-06,2431.919922,2436.209961,2428.120117,2429.330078,3357840000,-0.27790401574869783,2399.3733235666664 -2017-06-07,2432.030029,2435.280029,2424.75,2433.139893,3572300000,0.15682574527444704,2400.8576497666663 -2017-06-08,2434.27002,2439.27002,2427.939941,2433.790039,3728860000,0.026720452936990213,2402.4023193666662 -2017-06-09,2436.389893,2446.199951,2415.699951,2431.77002,4027340000,-0.08299890161560519,2403.8356527 -2017-06-12,2425.879883,2430.379883,2419.969971,2429.389893,4027750000,-0.09787631973520172,2405.3419841 -2017-06-13,2434.149902,2441.48999,2431.280029,2440.350098,3275500000,0.4511505144390471,2407.0759847666664 -2017-06-14,2443.75,2443.75,2428.340088,2437.919922,3555590000,-0.0995830885900939,2408.6343180999997 -2017-06-15,2424.139893,2433.949951,2418.530029,2432.459961,3353050000,-0.22395981716745172,2410.1119873666667 -2017-06-16,2431.23999,2433.149902,2422.879883,2433.149902,5284720000,0.028363920108120944,2411.5663167666667 -2017-06-19,2442.550049,2453.820068,2441.790039,2453.459961,3264700000,0.8347228826019126,2413.3719808333335 -2017-06-20,2450.659912,2450.659912,2436.600098,2437.030029,3416510000,-0.66966375083225,2414.6269856999998 -2017-06-21,2439.310059,2442.22998,2430.73999,2435.610107,3594820000,-0.05826444414320786,2415.916658533333 -2017-06-22,2437.399902,2441.620117,2433.27002,2434.5,3468210000,-0.045578189908535016,2417.078995766666 -2017-06-23,2434.649902,2441.399902,2431.110107,2438.300049,5278330000,0.15609155884164228,2418.540999366667 -2017-06-26,2443.320068,2450.419922,2437.030029,2439.070068,3238970000,0.03158015767239508,2420.146671566667 -2017-06-27,2436.340088,2440.149902,2419.379883,2419.379883,3563910000,-0.8072824663108435,2420.7153320666666 -2017-06-28,2428.699951,2442.969971,2428.02002,2440.689941,3500800000,0.880806612873708,2422.0493327 -2017-06-29,2442.379883,2442.72998,2405.699951,2419.699951,3900280000,-0.8600023152223968,2424.1383301 -2017-06-30,2429.199951,2432.709961,2421.649902,2423.409912,3361590000,0.15332318366443332,2426.0613281333335 -2017-07-03,2431.389893,2439.169922,2428.689941,2429.01001,1962290000,0.23108339915050014,2427.6373291333334 -2017-07-05,2430.780029,2434.899902,2422.050049,2432.540039,3367220000,0.1453278901884847,2428.9213297666665 -2017-07-06,2423.439941,2424.280029,2407.699951,2409.75,3364520000,-0.9368823795134262,2429.298999033333 -2017-07-07,2413.52002,2426.919922,2413.52002,2425.179932,2901330000,0.6403125635439322,2429.992000333333 -2017-07-10,2424.51001,2432.0,2422.27002,2427.429932,2999130000,0.09277662124411723,2430.4039958 -2017-07-11,2427.350098,2429.300049,2412.790039,2425.530029,3106750000,-0.0782680881929565,2430.7276611666666 -2017-07-12,2435.75,2445.76001,2435.75,2443.25,3171620000,0.730560775918554,2431.738997433333 -2017-07-13,2444.98999,2449.320068,2441.689941,2447.830078,3067670000,0.1874584262764767,2432.9399983999997 -2017-07-14,2449.159912,2463.540039,2446.689941,2459.27002,2736640000,0.4673503321499739,2433.9136637666666 -2017-07-17,2459.5,2462.820068,2457.159912,2459.139893,2793170000,-0.005291285582376126,2434.582657933333 -2017-07-18,2455.879883,2460.919922,2450.340088,2460.610107,2962130000,0.059785700040282386,2435.3996582333334 -2017-07-19,2463.850098,2473.830078,2463.850098,2473.830078,3059760000,0.5372639477660979,2436.8829915666665 -2017-07-20,2475.560059,2477.620117,2468.429932,2473.449951,3182780000,-0.015365930076616241,2438.2266601666665 -2017-07-21,2467.399902,2472.540039,2465.060059,2472.540039,3059570000,-0.03678716036409346,2439.5183268333335 -2017-07-24,2472.040039,2473.100098,2466.320068,2469.909912,3010240000,-0.1063734846964759,2440.7896565666665 -2017-07-25,2477.879883,2481.23999,2474.909912,2477.129883,4108060000,0.29231717986644146,2442.3809895666664 -2017-07-26,2479.969971,2481.689941,2474.939941,2477.830078,3557020000,0.028266382187114303,2443.630322233333 -2017-07-27,2482.76001,2484.040039,2459.929932,2475.419922,3995520000,-0.09726881683288502,2444.880322233333 -2017-07-28,2469.120117,2473.530029,2464.659912,2472.100098,3294770000,-0.13411154893340216,2446.201660133333 -2017-07-31,2475.939941,2477.959961,2468.530029,2470.300049,3469210000,-0.07281456772143535,2447.4399983666663 -2017-08-01,2477.100098,2478.51001,2471.139893,2476.350098,3460860000,0.2449115038656524,2448.203002933333 -2017-08-02,2480.379883,2480.379883,2466.47998,2477.570068,3478580000,0.049264843488217025,2449.554337566667 -2017-08-03,2476.030029,2476.030029,2468.850098,2472.159912,3645020000,-0.21836540850557196,2450.7726644 -2017-08-04,2476.879883,2480.0,2472.080078,2476.830078,3235140000,0.18891035233321585,2452.1836670000002 -2017-08-07,2477.139893,2480.949951,2475.879883,2480.909912,2931780000,0.1647199796319665,2453.6039957666662 -2017-08-08,2478.350098,2490.870117,2470.320068,2474.919922,3344640000,-0.2414432693031987,2454.7989909 -2017-08-09,2465.350098,2474.409912,2462.080078,2474.02002,3308060000,-0.03636085321390148,2456.6203288000006 -2017-08-10,2465.379883,2465.379883,2437.75,2438.209961,3621070000,-1.447444188426572,2456.5376628000004 -2017-08-11,2441.040039,2448.090088,2437.850098,2441.320068,3159930000,0.12755698031536866,2457.2583333666666 -2017-08-14,2454.959961,2468.219971,2454.959961,2465.840088,2822550000,1.0043754738020771,2458.6726725666667 -2017-08-15,2468.659912,2468.899902,2461.610107,2464.610107,2913100000,-0.04988080962693431,2459.859342466667 -2017-08-16,2468.629883,2474.929932,2463.860107,2468.110107,2953650000,0.14201029160998413,2461.0450114 -2017-08-17,2462.949951,2465.02002,2430.01001,2430.01001,3142620000,-1.5436951897705553,2461.7203450666666 -2017-08-18,2427.639893,2440.27002,2420.689941,2425.550049,3415680000,-0.18353673366143797,2461.7326823 -2017-08-21,2425.5,2430.580078,2417.350098,2428.370117,2788150000,0.11626509216591252,2461.7640218 -2017-08-22,2433.75,2454.77002,2433.669922,2452.51001,2777490000,0.9940779962249957,2462.6633545 -2017-08-23,2444.879883,2448.909912,2441.419922,2444.040039,2785290000,-0.3453592835692465,2462.689689133333 -2017-08-24,2447.909912,2450.389893,2436.189941,2438.969971,2846590000,-0.2074461923330162,2462.3943522333334 -2017-08-25,2444.719971,2453.959961,2442.219971,2443.050049,2588780000,0.1672869304875979,2461.853686533333 -2017-08-28,2447.350098,2449.120117,2439.030029,2444.23999,2677700000,0.04870718880634062,2461.3570231 -2017-08-29,2431.939941,2449.189941,2428.199951,2446.300049,2737580000,0.08428219030980344,2460.8800211666667 -2017-08-30,2446.060059,2460.310059,2443.77002,2457.590088,2633660000,0.4615148908088784,2460.338688166667 -2017-08-31,2462.649902,2475.01001,2462.649902,2471.649902,3348110000,0.5720976036098113,2460.2786865333333 -2017-09-01,2474.419922,2480.379883,2473.850098,2476.550049,2710730000,0.19825408914242448,2460.4123535333333 -2017-09-05,2470.350098,2471.969971,2446.550049,2457.850098,3490260000,-0.7550806819975553,2460.0103597333336 -2017-09-06,2463.830078,2469.639893,2459.199951,2465.540039,3374410000,0.31287266079642606,2459.6240316 -2017-09-07,2468.060059,2468.620117,2460.290039,2465.100098,3353930000,-0.017843595846800397,2459.1996989333334 -2017-09-08,2462.25,2467.110107,2459.399902,2461.429932,3302490000,-0.1488850697372368,2458.733365933333 -2017-09-11,2474.52002,2488.949951,2474.52002,2488.110107,3291760000,1.0839298999797853,2459.2670329000002 -2017-09-12,2491.939941,2496.77002,2490.370117,2496.47998,3230920000,0.3363947992676142,2460.139697266667 -2017-09-13,2493.889893,2498.370117,2492.139893,2498.370117,3368050000,0.07571208321885958,2460.8736979 -2017-09-14,2494.560059,2498.429932,2491.350098,2495.620117,3414460000,-0.11007176163723154,2461.4753662 -2017-09-15,2495.669922,2500.22998,2493.159912,2500.22998,4853170000,0.18471813753215827,2462.411035133334 -2017-09-18,2502.51001,2508.320068,2499.919922,2503.870117,3194300000,0.14559208669275847,2463.3123697666665 -2017-09-19,2506.290039,2507.840088,2503.189941,2506.649902,3249100000,0.11101953656169616,2464.1703694333337 -2017-09-20,2506.840088,2508.850098,2496.669922,2508.23999,3530010000,0.06343478595600693,2465.2810383666665 -2017-09-21,2507.159912,2507.159912,2499.0,2500.600098,2930860000,-0.3045917468208481,2466.1670409666667 -2017-09-22,2497.26001,2503.469971,2496.540039,2502.219971,2865960000,0.06477937041176052,2468.3007079666663 -2017-09-25,2499.389893,2502.540039,2488.030029,2496.659912,3297890000,-0.22220504449805834,2470.1453694333336 -2017-09-26,2501.040039,2503.51001,2495.120117,2496.840088,3043110000,0.007216681740818132,2471.1787027666664 -2017-09-27,2503.300049,2511.75,2495.909912,2507.040039,3456030000,0.4085143878064912,2472.5930338333333 -2017-09-28,2503.409912,2510.810059,2502.929932,2510.060059,3168620000,0.12046157831626658,2473.9913655666664 -2017-09-29,2509.959961,2519.439941,2507.98999,2519.360107,3211920000,0.37051097509217534,2476.969702133333 -2017-10-02,2521.199951,2529.22998,2520.399902,2529.120117,3199730000,0.38740035506961146,2480.422037733333 -2017-10-03,2530.340088,2535.129883,2528.850098,2534.580078,3068850000,0.2158838152169995,2483.9623697666666 -2017-10-04,2533.47998,2540.530029,2531.800049,2537.73999,3017120000,0.12467201282879703,2486.8033691 -2017-10-05,2540.860107,2552.51001,2540.02002,2552.070068,3045120000,0.5646787321186508,2490.4043700666666 -2017-10-06,2547.439941,2549.409912,2543.790039,2549.330078,2884570000,-0.10736343152785155,2494.0830403 -2017-10-09,2551.389893,2551.820068,2541.600098,2544.72998,2483970000,-0.18044340510071644,2497.4723713333337 -2017-10-10,2549.98999,2555.22998,2544.860107,2550.639893,2960500000,0.23224126121230704,2501.0190347666667 -2017-10-11,2550.620117,2555.23999,2547.949951,2555.23999,2976090000,0.18035070386159813,2504.6503661333336 -2017-10-12,2552.879883,2555.330078,2548.310059,2550.929932,3151510000,-0.1686752718675133,2507.7616942666664 -2017-10-13,2555.659912,2557.649902,2552.090088,2553.169922,3149440000,0.08781072235268805,2510.479028266667 -2017-10-16,2555.570068,2559.469971,2552.639893,2557.639893,2916020000,0.17507534306602235,2513.1820230666667 -2017-10-17,2557.169922,2559.709961,2554.689941,2559.360107,2889390000,0.06725786553094526,2516.5656900333333 -2017-10-18,2562.870117,2564.110107,2559.669922,2561.26001,2998090000,0.07423351621382857,2519.7563557333333 -2017-10-19,2553.389893,2562.360107,2547.919922,2562.100098,2990710000,0.03279979372339259,2522.9896890666664 -2017-10-20,2567.560059,2575.439941,2567.560059,2575.209961,3384650000,0.5116842628527296,2526.7823567 -2017-10-23,2578.080078,2578.290039,2564.330078,2564.97998,3211710000,-0.3972484245916563,2529.3446858 -2017-10-24,2568.659912,2572.179932,2565.580078,2569.129883,3427330000,0.16179085343193123,2531.766349233333 -2017-10-25,2566.52002,2567.399902,2544.0,2557.149902,3874510000,-0.46630499607169806,2533.7256754 -2017-10-26,2560.080078,2567.070068,2559.800049,2560.399902,3869050000,0.12709462192490584,2535.8850015666667 -2017-10-27,2570.26001,2582.97998,2565.939941,2581.070068,3887110000,0.8073022493030768,2538.5796711666667 -2017-10-30,2577.75,2580.030029,2568.25,2572.830078,3658870000,-0.3192470480425591,2540.8783365333334 -2017-10-31,2575.98999,2578.290039,2572.149902,2575.26001,3827230000,0.09444587968627793,2543.165340133333 -2017-11-01,2583.209961,2588.399902,2574.919922,2579.360107,3813180000,0.15921099166993358,2545.5360107 -2017-11-02,2579.459961,2581.110107,2566.169922,2579.850098,4048270000,0.0189966107745132,2548.1776773666666 -2017-11-03,2581.929932,2588.419922,2576.77002,2587.840088,3567710000,0.30970752937133916,2551.0316812666665 -2017-11-06,2587.469971,2593.379883,2585.659912,2591.129883,3539080000,0.12712512706078982,2554.1806803 -2017-11-07,2592.110107,2597.02002,2584.350098,2590.639893,3809650000,-0.0189102832403254,2557.3073404666666 -2017-11-08,2588.709961,2595.469971,2585.02002,2594.379883,3899360000,0.14436549093934659,2560.2186686 -2017-11-09,2584.0,2586.5,2566.330078,2584.620117,3831610000,-0.3761887788273466,2562.704003866667 -2017-11-10,2580.179932,2583.810059,2575.570068,2582.300049,3486910000,-0.08976437135732596,2564.8020019333335 -2017-11-13,2576.530029,2587.659912,2574.47998,2584.840088,3402930000,0.09836343383038404,2566.6593343 -2017-11-14,2577.75,2579.659912,2566.560059,2578.870117,3641760000,-0.23096094136404455,2568.1356689333334 -2017-11-15,2569.449951,2572.840088,2557.449951,2564.620117,3558890000,-0.5525675723668133,2569.0316731666667 -2017-11-16,2572.949951,2590.090088,2572.949951,2585.639893,3312710000,0.819605830144865,2570.1506673333333 -2017-11-17,2582.939941,2583.959961,2577.620117,2578.850098,3300160000,-0.26259631197607103,2571.134668 -2017-11-20,2579.48999,2584.639893,2578.23999,2582.139893,3003540000,0.1275682910981013,2572.3816651 -2017-11-21,2589.169922,2601.189941,2589.169922,2599.030029,3332720000,0.6541139016436714,2573.9946696333336 -2017-11-22,2600.310059,2600.939941,2595.22998,2597.080078,2762950000,-0.07502610505620844,2575.3893392333334 -2017-11-24,2600.419922,2604.209961,2600.419922,2602.419922,1349780000,0.205609524528505,2577.1056722333333 -2017-11-27,2602.659912,2606.409912,2598.870117,2601.419922,3006860000,-0.03842577408612602,2578.714005566667 -2017-11-28,2605.939941,2627.689941,2605.439941,2627.040039,3488420000,0.984851264624087,2581.027343766667 -2017-11-29,2627.820068,2634.889893,2620.320068,2626.070068,4078280000,-0.0369225815214147,2583.2510091333334 -2017-11-30,2633.929932,2657.73999,2633.929932,2647.580078,4938490000,0.8190950524173068,2586.1283447333335 -2017-12-01,2645.100098,2650.620117,2605.52002,2642.219971,3942320000,-0.2024530643865985,2588.799007166667 -2017-12-04,2657.189941,2665.189941,2639.030029,2639.439941,4023150000,-0.10521569099137817,2590.9400065 -2017-12-05,2639.780029,2648.719971,2627.72998,2629.570068,3539040000,-0.37393815432908983,2593.093009433333 -2017-12-06,2626.23999,2634.409912,2624.75,2629.27002,3229000000,-0.011410534507194647,2595.0976806666667 -2017-12-07,2628.379883,2640.98999,2626.530029,2636.97998,3292400000,0.2932357628297133,2597.758683266666 -2017-12-08,2646.209961,2651.649902,2644.100098,2651.5,3106150000,0.5506306498390678,2600.7953532 -2017-12-11,2652.189941,2660.330078,2651.469971,2659.98999,3091950000,0.32019573826136405,2603.426017266667 -2017-12-12,2661.72998,2669.719971,2659.780029,2664.110107,3555680000,0.15489219942514953,2606.4686849 -2017-12-13,2667.590088,2671.879883,2662.850098,2662.850098,3542370000,-0.04729568033579046,2609.3883545 -2017-12-14,2665.870117,2668.090088,2652.01001,2652.01001,3430030000,-0.40708592677227706,2611.8100179333337 -2017-12-15,2660.629883,2679.629883,2659.139893,2675.810059,5723920000,0.897434357723248,2615.0086833 -2017-12-18,2685.919922,2694.969971,2685.919922,2690.159912,3724660000,0.5362807031737971,2618.4193441 -2017-12-19,2692.709961,2694.439941,2680.73999,2681.469971,3368590000,-0.3230269308986733,2621.430680366667 -2017-12-20,2688.179932,2691.01001,2676.110107,2679.25,3241030000,-0.08278932913695636,2624.3843506 -2017-12-21,2683.02002,2692.639893,2682.399902,2684.570068,3273390000,0.19856556872259734,2627.3906901 -2017-12-22,2684.219971,2685.350098,2678.129883,2683.340088,2399830000,-0.04581664731576618,2630.6813558 -2017-12-26,2679.090088,2682.73999,2677.959961,2680.5,1968780000,-0.10584152238849454,2633.9546875 -2017-12-27,2682.100098,2685.639893,2678.909912,2682.620117,2202080000,0.07909408692408082,2637.2140218 -2017-12-28,2686.100098,2687.659912,2682.689941,2687.540039,2153330000,0.18339987718805073,2640.8363525333334 -2017-12-29,2689.149902,2692.120117,2673.610107,2673.610107,2443490000,-0.5183153291804743,2644.4693522000002 -2018-01-02,2683.72998,2695.889893,2682.360107,2695.810059,3367250000,0.8303361788570607,2648.1416910666667 -2018-01-03,2697.850098,2714.370117,2697.77002,2713.060059,3538660000,0.6398818767817449,2652.6153564333335 -2018-01-04,2719.310059,2729.290039,2719.070068,2723.98999,3695260000,0.4028635843774442,2657.343693 -2018-01-05,2731.330078,2743.449951,2727.919922,2743.149902,3236620000,0.7033767403822333,2662.1476887666663 -2018-01-08,2742.669922,2748.51001,2737.600098,2747.709961,3242650000,0.16623440799481415,2667.1686848666664 -2018-01-09,2751.149902,2759.139893,2747.860107,2751.290039,3453480000,0.1302931550569042,2672.1310221 -2018-01-10,2745.550049,2750.800049,2736.060059,2748.22998,3576350000,-0.11122269759360481,2677.0246906999996 -2018-01-11,2752.969971,2767.560059,2752.780029,2767.560059,3641320000,0.7033646798365822,2681.7086913666662 -2018-01-12,2770.179932,2787.850098,2769.639893,2786.23999,3573970000,0.6749602755413919,2687.0476887666664 -2018-01-16,2798.959961,2807.540039,2768.639893,2776.419922,4325970000,-0.35244874939864834,2691.342350233333 -2018-01-17,2784.98999,2807.040039,2778.379883,2802.560059,3778050000,0.9415051661626705,2696.687019833333 -2018-01-18,2802.399902,2805.830078,2792.560059,2798.030029,3681470000,-0.16163899808150362,2701.9733561000003 -2018-01-19,2802.600098,2810.330078,2798.080078,2810.300049,3639430000,0.4385235280832678,2707.9976888 -2018-01-22,2809.159912,2833.030029,2808.120117,2832.969971,3471780000,0.8066726543333624,2714.7876871666663 -2018-01-23,2835.050049,2842.23999,2830.590088,2839.129883,3519650000,0.2174365440882342,2721.5260172666667 -2018-01-24,2845.419922,2852.969971,2824.810059,2837.540039,4014070000,-0.055997579030098166,2727.7273519 -2018-01-25,2846.23999,2848.560059,2830.939941,2839.25,3835150000,0.06026209239333724,2733.702685566667 -2018-01-26,2847.47998,2872.870117,2846.179932,2872.870117,3443230000,1.1841196442722524,2740.6613525666667 -2018-01-29,2867.22998,2870.620117,2851.47998,2853.530029,3573830000,-0.6731974371398275,2747.0173502666667 -2018-01-30,2832.73999,2837.75,2818.27002,2822.429932,3990650000,-1.0898815391439554,2752.698014333333 -2018-01-31,2832.409912,2839.26001,2813.040039,2823.810059,4261280000,0.04889853896290486,2757.631347666667 -2018-02-01,2816.449951,2835.959961,2812.699951,2821.97998,3938450000,-0.06480885618234122,2762.025349933333 -2018-02-02,2808.919922,2808.919922,2759.969971,2762.129883,4301130000,-2.1208547694941515,2764.7140136666662 -2018-02-05,2741.060059,2763.389893,2638.169922,2648.939941,5283460000,-4.097922501640738,2763.7036783666667 -2018-02-06,2614.780029,2701.040039,2593.070068,2695.139893,5891660000,1.7440920907613622,2764.0560058666665 -2018-02-07,2690.949951,2727.669922,2681.330078,2681.659912,4626570000,-0.5001588613270491,2764.0 -2018-02-08,2685.01001,2685.27002,2580.560059,2581.0,5305440000,-3.7536419718832703,2760.6833333333334 -2018-02-09,2601.780029,2638.669922,2532.689941,2619.550049,5680070000,1.4936090275087244,2758.5809977333333 -2018-02-12,2636.75,2672.610107,2622.449951,2656.0,4055790000,1.391458468751705,2757.5296631 -2018-02-13,2646.27002,2668.840088,2637.080078,2662.939941,3472870000,0.26129295933734475,2757.1739909000003 -2018-02-14,2651.209961,2702.100098,2648.870117,2698.629883,4003740000,1.3402458482258295,2757.267985033334 -2018-02-15,2713.459961,2731.51001,2689.820068,2731.199951,3684910000,1.2069112628291467,2757.8726481 -2018-02-16,2727.139893,2754.419922,2725.110107,2732.219971,3637460000,0.03734695439001623,2758.1469808000006 -2018-02-20,2722.98999,2737.600098,2706.76001,2716.26001,3627610000,-0.584138948159385,2757.2506510666667 -2018-02-21,2720.530029,2747.75,2701.290039,2701.330078,3779400000,-0.5496503260010055,2755.704654966667 -2018-02-22,2710.419922,2731.26001,2697.77002,2703.959961,3701270000,0.09735511485315929,2754.1269857 -2018-02-23,2715.800049,2747.76001,2713.73999,2747.300049,3189190000,1.6028376390592625,2754.095988 -2018-02-26,2757.370117,2780.639893,2753.780029,2779.600098,3424650000,1.1757015405636784,2754.497322633333 -2018-02-27,2780.449951,2789.149902,2744.219971,2744.280029,3745080000,-1.270688867273162,2753.0986572666666 -2018-02-28,2753.780029,2761.52002,2713.540039,2713.830078,4230660000,-1.1095788577777155,2751.0123291333334 -2018-03-01,2715.219971,2730.889893,2659.649902,2677.669922,4503970000,-1.332439945048025,2746.849324566667 -2018-03-02,2658.889893,2696.25,2647.320068,2691.25,3882450000,0.5071602697712896,2743.289990266667 -2018-03-05,2681.060059,2728.090088,2675.75,2720.939941,3710810000,1.1032026381792903,2740.3113200000003 -2018-03-06,2730.179932,2732.080078,2711.26001,2728.120117,3370690000,0.2638858686958345,2736.816324866667 -2018-03-07,2710.179932,2730.600098,2701.73999,2726.800049,3393270000,-0.048387458886944845,2733.071997066667 -2018-03-08,2732.75,2740.449951,2722.649902,2738.969971,3212320000,0.44630782533772173,2729.7863281333334 -2018-03-09,2752.909912,2786.570068,2751.540039,2786.570068,3364100000,1.7378831277445883,2728.0303304 -2018-03-12,2790.540039,2796.97998,2779.26001,2783.02002,3185020000,-0.12739848320225677,2725.035327166667 -2018-03-13,2792.310059,2801.899902,2758.679932,2765.310059,3301650000,-0.6363576572474661,2722.0946615000003 -2018-03-14,2774.060059,2777.110107,2744.379883,2749.47998,3391360000,-0.5724522264141441,2719.6629964333333 -2018-03-15,2754.27002,2763.030029,2741.469971,2747.330078,3500330000,-0.07819304070728617,2717.1136637333334 -2018-03-16,2750.570068,2761.850098,2749.969971,2752.01001,5372340000,0.17034472986976468,2714.7813314000005 -2018-03-19,2741.379883,2741.379883,2694.590088,2712.919922,3302130000,-1.4204195427326871,2713.140999366667 -2018-03-20,2715.050049,2724.219971,2710.050049,2716.939941,3261030000,0.14818052561744732,2715.407666033333 -2018-03-21,2714.98999,2739.139893,2709.790039,2711.929932,3415510000,-0.1843989601829854,2715.967334 -2018-03-22,2691.360107,2695.679932,2641.590088,2643.689941,3739800000,-2.516288868483929,2714.7016682999997 -2018-03-23,2646.709961,2657.669922,2585.889893,2588.26001,3815080000,-2.0966880472765737,2714.9436686333333 -2018-03-26,2619.350098,2661.360107,2601.810059,2658.550049,3511100000,2.7157255734905794,2716.243668633333 -2018-03-27,2667.570068,2674.780029,2596.120117,2612.620117,3706350000,-1.7276308947907992,2714.7976725333333 -2018-03-28,2611.300049,2632.649902,2593.060059,2605.0,3864500000,-0.29166570946984605,2712.866341166666 -2018-03-29,2614.409912,2659.070068,2609.719971,2640.870117,3565990000,1.3769718618042104,2710.9410156333333 -2018-04-02,2633.449951,2638.300049,2553.800049,2581.879883,3598520000,-2.233742341975231,2705.963680033333 -2018-04-03,2592.169922,2619.139893,2575.48999,2614.449951,3392810000,1.2614865708684864,2702.0380127 -2018-04-04,2584.040039,2649.860107,2573.610107,2644.689941,3350340000,1.1566482650942955,2699.652343733333 -2018-04-05,2657.360107,2672.080078,2649.580078,2662.840088,3178970000,0.6862863853574153,2698.3693440666666 -2018-04-06,2645.820068,2656.879883,2586.27002,2604.469971,3299700000,-2.192024870852849,2695.0530110666664 -2018-04-09,2617.179932,2653.550049,2610.790039,2613.159912,3062960000,0.3336548739958589,2690.5816731666664 -2018-04-10,2638.409912,2665.449951,2635.780029,2656.870117,3543930000,1.6726953754064633,2686.4906738 -2018-04-11,2643.889893,2661.429932,2639.25,2642.189941,3020760000,-0.5525364565647672,2683.087670866667 -2018-04-12,2653.830078,2674.719971,2653.830078,2663.98999,3021320000,0.8250750130306406,2681.4263346000002 -2018-04-13,2676.899902,2680.26001,2645.050049,2656.300049,2960910000,-0.28866253360059213,2680.7140055 -2018-04-16,2670.100098,2686.48999,2665.159912,2677.840088,3019700000,0.8109038362631216,2680.2670084333336 -2018-04-17,2692.73999,2713.340088,2692.050049,2706.389893,3234360000,1.0661504817983003,2679.782006833333 -2018-04-18,2710.110107,2717.48999,2703.629883,2708.639893,3383410000,0.08313658005520974,2679.1326660333334 -2018-04-19,2701.159912,2702.840088,2681.899902,2693.129883,3349370000,-0.572612477578982,2678.0103271666667 -2018-04-20,2692.560059,2693.939941,2660.610107,2670.139893,3388590000,-0.8536532212991665,2675.715991233333 -2018-04-23,2675.399902,2682.860107,2657.98999,2670.290039,3017480000,0.005623151071354471,2671.8399902666665 -2018-04-24,2680.800049,2683.550049,2617.320068,2634.560059,3706740000,-1.3380561466416863,2666.8913249 -2018-04-25,2634.919922,2645.300049,2612.669922,2639.399902,3499440000,0.18370592780629913,2662.6943196666666 -2018-04-26,2651.649902,2676.47998,2647.159912,2666.939941,3665720000,1.0434204752046705,2659.9429850333336 -2018-04-27,2675.469971,2677.350098,2659.01001,2669.909912,3219030000,0.11136250030761019,2657.3623128333334 -2018-04-30,2682.51001,2682.870117,2648.040039,2648.050049,3734530000,-0.8187490859429492,2653.8969807999997 -2018-05-01,2642.959961,2655.27002,2625.409912,2654.800049,3559850000,0.25490454768968274,2651.9596517 -2018-05-02,2654.23999,2660.870117,2631.699951,2635.669922,4010770000,-0.7205863585547867,2649.2506510666667 -2018-05-03,2628.080078,2637.139893,2594.620117,2629.72998,3851470000,-0.22536744644764406,2646.510652666667 -2018-05-04,2621.449951,2670.929932,2615.320068,2663.419922,3327220000,1.2811179191865252,2647.1683187000003 -2018-05-07,2680.340088,2683.350098,2664.699951,2672.629883,3237960000,0.3457945524821371,2649.9806478000005 -2018-05-08,2670.26001,2676.340088,2655.199951,2671.919922,3717570000,-0.026564134619455615,2650.4263102333334 -2018-05-09,2678.120117,2701.27002,2674.139893,2697.790039,3909500000,0.9682220184441537,2653.265307633333 -2018-05-10,2705.02002,2726.110107,2704.540039,2723.070068,3333050000,0.9370643613678231,2657.2009765666667 -2018-05-11,2722.699951,2732.860107,2717.449951,2727.719971,2862700000,0.1707595795878758,2660.0959717 -2018-05-14,2738.469971,2742.100098,2725.469971,2730.129883,2972660000,0.08834895171137003,2665.0376383666667 -2018-05-15,2718.590088,2718.590088,2701.909912,2711.449951,3290680000,-0.6842140411090436,2668.2709717000002 -2018-05-16,2712.620117,2727.76001,2712.169922,2722.459961,3202670000,0.4060561765464099,2670.8633056999997 -2018-05-17,2719.709961,2731.959961,2711.360107,2720.129883,3475400000,-0.08558722748466252,2672.7729655333333 -2018-05-18,2717.350098,2719.5,2709.179932,2712.969971,3368690000,-0.2632194898025797,2676.3896322 -2018-05-21,2735.389893,2739.189941,2725.699951,2733.01001,3019890000,0.738675297338931,2680.3846354666666 -2018-05-22,2738.340088,2742.23999,2721.879883,2724.439941,3366310000,-0.31357620237913997,2682.6369629333335 -2018-05-23,2713.97998,2733.330078,2709.540039,2733.290039,3326290000,0.32484100188134857,2685.6736328666666 -2018-05-24,2730.939941,2731.969971,2707.379883,2727.76001,3256030000,-0.20232133879297676,2687.7993002 -2018-05-25,2723.600098,2727.360107,2714.98999,2721.330078,2995260000,-0.23572205679487368,2689.966967833333 -2018-05-29,2705.110107,2710.669922,2676.810059,2689.860107,3736890000,-1.1564187400276094,2690.3676351333334 -2018-05-30,2702.429932,2729.340088,2702.429932,2724.01001,3561050000,1.269579146927735,2690.9549723666664 -2018-05-31,2720.97998,2722.5,2700.679932,2705.27002,4235370000,-0.6879559888254616,2690.842643266667 -2018-06-01,2718.699951,2736.929932,2718.699951,2734.620117,3684130000,1.0849230126019016,2692.225651066667 -2018-06-04,2741.669922,2749.159912,2740.540039,2746.870117,3376510000,0.44795984363044106,2694.7833252 -2018-06-05,2748.459961,2752.610107,2739.51001,2748.800049,3517790000,0.07025931033490806,2697.400325533333 -2018-06-06,2753.25,2772.389893,2748.459961,2772.350098,3651640000,0.8567392527720319,2701.9933268333334 -2018-06-07,2774.840088,2779.899902,2760.159912,2770.370117,3711330000,-0.07141886594439484,2706.3590006666664 -2018-06-08,2765.840088,2779.389893,2763.590088,2779.030029,3123210000,0.3125904350057773,2710.0953369333333 -2018-06-11,2780.179932,2790.209961,2780.169922,2782.0,3232330000,0.10687077753774865,2713.8316732 -2018-06-12,2785.600098,2789.800049,2778.780029,2786.850098,3401010000,0.17433853342918582,2718.4583415 -2018-06-13,2787.939941,2791.469971,2774.649902,2775.629883,3779230000,-0.40261279241577963,2722.4860026333336 -2018-06-14,2783.209961,2789.060059,2776.52002,2782.48999,3526890000,0.24715496262726067,2727.3800048999997 -2018-06-15,2777.780029,2782.810059,2761.72998,2779.659912,5428790000,-0.10171026706909947,2732.3776692999995 -2018-06-18,2765.790039,2774.98999,2757.120117,2773.75,3287150000,-0.21261277232105247,2736.0553385666663 -2018-06-19,2752.01001,2765.050049,2743.189941,2762.590088,3661470000,-0.402340225326725,2739.054012066666 -2018-06-20,2769.72998,2774.860107,2763.909912,2767.320068,3327600000,0.17121541196234435,2742.2340169333334 -2018-06-21,2769.280029,2769.280029,2744.389893,2749.76001,3300060000,-0.6345510301846269,2743.9663493 -2018-06-22,2760.790039,2764.169922,2752.679932,2754.879883,5450550000,0.18619344893302525,2745.0266764666667 -2018-06-25,2742.939941,2742.939941,2698.669922,2717.070068,3655080000,-1.3724669170993464,2744.6716796999995 -2018-06-26,2722.120117,2732.909912,2715.600098,2723.060059,3555090000,0.22045773020529236,2744.4360189000004 -2018-06-27,2728.449951,2746.090088,2699.379883,2699.629883,3776090000,-0.8604355207870173,2744.0420166333333 -2018-06-28,2698.689941,2724.340088,2691.98999,2716.310059,3428140000,0.6178689940068205,2743.8370199 -2018-06-29,2727.129883,2743.26001,2718.030029,2718.370117,3565620000,0.07584031112997103,2743.7783610333336 -2018-07-02,2704.949951,2727.26001,2698.949951,2726.709961,3073650000,0.3067957504331309,2744.2363607 -2018-07-03,2733.27002,2736.580078,2711.159912,2713.219971,1911470000,-0.4947350540742024,2743.5766927333334 -2018-07-05,2724.189941,2737.830078,2716.02002,2736.610107,2953420000,0.8620803418080136,2743.9823649333334 -2018-07-06,2737.679932,2764.409912,2733.52002,2759.820068,2554780000,0.8481281619413306,2744.8666992333333 -2018-07-09,2775.620117,2784.649902,2770.72998,2784.169922,3050040000,0.8822986064321858,2746.7470296333336 -2018-07-10,2788.560059,2795.580078,2786.23999,2793.840088,3063850000,0.34732671751058763,2749.164029966667 -2018-07-11,2779.820068,2785.909912,2770.77002,2774.02002,2964740000,-0.7094202737347177,2751.9693604 -2018-07-12,2783.139893,2799.219971,2781.530029,2798.290039,2821690000,0.8749042481676073,2754.445361366667 -2018-07-13,2796.929932,2804.530029,2791.689941,2801.310059,2614000000,0.10792376622543731,2757.6466960000002 -2018-07-16,2797.360107,2801.189941,2793.389893,2798.429932,2812230000,-0.10281357433985505,2759.7736898333333 -2018-07-17,2789.340088,2814.189941,2789.23999,2809.550049,3050730000,0.39736985631984023,2761.8630209 -2018-07-18,2811.350098,2816.76001,2805.889893,2815.620117,3089780000,0.21605124999144465,2764.0903565 -2018-07-19,2809.370117,2812.050049,2799.77002,2804.48999,3266700000,-0.39529931373906146,2765.1616862333335 -2018-07-20,2804.550049,2809.699951,2800.01001,2801.830078,3230210000,-0.09484476712288137,2766.2103516 -2018-07-23,2799.169922,2808.610107,2795.139893,2806.97998,2907430000,0.18380493665326458,2767.1420166333337 -2018-07-24,2820.679932,2829.98999,2811.120117,2820.399902,3417530000,0.4780911191251125,2768.4220133666668 -2018-07-25,2817.72998,2848.030029,2817.72998,2846.070068,3553010000,0.9101605053168704,2770.3960123666666 -2018-07-26,2835.48999,2845.570068,2835.26001,2837.439941,3653330000,-0.3032296041138749,2772.4563476333333 -2018-07-27,2842.350098,2843.169922,2808.340088,2818.820068,3415710000,-0.6562208676543113,2773.6673502333338 -2018-07-30,2819.0,2821.73999,2798.110107,2802.600098,3245770000,-0.5754170045876084,2774.4320231 -2018-07-31,2809.72998,2824.459961,2808.060059,2816.290039,3892100000,0.4884728652428727,2775.8500244 -2018-08-01,2821.169922,2825.830078,2805.850098,2813.360107,3496990000,-0.10403516539227997,2777.5423583666666 -2018-08-02,2800.47998,2829.909912,2796.340088,2827.219971,3467380000,0.4926445059597828,2779.5390218000002 -2018-08-03,2829.620117,2840.379883,2827.370117,2840.350098,3030390000,0.46441830259693617,2782.5586914000005 -2018-08-06,2840.290039,2853.290039,2835.97998,2850.399902,2874540000,0.3538227209060052,2785.7426920333332 -2018-08-07,2855.919922,2863.429932,2855.919922,2858.449951,3162770000,0.2824182317137769,2790.4553548 -2018-08-08,2856.790039,2862.439941,2853.090088,2857.699951,2972200000,-0.026237996566547128,2794.9433512 -2018-08-09,2857.189941,2862.47998,2851.97998,2853.580078,3047050000,-0.14416744482073085,2800.075024366667 -2018-08-10,2838.899902,2842.199951,2825.810059,2833.280029,3256040000,-0.7113887974094513,2803.9740233666666 -2018-08-13,2835.459961,2843.399902,2819.879883,2821.929932,3158450000,-0.4005991954140198,2807.4260172 -2018-08-14,2827.879883,2843.110107,2826.580078,2839.959961,2976970000,0.638925467126028,2811.2010172 -2018-08-15,2827.949951,2827.949951,2802.48999,2818.370117,3645070000,-0.7602164923620203,2814.7060220666667 -2018-08-16,2831.439941,2850.48999,2831.439941,2840.689941,3219880000,0.7919408407494277,2818.1753498666667 -2018-08-17,2838.320068,2855.629883,2833.72998,2850.129883,3024100000,0.33231159317150816,2821.1856770333334 -2018-08-20,2853.929932,2859.76001,2850.620117,2857.050049,2748020000,0.24280177690414462,2823.6150146 -2018-08-21,2861.51001,2873.22998,2861.320068,2862.959961,3147140000,0.20685363919574762,2825.919010366667 -2018-08-22,2860.98999,2867.540039,2856.050049,2861.820068,2689560000,-0.03981519181294191,2828.8456786333336 -2018-08-23,2860.290039,2868.780029,2854.030029,2856.97998,2713910000,-0.16912621635861713,2830.80201 -2018-08-24,2862.350098,2876.159912,2862.350098,2874.689941,2596190000,0.6198839727256322,2833.248006066666 -2018-08-27,2884.689941,2898.25,2884.689941,2896.73999,2854080000,0.7670409488520269,2836.5250079999996 -2018-08-28,2901.449951,2903.77002,2893.5,2897.52002,2683190000,0.026927856925129667,2839.4573403666664 -2018-08-29,2900.620117,2916.5,2898.399902,2914.040039,2791860000,0.570143394557121,2842.738004433333 -2018-08-30,2908.939941,2912.459961,2895.219971,2901.129883,2802180000,-0.4430328968448305,2845.9593342 -2018-08-31,2898.370117,2906.320068,2891.72998,2901.52002,2880260000,0.013447760553075838,2849.2823322666663 -2018-09-04,2896.959961,2900.179932,2885.129883,2896.719971,3077060000,-0.16543222059174356,2852.2736653 -2018-09-05,2891.590088,2894.209961,2876.919922,2888.600098,3241250000,-0.28031266678487654,2854.5470051666666 -2018-09-06,2888.639893,2892.050049,2867.290039,2878.050049,3139590000,-0.3652305145078638,2855.6130045333334 -2018-09-07,2868.26001,2883.810059,2864.120117,2871.679932,2946270000,-0.22133447617470603,2856.7543375666664 -2018-09-10,2881.389893,2886.929932,2875.939941,2877.129883,2731400000,0.1897826752650822,2858.6979980666665 -2018-09-11,2871.570068,2892.52002,2866.780029,2887.889893,2899660000,0.37398415912945904,2861.5409912333334 -2018-09-12,2888.290039,2894.649902,2879.199951,2888.919922,3264930000,0.035667183935816915,2863.9619873333336 -2018-09-13,2896.850098,2906.76001,2896.389893,2904.179932,3254930000,0.5282254410650333,2866.9893148333335 -2018-09-14,2906.379883,2908.300049,2895.77002,2904.97998,3149800000,0.02754815537373556,2869.5813151333336 -2018-09-17,2903.830078,2904.649902,2886.159912,2888.800049,2947760000,-0.5569722032989777,2871.1963134999996 -2018-09-18,2890.73999,2911.169922,2890.429932,2904.310059,3074610000,0.5369014724770915,2872.993318733333 -2018-09-19,2906.600098,2912.360107,2903.820068,2907.949951,3280020000,0.1253272524646798,2874.643318733333 -2018-09-20,2919.72998,2934.800049,2919.72998,2930.75,3337730000,0.7840591957973375,2877.0783203666665 -2018-09-21,2936.76001,2940.909912,2927.110107,2929.669922,5607610000,-0.0368532969376445,2879.6146485 -2018-09-24,2921.830078,2923.790039,2912.629883,2919.370117,3372210000,-0.3515687867310602,2882.4843181 -2018-09-25,2921.75,2923.949951,2913.699951,2915.560059,3285480000,-0.1305095910180576,2885.6053223333333 -2018-09-26,2916.97998,2931.149902,2903.280029,2905.969971,3388620000,-0.3289278151000996,2887.8056559999995 -2018-09-27,2911.649902,2927.219971,2909.27002,2914.0,3060850000,0.27632869851152986,2890.9933187666666 -2018-09-28,2910.030029,2920.530029,2907.5,2913.97998,3432300000,-0.0006870281400117584,2893.436320066666 -2018-10-01,2926.290039,2937.060059,2917.909912,2924.590088,3364190000,0.3641105317408577,2895.9183268999996 -2018-10-02,2923.800049,2931.419922,2919.370117,2923.429932,3401880000,-0.039669012240728385,2898.130989666666 -2018-10-03,2931.689941,2939.860107,2921.360107,2925.51001,3598710000,0.07115197040405974,2900.2159913 -2018-10-04,2919.350098,2919.780029,2883.919922,2901.610107,3496860000,-0.8169482558017305,2901.5423259333334 -2018-10-05,2902.540039,2909.639893,2869.290039,2885.570068,3328980000,-0.5527978745767492,2902.495328866667 -2018-10-08,2877.530029,2889.449951,2862.080078,2884.429932,3330320000,-0.03951163801717561,2902.8199952333334 -2018-10-09,2882.51001,2894.830078,2874.27002,2880.340088,3520500000,-0.14179037440387177,2902.2733318333335 -2018-10-10,2873.899902,2874.02002,2784.860107,2785.679932,4501250000,-3.286422891323515,2898.5453289 -2018-10-11,2776.870117,2795.139893,2710.51001,2728.370117,4890630000,-2.057300781100646,2892.3563315 -2018-10-12,2770.540039,2775.77002,2729.439941,2767.129883,3966040000,1.4206197963573475,2887.8896648333334 -2018-10-15,2763.830078,2775.98999,2749.030029,2750.790039,3300140000,-0.5904979054429216,2882.8653321333336 -2018-10-16,2767.050049,2813.459961,2766.909912,2809.919922,3428340000,2.149560023181407,2879.9719971666664 -2018-10-17,2811.669922,2816.939941,2781.810059,2809.209961,3321710000,-0.025266236039023227,2877.3256592666667 -2018-10-18,2802.0,2806.040039,2755.179932,2768.780029,3616440000,-1.4391922484002562,2873.683325266667 -2018-10-19,2775.659912,2797.77002,2760.27002,2767.780029,3566490000,-0.036116989776224795,2870.219995166667 -2018-10-22,2773.939941,2778.939941,2749.219971,2755.879883,3307140000,-0.4299527374037604,2866.1783284999997 -2018-10-23,2721.030029,2753.590088,2691.429932,2740.689941,4348580000,-0.5511830212086233,2861.2716634333333 -2018-10-24,2737.870117,2742.590088,2651.889893,2656.100098,4709310000,-3.0864433708665207,2853.5110026333336 -2018-10-25,2674.879883,2722.699951,2667.840088,2705.570068,4634770000,1.8625039785680642,2846.890673833333 -2018-10-26,2667.860107,2692.379883,2628.159912,2658.689941,4803150000,-1.7327264059605163,2838.6810058666665 -2018-10-29,2682.649902,2706.850098,2603.540039,2641.25,4673700000,-0.6559599421901985,2830.4293375666666 -2018-10-30,2640.679932,2685.429932,2635.340088,2682.629883,5106380000,1.5666780123047896,2823.0399983666666 -2018-10-31,2705.600098,2736.689941,2705.600098,2711.73999,5112420000,1.0851331816018606,2816.4996663333336 -2018-11-01,2717.580078,2741.669922,2708.850098,2740.370117,4708420000,1.0557843711262338,2810.1536702333333 -2018-11-02,2745.449951,2756.550049,2700.439941,2723.060059,4237930000,-0.6316686163163276,2803.2666747999997 -2018-11-05,2726.370117,2744.27002,2717.939941,2738.310059,3623320000,0.5600317168766411,2797.2313395333335 -2018-11-06,2738.399902,2756.820068,2737.080078,2755.449951,3510860000,0.6259295562117462,2791.8943359333334 -2018-11-07,2774.129883,2815.149902,2774.129883,2813.889893,3914750000,2.120885628091007,2788.825 -2018-11-08,2806.379883,2814.75,2794.98999,2806.830078,3630490000,-0.2508916577568465,2785.252669266667 -2018-11-09,2794.100098,2794.100098,2764.23999,2781.01001,4019090000,-0.9199013578477078,2780.8203369333337 -2018-11-12,2773.929932,2775.98999,2722.0,2726.219971,3670930000,-1.970148931610638,2774.2079997000005 -2018-11-13,2730.050049,2754.600098,2714.97998,2722.179932,4091440000,-0.1481919670083709,2767.499666366667 -2018-11-14,2737.899902,2746.800049,2685.75,2701.580078,4402370000,-0.7567410867240221,2760.0353353 -2018-11-15,2693.52002,2735.379883,2670.75,2730.199951,4179140000,1.05937533494056,2754.3216634333335 -2018-11-16,2718.540039,2746.75,2712.159912,2736.27002,3975180000,0.22233056585385658,2749.344995166667 -2018-11-19,2730.73999,2733.159912,2681.090088,2690.72998,3772900000,-1.6643108928262818,2742.8883301 -2018-11-20,2654.600098,2669.439941,2631.52002,2641.889893,4357900000,-1.8151240504630684,2734.939990266667 -2018-11-21,2657.73999,2670.72998,2649.820068,2649.929932,3233550000,0.3043290722033021,2730.414990266667 -2018-11-23,2633.360107,2647.550049,2631.090088,2632.560059,1651650000,-0.6554842371583214,2727.2213216666664 -2018-11-26,2649.969971,2674.350098,2649.969971,2673.449951,3443950000,1.5532368144919984,2724.0986572666666 -2018-11-27,2663.75,2682.530029,2655.889893,2682.169922,3485220000,0.32616922552592964,2721.8113200333332 -2018-11-28,2691.449951,2744.0,2684.379883,2743.790039,3951670000,2.2973979573244874,2719.6069906 -2018-11-29,2736.969971,2753.75,2722.939941,2737.800049,3560770000,-0.21831080056632368,2717.2266602 -2018-11-30,2737.76001,2760.879883,2732.76001,2760.169922,4658580000,0.817074753438285,2716.939656633333 -2018-12-03,2790.5,2800.179932,2773.379883,2790.370117,4186060000,1.0941426018481248,2717.6926595666664 -2018-12-04,2782.429932,2785.929932,2697.179932,2700.060059,4499840000,-3.236490293878813,2715.831998766667 -2018-12-06,2663.51001,2696.149902,2621.530029,2695.949951,5141470000,-0.1522228361661715,2714.3406657666665 -2018-12-07,2691.26001,2708.540039,2623.139893,2633.080078,4216690000,-2.332011874948936,2713.573331766667 -2018-12-10,2630.860107,2647.51001,2583.22998,2637.719971,4151030000,0.17621541550396636,2711.311661866667 -2018-12-11,2664.439941,2674.350098,2621.300049,2636.780029,3905870000,-0.035634639398196555,2710.5813314666666 -2018-12-12,2658.22998,2685.439941,2650.26001,2651.070068,3958890000,0.5419503653256719,2710.9086670666666 -2018-12-13,2658.699951,2670.189941,2637.27002,2650.540039,3927720000,-0.019993021172759473,2709.8390056 -2018-12-14,2629.679932,2635.070068,2593.840088,2599.949951,4035020000,-1.9086709597145535,2706.1126709666664 -2018-12-17,2590.75,2601.129883,2530.540039,2545.939941,4616350000,-2.077348065074347,2699.6316651 -2018-12-18,2559.899902,2573.98999,2528.709961,2546.159912,4470880000,0.008640070272569744,2693.7349935333336 -2018-12-19,2547.050049,2585.290039,2488.959961,2506.959961,5127940000,-1.5395714469955912,2686.0233236 -2018-12-20,2496.77002,2509.629883,2441.179932,2467.419922,5585780000,-1.5772106302099798,2676.422322633334 -2018-12-21,2465.379883,2504.409912,2408.550049,2416.620117,7609010000,-2.058822843532193,2663.179996766667 -2018-12-24,2400.560059,2410.340088,2351.100098,2351.100098,2613930000,-2.7112254234371247,2647.988997433333 -2018-12-26,2363.120117,2467.76001,2346.580078,2467.699951,4233990000,4.959374256297622,2637.5453288 -2018-12-27,2442.5,2489.100098,2397.939941,2488.830078,4096610000,0.8562680803813727,2629.6323323666666 -2018-12-28,2498.77002,2520.27002,2472.889893,2485.73999,3702620000,-0.12415825521053803,2621.7510009666667 -2018-12-31,2498.939941,2509.23999,2482.820068,2506.850098,3442870000,0.8492484364786668,2615.260001633333 -2019-01-02,2476.959961,2519.48999,2467.469971,2510.030029,3733160000,0.1268496669400765,2607.9210042333334 -2019-01-03,2491.919922,2493.139893,2443.959961,2447.889893,3822860000,-2.4756730111614167,2598.3083333333334 -2019-01-04,2474.330078,2538.070068,2474.330078,2531.939941,4213410000,3.433571429840443,2593.0153320333334 -2019-01-07,2535.610107,2566.159912,2524.560059,2549.689941,4104710000,0.7010434849805236,2589.9420002999996 -2019-01-08,2568.110107,2579.820068,2547.560059,2574.409912,4083030000,0.9695285141339438,2587.4246663 -2019-01-09,2580.0,2595.320068,2568.889893,2584.959961,4052480000,0.4098045517469284,2585.8379963666666 -2019-01-10,2573.51001,2597.820068,2562.02002,2596.639893,3704500000,0.45184189218472337,2583.2776611 -2019-01-11,2588.110107,2596.27002,2577.399902,2596.26001,3434490000,-0.01462979140943732,2580.4139973666665 -2019-01-14,2580.310059,2589.320068,2570.409912,2582.610107,3664450000,-0.5257525420190867,2575.0413329666667 -2019-01-15,2585.100098,2613.080078,2585.100098,2610.300049,3572330000,1.072168885460023,2570.7913329666667 -2019-01-16,2614.75,2625.76001,2612.679932,2616.100098,3863770000,0.22219855538148092,2565.9890055 -2019-01-17,2609.280029,2645.060059,2606.360107,2635.959961,3772270000,0.7591400273706306,2560.8420003 -2019-01-18,2651.27002,2675.469971,2647.580078,2670.709961,3986730000,1.3183053048657412,2559.8636637000004 -2019-01-22,2657.879883,2657.879883,2617.27002,2632.899902,3908030000,-1.4157306316348373,2557.7619953999997 -2019-01-23,2643.47998,2653.189941,2612.860107,2638.699951,3335610000,0.22029128397909048,2557.9493245 -2019-01-24,2638.840088,2647.199951,2627.01001,2642.330078,3433250000,0.13757255722175454,2558.102994733333 -2019-01-25,2657.439941,2672.379883,2657.330078,2664.76001,3814080000,0.8488694197122282,2559.0356607666668 -2019-01-28,2644.969971,2644.969971,2624.060059,2643.850098,3612810000,-0.7846827452202776,2558.7949951 -2019-01-29,2644.889893,2650.929932,2631.050049,2640.0,3504200000,-0.1456246707372877,2558.443660466667 -2019-01-30,2653.620117,2690.439941,2648.340088,2681.050049,3867810000,1.5549260984848434,2561.1469970666667 -2019-01-31,2685.48999,2708.949951,2678.649902,2704.100098,4917650000,0.85973960122816,2566.4190022999996 -2019-02-01,2702.320068,2716.659912,2696.879883,2706.530029,3759270000,0.089860985612078,2571.7646728666664 -2019-02-04,2706.48999,2724.98999,2698.75,2724.870117,3359840000,0.6776236658558865,2579.028344733333 -2019-02-05,2728.340088,2738.97998,2724.030029,2737.699951,3560430000,0.4708420383032985,2588.037679033333 -2019-02-06,2735.050049,2738.080078,2724.149902,2731.610107,3472690000,-0.22244380717381107,2598.5373453666666 -2019-02-07,2717.530029,2719.320068,2687.26001,2706.050049,4099490000,-0.9357139928022673,2610.3690103999998 -2019-02-08,2692.360107,2708.070068,2681.830078,2707.879883,3622330000,0.06762010926872897,2618.3750081333333 -2019-02-11,2712.399902,2718.050049,2703.790039,2709.800049,3361970000,0.07091030928123576,2625.740673833333 -2019-02-12,2722.610107,2748.189941,2722.610107,2744.72998,3827770000,1.2890224506745485,2634.3736734999998 -2019-02-13,2750.300049,2761.850098,2748.629883,2753.030029,3670770000,0.3023994731897073,2642.5796712 -2019-02-14,2743.5,2757.899902,2731.22998,2745.72998,3836700000,-0.2651641617818279,2650.4363362333333 -2019-02-15,2760.23999,2775.659912,2760.23999,2775.600098,3641370000,1.0878752906358091,2661.3600097333333 -2019-02-19,2769.280029,2787.330078,2767.290039,2779.76001,3533710000,0.14987432818573954,2669.6206786999996 -2019-02-20,2779.050049,2789.879883,2774.060059,2784.699951,3835450000,0.1777110607472876,2677.4543457000004 -2019-02-21,2780.23999,2781.580078,2764.550049,2774.879883,3559710000,-0.3526436662044552,2684.1366780666667 -2019-02-22,2780.669922,2794.199951,2779.110107,2792.669922,3427810000,0.6411102372030131,2691.0603434333334 -2019-02-25,2804.350098,2813.48999,2794.98999,2796.110107,3804380000,0.12318623740310564,2697.7093505666667 -2019-02-26,2792.360107,2803.120117,2789.469971,2793.899902,3645680000,-0.07904570690784318,2704.2973469666667 -2019-02-27,2787.5,2795.76001,2775.129883,2792.379883,3767130000,-0.054404919765094206,2711.2896728333335 -2019-02-28,2788.110107,2793.72998,2782.51001,2784.48999,4396930000,-0.28255084661058527,2717.0960042 -2019-03-01,2798.219971,2808.02002,2787.379883,2803.689941,3972280000,0.6895320532289029,2723.3489989666664 -2019-03-04,2814.370117,2816.879883,2767.659912,2792.810059,3919810000,-0.3880558203279594,2728.5773355666665 -2019-03-05,2794.409912,2796.439941,2782.969971,2789.649902,3585690000,-0.11315330914882793,2732.5420002666665 -2019-03-06,2790.27002,2790.27002,2768.689941,2771.449951,3786600000,-0.6524098592784688,2737.1603352333336 -2019-03-07,2766.530029,2767.25,2739.090088,2748.929932,3904860000,-0.8125717367500784,2740.8346679333335 -2019-03-08,2730.790039,2744.129883,2722.27002,2743.070068,3423130000,-0.21316891099282254,2744.1926676000003 -2019-03-11,2747.610107,2784.0,2747.610107,2783.300049,3749030000,1.4666042063348428,2748.1440022333336 -2019-03-12,2787.340088,2798.320068,2786.72998,2791.52002,3414230000,0.29533183111010164,2753.0663329666663 -2019-03-13,2799.780029,2821.23999,2799.780029,2810.919922,3766150000,0.6949583689534133,2758.7636637 -2019-03-14,2810.379883,2815.0,2803.459961,2808.47998,3469730000,-0.08680225932099495,2763.011328066667 -2019-03-15,2810.790039,2830.72998,2810.790039,2822.47998,5962730000,0.4984902901105981,2766.9573241333337 -2019-03-18,2822.610107,2835.409912,2821.98999,2832.939941,3552190000,0.37059469240239284,2771.1709878666666 -2019-03-19,2840.76001,2852.419922,2823.27002,2832.570068,3620220000,-0.013056153949719818,2774.7609862333334 -2019-03-20,2831.340088,2843.540039,2812.429932,2824.22998,3771200000,-0.2944353643434705,2777.6453205333332 -2019-03-21,2819.719971,2860.310059,2817.379883,2854.879883,3546800000,1.0852481284119753,2781.754313066667 -2019-03-22,2844.52002,2846.159912,2800.469971,2800.709961,4237200000,-1.8974501282021161,2784.9096434666667 -2019-03-25,2796.01001,2809.790039,2785.02002,2798.360107,3376580000,-0.08390208314040803,2787.9256509333336 -2019-03-26,2812.659912,2829.870117,2803.98999,2818.459961,3266050000,0.7182726036481402,2791.547648 -2019-03-27,2819.719971,2825.560059,2787.719971,2805.370117,3372930000,-0.46443249792896824,2793.5689859 -2019-03-28,2809.399902,2819.709961,2798.77002,2815.439941,3158170000,0.3589481451655496,2795.6493163 -2019-03-29,2828.27002,2836.030029,2819.22998,2834.399902,3740700000,0.6734280040534557,2798.6049803666665 -2019-04-01,2848.629883,2869.399902,2848.629883,2867.189941,3500760000,1.1568600103627924,2801.6579751333334 -2019-04-02,2868.23999,2872.899902,2858.75,2867.23999,3246900000,0.0017455767155283297,2804.5739744666666 -2019-04-03,2876.090088,2885.25,2865.169922,2873.399902,3550240000,0.21483768437535744,2807.5306395000002 -2019-04-04,2873.98999,2881.280029,2867.139893,2879.389893,3015180000,0.20846353463821465,2811.0143065 -2019-04-05,2884.159912,2893.23999,2882.98999,2892.73999,3146820000,0.4636432541648805,2814.3499754333334 -2019-04-08,2888.459961,2895.949951,2880.780029,2895.77002,3054030000,0.10474601970706932,2817.6719725333332 -2019-04-09,2886.580078,2886.879883,2873.330078,2878.199951,3007980000,-0.6067494614092284,2820.481974166667 -2019-04-10,2881.370117,2889.709961,2879.129883,2888.209961,3062380000,0.3477871645617192,2823.6763101000006 -2019-04-11,2891.919922,2893.419922,2881.98999,2888.320068,2938540000,0.0038122920939631655,2827.1373126999997 -2019-04-12,2900.860107,2910.540039,2898.370117,2907.409912,3688490000,0.6609324295980379,2830.5946450666665 -2019-04-15,2908.320068,2909.600098,2896.47998,2905.580078,3088330000,-0.06293691138795632,2834.3536457 -2019-04-16,2912.26001,2916.060059,2900.709961,2907.060059,3402210000,0.05093581867543495,2838.2673176000003 -2019-04-17,2916.040039,2918.0,2895.449951,2900.449951,3602300000,-0.227381198387544,2842.5673176 -2019-04-18,2904.810059,2908.399902,2891.899902,2905.030029,3506850000,0.15790922365066518,2847.770654166666 -2019-04-22,2898.780029,2909.51001,2896.350098,2907.969971,2997950000,0.10120177659616036,2853.2673176000003 -2019-04-23,2909.98999,2936.310059,2908.530029,2933.679932,3635030000,0.8841205808999053,2858.2799803666667 -2019-04-24,2934.0,2936.830078,2926.050049,2927.25,3448960000,-0.21917632969649103,2862.8043130333335 -2019-04-25,2928.98999,2933.100098,2912.840088,2926.169922,3425280000,-0.03689736100435104,2866.6459796999998 -2019-04-26,2925.810059,2939.879883,2917.560059,2939.879883,3248500000,0.4685292161922483,2871.0259764666666 -2019-04-29,2940.580078,2949.52002,2939.350098,2943.030029,3118780000,0.10715220095269817,2875.044311433333 -2019-04-30,2937.139893,2948.219971,2924.110107,2945.830078,3919330000,0.09514170675830602,2878.807316 -2019-05-01,2952.330078,2954.129883,2923.360107,2923.72998,3645850000,-0.7502163198430001,2881.8459797333335 -2019-05-02,2922.159912,2931.679932,2900.5,2917.52002,3778890000,-0.21239854714627526,2884.955647733333 -2019-05-03,2929.209961,2947.850098,2929.209961,2945.639893,3338120000,0.963827936303252,2887.9809813999996 -2019-05-06,2908.889893,2937.320068,2898.209961,2932.469971,3181520000,-0.4470988470551718,2892.372981733333 -2019-05-07,2913.030029,2913.030029,2862.600098,2884.050049,3767100000,-1.651165143337796,2895.2293131333336 -2019-05-08,2879.610107,2897.959961,2873.280029,2879.419922,3485790000,-0.16054253294270904,2897.2613118333334 -2019-05-09,2859.840088,2875.969971,2836.399902,2870.719971,3638820000,-0.30214248826746504,2899.4396403 -2019-05-10,2863.100098,2891.310059,2825.389893,2881.399902,3529600000,0.37202970362448795,2901.6383056666664 -2019-05-13,2840.189941,2840.189941,2801.429932,2811.870117,3894030000,-2.41305571474959,2900.8873128333335 -2019-05-14,2820.120117,2852.540039,2820.120117,2834.409912,3322720000,0.8015944571454048,2899.7946452 -2019-05-15,2820.379883,2858.679932,2815.080078,2850.959961,3125950000,0.583897513550613,2899.2519775666665 -2019-05-16,2855.800049,2892.149902,2855.800049,2876.320068,3338060000,0.8895286972429028,2899.349316433333 -2019-05-17,2858.600098,2885.47998,2854.22998,2859.530029,3257950000,-0.5837333329762107,2898.6873209666664 -2019-05-20,2841.939941,2853.860107,2831.290039,2840.22998,3288870000,-0.6749377976194681,2896.9369873 -2019-05-21,2854.02002,2868.879883,2854.02002,2864.360107,3218700000,0.849583560835443,2895.8899902 -2019-05-22,2856.060059,2865.469971,2851.110107,2856.27002,3192510000,-0.2824395920132172,2895.1589925 -2019-05-23,2836.699951,2836.699951,2805.48999,2822.23999,3891980000,-1.191415018948383,2892.9599934666667 -2019-05-24,2832.409912,2841.360107,2820.189941,2826.060059,2887390000,0.13535592343441039,2890.8846598333334 -2019-05-28,2830.030029,2840.51001,2801.580078,2802.389893,4121410000,-0.837567691621377,2887.383992533333 -2019-05-29,2790.25,2792.030029,2766.060059,2783.02002,3700050000,-0.6911912239044082,2883.2986572666664 -2019-05-30,2786.939941,2799.0,2776.73999,2788.860107,3273790000,0.20984710702871556,2879.3586588666662 -2019-05-31,2766.149902,2768.97998,2750.52002,2752.060059,3981020000,-1.319537251353431,2874.412329133333 -2019-06-03,2751.530029,2763.070068,2728.810059,2744.449951,3943810000,-0.2765240524134849,2869.059659866667 -2019-06-04,2762.639893,2804.48999,2762.639893,2803.27002,3810430000,2.14323708029609,2865.5696615 -2019-06-05,2818.090088,2827.280029,2800.919922,2826.149902,3548830000,0.8161854490207121,2861.9853271666666 -2019-06-06,2828.51001,2852.100098,2822.449951,2843.48999,3396410000,0.6135586788134972,2859.193326833333 -2019-06-07,2852.870117,2884.969971,2852.870117,2873.340088,3220250000,1.0497697584650245,2857.4323323666667 -2019-06-10,2885.830078,2904.77002,2885.51001,2886.72998,3209210000,0.46600442655293506,2855.6606689333335 -2019-06-11,2903.27002,2910.610107,2878.530029,2885.719971,3548420000,-0.03498799704155786,2853.7503336666664 -2019-06-12,2882.72998,2888.570068,2874.679932,2879.840088,3034130000,-0.20375792034881268,2851.550667333334 -2019-06-13,2886.23999,2895.23999,2881.98999,2891.639893,3069810000,0.40973820210257195,2850.480997766667 -2019-06-14,2886.820068,2894.449951,2879.620117,2886.97998,2922330000,-0.16115122119045866,2849.4629964333335 -2019-06-17,2889.75,2897.27002,2887.300049,2889.669922,2810140000,0.09317494470466592,2847.5973307333334 -2019-06-18,2906.709961,2930.790039,2905.439941,2917.75,3437620000,0.9717399826955075,2847.106665033333 -2019-06-19,2920.550049,2931.73999,2911.429932,2926.459961,3287890000,0.298516356781775,2848.5203287666664 -2019-06-20,2949.600098,2958.060059,2931.5,2954.179932,3905940000,0.9472185291927948,2851.0123290999995 -2019-06-21,2952.709961,2964.149902,2946.870117,2950.459961,5000120000,-0.12592228928592908,2853.6703287666664 -2019-06-24,2951.419922,2954.919922,2944.050049,2945.350098,3136250000,-0.17318869151060623,2855.802001966667 -2019-06-25,2945.780029,2946.52002,2916.01001,2917.379883,3578050000,-0.9496397395675538,2859.318994166667 -2019-06-26,2926.070068,2932.590088,2912.98999,2913.780029,3478130000,-0.12339339216592693,2861.9646647333334 -2019-06-27,2919.659912,2929.300049,2918.570068,2924.919922,3122920000,0.3823175699307457,2864.4299967666666 -2019-06-28,2932.939941,2943.97998,2929.050049,2941.76001,5420700000,0.5757452665057894,2866.611328166667 -2019-07-01,2971.409912,2977.929932,2952.219971,2964.330078,3513270000,0.7672300909413732,2870.1046631333334 -2019-07-02,2964.659912,2973.209961,2955.919922,2973.01001,3206840000,0.29281260087796745,2874.530664133333 -2019-07-03,2978.080078,2995.840088,2977.959961,2995.820068,1963720000,0.7672378472751928,2878.9126628333333 -2019-07-05,2984.25,2994.030029,2967.969971,2990.409912,2434210000,-0.1805901515177344,2883.3839925666666 -2019-07-08,2979.77002,2980.76001,2970.090088,2975.949951,2904550000,-0.48354444459185464,2888.507657933333 -2019-07-09,2965.52002,2981.899902,2963.439941,2979.629883,3028210000,0.12365570861712083,2893.626652066667 -2019-07-10,2989.300049,3002.97998,2984.620117,2993.070068,3154240000,0.4510689423770975,2899.9826579 -2019-07-11,2999.620117,3002.330078,2988.800049,2999.909912,3154620000,0.2285226822160702,2907.2123209666665 -2019-07-12,3003.360107,3013.919922,3001.870117,3013.77002,2974960000,0.4620174740767258,2914.7093180666666 -2019-07-15,3017.800049,3017.800049,3008.77002,3014.300049,2874970000,0.017586909302380604,2923.4506510666665 -2019-07-16,3012.129883,3015.02002,3001.149902,3004.040039,3290650000,-0.34037785997461656,2932.1036539999996 -2019-07-17,3005.100098,3005.26001,2984.25,2984.419922,3181600000,-0.6531243507170825,2938.1419840666663 -2019-07-18,2978.870117,2998.280029,2973.090088,2995.110107,3296580000,0.35819976006714604,2943.7739908999997 -2019-07-19,3004.26001,3006.02002,2975.860107,2976.610107,3260360000,-0.6176734523636651,2948.2113281333336 -2019-07-22,2981.929932,2990.709961,2976.649902,2985.030029,3003720000,0.28286949574616305,2951.9343261666663 -2019-07-23,2994.73999,3005.899902,2988.560059,3005.469971,3313660000,0.6847482873345578,2955.892325866667 -2019-07-24,2998.77002,3019.590088,2996.820068,3019.560059,3428980000,0.46881479888192246,2960.3536621333337 -2019-07-25,3016.26001,3016.310059,2997.23999,3003.669922,3645270000,-0.5262401372888137,2964.4813232666665 -2019-07-26,3013.25,3027.97998,3012.590088,3025.860107,3257590000,0.7387690916858425,2968.9553303999996 -2019-07-29,3024.469971,3025.610107,3014.300049,3020.969971,3203710000,-0.16161143698240066,2973.421663433334 -2019-07-30,3007.659912,3017.189941,3000.939941,3013.179932,3634330000,-0.25786548938854237,2977.538663766667 -2019-07-31,3016.219971,3017.399902,2958.080078,2980.379883,4623430000,-1.088552616843852,2979.6263265333337 -2019-08-01,2980.320068,3013.590088,2945.22998,2953.560059,4762300000,-0.8998793795710336,2980.5296631333335 -2019-08-02,2943.899902,2945.5,2914.110107,2932.050049,3874660000,-0.7282740005389532,2979.792000366667 -2019-08-05,2898.070068,2898.070068,2822.120117,2844.73999,4513730000,-2.977782013979524,2976.2680013333334 -2019-08-06,2861.179932,2884.399902,2847.419922,2881.77002,4154240000,1.301701741817185,2974.1486653999996 -2019-08-07,2858.649902,2892.169922,2825.709961,2883.97998,4491750000,0.0766875907745046,2973.0353353 -2019-08-08,2896.209961,2938.719971,2894.469971,2938.090088,4106370000,1.8762303613494513,2973.8456706 -2019-08-09,2930.51001,2935.75,2900.149902,2918.649902,3350640000,-0.6616606508901501,2973.6366699333335 -2019-08-12,2907.070068,2907.580078,2873.139893,2882.699951,2851630000,-1.231732212053438,2971.6680013 -2019-08-13,2880.719971,2943.310059,2877.050049,2926.320068,3853600000,1.5131688258040343,2970.4010009666663 -2019-08-14,2894.149902,2894.149902,2839.639893,2840.600098,4312530000,-2.9292752675063927,2965.987337233333 -2019-08-15,2846.199951,2856.669922,2825.51001,2847.600098,4038000000,0.24642680273538886,2961.0466715666666 -2019-08-16,2864.73999,2893.629883,2864.73999,2888.679932,3498150000,1.4426124661553574,2957.6556722333335 -2019-08-19,2913.47998,2931.0,2913.47998,2923.649902,3212880000,1.2105865247517444,2955.912337266667 -2019-08-20,2919.01001,2923.629883,2899.600098,2900.51001,3066300000,-0.7914727404321087,2953.275008166667 -2019-08-21,2922.040039,2928.72998,2917.909912,2924.429932,3011190000,0.8246798638009256,2950.987003633333 -2019-08-22,2930.939941,2939.080078,2904.51001,2922.949951,2890880000,-0.050607504177324625,2948.4216716 -2019-08-23,2911.070068,2927.01001,2834.969971,2847.110107,3937300000,-2.59463368416738,2942.8663411666666 -2019-08-26,2866.699951,2879.27002,2856.0,2878.379883,2857600000,1.098298795087671,2938.335668966667 -2019-08-27,2893.139893,2898.790039,2860.590088,2869.159912,3533630000,-0.3203180738739153,2933.839664733334 -2019-08-28,2861.280029,2890.030029,2853.050049,2887.939941,3097420000,0.6545480062458031,2930.6236653666665 -2019-08-29,2910.370117,2930.5,2905.669922,2924.580078,3176190000,1.2687291892681252,2928.2726644 -2019-08-30,2937.090088,2940.429932,2913.320068,2926.459961,3008450000,0.06427873232610626,2926.6009928666667 -2019-09-03,2909.01001,2914.389893,2891.850098,2906.27002,3426790000,-0.6899100370093891,2923.9756592333338 -2019-09-04,2924.669922,2938.840088,2921.860107,2937.780029,3163260000,1.0842078947640221,2921.719327833334 -2019-09-05,2960.600098,2985.860107,2960.600098,2976.0,3890700000,1.30098137446355,2920.267325866667 -2019-09-06,2980.330078,2985.030029,2972.51001,2978.709961,3208280000,0.09106051747311827,2919.4353271666664 -2019-09-09,2988.429932,2989.429932,2969.389893,2978.429932,4002890000,-0.009401015999088713,2917.8543213333337 -2019-09-10,2971.01001,2979.389893,2957.01001,2979.389893,4390770000,0.032230437576741267,2916.4683187333335 -2019-09-11,2981.409912,3000.929932,2975.310059,3000.929932,3927550000,0.722968116747924,2916.0599854 -2019-09-12,3009.080078,3020.73999,3000.919922,3009.570068,3791860000,0.28791528612071016,2917.0329915666666 -2019-09-13,3012.209961,3017.330078,3002.899902,3007.389893,3520060000,-0.07244141025927187,2918.827319366667 -2019-09-16,2996.409912,3002.189941,2990.669922,2997.959961,4274640000,-0.31355867830603623,2921.0243164333338 -2019-09-17,2995.669922,3006.209961,2993.72998,3005.699951,3671840000,0.258175229178792,2926.3896484666666 -2019-09-18,3001.5,3007.830078,2978.570068,3006.72998,3435540000,0.034269189100433195,2930.5549804666666 -2019-09-19,3010.360107,3021.98999,3003.159912,3006.790039,3251290000,0.001997485653837394,2934.6486491 -2019-09-20,3008.419922,3016.370117,2984.679932,2992.070068,6094740000,-0.4895576614619701,2936.4479817666665 -2019-09-23,2983.5,2999.149902,2982.22998,2991.780029,3186590000,-0.009693589836079486,2938.8856526666664 -2019-09-24,3002.429932,3007.97998,2957.72998,2966.600098,3868160000,-0.8416371108813214,2941.682324233333 -2019-09-25,2968.350098,2989.820068,2952.860107,2984.870117,3318870000,0.6158571562212556,2943.6339925333327 -2019-09-26,2985.72998,2987.280029,2963.709961,2977.620117,3077240000,-0.24289164070183666,2948.2013265 -2019-09-27,2985.469971,2987.310059,2945.530029,2961.790039,3243650000,-0.5316352448595407,2952.007657866667 -2019-09-30,2967.070068,2983.850098,2967.070068,2976.73999,3247610000,0.5047606617330613,2954.9429931333334 -2019-10-01,2983.689941,2992.530029,2938.699951,2940.25,3558040000,-1.22583732951429,2955.496329733333 -2019-10-02,2924.780029,2924.780029,2874.929932,2887.610107,3912520000,-1.7903203128985634,2955.0663329666663 -2019-10-03,2885.379883,2911.129883,2855.939941,2910.629883,3503640000,0.7971912809210835,2954.6063313333334 -2019-10-04,2918.560059,2953.73999,2918.560059,2952.01001,2990830000,1.4216897600648926,2955.5749999666664 -2019-10-07,2944.22998,2959.75,2935.679932,2938.790039,2940140000,-0.44782947738040146,2958.6309976999996 -2019-10-08,2920.399902,2925.469971,2892.659912,2893.060059,3356450000,-1.5560819042234386,2959.1203369 -2019-10-09,2911.100098,2929.320068,2907.409912,2919.399902,2726820000,0.9104492289421895,2960.795003233333 -2019-10-10,2918.550049,2948.459961,2917.120117,2938.129883,3217250000,0.6415695563724677,2962.4680013 -2019-10-11,2963.070068,2993.280029,2963.070068,2970.27002,3580460000,1.0938977608158984,2963.990999366667 -2019-10-14,2965.810059,2972.840088,2962.939941,2966.149902,2557020000,-0.13871190067763495,2965.3139974 -2019-10-15,2973.610107,3003.280029,2973.610107,2995.679932,3340740000,0.9955676879340736,2968.2943278 -2019-10-16,2989.679932,2997.540039,2985.199951,2989.689941,3222570000,-0.19995430539873071,2970.0246581999995 -2019-10-17,3000.77002,3008.290039,2991.790039,2997.949951,3115960000,0.276283165244795,2970.7563232333337 -2019-10-18,2996.840088,3000.0,2976.310059,2986.199951,3264290000,-0.39193449497315624,2971.005989566667 -2019-10-21,2996.47998,3007.330078,2995.350098,3006.719971,3271620000,0.6871616213484977,2971.9489908666665 -2019-10-22,3010.72998,3014.570068,2995.040039,2995.98999,3523890000,-0.3568666554747746,2972.5023274333334 -2019-10-23,2994.01001,3004.780029,2991.209961,3004.52002,3392870000,0.2847149032029872,2972.621997033333 -2019-10-24,3014.780029,3016.070068,3000.419922,3010.290039,3692600000,0.19204461816166862,2972.6459960666666 -2019-10-25,3003.320068,3027.389893,3001.939941,3022.550049,3370370000,0.4072700584051514,2973.1513345999997 -2019-10-28,3032.120117,3044.080078,3032.120117,3039.419922,3521230000,0.5581337852645696,2974.5333333 -2019-10-29,3035.389893,3047.870117,3034.810059,3036.889893,3589930000,-0.08324052170899376,2975.5729980333335 -2019-10-30,3039.73999,3050.100098,3025.959961,3046.77002,3776030000,0.32533701741288557,2976.907666033333 -2019-10-31,3046.899902,3046.899902,3023.189941,3037.560059,4139280000,-0.3022860583353104,2977.933333366667 -2019-11-01,3050.719971,3066.949951,3050.719971,3066.909912,3930200000,0.9662311997104212,2980.4279948333333 -2019-11-04,3078.959961,3085.199951,3074.870117,3078.27002,4146850000,0.37040892383408686,2983.3109945333335 -2019-11-05,3080.800049,3083.949951,3072.149902,3074.620117,4486130000,-0.11856994273685695,2986.9116618333337 -2019-11-06,3075.100098,3078.340088,3065.889893,3076.780029,4458190000,0.07024971924360912,2989.975325566667 -2019-11-07,3087.02002,3097.77002,3080.22998,3085.179932,4144640000,0.2730095398704835,2993.5606527333334 -2019-11-08,3081.25,3093.090088,3073.580078,3093.080078,3499150000,0.25606759327254647,2997.9369873666665 -2019-11-11,3080.330078,3088.330078,3075.820068,3087.01001,3035530000,-0.19624671353238865,3001.6126547000003 -2019-11-12,3089.280029,3102.610107,3084.72998,3091.840088,3466010000,0.15646460440210674,3006.6656576333335 -2019-11-13,3084.179932,3098.060059,3078.800049,3094.040039,3509280000,0.07115345352233238,3013.546655366667 -2019-11-14,3090.75,3098.199951,3083.26001,3096.629883,3276070000,0.08370428201818214,3019.746655366667 -2019-11-15,3107.919922,3120.459961,3104.600098,3120.459961,3335650000,0.7695487966070225,3025.3616537333337 -2019-11-18,3117.909912,3124.169922,3112.060059,3122.030029,3436690000,0.050315274658951914,3031.4696534000004 -2019-11-19,3127.449951,3127.639893,3113.469971,3120.179932,3590070000,-0.059259423606272676,3039.0403158333334 -2019-11-20,3114.659912,3118.969971,3091.409912,3108.459961,4034890000,-0.37561843404613215,3045.3423178000003 -2019-11-21,3108.48999,3110.110107,3094.550049,3103.540039,3720560000,-0.15827522508661263,3050.855989666667 -2019-11-22,3111.409912,3112.870117,3099.26001,3110.290039,3226780000,0.21749356912357243,3055.523323633333 -2019-11-25,3117.439941,3133.830078,3117.439941,3133.639893,3511530000,0.7507291508899616,3061.1063233333334 -2019-11-26,3134.850098,3142.689941,3131.0,3140.52002,4595590000,0.21955704021285882,3065.9343262666666 -2019-11-27,3145.48999,3154.26001,3143.409912,3153.629883,3033090000,0.4174424272576305,3071.398991 -2019-11-29,3147.179932,3150.300049,3139.340088,3140.97998,1743020000,-0.40112199177813057,3076.166658633333 -2019-12-02,3143.850098,3144.310059,3110.780029,3113.870117,3268740000,-0.8631020628154462,3080.422330833333 -2019-12-03,3087.409912,3094.969971,3070.330078,3093.199951,3653390000,-0.6638095111017095,3083.3049968333335 -2019-12-04,3103.5,3119.379883,3102.530029,3112.76001,3695030000,0.6323567603082392,3087.197330833333 -2019-12-05,3119.209961,3119.449951,3103.76001,3117.429932,3355750000,0.15002512191744088,3090.9609945666666 -2019-12-06,3134.620117,3150.600098,3134.620117,3145.909912,3479480000,0.9135724177039783,3095.481657 -2019-12-09,3141.860107,3148.870117,3135.459961,3135.959961,3345990000,-0.3162821338922095,3099.2619874 -2019-12-10,3135.360107,3142.120117,3126.090088,3132.52002,3343790000,-0.10969339668811529,3102.365324 -2019-12-11,3135.75,3143.97998,3133.209961,3141.629883,3252540000,0.29081579500966903,3105.856657 -2019-12-12,3141.22998,3176.280029,3138.469971,3168.570068,3990690000,0.8575225600500724,3109.9166586 -2019-12-13,3166.649902,3182.679932,3156.51001,3168.800049,3736870000,0.007258195181569782,3114.2913249333333 -2019-12-16,3183.629883,3197.709961,3183.629883,3191.449951,4051790000,0.7147785170966481,3118.442659566667 -2019-12-17,3195.399902,3198.219971,3191.030029,3192.52002,3837540000,0.03352924270878521,3122.2509929 -2019-12-18,3195.209961,3198.47998,3191.139893,3191.139893,4014080000,-0.04323001864839915,3126.134985433333 -2019-12-19,3192.320068,3205.47998,3192.320068,3205.370117,3720450000,0.44592918133157244,3130.4213216999997 -2019-12-20,3223.330078,3225.649902,3216.030029,3221.219971,6454270000,0.49447812331995245,3134.9559896666665 -2019-12-23,3226.050049,3227.780029,3222.300049,3224.01001,3060610000,0.08661435807297835,3139.3203207333336 -2019-12-24,3225.449951,3226.429932,3220.51001,3223.379883,1296540000,-0.019544821450478977,3143.865983166667 -2019-12-26,3227.199951,3240.080078,3227.199951,3239.909912,2160680000,0.512816658290216,3148.8016439666667 -2019-12-27,3247.22998,3247.929932,3234.370117,3240.02002,2428670000,0.0033984895565053463,3153.6676433333337 -2019-12-30,3240.090088,3240.919922,3216.570068,3221.290039,3013290000,-0.5780822613559056,3157.822981866667 -2019-12-31,3215.179932,3231.719971,3212.030029,3230.780029,2893810000,0.29460215892096464,3161.5003174666663 -2020-01-02,3244.669922,3258.139893,3235.530029,3257.850098,3458250000,0.8378802876399583,3166.0276531 -2020-01-03,3226.360107,3246.149902,3222.340088,3234.850098,3461290000,-0.7059870561300419,3169.8499919666665 -2020-01-06,3217.550049,3246.840088,3214.639893,3246.280029,3674070000,0.35333726923132414,3174.4439942333333 -2020-01-07,3241.860107,3244.909912,3232.429932,3237.179932,3420380000,-0.2803238450998058,3178.898657333333 -2020-01-08,3238.590088,3267.070068,3236.669922,3253.050049,3720890000,0.4902451310513145,3183.6573243333332 -2020-01-09,3266.030029,3275.580078,3263.669922,3274.699951,3638390000,0.6655262499467351,3188.359326266667 -2020-01-10,3281.810059,3282.98999,3260.860107,3265.350098,3212970000,-0.2855178532355285,3192.5203288666667 -2020-01-13,3271.129883,3288.129883,3268.429932,3288.129883,3456380000,0.6976215203984504,3197.0036622 -2020-01-14,3285.350098,3294.25,3277.189941,3283.149902,3665130000,-0.15145329342819425,3201.7426596 -2020-01-15,3282.27002,3298.659912,3280.689941,3289.290039,3716840000,0.18701969703727173,3207.5899903333334 -2020-01-16,3302.969971,3317.110107,3302.820068,3316.810059,3535080000,0.8366553169135038,3215.0436606 -2020-01-17,3323.659912,3329.879883,3318.860107,3329.620117,3698170000,0.38621620690157954,3222.272330833333 -2020-01-21,3321.030029,3329.790039,3316.610107,3320.790039,4105340000,-0.2651977609973044,3229.0510010666667 -2020-01-22,3330.02002,3337.77002,3320.040039,3321.75,3619850000,0.0289076089944329,3234.912337333333 -2020-01-23,3315.77002,3326.879883,3301.870117,3325.540039,3764860000,0.11409765936629679,3241.2316732666663 -2020-01-24,3333.100098,3333.179932,3281.530029,3295.469971,3707130000,-0.9042160866312154,3246.6633383000003 -2020-01-27,3247.159912,3258.850098,3234.5,3243.629883,3823100000,-1.5730711690954746,3250.0633383 -2020-01-28,3255.350098,3285.780029,3253.219971,3276.23999,3526720000,1.0053584464402299,3253.6523356999996 -2020-01-29,3289.459961,3293.469971,3271.889893,3273.399902,3584500000,-0.08668742243146399,3257.1389974666668 -2020-01-30,3256.449951,3285.909912,3242.800049,3283.659912,3787250000,0.31343588645345033,3260.2126628333335 -2020-01-31,3282.330078,3282.330078,3214.679932,3225.52002,4527830000,-1.7705820200054956,3261.3126628333334 -2020-02-03,3235.659912,3268.439941,3235.659912,3248.919922,3757910000,0.7254613784725583,3263.2386638000003 -2020-02-04,3280.610107,3306.919922,3280.610107,3297.590088,3995320000,1.4980414158696442,3266.3126628333334 -2020-02-05,3324.909912,3337.580078,3313.75,3334.689941,4117730000,1.125059574111642,3270.094995166667 -2020-02-06,3344.919922,3347.959961,3334.389893,3345.780029,3868370000,0.3325672909989974,3274.1539958 -2020-02-07,3335.540039,3341.419922,3322.120117,3327.709961,3730650000,-0.5400853565797892,3277.631665066667 -2020-02-10,3318.280029,3352.26001,3317.77002,3352.090088,3450350000,0.7326397818839148,3281.3710042666667 -2020-02-11,3365.870117,3375.629883,3352.719971,3357.75,3760550000,0.16884725205512652,3285.295336933333 -2020-02-12,3370.5,3381.469971,3369.719971,3379.449951,3926380000,0.6462646415010154,3290.567334 -2020-02-13,3365.899902,3385.090088,3360.52002,3373.939941,3498240000,-0.16304458062382787,3295.339331066667 -2020-02-14,3378.080078,3380.689941,3366.149902,3380.159912,3398040000,0.18435334086464028,3299.4163248666664 -2020-02-18,3369.040039,3375.01001,3355.610107,3370.290039,3746720000,-0.2919942623117011,3303.9309895666665 -2020-02-19,3380.389893,3393.52002,3378.830078,3386.149902,3600150000,0.470578579780212,3308.5933186666666 -2020-02-20,3380.449951,3389.149902,3341.02002,3373.22998,4007320000,-0.38155198009305336,3313.128320266667 -2020-02-21,3360.5,3360.76001,3328.449951,3337.75,3899270000,-1.0518102889622738,3315.9516519666668 -2020-02-24,3257.610107,3259.810059,3214.649902,3225.889893,4842960000,-3.3513626544828146,3314.3246500333335 -2020-02-25,3238.939941,3246.98999,3118.77002,3128.209961,5591510000,-3.0279995672499505,3309.7533121333336 -2020-02-26,3139.899902,3182.51001,3108.98999,3116.389893,5478110000,-0.37785404903645237,3304.0286458 -2020-02-27,3062.540039,3097.070068,2977.389893,2978.76001,7058840000,-4.416324263826644,3293.8823160666666 -2020-02-28,2916.899902,2959.719971,2855.840088,2954.219971,8563850000,-0.8238340422731749,3282.7133138 -2020-03-02,2974.280029,3090.959961,2945.189941,3090.22998,6376400000,4.603922874232036,3275.1606445 -2020-03-03,3096.459961,3136.719971,2976.629883,3003.370117,6355940000,-2.810789603432695,3264.2856445 -2020-03-04,3045.75,3130.969971,3034.379883,3130.120117,5035480000,4.220259077712596,3257.9299804333336 -2020-03-05,3075.699951,3083.040039,2999.830078,3023.939941,5575550000,-3.3922077118805904,3248.002978466667 -2020-03-06,2954.199951,2985.929932,2901.540039,2972.370117,6552140000,-1.7053851930321828,3236.2306477333336 -2020-03-09,2863.889893,2863.889893,2734.429932,2746.560059,8423050000,-7.596969728248681,3217.9336506666664 -2020-03-10,2813.47998,2882.590088,2734.0,2882.22998,7635960000,4.939630595567479,3205.8869872333335 -2020-03-11,2825.600098,2825.600098,2707.219971,2741.379883,7374110000,-4.886844491153342,3188.0583170000004 -2020-03-12,2630.860107,2660.949951,2478.860107,2480.639893,8829380000,-9.511268088633596,3161.632983366667 -2020-03-13,2569.98999,2711.330078,2492.370117,2711.02002,8258670000,9.287124973282035,3142.544986966667 -2020-03-16,2508.590088,2562.97998,2380.939941,2386.129883,7781540000,-11.984055248695647,3114.5653157333336 -2020-03-17,2425.659912,2553.929932,2367.040039,2529.189941,8358500000,5.995484949047936,3090.574316366667 -2020-03-18,2436.5,2453.570068,2280.52002,2398.100098,8755780000,-5.183076244094565,3060.5913167000003 -2020-03-19,2393.47998,2466.969971,2319.780029,2409.389893,7946710000,0.4707808072488717,3029.7479817666667 -2020-03-20,2431.939941,2453.01001,2295.560059,2304.919922,9044690000,-4.335951242408564,2995.0526448666665 -2020-03-23,2290.709961,2300.72998,2191.860107,2237.399902,7402180000,-2.9293868023585024,2958.7089762333335 -2020-03-24,2344.439941,2449.709961,2344.439941,2447.330078,7547350000,9.382773987446068,2928.5503092333333 -2020-03-25,2457.77002,2571.419922,2407.530029,2475.560059,8285670000,1.1535011665884554,2899.143977866667 -2020-03-26,2501.290039,2637.01001,2500.719971,2630.070068,7753160000,6.241416298436087,2874.1646484333332 -2020-03-27,2555.870117,2615.909912,2520.02002,2541.469971,6194330000,-3.368735231733755,2846.4156494333333 -2020-03-30,2558.97998,2631.800049,2545.280029,2626.649902,5746220000,3.351600922771647,2821.2986491 -2020-03-31,2614.689941,2641.389893,2571.149902,2584.590088,6568290000,-1.601272174414059,2795.1086507333334 -2020-04-01,2498.080078,2522.75,2447.48999,2470.5,5947900000,-4.414243037211552,2764.5869873333336 -2020-04-02,2458.540039,2533.219971,2455.790039,2526.899902,6454990000,2.28293470957297,2736.3759847333336 -2020-04-03,2514.919922,2538.179932,2459.959961,2488.649902,6087190000,-1.513712512700871,2708.072648133333 -2020-04-06,2578.280029,2676.850098,2574.570068,2663.679932,6391860000,7.033131894499789,2689.3323161 -2020-04-07,2738.649902,2756.889893,2657.669922,2659.409912,7040720000,-0.1603052960193252,2673.7056478 -2020-04-08,2685.0,2760.75,2663.300049,2749.97998,5856370000,3.4056452745897747,2661.491984033333 -2020-04-09,2776.98999,2818.570068,2762.360107,2789.820068,7880140000,1.4487410195618944,2655.193985966667 -2020-04-13,2782.459961,2782.459961,2721.169922,2761.629883,5274310000,-1.0104660627883844,2648.774316366667 -2020-04-14,2805.100098,2851.850098,2805.100098,2846.060059,5567400000,3.057258922339079,2640.635319 -2020-04-15,2795.639893,2801.879883,2761.540039,2783.360107,5203390000,-2.2030438817243536,2633.301652 -2020-04-16,2799.340088,2806.51001,2764.320068,2799.550049,5179990000,0.5816689676367393,2622.282649733333 -2020-04-17,2842.429932,2879.219971,2830.879883,2874.560059,5792140000,2.6793594930297315,2617.303320333333 diff --git a/common/workflow-operator/src/main/scala/py2udf/demo_texera_workflow_vx2.workflow.json b/common/workflow-operator/src/main/scala/py2udf/demo_texera_workflow_vx2.workflow.json deleted file mode 100644 index e17e1172872..00000000000 --- a/common/workflow-operator/src/main/scala/py2udf/demo_texera_workflow_vx2.workflow.json +++ /dev/null @@ -1,400 +0,0 @@ -{ - "operators": [ - { - "operatorID": "CSVFileScan-operator-52a5c4c1-6d4c-4ce6-8d58-c69e991b2b15", - "operatorType": "CSVFileScan", - "operatorVersion": "N/A", - "operatorProperties": { - "fileEncoding": "UTF_8", - "customDelimiter": ",", - "hasHeader": true, - "fileName": "https://raw.githubusercontent.com/vega/vega-datasets/main/data/sp500-2000.csv" - }, - "inputPorts": [], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "CSV File Scan", - "dynamicInputPorts": false, - "dynamicOutputPorts": false - }, - { - "operatorID": "PythonUDFV2-operator-da9d7c0b-301c-4074-9fe4-262c29fd2b34", - "operatorType": "PythonUDFV2", - "operatorVersion": "N/A", - "operatorProperties": { - "code": "from typing import Iterator, Optional, Union\nimport pandas as pd\nimport matplotlib.pyplot as plt\nfrom pytexera import *\nfrom core.models.schema.attribute_type import AttributeType\nclass ProcessTableOperator(UDFTableOperator):\n\n def open(self) -> None:\n pass\n\n @overrides\n def process_table(self, table: Table, port: int) -> Iterator[Optional[TableLike]]:\n selected = table[['date', 'open', 'high', 'low', 'close', 'volume']].copy()\n print('\\nStep 2: Select columns')\n print(selected.head())\n yield selected\n return\n\n def close(self) -> None:\n pass\n", - "workers": 1, - "retainInputColumns": false, - "outputColumns": [ - { - "attributeName": "date", - "attributeType": "string" - }, - { - "attributeName": "open", - "attributeType": "double" - }, - { - "attributeName": "high", - "attributeType": "double" - }, - { - "attributeName": "low", - "attributeType": "double" - }, - { - "attributeName": "close", - "attributeType": "double" - }, - { - "attributeName": "volume", - "attributeType": "long" - } - ] - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": true, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Select Columns", - "dynamicInputPorts": true, - "dynamicOutputPorts": true - }, - { - "operatorID": "PythonUDFV2-operator-9763cabd-b5c1-46ca-97de-7de4796f11bf", - "operatorType": "PythonUDFV2", - "operatorVersion": "N/A", - "operatorProperties": { - "code": "from typing import Iterator, Optional, Union\nimport pandas as pd\nimport matplotlib.pyplot as plt\nfrom pytexera import *\nfrom core.models.schema.attribute_type import AttributeType\nclass ProcessTableOperator(UDFTableOperator):\n\n def open(self) -> None:\n pass\n\n @overrides\n def process_table(self, table: Table, port: int) -> Iterator[Optional[TableLike]]:\n cleaned = table.dropna().copy()\n print('\\nStep 3: Clean data')\n print(cleaned.head())\n yield cleaned\n return\n\n def close(self) -> None:\n pass\n", - "workers": 1, - "retainInputColumns": false, - "outputColumns": [ - { - "attributeName": "date", - "attributeType": "string" - }, - { - "attributeName": "open", - "attributeType": "double" - }, - { - "attributeName": "high", - "attributeType": "double" - }, - { - "attributeName": "low", - "attributeType": "double" - }, - { - "attributeName": "close", - "attributeType": "double" - }, - { - "attributeName": "volume", - "attributeType": "long" - } - ] - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": true, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Clean Data", - "dynamicInputPorts": true, - "dynamicOutputPorts": true - }, - { - "operatorID": "PythonUDFV2-operator-cdae744a-1e5e-4e8f-bd77-10434620f798", - "operatorType": "PythonUDFV2", - "operatorVersion": "N/A", - "operatorProperties": { - "code": "from typing import Iterator, Optional, Union\nimport pandas as pd\nimport matplotlib.pyplot as plt\nfrom pytexera import *\nfrom core.models.schema.attribute_type import AttributeType\nclass ProcessTableOperator(UDFTableOperator):\n\n def open(self) -> None:\n pass\n\n @overrides\n def process_table(self, table: Table, port: int) -> Iterator[Optional[TableLike]]:\n transformed = table.copy()\n transformed['date'] = pd.to_datetime(transformed['date'], errors='coerce')\n transformed = transformed.dropna(subset=['date']).copy()\n transformed = transformed.sort_values('date')\n transformed['daily_return'] = transformed['close'].pct_change() * 100\n transformed['ma_30'] = transformed['close'].rolling(window=30).mean()\n print('\\nStep 4: Transform data')\n print(transformed.head())\n yield transformed\n return\n\n def close(self) -> None:\n pass\n", - "workers": 1, - "retainInputColumns": false, - "outputColumns": [ - { - "attributeName": "date", - "attributeType": "timestamp" - }, - { - "attributeName": "open", - "attributeType": "double" - }, - { - "attributeName": "high", - "attributeType": "double" - }, - { - "attributeName": "low", - "attributeType": "double" - }, - { - "attributeName": "close", - "attributeType": "double" - }, - { - "attributeName": "volume", - "attributeType": "long" - }, - { - "attributeName": "daily_return", - "attributeType": "double" - }, - { - "attributeName": "ma_30", - "attributeType": "double" - } - ] - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": true, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Transform Data", - "dynamicInputPorts": true, - "dynamicOutputPorts": true - }, - { - "operatorID": "PythonUDFV2-operator-f45cfd8f-0f39-42c6-a97a-35a0094359da", - "operatorType": "PythonUDFV2", - "operatorVersion": "N/A", - "operatorProperties": { - "code": "from typing import Iterator, Optional, Union\nimport pandas as pd\nimport matplotlib.pyplot as plt\nfrom pytexera import *\nfrom core.models.schema.attribute_type import AttributeType\nclass ProcessTableOperator(UDFTableOperator):\n\n def open(self) -> None:\n self.output_file = 'clean_sp500_2000.csv'\n # Temporary hardcoded default for UI parameter 'output_file' from the source script.\n # self.UiParameter('output_file', AttributeType.STRING) # UiParameter disabled for now\n\n @overrides\n def process_table(self, table: Table, port: int) -> Iterator[Optional[TableLike]]:\n table.to_csv(self.output_file, index=False)\n print(f'\\nStep 5: Load data')\n print(f'Saved cleaned data to: {self.output_file}')\n yield table\n\n def close(self) -> None:\n pass\n", - "workers": 1, - "retainInputColumns": false, - "outputColumns": [ - { - "attributeName": "date", - "attributeType": "timestamp" - }, - { - "attributeName": "open", - "attributeType": "double" - }, - { - "attributeName": "high", - "attributeType": "double" - }, - { - "attributeName": "low", - "attributeType": "double" - }, - { - "attributeName": "close", - "attributeType": "double" - }, - { - "attributeName": "volume", - "attributeType": "long" - }, - { - "attributeName": "daily_return", - "attributeType": "double" - }, - { - "attributeName": "ma_30", - "attributeType": "double" - } - ] - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": true, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Load Data", - "dynamicInputPorts": true, - "dynamicOutputPorts": true - }, - { - "operatorID": "TimeSeriesPlot-operator-4c61e814-c060-4a03-8170-2bd0c441ac8e", - "operatorType": "TimeSeriesPlot", - "operatorVersion": "N/A", - "operatorProperties": { - "timeColumn": "date", - "valueColumn": "close", - "line": "close", - "facetColumn": "No Selection", - "categoryColumn": "No Selection", - "slider": false - }, - "inputPorts": [ - { - "portID": "input-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false, - "dependencies": [] - } - ], - "outputPorts": [ - { - "portID": "output-0", - "displayName": "", - "allowMultiInputs": false, - "isDynamicPort": false - } - ], - "showAdvanced": false, - "isDisabled": false, - "customDisplayName": "Plot Data", - "dynamicInputPorts": false, - "dynamicOutputPorts": false, - "viewResult": true - } - ], - "operatorPositions": { - "CSVFileScan-operator-52a5c4c1-6d4c-4ce6-8d58-c69e991b2b15": { - "x": 240, - "y": 180 - }, - "PythonUDFV2-operator-da9d7c0b-301c-4074-9fe4-262c29fd2b34": { - "x": 540, - "y": 180 - }, - "PythonUDFV2-operator-9763cabd-b5c1-46ca-97de-7de4796f11bf": { - "x": 840, - "y": 180 - }, - "PythonUDFV2-operator-cdae744a-1e5e-4e8f-bd77-10434620f798": { - "x": 1140, - "y": 180 - }, - "PythonUDFV2-operator-f45cfd8f-0f39-42c6-a97a-35a0094359da": { - "x": 1440, - "y": 180 - }, - "TimeSeriesPlot-operator-4c61e814-c060-4a03-8170-2bd0c441ac8e": { - "x": 1440, - "y": 360 - } - }, - "links": [ - { - "linkID": "link-84bd3626-9908-4fb1-b746-ad9da043aa92", - "source": { - "operatorID": "CSVFileScan-operator-52a5c4c1-6d4c-4ce6-8d58-c69e991b2b15", - "portID": "output-0" - }, - "target": { - "operatorID": "PythonUDFV2-operator-da9d7c0b-301c-4074-9fe4-262c29fd2b34", - "portID": "input-0" - } - }, - { - "linkID": "link-49eb65dd-4c68-4df6-a245-aedb508b7857", - "source": { - "operatorID": "PythonUDFV2-operator-da9d7c0b-301c-4074-9fe4-262c29fd2b34", - "portID": "output-0" - }, - "target": { - "operatorID": "PythonUDFV2-operator-9763cabd-b5c1-46ca-97de-7de4796f11bf", - "portID": "input-0" - } - }, - { - "linkID": "link-bf345bd5-6196-482e-bda1-bba512abf7da", - "source": { - "operatorID": "PythonUDFV2-operator-9763cabd-b5c1-46ca-97de-7de4796f11bf", - "portID": "output-0" - }, - "target": { - "operatorID": "PythonUDFV2-operator-cdae744a-1e5e-4e8f-bd77-10434620f798", - "portID": "input-0" - } - }, - { - "linkID": "link-6031e10a-0ac6-42af-9321-2782a2be6d8e", - "source": { - "operatorID": "PythonUDFV2-operator-cdae744a-1e5e-4e8f-bd77-10434620f798", - "portID": "output-0" - }, - "target": { - "operatorID": "PythonUDFV2-operator-f45cfd8f-0f39-42c6-a97a-35a0094359da", - "portID": "input-0" - } - }, - { - "linkID": "link-9b1eacbb-1a02-47b7-b14e-6c1d41964c8e", - "source": { - "operatorID": "PythonUDFV2-operator-cdae744a-1e5e-4e8f-bd77-10434620f798", - "portID": "output-0" - }, - "target": { - "operatorID": "TimeSeriesPlot-operator-4c61e814-c060-4a03-8170-2bd0c441ac8e", - "portID": "input-0" - } - } - ], - "commentBoxes": [], - "settings": { - "dataTransferBatchSize": 400 - } -} diff --git a/common/workflow-operator/src/main/scala/py2udf/demo_texera_workflow_vx2.workflow.meta.json b/common/workflow-operator/src/main/scala/py2udf/demo_texera_workflow_vx2.workflow.meta.json deleted file mode 100644 index 8136a9df4bc..00000000000 --- a/common/workflow-operator/src/main/scala/py2udf/demo_texera_workflow_vx2.workflow.meta.json +++ /dev/null @@ -1,398 +0,0 @@ -{ - "entry": "main", - "catalog_path": "catalog.json", - "stages": [ - { - "stage_id": "extract_data__0", - "function": "extract_data", - "operatorID": "CSVFileScan-operator-52a5c4c1-6d4c-4ce6-8d58-c69e991b2b15", - "operator_type": "CSVFileScan", - "native_operator_type": "CSVFileScan", - "family": "table", - "base_class": null, - "method": null, - "is_source": true, - "is_sink": true, - "recursive": false, - "has_loop": false, - "assigned_to": [ - "raw_df" - ], - "data_inputs": [], - "ui_parameters": [ - { - "name": "url", - "attr_type": "AttributeType.STRING", - "default": "'https://raw.githubusercontent.com/vega/vega-datasets/main/data/sp500-2000.csv'" - } - ], - "source_columns": [ - { - "attributeName": "date", - "attributeType": "string" - }, - { - "attributeName": "open", - "attributeType": "double" - }, - { - "attributeName": "high", - "attributeType": "double" - }, - { - "attributeName": "low", - "attributeType": "double" - }, - { - "attributeName": "close", - "attributeType": "double" - }, - { - "attributeName": "adjclose", - "attributeType": "double" - }, - { - "attributeName": "volume", - "attributeType": "long" - } - ], - "output_columns": [ - { - "attributeName": "date", - "attributeType": "string" - }, - { - "attributeName": "open", - "attributeType": "double" - }, - { - "attributeName": "high", - "attributeType": "double" - }, - { - "attributeName": "low", - "attributeType": "double" - }, - { - "attributeName": "close", - "attributeType": "double" - }, - { - "attributeName": "adjclose", - "attributeType": "double" - }, - { - "attributeName": "volume", - "attributeType": "long" - } - ], - "retain_input_columns": false, - "native_notes": [ - "Matched pandas.read_csv to CSVFileScan" - ] - }, - { - "stage_id": "select_columns__1", - "function": "select_columns", - "operatorID": "PythonUDFV2-operator-da9d7c0b-301c-4074-9fe4-262c29fd2b34", - "operator_type": "PythonUDFV2", - "native_operator_type": null, - "family": "table", - "base_class": "UDFTableOperator", - "method": "process_table", - "is_source": false, - "is_sink": true, - "recursive": false, - "has_loop": false, - "assigned_to": [ - "selected_df" - ], - "data_inputs": [ - { - "param_name": "df", - "upstream_stage_id": "extract_data__0", - "upstream_var": "raw_df", - "input_port": 0 - } - ], - "ui_parameters": [], - "source_columns": [], - "output_columns": [ - { - "attributeName": "date", - "attributeType": "string" - }, - { - "attributeName": "open", - "attributeType": "double" - }, - { - "attributeName": "high", - "attributeType": "double" - }, - { - "attributeName": "low", - "attributeType": "double" - }, - { - "attributeName": "close", - "attributeType": "double" - }, - { - "attributeName": "volume", - "attributeType": "long" - } - ], - "retain_input_columns": false, - "native_notes": [] - }, - { - "stage_id": "clean_data__2", - "function": "clean_data", - "operatorID": "PythonUDFV2-operator-9763cabd-b5c1-46ca-97de-7de4796f11bf", - "operator_type": "PythonUDFV2", - "native_operator_type": null, - "family": "table", - "base_class": "UDFTableOperator", - "method": "process_table", - "is_source": false, - "is_sink": true, - "recursive": false, - "has_loop": false, - "assigned_to": [ - "cleaned_df" - ], - "data_inputs": [ - { - "param_name": "df", - "upstream_stage_id": "select_columns__1", - "upstream_var": "selected_df", - "input_port": 0 - } - ], - "ui_parameters": [], - "source_columns": [], - "output_columns": [ - { - "attributeName": "date", - "attributeType": "string" - }, - { - "attributeName": "open", - "attributeType": "double" - }, - { - "attributeName": "high", - "attributeType": "double" - }, - { - "attributeName": "low", - "attributeType": "double" - }, - { - "attributeName": "close", - "attributeType": "double" - }, - { - "attributeName": "volume", - "attributeType": "long" - } - ], - "retain_input_columns": false, - "native_notes": [] - }, - { - "stage_id": "transform_data__3", - "function": "transform_data", - "operatorID": "PythonUDFV2-operator-cdae744a-1e5e-4e8f-bd77-10434620f798", - "operator_type": "PythonUDFV2", - "native_operator_type": null, - "family": "table", - "base_class": "UDFTableOperator", - "method": "process_table", - "is_source": false, - "is_sink": true, - "recursive": false, - "has_loop": false, - "assigned_to": [ - "transformed_df" - ], - "data_inputs": [ - { - "param_name": "df", - "upstream_stage_id": "clean_data__2", - "upstream_var": "cleaned_df", - "input_port": 0 - } - ], - "ui_parameters": [], - "source_columns": [], - "output_columns": [ - { - "attributeName": "date", - "attributeType": "timestamp" - }, - { - "attributeName": "open", - "attributeType": "double" - }, - { - "attributeName": "high", - "attributeType": "double" - }, - { - "attributeName": "low", - "attributeType": "double" - }, - { - "attributeName": "close", - "attributeType": "double" - }, - { - "attributeName": "volume", - "attributeType": "long" - }, - { - "attributeName": "daily_return", - "attributeType": "double" - }, - { - "attributeName": "ma_30", - "attributeType": "double" - } - ], - "retain_input_columns": false, - "native_notes": [] - }, - { - "stage_id": "load_data__4", - "function": "load_data", - "operatorID": "PythonUDFV2-operator-f45cfd8f-0f39-42c6-a97a-35a0094359da", - "operator_type": "PythonUDFV2", - "native_operator_type": null, - "family": "table", - "base_class": "UDFTableOperator", - "method": "process_table", - "is_source": false, - "is_sink": true, - "recursive": false, - "has_loop": false, - "assigned_to": [], - "data_inputs": [ - { - "param_name": "df", - "upstream_stage_id": "transform_data__3", - "upstream_var": "transformed_df", - "input_port": 0 - } - ], - "ui_parameters": [ - { - "name": "output_file", - "attr_type": "AttributeType.STRING", - "default": "'clean_sp500_2000.csv'" - } - ], - "source_columns": [], - "output_columns": [ - { - "attributeName": "date", - "attributeType": "timestamp" - }, - { - "attributeName": "open", - "attributeType": "double" - }, - { - "attributeName": "high", - "attributeType": "double" - }, - { - "attributeName": "low", - "attributeType": "double" - }, - { - "attributeName": "close", - "attributeType": "double" - }, - { - "attributeName": "volume", - "attributeType": "long" - }, - { - "attributeName": "daily_return", - "attributeType": "double" - }, - { - "attributeName": "ma_30", - "attributeType": "double" - } - ], - "retain_input_columns": false, - "native_notes": [] - }, - { - "stage_id": "plot_data__5", - "function": "plot_data", - "operatorID": "TimeSeriesPlot-operator-4c61e814-c060-4a03-8170-2bd0c441ac8e", - "operator_type": "TimeSeriesPlot", - "native_operator_type": "TimeSeriesPlot", - "family": "table", - "base_class": null, - "method": null, - "is_source": false, - "is_sink": true, - "recursive": false, - "has_loop": false, - "assigned_to": [], - "data_inputs": [ - { - "param_name": "df", - "upstream_stage_id": "transform_data__3", - "upstream_var": "transformed_df", - "input_port": 0 - } - ], - "ui_parameters": [], - "source_columns": [], - "output_columns": [ - { - "attributeName": "date", - "attributeType": "timestamp" - }, - { - "attributeName": "open", - "attributeType": "double" - }, - { - "attributeName": "high", - "attributeType": "double" - }, - { - "attributeName": "low", - "attributeType": "double" - }, - { - "attributeName": "close", - "attributeType": "double" - }, - { - "attributeName": "volume", - "attributeType": "long" - }, - { - "attributeName": "daily_return", - "attributeType": "double" - }, - { - "attributeName": "ma_30", - "attributeType": "double" - } - ], - "retain_input_columns": true, - "native_notes": [ - "Matched line/time-series plot on x='date', y='close'" - ] - } - ] -} diff --git a/common/workflow-operator/src/main/scala/py2udf/py2udf.ipynb b/common/workflow-operator/src/main/scala/py2udf/py2udf.ipynb deleted file mode 100644 index b5125c6b556..00000000000 --- a/common/workflow-operator/src/main/scala/py2udf/py2udf.ipynb +++ /dev/null @@ -1,2028 +0,0 @@ -{ - "cells": [ - { - "metadata": { - "ExecuteTime": { - "end_time": "2026-03-04T07:52:53.906136Z", - "start_time": "2026-03-04T07:52:52.994657Z" - } - }, - "cell_type": "code", - "source": [ - "import ast\n", - "import copy\n", - "import json\n", - "import uuid\n", - "from dataclasses import dataclass, field\n", - "from pathlib import Path\n", - "from typing import Any, Optional\n", - "\n", - "\n", - "ATTRIBUTE_TYPE_FOR_PY = {\n", - " \"str\": \"AttributeType.STRING\",\n", - " \"int\": \"AttributeType.INTEGER\",\n", - " \"float\": \"AttributeType.DOUBLE\",\n", - " \"bool\": \"AttributeType.BOOLEAN\",\n", - "}\n", - "\n", - "\n", - "@dataclass\n", - "class FunctionFacts:\n", - " name: str\n", - " params: list[str]\n", - " returns_annotation: str | None\n", - " called_functions: set[str] = field(default_factory=set)\n", - " has_loop: bool = False\n", - " recursive: bool = False\n", - " family: str = \"table\" # source | table | batch | tuple\n", - " is_sink: bool = False\n", - " globals_used: set[str] = field(default_factory=set)\n", - "\n", - "\n", - "@dataclass\n", - "class UiParamSpec:\n", - " name: str\n", - " attr_type: str\n", - " default_ast: ast.AST | None = None\n", - "\n", - "\n", - "@dataclass\n", - "class DataInputSpec:\n", - " param_name: str\n", - " upstream_stage_id: str\n", - " upstream_var: str\n", - " input_port: int\n", - "\n", - "\n", - "@dataclass\n", - "class StageInvocation:\n", - " stage_id: str\n", - " function_name: str\n", - " family: str\n", - " is_source: bool\n", - " is_sink: bool\n", - " recursive: bool\n", - " has_loop: bool\n", - " assigned_to: list[str]\n", - " data_inputs: list[DataInputSpec] = field(default_factory=list)\n", - " ui_params: list[UiParamSpec] = field(default_factory=list)\n", - " operator_id: str = \"\"\n", - " display_name: str = \"\"\n", - " code: str = \"\"\n", - " operator_type: str = \"PythonUDFV2\"\n", - " source_columns: list[dict[str, str]] = field(default_factory=list)\n", - " output_columns: list[dict[str, str]] = field(default_factory=list)\n", - " retain_input_columns: bool = True\n", - "\n", - "\n", - "class SourceModuleParser:\n", - " def parse(self, source: str) -> ast.Module:\n", - " return ast.parse(source)\n", - "\n", - "\n", - "class ImportCollector:\n", - " def collect_nodes(self, tree: ast.Module) -> list[ast.stmt]:\n", - " return [n for n in tree.body if isinstance(n, (ast.Import, ast.ImportFrom))]\n", - "\n", - " def collect_names(self, tree: ast.Module) -> set[str]:\n", - " names = set()\n", - " for node in self.collect_nodes(tree):\n", - " if isinstance(node, ast.Import):\n", - " for alias in node.names:\n", - " names.add(alias.asname or alias.name.split(\".\")[0])\n", - " else:\n", - " for alias in node.names:\n", - " names.add(alias.asname or alias.name)\n", - " return names\n", - "\n", - "\n", - "class FunctionIndex:\n", - " def collect(self, tree: ast.Module) -> dict[str, ast.FunctionDef]:\n", - " return {n.name: n for n in tree.body if isinstance(n, ast.FunctionDef)}\n", - "\n", - "\n", - "class CallCollector(ast.NodeVisitor):\n", - " def __init__(self):\n", - " self.calls: list[ast.Call] = []\n", - "\n", - " def visit_Call(self, node: ast.Call):\n", - " self.calls.append(node)\n", - " self.generic_visit(node)\n", - "\n", - "\n", - "class CallGraphBuilder:\n", - " def build(self, functions: dict[str, ast.FunctionDef]) -> dict[str, set[str]]:\n", - " graph = {name: set() for name in functions}\n", - " for name, fn in functions.items():\n", - " collector = CallCollector()\n", - " collector.visit(fn)\n", - " for call in collector.calls:\n", - " if isinstance(call.func, ast.Name) and call.func.id in functions:\n", - " graph[name].add(call.func.id)\n", - " return graph\n", - "\n", - "\n", - "class RecursiveAnalyzer:\n", - " def strongly_connected_components(self, graph: dict[str, set[str]]) -> list[list[str]]:\n", - " index = 0\n", - " stack: list[str] = []\n", - " on_stack: set[str] = set()\n", - " indices: dict[str, int] = {}\n", - " lowlink: dict[str, int] = {}\n", - " comps: list[list[str]] = []\n", - "\n", - " def strongconnect(v: str):\n", - " nonlocal index\n", - " indices[v] = index\n", - " lowlink[v] = index\n", - " index += 1\n", - " stack.append(v)\n", - " on_stack.add(v)\n", - "\n", - " for w in graph[v]:\n", - " if w not in indices:\n", - " strongconnect(w)\n", - " lowlink[v] = min(lowlink[v], lowlink[w])\n", - " elif w in on_stack:\n", - " lowlink[v] = min(lowlink[v], indices[w])\n", - "\n", - " if lowlink[v] == indices[v]:\n", - " comp = []\n", - " while True:\n", - " w = stack.pop()\n", - " on_stack.remove(w)\n", - " comp.append(w)\n", - " if w == v:\n", - " break\n", - " comps.append(comp)\n", - "\n", - " for v in graph:\n", - " if v not in indices:\n", - " strongconnect(v)\n", - " return comps\n", - "\n", - " def detect(self, graph: dict[str, set[str]]) -> set[str]:\n", - " recursive = set()\n", - " for comp in self.strongly_connected_components(graph):\n", - " if len(comp) > 1:\n", - " recursive.update(comp)\n", - " elif len(comp) == 1 and comp[0] in graph[comp[0]]:\n", - " recursive.add(comp[0])\n", - " return recursive\n", - "\n", - "\n", - "class NameUsageCollector(ast.NodeVisitor):\n", - " def __init__(self):\n", - " self.loads: set[str] = set()\n", - " self.stores: set[str] = set()\n", - "\n", - " def visit_Name(self, node: ast.Name):\n", - " if isinstance(node.ctx, ast.Load):\n", - " self.loads.add(node.id)\n", - " elif isinstance(node.ctx, ast.Store):\n", - " self.stores.add(node.id)\n", - "\n", - " def visit_FunctionDef(self, node):\n", - " return\n", - "\n", - " def visit_ClassDef(self, node):\n", - " return\n", - "\n", - "\n", - "class FamilyInferer:\n", - " def infer(self, fn: ast.FunctionDef) -> str:\n", - " ann_texts = []\n", - " for a in fn.args.args:\n", - " if a.annotation is not None:\n", - " ann_texts.append(ast.unparse(a.annotation))\n", - " if fn.returns is not None:\n", - " ann_texts.append(ast.unparse(fn.returns))\n", - " joined = \" | \".join(ann_texts)\n", - "\n", - " if any(tok in joined for tok in [\"TupleLike\", \"Tuple\", \"tuple_\"]):\n", - " return \"tuple\"\n", - " if any(tok in joined for tok in [\"BatchLike\", \"Batch\"]):\n", - " return \"batch\"\n", - " if any(tok in joined for tok in [\"DataFrame\", \"TableLike\", \"Table\", \"pd.DataFrame\"]):\n", - " return \"table\"\n", - "\n", - " source = ast.unparse(fn)\n", - " if any(tok in source for tok in [\"pd.\", \".copy(\", \".dropna(\", \".sort_values(\", \".rolling(\"]):\n", - " return \"table\"\n", - " return \"table\"\n", - "\n", - "\n", - "class SinkDetector:\n", - " def detect(self, fn: ast.FunctionDef) -> bool:\n", - " source = ast.unparse(fn)\n", - " if any(tok in source for tok in [\"to_csv(\", \".show(\", \"plt.\", \".save(\", \"print(\"]):\n", - " return True\n", - " if fn.returns is None:\n", - " for stmt in fn.body:\n", - " if isinstance(stmt, ast.Return) and stmt.value is not None:\n", - " return False\n", - " return True\n", - " return False\n", - "\n", - "\n", - "class LoopCollector(ast.NodeVisitor):\n", - " def __init__(self, function_name: str):\n", - " self.function_name = function_name\n", - " self.has_loop = False\n", - "\n", - " def visit_For(self, node: ast.For):\n", - " self.has_loop = True\n", - " self.generic_visit(node)\n", - "\n", - " def visit_While(self, node: ast.While):\n", - " self.has_loop = True\n", - " self.generic_visit(node)\n", - "\n", - "\n", - "class FunctionFactsAnalyzer:\n", - " def __init__(self):\n", - " self.family_inferer = FamilyInferer()\n", - " self.sink_detector = SinkDetector()\n", - "\n", - " def analyze(\n", - " self,\n", - " tree: ast.Module,\n", - " functions: dict[str, ast.FunctionDef],\n", - " graph: dict[str, set[str]],\n", - " recursive: set[str],\n", - " ) -> dict[str, FunctionFacts]:\n", - " import_names = ImportCollector().collect_names(tree)\n", - " facts: dict[str, FunctionFacts] = {}\n", - " for name, fn in functions.items():\n", - " usage = NameUsageCollector()\n", - " usage.visit(fn)\n", - " loops = LoopCollector(name)\n", - " loops.visit(fn)\n", - " facts[name] = FunctionFacts(\n", - " name=name,\n", - " params=[a.arg for a in fn.args.args],\n", - " returns_annotation=ast.unparse(fn.returns) if fn.returns is not None else None,\n", - " called_functions=set(graph[name]),\n", - " has_loop=loops.has_loop,\n", - " recursive=name in recursive,\n", - " family=self.family_inferer.infer(fn),\n", - " is_sink=self.sink_detector.detect(fn),\n", - " globals_used=(usage.loads - usage.stores - {a.arg for a in fn.args.args}) & import_names,\n", - " )\n", - " return facts\n", - "\n", - "\n", - "class SourceSchemaInferer:\n", - " def __init__(self):\n", - " try:\n", - " import pandas as _pd\n", - " except Exception:\n", - " _pd = None\n", - " self.pd = _pd\n", - "\n", - " def _literal_value(self, node: ast.AST | None):\n", - " if isinstance(node, ast.Constant):\n", - " return node.value\n", - " return None\n", - "\n", - " def _resolve_expr(self, expr: ast.AST | None, ui_defaults: dict[str, Any]):\n", - " if expr is None:\n", - " return None\n", - " if isinstance(expr, ast.Constant):\n", - " return expr.value\n", - " if isinstance(expr, ast.Name):\n", - " return ui_defaults.get(expr.id)\n", - " return None\n", - "\n", - " def _map_dtype(self, dtype: Any) -> str:\n", - " kind = getattr(dtype, \"kind\", None)\n", - " if kind == \"b\":\n", - " return \"boolean\"\n", - " if kind == \"i\":\n", - " try:\n", - " itemsize = int(getattr(dtype, \"itemsize\", 8) or 8)\n", - " except Exception:\n", - " itemsize = 8\n", - " return \"integer\" if itemsize <= 4 else \"long\"\n", - " if kind == \"u\":\n", - " try:\n", - " itemsize = int(getattr(dtype, \"itemsize\", 8) or 8)\n", - " except Exception:\n", - " itemsize = 8\n", - " return \"integer\" if itemsize <= 4 else \"long\"\n", - " if kind == \"f\":\n", - " return \"double\"\n", - " if kind == \"M\":\n", - " return \"timestamp\"\n", - " if kind == \"S\":\n", - " return \"binary\"\n", - " return \"string\"\n", - "\n", - " def infer(self, fn: ast.FunctionDef, stage: StageInvocation) -> list[dict[str, str]]:\n", - " if not stage.is_source or stage.family != \"table\" or self.pd is None:\n", - " return []\n", - "\n", - " ui_defaults = {spec.name: self._literal_value(spec.default_ast) for spec in stage.ui_params}\n", - "\n", - " for node in ast.walk(fn):\n", - " if not isinstance(node, ast.Call):\n", - " continue\n", - " if not isinstance(node.func, ast.Attribute):\n", - " continue\n", - " if not (isinstance(node.func.value, ast.Name) and node.func.value.id == \"pd\" and node.func.attr == \"read_csv\"):\n", - " continue\n", - "\n", - " source_expr = None\n", - " if node.args:\n", - " source_expr = node.args[0]\n", - " else:\n", - " for kw in node.keywords:\n", - " if kw.arg in (\"filepath_or_buffer\", \"path\", \"url\"):\n", - " source_expr = kw.value\n", - " break\n", - "\n", - " source_value = self._resolve_expr(source_expr, ui_defaults)\n", - " if not isinstance(source_value, str) or not source_value:\n", - " continue\n", - "\n", - " try:\n", - " df = self.pd.read_csv(source_value, nrows=50)\n", - " except Exception:\n", - " continue\n", - "\n", - " cols: list[dict[str, str]] = []\n", - " for col in df.columns:\n", - " try:\n", - " dtype = df[col].dtype\n", - " except Exception:\n", - " dtype = None\n", - " cols.append({\n", - " \"attributeName\": str(col),\n", - " \"attributeType\": self._map_dtype(dtype),\n", - " })\n", - " if cols:\n", - " return cols\n", - "\n", - " return []\n", - "\n", - "\n", - "class TableOutputSchemaInferer:\n", - " def _schema_dict(self, cols: list[dict[str, str]]) -> dict[str, str]:\n", - " return {c[\"attributeName\"]: c[\"attributeType\"] for c in cols if c.get(\"attributeName\")}\n", - "\n", - " def _schema_list(self, d: dict[str, str]) -> list[dict[str, str]]:\n", - " return [{\"attributeName\": k, \"attributeType\": v} for k, v in d.items()]\n", - "\n", - " def _list_of_constant_strings(self, node: ast.AST | None) -> list[str] | None:\n", - " if isinstance(node, (ast.List, ast.Tuple)):\n", - " vals = []\n", - " for elt in node.elts:\n", - " if isinstance(elt, ast.Constant) and isinstance(elt.value, str):\n", - " vals.append(elt.value)\n", - " else:\n", - " return None\n", - " return vals\n", - " return None\n", - "\n", - " def _infer_scalar_type(self, expr: ast.AST, env: dict[str, dict[str, str]]) -> str:\n", - " if isinstance(expr, ast.Constant):\n", - " v = expr.value\n", - " if isinstance(v, bool):\n", - " return \"boolean\"\n", - " if isinstance(v, int):\n", - " return \"long\"\n", - " if isinstance(v, float):\n", - " return \"double\"\n", - " return \"string\"\n", - " if isinstance(expr, ast.Subscript) and isinstance(expr.value, ast.Name):\n", - " if isinstance(expr.slice, ast.Constant) and isinstance(expr.slice.value, str):\n", - " return env.get(expr.value.id, {}).get(expr.slice.value, \"string\")\n", - " if isinstance(expr, ast.BinOp):\n", - " return \"double\"\n", - " if isinstance(expr, ast.Call) and isinstance(expr.func, ast.Attribute):\n", - " attr = expr.func.attr\n", - " if isinstance(expr.func.value, ast.Name) and expr.func.value.id == \"pd\" and attr == \"to_datetime\":\n", - " return \"timestamp\"\n", - " if attr in {\"pct_change\", \"mean\", \"sum\", \"std\", \"median\", \"max\", \"min\", \"rolling\"}:\n", - " return \"double\"\n", - " return \"string\"\n", - "\n", - " def _resolve_table_schema(self, expr: ast.AST, env: dict[str, dict[str, str]]) -> dict[str, str] | None:\n", - " if isinstance(expr, ast.Name):\n", - " schema = env.get(expr.id)\n", - " return dict(schema) if schema is not None else None\n", - " if isinstance(expr, ast.Subscript):\n", - " base = self._resolve_table_schema(expr.value, env)\n", - " cols = self._list_of_constant_strings(expr.slice)\n", - " if base is not None and cols is not None:\n", - " return {c: base[c] for c in cols if c in base}\n", - " return None\n", - " if isinstance(expr, ast.Call) and isinstance(expr.func, ast.Attribute):\n", - " base = self._resolve_table_schema(expr.func.value, env)\n", - " attr = expr.func.attr\n", - " if base is None:\n", - " return None\n", - " if attr in {\"copy\", \"dropna\", \"sort_values\", \"reset_index\", \"rename_axis\", \"fillna\", \"head\", \"tail\"}:\n", - " return dict(base)\n", - " if attr == \"assign\":\n", - " out = dict(base)\n", - " for kw in expr.keywords:\n", - " if kw.arg:\n", - " out[kw.arg] = self._infer_scalar_type(kw.value, env)\n", - " return out\n", - " return dict(base)\n", - " return None\n", - "\n", - " def infer(self, fn: ast.FunctionDef, stage: StageInvocation, input_columns: list[dict[str, str]]) -> tuple[list[dict[str, str]], bool]:\n", - " if stage.family != \"table\":\n", - " return [], True\n", - " env: dict[str, dict[str, str]] = {}\n", - " if stage.data_inputs:\n", - " if len(stage.data_inputs) == 1:\n", - " env[stage.data_inputs[0].param_name] = self._schema_dict(input_columns)\n", - " else:\n", - " merged: dict[str, str] = {}\n", - " for spec in stage.data_inputs:\n", - " for c in input_columns:\n", - " if c.get(\"attributeName\"):\n", - " merged[c[\"attributeName\"]] = c[\"attributeType\"]\n", - " env[spec.param_name] = dict(merged)\n", - " elif stage.is_source and stage.source_columns:\n", - " # Seed read_csv-assigned variables lazily below.\n", - " pass\n", - "\n", - " return_schema: dict[str, str] | None = None\n", - " for stmt in fn.body:\n", - " if isinstance(stmt, ast.Assign):\n", - " value_schema = self._resolve_table_schema(stmt.value, env)\n", - " if value_schema is not None:\n", - " for t in stmt.targets:\n", - " if isinstance(t, ast.Name):\n", - " env[t.id] = dict(value_schema)\n", - " for t in stmt.targets:\n", - " if isinstance(t, ast.Subscript) and isinstance(t.value, ast.Name):\n", - " root = t.value.id\n", - " if root not in env:\n", - " continue\n", - " if isinstance(t.slice, ast.Constant) and isinstance(t.slice.value, str):\n", - " env[root][t.slice.value] = self._infer_scalar_type(stmt.value, env)\n", - " elif isinstance(stmt, ast.Return) and stmt.value is not None:\n", - " rs = self._resolve_table_schema(stmt.value, env)\n", - " if rs is not None:\n", - " return_schema = rs\n", - "\n", - " if return_schema is None:\n", - " if stage.is_source:\n", - " return_schema = self._schema_dict(stage.source_columns)\n", - " elif len(stage.data_inputs) == 1:\n", - " return_schema = self._schema_dict(input_columns)\n", - " else:\n", - " return_schema = {}\n", - " for c in input_columns:\n", - " if c.get(\"attributeName\"):\n", - " return_schema[c[\"attributeName\"]] = c[\"attributeType\"]\n", - "\n", - " input_schema_dict = self._schema_dict(input_columns)\n", - " retain = return_schema == input_schema_dict\n", - " # Emit explicit output columns for all table stages to keep runtime schema aligned.\n", - " return self._schema_list(return_schema), False if return_schema else retain\n", - "\n", - "\n", - "class WorkflowIdFactory:\n", - " def operator_id(self, operator_type: str = \"PythonUDFV2\") -> str:\n", - " return f\"{operator_type}-operator-{uuid.uuid4()}\"\n", - "\n", - " def link_id(self) -> str:\n", - " return f\"link-{uuid.uuid4()}\"\n", - "\n", - " def stage_id(self, base: str, idx: int) -> str:\n", - " return f\"{base}__{idx}\"\n", - "\n", - "\n", - "class ConstantEnvBuilder:\n", - " def build(self, entry_fn: ast.FunctionDef) -> dict[str, ast.AST]:\n", - " env: dict[str, ast.AST] = {}\n", - " for stmt in entry_fn.body:\n", - " if isinstance(stmt, ast.Assign) and isinstance(stmt.value, ast.Constant):\n", - " for t in stmt.targets:\n", - " if isinstance(t, ast.Name):\n", - " env[t.id] = copy.deepcopy(stmt.value)\n", - " return env\n", - "\n", - "\n", - "class AttributeTypeInferer:\n", - " def from_annotation(self, annotation: ast.AST | None) -> str:\n", - " if annotation is None:\n", - " return \"AttributeType.STRING\"\n", - " text = ast.unparse(annotation)\n", - " if text in (\"str\", \"Optional[str]\"):\n", - " return \"AttributeType.STRING\"\n", - " if text in (\"int\", \"Optional[int]\"):\n", - " return \"AttributeType.INTEGER\"\n", - " if text in (\"float\", \"Optional[float]\"):\n", - " return \"AttributeType.DOUBLE\"\n", - " if text in (\"bool\", \"Optional[bool]\"):\n", - " return \"AttributeType.BOOLEAN\"\n", - " return \"AttributeType.STRING\"\n", - "\n", - " def from_value(self, node: ast.AST | None) -> str:\n", - " if isinstance(node, ast.Constant):\n", - " py_name = type(node.value).__name__\n", - " return ATTRIBUTE_TYPE_FOR_PY.get(py_name, \"AttributeType.STRING\")\n", - " return \"AttributeType.STRING\"\n", - "\n", - "\n", - "class EntryDagExtractor:\n", - " def __init__(self):\n", - " self.type_inferer = AttributeTypeInferer()\n", - " self.ids = WorkflowIdFactory()\n", - "\n", - " def _assigned_names(self, stmt: ast.stmt) -> list[str]:\n", - " names: list[str] = []\n", - " if isinstance(stmt, ast.Assign):\n", - " for t in stmt.targets:\n", - " if isinstance(t, ast.Name):\n", - " names.append(t.id)\n", - " elif isinstance(t, (ast.Tuple, ast.List)):\n", - " for elt in t.elts:\n", - " if isinstance(elt, ast.Name):\n", - " names.append(elt.id)\n", - " return names\n", - "\n", - " def extract(\n", - " self,\n", - " entry_fn: ast.FunctionDef,\n", - " functions: dict[str, ast.FunctionDef],\n", - " facts: dict[str, FunctionFacts],\n", - " constant_env: dict[str, ast.AST],\n", - " ) -> list[StageInvocation]:\n", - " stages: list[StageInvocation] = []\n", - " producer_for_var: dict[str, str] = {}\n", - " stage_index = 0\n", - "\n", - " for stmt in entry_fn.body:\n", - " call = None\n", - " if isinstance(stmt, ast.Assign) and isinstance(stmt.value, ast.Call):\n", - " call = stmt.value\n", - " elif isinstance(stmt, ast.Expr) and isinstance(stmt.value, ast.Call):\n", - " call = stmt.value\n", - " if not call or not isinstance(call.func, ast.Name) or call.func.id not in functions or call.func.id == entry_fn.name:\n", - " continue\n", - "\n", - " fn_name = call.func.id\n", - " fn = functions[fn_name]\n", - " fact = facts[fn_name]\n", - " assigned_to = self._assigned_names(stmt)\n", - " data_inputs: list[DataInputSpec] = []\n", - " ui_params: list[UiParamSpec] = []\n", - "\n", - " for i, param in enumerate(fn.args.args):\n", - " arg_node = None\n", - " if i < len(call.args):\n", - " arg_node = call.args[i]\n", - " else:\n", - " # support exact-name keyword arguments\n", - " for kw in call.keywords:\n", - " if kw.arg == param.arg:\n", - " arg_node = kw.value\n", - " break\n", - "\n", - " if arg_node is None:\n", - " continue\n", - "\n", - " if isinstance(arg_node, ast.Name) and arg_node.id in producer_for_var:\n", - " data_inputs.append(DataInputSpec(\n", - " param_name=param.arg,\n", - " upstream_stage_id=producer_for_var[arg_node.id],\n", - " upstream_var=arg_node.id,\n", - " input_port=len(data_inputs),\n", - " ))\n", - " else:\n", - " default_ast = copy.deepcopy(constant_env[arg_node.id]) if isinstance(arg_node, ast.Name) and arg_node.id in constant_env else copy.deepcopy(arg_node)\n", - " attr_type = self.type_inferer.from_value(default_ast)\n", - " if attr_type == \"AttributeType.STRING\":\n", - " attr_type = self.type_inferer.from_annotation(param.annotation) or attr_type\n", - " ui_params.append(UiParamSpec(name=param.arg, attr_type=attr_type, default_ast=default_ast))\n", - "\n", - " is_source = len(data_inputs) == 0\n", - " stage = StageInvocation(\n", - " stage_id=self.ids.stage_id(fn_name, stage_index),\n", - " function_name=fn_name,\n", - " family=fact.family,\n", - " is_source=is_source,\n", - " is_sink=fact.is_sink,\n", - " recursive=fact.recursive,\n", - " has_loop=fact.has_loop,\n", - " assigned_to=assigned_to,\n", - " data_inputs=data_inputs,\n", - " ui_params=ui_params,\n", - " )\n", - " stages.append(stage)\n", - " for name in assigned_to:\n", - " producer_for_var[name] = stage.stage_id\n", - " stage_index += 1\n", - "\n", - " return stages\n", - "\n", - "\n", - "class ParamRewriter(ast.NodeTransformer):\n", - " def __init__(self, name_mapping: dict[str, ast.AST]):\n", - " self.name_mapping = name_mapping\n", - "\n", - " def visit_Name(self, node: ast.Name):\n", - " if isinstance(node.ctx, ast.Load) and node.id in self.name_mapping:\n", - " return ast.copy_location(copy.deepcopy(self.name_mapping[node.id]), node)\n", - " return node\n", - "\n", - "\n", - "class YieldTransformer:\n", - " def __init__(self, family: str, is_source: bool, is_sink: bool, passthrough_name: str):\n", - " self.family = family\n", - " self.is_source = is_source\n", - " self.is_sink = is_sink\n", - " self.passthrough_name = passthrough_name\n", - "\n", - " def _yield_stmt(self, value: ast.AST | None) -> ast.stmt:\n", - " return ast.Expr(value=ast.Yield(value=value))\n", - "\n", - " def transform_block(self, body: list[ast.stmt], top_level: bool = False) -> list[ast.stmt]:\n", - " new_body: list[ast.stmt] = []\n", - " for stmt in body:\n", - " if isinstance(stmt, ast.Return):\n", - " if stmt.value is not None:\n", - " new_body.append(self._yield_stmt(stmt.value))\n", - " elif top_level and (not self.is_source) and self.is_sink:\n", - " new_body.append(self._yield_stmt(ast.Name(id=self.passthrough_name, ctx=ast.Load())))\n", - " new_body.append(ast.Return(value=None))\n", - " elif isinstance(stmt, ast.If):\n", - " stmt.body = self.transform_block(stmt.body, top_level=False)\n", - " stmt.orelse = self.transform_block(stmt.orelse, top_level=False)\n", - " new_body.append(stmt)\n", - " elif isinstance(stmt, ast.For):\n", - " stmt.body = self.transform_block(stmt.body, top_level=False)\n", - " stmt.orelse = self.transform_block(stmt.orelse, top_level=False)\n", - " new_body.append(stmt)\n", - " elif isinstance(stmt, ast.While):\n", - " stmt.body = self.transform_block(stmt.body, top_level=False)\n", - " stmt.orelse = self.transform_block(stmt.orelse, top_level=False)\n", - " new_body.append(stmt)\n", - " else:\n", - " new_body.append(stmt)\n", - "\n", - " has_yield = any(isinstance(n, ast.Yield) for n in ast.walk(ast.Module(body=new_body, type_ignores=[])))\n", - " if top_level and not has_yield and not self.is_source:\n", - " new_body.append(self._yield_stmt(ast.Name(id=self.passthrough_name, ctx=ast.Load())))\n", - " return new_body\n", - "\n", - "\n", - "class UdfBaseSelector:\n", - " def select(self, family: str, is_source: bool) -> tuple[str, str, str]:\n", - " if is_source:\n", - " return \"ProcessSourceOperator\", \"UDFSourceOperator\", \"produce\"\n", - " if family == \"tuple\":\n", - " return \"ProcessTupleOperator\", \"UDFOperatorV2\", \"process_tuple\"\n", - " if family == \"batch\":\n", - " return \"ProcessBatchOperator\", \"UDFBatchOperator\", \"process_batch\"\n", - " return \"ProcessTableOperator\", \"UDFTableOperator\", \"process_table\"\n", - "\n", - " def workflow_operator_type(self, family: str, is_source: bool, input_count: int) -> str:\n", - " \"\"\"\n", - " Workflow JSON only uses the Python operator types that are known to exist\n", - " in the target Texera deployment:\n", - " - PythonUDFSourceV2 for 0-input source operators\n", - " - PythonUDFV2 for regular 1-input Python UDFs\n", - " - DualInputPortsPythonUDFV2 for 2-input Python UDFs\n", - "\n", - " The implementation class inside `code` may still be UDFOperatorV2,\n", - " UDFBatchOperator, UDFTableOperator, or UDFSourceOperator.\n", - " \"\"\"\n", - " if is_source:\n", - " return \"PythonUDFSourceV2\"\n", - " if input_count == 2:\n", - " return \"DualInputPortsPythonUDFV2\"\n", - " return \"PythonUDFV2\"\n", - "\n", - " def data_variable(self, family: str) -> str:\n", - " return {\"tuple\": \"tuple_\", \"batch\": \"batch\"}.get(family, \"table\")\n", - "\n", - " def process_signature(self, family: str, is_source: bool) -> tuple[list[ast.arg], Optional[ast.AST]]:\n", - " if is_source:\n", - " return (\n", - " [ast.arg(arg=\"self\")],\n", - " ast.Subscript(\n", - " value=ast.Name(id=\"Iterator\", ctx=ast.Load()),\n", - " slice=ast.Subscript(\n", - " value=ast.Name(id=\"Optional\", ctx=ast.Load()),\n", - " slice=ast.Subscript(\n", - " value=ast.Name(id=\"Union\", ctx=ast.Load()),\n", - " slice=ast.Tuple(elts=[ast.Name(id=\"TupleLike\", ctx=ast.Load()), ast.Name(id=\"TableLike\", ctx=ast.Load())], ctx=ast.Load()),\n", - " ctx=ast.Load(),\n", - " ),\n", - " ctx=ast.Load(),\n", - " ),\n", - " ctx=ast.Load(),\n", - " ),\n", - " )\n", - " if family == \"tuple\":\n", - " return (\n", - " [ast.arg(arg=\"self\"), ast.arg(arg=\"tuple_\", annotation=ast.Name(id=\"Tuple\", ctx=ast.Load())), ast.arg(arg=\"port\", annotation=ast.Name(id=\"int\", ctx=ast.Load()))],\n", - " ast.Subscript(value=ast.Name(id=\"Iterator\", ctx=ast.Load()), slice=ast.Subscript(value=ast.Name(id=\"Optional\", ctx=ast.Load()), slice=ast.Name(id=\"TupleLike\", ctx=ast.Load()), ctx=ast.Load()), ctx=ast.Load()),\n", - " )\n", - " if family == \"batch\":\n", - " return (\n", - " [ast.arg(arg=\"self\"), ast.arg(arg=\"batch\", annotation=ast.Name(id=\"Batch\", ctx=ast.Load())), ast.arg(arg=\"port\", annotation=ast.Name(id=\"int\", ctx=ast.Load()))],\n", - " ast.Subscript(value=ast.Name(id=\"Iterator\", ctx=ast.Load()), slice=ast.Subscript(value=ast.Name(id=\"Optional\", ctx=ast.Load()), slice=ast.Name(id=\"BatchLike\", ctx=ast.Load()), ctx=ast.Load()), ctx=ast.Load()),\n", - " )\n", - " return (\n", - " [ast.arg(arg=\"self\"), ast.arg(arg=\"table\", annotation=ast.Name(id=\"Table\", ctx=ast.Load())), ast.arg(arg=\"port\", annotation=ast.Name(id=\"int\", ctx=ast.Load()))],\n", - " ast.Subscript(value=ast.Name(id=\"Iterator\", ctx=ast.Load()), slice=ast.Subscript(value=ast.Name(id=\"Optional\", ctx=ast.Load()), slice=ast.Name(id=\"TableLike\", ctx=ast.Load()), ctx=ast.Load()), ctx=ast.Load()),\n", - " )\n", - "\n", - "\n", - "class UiParameterEmitter:\n", - " def statements(self, spec: UiParamSpec) -> list[ast.stmt]:\n", - " stmts: list[ast.stmt] = []\n", - " if spec.default_ast is not None:\n", - " stmts.append(\n", - " ast.Assign(\n", - " targets=[ast.Attribute(value=ast.Name(id=\"self\", ctx=ast.Load()), attr=spec.name, ctx=ast.Store())],\n", - " value=copy.deepcopy(spec.default_ast),\n", - " )\n", - " )\n", - " else:\n", - " stmts.append(\n", - " ast.Assign(\n", - " targets=[ast.Attribute(value=ast.Name(id=\"self\", ctx=ast.Load()), attr=spec.name, ctx=ast.Store())],\n", - " value=ast.Constant(value=None),\n", - " )\n", - " )\n", - " return stmts\n", - "\n", - " def commented_line(self, spec: UiParamSpec) -> str:\n", - " attr_suffix = spec.attr_type.split(\".\")[-1]\n", - " return f\"# self.UiParameter({spec.name!r}, AttributeType.{attr_suffix}) # UiParameter disabled for now\"\n", - "\n", - " def hardcoded_comment_line(self, spec: UiParamSpec) -> str:\n", - " return f\"# Temporary hardcoded default for UI parameter '{spec.name}' from the source script.\"\n", - "\n", - "\n", - "class CodeCommentInjector:\n", - " def inject_ui_parameter_comments(self, code: str, stage: StageInvocation, ui_emitter: UiParameterEmitter) -> str:\n", - " if not stage.ui_params:\n", - " return code\n", - " lines = code.splitlines()\n", - " out: list[str] = []\n", - " specs_by_line = {\n", - " f\"self.{spec.name} = {ast.unparse(spec.default_ast) if spec.default_ast is not None else 'None'}\": spec\n", - " for spec in stage.ui_params\n", - " }\n", - " for line in lines:\n", - " out.append(line)\n", - " stripped = line.strip()\n", - " spec = specs_by_line.get(stripped)\n", - " if spec is not None:\n", - " indent = line[: len(line) - len(line.lstrip())]\n", - " out.append(indent + ui_emitter.hardcoded_comment_line(spec))\n", - " out.append(indent + ui_emitter.commented_line(spec))\n", - " return \"\\n\".join(out) + \"\\n\"\n", - "\n", - "\n", - "class FunctionBodyCompiler:\n", - " def __init__(self):\n", - " self.base_selector = UdfBaseSelector()\n", - " self.ui_emitter = UiParameterEmitter()\n", - " self.comment_injector = CodeCommentInjector()\n", - "\n", - " def _param_mapping(self, stage: StageInvocation) -> dict[str, ast.AST]:\n", - " mapping: dict[str, ast.AST] = {}\n", - " for spec in stage.ui_params:\n", - " mapping[spec.name] = ast.Attribute(value=ast.Name(id=\"self\", ctx=ast.Load()), attr=spec.name, ctx=ast.Load())\n", - " if stage.is_source:\n", - " return mapping\n", - " if len(stage.data_inputs) == 1:\n", - " only = stage.data_inputs[0]\n", - " mapping[only.param_name] = ast.Name(id=self.base_selector.data_variable(stage.family), ctx=ast.Load())\n", - " elif len(stage.data_inputs) > 1:\n", - " for spec in stage.data_inputs:\n", - " mapping[spec.param_name] = ast.Name(id=f\"input_{spec.input_port}\", ctx=ast.Load())\n", - " return mapping\n", - "\n", - " def _prep_statements(self, stage: StageInvocation) -> list[ast.stmt]:\n", - " stmts: list[ast.stmt] = []\n", - " if len(stage.data_inputs) > 1:\n", - " data_var = self.base_selector.data_variable(stage.family)\n", - " stmts.append(ast.Assign(\n", - " targets=[ast.Subscript(value=ast.Attribute(value=ast.Name(id=\"self\", ctx=ast.Load()), attr=\"_texera_inputs\", ctx=ast.Load()), slice=ast.Name(id=\"port\", ctx=ast.Load()), ctx=ast.Store())],\n", - " value=ast.Name(id=data_var, ctx=ast.Load()),\n", - " ))\n", - " cond = ast.Compare(\n", - " left=ast.Call(func=ast.Name(id=\"len\", ctx=ast.Load()), args=[ast.Attribute(value=ast.Name(id=\"self\", ctx=ast.Load()), attr=\"_texera_inputs\", ctx=ast.Load())], keywords=[]),\n", - " ops=[ast.Lt()],\n", - " comparators=[ast.Constant(value=len(stage.data_inputs))],\n", - " )\n", - " stmts.append(ast.If(test=cond, body=[ast.Return(value=None)], orelse=[]))\n", - " for spec in stage.data_inputs:\n", - " stmts.append(ast.Assign(\n", - " targets=[ast.Name(id=f\"input_{spec.input_port}\", ctx=ast.Store())],\n", - " value=ast.Subscript(value=ast.Attribute(value=ast.Name(id=\"self\", ctx=ast.Load()), attr=\"_texera_inputs\", ctx=ast.Load()), slice=ast.Constant(value=spec.input_port), ctx=ast.Load()),\n", - " ))\n", - " return stmts\n", - "\n", - " def compile_body(self, fn: ast.FunctionDef, stage: StageInvocation) -> list[ast.stmt]:\n", - " fn_copy = copy.deepcopy(fn)\n", - " mapping = self._param_mapping(stage)\n", - " fn_copy = ParamRewriter(mapping).visit(fn_copy)\n", - " ast.fix_missing_locations(fn_copy)\n", - "\n", - " body: list[ast.stmt] = self._prep_statements(stage)\n", - " for stmt in fn_copy.body:\n", - " if isinstance(stmt, ast.Expr) and isinstance(stmt.value, ast.Constant) and isinstance(stmt.value.value, str):\n", - " continue\n", - " body.append(stmt)\n", - " body = YieldTransformer(\n", - " family=stage.family,\n", - " is_source=stage.is_source,\n", - " is_sink=stage.is_sink,\n", - " passthrough_name=self.base_selector.data_variable(stage.family),\n", - " ).transform_block(body, top_level=True)\n", - " if not body:\n", - " body = [ast.Pass()]\n", - " return body\n", - "\n", - " def emit_class(self, import_nodes: list[ast.stmt], fn: ast.FunctionDef, stage: StageInvocation) -> str:\n", - " class_name, base_name, method_name = self.base_selector.select(stage.family, stage.is_source)\n", - " args_list, returns_ann = self.base_selector.process_signature(stage.family, stage.is_source)\n", - " body = self.compile_body(fn, stage)\n", - "\n", - " open_body: list[ast.stmt] = []\n", - " for spec in stage.ui_params:\n", - " open_body.extend(self.ui_emitter.statements(spec))\n", - " if len(stage.data_inputs) > 1:\n", - " open_body.append(ast.Assign(\n", - " targets=[ast.Attribute(value=ast.Name(id=\"self\", ctx=ast.Load()), attr=\"_texera_inputs\", ctx=ast.Store())],\n", - " value=ast.Dict(keys=[], values=[]),\n", - " ))\n", - " if not open_body:\n", - " open_body = [ast.Pass()]\n", - "\n", - " class_body: list[ast.stmt] = []\n", - " if stage.recursive:\n", - " class_body.append(ast.Expr(value=ast.Constant(value=f\"TRANSLATOR NOTE: {stage.function_name} is recursive.\")))\n", - " if stage.has_loop:\n", - " class_body.append(ast.Expr(value=ast.Constant(value=f\"TRANSLATOR NOTE: {stage.function_name} contains loops.\")))\n", - "\n", - " class_body.append(ast.FunctionDef(\n", - " name=\"open\",\n", - " args=ast.arguments(posonlyargs=[], args=[ast.arg(arg=\"self\")], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]),\n", - " body=open_body,\n", - " decorator_list=[],\n", - " returns=ast.Name(id=\"None\", ctx=ast.Load()),\n", - " type_comment=None,\n", - " ))\n", - " class_body.append(ast.FunctionDef(\n", - " name=method_name,\n", - " args=ast.arguments(posonlyargs=[], args=args_list, vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]),\n", - " body=body,\n", - " decorator_list=[ast.Name(id=\"overrides\", ctx=ast.Load())],\n", - " returns=returns_ann,\n", - " type_comment=None,\n", - " ))\n", - " class_body.append(ast.FunctionDef(\n", - " name=\"close\",\n", - " args=ast.arguments(posonlyargs=[], args=[ast.arg(arg=\"self\")], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]),\n", - " body=[ast.Pass()],\n", - " decorator_list=[],\n", - " returns=ast.Name(id=\"None\", ctx=ast.Load()),\n", - " type_comment=None,\n", - " ))\n", - " cls = ast.ClassDef(name=class_name, bases=[ast.Name(id=base_name, ctx=ast.Load())], keywords=[], body=class_body, decorator_list=[])\n", - " ast.fix_missing_locations(cls)\n", - "\n", - " prelude = [\n", - " \"from typing import Iterator, Optional, Union\",\n", - " *[ast.unparse(n) for n in import_nodes],\n", - " \"from pytexera import *\",\n", - " \"from core.models.schema.attribute_type import AttributeType\",\n", - " \"\",\n", - " ]\n", - " module = ast.Module(body=[cls], type_ignores=[])\n", - " ast.fix_missing_locations(module)\n", - " rendered = \"\\n\".join(prelude) + ast.unparse(module) + \"\\n\"\n", - " return self.comment_injector.inject_ui_parameter_comments(rendered, stage, self.ui_emitter)\n", - "\n", - "\n", - "class WorkflowOperatorBuilder:\n", - " def _operator_properties(self, stage: StageInvocation) -> dict[str, Any]:\n", - " props: dict[str, Any] = {\n", - " \"code\": stage.code,\n", - " \"workers\": 1,\n", - " }\n", - " if stage.operator_type == \"PythonUDFSourceV2\":\n", - " if stage.source_columns:\n", - " props[\"columns\"] = stage.source_columns\n", - " else:\n", - " props[\"retainInputColumns\"] = stage.retain_input_columns\n", - " if stage.output_columns:\n", - " props[\"outputColumns\"] = stage.output_columns\n", - " return props\n", - "\n", - " def _input_ports(self, stage: StageInvocation) -> list[dict[str, Any]]:\n", - " if stage.is_source:\n", - " return []\n", - " count = max(1, len(stage.data_inputs))\n", - " ports = []\n", - " for i in range(count):\n", - " display_name = \"\"\n", - " if count > 1 and i < len(stage.data_inputs):\n", - " display_name = stage.data_inputs[i].param_name\n", - " dependencies: list[dict[str, Any]] = []\n", - " if count > 1 and i > 0:\n", - " dependencies = [{\"id\": i - 1, \"internal\": False}]\n", - " ports.append({\n", - " \"portID\": f\"input-{i}\",\n", - " \"displayName\": display_name,\n", - " \"allowMultiInputs\": True,\n", - " \"isDynamicPort\": False,\n", - " \"dependencies\": dependencies,\n", - " })\n", - " return ports\n", - "\n", - " def _dynamic_ports_flags(self, stage: StageInvocation) -> tuple[bool, bool]:\n", - " if stage.is_source:\n", - " return False, False\n", - " if stage.operator_type == \"DualInputPortsPythonUDFV2\":\n", - " return False, False\n", - " return True, True\n", - "\n", - " def build(self, stage: StageInvocation, view_result: bool = False) -> dict[str, Any]:\n", - " dynamic_input_ports, dynamic_output_ports = self._dynamic_ports_flags(stage)\n", - " operator = {\n", - " \"operatorID\": stage.operator_id,\n", - " \"operatorType\": stage.operator_type,\n", - " \"operatorVersion\": \"N/A\",\n", - " \"operatorProperties\": self._operator_properties(stage),\n", - " \"inputPorts\": self._input_ports(stage),\n", - " \"outputPorts\": [\n", - " {\n", - " \"portID\": \"output-0\",\n", - " \"displayName\": \"\",\n", - " \"allowMultiInputs\": False,\n", - " \"isDynamicPort\": False,\n", - " }\n", - " ],\n", - " \"showAdvanced\": False,\n", - " \"isDisabled\": False,\n", - " \"customDisplayName\": stage.display_name,\n", - " \"dynamicInputPorts\": dynamic_input_ports,\n", - " \"dynamicOutputPorts\": dynamic_output_ports,\n", - " }\n", - " if view_result:\n", - " operator[\"viewResult\"] = True\n", - " return operator\n", - "\n", - "\n", - "class WorkflowLinkBuilder:\n", - " def __init__(self):\n", - " self.ids = WorkflowIdFactory()\n", - "\n", - " def build_links(self, stages: list[StageInvocation]) -> list[dict[str, Any]]:\n", - " stage_by_id = {s.stage_id: s for s in stages}\n", - " links: list[dict[str, Any]] = []\n", - " for stage in stages:\n", - " for inp in stage.data_inputs:\n", - " upstream = stage_by_id[inp.upstream_stage_id]\n", - " links.append({\n", - " \"linkID\": self.ids.link_id(),\n", - " \"source\": {\"operatorID\": upstream.operator_id, \"portID\": \"output-0\"},\n", - " \"target\": {\"operatorID\": stage.operator_id, \"portID\": f\"input-{inp.input_port}\"},\n", - " })\n", - " return links\n", - "\n", - "\n", - "class WorkflowLayoutBuilder:\n", - " def build_positions(self, stages: list[StageInvocation], start_x: int = 240, start_y: int = 180, x_gap: int = 300, y_gap: int = 180) -> dict[str, dict[str, int]]:\n", - " preds: dict[str, list[str]] = {s.stage_id: [inp.upstream_stage_id for inp in s.data_inputs] for s in stages}\n", - " layers: dict[str, int] = {}\n", - " remaining = {s.stage_id for s in stages}\n", - " while remaining:\n", - " progressed = False\n", - " for sid in list(remaining):\n", - " if all(p in layers for p in preds[sid]):\n", - " layers[sid] = 0 if not preds[sid] else max(layers[p] for p in preds[sid]) + 1\n", - " remaining.remove(sid)\n", - " progressed = True\n", - " if not progressed:\n", - " for sid in list(remaining):\n", - " layers[sid] = 0\n", - " remaining.remove(sid)\n", - " by_layer: dict[int, list[StageInvocation]] = {}\n", - " for s in stages:\n", - " by_layer.setdefault(layers[s.stage_id], []).append(s)\n", - " positions: dict[str, dict[str, int]] = {}\n", - " for layer, items in sorted(by_layer.items()):\n", - " for idx, stage in enumerate(items):\n", - " positions[stage.operator_id] = {\"x\": start_x + layer * x_gap, \"y\": start_y + idx * y_gap}\n", - " return positions\n", - "\n", - "\n", - "class WorkflowJsonAssembler:\n", - " def __init__(self):\n", - " self.operator_builder = WorkflowOperatorBuilder()\n", - " self.link_builder = WorkflowLinkBuilder()\n", - " self.layout_builder = WorkflowLayoutBuilder()\n", - "\n", - " def assemble(self, stages: list[StageInvocation]) -> dict[str, Any]:\n", - " operators = [\n", - " self.operator_builder.build(stage, view_result=(i == len(stages) - 1))\n", - " for i, stage in enumerate(stages)\n", - " ]\n", - " return {\n", - " \"operators\": operators,\n", - " \"operatorPositions\": self.layout_builder.build_positions(stages),\n", - " \"links\": self.link_builder.build_links(stages),\n", - " \"commentBoxes\": [],\n", - " \"settings\": {\"dataTransferBatchSize\": 400},\n", - " }\n", - "\n", - "\n", - "class WorkflowTranslator:\n", - " def __init__(self):\n", - " self.parser = SourceModuleParser()\n", - " self.imports = ImportCollector()\n", - " self.functions = FunctionIndex()\n", - " self.call_graph = CallGraphBuilder()\n", - " self.recursion = RecursiveAnalyzer()\n", - " self.facts = FunctionFactsAnalyzer()\n", - " self.constant_env = ConstantEnvBuilder()\n", - " self.dag_extractor = EntryDagExtractor()\n", - " self.ids = WorkflowIdFactory()\n", - " self.code_emitter = FunctionBodyCompiler()\n", - " self.workflow = WorkflowJsonAssembler()\n", - " self.schema_inferer = SourceSchemaInferer()\n", - " self.table_schema_inferer = TableOutputSchemaInferer()\n", - "\n", - " def translate(self, source: str, entry: str = \"main\") -> dict[str, Any]:\n", - " tree = self.parser.parse(source)\n", - " import_nodes = self.imports.collect_nodes(tree)\n", - " functions = self.functions.collect(tree)\n", - " if entry not in functions:\n", - " raise ValueError(f\"Entry function {entry!r} not found. Available: {sorted(functions)}\")\n", - "\n", - " graph = self.call_graph.build(functions)\n", - " recursive = self.recursion.detect(graph)\n", - " facts = self.facts.analyze(tree, functions, graph, recursive)\n", - " const_env = self.constant_env.build(functions[entry])\n", - " stages = self.dag_extractor.extract(functions[entry], functions, facts, const_env)\n", - " if not stages:\n", - " raise ValueError(f\"Entry function {entry!r} does not contain a detectable pipeline of helper calls.\")\n", - "\n", - " stage_by_id: dict[str, StageInvocation] = {s.stage_id: s for s in stages}\n", - " for stage in stages:\n", - " fn = functions[stage.function_name]\n", - " if len(stage.data_inputs) > 2:\n", - " raise ValueError(f\"Current workflow JSON emitter supports at most 2 data inputs per stage, got {len(stage.data_inputs)} for {stage.function_name!r}.\")\n", - " stage.operator_type = UdfBaseSelector().workflow_operator_type(stage.family, stage.is_source, len(stage.data_inputs))\n", - " stage.operator_id = self.ids.operator_id(stage.operator_type)\n", - " stage.display_name = \" \".join(part.capitalize() for part in stage.function_name.split(\"_\"))\n", - " stage.source_columns = self.schema_inferer.infer(fn, stage)\n", - " if stage.operator_type == \"PythonUDFSourceV2\" and stage.family == \"table\" and not stage.source_columns:\n", - " raise ValueError(\n", - " f\"Could not infer output columns for source stage {stage.function_name!r}. \"\n", - " \"Make the source schema explicit or use a source that can be sampled at translation time.\"\n", - " )\n", - " if stage.family == \"table\":\n", - " input_columns: list[dict[str, str]] = []\n", - " for di in stage.data_inputs:\n", - " upstream = stage_by_id[di.upstream_stage_id]\n", - " input_columns.extend(upstream.output_columns or upstream.source_columns)\n", - " if stage.is_source:\n", - " stage.output_columns = list(stage.source_columns)\n", - " stage.retain_input_columns = False\n", - " else:\n", - " stage.output_columns, stage.retain_input_columns = self.table_schema_inferer.infer(fn, stage, input_columns)\n", - " stage.code = self.code_emitter.emit_class(import_nodes, fn, stage)\n", - "\n", - " workflow_json = self.workflow.assemble(stages)\n", - " metadata = {\n", - " \"entry\": entry,\n", - " \"stages\": [\n", - " {\n", - " \"stage_id\": s.stage_id,\n", - " \"function\": s.function_name,\n", - " \"operatorID\": s.operator_id,\n", - " \"operator_type\": s.operator_type,\n", - " \"family\": s.family,\n", - " \"base_class\": UdfBaseSelector().select(s.family, s.is_source)[1],\n", - " \"method\": UdfBaseSelector().select(s.family, s.is_source)[2],\n", - " \"is_source\": s.is_source,\n", - " \"is_sink\": s.is_sink,\n", - " \"recursive\": s.recursive,\n", - " \"has_loop\": s.has_loop,\n", - " \"assigned_to\": s.assigned_to,\n", - " \"data_inputs\": [\n", - " {\n", - " \"param_name\": di.param_name,\n", - " \"upstream_stage_id\": di.upstream_stage_id,\n", - " \"upstream_var\": di.upstream_var,\n", - " \"input_port\": di.input_port,\n", - " }\n", - " for di in s.data_inputs\n", - " ],\n", - " \"ui_parameters\": [\n", - " {\n", - " \"name\": p.name,\n", - " \"attr_type\": p.attr_type,\n", - " \"default\": ast.unparse(p.default_ast) if p.default_ast is not None else None,\n", - " }\n", - " for p in s.ui_params\n", - " ],\n", - " \"source_columns\": s.source_columns,\n", - " \"output_columns\": s.output_columns,\n", - " \"retain_input_columns\": s.retain_input_columns,\n", - " }\n", - " for s in stages\n", - " ],\n", - " }\n", - " return {\"workflow_json\": workflow_json, \"metadata\": metadata}\n", - "\n", - "\n", - "def translate_to_texera_workflow_json(source: str, entry: str = \"main\") -> dict[str, Any]:\n", - " return WorkflowTranslator().translate(source, entry=entry)\n", - "\n", - "\n", - "def write_translation(result: dict[str, Any], out_prefix: str | Path) -> dict[str, str]:\n", - " out_prefix = Path(out_prefix)\n", - " base = out_prefix.with_suffix(\"\")\n", - " workflow_path = base.parent / f\"{base.name}.workflow.json\"\n", - " meta_path = base.parent / f\"{base.name}.workflow.meta.json\"\n", - " workflow_path.write_text(json.dumps(result[\"workflow_json\"], indent=2) + \"\\n\", encoding=\"utf-8\")\n", - " meta_path.write_text(json.dumps(result[\"metadata\"], indent=2) + \"\\n\", encoding=\"utf-8\")\n", - " return {\"workflow_json\": str(workflow_path), \"workflow_metadata\": str(meta_path)}\n", - "\n", - "# =============================\n", - "# Native-operator knowledge base\n", - "# =============================\n", - "\n", - "@dataclass\n", - "class NativeOperatorMatch:\n", - " operator_type: str\n", - " properties: dict[str, Any]\n", - " display_name: str | None = None\n", - " confidence: float = 1.0\n", - " output_columns: list[dict[str, str]] | None = None\n", - " retain_input_columns: bool | None = None\n", - " notes: list[str] = field(default_factory=list)\n", - "\n", - "\n", - "class NativeOperatorCatalog:\n", - " def __init__(self, catalog_json_path: str | Path | None = None):\n", - " self.catalog_json_path = Path(catalog_json_path) if catalog_json_path else None\n", - " self.templates: dict[str, dict[str, Any]] = {}\n", - " self._load_default_if_available()\n", - "\n", - " def _load_default_if_available(self):\n", - " if self.catalog_json_path is None:\n", - " default = Path('/mnt/data/Untitled workflow (11).json')\n", - " if default.exists():\n", - " self.catalog_json_path = default\n", - " if self.catalog_json_path and self.catalog_json_path.exists():\n", - " self.load(self.catalog_json_path)\n", - "\n", - " def load(self, path: str | Path):\n", - " path = Path(path)\n", - " obj = json.loads(path.read_text(encoding='utf-8'))\n", - " templates: dict[str, dict[str, Any]] = {}\n", - " for op in obj.get('operators', []):\n", - " op_type = op.get('operatorType')\n", - " if op_type and op_type not in templates:\n", - " templates[op_type] = copy.deepcopy(op)\n", - " self.templates = templates\n", - "\n", - " def has(self, operator_type: str) -> bool:\n", - " return operator_type in self.templates\n", - "\n", - " def template(self, operator_type: str) -> dict[str, Any]:\n", - " if operator_type not in self.templates:\n", - " raise KeyError(f'Operator type {operator_type!r} not found in native operator catalog')\n", - " return copy.deepcopy(self.templates[operator_type])\n", - "\n", - "\n", - "class ImportAliasIndex:\n", - " def build(self, tree: ast.Module) -> dict[str, str]:\n", - " aliases: dict[str, str] = {}\n", - " for node in tree.body:\n", - " if isinstance(node, ast.Import):\n", - " for alias in node.names:\n", - " aliases[alias.asname or alias.name.split('.')[0]] = alias.name\n", - " elif isinstance(node, ast.ImportFrom):\n", - " mod = node.module or ''\n", - " for alias in node.names:\n", - " aliases[alias.asname or alias.name] = f\"{mod}.{alias.name}\" if mod else alias.name\n", - " return aliases\n", - "\n", - "\n", - "class QualifiedNameResolver:\n", - " def __init__(self, aliases: dict[str, str]):\n", - " self.aliases = aliases\n", - "\n", - " def resolve(self, node: ast.AST | None) -> str | None:\n", - " if node is None:\n", - " return None\n", - " if isinstance(node, ast.Name):\n", - " return self.aliases.get(node.id, node.id)\n", - " if isinstance(node, ast.Attribute):\n", - " base = self.resolve(node.value)\n", - " if base is None:\n", - " return None\n", - " return f\"{base}.{node.attr}\"\n", - " return None\n", - "\n", - "\n", - "@dataclass\n", - "class CallSignature:\n", - " qualified_names: tuple[str, ...]\n", - " positional_params: tuple[str, ...] = ()\n", - " keyword_aliases: dict[str, str] = field(default_factory=dict)\n", - "\n", - "\n", - "class CallArgumentBinder:\n", - " def bind(self, call: ast.Call, sig: CallSignature) -> dict[str, ast.AST]:\n", - " bound: dict[str, ast.AST] = {}\n", - " for idx, arg in enumerate(call.args):\n", - " if idx < len(sig.positional_params):\n", - " bound[sig.positional_params[idx]] = arg\n", - " for kw in call.keywords:\n", - " if kw.arg is None:\n", - " continue\n", - " canonical = sig.keyword_aliases.get(kw.arg, kw.arg)\n", - " bound[canonical] = kw.value\n", - " return bound\n", - "\n", - "\n", - "class StageSemanticFacts:\n", - " def __init__(self, fn: ast.FunctionDef, resolver: QualifiedNameResolver):\n", - " self.fn = fn\n", - " self.resolver = resolver\n", - " self.calls: list[ast.Call] = []\n", - " self.assignments: list[ast.Assign] = []\n", - " self.returns: list[ast.Return] = []\n", - " self.name_to_value: dict[str, ast.AST] = {}\n", - " self._scan()\n", - "\n", - " def _scan(self):\n", - " for stmt in self.fn.body:\n", - " if isinstance(stmt, ast.Assign):\n", - " self.assignments.append(stmt)\n", - " if len(stmt.targets) == 1 and isinstance(stmt.targets[0], ast.Name):\n", - " self.name_to_value[stmt.targets[0].id] = stmt.value\n", - " elif isinstance(stmt, ast.Return):\n", - " self.returns.append(stmt)\n", - " for node in ast.walk(stmt):\n", - " if isinstance(node, ast.Call):\n", - " self.calls.append(node)\n", - "\n", - " def call_qname(self, call: ast.Call) -> str | None:\n", - " return self.resolver.resolve(call.func)\n", - "\n", - " def all_call_names(self) -> list[str]:\n", - " out = []\n", - " for call in self.calls:\n", - " name = self.call_qname(call)\n", - " if name:\n", - " out.append(name)\n", - " return out\n", - "\n", - " def final_return_value(self) -> ast.AST | None:\n", - " for stmt in reversed(self.fn.body):\n", - " if isinstance(stmt, ast.Return):\n", - " return stmt.value\n", - " return None\n", - "\n", - "\n", - "class NativeMatchContext:\n", - " def __init__(self, stage: StageInvocation, fn: ast.FunctionDef, facts: StageSemanticFacts,\n", - " input_columns: list[dict[str, str]], const_env: dict[str, ast.AST]):\n", - " self.stage = stage\n", - " self.fn = fn\n", - " self.facts = facts\n", - " self.input_columns = input_columns\n", - " self.const_env = const_env\n", - "\n", - " @property\n", - " def input_column_names(self) -> list[str]:\n", - " return [c.get('attributeName', '') for c in self.input_columns if c.get('attributeName')]\n", - "\n", - " def resolve_const(self, node: ast.AST | None) -> ast.AST | None:\n", - " if isinstance(node, ast.Name) and node.id in self.const_env:\n", - " return self.const_env[node.id]\n", - " return node\n", - "\n", - " def const_value(self, node: ast.AST | None) -> Any:\n", - " node = self.resolve_const(node)\n", - " if isinstance(node, ast.Constant):\n", - " return node.value\n", - " return None\n", - "\n", - " def subscript_column(self, node: ast.AST | None) -> str | None:\n", - " if isinstance(node, ast.Subscript):\n", - " sl = node.slice\n", - " if isinstance(sl, ast.Constant) and isinstance(sl.value, str):\n", - " return sl.value\n", - " return None\n", - "\n", - "\n", - "class NativeMatcher:\n", - " def match(self, ctx: NativeMatchContext) -> NativeOperatorMatch | None:\n", - " raise NotImplementedError\n", - "\n", - "\n", - "class PandasReadCsvMatcher(NativeMatcher):\n", - " SIG = CallSignature(\n", - " qualified_names=('pandas.read_csv', 'pd.read_csv'),\n", - " positional_params=('filepath_or_buffer',),\n", - " keyword_aliases={'filepath_or_buffer': 'filepath_or_buffer', 'sep': 'sep', 'delimiter': 'sep', 'header': 'header'},\n", - " )\n", - "\n", - " def __init__(self):\n", - " self.binder = CallArgumentBinder()\n", - "\n", - " def match(self, ctx: NativeMatchContext) -> NativeOperatorMatch | None:\n", - " if not ctx.stage.is_source:\n", - " return None\n", - " for call in ctx.facts.calls:\n", - " qn = ctx.facts.call_qname(call)\n", - " if qn not in self.SIG.qualified_names:\n", - " continue\n", - " args = self.binder.bind(call, self.SIG)\n", - " file_node = ctx.resolve_const(args.get('filepath_or_buffer'))\n", - " file_value = ctx.const_value(file_node)\n", - " if isinstance(file_value, str) and file_value:\n", - " file_name = file_value\n", - " elif file_node is not None:\n", - " file_name = ast.unparse(file_node)\n", - " else:\n", - " file_name = ''\n", - " sep = ctx.const_value(args.get('sep')) or ','\n", - " header = args.get('header')\n", - " has_header = ctx.const_value(header)\n", - " if has_header is None:\n", - " has_header = True\n", - " props = {\n", - " 'fileEncoding': 'UTF_8',\n", - " 'customDelimiter': sep,\n", - " 'hasHeader': bool(has_header),\n", - " 'fileName': file_name,\n", - " }\n", - " return NativeOperatorMatch(\n", - " operator_type='CSVFileScan',\n", - " properties=props,\n", - " display_name='CSV File Scan',\n", - " confidence=0.99,\n", - " output_columns=ctx.stage.source_columns or None,\n", - " retain_input_columns=False,\n", - " notes=['Matched pandas.read_csv to CSVFileScan'],\n", - " )\n", - " return None\n", - "\n", - "\n", - "class HistPlotMatcher(NativeMatcher):\n", - " def match(self, ctx: NativeMatchContext) -> NativeOperatorMatch | None:\n", - " for call in ctx.facts.calls:\n", - " qn = ctx.facts.call_qname(call)\n", - " col = None\n", - " if qn in ('matplotlib.pyplot.hist', 'plt.hist') and call.args:\n", - " col = ctx.subscript_column(call.args[0])\n", - " elif qn in ('seaborn.histplot', 'sns.histplot'):\n", - " for kw in call.keywords:\n", - " if kw.arg == 'x':\n", - " if isinstance(kw.value, ast.Constant) and isinstance(kw.value.value, str):\n", - " col = kw.value.value\n", - " else:\n", - " col = ctx.subscript_column(kw.value)\n", - " elif qn in ('plotly.express.histogram', 'px.histogram'):\n", - " for kw in call.keywords:\n", - " if kw.arg in ('x', 'y') and isinstance(kw.value, ast.Constant) and isinstance(kw.value.value, str):\n", - " col = kw.value.value\n", - " break\n", - " elif qn is None and isinstance(call.func, ast.Attribute) and call.func.attr == 'plot':\n", - " base = call.func.value\n", - " if isinstance(base, ast.Call) and isinstance(base.func, ast.Attribute) and base.func.attr == 'dropna':\n", - " if call.keywords:\n", - " for kw in call.keywords:\n", - " if kw.arg == 'kind' and isinstance(kw.value, ast.Constant) and kw.value.value == 'hist':\n", - " col = ctx.subscript_column(base.func.value)\n", - " break\n", - " if col:\n", - " return NativeOperatorMatch(\n", - " operator_type='Histogram',\n", - " properties={'value': col},\n", - " display_name='Histogram',\n", - " confidence=0.95,\n", - " output_columns=ctx.input_columns,\n", - " retain_input_columns=True,\n", - " notes=[f'Matched histogram on column {col!r}'],\n", - " )\n", - " return None\n", - "\n", - "\n", - "class ScatterPlotMatcher(NativeMatcher):\n", - " def match(self, ctx: NativeMatchContext) -> NativeOperatorMatch | None:\n", - " for call in ctx.facts.calls:\n", - " qn = ctx.facts.call_qname(call)\n", - " x = y = None\n", - " if qn in ('matplotlib.pyplot.scatter', 'plt.scatter') and len(call.args) >= 2:\n", - " x = ctx.subscript_column(call.args[0])\n", - " y = ctx.subscript_column(call.args[1])\n", - " elif qn in ('seaborn.scatterplot', 'sns.scatterplot'):\n", - " for kw in call.keywords:\n", - " if kw.arg == 'x':\n", - " x = kw.value.value if isinstance(kw.value, ast.Constant) else ctx.subscript_column(kw.value)\n", - " elif kw.arg == 'y':\n", - " y = kw.value.value if isinstance(kw.value, ast.Constant) else ctx.subscript_column(kw.value)\n", - " elif qn in ('plotly.express.scatter', 'px.scatter'):\n", - " for kw in call.keywords:\n", - " if kw.arg == 'x' and isinstance(kw.value, ast.Constant):\n", - " x = kw.value.value\n", - " elif kw.arg == 'y' and isinstance(kw.value, ast.Constant):\n", - " y = kw.value.value\n", - " if x and y:\n", - " return NativeOperatorMatch(\n", - " operator_type='Scatterplot',\n", - " properties={'xColumn': x, 'yColumn': y, 'alpha': 1.0, 'xLogScale': False, 'yLogScale': False},\n", - " display_name='Scatter Plot',\n", - " confidence=0.95,\n", - " output_columns=ctx.input_columns,\n", - " retain_input_columns=True,\n", - " notes=[f'Matched scatter plot on {x!r}, {y!r}'],\n", - " )\n", - " return None\n", - "\n", - "\n", - "class PieChartMatcher(NativeMatcher):\n", - " def match(self, ctx: NativeMatchContext) -> NativeOperatorMatch | None:\n", - " for call in ctx.facts.calls:\n", - " qn = ctx.facts.call_qname(call)\n", - " value = name = None\n", - " if qn in ('matplotlib.pyplot.pie', 'plt.pie') and call.args:\n", - " value = ctx.subscript_column(call.args[0])\n", - " for kw in call.keywords:\n", - " if kw.arg == 'labels':\n", - " name = ctx.subscript_column(kw.value)\n", - " elif qn in ('plotly.express.pie', 'px.pie'):\n", - " for kw in call.keywords:\n", - " if kw.arg == 'values' and isinstance(kw.value, ast.Constant):\n", - " value = kw.value.value\n", - " elif kw.arg == 'names' and isinstance(kw.value, ast.Constant):\n", - " name = kw.value.value\n", - " if value and name:\n", - " return NativeOperatorMatch(\n", - " operator_type='PieChart',\n", - " properties={'value': value, 'name': name},\n", - " display_name='Pie Chart',\n", - " confidence=0.93,\n", - " output_columns=ctx.input_columns,\n", - " retain_input_columns=True,\n", - " )\n", - " return None\n", - "\n", - "\n", - "class WordCloudMatcher(NativeMatcher):\n", - " def match(self, ctx: NativeMatchContext) -> NativeOperatorMatch | None:\n", - " # Look for WordCloud().generate(_from_text)?(table['col'])\n", - " for call in ctx.facts.calls:\n", - " qn = ctx.facts.call_qname(call)\n", - " if qn not in ('wordcloud.WordCloud', 'WordCloud'):\n", - " continue\n", - " generated_col = None\n", - " top_n = 200\n", - " for kw in call.keywords:\n", - " if kw.arg in ('max_words', 'top_n'):\n", - " v = ctx.const_value(kw.value)\n", - " if isinstance(v, int):\n", - " top_n = v\n", - " # search users of constructor result\n", - " for node in ast.walk(ctx.fn):\n", - " if isinstance(node, ast.Call) and isinstance(node.func, ast.Attribute) and node.func.attr in ('generate', 'generate_from_text') and node.args:\n", - " generated_col = ctx.subscript_column(node.args[0])\n", - " if generated_col:\n", - " return NativeOperatorMatch(\n", - " operator_type='WordCloud',\n", - " properties={'topN': top_n, 'textColumn': generated_col},\n", - " display_name='Word Cloud',\n", - " confidence=0.92,\n", - " output_columns=ctx.input_columns,\n", - " retain_input_columns=True,\n", - " )\n", - " return None\n", - "\n", - "\n", - "class NativeOperatorKnowledgeBase:\n", - " def __init__(self):\n", - " self.matchers: list[NativeMatcher] = [\n", - " PandasReadCsvMatcher(),\n", - " HistPlotMatcher(),\n", - " ScatterPlotMatcher(),\n", - " PieChartMatcher(),\n", - " WordCloudMatcher(),\n", - " ]\n", - "\n", - " def match(self, ctx: NativeMatchContext) -> NativeOperatorMatch | None:\n", - " best: NativeOperatorMatch | None = None\n", - " for matcher in self.matchers:\n", - " match = matcher.match(ctx)\n", - " if match is not None and (best is None or match.confidence > best.confidence):\n", - " best = match\n", - " return best\n", - "\n", - "\n", - "class NativeStagePlanner:\n", - " def __init__(self, catalog: NativeOperatorCatalog | None = None):\n", - " self.catalog = catalog or NativeOperatorCatalog()\n", - " self.aliases = ImportAliasIndex()\n", - " self.knowledge = NativeOperatorKnowledgeBase()\n", - "\n", - " def plan(self, tree: ast.Module, fn: ast.FunctionDef, stage: StageInvocation,\n", - " input_columns: list[dict[str, str]], const_env: dict[str, ast.AST]) -> NativeOperatorMatch | None:\n", - " alias_map = self.aliases.build(tree)\n", - " resolver = QualifiedNameResolver(alias_map)\n", - " facts = StageSemanticFacts(fn, resolver)\n", - " ctx = NativeMatchContext(stage, fn, facts, input_columns, const_env)\n", - " match = self.knowledge.match(ctx)\n", - " if match is None:\n", - " return None\n", - " if not self.catalog.has(match.operator_type):\n", - " return None\n", - " return match\n", - "\n", - "\n", - "# =============================\n", - "# Override workflow builders with native support\n", - "# =============================\n", - "\n", - "class WorkflowOperatorBuilder:\n", - " def __init__(self, native_catalog: NativeOperatorCatalog | None = None):\n", - " self.native_catalog = native_catalog or NativeOperatorCatalog()\n", - "\n", - " def _operator_properties(self, stage: StageInvocation) -> dict[str, Any]:\n", - " if getattr(stage, 'native_operator_type', None):\n", - " props = copy.deepcopy(getattr(stage, 'native_operator_properties', {}) or {})\n", - " return props\n", - " props: dict[str, Any] = {\n", - " 'code': stage.code,\n", - " 'workers': 1,\n", - " }\n", - " if stage.operator_type == 'PythonUDFSourceV2':\n", - " if stage.source_columns:\n", - " props['columns'] = stage.source_columns\n", - " else:\n", - " props['retainInputColumns'] = stage.retain_input_columns\n", - " if stage.output_columns:\n", - " props['outputColumns'] = stage.output_columns\n", - " return props\n", - "\n", - " def _input_ports(self, stage: StageInvocation) -> list[dict[str, Any]]:\n", - " if getattr(stage, 'native_operator_type', None):\n", - " template = self.native_catalog.template(stage.native_operator_type)\n", - " ports = copy.deepcopy(template.get('inputPorts', []))\n", - " count = len(stage.data_inputs)\n", - " if count and len(ports) >= count:\n", - " for i in range(count):\n", - " if i < len(ports):\n", - " ports[i]['portID'] = f'input-{i}'\n", - " if count > 1 and i < len(stage.data_inputs):\n", - " ports[i]['displayName'] = stage.data_inputs[i].param_name\n", - " ports[i]['dependencies'] = [] if i == 0 else [{'id': i - 1, 'internal': False}]\n", - " return ports[:count]\n", - " return ports\n", - " if stage.is_source:\n", - " return []\n", - " count = max(1, len(stage.data_inputs))\n", - " ports = []\n", - " for i in range(count):\n", - " display_name = ''\n", - " if count > 1 and i < len(stage.data_inputs):\n", - " display_name = stage.data_inputs[i].param_name\n", - " dependencies: list[dict[str, Any]] = []\n", - " if count > 1 and i > 0:\n", - " dependencies = [{'id': i - 1, 'internal': False}]\n", - " ports.append({\n", - " 'portID': f'input-{i}',\n", - " 'displayName': display_name,\n", - " 'allowMultiInputs': True,\n", - " 'isDynamicPort': False,\n", - " 'dependencies': dependencies,\n", - " })\n", - " return ports\n", - "\n", - " def _dynamic_ports_flags(self, stage: StageInvocation) -> tuple[bool, bool]:\n", - " if getattr(stage, 'native_operator_type', None):\n", - " template = self.native_catalog.template(stage.native_operator_type)\n", - " return bool(template.get('dynamicInputPorts', False)), bool(template.get('dynamicOutputPorts', False))\n", - " if stage.is_source:\n", - " return False, False\n", - " if stage.operator_type == 'DualInputPortsPythonUDFV2':\n", - " return False, False\n", - " return True, True\n", - "\n", - " def build(self, stage: StageInvocation, view_result: bool = False) -> dict[str, Any]:\n", - " if getattr(stage, 'native_operator_type', None):\n", - " template = self.native_catalog.template(stage.native_operator_type)\n", - " template['operatorID'] = stage.operator_id\n", - " template['operatorType'] = stage.native_operator_type\n", - " template['operatorVersion'] = 'N/A'\n", - " template['operatorProperties'] = self._operator_properties(stage)\n", - " template['inputPorts'] = self._input_ports(stage)\n", - " template['outputPorts'] = copy.deepcopy(template.get('outputPorts', [\n", - " {'portID': 'output-0', 'displayName': '', 'allowMultiInputs': False, 'isDynamicPort': False}\n", - " ]))\n", - " template['customDisplayName'] = stage.display_name\n", - " if view_result:\n", - " template['viewResult'] = True\n", - " return template\n", - "\n", - " dynamic_input_ports, dynamic_output_ports = self._dynamic_ports_flags(stage)\n", - " operator = {\n", - " 'operatorID': stage.operator_id,\n", - " 'operatorType': stage.operator_type,\n", - " 'operatorVersion': 'N/A',\n", - " 'operatorProperties': self._operator_properties(stage),\n", - " 'inputPorts': self._input_ports(stage),\n", - " 'outputPorts': [\n", - " {'portID': 'output-0', 'displayName': '', 'allowMultiInputs': False, 'isDynamicPort': False}\n", - " ],\n", - " 'showAdvanced': False,\n", - " 'isDisabled': False,\n", - " 'customDisplayName': stage.display_name,\n", - " 'dynamicInputPorts': dynamic_input_ports,\n", - " 'dynamicOutputPorts': dynamic_output_ports,\n", - " }\n", - " if view_result:\n", - " operator['viewResult'] = True\n", - " return operator\n", - "\n", - "\n", - "class WorkflowJsonAssembler:\n", - " def __init__(self, native_catalog: NativeOperatorCatalog | None = None):\n", - " self.operator_builder = WorkflowOperatorBuilder(native_catalog=native_catalog)\n", - " self.link_builder = WorkflowLinkBuilder()\n", - " self.layout_builder = WorkflowLayoutBuilder()\n", - "\n", - " def assemble(self, stages: list[StageInvocation]) -> dict[str, Any]:\n", - " operators = [\n", - " self.operator_builder.build(stage, view_result=(i == len(stages) - 1))\n", - " for i, stage in enumerate(stages)\n", - " ]\n", - " return {\n", - " 'operators': operators,\n", - " 'operatorPositions': self.layout_builder.build_positions(stages),\n", - " 'links': self.link_builder.build_links(stages),\n", - " 'commentBoxes': [],\n", - " 'settings': {'dataTransferBatchSize': 400},\n", - " }\n", - "\n", - "\n", - "class WorkflowTranslator:\n", - " def __init__(self, catalog_json_path: str | Path | None = None):\n", - " self.parser = SourceModuleParser()\n", - " self.imports = ImportCollector()\n", - " self.functions = FunctionIndex()\n", - " self.call_graph = CallGraphBuilder()\n", - " self.recursion = RecursiveAnalyzer()\n", - " self.facts = FunctionFactsAnalyzer()\n", - " self.constant_env = ConstantEnvBuilder()\n", - " self.dag_extractor = EntryDagExtractor()\n", - " self.ids = WorkflowIdFactory()\n", - " self.code_emitter = FunctionBodyCompiler()\n", - " self.catalog = NativeOperatorCatalog(catalog_json_path)\n", - " self.native_planner = NativeStagePlanner(self.catalog)\n", - " self.workflow = WorkflowJsonAssembler(native_catalog=self.catalog)\n", - " self.schema_inferer = SourceSchemaInferer()\n", - " self.table_schema_inferer = TableOutputSchemaInferer()\n", - "\n", - " def translate(self, source: str, entry: str = 'main') -> dict[str, Any]:\n", - " tree = self.parser.parse(source)\n", - " import_nodes = self.imports.collect_nodes(tree)\n", - " functions = self.functions.collect(tree)\n", - " if entry not in functions:\n", - " raise ValueError(f\"Entry function {entry!r} not found. Available: {sorted(functions)}\")\n", - "\n", - " graph = self.call_graph.build(functions)\n", - " recursive = self.recursion.detect(graph)\n", - " facts = self.facts.analyze(tree, functions, graph, recursive)\n", - " const_env = self.constant_env.build(functions[entry])\n", - " stages = self.dag_extractor.extract(functions[entry], functions, facts, const_env)\n", - " if not stages:\n", - " raise ValueError(f\"Entry function {entry!r} does not contain a detectable pipeline of helper calls.\")\n", - "\n", - " stage_by_id: dict[str, StageInvocation] = {s.stage_id: s for s in stages}\n", - " selector = UdfBaseSelector()\n", - " for stage in stages:\n", - " fn = functions[stage.function_name]\n", - " if len(stage.data_inputs) > 2:\n", - " raise ValueError(f\"Current workflow JSON emitter supports at most 2 data inputs per stage, got {len(stage.data_inputs)} for {stage.function_name!r}.\")\n", - " stage.display_name = ' '.join(part.capitalize() for part in stage.function_name.split('_'))\n", - " # default UDF path\n", - " stage.operator_type = selector.workflow_operator_type(stage.family, stage.is_source, len(stage.data_inputs))\n", - " stage.operator_id = self.ids.operator_id(stage.operator_type)\n", - " stage.source_columns = self.schema_inferer.infer(fn, stage)\n", - " if stage.family == 'table':\n", - " input_columns: list[dict[str, str]] = []\n", - " for di in stage.data_inputs:\n", - " upstream = stage_by_id[di.upstream_stage_id]\n", - " input_columns.extend(getattr(upstream, 'output_columns', []) or getattr(upstream, 'source_columns', []))\n", - " if stage.is_source:\n", - " stage.output_columns = list(stage.source_columns)\n", - " stage.retain_input_columns = False\n", - " else:\n", - " stage.output_columns, stage.retain_input_columns = self.table_schema_inferer.infer(fn, stage, input_columns)\n", - " else:\n", - " input_columns = []\n", - "\n", - " native_match = self.native_planner.plan(tree, fn, stage, input_columns, const_env)\n", - " if native_match is not None:\n", - " stage.native_operator_type = native_match.operator_type\n", - " stage.native_operator_properties = native_match.properties\n", - " stage.native_notes = native_match.notes\n", - " stage.operator_type = native_match.operator_type\n", - " stage.operator_id = self.ids.operator_id(native_match.operator_type)\n", - " if native_match.display_name:\n", - " stage.display_name = native_match.display_name if stage.is_source else stage.display_name\n", - " if native_match.output_columns is not None:\n", - " stage.output_columns = native_match.output_columns\n", - " if stage.is_source:\n", - " stage.source_columns = native_match.output_columns\n", - " if native_match.retain_input_columns is not None:\n", - " stage.retain_input_columns = native_match.retain_input_columns\n", - " stage.code = ''\n", - " else:\n", - " if stage.operator_type == 'PythonUDFSourceV2' and stage.family == 'table' and not stage.source_columns:\n", - " raise ValueError(\n", - " f\"Could not infer output columns for source stage {stage.function_name!r}. \"\n", - " 'Make the source schema explicit or use a source that can be sampled at translation time.'\n", - " )\n", - " stage.code = self.code_emitter.emit_class(import_nodes, fn, stage)\n", - "\n", - " workflow_json = self.workflow.assemble(stages)\n", - " metadata = {\n", - " 'entry': entry,\n", - " 'catalog_path': str(self.catalog.catalog_json_path) if self.catalog.catalog_json_path else None,\n", - " 'stages': [\n", - " {\n", - " 'stage_id': s.stage_id,\n", - " 'function': s.function_name,\n", - " 'operatorID': s.operator_id,\n", - " 'operator_type': s.operator_type,\n", - " 'native_operator_type': getattr(s, 'native_operator_type', None),\n", - " 'family': s.family,\n", - " 'base_class': None if getattr(s, 'native_operator_type', None) else selector.select(s.family, s.is_source)[1],\n", - " 'method': None if getattr(s, 'native_operator_type', None) else selector.select(s.family, s.is_source)[2],\n", - " 'is_source': s.is_source,\n", - " 'is_sink': s.is_sink,\n", - " 'recursive': s.recursive,\n", - " 'has_loop': s.has_loop,\n", - " 'assigned_to': s.assigned_to,\n", - " 'data_inputs': [\n", - " {\n", - " 'param_name': di.param_name,\n", - " 'upstream_stage_id': di.upstream_stage_id,\n", - " 'upstream_var': di.upstream_var,\n", - " 'input_port': di.input_port,\n", - " }\n", - " for di in s.data_inputs\n", - " ],\n", - " 'ui_parameters': [\n", - " {\n", - " 'name': p.name,\n", - " 'attr_type': p.attr_type,\n", - " 'default': ast.unparse(p.default_ast) if p.default_ast is not None else None,\n", - " }\n", - " for p in s.ui_params\n", - " ],\n", - " 'source_columns': s.source_columns,\n", - " 'output_columns': s.output_columns,\n", - " 'retain_input_columns': s.retain_input_columns,\n", - " 'native_notes': getattr(s, 'native_notes', []),\n", - " }\n", - " for s in stages\n", - " ],\n", - " }\n", - " return {'workflow_json': workflow_json, 'metadata': metadata}\n", - "\n", - "\n", - "def translate_to_texera_workflow_json(source: str, entry: str = 'main', catalog_json_path: str | Path | None = None) -> dict[str, Any]:\n", - " return WorkflowTranslator(catalog_json_path=catalog_json_path).translate(source, entry=entry)\n", - "\n", - "# =============================\n", - "# Native matcher extensions added in v15\n", - "# =============================\n", - "\n", - "class TimeSeriesPlotMatcher(NativeMatcher):\n", - " \"\"\"Match simple matplotlib/seaborn/plotly line plots over a column pair.\n", - "\n", - " Conservative mapping:\n", - " plt.plot(table['date'], table['close']) -> TimeSeriesPlot\n", - " We avoid LineChart here because the catalog template exposes a less explicit\n", - " nested `lines` shape, while TimeSeriesPlot has a stable flat property schema.\n", - " \"\"\"\n", - "\n", - " def match(self, ctx: NativeMatchContext) -> NativeOperatorMatch | None:\n", - " for call in ctx.facts.calls:\n", - " qn = ctx.facts.call_qname(call)\n", - " x = y = None\n", - "\n", - " if qn in ('matplotlib.pyplot.plot', 'plt.plot') and len(call.args) >= 2:\n", - " x = ctx.subscript_column(call.args[0])\n", - " y = ctx.subscript_column(call.args[1])\n", - " elif qn in ('seaborn.lineplot', 'sns.lineplot'):\n", - " for kw in call.keywords:\n", - " if kw.arg == 'x':\n", - " x = kw.value.value if isinstance(kw.value, ast.Constant) and isinstance(kw.value.value, str) else ctx.subscript_column(kw.value)\n", - " elif kw.arg == 'y':\n", - " y = kw.value.value if isinstance(kw.value, ast.Constant) and isinstance(kw.value.value, str) else ctx.subscript_column(kw.value)\n", - " elif qn in ('plotly.express.line', 'px.line'):\n", - " for kw in call.keywords:\n", - " if kw.arg == 'x' and isinstance(kw.value, ast.Constant) and isinstance(kw.value.value, str):\n", - " x = kw.value.value\n", - " elif kw.arg == 'y' and isinstance(kw.value, ast.Constant) and isinstance(kw.value.value, str):\n", - " y = kw.value.value\n", - "\n", - " if x and y:\n", - " return NativeOperatorMatch(\n", - " operator_type='TimeSeriesPlot',\n", - " properties={\n", - " 'timeColumn': x,\n", - " 'valueColumn': y,\n", - " 'line': y,\n", - " 'facetColumn': 'No Selection',\n", - " 'categoryColumn': 'No Selection',\n", - " 'slider': False,\n", - " },\n", - " display_name='Time Series Plot',\n", - " confidence=0.96,\n", - " output_columns=ctx.input_columns,\n", - " retain_input_columns=True,\n", - " notes=[f'Matched line/time-series plot on x={x!r}, y={y!r}'],\n", - " )\n", - " return None\n", - "\n", - "\n", - "class NativeOperatorKnowledgeBase:\n", - " def __init__(self):\n", - " self.matchers: list[NativeMatcher] = [\n", - " PandasReadCsvMatcher(),\n", - " TimeSeriesPlotMatcher(),\n", - " HistPlotMatcher(),\n", - " ScatterPlotMatcher(),\n", - " PieChartMatcher(),\n", - " WordCloudMatcher(),\n", - " ]\n", - "\n", - " def match(self, ctx: NativeMatchContext) -> NativeOperatorMatch | None:\n", - " best: NativeOperatorMatch | None = None\n", - " for matcher in self.matchers:\n", - " match = matcher.match(ctx)\n", - " if match is not None and (best is None or match.confidence > best.confidence):\n", - " best = match\n", - " return best\n", - "if __name__ == \"__main__\":\n", - " result = translate_to_texera_workflow_json(sample, entry=\"main\", catalog_json_path=\"catalog.json\")\n", - " paths = write_translation(result, \"demo_texera_workflow_vx2\")\n", - " print(json.dumps(paths, indent=2))" - ], - "id": "419833dbad71acdf", - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{\n", - " \"workflow_json\": \"demo_texera_workflow_vx2.workflow.json\",\n", - " \"workflow_metadata\": \"demo_texera_workflow_vx2.workflow.meta.json\"\n", - "}\n" - ] - } - ], - "execution_count": 52 - }, - { - "metadata": { - "ExecuteTime": { - "end_time": "2026-03-04T07:44:16.497856Z", - "start_time": "2026-03-04T07:44:15.182307Z" - } - }, - "cell_type": "code", - "source": "", - "id": "a8549cb2873a7b65", - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{\n", - " \"workflow_json\": \"demo_texera_workflow_vx2.workflow.json\",\n", - " \"workflow_metadata\": \"demo_texera_workflow_vx2.workflow.meta.json\"\n", - "}\n" - ] - } - ], - "execution_count": 40 - }, - { - "metadata": { - "ExecuteTime": { - "end_time": "2026-03-04T05:37:27.140055Z", - "start_time": "2026-03-04T05:37:27.135017Z" - } - }, - "cell_type": "code", - "source": [ - "sample = '''\n", - "import pandas as pd\n", - "import matplotlib.pyplot as plt\n", - "\n", - "def extract_data(url: str) -> pd.DataFrame:\n", - " df = pd.read_csv(url)\n", - " print(\"Step 1: Extract\")\n", - " print(df.head())\n", - " return df\n", - "\n", - "def select_columns(df: pd.DataFrame) -> pd.DataFrame:\n", - " selected = df[[\"date\", \"open\", \"high\", \"low\", \"close\", \"volume\"]].copy()\n", - " print(\"\\\\nStep 2: Select columns\")\n", - " print(selected.head())\n", - " return selected\n", - "\n", - "def clean_data(df: pd.DataFrame) -> pd.DataFrame:\n", - " cleaned = df.dropna().copy()\n", - " print(\"\\\\nStep 3: Clean data\")\n", - " print(cleaned.head())\n", - " return cleaned\n", - "\n", - "def transform_data(df: pd.DataFrame) -> pd.DataFrame:\n", - " transformed = df.copy()\n", - " transformed[\"date\"] = pd.to_datetime(transformed[\"date\"], errors=\"coerce\")\n", - " transformed = transformed.dropna(subset=[\"date\"]).copy()\n", - " transformed = transformed.sort_values(\"date\")\n", - " transformed[\"daily_return\"] = transformed[\"close\"].pct_change() * 100\n", - " transformed[\"ma_30\"] = transformed[\"close\"].rolling(window=30).mean()\n", - " print(\"\\\\nStep 4: Transform data\")\n", - " print(transformed.head())\n", - " return transformed\n", - "\n", - "def load_data(df: pd.DataFrame, output_file: str) -> None:\n", - " df.to_csv(output_file, index=False)\n", - " print(f\"\\\\nStep 5: Load data\")\n", - " print(f\"Saved cleaned data to: {output_file}\")\n", - "\n", - "def plot_data(df: pd.DataFrame) -> None:\n", - " plt.figure(figsize=(10, 5))\n", - " plt.plot(df[\"date\"], df[\"close\"])\n", - " plt.show()\n", - "\n", - "def main():\n", - " url = \"https://raw.githubusercontent.com/vega/vega-datasets/main/data/sp500-2000.csv\"\n", - " output_file = \"clean_sp500_2000.csv\"\n", - "\n", - " raw_df = extract_data(url)\n", - " selected_df = select_columns(raw_df)\n", - " cleaned_df = clean_data(selected_df)\n", - " transformed_df = transform_data(cleaned_df)\n", - " load_data(transformed_df, output_file)\n", - " plot_data(transformed_df)'''" - ], - "id": "85c4fdcfef2fa543", - "outputs": [], - "execution_count": 7 - }, - { - "metadata": {}, - "cell_type": "code", - "outputs": [], - "execution_count": null, - "source": "", - "id": "ab7e07559b2247ee" - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 2 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.6" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} From b36628f5c7d0140bec730a8e1f3731ec3177e428 Mon Sep 17 00:00:00 2001 From: Carlos Ernesto Alvarez Berumen Date: Sat, 7 Mar 2026 02:04:14 -0600 Subject: [PATCH 08/12] v2.1 --- amber/src/main/python/pytexera/__init__.py | 2 ++ .../operator/udf/python/DualInputPortsPythonUDFOpDescV2.scala | 1 - .../amber/operator/udf/python/PythonLambdaFunctionOpDesc.scala | 1 - .../amber/operator/udf/python/PythonTableReducerOpDesc.scala | 1 - .../texera/amber/operator/udf/python/PythonUDFOpDescV2.scala | 1 - .../operator/udf/python/PythonUdfUiParameterInjector.scala | 2 +- .../operator/udf/python/source/PythonUDFSourceOpDescV2.scala | 2 +- 7 files changed, 4 insertions(+), 6 deletions(-) diff --git a/amber/src/main/python/pytexera/__init__.py b/amber/src/main/python/pytexera/__init__.py index e40d1a43fe0..8ad44fa55e3 100644 --- a/amber/src/main/python/pytexera/__init__.py +++ b/amber/src/main/python/pytexera/__init__.py @@ -30,6 +30,7 @@ UDFSourceOperator, ) from core.models.type.large_binary import largebinary +from core.models.schema.attribute_type import * __all__ = [ "State", @@ -53,4 +54,5 @@ "Iterator", "Optional", "Union", + "AttributeType", ] diff --git a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/DualInputPortsPythonUDFOpDescV2.scala b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/DualInputPortsPythonUDFOpDescV2.scala index 975ff0d7edd..a7a02560901 100644 --- a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/DualInputPortsPythonUDFOpDescV2.scala +++ b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/DualInputPortsPythonUDFOpDescV2.scala @@ -36,7 +36,6 @@ class DualInputPortsPythonUDFOpDescV2 extends LogicalOp { "# Choose from the following templates:\n" + "# \n" + "# from pytexera import *\n" + - "# from core.models.schema.attribute_type import *\n" + "# \n" + "# class ProcessTupleOperator(UDFOperatorV2):\n" + "# \n" + diff --git a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonLambdaFunctionOpDesc.scala b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonLambdaFunctionOpDesc.scala index c18ed1ee8be..9b66dde0759 100644 --- a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonLambdaFunctionOpDesc.scala +++ b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonLambdaFunctionOpDesc.scala @@ -78,7 +78,6 @@ class PythonLambdaFunctionOpDesc extends PythonOperatorDescriptor { // build the python udf code var code: String = "from pytexera import *\n" + - "from core.models.schema.attribute_type import *\n" + "class ProcessTupleOperator(UDFOperatorV2):\n" + " @overrides\n" + " def process_tuple(self, tuple_: Tuple, port: int) -> Iterator[Optional[TupleLike]]:\n" diff --git a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonTableReducerOpDesc.scala b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonTableReducerOpDesc.scala index 2221c6a1fa2..0c2bb07ff13 100644 --- a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonTableReducerOpDesc.scala +++ b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonTableReducerOpDesc.scala @@ -57,7 +57,6 @@ class PythonTableReducerOpDesc extends PythonOperatorDescriptor { s""" |from pytexera import * - |from core.models.schema.attribute_type import *"+ |class ProcessTableOperator(UDFTableOperator): | | @overrides diff --git a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUDFOpDescV2.scala b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUDFOpDescV2.scala index dcac72cc900..efac09d63b4 100644 --- a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUDFOpDescV2.scala +++ b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUDFOpDescV2.scala @@ -38,7 +38,6 @@ class PythonUDFOpDescV2 extends LogicalOp { "# Choose from the following templates:\n" + "# \n" + "# from pytexera import *\n" + - "# from core.models.schema.attribute_type import *\n" + "# \n" + "# class ProcessTupleOperator(UDFOperatorV2):\n" + "# \n" + diff --git a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjector.scala b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjector.scala index 189882b7dc6..07ad7cd6b0d 100644 --- a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjector.scala +++ b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjector.scala @@ -25,7 +25,7 @@ import scala.util.matching.Regex object PythonUdfUiParameterInjector { - private val ReservedHookMethod = "_texera_injected_ui_parameters" + private val ReservedHookMethod = "@overrides\n_texera_injected_ui_parameters" // Match user-facing UDF classes (the ones users write) private val SupportedUserClassRegex: Regex = diff --git a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/source/PythonUDFSourceOpDescV2.scala b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/source/PythonUDFSourceOpDescV2.scala index 3a9eddd465e..23033621209 100644 --- a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/source/PythonUDFSourceOpDescV2.scala +++ b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/source/PythonUDFSourceOpDescV2.scala @@ -34,7 +34,7 @@ class PythonUDFSourceOpDescV2 extends SourceOperatorDescriptor { @JsonProperty( required = true, defaultValue = - "# from pytexera import *\n" + "# from core.models.schema.attribute_type import *\n" + + "# from pytexera import *\n" + "# class GenerateOperator(UDFSourceOperator):\n" + "# \n" + "# @overrides\n" + From dd46609b13382aa9bdfb877ac52aa569b780e1a1 Mon Sep 17 00:00:00 2001 From: Carlos Ernesto Alvarez Berumen Date: Sat, 7 Mar 2026 02:10:14 -0600 Subject: [PATCH 09/12] Update ui-udf-parameters.component.scss --- .../ui-udf-parameters.component.scss | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.scss b/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.scss index 5b7e498731e..901edaf1fc9 100644 --- a/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.scss +++ b/frontend/src/app/workspace/component/ui-udf-parameters/ui-udf-parameters.component.scss @@ -1,3 +1,22 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + .ui-udf-param-row { display: grid; grid-template-columns: 250px 250px 1fr; From 2c8167bbd0bb4d653286ba96e47506bd7674bab8 Mon Sep 17 00:00:00 2001 From: Carlos Ernesto Alvarez Berumen Date: Sat, 7 Mar 2026 03:07:47 -0600 Subject: [PATCH 10/12] v2.1 --- .../core/models/schema/attribute_type.py | 2 +- .../texera/amber/engine/common/Utils.scala | 5 ++++ .../python/PythonUdfUiParameterInjector.scala | 29 +++++++++++++++---- 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/amber/src/main/python/core/models/schema/attribute_type.py b/amber/src/main/python/core/models/schema/attribute_type.py index 0e56ec10fb6..c76c8b4d9cd 100644 --- a/amber/src/main/python/core/models/schema/attribute_type.py +++ b/amber/src/main/python/core/models/schema/attribute_type.py @@ -82,7 +82,7 @@ class AttributeType(Enum): AttributeType.INT: int, AttributeType.LONG: int, AttributeType.DOUBLE: float, - AttributeType.BOOL: lambda v: str(v).strip().lower() in ("true", "1", "yes"), + AttributeType.BOOL: lambda v: str(v).strip().lower() in ("True", "true", "1", "yes"), AttributeType.BINARY: lambda v: v if isinstance(v, bytes) else str(v).encode(), AttributeType.TIMESTAMP: lambda v: datetime.datetime.fromisoformat(v), AttributeType.LARGE_BINARY: largebinary, diff --git a/amber/src/main/scala/org/apache/texera/amber/engine/common/Utils.scala b/amber/src/main/scala/org/apache/texera/amber/engine/common/Utils.scala index dc074c1094d..7319d7e824f 100644 --- a/amber/src/main/scala/org/apache/texera/amber/engine/common/Utils.scala +++ b/amber/src/main/scala/org/apache/texera/amber/engine/common/Utils.scala @@ -36,6 +36,11 @@ object Utils extends LazyLogging { * * @return the real absolute path to amber home directory */ + + import java.nio.file.{Files, Path, Paths} + import scala.jdk.CollectionConverters._ + import scala.util.Using + lazy val amberHomePath: Path = { val currentWorkingDirectory = Paths.get(".").toRealPath() // check if the current directory is the amber home path diff --git a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjector.scala b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjector.scala index 07ad7cd6b0d..67b9ca67bb9 100644 --- a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjector.scala +++ b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/udf/python/PythonUdfUiParameterInjector.scala @@ -25,7 +25,7 @@ import scala.util.matching.Regex object PythonUdfUiParameterInjector { - private val ReservedHookMethod = "@overrides\n_texera_injected_ui_parameters" + private val ReservedHookMethod = "_texera_injected_ui_parameters" // Match user-facing UDF classes (the ones users write) private val SupportedUserClassRegex: Regex = @@ -54,7 +54,7 @@ object PythonUdfUiParameterInjector { uiParameters: List[UiUDFParameter] ): PythonTemplateBuilder = { val entries = uiParameters.map { parameter => - pyb"${parameter.attribute.getName()}: ${parameter.value}" + pyb"'${parameter.attribute.getName()}': ${parameter.value}" } entries.reduceOption((acc, entry) => acc + pyb", " + entry).getOrElse(pyb"") @@ -64,11 +64,24 @@ object PythonUdfUiParameterInjector { val injectedParametersMap = buildInjectedParametersMap(uiParameters) // unindented method; we indent it when inserting into the class body - (pyb"""def """ + pyb"$ReservedHookMethod" + pyb"""(self): - | return {""" + + (pyb"""|@overrides + |def """ + pyb"$ReservedHookMethod" + pyb"""(self) -> typing.Dict[str, typing.Any]: + | return {""" + injectedParametersMap + pyb"""} - |""").encode + |""").encode + } + + private def ensureTypingImport(encodedUserCode: String): String = { + val alreadyImported = encodedUserCode + .split("\n", -1) + .exists(_.trim == "import typing") + + if (alreadyImported) { + encodedUserCode + } else { + "import typing\n" + encodedUserCode + } } private def indentBlock(block: String, indent: String): String = { @@ -149,6 +162,7 @@ object PythonUdfUiParameterInjector { indentedHook + encodedUserCode.substring(classBlockEnd) } + private def inferClassBodyIndent(classBlock: String, classIndent: String): Option[String] = { val lines = classBlock.split("\n", -1).toList.drop(1) // skip class header line @@ -158,6 +172,7 @@ object PythonUdfUiParameterInjector { if (leading.length > classIndent.length) leading else classIndent + " " } } + def inject(code: String, uiParameters: List[UiUDFParameter]): String = { val params = Option(uiParameters).getOrElse(List.empty) validate(params) @@ -170,10 +185,12 @@ object PythonUdfUiParameterInjector { return encodedUserCode } + val encodedUserCodeWithTypingImport = ensureTypingImport(encodedUserCode) + // Build encoded hook method (contains self.decode_python_template(...)) val hookMethod = buildInjectedHookMethod(params) // Inject hook into the UDF class body; Python base class will auto-call it before open() - injectHookIntoUserClass(encodedUserCode, hookMethod) + injectHookIntoUserClass(encodedUserCodeWithTypingImport, hookMethod) } } From 06d7f5a93b027cb532a0d8c95d158b589b6fa5f3 Mon Sep 17 00:00:00 2001 From: Carlos Ernesto Alvarez Berumen Date: Sat, 7 Mar 2026 03:16:57 -0600 Subject: [PATCH 11/12] v3 --- .../scala/org/apache/texera/amber/engine/common/Utils.scala | 5 ----- .../apache/texera/web/service/ExecutionResultService.scala | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/amber/src/main/scala/org/apache/texera/amber/engine/common/Utils.scala b/amber/src/main/scala/org/apache/texera/amber/engine/common/Utils.scala index 7319d7e824f..dc074c1094d 100644 --- a/amber/src/main/scala/org/apache/texera/amber/engine/common/Utils.scala +++ b/amber/src/main/scala/org/apache/texera/amber/engine/common/Utils.scala @@ -36,11 +36,6 @@ object Utils extends LazyLogging { * * @return the real absolute path to amber home directory */ - - import java.nio.file.{Files, Path, Paths} - import scala.jdk.CollectionConverters._ - import scala.util.Using - lazy val amberHomePath: Path = { val currentWorkingDirectory = Paths.get(".").toRealPath() // check if the current directory is the amber home path diff --git a/amber/src/main/scala/org/apache/texera/web/service/ExecutionResultService.scala b/amber/src/main/scala/org/apache/texera/web/service/ExecutionResultService.scala index 3f0362f8242..b7907a45f90 100644 --- a/amber/src/main/scala/org/apache/texera/web/service/ExecutionResultService.scala +++ b/amber/src/main/scala/org/apache/texera/web/service/ExecutionResultService.scala @@ -19,10 +19,10 @@ package org.apache.texera.web.service -import org.apache.pekko.actor.Cancellable import com.fasterxml.jackson.annotation.{JsonTypeInfo, JsonTypeName} import com.fasterxml.jackson.databind.node.ObjectNode import com.typesafe.scalalogging.LazyLogging +import org.apache.pekko.actor.Cancellable import org.apache.texera.amber.config.ApplicationConfig import org.apache.texera.amber.core.storage.model.VirtualDocument import org.apache.texera.amber.core.storage.result._ From ac2b265fa9dee5733e2fca01b9a3b567dcab803a Mon Sep 17 00:00:00 2001 From: Carlos Ernesto Alvarez Berumen Date: Sat, 7 Mar 2026 03:20:51 -0600 Subject: [PATCH 12/12] v3 --- .../org/apache/texera/web/service/ExecutionResultService.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/amber/src/main/scala/org/apache/texera/web/service/ExecutionResultService.scala b/amber/src/main/scala/org/apache/texera/web/service/ExecutionResultService.scala index b7907a45f90..3f0362f8242 100644 --- a/amber/src/main/scala/org/apache/texera/web/service/ExecutionResultService.scala +++ b/amber/src/main/scala/org/apache/texera/web/service/ExecutionResultService.scala @@ -19,10 +19,10 @@ package org.apache.texera.web.service +import org.apache.pekko.actor.Cancellable import com.fasterxml.jackson.annotation.{JsonTypeInfo, JsonTypeName} import com.fasterxml.jackson.databind.node.ObjectNode import com.typesafe.scalalogging.LazyLogging -import org.apache.pekko.actor.Cancellable import org.apache.texera.amber.config.ApplicationConfig import org.apache.texera.amber.core.storage.model.VirtualDocument import org.apache.texera.amber.core.storage.result._