You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by xh...@apache.org on 2019/04/16 23:41:24 UTC

[incubator-pinot] branch master updated: [TE] Holt Winters detector (#4067)

This is an automated email from the ASF dual-hosted git repository.

xhsun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git


The following commit(s) were added to refs/heads/master by this push:
     new 6cd8657  [TE] Holt Winters detector (#4067)
6cd8657 is described below

commit 6cd8657b939eb0c0832e2353b47deac1a7d3632d
Author: Dian Tang <de...@gmail.com>
AuthorDate: Tue Apr 16 16:41:18 2019 -0700

    [TE] Holt Winters detector (#4067)
---
 .../datasource/sql/SqlThirdEyeDataSource.java      |    1 -
 .../detection/components/HoltWintersDetector.java  |  570 ++++
 .../detection/spec/HoltWintersDetectorSpec.java    |   89 +
 .../yaml/CompositePipelineConfigTranslator.java    |    3 +-
 .../components/HoltWintersDetectorTest.java        |  159 ++
 .../PercentageChangeRuleDetectorTest.java          |    1 -
 .../pinot/thirdeye/detection/algorithm/daily.csv   |  732 +++++
 .../pinot/thirdeye/detection/algorithm/hourly.csv  | 3000 ++++++++++++++++++++
 8 files changed, 4552 insertions(+), 3 deletions(-)

diff --git a/thirdeye/thirdeye-pinot/src/main/java/org/apache/pinot/thirdeye/datasource/sql/SqlThirdEyeDataSource.java b/thirdeye/thirdeye-pinot/src/main/java/org/apache/pinot/thirdeye/datasource/sql/SqlThirdEyeDataSource.java
index eb72276..1c5d114 100644
--- a/thirdeye/thirdeye-pinot/src/main/java/org/apache/pinot/thirdeye/datasource/sql/SqlThirdEyeDataSource.java
+++ b/thirdeye/thirdeye-pinot/src/main/java/org/apache/pinot/thirdeye/datasource/sql/SqlThirdEyeDataSource.java
@@ -89,7 +89,6 @@ public class SqlThirdEyeDataSource implements ThirdEyeDataSource {
     } catch (Exception e) {
       throw e;
     }
-
   }
 
   /**
diff --git a/thirdeye/thirdeye-pinot/src/main/java/org/apache/pinot/thirdeye/detection/components/HoltWintersDetector.java b/thirdeye/thirdeye-pinot/src/main/java/org/apache/pinot/thirdeye/detection/components/HoltWintersDetector.java
new file mode 100644
index 0000000..36efb29
--- /dev/null
+++ b/thirdeye/thirdeye-pinot/src/main/java/org/apache/pinot/thirdeye/detection/components/HoltWintersDetector.java
@@ -0,0 +1,570 @@
+/*
+ * 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.pinot.thirdeye.detection.components;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+import org.apache.commons.math3.analysis.MultivariateFunction;
+import org.apache.commons.math3.optim.PointValuePair;
+import org.apache.pinot.thirdeye.dataframe.BooleanSeries;
+import org.apache.pinot.thirdeye.dataframe.DataFrame;
+import org.apache.pinot.thirdeye.dataframe.DoubleSeries;
+import org.apache.pinot.thirdeye.dataframe.LongSeries;
+import org.apache.pinot.thirdeye.dataframe.Series;
+import org.apache.pinot.thirdeye.dataframe.util.MetricSlice;
+import org.apache.pinot.thirdeye.datalayer.dto.DatasetConfigDTO;
+import org.apache.pinot.thirdeye.datalayer.dto.MergedAnomalyResultDTO;
+import org.apache.pinot.thirdeye.detection.ConfigUtils;
+import org.apache.pinot.thirdeye.detection.DetectionUtils;
+import org.apache.pinot.thirdeye.detection.InputDataFetcher;
+import org.apache.pinot.thirdeye.detection.Pattern;
+import org.apache.pinot.thirdeye.detection.algorithm.AlgorithmUtils;
+import org.apache.pinot.thirdeye.detection.annotation.Components;
+import org.apache.pinot.thirdeye.detection.annotation.DetectionTag;
+import org.apache.pinot.thirdeye.detection.annotation.Param;
+import org.apache.pinot.thirdeye.detection.spec.HoltWintersDetectorSpec;
+import org.apache.pinot.thirdeye.detection.spi.components.AnomalyDetector;
+import org.apache.pinot.thirdeye.detection.spi.components.BaselineProvider;
+import org.apache.pinot.thirdeye.detection.spi.model.InputData;
+import org.apache.pinot.thirdeye.detection.spi.model.InputDataSpec;
+import org.apache.pinot.thirdeye.detection.spi.model.TimeSeries;
+import org.apache.pinot.thirdeye.rootcause.impl.MetricEntity;
+import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
+import org.joda.time.Interval;
+import org.joda.time.Period;
+import org.apache.commons.math3.optim.MaxIter;
+import org.apache.commons.math3.optim.nonlinear.scalar.ObjectiveFunction;
+import org.apache.commons.math3.optim.MaxEval;
+import org.apache.commons.math3.optim.SimpleBounds;
+import org.apache.commons.math3.optim.nonlinear.scalar.noderiv.BOBYQAOptimizer;
+import org.apache.commons.math3.optim.InitialGuess;
+import org.apache.commons.math3.optim.nonlinear.scalar.GoalType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import static org.apache.pinot.thirdeye.dataframe.util.DataFrameUtils.*;
+
+/**
+ * Holt-Winters forecasting algorithm with multiplicative method
+ * Supports seasonality and trend detection
+ * https://otexts.com/fpp2/holt-winters.html
+ */
+@Components(title = "Holt Winters triple exponential smoothing forecasting and detection",
+    type = "HOLT_WINTERS_RULE",
+    tags = {DetectionTag.RULE_DETECTION},
+    description = "Forecast with holt winters triple exponential smoothing and generate anomalies",
+    params = {
+        @Param(name = "alpha"),
+        @Param(name = "beta"),
+        @Param(name = "gamma"),
+        @Param(name = "period"),
+        @Param(name = "pattern"),
+        @Param(name = "sensitivity"),
+        @Param(name = "kernelSmoothing")})
+public class HoltWintersDetector implements BaselineProvider<HoltWintersDetectorSpec>,
+                                            AnomalyDetector<HoltWintersDetectorSpec> {
+  private static final Logger LOG = LoggerFactory.getLogger(HoltWintersDetector.class);
+  private InputDataFetcher dataFetcher;
+  private static final String COL_CURR = "current";
+  private static final String COL_BASE = "baseline";
+  private static final String COL_ANOMALY = "anomaly";
+  private static final String COL_PATTERN = "pattern";
+  private static final String COL_DIFF = "diff";
+  private static final String COL_DIFF_VIOLATION = "diff_violation";
+  private static final String COL_ERROR = "error";
+  private static final long KERNEL_PERIOD = 3600000L;
+  private static final int LOOKBACK = 60;
+
+  private int period;
+  private double alpha;
+  private double beta;
+  private double gamma;
+  private Pattern pattern;
+  private double sensitivity;
+  private boolean smoothing;
+  private Period lookbackPeriod = ConfigUtils.parsePeriod(LOOKBACK + "DAYS");
+
+  @Override
+  public void init(HoltWintersDetectorSpec spec, InputDataFetcher dataFetcher) {
+    this.period = spec.getPeriod();
+    this.alpha = spec.getAlpha();
+    this.beta = spec.getBeta();
+    this.gamma = spec.getGamma();
+    this.dataFetcher = dataFetcher;
+    this.pattern = spec.getPattern();
+    this.smoothing = spec.getSmoothing();
+    this.sensitivity = spec.getSensitivity();
+  }
+
+  @Override
+  public TimeSeries computePredictedTimeSeries(MetricSlice slice) {
+    MetricEntity metricEntity = MetricEntity.fromSlice(slice, 0);
+    Interval window = new Interval(slice.getStart(), slice.getEnd());
+    DateTime trainStart = window.getStart().minus(lookbackPeriod);
+    DatasetConfigDTO datasetConfig = this.dataFetcher.fetchData(new InputDataSpec()
+        .withMetricIdsForDataset(Collections.singleton(metricEntity.getId()))).getDatasetForMetricId()
+        .get(metricEntity.getId());
+
+    DataFrame inputDf = fetchData(metricEntity, trainStart.getMillis(), window.getEndMillis());
+    DataFrame resultDF = computePredictionInterval(inputDf, window.getStartMillis(), datasetConfig.getTimezone());
+
+    // Exclude the end because baseline calculation should not contain the end
+    if (resultDF.size() > 1) {
+      resultDF = resultDF.head(resultDF.size() - 1);
+    }
+
+    return TimeSeries.fromDataFrame(resultDF);
+  }
+
+  @Override
+  public List<MergedAnomalyResultDTO> runDetection(Interval window, String metricUrn) {
+    MetricEntity metricEntity = MetricEntity.fromURN(metricUrn);
+    DateTime trainStart = window.getStart().minus(lookbackPeriod);
+    DatasetConfigDTO datasetConfig = this.dataFetcher.fetchData(new InputDataSpec()
+        .withMetricIdsForDataset(Collections.singleton(metricEntity.getId()))).getDatasetForMetricId()
+        .get(metricEntity.getId());
+    MetricSlice sliceData = MetricSlice.from(metricEntity.getId(), trainStart.getMillis(), window.getEndMillis(),
+        metricEntity.getFilters());
+    DataFrame dfInput = fetchData(metricEntity, trainStart.getMillis(), window.getEndMillis());
+
+
+    // Kernel smoothing
+    if (smoothing && !TimeUnit.DAYS.equals(datasetConfig.bucketTimeGranularity().getUnit())) {
+      int kernelSize = (int) (KERNEL_PERIOD / datasetConfig.bucketTimeGranularity().toMillis());
+      if (kernelSize > 1) {
+        int kernelOffset = kernelSize / 2;
+        double[] values = dfInput.getDoubles(COL_VALUE).values();
+        for (int i = 0; i <= values.length - kernelSize; i++) {
+          values[i + kernelOffset] = AlgorithmUtils.robustMean(dfInput.getDoubles(COL_VALUE)
+              .slice(i, i + kernelSize), kernelSize).getDouble(kernelSize - 1);
+        }
+        dfInput.addSeries(COL_VALUE, values);
+      }
+    }
+
+    DataFrame dfCurr = new DataFrame(dfInput).renameSeries(COL_VALUE, COL_CURR);
+    DataFrame dfBase = computePredictionInterval(dfInput, window.getStartMillis(), datasetConfig.getTimezone())
+        .renameSeries(COL_VALUE, COL_BASE);
+    DataFrame df = new DataFrame(dfCurr).addSeries(dfBase);
+    df.addSeries(COL_DIFF, df.getDoubles(COL_CURR).subtract(df.get(COL_BASE)));
+    df.addSeries(COL_ANOMALY, BooleanSeries.fillValues(df.size(), false));
+
+    // Filter pattern
+    if (pattern.equals(Pattern.UP_OR_DOWN) ) {
+      df.addSeries(COL_PATTERN, BooleanSeries.fillValues(df.size(), true));
+    } else {
+      df.addSeries(COL_PATTERN, pattern.equals(Pattern.UP) ? df.getDoubles(COL_DIFF).gt(0) :
+          df.getDoubles(COL_DIFF).lt(0));
+    }
+    df.addSeries(COL_DIFF_VIOLATION, df.getDoubles(COL_DIFF).abs().gte(df.getDoubles(COL_ERROR)));
+    df.mapInPlace(BooleanSeries.ALL_TRUE, COL_ANOMALY, COL_PATTERN, COL_DIFF_VIOLATION);
+
+    // Anomalies
+    List<MergedAnomalyResultDTO> results = DetectionUtils.makeAnomalies(sliceData, df, COL_ANOMALY,
+        window.getEndMillis(),
+        DetectionUtils.getMonitoringGranularityPeriod(MetricSlice.NATIVE_GRANULARITY.toAggregationGranularityString(),
+            datasetConfig), datasetConfig);
+
+    return results;
+  }
+
+  /**
+   * Fetch data from metric
+   *
+   * @param metricEntity metric entity
+   * @param start start timestamp
+   * @param end end timestamp
+   * @return Data Frame that has data from start to end
+   */
+  private DataFrame fetchData(MetricEntity metricEntity, long start, long end) {
+
+    List<MetricSlice> slices = new ArrayList<>();
+    MetricSlice sliceData = MetricSlice.from(metricEntity.getId(), start, end,
+        metricEntity.getFilters(), MetricSlice.NATIVE_GRANULARITY);
+    slices.add(sliceData);
+    LOG.info("Getting data for" + sliceData.toString());
+    InputData data = this.dataFetcher.fetchData(new InputDataSpec().withTimeseriesSlices(slices)
+        .withMetricIdsForDataset(Collections.singletonList(metricEntity.getId())));
+
+    return data.getTimeseries().get(sliceData);
+  }
+
+  /**
+   * Returns a data frame containing the same time daily data, based on input time
+   * @param originalDF the original dataframe
+   * @param time the epoch time of the start of the day
+   * @return DataFrame containing same time of daily data for LOOKBACK number of days
+   */
+  private DataFrame getDailyDF(DataFrame originalDF, Long time, String timezone) {
+    LongSeries longSeries = (LongSeries) originalDF.get(COL_TIME);
+    long start = longSeries.getLong(0);
+    DateTime dt = new DateTime(time).withZone(DateTimeZone.forID(timezone));
+    DataFrame df = DataFrame.builder(COL_TIME, COL_VALUE).build();
+
+    for (int i = 0; i < LOOKBACK; i++) {
+      DateTime subDt = dt.minusDays(1);
+      long t = subDt.getMillis();
+      if (t < start) {
+        break;
+      }
+      int index = longSeries.find(t);
+      if (index != -1) {
+        df = df.append(originalDF.slice(index, index + 1));
+      } else {
+        int backtrackCounter = 0;
+        // If the 1 day look back data doesn't exist, use the data one period before till backtrackCounter greater than 4
+        while (index == -1 && backtrackCounter <= 4) {
+          subDt = subDt.minusDays(period);
+          long timestamp = subDt.getMillis();
+          index = longSeries.find(timestamp);
+          backtrackCounter++;
+        }
+
+        if (index != -1) {
+          df = df.append(originalDF.slice(index, index + 1));
+        } else {
+          // If not found value up to 4 weeks, insert the last value
+          double lastVal = (originalDF.get(COL_VALUE)).getDouble(longSeries.find(dt.getMillis()));
+          DateTime nextDt = dt.minusDays(1);
+          DataFrame appendDf = DataFrame.builder(COL_TIME, COL_VALUE).append(nextDt, lastVal).build();
+          df = df.append(appendDf);
+        }
+      }
+      dt = dt.minusDays(1);
+    }
+    df = df.reverse();
+    return df;
+  }
+
+  private static double calculateInitialLevel(double[] y) {
+    return y[0];
+  }
+
+  /**
+   * See: http://www.itl.nist.gov/div898/handbook/pmc/section4/pmc435.htm
+   *
+   * @return - Initial trend - Bt[1]
+   */
+  private static double calculateInitialTrend(double[] y, int period) {
+    double sum = 0;
+
+    for (int i = 0; i < period; i++) {
+      sum += y[period + i] - y[i];
+    }
+
+    return sum / (period * period);
+  }
+
+  /**
+   * See: http://www.itl.nist.gov/div898/handbook/pmc/section4/pmc435.htm
+   *
+   * @return - Seasonal Indices.
+   */
+  private static double[] calculateSeasonalIndices(double[] y, int period,
+      int seasons) {
+    double[] seasonalMean = new double[seasons];
+    double[] seasonalIndices = new double[period];
+
+    double[] averagedObservations = new double[y.length];
+
+    for (int i = 0; i < seasons; i++) {
+      for (int j = 0; j < period; j++) {
+        seasonalMean[i] += y[(i * period) + j];
+      }
+      seasonalMean[i] /= period;
+    }
+
+    for (int i = 0; i < seasons; i++) {
+      for (int j = 0; j < period; j++) {
+        averagedObservations[(i * period) + j] = y[(i * period) + j]
+            / seasonalMean[i];
+      }
+    }
+
+    for (int i = 0; i < period; i++) {
+      for (int j = 0; j < seasons; j++) {
+        seasonalIndices[i] += averagedObservations[(j * period) + i];
+      }
+      seasonalIndices[i] /= seasons;
+    }
+
+    return seasonalIndices;
+  }
+
+  /**
+   * Holt Winters forecasting method
+   *
+   * @param y Timeseries to be forecasted
+   * @param alpha level smoothing factor
+   * @param beta trend smoothing factor
+   * @param gamma seasonality smoothing factor
+   * @return ForecastResults containing predicted value, SSE(sum of squared error) and error bound
+   */
+  private ForecastResults forecast(double[] y, double alpha, double beta, double gamma) {
+    double[] seasonal = new double[y.length+1];
+    double[] forecast = new double[y.length+1];
+
+    double a0 = calculateInitialLevel(y);
+    double b0 = calculateInitialTrend(y, period);
+
+    int seasons = y.length / period;
+    double[] initialSeasonalIndices = calculateSeasonalIndices(y, period,
+        seasons);
+
+    for (int i = 0; i < period; i++) {
+      seasonal[i] = initialSeasonalIndices[i];
+    }
+
+    // s is level and t is trend
+    double s = a0;
+    double t = b0;
+    double predictedValue = 0;
+
+    for (int i = 0; i < y.length; i++) {
+      double sNew;
+      double tNew;
+      forecast[i] = (s + t) * seasonal[i];
+      sNew = alpha * (y[i] / seasonal[i]) + (1 - alpha) * (s + t);
+      tNew = beta * (sNew - s) + (1 - beta) * t;
+      if (i + period <= y.length) {
+        seasonal[i + period] = gamma * (y[i] / (sNew * seasonal[i])) + (1 - gamma) * seasonal[i];
+      }
+      s = sNew;
+      t = tNew;
+      if (i == y.length - 1) {
+        predictedValue = (s + t) * seasonal[i+1];
+      }
+    }
+
+    List<Double> diff = new ArrayList<>();
+    double sse = 0;
+    for (int i = 0; i < y.length; i++) {
+      if (forecast[i] != 0) {
+        sse += Math.pow(y[i] - forecast[i], 2);
+        diff.add(Math.abs(forecast[i] - y[i]));
+      }
+    }
+
+    double error = calculateErrorBound(diff, sensitivityToZscore(sensitivity));
+    return new ForecastResults(predictedValue, sse, error);
+  }
+
+  /**
+   * Compute the baseline and error bound for given data
+   *
+   * @param inputDF training dataframe
+   * @param windowStartTime prediction start time
+   * @return DataFrame with timestamp, baseline, error bound
+   */
+  private DataFrame computePredictionInterval(DataFrame inputDF, long windowStartTime, String timezone) {
+
+    DataFrame resultDF = new DataFrame();
+    DataFrame forecastDF = inputDF.filter(new Series.LongConditional() {
+      @Override
+      public boolean apply(long... values) {
+        return values[0] >= windowStartTime;
+      }
+    }, COL_TIME).dropNull();
+
+    int size = forecastDF.size();
+    double[] resultArray = new double[size];
+    long[] resultTimeArray = new long[size];
+    double[] errorArray = new double[size];
+
+    double lastAlpha = alpha;
+    double lastBeta = beta;
+    double lastGamma = gamma;
+
+    for (int k = 0; k < size; k++) {
+      DataFrame dailyDF = getDailyDF(inputDF, forecastDF.getLong(COL_TIME, k), timezone);
+
+      // We need at least 2 periods of data
+      if (dailyDF.size() < 2 * period) {
+        continue;
+      }
+
+      resultTimeArray[k] = forecastDF.getLong(COL_TIME, k);
+
+      double[] y = dailyDF.getDoubles(COL_VALUE).values();
+      HoltWintersParams params;
+      if (alpha < 0 && beta < 0 && gamma < 0) {
+        params = fitModelWithBOBYQA(y, lastAlpha, lastBeta, lastGamma);
+      } else {
+        params = new HoltWintersParams(alpha, beta, gamma);
+      }
+
+      lastAlpha = params.getAlpha();
+      lastBeta = params.getBeta();
+      lastGamma = params.getGamma();
+
+      ForecastResults result = forecast(y, params.getAlpha(), params.getBeta(), params.getGamma());
+
+      resultArray[k] = result.getPredictedValue();
+      errorArray[k] = result.getErrorBound();
+    }
+
+    resultDF.addSeries(COL_TIME, LongSeries.buildFrom(resultTimeArray));
+    resultDF.setIndex(COL_TIME);
+    resultDF.addSeries(COL_VALUE, DoubleSeries.buildFrom(resultArray));
+    resultDF.addSeries(COL_ERROR, DoubleSeries.buildFrom(errorArray));
+    return resultDF;
+  }
+
+  /**
+   * Returns the error bound of given list based on mean, std and given zscore
+   *
+   * @param givenNumbers double list
+   * @param zscore zscore used to multiply by std
+   * @return the error bound
+   */
+  private static double calculateErrorBound(List<Double> givenNumbers, double zscore) {
+    // calculate the mean value (= average)
+    double sum = 0.0;
+    for (double num : givenNumbers) {
+      sum += num;
+    }
+    double mean = sum / givenNumbers.size();
+
+    // calculate standard deviation
+    double squaredDifferenceSum = 0.0;
+    for (double num : givenNumbers) {
+      squaredDifferenceSum += (num - mean) * (num - mean);
+    }
+    double variance = squaredDifferenceSum / givenNumbers.size();
+    double standardDeviation = Math.sqrt(variance);
+
+    return zscore * standardDeviation;
+  }
+
+  /**
+   * Fit alpha, beta, gamma by optimizing SSE (Sum of squared errors) using BOBYQA
+   * It is a derivative free bound constrained optimization algorithm
+   * https://en.wikipedia.org/wiki/BOBYQA
+   *
+   * @param y the data
+   * @param lastAlpha last alpha value
+   * @param lastBeta last beta value
+   * @param lastGamma last gamma value
+   * @return double array containing fitted alpha, beta and gamma
+   */
+  private HoltWintersParams fitModelWithBOBYQA(double[] y, double lastAlpha, double lastBeta, double lastGamma) {
+    BOBYQAOptimizer optimizer = new BOBYQAOptimizer(7);
+    if (lastAlpha < 0) {
+      lastAlpha = 0.1;
+    }
+    if (lastBeta < 0) {
+      lastBeta = 0.01;
+    }
+    if (lastGamma < 0) {
+      lastGamma = 0.001;
+    }
+    InitialGuess initGuess = new InitialGuess(new double[]{lastAlpha, lastBeta, lastGamma});;
+    MaxIter maxIter = new MaxIter(30000);
+    MaxEval maxEval  = new MaxEval(30000);
+    GoalType goal = GoalType.MINIMIZE;
+    ObjectiveFunction objectiveFunction = new ObjectiveFunction(new MultivariateFunction() {
+      public double value(double[] params) {
+        return forecast(y, params[0], params[1], params[2]).getSSE();
+      }
+    });
+    SimpleBounds bounds = new SimpleBounds(new double[]{0.001, 0.001, 0.001}, new double[]{0.999, 0.999, 0.999});
+
+    HoltWintersParams params;
+    try {
+      PointValuePair optimal = optimizer.optimize(objectiveFunction, goal, bounds, initGuess, maxIter, maxEval);
+      params = new HoltWintersParams(optimal.getPoint()[0], optimal.getPoint()[1], optimal.getPoint()[2]);
+    } catch (Exception e) {
+      LOG.error(e.toString());
+      params = new HoltWintersParams(lastAlpha, lastBeta, lastGamma);
+    }
+    return params;
+  }
+
+  /**
+   * Mapping of sensitivity to zscore on range of 1 - 4
+   * @param sensitivity double from 0 to 10
+   * @return zscore
+   */
+  private static double sensitivityToZscore(double sensitivity) {
+    // If out of bound, use boundary sensitivity
+    if (sensitivity < 0) {
+      sensitivity = 0;
+    } else if (sensitivity > 10) {
+      sensitivity = 10;
+    }
+    double z = 1 + 0.3 * (10 - sensitivity);
+    return z;
+  }
+
+  /**
+   * Container class to store holt winters parameters
+   */
+  final static class HoltWintersParams {
+    private final double alpha;
+    private final double beta;
+    private final double gamma;
+
+    HoltWintersParams(double alpha, double beta, double gamma) {
+      this.alpha = alpha;
+      this.beta = beta;
+      this.gamma = gamma;
+    }
+
+    double getAlpha() {
+      return alpha;
+    }
+
+    double getBeta() {
+      return beta;
+    }
+
+    double getGamma() {
+      return gamma;
+    }
+  }
+
+  /**
+   * Container class to store forecasting results
+   */
+  final static class ForecastResults {
+    private final double predictedValue;
+    private final double SSE;
+    private final double errorBound;
+
+    ForecastResults(double predictedValue, double SSE, double errorBound) {
+      this.predictedValue = predictedValue;
+      this.SSE = SSE;
+      this.errorBound = errorBound;
+    }
+
+    double getPredictedValue() {
+      return predictedValue;
+    }
+
+    double getSSE() {
+      return SSE;
+    }
+
+    double getErrorBound() {
+      return errorBound;
+    }
+  }
+}
\ No newline at end of file
diff --git a/thirdeye/thirdeye-pinot/src/main/java/org/apache/pinot/thirdeye/detection/spec/HoltWintersDetectorSpec.java b/thirdeye/thirdeye-pinot/src/main/java/org/apache/pinot/thirdeye/detection/spec/HoltWintersDetectorSpec.java
new file mode 100644
index 0000000..e38067e
--- /dev/null
+++ b/thirdeye/thirdeye-pinot/src/main/java/org/apache/pinot/thirdeye/detection/spec/HoltWintersDetectorSpec.java
@@ -0,0 +1,89 @@
+/*
+ * 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.pinot.thirdeye.detection.spec;
+
+import org.apache.pinot.thirdeye.detection.Pattern;
+
+
+public class HoltWintersDetectorSpec  extends AbstractSpec  {
+
+  private double alpha = -1;
+  private double beta = -1;
+  private double gamma = -1;
+  private int period = 7;
+  private double sensitivity = 5;
+  private Pattern pattern = Pattern.UP_OR_DOWN;
+  private boolean smoothing = true;
+
+  public boolean getSmoothing() {
+    return smoothing;
+  }
+
+  public Pattern getPattern() {
+    return pattern;
+  }
+
+  public double getSensitivity() {
+    return sensitivity;
+  }
+
+  public double getAlpha() {
+    return alpha;
+  }
+
+  public double getBeta() {
+    return beta;
+  }
+
+  public double getGamma() {
+    return gamma;
+  }
+
+  public int getPeriod() {
+    return period;
+  }
+
+  public void setAlpha(double alpha) {
+    this.alpha = alpha;
+  }
+
+  public void setBeta(double beta) {
+    this.beta = beta;
+  }
+
+  public void setGamma(double gamma) {
+    this.gamma = gamma;
+  }
+
+  public void setPeriod(int period) {
+    this.period = period;
+  }
+
+  public void setPattern(Pattern pattern) {
+    this.pattern = pattern;
+  }
+
+  public void setSensitivity(double sensitivity) {
+    this.sensitivity = sensitivity;
+  }
+
+  public void setSmoothing(boolean smoothing) {
+    this.smoothing = smoothing;
+  }
+}
diff --git a/thirdeye/thirdeye-pinot/src/main/java/org/apache/pinot/thirdeye/detection/yaml/CompositePipelineConfigTranslator.java b/thirdeye/thirdeye-pinot/src/main/java/org/apache/pinot/thirdeye/detection/yaml/CompositePipelineConfigTranslator.java
index fd637d2..4d0e42e 100644
--- a/thirdeye/thirdeye-pinot/src/main/java/org/apache/pinot/thirdeye/detection/yaml/CompositePipelineConfigTranslator.java
+++ b/thirdeye/thirdeye-pinot/src/main/java/org/apache/pinot/thirdeye/detection/yaml/CompositePipelineConfigTranslator.java
@@ -179,7 +179,8 @@ public class CompositePipelineConfigTranslator extends YamlDetectionConfigTransl
   private static final Set<String> TUNING_OFF_COMPONENTS =
       ImmutableSet.of("MIGRATED_ALGORITHM_FILTER", "MIGRATED_ALGORITHM", "MIGRATED_ALGORITHM_BASELINE");
   private static final Map<String, String> DETECTOR_TO_BASELINE =
-      ImmutableMap.of("ALGORITHM", "ALGORITHM_BASELINE", "MIGRATED_ALGORITHM", "MIGRATED_ALGORITHM_BASELINE");
+      ImmutableMap.of("ALGORITHM", "ALGORITHM_BASELINE", "MIGRATED_ALGORITHM", "MIGRATED_ALGORITHM_BASELINE",
+          "HOLT_WINTERS_RULE", "HOLT_WINTERS_RULE");
   private static final Set<String> MOVING_WINDOW_DETECTOR_TYPES = ImmutableSet.of("ALGORITHM", "MIGRATED_ALGORITHM");
 
   private final Map<String, Object> components = new HashMap<>();
diff --git a/thirdeye/thirdeye-pinot/src/test/java/org/apache/pinot/thirdeye/detection/components/HoltWintersDetectorTest.java b/thirdeye/thirdeye-pinot/src/test/java/org/apache/pinot/thirdeye/detection/components/HoltWintersDetectorTest.java
new file mode 100644
index 0000000..49fca9b
--- /dev/null
+++ b/thirdeye/thirdeye-pinot/src/test/java/org/apache/pinot/thirdeye/detection/components/HoltWintersDetectorTest.java
@@ -0,0 +1,159 @@
+/*
+ * 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.pinot.thirdeye.detection.components;
+
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+import org.apache.pinot.thirdeye.dataframe.DataFrame;
+import org.apache.pinot.thirdeye.dataframe.util.MetricSlice;
+import org.apache.pinot.thirdeye.datalayer.dto.DatasetConfigDTO;
+import org.apache.pinot.thirdeye.datalayer.dto.MergedAnomalyResultDTO;
+import org.apache.pinot.thirdeye.datalayer.dto.MetricConfigDTO;
+import org.apache.pinot.thirdeye.detection.DataProvider;
+import org.apache.pinot.thirdeye.detection.DefaultInputDataFetcher;
+import org.apache.pinot.thirdeye.detection.MockDataProvider;
+import org.apache.pinot.thirdeye.detection.algorithm.AlgorithmUtils;
+import org.apache.pinot.thirdeye.detection.spec.HoltWintersDetectorSpec;
+import org.apache.pinot.thirdeye.detection.spi.model.TimeSeries;
+import org.apache.pinot.thirdeye.rootcause.impl.MetricEntity;
+import org.joda.time.Interval;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.testng.Assert;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Test;
+
+import static org.apache.pinot.thirdeye.dataframe.util.DataFrameUtils.*;
+import static org.eclipse.jetty.http.HttpParser.*;
+
+/**
+ * Test class for HoltWinters detector
+ */
+public class HoltWintersDetectorTest {
+  private DataProvider provider;
+
+  @BeforeTest
+  public void setUp() throws Exception {
+    DataFrame dailyData;
+    DataFrame hourlyData;
+    try (Reader dataReader = new InputStreamReader(AlgorithmUtils.class.getResourceAsStream("daily.csv"))) {
+      dailyData = DataFrame.fromCsv(dataReader);
+      dailyData.setIndex(COL_TIME);
+    }
+
+    try (Reader dataReader = new InputStreamReader(AlgorithmUtils.class.getResourceAsStream("hourly.csv"))) {
+      hourlyData = DataFrame.fromCsv(dataReader);
+      hourlyData.setIndex(COL_TIME);
+    }
+
+    MetricConfigDTO dailyMetricConfig = new MetricConfigDTO();
+    dailyMetricConfig.setId(1L);
+    dailyMetricConfig.setName("thirdeye-test-daily");
+    dailyMetricConfig.setDataset("thirdeye-test-dataset-daily");
+
+    DatasetConfigDTO dailyDatasetConfig = new DatasetConfigDTO();
+    dailyDatasetConfig.setTimeUnit(TimeUnit.DAYS);
+    dailyDatasetConfig.setDataset("thirdeye-test-dataset-daily");
+    dailyDatasetConfig.setTimeDuration(1);
+
+    MetricConfigDTO hourlyMetricConfig = new MetricConfigDTO();
+    hourlyMetricConfig.setId(123L);
+    hourlyMetricConfig.setName("thirdeye-test-hourly");
+    hourlyMetricConfig.setDataset("thirdeye-test-dataset-hourly");
+
+    DatasetConfigDTO hourlyDatasetConfig = new DatasetConfigDTO();
+    hourlyDatasetConfig.setTimeUnit(TimeUnit.HOURS);
+    hourlyDatasetConfig.setDataset("thirdeye-test-dataset-hourly");
+    hourlyDatasetConfig.setTimeDuration(1);
+
+    Map<MetricSlice, DataFrame> timeseries = new HashMap<>();
+    timeseries.put(MetricSlice.from(1L, 1301443200000L, 1309219200000L), dailyData);
+    timeseries.put(MetricSlice.from(123L, 1317585600000L, 1323378000000L), hourlyData);
+    // For Travis CI
+    timeseries.put(MetricSlice.from(123L, 1317589200000L, 1323378000000L), hourlyData);
+
+    this.provider = new MockDataProvider()
+        .setTimeseries(timeseries)
+        .setMetrics(Arrays.asList(hourlyMetricConfig, dailyMetricConfig))
+        .setDatasets(Arrays.asList(hourlyDatasetConfig, dailyDatasetConfig));
+  }
+
+  @Test
+  public void testComputePredictedTimeSeriesDaily() {
+    HoltWintersDetector detector = new HoltWintersDetector();
+    HoltWintersDetectorSpec spec = new HoltWintersDetectorSpec();
+    detector.init(spec, new DefaultInputDataFetcher(this.provider, -1));
+    Interval window = new Interval(1306627200000L, 1309219200000L);
+    String metricUrn = "thirdeye:metric:1";
+    MetricEntity me = MetricEntity.fromURN(metricUrn);
+    MetricSlice slice = MetricSlice.from(me.getId(), window.getStartMillis(), window.getEndMillis(), me.getFilters());
+    TimeSeries timeSeries = detector.computePredictedTimeSeries(slice);
+
+    Assert.assertEquals(timeSeries.getPredictedBaseline().size(), 29);
+  }
+
+  @Test
+  public void testRunDetectionDaily() {
+    HoltWintersDetector detector = new HoltWintersDetector();
+    HoltWintersDetectorSpec spec = new HoltWintersDetectorSpec();
+    spec.setSensitivity(8);
+    detector.init(spec, new DefaultInputDataFetcher(this.provider, -1));
+    Interval window = new Interval(1306627200000L, 1309219200000L);
+    String metricUrn = "thirdeye:metric:1";
+    List<MergedAnomalyResultDTO> anomalies = detector.runDetection(window, metricUrn);
+
+    Assert.assertEquals(anomalies.size(), 6);
+  }
+
+  @Test
+  public void testComputePredictedTimeSeriesHourly() {
+    HoltWintersDetector detector = new HoltWintersDetector();
+    HoltWintersDetectorSpec spec = new HoltWintersDetectorSpec();
+    detector.init(spec, new DefaultInputDataFetcher(this.provider, -1));
+
+    Interval window = new Interval(1322773200000L, 1323378000000L);
+
+    String metricUrn = "thirdeye:metric:123";
+    MetricEntity me = MetricEntity.fromURN(metricUrn);
+    MetricSlice slice = MetricSlice.from(me.getId(), window.getStartMillis(), window.getEndMillis(), me.getFilters());
+    TimeSeries timeSeries = detector.computePredictedTimeSeries(slice);
+
+    Assert.assertEquals(timeSeries.getPredictedBaseline().size(), 167);
+  }
+
+  @Test
+  public void testRunDetectionHourly() {
+    HoltWintersDetector detector = new HoltWintersDetector();
+    HoltWintersDetectorSpec spec = new HoltWintersDetectorSpec();
+    spec.setSensitivity(8);
+    detector.init(spec, new DefaultInputDataFetcher(this.provider, -1));
+    Interval window = new Interval(1322773200000L, 1323378000000L);
+    String metricUrn = "thirdeye:metric:123";
+    List<MergedAnomalyResultDTO> anomalies = detector.runDetection(window, metricUrn);
+
+    Assert.assertEquals(anomalies.size(), 3);
+  }
+}
\ No newline at end of file
diff --git a/thirdeye/thirdeye-pinot/src/test/java/org/apache/pinot/thirdeye/detection/components/PercentageChangeRuleDetectorTest.java b/thirdeye/thirdeye-pinot/src/test/java/org/apache/pinot/thirdeye/detection/components/PercentageChangeRuleDetectorTest.java
index 9ca76a6..9bbe29b 100644
--- a/thirdeye/thirdeye-pinot/src/test/java/org/apache/pinot/thirdeye/detection/components/PercentageChangeRuleDetectorTest.java
+++ b/thirdeye/thirdeye-pinot/src/test/java/org/apache/pinot/thirdeye/detection/components/PercentageChangeRuleDetectorTest.java
@@ -185,6 +185,5 @@ public class PercentageChangeRuleDetectorTest {
     Assert.assertEquals(anomalies.size(), 1);
     Assert.assertEquals(anomalies.get(0).getStartTime(), 1551484800000L);
     Assert.assertEquals(anomalies.get(0).getEndTime(), 1551488400000L);
-
   }
 }
diff --git a/thirdeye/thirdeye-pinot/src/test/resources/org/apache/pinot/thirdeye/detection/algorithm/daily.csv b/thirdeye/thirdeye-pinot/src/test/resources/org/apache/pinot/thirdeye/detection/algorithm/daily.csv
new file mode 100644
index 0000000..fc0ace4
--- /dev/null
+++ b/thirdeye/thirdeye-pinot/src/test/resources/org/apache/pinot/thirdeye/detection/algorithm/daily.csv
@@ -0,0 +1,732 @@
+timestamp,value
+1293840000000,985
+1293926400000,801
+1294012800000,1349
+1294099200000,1562
+1294185600000,1600
+1294272000000,1606
+1294358400000,1510
+1294444800000,959
+1294531200000,822
+1294617600000,1321
+1294704000000,1263
+1294790400000,1162
+1294876800000,1406
+1294963200000,1421
+1295049600000,1248
+1295136000000,1204
+1295222400000,1000
+1295308800000,683
+1295395200000,1650
+1295481600000,1927
+1295568000000,1543
+1295654400000,981
+1295740800000,986
+1295827200000,1416
+1295913600000,1985
+1296000000000,506
+1296086400000,431
+1296172800000,1167
+1296259200000,1098
+1296345600000,1096
+1296432000000,1501
+1296518400000,1360
+1296604800000,1526
+1296691200000,1550
+1296777600000,1708
+1296864000000,1005
+1296950400000,1623
+1297036800000,1712
+1297123200000,1530
+1297209600000,1605
+1297296000000,1538
+1297382400000,1746
+1297468800000,1472
+1297555200000,1589
+1297641600000,1913
+1297728000000,1815
+1297814400000,2115
+1297900800000,2475
+1297987200000,2927
+1298073600000,1635
+1298160000000,1812
+1298246400000,1107
+1298332800000,1450
+1298419200000,1917
+1298505600000,1807
+1298592000000,1461
+1298678400000,1969
+1298764800000,2402
+1298851200000,1446
+1298937600000,1851
+1299024000000,2134
+1299110400000,1685
+1299196800000,1944
+1299283200000,2077
+1299369600000,605
+1299456000000,1872
+1299542400000,2133
+1299628800000,1891
+1299715200000,623
+1299801600000,1977
+1299888000000,2132
+1299974400000,2417
+1300060800000,2046
+1300147200000,2056
+1300233600000,2192
+1300320000000,2744
+1300406400000,3239
+1300492800000,3117
+1300579200000,2471
+1300665600000,2077
+1300752000000,2703
+1300838400000,2121
+1300924800000,1865
+1301011200000,2210
+1301097600000,2496
+1301184000000,1693
+1301270400000,2028
+1301356800000,2425
+1301443200000,1536
+1301529600000,1685
+1301616000000,2227
+1301702400000,2252
+1301788800000,3249
+1301875200000,3115
+1301961600000,1795
+1302048000000,2808
+1302134400000,3141
+1302220800000,1471
+1302307200000,2455
+1302393600000,2895
+1302480000000,3348
+1302566400000,2034
+1302652800000,2162
+1302739200000,3267
+1302825600000,3126
+1302912000000,795
+1302998400000,3744
+1303084800000,3429
+1303171200000,3204
+1303257600000,3944
+1303344000000,4189
+1303430400000,1683
+1303516800000,4036
+1303603200000,4191
+1303689600000,4073
+1303776000000,4400
+1303862400000,3872
+1303948800000,4058
+1304035200000,4595
+1304121600000,5312
+1304208000000,3351
+1304294400000,4401
+1304380800000,4451
+1304467200000,2633
+1304553600000,4433
+1304640000000,4608
+1304726400000,4714
+1304812800000,4333
+1304899200000,4362
+1304985600000,4803
+1305072000000,4182
+1305158400000,4864
+1305244800000,4105
+1305331200000,3409
+1305417600000,4553
+1305504000000,3958
+1305590400000,4123
+1305676800000,3855
+1305763200000,4575
+1305849600000,4917
+1305936000000,5805
+1306022400000,4660
+1306108800000,4274
+1306195200000,4492
+1306281600000,4978
+1306368000000,4677
+1306454400000,4679
+1306540800000,4758
+1306627200000,4788
+1306713600000,4098
+1306800000000,3982
+1306886400000,3974
+1306972800000,4968
+1307059200000,5312
+1307145600000,5342
+1307232000000,4906
+1307318400000,4548
+1307404800000,4833
+1307491200000,4401
+1307577600000,3915
+1307664000000,4586
+1307750400000,4966
+1307836800000,4460
+1307923200000,5020
+1308009600000,4891
+1308096000000,5180
+1308182400000,3767
+1308268800000,4844
+1308355200000,5119
+1308441600000,4744
+1308528000000,4010
+1308614400000,4835
+1308700800000,4507
+1308787200000,4790
+1308873600000,4991
+1308960000000,5202
+1309046400000,5305
+1309132800000,4708
+1309219200000,4648
+1309305600000,5225
+1309392000000,5515
+1309478400000,5362
+1309564800000,5119
+1309651200000,4649
+1309737600000,6043
+1309824000000,4665
+1309910400000,4629
+1309996800000,4592
+1310083200000,4040
+1310169600000,5336
+1310256000000,4881
+1310342400000,4086
+1310428800000,4258
+1310515200000,4342
+1310601600000,5084
+1310688000000,5538
+1310774400000,5923
+1310860800000,5302
+1310947200000,4458
+1311033600000,4541
+1311120000000,4332
+1311206400000,3784
+1311292800000,3387
+1311379200000,3285
+1311465600000,3606
+1311552000000,3840
+1311638400000,4590
+1311724800000,4656
+1311811200000,4390
+1311897600000,3846
+1311984000000,4475
+1312070400000,4302
+1312156800000,4266
+1312243200000,4845
+1312329600000,3574
+1312416000000,4576
+1312502400000,4866
+1312588800000,4294
+1312675200000,3785
+1312761600000,4326
+1312848000000,4602
+1312934400000,4780
+1313020800000,4792
+1313107200000,4905
+1313193600000,4150
+1313280000000,3820
+1313366400000,4338
+1313452800000,4725
+1313539200000,4694
+1313625600000,3805
+1313712000000,4153
+1313798400000,5191
+1313884800000,3873
+1313971200000,4758
+1314057600000,5895
+1314144000000,5130
+1314230400000,3542
+1314316800000,4661
+1314403200000,1115
+1314489600000,4334
+1314576000000,4634
+1314662400000,5204
+1314748800000,5058
+1314835200000,5115
+1314921600000,4727
+1315008000000,4484
+1315094400000,4940
+1315180800000,3351
+1315267200000,2710
+1315353600000,1996
+1315440000000,1842
+1315526400000,3544
+1315612800000,5345
+1315699200000,5046
+1315785600000,4713
+1315872000000,4763
+1315958400000,4785
+1316044800000,3659
+1316131200000,4760
+1316217600000,4511
+1316304000000,4274
+1316390400000,4539
+1316476800000,3641
+1316563200000,4352
+1316649600000,4795
+1316736000000,2395
+1316822400000,5423
+1316908800000,5010
+1316995200000,4630
+1317081600000,4120
+1317168000000,3907
+1317254400000,4839
+1317340800000,5202
+1317427200000,2429
+1317513600000,2918
+1317600000000,3570
+1317686400000,4456
+1317772800000,4826
+1317859200000,4765
+1317945600000,4985
+1318032000000,5409
+1318118400000,5511
+1318204800000,5117
+1318291200000,4563
+1318377600000,2416
+1318464000000,2913
+1318550400000,3644
+1318636800000,5217
+1318723200000,5041
+1318809600000,4570
+1318896000000,4748
+1318982400000,2424
+1319068800000,4195
+1319155200000,4304
+1319241600000,4308
+1319328000000,4381
+1319414400000,4187
+1319500800000,4687
+1319587200000,3894
+1319673600000,2659
+1319760000000,3747
+1319846400000,627
+1319932800000,3331
+1320019200000,3669
+1320105600000,4068
+1320192000000,4186
+1320278400000,3974
+1320364800000,4046
+1320451200000,3926
+1320537600000,3649
+1320624000000,4035
+1320710400000,4205
+1320796800000,4109
+1320883200000,2933
+1320969600000,3368
+1321056000000,4067
+1321142400000,3717
+1321228800000,4486
+1321315200000,4195
+1321401600000,1817
+1321488000000,3053
+1321574400000,3392
+1321660800000,3663
+1321747200000,3520
+1321833600000,2765
+1321920000000,1607
+1322006400000,2566
+1322092800000,1495
+1322179200000,2792
+1322265600000,3068
+1322352000000,3071
+1322438400000,3867
+1322524800000,2914
+1322611200000,3613
+1322697600000,3727
+1322784000000,3940
+1322870400000,3614
+1322956800000,3485
+1323043200000,3811
+1323129600000,2594
+1323216000000,705
+1323302400000,3322
+1323388800000,3620
+1323475200000,3190
+1323561600000,2743
+1323648000000,3310
+1323734400000,3523
+1323820800000,3740
+1323907200000,3709
+1323993600000,3577
+1324080000000,2739
+1324166400000,2431
+1324252800000,3403
+1324339200000,3750
+1324425600000,2660
+1324512000000,3068
+1324598400000,2209
+1324684800000,1011
+1324771200000,754
+1324857600000,1317
+1324944000000,1162
+1325030400000,2302
+1325116800000,2423
+1325203200000,2999
+1325289600000,2485
+1325376000000,2294
+1325462400000,1951
+1325548800000,2236
+1325635200000,2368
+1325721600000,3272
+1325808000000,4098
+1325894400000,4521
+1325980800000,3425
+1326067200000,2376
+1326153600000,3598
+1326240000000,2177
+1326326400000,4097
+1326412800000,3214
+1326499200000,2493
+1326585600000,2311
+1326672000000,2298
+1326758400000,2935
+1326844800000,3376
+1326931200000,3292
+1327017600000,3163
+1327104000000,1301
+1327190400000,1977
+1327276800000,2432
+1327363200000,4339
+1327449600000,4270
+1327536000000,4075
+1327622400000,3456
+1327708800000,4023
+1327795200000,3243
+1327881600000,3624
+1327968000000,4509
+1328054400000,4579
+1328140800000,3761
+1328227200000,4151
+1328313600000,2832
+1328400000000,2947
+1328486400000,3784
+1328572800000,4375
+1328659200000,2802
+1328745600000,3830
+1328832000000,3831
+1328918400000,2169
+1329004800000,1529
+1329091200000,3422
+1329177600000,3922
+1329264000000,4169
+1329350400000,3005
+1329436800000,4154
+1329523200000,4318
+1329609600000,2689
+1329696000000,3129
+1329782400000,3777
+1329868800000,4773
+1329955200000,5062
+1330041600000,3487
+1330128000000,2732
+1330214400000,3389
+1330300800000,4322
+1330387200000,4363
+1330473600000,1834
+1330560000000,4990
+1330646400000,3194
+1330732800000,4066
+1330819200000,3423
+1330905600000,3333
+1330992000000,3956
+1331078400000,4916
+1331164800000,5382
+1331251200000,4569
+1331337600000,4118
+1331424000000,4911
+1331510400000,5298
+1331596800000,5847
+1331683200000,6312
+1331769600000,6192
+1331856000000,4378
+1331942400000,7836
+1332028800000,5892
+1332115200000,6153
+1332201600000,6093
+1332288000000,6230
+1332374400000,6871
+1332460800000,8362
+1332547200000,3372
+1332633600000,4996
+1332720000000,5558
+1332806400000,5102
+1332892800000,5698
+1332979200000,6133
+1333065600000,5459
+1333152000000,6235
+1333238400000,6041
+1333324800000,5936
+1333411200000,6772
+1333497600000,6436
+1333584000000,6457
+1333670400000,6460
+1333756800000,6857
+1333843200000,5169
+1333929600000,5585
+1334016000000,5918
+1334102400000,4862
+1334188800000,5409
+1334275200000,6398
+1334361600000,7460
+1334448000000,7132
+1334534400000,6370
+1334620800000,6691
+1334707200000,4367
+1334793600000,6565
+1334880000000,7290
+1334966400000,6624
+1335052800000,1027
+1335139200000,3214
+1335225600000,5633
+1335312000000,6196
+1335398400000,5026
+1335484800000,6233
+1335571200000,4220
+1335657600000,6304
+1335744000000,5572
+1335830400000,5740
+1335916800000,6169
+1336003200000,6421
+1336089600000,6296
+1336176000000,6883
+1336262400000,6359
+1336348800000,6273
+1336435200000,5728
+1336521600000,4717
+1336608000000,6572
+1336694400000,7030
+1336780800000,7429
+1336867200000,6118
+1336953600000,2843
+1337040000000,5115
+1337126400000,7424
+1337212800000,7384
+1337299200000,7639
+1337385600000,8294
+1337472000000,7129
+1337558400000,4359
+1337644800000,6073
+1337731200000,5260
+1337817600000,6770
+1337904000000,6734
+1337990400000,6536
+1338076800000,6591
+1338163200000,6043
+1338249600000,5743
+1338336000000,6855
+1338422400000,7338
+1338508800000,4127
+1338595200000,8120
+1338681600000,7641
+1338768000000,6998
+1338854400000,7001
+1338940800000,7055
+1339027200000,7494
+1339113600000,7736
+1339200000000,7498
+1339286400000,6598
+1339372800000,6664
+1339459200000,4972
+1339545600000,7421
+1339632000000,7363
+1339718400000,7665
+1339804800000,7702
+1339891200000,6978
+1339977600000,5099
+1340064000000,6825
+1340150400000,6211
+1340236800000,5905
+1340323200000,5823
+1340409600000,7458
+1340496000000,6891
+1340582400000,6779
+1340668800000,7442
+1340755200000,7335
+1340841600000,6879
+1340928000000,5463
+1341014400000,5687
+1341100800000,5531
+1341187200000,6227
+1341273600000,6660
+1341360000000,7403
+1341446400000,6241
+1341532800000,6207
+1341619200000,4840
+1341705600000,4672
+1341792000000,6569
+1341878400000,6290
+1341964800000,7264
+1342051200000,7446
+1342137600000,7499
+1342224000000,6969
+1342310400000,6031
+1342396800000,6830
+1342483200000,6786
+1342569600000,5713
+1342656000000,6591
+1342742400000,5870
+1342828800000,4459
+1342915200000,7410
+1343001600000,6966
+1343088000000,7592
+1343174400000,8173
+1343260800000,6861
+1343347200000,6904
+1343433600000,6685
+1343520000000,6597
+1343606400000,7105
+1343692800000,7216
+1343779200000,7580
+1343865600000,7261
+1343952000000,7175
+1344038400000,6824
+1344124800000,5464
+1344211200000,7013
+1344297600000,7273
+1344384000000,7534
+1344470400000,7286
+1344556800000,5786
+1344643200000,6299
+1344729600000,6544
+1344816000000,6883
+1344902400000,6784
+1344988800000,7347
+1345075200000,7605
+1345161600000,7148
+1345248000000,7865
+1345334400000,4549
+1345420800000,6530
+1345507200000,7006
+1345593600000,7375
+1345680000000,7765
+1345766400000,7582
+1345852800000,6053
+1345939200000,5255
+1346025600000,6917
+1346112000000,7040
+1346198400000,7697
+1346284800000,7713
+1346371200000,7350
+1346457600000,6140
+1346544000000,5810
+1346630400000,6034
+1346716800000,6864
+1346803200000,7112
+1346889600000,6203
+1346976000000,7504
+1347062400000,5976
+1347148800000,8227
+1347235200000,7525
+1347321600000,7767
+1347408000000,7870
+1347494400000,7804
+1347580800000,8009
+1347667200000,8714
+1347753600000,7333
+1347840000000,6869
+1347926400000,4073
+1348012800000,7591
+1348099200000,7720
+1348185600000,8167
+1348272000000,8395
+1348358400000,7907
+1348444800000,7436
+1348531200000,7538
+1348617600000,7733
+1348704000000,7393
+1348790400000,7415
+1348876800000,8555
+1348963200000,6889
+1349049600000,6778
+1349136000000,4639
+1349222400000,7572
+1349308800000,7328
+1349395200000,8156
+1349481600000,7965
+1349568000000,3510
+1349654400000,5478
+1349740800000,6392
+1349827200000,7691
+1349913600000,7570
+1350000000000,7282
+1350086400000,7109
+1350172800000,6639
+1350259200000,5875
+1350345600000,7534
+1350432000000,7461
+1350518400000,7509
+1350604800000,5424
+1350691200000,8090
+1350777600000,6824
+1350864000000,7058
+1350950400000,7466
+1351036800000,7693
+1351123200000,7359
+1351209600000,7444
+1351296000000,7852
+1351382400000,4459
+1351468800000,22
+1351555200000,1096
+1351641600000,5566
+1351728000000,5986
+1351814400000,5847
+1351900800000,5138
+1351987200000,5107
+1352073600000,5259
+1352160000000,5686
+1352246400000,5035
+1352332800000,5315
+1352419200000,5992
+1352505600000,6536
+1352592000000,6852
+1352678400000,6269
+1352764800000,4094
+1352851200000,5495
+1352937600000,5445
+1353024000000,5698
+1353110400000,5629
+1353196800000,4669
+1353283200000,5499
+1353369600000,5634
+1353456000000,5146
+1353542400000,2425
+1353628800000,3910
+1353715200000,2277
+1353801600000,2424
+1353888000000,5087
+1353974400000,3959
+1354060800000,5260
+1354147200000,5323
+1354233600000,5668
+1354320000000,5191
+1354406400000,4649
+1354492800000,6234
+1354579200000,6606
+1354665600000,5729
+1354752000000,5375
+1354838400000,5008
+1354924800000,5582
+1355011200000,3228
+1355097600000,5170
+1355184000000,5501
+1355270400000,5319
+1355356800000,5532
+1355443200000,5611
+1355529600000,5047
+1355616000000,3786
+1355702400000,4585
+1355788800000,5557
+1355875200000,5267
+1355961600000,4128
+1356048000000,3623
+1356134400000,1749
+1356220800000,1787
+1356307200000,920
+1356393600000,1013
+1356480000000,441
+1356566400000,2114
+1356652800000,3095
+1356739200000,1341
+1356825600000,1796
+1356912000000,2729
\ No newline at end of file
diff --git a/thirdeye/thirdeye-pinot/src/test/resources/org/apache/pinot/thirdeye/detection/algorithm/hourly.csv b/thirdeye/thirdeye-pinot/src/test/resources/org/apache/pinot/thirdeye/detection/algorithm/hourly.csv
new file mode 100644
index 0000000..dc748f5
--- /dev/null
+++ b/thirdeye/thirdeye-pinot/src/test/resources/org/apache/pinot/thirdeye/detection/algorithm/hourly.csv
@@ -0,0 +1,3000 @@
+timestamp,value
+1314662400000,12066
+1314658800000,13222
+1314655200000,14002
+1314651600000,14047
+1314648000000,14306
+1314644400000,14859
+1314640800000,15071
+1314637200000,15033
+1314633600000,14818
+1314630000000,14558
+1314626400000,14223
+1314622800000,13952
+1314619200000,13628
+1314615600000,13052
+1314612000000,12433
+1314608400000,11579
+1314604800000,10588
+1314601200000,9668
+1314597600000,8994
+1314594000000,8799
+1314590400000,8875
+1314586800000,9115
+1314583200000,9501
+1314579600000,10043
+1314748800000,11980
+1314745200000,12992
+1314741600000,13615
+1314738000000,13549
+1314734400000,13320
+1314730800000,13571
+1314727200000,13875
+1314723600000,14001
+1314720000000,13953
+1314716400000,13912
+1314712800000,13772
+1314709200000,13497
+1314705600000,13254
+1314702000000,12775
+1314698400000,12244
+1314694800000,11685
+1314691200000,10917
+1314687600000,9966
+1314684000000,9331
+1314680400000,9181
+1314676800000,9352
+1314673200000,9712
+1314669600000,10228
+1314666000000,10971
+1314835200000,15468
+1314831600000,16902
+1314828000000,17747
+1314824400000,17767
+1314820800000,17944
+1314817200000,18358
+1314813600000,18299
+1314810000000,17823
+1314806400000,17129
+1314802800000,16422
+1314799200000,15593
+1314795600000,14937
+1314792000000,14277
+1314788400000,13490
+1314784800000,12800
+1314781200000,12091
+1314777600000,11255
+1314774000000,10201
+1314770400000,9482
+1314766800000,9322
+1314763200000,9461
+1314759600000,9811
+1314756000000,10284
+1314752400000,10992
+1314921600000,17900
+1314918000000,19448
+1314914400000,20436
+1314910800000,20666
+1314907200000,21014
+1314903600000,21635
+1314900000000,21900
+1314896400000,21525
+1314892800000,20937
+1314889200000,20587
+1314885600000,19786
+1314882000000,18772
+1314878400000,17751
+1314874800000,16552
+1314871200000,15354
+1314867600000,14253
+1314864000000,13119
+1314860400000,12029
+1314856800000,11394
+1314853200000,11343
+1314849600000,11616
+1314846000000,12219
+1314842400000,13024
+1314838800000,14098
+1315008000000,16435
+1315004400000,17808
+1315000800000,18731
+1314997200000,19148
+1314993600000,19704
+1314990000000,20567
+1314986400000,21028
+1314982800000,21169
+1314979200000,21055
+1314975600000,20745
+1314972000000,20033
+1314968400000,19109
+1314964800000,18099
+1314961200000,17170
+1314957600000,16350
+1314954000000,15591
+1314950400000,14830
+1314946800000,13841
+1314943200000,13312
+1314939600000,13445
+1314936000000,13879
+1314932400000,14539
+1314928800000,15381
+1314925200000,16524
+1315094400000,12485
+1315090800000,13233
+1315087200000,13823
+1315083600000,14017
+1315080000000,14137
+1315076400000,14456
+1315072800000,14895
+1315069200000,15421
+1315065600000,16496
+1315062000000,17126
+1315058400000,17088
+1315054800000,16476
+1315051200000,15616
+1315047600000,14440
+1315044000000,13242
+1315040400000,12271
+1315036800000,11782
+1315033200000,11721
+1315029600000,11710
+1315026000000,12002
+1315022400000,12445
+1315018800000,13139
+1315015200000,13948
+1315011600000,15121
+1315180800000,9804
+1315177200000,10363
+1315173600000,10617
+1315170000000,10486
+1315166400000,10369
+1315162800000,10697
+1315159200000,10922
+1315155600000,11073
+1315152000000,11131
+1315148400000,11139
+1315144800000,11000
+1315141200000,10883
+1315137600000,10473
+1315134000000,10095
+1315130400000,9662
+1315126800000,9317
+1315123200000,9305
+1315119600000,9429
+1315116000000,9440
+1315112400000,9593
+1315108800000,9872
+1315105200000,10275
+1315101600000,10938
+1315098000000,11655
+1315267200000,9032
+1315263600000,9650
+1315260000000,9983
+1315256400000,9718
+1315252800000,9304
+1315249200000,9311
+1315245600000,9267
+1315242000000,9255
+1315238400000,9274
+1315234800000,9345
+1315231200000,9378
+1315227600000,9350
+1315224000000,9184
+1315220400000,8834
+1315216800000,8375
+1315213200000,8012
+1315209600000,7896
+1315206000000,7948
+1315202400000,7815
+1315198800000,7891
+1315195200000,8013
+1315191600000,8324
+1315188000000,8683
+1315184400000,9270
+1315353600000,10248
+1315350000000,11078
+1315346400000,11645
+1315342800000,11533
+1315339200000,11217
+1315335600000,11522
+1315332000000,11757
+1315328400000,11838
+1315324800000,11918
+1315321200000,11940
+1315317600000,11781
+1315314000000,11754
+1315310400000,11396
+1315306800000,11272
+1315303200000,10934
+1315299600000,10399
+1315296000000,9669
+1315292400000,8655
+1315288800000,7930
+1315285200000,7686
+1315281600000,7675
+1315278000000,7803
+1315274400000,8015
+1315270800000,8437
+1315440000000,10351
+1315436400000,11225
+1315432800000,11780
+1315429200000,11681
+1315425600000,11385
+1315422000000,11756
+1315418400000,11980
+1315414800000,12085
+1315411200000,12129
+1315407600000,12185
+1315404000000,12045
+1315400400000,11999
+1315396800000,11909
+1315393200000,11604
+1315389600000,11219
+1315386000000,10667
+1315382400000,9971
+1315378800000,9032
+1315375200000,8415
+1315371600000,8244
+1315368000000,8317
+1315364400000,8545
+1315360800000,8880
+1315357200000,9429
+1315526400000,10782
+1315522800000,11659
+1315519200000,12173
+1315515600000,12279
+1315512000000,11896
+1315508400000,11971
+1315504800000,12131
+1315501200000,12304
+1315497600000,12460
+1315494000000,12625
+1315490400000,12523
+1315486800000,12461
+1315483200000,12282
+1315479600000,11895
+1315476000000,11493
+1315472400000,10942
+1315468800000,10245
+1315465200000,9189
+1315461600000,8551
+1315458000000,8361
+1315454400000,8432
+1315450800000,8641
+1315447200000,8986
+1315443600000,9527
+1315612800000,10882
+1315609200000,11680
+1315605600000,12141
+1315602000000,12193
+1315598400000,11856
+1315594800000,12001
+1315591200000,12272
+1315587600000,12453
+1315584000000,12486
+1315580400000,12538
+1315576800000,12484
+1315573200000,12487
+1315569600000,12426
+1315566000000,12199
+1315562400000,11835
+1315558800000,11363
+1315555200000,10690
+1315551600000,9558
+1315548000000,8902
+1315544400000,8713
+1315540800000,8792
+1315537200000,9089
+1315533600000,9393
+1315530000000,9973
+1315699200000,10561
+1315695600000,11169
+1315692000000,11569
+1315688400000,11569
+1315684800000,11233
+1315681200000,11416
+1315677600000,11458
+1315674000000,11448
+1315670400000,11464
+1315666800000,11508
+1315663200000,11487
+1315659600000,11270
+1315656000000,10965
+1315652400000,10509
+1315648800000,9958
+1315645200000,9314
+1315641600000,8963
+1315638000000,8687
+1315634400000,8525
+1315630800000,8587
+1315627200000,8729
+1315623600000,9055
+1315620000000,9458
+1315616400000,10144
+1315785600000,11317
+1315782000000,12146
+1315778400000,12666
+1315774800000,12644
+1315771200000,12381
+1315767600000,12554
+1315764000000,12538
+1315760400000,12333
+1315756800000,12128
+1315753200000,11794
+1315749600000,11462
+1315746000000,10933
+1315742400000,10379
+1315738800000,9756
+1315735200000,9095
+1315731600000,8429
+1315728000000,8261
+1315724400000,8232
+1315720800000,8245
+1315717200000,8308
+1315713600000,8523
+1315710000000,8798
+1315706400000,9274
+1315702800000,9860
+1315872000000,12935
+1315868400000,14173
+1315864800000,15049
+1315861200000,15253
+1315857600000,15171
+1315854000000,15891
+1315850400000,16278
+1315846800000,16325
+1315843200000,16158
+1315839600000,15931
+1315836000000,15382
+1315832400000,14782
+1315828800000,14160
+1315825200000,13490
+1315821600000,12695
+1315818000000,11901
+1315814400000,11025
+1315810800000,9910
+1315807200000,9140
+1315803600000,8948
+1315800000000,9057
+1315796400000,9372
+1315792800000,9781
+1315789200000,10448
+1315958400000,10956
+1315954800000,11989
+1315951200000,12706
+1315947600000,12909
+1315944000000,12715
+1315940400000,13266
+1315936800000,13738
+1315933200000,13987
+1315929600000,14053
+1315926000000,14058
+1315922400000,13872
+1315918800000,13757
+1315915200000,13574
+1315911600000,13169
+1315908000000,12754
+1315904400000,12120
+1315900800000,11474
+1315897200000,10402
+1315893600000,9755
+1315890000000,9667
+1315886400000,9872
+1315882800000,10265
+1315879200000,10848
+1315875600000,11723
+1316044800000,10042
+1316041200000,10876
+1316037600000,11393
+1316034000000,11395
+1316030400000,10877
+1316026800000,11060
+1316023200000,11259
+1316019600000,11396
+1316016000000,11615
+1316012400000,11781
+1316008800000,11802
+1316005200000,11887
+1316001600000,11851
+1315998000000,11731
+1315994400000,11538
+1315990800000,11023
+1315987200000,10379
+1315983600000,9334
+1315980000000,8720
+1315976400000,8590
+1315972800000,8707
+1315969200000,8959
+1315965600000,9363
+1315962000000,10012
+1316131200000,9957
+1316127600000,10864
+1316124000000,11300
+1316120400000,11388
+1316116800000,10816
+1316113200000,10864
+1316109600000,11062
+1316106000000,11191
+1316102400000,11299
+1316098800000,11384
+1316095200000,11321
+1316091600000,11304
+1316088000000,11255
+1316084400000,11084
+1316080800000,10925
+1316077200000,10548
+1316073600000,9965
+1316070000000,8914
+1316066400000,8286
+1316062800000,8116
+1316059200000,8172
+1316055600000,8377
+1316052000000,8704
+1316048400000,9257
+1316217600000,9926
+1316214000000,10650
+1316210400000,11031
+1316206800000,11216
+1316203200000,10828
+1316199600000,10804
+1316196000000,10941
+1316192400000,11058
+1316188800000,11208
+1316185200000,11311
+1316181600000,11359
+1316178000000,11417
+1316174400000,11359
+1316170800000,11241
+1316167200000,11021
+1316163600000,10667
+1316160000000,10023
+1316156400000,8957
+1316152800000,8338
+1316149200000,8139
+1316145600000,8224
+1316142000000,8437
+1316138400000,8760
+1316134800000,9233
+1316304000000,9289
+1316300400000,9817
+1316296800000,10151
+1316293200000,10152
+1316289600000,9580
+1316286000000,9552
+1316282400000,9647
+1316278800000,9738
+1316275200000,9727
+1316271600000,9815
+1316268000000,9863
+1316264400000,9941
+1316260800000,9878
+1316257200000,9620
+1316253600000,9280
+1316250000000,8765
+1316246400000,8537
+1316242800000,8213
+1316239200000,7987
+1316235600000,7976
+1316232000000,8061
+1316228400000,8320
+1316224800000,8622
+1316221200000,9223
+1316390400000,9428
+1316386800000,9963
+1316383200000,10322
+1316379600000,10448
+1316376000000,10022
+1316372400000,9730
+1316368800000,9573
+1316365200000,9490
+1316361600000,9440
+1316358000000,9391
+1316354400000,9355
+1316350800000,9258
+1316347200000,9063
+1316343600000,8769
+1316340000000,8416
+1316336400000,7977
+1316332800000,7834
+1316329200000,7651
+1316325600000,7523
+1316322000000,7582
+1316318400000,7718
+1316314800000,7921
+1316311200000,8263
+1316307600000,8712
+1316476800000,10270
+1316473200000,11164
+1316469600000,11751
+1316466000000,11958
+1316462400000,11447
+1316458800000,11608
+1316455200000,11772
+1316451600000,11859
+1316448000000,11999
+1316444400000,12087
+1316440800000,12055
+1316437200000,12072
+1316433600000,12002
+1316430000000,11793
+1316426400000,11599
+1316422800000,11165
+1316419200000,10316
+1316415600000,9027
+1316412000000,8368
+1316408400000,8122
+1316404800000,8163
+1316401200000,8208
+1316397600000,8468
+1316394000000,8809
+1316563200000,10567
+1316559600000,11464
+1316556000000,12077
+1316552400000,12264
+1316548800000,11771
+1316545200000,11980
+1316541600000,12214
+1316538000000,12313
+1316534400000,12353
+1316530800000,12319
+1316527200000,12178
+1316523600000,12069
+1316520000000,11865
+1316516400000,11515
+1316512800000,11161
+1316509200000,10679
+1316505600000,10084
+1316502000000,9004
+1316498400000,8380
+1316494800000,8209
+1316491200000,8290
+1316487600000,8513
+1316484000000,8855
+1316480400000,9425
+1316649600000,10259
+1316646000000,11153
+1316642400000,11733
+1316638800000,11987
+1316635200000,11523
+1316631600000,11654
+1316628000000,11941
+1316624400000,12130
+1316620800000,12239
+1316617200000,12307
+1316613600000,12202
+1316610000000,12100
+1316606400000,11953
+1316602800000,11683
+1316599200000,11379
+1316595600000,10989
+1316592000000,10358
+1316588400000,9206
+1316584800000,8584
+1316581200000,8433
+1316577600000,8547
+1316574000000,8753
+1316570400000,9154
+1316566800000,9723
+1316736000000,10079
+1316732400000,10936
+1316728800000,11456
+1316725200000,11649
+1316721600000,11123
+1316718000000,11086
+1316714400000,11273
+1316710800000,11368
+1316707200000,11478
+1316703600000,11551
+1316700000000,11510
+1316696400000,11534
+1316692800000,11503
+1316689200000,11290
+1316685600000,11001
+1316682000000,10596
+1316678400000,10037
+1316674800000,8971
+1316671200000,8392
+1316667600000,8245
+1316664000000,8284
+1316660400000,8511
+1316656800000,8865
+1316653200000,9397
+1316822400000,9875
+1316818800000,10571
+1316815200000,10936
+1316811600000,11205
+1316808000000,10894
+1316804400000,10742
+1316800800000,10857
+1316797200000,11017
+1316793600000,11222
+1316790000000,11336
+1316786400000,11295
+1316782800000,11243
+1316779200000,11198
+1316775600000,11014
+1316772000000,10811
+1316768400000,10535
+1316764800000,9935
+1316761200000,8875
+1316757600000,8287
+1316754000000,8131
+1316750400000,8187
+1316746800000,8435
+1316743200000,8760
+1316739600000,9294
+1316908800000,9230
+1316905200000,9755
+1316901600000,10023
+1316898000000,10093
+1316894400000,9613
+1316890800000,9449
+1316887200000,9451
+1316883600000,9461
+1316880000000,9526
+1316876400000,9639
+1316872800000,9740
+1316869200000,9865
+1316865600000,9804
+1316862000000,9580
+1316858400000,9228
+1316854800000,8740
+1316851200000,8546
+1316847600000,8134
+1316844000000,7938
+1316840400000,7871
+1316836800000,8019
+1316833200000,8252
+1316829600000,8609
+1316826000000,9181
+1316995200000,9142
+1316991600000,9716
+1316988000000,10073
+1316984400000,10235
+1316980800000,9594
+1316977200000,9312
+1316973600000,9241
+1316970000000,9221
+1316966400000,9233
+1316962800000,9284
+1316959200000,9222
+1316955600000,9211
+1316952000000,9041
+1316948400000,8786
+1316944800000,8391
+1316941200000,7960
+1316937600000,7797
+1316934000000,7630
+1316930400000,7527
+1316926800000,7575
+1316923200000,7682
+1316919600000,7925
+1316916000000,8183
+1316912400000,8712
+1317081600000,10107
+1317078000000,10971
+1317074400000,11515
+1317070800000,11765
+1317067200000,11404
+1317063600000,11254
+1317060000000,11293
+1317056400000,11362
+1317052800000,11535
+1317049200000,11610
+1317045600000,11590
+1317042000000,11576
+1317038400000,11553
+1317034800000,11314
+1317031200000,11113
+1317027600000,10824
+1317024000000,10070
+1317020400000,8897
+1317016800000,8205
+1317013200000,7931
+1317009600000,7935
+1317006000000,8007
+1317002400000,8192
+1316998800000,8581
+1317168000000,10119
+1317164400000,10968
+1317160800000,11522
+1317157200000,11779
+1317153600000,11449
+1317150000000,11260
+1317146400000,11308
+1317142800000,11413
+1317139200000,11553
+1317135600000,11639
+1317132000000,11615
+1317128400000,11647
+1317124800000,11596
+1317121200000,11459
+1317117600000,11208
+1317114000000,10931
+1317110400000,10255
+1317106800000,9039
+1317103200000,8369
+1317099600000,8199
+1317096000000,8263
+1317092400000,8477
+1317088800000,8776
+1317085200000,9300
+1317254400000,10177
+1317250800000,11018
+1317247200000,11545
+1317243600000,11822
+1317240000000,11522
+1317236400000,11325
+1317232800000,11392
+1317229200000,11505
+1317225600000,11569
+1317222000000,11707
+1317218400000,11625
+1317214800000,11661
+1317211200000,11575
+1317207600000,11393
+1317204000000,11191
+1317200400000,10845
+1317196800000,10169
+1317193200000,8994
+1317189600000,8388
+1317186000000,8226
+1317182400000,8275
+1317178800000,8503
+1317175200000,8822
+1317171600000,9295
+1317340800000,10150
+1317337200000,11023
+1317333600000,11497
+1317330000000,11800
+1317326400000,11465
+1317322800000,11365
+1317319200000,11431
+1317315600000,11510
+1317312000000,11670
+1317308400000,11863
+1317304800000,11814
+1317301200000,11750
+1317297600000,11585
+1317294000000,11369
+1317290400000,11095
+1317286800000,10735
+1317283200000,10168
+1317279600000,9050
+1317276000000,8399
+1317272400000,8241
+1317268800000,8272
+1317265200000,8483
+1317261600000,8807
+1317258000000,9352
+1317427200000,10068
+1317423600000,10746
+1317420000000,11111
+1317416400000,11305
+1317412800000,11025
+1317409200000,10734
+1317405600000,10839
+1317402000000,10950
+1317398400000,11127
+1317394800000,11270
+1317391200000,11247
+1317387600000,11214
+1317384000000,11232
+1317380400000,11104
+1317376800000,10998
+1317373200000,10810
+1317369600000,10224
+1317366000000,9075
+1317362400000,8436
+1317358800000,8279
+1317355200000,8318
+1317351600000,8532
+1317348000000,8846
+1317344400000,9380
+1317513600000,9321
+1317510000000,9785
+1317506400000,10058
+1317502800000,10149
+1317499200000,9585
+1317495600000,9282
+1317492000000,9285
+1317488400000,9307
+1317484800000,9399
+1317481200000,9517
+1317477600000,9661
+1317474000000,9739
+1317470400000,9774
+1317466800000,9654
+1317463200000,9384
+1317459600000,9005
+1317456000000,8797
+1317452400000,8382
+1317448800000,8112
+1317445200000,8143
+1317441600000,8236
+1317438000000,8481
+1317434400000,8821
+1317430800000,9365
+1317600000000,9069
+1317596400000,9672
+1317592800000,10017
+1317589200000,10175
+1317585600000,9523
+1317582000000,9155
+1317578400000,9075
+1317574800000,9025
+1317571200000,9032
+1317567600000,9058
+1317564000000,9084
+1317560400000,9024
+1317556800000,8944
+1317553200000,8700
+1317549600000,8484
+1317546000000,8140
+1317542400000,8113
+1317538800000,7867
+1317535200000,7777
+1317531600000,7730
+1317528000000,7833
+1317524400000,7997
+1317520800000,8287
+1317517200000,8769
+1317686400000,10036
+1317682800000,10863
+1317679200000,11373
+1317675600000,11684
+1317672000000,11277
+1317668400000,11145
+1317664800000,11328
+1317661200000,11500
+1317657600000,11658
+1317654000000,11682
+1317650400000,11618
+1317646800000,11555
+1317643200000,11430
+1317639600000,11130
+1317636000000,10914
+1317632400000,10593
+1317628800000,9985
+1317625200000,8736
+1317621600000,8034
+1317618000000,7797
+1317614400000,7746
+1317610800000,7916
+1317607200000,8093
+1317603600000,8532
+1317772800000,10150
+1317769200000,11068
+1317765600000,11663
+1317762000000,11981
+1317758400000,11626
+1317754800000,11519
+1317751200000,11732
+1317747600000,11863
+1317744000000,11947
+1317740400000,11937
+1317736800000,11812
+1317733200000,11711
+1317729600000,11571
+1317726000000,11279
+1317722400000,11008
+1317718800000,10670
+1317715200000,10157
+1317711600000,8955
+1317708000000,8295
+1317704400000,8105
+1317700800000,8163
+1317697200000,8356
+1317693600000,8660
+1317690000000,9201
+1317859200000,10413
+1317855600000,11302
+1317852000000,11922
+1317848400000,12264
+1317844800000,11976
+1317841200000,11941
+1317837600000,12191
+1317834000000,12292
+1317830400000,12342
+1317826800000,12360
+1317823200000,12139
+1317819600000,12020
+1317816000000,11760
+1317812400000,11400
+1317808800000,11052
+1317805200000,10658
+1317801600000,10075
+1317798000000,8937
+1317794400000,8299
+1317790800000,8112
+1317787200000,8196
+1317783600000,8435
+1317780000000,8763
+1317776400000,9311
+1317945600000,10712
+1317942000000,11624
+1317938400000,12270
+1317934800000,12593
+1317931200000,12407
+1317927600000,12356
+1317924000000,12626
+1317920400000,12786
+1317916800000,12782
+1317913200000,12762
+1317909600000,12574
+1317906000000,12349
+1317902400000,12117
+1317898800000,11641
+1317895200000,11250
+1317891600000,10805
+1317888000000,10198
+1317884400000,8984
+1317880800000,8398
+1317877200000,8230
+1317873600000,8322
+1317870000000,8552
+1317866400000,8940
+1317862800000,9555
+1318032000000,11010
+1318028400000,11823
+1318024800000,12371
+1318021200000,12714
+1318017600000,12604
+1318014000000,12554
+1318010400000,12922
+1318006800000,13091
+1318003200000,13100
+1317999600000,13047
+1317996000000,12882
+1317992400000,12638
+1317988800000,12295
+1317985200000,11798
+1317981600000,11345
+1317978000000,10821
+1317974400000,10205
+1317970800000,9127
+1317967200000,8500
+1317963600000,8356
+1317960000000,8459
+1317956400000,8753
+1317952800000,9169
+1317949200000,9784
+1318118400000,10212
+1318114800000,10862
+1318111200000,11320
+1318107600000,11580
+1318104000000,11424
+1318100400000,11319
+1318096800000,11485
+1318093200000,11623
+1318089600000,11552
+1318086000000,11404
+1318082400000,11306
+1318078800000,11145
+1318075200000,10822
+1318071600000,10304
+1318068000000,9775
+1318064400000,9139
+1318060800000,9002
+1318057200000,8593
+1318053600000,8444
+1318050000000,8447
+1318046400000,8654
+1318042800000,8962
+1318039200000,9476
+1318035600000,10140
+1318204800000,9747
+1318201200000,10355
+1318197600000,10728
+1318194000000,11034
+1318190400000,10756
+1318186800000,10509
+1318183200000,10579
+1318179600000,10595
+1318176000000,10504
+1318172400000,10395
+1318168800000,10182
+1318165200000,9909
+1318161600000,9542
+1318158000000,9031
+1318154400000,8518
+1318150800000,8020
+1318147200000,8082
+1318143600000,7890
+1318140000000,7887
+1318136400000,7945
+1318132800000,8191
+1318129200000,8468
+1318125600000,8919
+1318122000000,9490
+1318291200000,10628
+1318287600000,11498
+1318284000000,12085
+1318280400000,12464
+1318276800000,12342
+1318273200000,12078
+1318269600000,12282
+1318266000000,12400
+1318262400000,12420
+1318258800000,12388
+1318255200000,12182
+1318251600000,12008
+1318248000000,11770
+1318244400000,11432
+1318240800000,10897
+1318237200000,10417
+1318233600000,9819
+1318230000000,8816
+1318226400000,8202
+1318222800000,8074
+1318219200000,8090
+1318215600000,8311
+1318212000000,8596
+1318208400000,9126
+1318377600000,10790
+1318374000000,11770
+1318370400000,12391
+1318366800000,12778
+1318363200000,12639
+1318359600000,12428
+1318356000000,12660
+1318352400000,12807
+1318348800000,12903
+1318345200000,13015
+1318341600000,12859
+1318338000000,12696
+1318334400000,12415
+1318330800000,11949
+1318327200000,11469
+1318323600000,10981
+1318320000000,10424
+1318316400000,9193
+1318312800000,8540
+1318309200000,8387
+1318305600000,8494
+1318302000000,8750
+1318298400000,9103
+1318294800000,9740
+1318464000000,10726
+1318460400000,11671
+1318456800000,12282
+1318453200000,12649
+1318449600000,12581
+1318446000000,12287
+1318442400000,12480
+1318438800000,12758
+1318435200000,12875
+1318431600000,12951
+1318428000000,12748
+1318424400000,12554
+1318420800000,12246
+1318417200000,11800
+1318413600000,11379
+1318410000000,11010
+1318406400000,10412
+1318402800000,9154
+1318399200000,8579
+1318395600000,8428
+1318392000000,8536
+1318388400000,8832
+1318384800000,9248
+1318381200000,9865
+1318550400000,10321
+1318546800000,11250
+1318543200000,11792
+1318539600000,12140
+1318536000000,12038
+1318532400000,11812
+1318528800000,11834
+1318525200000,11905
+1318521600000,12044
+1318518000000,12197
+1318514400000,12159
+1318510800000,12173
+1318507200000,12118
+1318503600000,11912
+1318500000000,11713
+1318496400000,11387
+1318492800000,10564
+1318489200000,9314
+1318485600000,8690
+1318482000000,8560
+1318478400000,8591
+1318474800000,8836
+1318471200000,9208
+1318467600000,9804
+1318636800000,10081
+1318633200000,10773
+1318629600000,11195
+1318626000000,11468
+1318622400000,11334
+1318618800000,10840
+1318615200000,10906
+1318611600000,11058
+1318608000000,11227
+1318604400000,11332
+1318600800000,11320
+1318597200000,11311
+1318593600000,11288
+1318590000000,11095
+1318586400000,10948
+1318582800000,10754
+1318579200000,10222
+1318575600000,9027
+1318572000000,8391
+1318568400000,8270
+1318564800000,8304
+1318561200000,8543
+1318557600000,8866
+1318554000000,9500
+1318723200000,9339
+1318719600000,9827
+1318716000000,10140
+1318712400000,10240
+1318708800000,10075
+1318705200000,9463
+1318701600000,9405
+1318698000000,9430
+1318694400000,9469
+1318690800000,9619
+1318687200000,9735
+1318683600000,9784
+1318680000000,9775
+1318676400000,9619
+1318672800000,9386
+1318669200000,8972
+1318665600000,8807
+1318662000000,8366
+1318658400000,8113
+1318654800000,8101
+1318651200000,8229
+1318647600000,8433
+1318644000000,8827
+1318640400000,9383
+1318809600000,9139
+1318806000000,9753
+1318802400000,10060
+1318798800000,10259
+1318795200000,9946
+1318791600000,9173
+1318788000000,9137
+1318784400000,9050
+1318780800000,9121
+1318777200000,9108
+1318773600000,9190
+1318770000000,9128
+1318766400000,9063
+1318762800000,8847
+1318759200000,8553
+1318755600000,8291
+1318752000000,8022
+1318748400000,7746
+1318744800000,7645
+1318741200000,7645
+1318737600000,7764
+1318734000000,7950
+1318730400000,8247
+1318726800000,8785
+1318896000000,10193
+1318892400000,11037
+1318888800000,11589
+1318885200000,11853
+1318881600000,11795
+1318878000000,11183
+1318874400000,11067
+1318870800000,11153
+1318867200000,11289
+1318863600000,11410
+1318860000000,11384
+1318856400000,11385
+1318852800000,11326
+1318849200000,11202
+1318845600000,11109
+1318842000000,10939
+1318838400000,10252
+1318834800000,8958
+1318831200000,8147
+1318827600000,7934
+1318824000000,7896
+1318820400000,8027
+1318816800000,8191
+1318813200000,8596
+1318982400000,10334
+1318978800000,11165
+1318975200000,11713
+1318971600000,12019
+1318968000000,12090
+1318964400000,11731
+1318960800000,11582
+1318957200000,11536
+1318953600000,11401
+1318950000000,11512
+1318946400000,11526
+1318942800000,11576
+1318939200000,11604
+1318935600000,11566
+1318932000000,11442
+1318928400000,11329
+1318924800000,10648
+1318921200000,9289
+1318917600000,8590
+1318914000000,8390
+1318910400000,8432
+1318906800000,8599
+1318903200000,8897
+1318899600000,9402
+1319068800000,10643
+1319065200000,11490
+1319061600000,12015
+1319058000000,12328
+1319054400000,12469
+1319050800000,12215
+1319047200000,12035
+1319043600000,11919
+1319040000000,11887
+1319036400000,11888
+1319032800000,11862
+1319029200000,11953
+1319025600000,11961
+1319022000000,11763
+1319018400000,11708
+1319014800000,11436
+1319011200000,10680
+1319007600000,9391
+1319004000000,8651
+1319000400000,8460
+1318996800000,8528
+1318993200000,8693
+1318989600000,9007
+1318986000000,9554
+1319155200000,10666
+1319151600000,11443
+1319148000000,11925
+1319144400000,12281
+1319140800000,12354
+1319137200000,11916
+1319133600000,11750
+1319130000000,11766
+1319126400000,11891
+1319122800000,12024
+1319119200000,12051
+1319115600000,12098
+1319112000000,12101
+1319108400000,11983
+1319104800000,11840
+1319101200000,11743
+1319097600000,10955
+1319094000000,9676
+1319090400000,8976
+1319086800000,8725
+1319083200000,8799
+1319079600000,8987
+1319076000000,9273
+1319072400000,9825
+1319241600000,10425
+1319238000000,11054
+1319234400000,11329
+1319230800000,11555
+1319227200000,11539
+1319223600000,10908
+1319220000000,10952
+1319216400000,11036
+1319212800000,11257
+1319209200000,11384
+1319205600000,11472
+1319202000000,11554
+1319198400000,11573
+1319194800000,11594
+1319191200000,11594
+1319187600000,11539
+1319184000000,11011
+1319180400000,9731
+1319176800000,9025
+1319173200000,8803
+1319169600000,8854
+1319166000000,9078
+1319162400000,9414
+1319158800000,9851
+1319328000000,9566
+1319324400000,9995
+1319320800000,10353
+1319317200000,10351
+1319313600000,10324
+1319310000000,9671
+1319306400000,9582
+1319302800000,9638
+1319299200000,9711
+1319295600000,9848
+1319292000000,9947
+1319288400000,10097
+1319284800000,10095
+1319281200000,10075
+1319277600000,9874
+1319274000000,9580
+1319270400000,9385
+1319266800000,8890
+1319263200000,8620
+1319259600000,8576
+1319256000000,8680
+1319252400000,8753
+1319248800000,9198
+1319245200000,9773
+1319414400000,9281
+1319410800000,9817
+1319407200000,10198
+1319403600000,10430
+1319400000000,10248
+1319396400000,9489
+1319392800000,9207
+1319389200000,9246
+1319385600000,9229
+1319382000000,9274
+1319378400000,9199
+1319374800000,9257
+1319371200000,9102
+1319367600000,8934
+1319364000000,8743
+1319360400000,8603
+1319356800000,8509
+1319353200000,8239
+1319349600000,7975
+1319346000000,7979
+1319342400000,8042
+1319338800000,8234
+1319335200000,8543
+1319331600000,9083
+1319500800000,10191
+1319497200000,11035
+1319493600000,11556
+1319490000000,11845
+1319486400000,11891
+1319482800000,11242
+1319479200000,11207
+1319475600000,11335
+1319472000000,11455
+1319468400000,11540
+1319464800000,11514
+1319461200000,11449
+1319457600000,11388
+1319454000000,11250
+1319450400000,11093
+1319446800000,10924
+1319443200000,10289
+1319439600000,8888
+1319436000000,8197
+1319432400000,7922
+1319428800000,7956
+1319425200000,8081
+1319421600000,8338
+1319418000000,8684
+1319587200000,10206
+1319583600000,11106
+1319580000000,11707
+1319576400000,12140
+1319572800000,12266
+1319569200000,11836
+1319565600000,11568
+1319562000000,11627
+1319558400000,11730
+1319554800000,11797
+1319551200000,11773
+1319547600000,11760
+1319544000000,11691
+1319540400000,11479
+1319536800000,11322
+1319533200000,11217
+1319529600000,10489
+1319526000000,9213
+1319522400000,8521
+1319518800000,8326
+1319515200000,8383
+1319511600000,8580
+1319508000000,8882
+1319504400000,9413
+1319673600000,10330
+1319670000000,11168
+1319666400000,11689
+1319662800000,11978
+1319659200000,12149
+1319655600000,11898
+1319652000000,11691
+1319648400000,11648
+1319644800000,11658
+1319641200000,11776
+1319637600000,11715
+1319634000000,11731
+1319630400000,11726
+1319626800000,11545
+1319623200000,11411
+1319619600000,11182
+1319616000000,10265
+1319612400000,9065
+1319608800000,8427
+1319605200000,8242
+1319601600000,8278
+1319598000000,8512
+1319594400000,8830
+1319590800000,9381
+1319760000000,10479
+1319756400000,11327
+1319752800000,11746
+1319749200000,12080
+1319745600000,12074
+1319742000000,11394
+1319738400000,11203
+1319734800000,11255
+1319731200000,11373
+1319727600000,11497
+1319724000000,11485
+1319720400000,11565
+1319716800000,11651
+1319713200000,11609
+1319709600000,11577
+1319706000000,11467
+1319702400000,10654
+1319698800000,9380
+1319695200000,8658
+1319691600000,8452
+1319688000000,8543
+1319684400000,8747
+1319680800000,9012
+1319677200000,9546
+1319846400000,10290
+1319842800000,10939
+1319839200000,11295
+1319835600000,11576
+1319832000000,11674
+1319828400000,11080
+1319824800000,10911
+1319821200000,10988
+1319817600000,11158
+1319814000000,11323
+1319810400000,11397
+1319806800000,11466
+1319803200000,11562
+1319799600000,11530
+1319796000000,11574
+1319792400000,11574
+1319788800000,10871
+1319785200000,9645
+1319781600000,8935
+1319778000000,8719
+1319774400000,8764
+1319770800000,8972
+1319767200000,9301
+1319763600000,9791
+1319932800000,9697
+1319929200000,10206
+1319925600000,10426
+1319922000000,10629
+1319918400000,10580
+1319914800000,9814
+1319911200000,9511
+1319907600000,9544
+1319904000000,9574
+1319900400000,9742
+1319896800000,9907
+1319893200000,10054
+1319889600000,10099
+1319886000000,10033
+1319882400000,9880
+1319878800000,9636
+1319875200000,9315
+1319871600000,8757
+1319868000000,8475
+1319864400000,8426
+1319860800000,8506
+1319857200000,8694
+1319853600000,9015
+1319850000000,9577
+1320019200000,9595
+1320015600000,10160
+1320012000000,10498
+1320008400000,10718
+1320004800000,10761
+1320001200000,10322
+1319997600000,9945
+1319994000000,9627
+1319990400000,9407
+1319986800000,9391
+1319983200000,9385
+1319979600000,9346
+1319976000000,9384
+1319972400000,9288
+1319968800000,9067
+1319965200000,8841
+1319961600000,8647
+1319958000000,8333
+1319954400000,8252
+1319950800000,8218
+1319947200000,8365
+1319943600000,8515
+1319940000000,8790
+1319936400000,9158
+1320105600000,10369
+1320102000000,11116
+1320098400000,11561
+1320094800000,11782
+1320091200000,11826
+1320087600000,11338
+1320084000000,11162
+1320080400000,11233
+1320076800000,11306
+1320073200000,11465
+1320069600000,11408
+1320066000000,11493
+1320062400000,11516
+1320058800000,11482
+1320055200000,11525
+1320051600000,11477
+1320048000000,10776
+1320044400000,9371
+1320040800000,8586
+1320037200000,8281
+1320033600000,8262
+1320030000000,8367
+1320026400000,8598
+1320022800000,9009
+1320192000000,10325
+1320188400000,11178
+1320184800000,11758
+1320181200000,12044
+1320177600000,12155
+1320174000000,11535
+1320170400000,11381
+1320166800000,11459
+1320163200000,11528
+1320159600000,11549
+1320156000000,11549
+1320152400000,11587
+1320148800000,11660
+1320145200000,11627
+1320141600000,11648
+1320138000000,11670
+1320134400000,10940
+1320130800000,9605
+1320127200000,8887
+1320123600000,8655
+1320120000000,8669
+1320116400000,8842
+1320112800000,9123
+1320109200000,9614
+1320278400000,10258
+1320274800000,11101
+1320271200000,11626
+1320267600000,11981
+1320264000000,12152
+1320260400000,11637
+1320256800000,11366
+1320253200000,11411
+1320249600000,11516
+1320246000000,11596
+1320242400000,11564
+1320238800000,11638
+1320235200000,11593
+1320231600000,11454
+1320228000000,11330
+1320224400000,11270
+1320220800000,10556
+1320217200000,9224
+1320213600000,8522
+1320210000000,8362
+1320206400000,8406
+1320202800000,8623
+1320199200000,8940
+1320195600000,9496
+1320364800000,10612
+1320361200000,11418
+1320357600000,11955
+1320354000000,12283
+1320350400000,12465
+1320346800000,12247
+1320343200000,12006
+1320339600000,12021
+1320336000000,12085
+1320332400000,12192
+1320328800000,12188
+1320325200000,12192
+1320321600000,12189
+1320318000000,12106
+1320314400000,11943
+1320310800000,11661
+1320307200000,10637
+1320303600000,9405
+1320300000000,8693
+1320296400000,8452
+1320292800000,8518
+1320289200000,8690
+1320285600000,9001
+1320282000000,9509
+1320451200000,10461
+1320447600000,11107
+1320444000000,11456
+1320440400000,11727
+1320436800000,11824
+1320433200000,11137
+1320429600000,11002
+1320426000000,11088
+1320422400000,11243
+1320418800000,11468
+1320415200000,11491
+1320411600000,11626
+1320408000000,11691
+1320404400000,11658
+1320400800000,11653
+1320397200000,11612
+1320393600000,10917
+1320390000000,9648
+1320386400000,8960
+1320382800000,8752
+1320379200000,8778
+1320375600000,9008
+1320372000000,9316
+1320368400000,9861
+1320537600000,9685
+1320534000000,10124
+1320530400000,10413
+1320526800000,10539
+1320523200000,10621
+1320519600000,9857
+1320516000000,9528
+1320512400000,9522
+1320508800000,9616
+1320505200000,9792
+1320501600000,9988
+1320498000000,10171
+1320494400000,10206
+1320490800000,10199
+1320487200000,10040
+1320483600000,9879
+1320480000000,9444
+1320476400000,8945
+1320472800000,8602
+1320469200000,8600
+1320465600000,8672
+1320462000000,8922
+1320458400000,9206
+1320454800000,9781
+1320624000000,9262
+1320620400000,9861
+1320616800000,10296
+1320613200000,10597
+1320609600000,10707
+1320606000000,10750
+1320602400000,10071
+1320598800000,9588
+1320595200000,9484
+1320591600000,9534
+1320588000000,9453
+1320584400000,9403
+1320580800000,9236
+1320577200000,9126
+1320573600000,8888
+1320570000000,8574
+1320566400000,8366
+1320562800000,8266
+1320559200000,8041
+1320555600000,8045
+1320552000000,8061
+1320548400000,8298
+1320541200000,9164
+1320710400000,10276
+1320706800000,11067
+1320703200000,11591
+1320699600000,11971
+1320696000000,12198
+1320692400000,12391
+1320688800000,11985
+1320685200000,11579
+1320681600000,11550
+1320678000000,11672
+1320674400000,11596
+1320670800000,11633
+1320667200000,11663
+1320663600000,11485
+1320660000000,11349
+1320656400000,11054
+1320652800000,10396
+1320649200000,9158
+1320645600000,8358
+1320642000000,8101
+1320638400000,8058
+1320634800000,8186
+1320631200000,8366
+1320627600000,8737
+1320796800000,10424
+1320793200000,11272
+1320789600000,11848
+1320786000000,12205
+1320782400000,12483
+1320778800000,12731
+1320775200000,12477
+1320771600000,12031
+1320768000000,11967
+1320764400000,12093
+1320760800000,12041
+1320757200000,12078
+1320753600000,12146
+1320750000000,12043
+1320746400000,11905
+1320742800000,11440
+1320739200000,10670
+1320735600000,9462
+1320732000000,8724
+1320728400000,8498
+1320724800000,8544
+1320721200000,8724
+1320717600000,8967
+1320714000000,9508
+1320883200000,10838
+1320879600000,11641
+1320876000000,12177
+1320872400000,12537
+1320868800000,12809
+1320865200000,13026
+1320861600000,12579
+1320858000000,12062
+1320854400000,11969
+1320850800000,11994
+1320847200000,11905
+1320843600000,11916
+1320840000000,11831
+1320836400000,11749
+1320832800000,11770
+1320829200000,11617
+1320825600000,10867
+1320822000000,9578
+1320818400000,8834
+1320814800000,8588
+1320811200000,8678
+1320807600000,8853
+1320804000000,9169
+1320800400000,9667
+1320969600000,11024
+1320966000000,11801
+1320962400000,12298
+1320958800000,12650
+1320955200000,12886
+1320951600000,13088
+1320948000000,12588
+1320944400000,12192
+1320940800000,12215
+1320937200000,12326
+1320933600000,12346
+1320930000000,12406
+1320926400000,12407
+1320922800000,12185
+1320919200000,12105
+1320915600000,11843
+1320912000000,11312
+1320908400000,10155
+1320904800000,9404
+1320901200000,9126
+1320897600000,9117
+1320894000000,9277
+1320890400000,9549
+1320886800000,10075
+1321056000000,10785
+1321052400000,11388
+1321048800000,11854
+1321045200000,12176
+1321041600000,12400
+1321038000000,12590
+1321034400000,11896
+1321030800000,11480
+1321027200000,11623
+1321023600000,11839
+1321020000000,11929
+1321016400000,12109
+1321012800000,12178
+1321009200000,12108
+1321005600000,11908
+1321002000000,11555
+1320998400000,11116
+1320994800000,10192
+1320991200000,9536
+1320987600000,9305
+1320984000000,9325
+1320980400000,9527
+1320976800000,9799
+1320973200000,10312
+1321142400000,9703
+1321138800000,10218
+1321135200000,10523
+1321131600000,10786
+1321128000000,10958
+1321124400000,11033
+1321120800000,10399
+1321117200000,9816
+1321113600000,9732
+1321110000000,9877
+1321106400000,10013
+1321102800000,10202
+1321099200000,10255
+1321095600000,10253
+1321092000000,10042
+1321088400000,9817
+1321084800000,9641
+1321081200000,9287
+1321077600000,8979
+1321074000000,8917
+1321070400000,9021
+1321066800000,9214
+1321063200000,9577
+1321059600000,10047
+1321228800000,9376
+1321225200000,9937
+1321221600000,10337
+1321218000000,10545
+1321214400000,10682
+1321210800000,10672
+1321207200000,9850
+1321203600000,9377
+1321200000000,9329
+1321196400000,9399
+1321192800000,9415
+1321189200000,9455
+1321185600000,9306
+1321182000000,9058
+1321178400000,8767
+1321174800000,8402
+1321171200000,8341
+1321167600000,8162
+1321164000000,8054
+1321160400000,8067
+1321156800000,8140
+1321153200000,8419
+1321149600000,8673
+1321146000000,9151
+1321315200000,10404
+1321311600000,11235
+1321308000000,11754
+1321304400000,12100
+1321300800000,12333
+1321297200000,12513
+1321293600000,11954
+1321290000000,11433
+1321286400000,11528
+1321282800000,11718
+1321279200000,11791
+1321275600000,11829
+1321272000000,11841
+1321268400000,11673
+1321264800000,11485
+1321261200000,11202
+1321257600000,10601
+1321254000000,9383
+1321250400000,8498
+1321246800000,8215
+1321243200000,8129
+1321239600000,8243
+1321236000000,8423
+1321232400000,8792
+1321401600000,10349
+1321398000000,11141
+1321394400000,11677
+1321390800000,11986
+1321387200000,12200
+1321383600000,12318
+1321380000000,11733
+1321376400000,11351
+1321372800000,11427
+1321369200000,11513
+1321365600000,11536
+1321362000000,11598
+1321358400000,11588
+1321354800000,11533
+1321351200000,11455
+1321347600000,11339
+1321344000000,10898
+1321340400000,9740
+1321336800000,8978
+1321333200000,8691
+1321329600000,8689
+1321326000000,8841
+1321322400000,9095
+1321318800000,9605
+1321488000000,11040
+1321484400000,11825
+1321480800000,12329
+1321477200000,12622
+1321473600000,12810
+1321470000000,12978
+1321466400000,12336
+1321462800000,11786
+1321459200000,11790
+1321455600000,11892
+1321452000000,11925
+1321448400000,11966
+1321444800000,11990
+1321441200000,11937
+1321437600000,11783
+1321434000000,11563
+1321430400000,11063
+1321426800000,9850
+1321423200000,9050
+1321419600000,8749
+1321416000000,8745
+1321412400000,8902
+1321408800000,9160
+1321405200000,9626
+1321574400000,11400
+1321570800000,12186
+1321567200000,12704
+1321563600000,12982
+1321560000000,13171
+1321556400000,13235
+1321552800000,12638
+1321549200000,12060
+1321545600000,12073
+1321542000000,12191
+1321538400000,12196
+1321534800000,12280
+1321531200000,12331
+1321527600000,12285
+1321524000000,12195
+1321520400000,12056
+1321516800000,11604
+1321513200000,10459
+1321509600000,9658
+1321506000000,9379
+1321502400000,9367
+1321498800000,9545
+1321495200000,9795
+1321491600000,10279
+1321660800000,10812
+1321657200000,11497
+1321653600000,11929
+1321650000000,12237
+1321646400000,12528
+1321642800000,12700
+1321639200000,12170
+1321635600000,11648
+1321632000000,11706
+1321628400000,11921
+1321624800000,11998
+1321621200000,12130
+1321617600000,12231
+1321614000000,12206
+1321610400000,12220
+1321606800000,12129
+1321603200000,11720
+1321599600000,10629
+1321596000000,9886
+1321592400000,9656
+1321588800000,9655
+1321585200000,9835
+1321581600000,10120
+1321578000000,10613
+1321747200000,9766
+1321743600000,10330
+1321740000000,10693
+1321736400000,10886
+1321732800000,11118
+1321729200000,11209
+1321725600000,10794
+1321722000000,10287
+1321718400000,10290
+1321714800000,10376
+1321711200000,10388
+1321707600000,10571
+1321704000000,10784
+1321700400000,10691
+1321696800000,10383
+1321693200000,9946
+1321689600000,9646
+1321686000000,9133
+1321682400000,8873
+1321678800000,8788
+1321675200000,8903
+1321671600000,9149
+1321668000000,9514
+1321664400000,10117
+1321833600000,9950
+1321830000000,10508
+1321826400000,10891
+1321822800000,11107
+1321819200000,11244
+1321815600000,11243
+1321812000000,10739
+1321808400000,10051
+1321804800000,9919
+1321801200000,9855
+1321797600000,9789
+1321794000000,9643
+1321790400000,9599
+1321786800000,9330
+1321783200000,8980
+1321779600000,8630
+1321776000000,8614
+1321772400000,8347
+1321768800000,8160
+1321765200000,8139
+1321761600000,8272
+1321758000000,8418
+1321754400000,8709
+1321750800000,9203
+1321920000000,10693
+1321916400000,11503
+1321912800000,12054
+1321909200000,12358
+1321905600000,12604
+1321902000000,12812
+1321898400000,12370
+1321894800000,11710
+1321891200000,11618
+1321887600000,11702
+1321884000000,11709
+1321880400000,11850
+1321876800000,11938
+1321873200000,11882
+1321869600000,11796
+1321866000000,11529
+1321862400000,10939
+1321858800000,9775
+1321855200000,8971
+1321851600000,8691
+1321848000000,8660
+1321844400000,8760
+1321840800000,8975
+1321837200000,9393
+1322006400000,10862
+1322002800000,11641
+1321999200000,12144
+1321995600000,12494
+1321992000000,12774
+1321988400000,13016
+1321984800000,12773
+1321981200000,12294
+1321977600000,12252
+1321974000000,12292
+1321970400000,12290
+1321966800000,12268
+1321963200000,12323
+1321959600000,12179
+1321956000000,12020
+1321952400000,11712
+1321948800000,10938
+1321945200000,9747
+1321941600000,9032
+1321938000000,8793
+1321934400000,8832
+1321930800000,9033
+1321927200000,9363
+1321923600000,9879
+1322092800000,10557
+1322089200000,11211
+1322085600000,11677
+1322082000000,11925
+1322078400000,12178
+1322074800000,12366
+1322071200000,11737
+1322067600000,11176
+1322064000000,11291
+1322060400000,11451
+1322056800000,11551
+1322053200000,11754
+1322049600000,11847
+1322046000000,11819
+1322042400000,11672
+1322038800000,11383
+1322035200000,10926
+1322031600000,9936
+1322028000000,9226
+1322024400000,8969
+1322020800000,8995
+1322017200000,9181
+1322013600000,9524
+1322010000000,10065
+1322179200000,9223
+1322175600000,9520
+1322172000000,9640
+1322168400000,9716
+1322164800000,9777
+1322161200000,9883
+1322157600000,9571
+1322154000000,9195
+1322150400000,9299
+1322146800000,9513
+1322143200000,9673
+1322139600000,9752
+1322136000000,9659
+1322132400000,9436
+1322128800000,9096
+1322125200000,8827
+1322121600000,8774
+1322118000000,8547
+1322114400000,8395
+1322110800000,8382
+1322107200000,8542
+1322103600000,8802
+1322100000000,9161
+1322096400000,9766
+1322265600000,9556
+1322262000000,10120
+1322258400000,10409
+1322254800000,10673
+1322251200000,10843
+1322247600000,10991
+1322244000000,10523
+1322240400000,9658
+1322236800000,9548
+1322233200000,9486
+1322229600000,9568
+1322226000000,9650
+1322222400000,9636
+1322218800000,9587
+1322215200000,9427
+1322211600000,9246
+1322208000000,9181
+1322204400000,8704
+1322200800000,8284
+1322197200000,8108
+1322193600000,8110
+1322190000000,8242
+1322186400000,8450
+1322182800000,8804
+1322352000000,9763
+1322348400000,10258
+1322344800000,10505
+1322341200000,10764
+1322337600000,10838
+1322334000000,10903
+1322330400000,10590
+1322326800000,10058
+1322323200000,9962
+1322319600000,10006
+1322316000000,10085
+1322312400000,10030
+1322308800000,9920
+1322305200000,9601
+1322301600000,9253
+1322298000000,8792
+1322294400000,8501
+1322290800000,8106
+1322287200000,7873
+1322283600000,7873
+1322280000000,7919
+1322276400000,8162
+1322272800000,8441
+1322269200000,8970
+1322438400000,10146
+1322434800000,10789
+1322431200000,11219
+1322427600000,11477
+1322424000000,11574
+1322420400000,11606
+1322416800000,11161
+1322413200000,10454
+1322409600000,10262
+1322406000000,10172
+1322402400000,10132
+1322398800000,9991
+1322395200000,9822
+1322391600000,9530
+1322388000000,9128
+1322384400000,8720
+1322380800000,8525
+1322377200000,8182
+1322373600000,8064
+1322370000000,7987
+1322366400000,8068
+1322362800000,8262
+1322359200000,8628
+1322355600000,9110
+1322524800000,11322
+1322521200000,12248
+1322517600000,12824
+1322514000000,13117
+1322510400000,13326
+1322506800000,13486
+1322503200000,13027
+1322499600000,12329
+1322496000000,12265
+1322492400000,12284
+1322488800000,12206
+1322485200000,12232
+1322481600000,12166
+1322478000000,12145
+1322474400000,12029
+1322470800000,11894
+1322467200000,11258
+1322463600000,9963
+1322460000000,9075
+1322456400000,8812
+1322452800000,8741
+1322449200000,8902
+1322445600000,9090
+1322442000000,9555
+1322611200000,11519
+1322607600000,12419
+1322604000000,12984
+1322600400000,13327
+1322596800000,13531
+1322593200000,13678
+1322589600000,13153
+1322586000000,12454
+1322582400000,12430
+1322578800000,12477
+1322575200000,12458
+1322571600000,12555
+1322568000000,12568
+1322564400000,12505
+1322560800000,12387
+1322557200000,12253
+1322553600000,11618
+1322550000000,10335
+1322546400000,9572
+1322542800000,9347
+1322539200000,9353
+1322535600000,9541
+1322532000000,9879
+1322528400000,10470
+1322697600000,11408
+1322694000000,12346
+1322690400000,12912
+1322686800000,13200
+1322683200000,13379
+1322679600000,13499
+1322676000000,12831
+1322672400000,11987
+1322668800000,11901
+1322665200000,12028
+1322661600000,12118
+1322658000000,12286
+1322654400000,12356
+1322650800000,12412
+1322647200000,12448
+1322643600000,12374
+1322640000000,11919
+1322636400000,10679
+1322632800000,9908
+1322629200000,9636
+1322625600000,9658
+1322622000000,9803
+1322618400000,10080
+1322614800000,10646
+1322784000000,11298
+1322780400000,12219
+1322776800000,12740
+1322773200000,13053
+1322769600000,13269
+1322766000000,13361
+1322762400000,12906
+1322758800000,12204
+1322755200000,11982
+1322751600000,11984
+1322748000000,12038
+1322744400000,12130
+1322740800000,12286
+1322737200000,12291
+1322733600000,12288
+1322730000000,12176
+1322726400000,11728
+1322722800000,10479
+1322719200000,9742
+1322715600000,9466
+1322712000000,9476
+1322708400000,9688
+1322704800000,9986
+1322701200000,10543
+1322870400000,11475
+1322866800000,12242
+1322863200000,12627
+1322859600000,12910
+1322856000000,13121
+1322852400000,13239
+1322848800000,12647
+1322845200000,11830
+1322841600000,11811
+1322838000000,11909
+1322834400000,11925
+1322830800000,12100
+1322827200000,12172
+1322823600000,12216
+1322820000000,12174
+1322816400000,12095
+1322812800000,11618
+1322809200000,10371
+1322805600000,9650
+1322802000000,9421
+1322798400000,9434
+1322794800000,9631
+1322791200000,9923
+1322787600000,10471
+1322956800000,10488
+1322953200000,11018
+1322949600000,11358
+1322946000000,11542
+1322942400000,11689
+1322938800000,11710
+1322935200000,11142
+1322931600000,10241
+1322928000000,10304
+1322924400000,10483
+1322920800000,10786
+1322917200000,10882
+1322913600000,10884
+1322910000000,10781
+1322906400000,10549
+1322902800000,10255
+1322899200000,9808
+1322895600000,9327
+1322892000000,9014
+1322888400000,9041
+1322884800000,9195
+1322881200000,9494
+1322877600000,9917
+1322874000000,10615
+1323043200000,10400
+1323039600000,11114
+1323036000000,11516
+1323032400000,11765
+1323028800000,11844
+1323025200000,11862
+1323021600000,11359
+1323018000000,10588
+1323014400000,10322
+1323010800000,10237
+1323007200000,10165
+1323003600000,10022
+1323000000000,9863
+1322996400000,9583
+1322992800000,9218
+1322989200000,8892
+1322985600000,8703
+1322982000000,8449
+1322978400000,8375
+1322974800000,8409
+1322971200000,8542
+1322967600000,8715
+1322964000000,9175
+1322960400000,9800
+1323129600000,11383
+1323126000000,12382
+1323122400000,12955
+1323118800000,13253
+1323115200000,13485
+1323111600000,13694
+1323108000000,13304
+1323104400000,12547
+1323100800000,12411
+1323097200000,12409
+1323093600000,12352
+1323090000000,12357
+1323086400000,12356
+1323082800000,12268
+1323079200000,12165
+1323075600000,11991
+1323072000000,11419
+1323068400000,10057
+1323064800000,9268
+1323061200000,8947
+1323057600000,8926
+1323054000000,9014
+1323050400000,9266
+1323046800000,9716
+1323216000000,11701
+1323212400000,12709
+1323208800000,13301
+1323205200000,13584
+1323201600000,13774
+1323198000000,13910
+1323194400000,13219
+1323190800000,12356
+1323187200000,12339
+1323183600000,12450
+1323180000000,12495
+1323176400000,12571
+1323172800000,12560
+1323169200000,12490
+1323165600000,12414
+1323162000000,12231
+1323158400000,11633
+1323154800000,10343
+1323151200000,9590
+1323147600000,9296
+1323144000000,9320
+1323140400000,9495
+1323136800000,9834
+1323133200000,10443
+1323302400000,11873
+1323298800000,12818
+1323295200000,13392
+1323291600000,13700
+1323288000000,13890
+1323284400000,14021
+1323280800000,13331
+1323277200000,12398
+1323273600000,12249
+1323270000000,12334
+1323266400000,12350
+1323262800000,12519
+1323259200000,12522
+1323255600000,12468
+1323252000000,12497
+1323248400000,12370
+1323244800000,11858
+1323241200000,10570
+1323237600000,9791
+1323234000000,9530
+1323230400000,9520
+1323226800000,9758
+1323223200000,10122
+1323219600000,10740
+1323388800000,11738
+1323385200000,12705
+1323381600000,13230
+1323378000000,13567
+1323374400000,13781
+1323370800000,13910
+1323367200000,13399
+1323363600000,12493
+1323360000000,12307
+1323356400000,12390
+1323352800000,12481
+1323349200000,12585
+1323345600000,12688
+1323342000000,12691
+1323338400000,12718
+1323334800000,12629
+1323331200000,12064
+1323327600000,10798
+1323324000000,10039
+1323320400000,9784
+1323316800000,9807
+1323313200000,10000
+1323309600000,10329
+1323306000000,10947
+1323475200000,12315
+1323471600000,13098
+1323468000000,13478
+1323464400000,13742
+1323460800000,13947
+1323457200000,14066
+1323453600000,13367
+1323450000000,12405
+1323446400000,12375
+1323442800000,12446
+1323439200000,12539
+1323435600000,12610
+1323432000000,12695
+1323428400000,12689
+1323424800000,12736
+1323421200000,12563
+1323417600000,11993
+1323414000000,10730
+1323410400000,10064
+1323406800000,9802
+1323403200000,9762
+1323399600000,9938
+1323396000000,10237
+1323392400000,10825
+1323561600000,11705
+1323558000000,12363
+1323554400000,12677
+1323550800000,12945
+1323547200000,13050
+1323543600000,13128
+1323540000000,12308
+1323536400000,11318
+1323532800000,11224
+1323529200000,11331
+1323525600000,11553
+1323522000000,11789
+1323518400000,11888
+1323514800000,11889
+1323511200000,11748
+1323507600000,11550
+1323504000000,11274
+1323500400000,10703
+1323496800000,10350
+1323493200000,10272
+1323489600000,10311
+1323486000000,10510
+1323482400000,10836
+1323478800000,11502
+1323648000000,11079
+1323644400000,11823
+1323640800000,12186
+1323637200000,12389
+1323633600000,12396
+1323630000000,12238
+1323626400000,11315
+1323622800000,10314
+1323619200000,10183
+1323615600000,10234
+1323612000000,10368
+1323608400000,10428
+1323604800000,10492
+1323601200000,10457
+1323597600000,10342
+1323594000000,10186
+1323590400000,10135
+1323586800000,9850
+1323583200000,9689
+1323579600000,9700
+1323576000000,9730
+1323572400000,9967
+1323568800000,10416
+1323565200000,10985
+1323734400000,11463
+1323730800000,12461
+1323727200000,13019
+1323723600000,13309
+1323720000000,13557
+1323716400000,13766
+1323712800000,13078
+1323709200000,12175
+1323705600000,12122
+1323702000000,12141
+1323698400000,12198
+1323694800000,12358
+1323691200000,12436
+1323687600000,12553
+1323684000000,12641
+1323680400000,12594
+1323676800000,12007
+1323673200000,10698
+1323669600000,9905
+1323666000000,9585
+1323662400000,9536
+1323658800000,9609
+1323655200000,9882
+1323651600000,10335
+1323820800000,11474
+1323817200000,12386
+1323813600000,12939
+1323810000000,13231
+1323806400000,13455
+1323802800000,13637
+1323799200000,13234
+1323795600000,12351
+1323792000000,12219
+1323788400000,12323
+1323784800000,12307
+1323781200000,12405
+1323777600000,12576
+1323774000000,12382
+1323770400000,12345
+1323766800000,12265
+1323763200000,11545
+1323759600000,10297
+1323756000000,9534
+1323752400000,9290
+1323748800000,9334
+1323745200000,9531
+1323741600000,9902
+1323738000000,10490
+1323907200000,11214
+1323903600000,12206
+1323900000000,12789
+1323896400000,13112
+1323892800000,13361
+1323889200000,13628
+1323885600000,13394
+1323882000000,12688
+1323878400000,12521
+1323874800000,12514
+1323871200000,12477
+1323867600000,12584
+1323864000000,12739
+1323860400000,12741
+1323856800000,12480
+1323853200000,12193
+1323849600000,11439
+1323846000000,10186
+1323842400000,9439
+1323838800000,9228
+1323835200000,9284
+1323831600000,9448
+1323828000000,9852
+1323824400000,10517
+1323993600000,11935
+1323990000000,12863
+1323986400000,13340
+1323982800000,13698
+1323979200000,13872
+1323975600000,14016
+1323972000000,13511
+1323968400000,12790
+1323964800000,12607
+1323961200000,12564
+1323957600000,12408
+1323954000000,12368
+1323950400000,12308
+1323946800000,12185
+1323943200000,12094
+1323939600000,11843
+1323936000000,11073
+1323932400000,9808
+1323928800000,9066
+1323925200000,8864
+1323921600000,8896
+1323918000000,9126
+1323914400000,9511
+1323910800000,10211
+1324080000000,11979
+1324076400000,12759
+1324072800000,13124
+1324069200000,13399
+1324065600000,13666
+1324062000000,13744
+1324058400000,12946
+1324054800000,12060
+1324051200000,11987
+1324047600000,12119
+1324044000000,12191
+1324040400000,12352
+1324036800000,12576
+1324033200000,12637
+1324029600000,12735
+1324026000000,12676
+1324022400000,12069
+1324018800000,10831
+1324015200000,10044
+1324011600000,9809
+1324008000000,9797
+1324004400000,9944
+1324000800000,10314
+1323997200000,10981
+1324166400000,11395
+1324162800000,11999
+1324159200000,12334
+1324155600000,12527
+1324152000000,12666
+1324148400000,12734
+1324144800000,12203
+1324141200000,11462
+1324137600000,11277
+1324134000000,11395
+1324130400000,11550
+1324126800000,11730
+1324123200000,11700
+1324119600000,11566
+1324116000000,11264
+1324112400000,10939
+1324108800000,10607
+1324105200000,10113
+1324101600000,9775
+1324098000000,9682
+1324094400000,9770
+1324090800000,10010
+1324087200000,10415
+1324083600000,11120
+1324252800000,10939
+1324249200000,11626
+1324245600000,12058
+1324242000000,12234
+1324238400000,12308
+1324234800000,12159
+1324231200000,11250
+1324227600000,10223
+1324224000000,10142
+1324220400000,10175
+1324216800000,10285
+1324213200000,10351
+1324209600000,10425
+1324206000000,10477
+1324202400000,10272
+1324198800000,10037
+1324195200000,9810
+1324191600000,9472
+1324188000000,9277
+1324184400000,9280
+1324180800000,9400
+1324177200000,9583
+1324173600000,10059
+1324170000000,10664
+1324339200000,11514
+1324335600000,12402
+1324332000000,12904
+1324328400000,13170
+1324324800000,13371
+1324321200000,13522
+1324317600000,13039
+1324314000000,12113
+1324310400000,11856
+1324306800000,11869
+1324303200000,11829
+1324299600000,11896
+1324296000000,11970
+1324292400000,11960
+1324288800000,11903
+1324285200000,11838
+1324281600000,11245
+1324278000000,10038
+1324274400000,9330
+1324270800000,9072
+1324267200000,9070
+1324263600000,9225
+1324260000000,9535
+1324256400000,10102
+1324425600000,11634
+1324422000000,12559
+1324418400000,13078
+1324414800000,13380
+1324411200000,13616
+1324407600000,13796
+1324404000000,13293
+1324400400000,12590
+1324396800000,12426
+1324393200000,12476
+1324389600000,12454
+1324386000000,12486
+1324382400000,12456
+1324378800000,12362
+1324375200000,12330
+1324371600000,12162
+1324368000000,11431
+1324364400000,10244
+1324360800000,9538
+1324357200000,9276
+1324353600000,9305
+1324350000000,9525
+1324346400000,9883
+1324342800000,10576
+1324512000000,11630
+1324508400000,12466
+1324504800000,12939
+1324501200000,13205
+1324497600000,13412
+1324494000000,13655
+1324490400000,13355
+1324486800000,12612
+1324483200000,12467
+1324479600000,12476
+1324476000000,12366
+1324472400000,12319
+1324468800000,12374
+1324465200000,12344
+1324461600000,12165
+1324458000000,11891
+1324454400000,11174
+1324450800000,10028
+1324447200000,9439
+1324443600000,9248
+1324440000000,9292
+1324436400000,9518
+1324432800000,9935
+1324429200000,10682
+1324598400000,11779
+1324594800000,12580
+1324591200000,13032
+1324587600000,13326
+1324584000000,13530
+1324580400000,13766
+1324576800000,13401
+1324573200000,12763
+1324569600000,12593
+1324566000000,12544
+1324562400000,12405
+1324558800000,12476
+1324555200000,12451
+1324551600000,12327
+1324548000000,12167
+1324544400000,11903
+1324540800000,11347
+1324537200000,10219
+1324533600000,9550
+1324530000000,9303
+1324526400000,9325
+1324522800000,9584
+1324519200000,10013
+1324515600000,10668
+1324684800000,11489
+1324681200000,12165
+1324677600000,12512
+1324674000000,12736
+1324670400000,12967
+1324666800000,13158
+1324663200000,12618
+1324659600000,11668
+1324656000000,11395
+1324652400000,11301
+1324648800000,11374
+1324645200000,11509
+1324641600000,11686
+1324638000000,11707
+1324634400000,11686
+1324630800000,11534
+1324627200000,11162
+1324623600000,10265
+1324620000000,9718
+1324616400000,9504
+1324612800000,9560
+1324609200000,9758
+1324605600000,10177
+1324602000000,10853
+1324771200000,10584
+1324767600000,10934
+1324764000000,11126
+1324760400000,11235
+1324756800000,11437
+1324753200000,11519
+1324749600000,10743
+1324746000000,9919
+1324742400000,9904
+1324738800000,10034
+1324735200000,10211
+1324731600000,10292
+1324728000000,10329
+1324724400000,10327
+1324720800000,10187
+1324717200000,10029
+1324713600000,9864
+1324710000000,9498
+1324706400000,9261
+1324702800000,9237
+1324699200000,9355
+1324695600000,9505
+1324692000000,10021
+1324688400000,10698
+1324857600000,10187
+1324854000000,10563
+1324850400000,10627
+1324846800000,10630
+1324843200000,10577
+1324839600000,10526
+1324836000000,9751
+1324832400000,9087
+1324828800000,9031
+1324825200000,9056
+1324821600000,9137
+1324818000000,9209
+1324814400000,9213
+1324810800000,9219
+1324807200000,9133
+1324803600000,9076
+1324800000000,9005
+1324796400000,8760
+1324792800000,8634
+1324789200000,8662
+1324785600000,8800
+1324782000000,9073
+1324778400000,9487
+1324774800000,10042
+1324944000000,10655
+1324940400000,11280
+1324936800000,11667
+1324933200000,11820
+1324929600000,11908
+1324926000000,11963
+1324922400000,11219
+1324918800000,10172
+1324915200000,9898
+1324911600000,9887
+1324908000000,9983
+1324904400000,10062
+1324900800000,10040
+1324897200000,9954
+1324893600000,9786
+1324890000000,9707
+1324886400000,9625
+1324882800000,9212
+1324879200000,8875
+1324875600000,8723
+1324872000000,8728
+1324868400000,8892
+1324864800000,9171
+1324861200000,9620
+1325030400000,11386
+1325026800000,12122
+1325023200000,12629
+1325019600000,12874
+1325016000000,13093
+1325012400000,13311
+1325008800000,12849
+1325005200000,12133
+1325001600000,12062
+1324998000000,12062
+1324994400000,12040
+1324990800000,12054
+1324987200000,11973
+1324983600000,11809
+1324980000000,11551
+1324976400000,11243
+1324972800000,10649
+1324969200000,9737
+1324965600000,9077
+1324962000000,8832
+1324958400000,8868
+1324954800000,9030
+1324951200000,9391
+1324947600000,9950
+1325116800000,11590
+1325113200000,12432
+1325109600000,12936
+1325106000000,13216
+1325102400000,13447
+1325098800000,13628
+1325095200000,12971
+1325091600000,12249
+1325088000000,12222
+1325084400000,12268
+1325080800000,12344
+1325077200000,12385
+1325073600000,12392
+1325070000000,12287
+1325066400000,12095
+1325062800000,11861
+1325059200000,11364
+1325055600000,10448
+1325052000000,9797
+1325048400000,9557
+1325044800000,9552
+1325041200000,9736
+1325037600000,10017
+1325034000000,10615
+1325203200000,10980
+1325199600000,11661
+1325196000000,12140
+1325192400000,12406
+1325188800000,12593
+1325185200000,12754
+1325181600000,11904
+1325178000000,11140
+1325174400000,11216
+1325170800000,11343
+1325167200000,11432
+1325163600000,11564
+1325160000000,11659
+1325156400000,11634
+1325152800000,11541
+1325149200000,11415
+1325145600000,10975
+1325142000000,10111
+1325138400000,9531
+1325134800000,9353
+1325131200000,9448
+1325127600000,9701
+1325124000000,10083
+1325120400000,10743
+1325289600000,10728
+1325286000000,11318
+1325282400000,11717
+1325278800000,12023
+1325275200000,12248
+1325271600000,12440
+1325268000000,11996
+1325264400000,11384
+1325260800000,11317
+1325257200000,11429
+1325253600000,11511
+1325250000000,11598
+1325246400000,11586
+1325242800000,11396
+1325239200000,11100
+1325235600000,10804
+1325232000000,10329
+1325228400000,9583
+1325224800000,9070
+1325221200000,8874
+1325217600000,8945
+1325214000000,9182
+1325210400000,9535
+1325206800000,10126
+1325376000000,10335
+1325372400000,10855
+1325368800000,11149
+1325365200000,11542
+1325361600000,11812
+1325358000000,11907
+1325354400000,11225
+1325350800000,10416
+1325347200000,10240
+1325343600000,10293
+1325340000000,10359
+1325336400000,10326
+1325332800000,10139
+1325329200000,9937
+1325325600000,9676
+1325322000000,9545
+1325318400000,9363
+1325314800000,8993
+1325311200000,8735
+1325307600000,8743
+1325304000000,8817
+1325300400000,9059
+1325296800000,9428
+1325293200000,9970


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org